@litigiovirtual/ius-design-components 2.1.20 → 2.1.21
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.
|
@@ -531,7 +531,7 @@ class EleniaOrbComponent {
|
|
|
531
531
|
});
|
|
532
532
|
}
|
|
533
533
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EleniaOrbComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
534
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "22.0.5", type: EleniaOrbComponent, isStandalone: true, selector: "ius-elenia-orb", inputs: { size: ["size", "size", numberAttribute], mood: "mood", surface: "surface", paused: ["paused", "paused", booleanAttribute], ariaLabel: "ariaLabel" }, host: { attributes: { "role": "img" }, properties: { "attr.aria-label": "ariaLabel", "attr.data-state": "mood", "attr.data-surface": "surface", "attr.data-paused": "paused ? 'true' : null", "style.width.px": "size", "style.height.px": "size", "style.--_orb": "size + 'px'" } }, viewQueries: [{ propertyName: "cubeGroup", first: true, predicate: ["cubeGroup"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<span class=\"ius-orb__sphere\">\n <span class=\"ius-orb__flow\">\n <span class=\"ius-orb__blob b1\"></span>\n <span class=\"ius-orb__blob b2\"></span>\n <span class=\"ius-orb__blob b3\"></span>\n <span class=\"ius-orb__blob b4\"></span>\n </span>\n <span class=\"ius-orb__cube\">\n <svg viewBox=\"-1.6 -1.6 3.2 3.2\" preserveAspectRatio=\"xMidYMid meet\" aria-hidden=\"true\">\n <g class=\"cube-g\" #cubeGroup></g>\n </svg>\n </span>\n <span class=\"ius-orb__spec\"></span>\n</span>\n", styles: ["@charset \"UTF-8\";:host{position:relative;display:inline-grid;place-items:center;isolation:isolate;line-height:0;--_c1: var(--ius-primary-500);--_c2: var(--ius-info-500);--_c3: var(--ius-primary-400);--_c4: var(--ius-info-300);--_halo: var(--ius-primary-400);--_edge: var(--ius-primary-100);--_cube-glow: rgba(150, 230, 255, .95)}:host:after{content:\"\";position:absolute;inset:-18%;border-radius:50%;z-index:-1;background:radial-gradient(circle at 50% 50%,var(--_halo) 0%,transparent 60%);opacity:.55;filter:blur(calc(var(--_orb) * .12));animation:ius-orb-halo 5.5s var(--ius-ease-ambient, ease-in-out) infinite}.ius-orb__sphere{position:relative;width:100%;height:100%;border-radius:50%;overflow:hidden;background:radial-gradient(circle at 50% 120%,var(--ius-primary-700) 0%,var(--ius-primary-900) 70%);box-shadow:inset 0 calc(var(--_orb) * .04) calc(var(--_orb) * .12) #ffffff2e,inset 0 calc(var(--_orb) * -.05) calc(var(--_orb) * .14) #0000008c;animation:ius-orb-breathe-soft 6s var(--ius-ease-ambient, ease-in-out) infinite}.ius-orb__flow{position:absolute;inset:0;animation:ius-orb-swirl 24s linear infinite;will-change:transform}.ius-orb__blob{position:absolute;border-radius:50%;mix-blend-mode:screen;filter:blur(calc(var(--_orb) * .08));will-change:transform}.ius-orb__blob.b1{width:90%;height:90%;left:-6%;top:-4%;background:radial-gradient(circle,var(--_c1) 0%,transparent 66%);animation:ius-orb-f1 7s var(--ius-ease-ambient, ease-in-out) infinite}.ius-orb__blob.b2{width:80%;height:80%;right:-8%;top:6%;background:radial-gradient(circle,var(--_c2) 0%,transparent 64%);animation:ius-orb-f2 8.5s var(--ius-ease-ambient, ease-in-out) infinite}.ius-orb__blob.b3{width:76%;height:76%;left:4%;bottom:-10%;background:radial-gradient(circle,var(--_c3) 0%,transparent 62%);animation:ius-orb-f3 9.5s var(--ius-ease-ambient, ease-in-out) infinite;opacity:.8}.ius-orb__blob.b4{width:60%;height:60%;right:2%;bottom:0%;background:radial-gradient(circle,var(--_c4) 0%,transparent 66%);animation:ius-orb-f1 6.5s var(--ius-ease-ambient, ease-in-out) infinite reverse}.ius-orb__cube{position:absolute;left:50%;top:50%;width:70%;height:70%;transform:translate(-50%,-50%);mix-blend-mode:screen;will-change:transform;filter:drop-shadow(0 0 calc(var(--_orb) * .045) var(--_cube-glow)) drop-shadow(0 0 calc(var(--_orb) * .015) rgba(255,255,255,.8));animation:ius-orb-cube-float 5.5s var(--ius-ease-ambient, ease-in-out) infinite}.ius-orb__cube svg{width:100%;height:100%;overflow:visible}.ius-orb__cube ::ng-deep .cube-edge{fill:none;stroke:var(--_edge);stroke-width:.26;stroke-linecap:round;stroke-linejoin:round}.ius-orb__spec{position:absolute;left:20%;top:12%;width:40%;height:34%;border-radius:50%;background:radial-gradient(circle at 50% 42%,rgba(255,255,255,.85) 0%,transparent 68%);opacity:.5;filter:blur(calc(var(--_orb) * .015))}:host([data-state=alert]){--_c1: var(--ius-primary-400);--_c2: var(--ius-info-400);--_c3: var(--ius-primary-300);--_c4: var(--ius-primary-200);--_halo: var(--ius-primary-400);--_edge: var(--ius-primary-100);--_cube-glow: rgba(150, 235, 255, .98)}:host([data-state=alert]):after{animation:ius-orb-beacon 1.8s var(--ius-ease-ambient, ease-in-out) infinite}:host([data-state=alert]) .ius-orb__sphere{animation:ius-orb-beacon-breathe 1.8s var(--ius-ease-ambient, ease-in-out) infinite}:host([data-state=alert]) .ius-orb__flow{animation:ius-orb-swirl 24s linear infinite,ius-orb-beacon-glow 1.8s var(--ius-ease-ambient, ease-in-out) infinite}:host([data-surface=dark]) .ius-orb__flow{filter:brightness(1.12)}:host([data-state=off]):after{opacity:.3;animation:none}:host([data-state=off]) .ius-orb__sphere{animation:none;background:radial-gradient(circle at 50% 120%,var(--ius-neutral-7) 0%,var(--ius-neutral-10) 62%,var(--ius-neutral-black) 82%);filter:brightness(.98) saturate(.6)}:host([data-state=off]) .ius-orb__flow{animation:none;filter:grayscale(.15) brightness(.9);opacity:.72}:host([data-state=off]) .ius-orb__blob{animation:none}:host([data-state=off]) .ius-orb__cube{animation:none;opacity:.82;filter:drop-shadow(0 0 calc(var(--_orb) * .032) rgba(150,205,235,.7))}:host([data-state=off]) ::ng-deep .cube-edge{stroke:var(--ius-neutral-4);stroke-width:.22}:host([data-state=off]) .ius-orb__spec{opacity:.38}:host([data-state=speaking]){--_cube-glow: rgba(150, 230, 255, .95)}:host([data-state=speaking]) .ius-orb__cube{filter:drop-shadow(0 0 calc(var(--_orb) * (.045 + .02 * var(--_voice, 0))) var(--_cube-glow)) drop-shadow(0 0 calc(var(--_orb) * .015) rgba(255,255,255,.8))}:host([data-state=speaking]) .ius-orb__cube svg{transform:scale(calc(1 + .028 * var(--_voice, 0)));transform-origin:50% 50%}:host([data-state=speaking]) ::ng-deep .cube-edge{stroke-width:calc(.22 + .04 * var(--_voice, 0))}@keyframes ius-orb-f1{0%,to{transform:translate(0) scale(1)}33%{transform:translate(16%,12%) scale(1.18)}66%{transform:translate(-8%,18%) scale(.9)}}@keyframes ius-orb-f2{0%,to{transform:translate(0) scale(1)}33%{transform:translate(-14%,10%) scale(.92)}66%{transform:translate(10%,-12%) scale(1.2)}}@keyframes ius-orb-f3{0%,to{transform:translate(0) scale(1)}33%{transform:translate(12%,-14%) scale(1.15)}66%{transform:translate(-12%,-4%) scale(.95)}}@keyframes ius-orb-swirl{to{transform:rotate(360deg)}}@keyframes ius-orb-breathe-soft{0%,to{transform:scale(.985)}50%{transform:scale(1.05)}}@keyframes ius-orb-halo{0%,to{opacity:.4;transform:scale(.96)}50%{opacity:.65;transform:scale(1.06)}}@keyframes ius-orb-cube-float{0%,to{transform:translate(-50%,-52%)}50%{transform:translate(-50%,-48%)}}@keyframes ius-orb-beacon{0%,to{opacity:.32;transform:scale(.9)}50%{opacity:.95;transform:scale(1.2)}}@keyframes ius-orb-beacon-glow{0%,to{filter:saturate(1.12) brightness(1.06)}50%{filter:saturate(1.5) brightness(1.55)}}@keyframes ius-orb-beacon-breathe{0%,to{transform:scale(.99)}50%{transform:scale(1.06)}}:host([data-state=thinking]) .ius-orb__blob.b1{animation-duration:2.4s}:host([data-state=thinking]) .ius-orb__blob.b2{animation-duration:2.8s}:host([data-state=thinking]) .ius-orb__blob.b3{animation-duration:3.1s}:host([data-state=thinking]) .ius-orb__blob.b4{animation-duration:2.2s}:host([data-state=thinking]) .ius-orb__sphere{animation-duration:2.6s}:host([data-state=thinking]):after{animation-duration:2.6s}:host([data-paused=true]) .ius-orb__sphere,:host([data-paused=true]) .ius-orb__flow,:host([data-paused=true]) .ius-orb__blob,:host([data-paused=true]) .ius-orb__cube,:host([data-paused=true]):after{animation-play-state:paused!important}@media(prefers-reduced-motion:reduce){:host:after,.ius-orb__sphere,.ius-orb__flow,.ius-orb__blob,.ius-orb__cube{animation:none!important}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
534
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "22.0.5", type: EleniaOrbComponent, isStandalone: true, selector: "ius-elenia-orb", inputs: { size: ["size", "size", numberAttribute], mood: "mood", surface: "surface", paused: ["paused", "paused", booleanAttribute], ariaLabel: "ariaLabel" }, host: { attributes: { "role": "img" }, properties: { "attr.aria-label": "ariaLabel", "attr.data-state": "mood", "attr.data-surface": "surface", "attr.data-paused": "paused ? 'true' : null", "style.width.px": "size", "style.height.px": "size", "style.--_orb": "size + 'px'" } }, viewQueries: [{ propertyName: "cubeGroup", first: true, predicate: ["cubeGroup"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<span class=\"ius-orb__sphere\">\r\n <span class=\"ius-orb__flow\">\r\n <span class=\"ius-orb__blob b1\"></span>\r\n <span class=\"ius-orb__blob b2\"></span>\r\n <span class=\"ius-orb__blob b3\"></span>\r\n <span class=\"ius-orb__blob b4\"></span>\r\n </span>\r\n <span class=\"ius-orb__cube\">\r\n <svg viewBox=\"-1.6 -1.6 3.2 3.2\" preserveAspectRatio=\"xMidYMid meet\" aria-hidden=\"true\">\r\n <g class=\"cube-g\" #cubeGroup></g>\r\n </svg>\r\n </span>\r\n <span class=\"ius-orb__spec\"></span>\r\n</span>\r\n", styles: ["@charset \"UTF-8\";:host{position:relative;display:inline-grid;place-items:center;isolation:isolate;line-height:0;--_c1: var(--ius-primary-500);--_c2: var(--ius-info-500);--_c3: var(--ius-primary-400);--_c4: var(--ius-info-300);--_halo: var(--ius-primary-400);--_edge: var(--ius-primary-100);--_cube-glow: rgba(150, 230, 255, .95)}:host:after{content:\"\";position:absolute;inset:-18%;border-radius:50%;z-index:-1;background:radial-gradient(circle at 50% 50%,var(--_halo) 0%,transparent 60%);opacity:.55;filter:blur(calc(var(--_orb) * .12));animation:ius-orb-halo 5.5s var(--ius-ease-ambient, ease-in-out) infinite}.ius-orb__sphere{position:relative;width:100%;height:100%;border-radius:50%;overflow:hidden;background:radial-gradient(circle at 50% 120%,var(--ius-primary-700) 0%,var(--ius-primary-900) 70%);box-shadow:inset 0 calc(var(--_orb) * .04) calc(var(--_orb) * .12) #ffffff2e,inset 0 calc(var(--_orb) * -.05) calc(var(--_orb) * .14) #0000008c;animation:ius-orb-breathe-soft 6s var(--ius-ease-ambient, ease-in-out) infinite}.ius-orb__flow{position:absolute;inset:0;animation:ius-orb-swirl 24s linear infinite;will-change:transform}.ius-orb__blob{position:absolute;border-radius:50%;mix-blend-mode:screen;filter:blur(calc(var(--_orb) * .08));will-change:transform}.ius-orb__blob.b1{width:90%;height:90%;left:-6%;top:-4%;background:radial-gradient(circle,var(--_c1) 0%,transparent 66%);animation:ius-orb-f1 7s var(--ius-ease-ambient, ease-in-out) infinite}.ius-orb__blob.b2{width:80%;height:80%;right:-8%;top:6%;background:radial-gradient(circle,var(--_c2) 0%,transparent 64%);animation:ius-orb-f2 8.5s var(--ius-ease-ambient, ease-in-out) infinite}.ius-orb__blob.b3{width:76%;height:76%;left:4%;bottom:-10%;background:radial-gradient(circle,var(--_c3) 0%,transparent 62%);animation:ius-orb-f3 9.5s var(--ius-ease-ambient, ease-in-out) infinite;opacity:.8}.ius-orb__blob.b4{width:60%;height:60%;right:2%;bottom:0%;background:radial-gradient(circle,var(--_c4) 0%,transparent 66%);animation:ius-orb-f1 6.5s var(--ius-ease-ambient, ease-in-out) infinite reverse}.ius-orb__cube{position:absolute;left:50%;top:50%;width:70%;height:70%;transform:translate(-50%,-50%);mix-blend-mode:screen;will-change:transform;filter:drop-shadow(0 0 calc(var(--_orb) * .045) var(--_cube-glow)) drop-shadow(0 0 calc(var(--_orb) * .015) rgba(255,255,255,.8));animation:ius-orb-cube-float 5.5s var(--ius-ease-ambient, ease-in-out) infinite}.ius-orb__cube svg{width:100%;height:100%;overflow:visible}.ius-orb__cube ::ng-deep .cube-edge{fill:none;stroke:var(--_edge);stroke-width:.26;stroke-linecap:round;stroke-linejoin:round}.ius-orb__spec{position:absolute;left:20%;top:12%;width:40%;height:34%;border-radius:50%;background:radial-gradient(circle at 50% 42%,rgba(255,255,255,.85) 0%,transparent 68%);opacity:.5;filter:blur(calc(var(--_orb) * .015))}:host([data-state=alert]){--_c1: var(--ius-primary-400);--_c2: var(--ius-info-400);--_c3: var(--ius-primary-300);--_c4: var(--ius-primary-200);--_halo: var(--ius-primary-400);--_edge: var(--ius-primary-100);--_cube-glow: rgba(150, 235, 255, .98)}:host([data-state=alert]):after{animation:ius-orb-beacon 1.8s var(--ius-ease-ambient, ease-in-out) infinite}:host([data-state=alert]) .ius-orb__sphere{animation:ius-orb-beacon-breathe 1.8s var(--ius-ease-ambient, ease-in-out) infinite}:host([data-state=alert]) .ius-orb__flow{animation:ius-orb-swirl 24s linear infinite,ius-orb-beacon-glow 1.8s var(--ius-ease-ambient, ease-in-out) infinite}:host([data-surface=dark]) .ius-orb__flow{filter:brightness(1.12)}:host([data-state=off]):after{opacity:.3;animation:none}:host([data-state=off]) .ius-orb__sphere{animation:none;background:radial-gradient(circle at 50% 120%,var(--ius-neutral-7) 0%,var(--ius-neutral-10) 62%,var(--ius-neutral-black) 82%);filter:brightness(.98) saturate(.6)}:host([data-state=off]) .ius-orb__flow{animation:none;filter:grayscale(.15) brightness(.9);opacity:.72}:host([data-state=off]) .ius-orb__blob{animation:none}:host([data-state=off]) .ius-orb__cube{animation:none;opacity:.82;filter:drop-shadow(0 0 calc(var(--_orb) * .032) rgba(150,205,235,.7))}:host([data-state=off]) ::ng-deep .cube-edge{stroke:var(--ius-neutral-4);stroke-width:.22}:host([data-state=off]) .ius-orb__spec{opacity:.38}:host([data-state=speaking]){--_cube-glow: rgba(150, 230, 255, .95)}:host([data-state=speaking]) .ius-orb__cube{filter:drop-shadow(0 0 calc(var(--_orb) * (.045 + .02 * var(--_voice, 0))) var(--_cube-glow)) drop-shadow(0 0 calc(var(--_orb) * .015) rgba(255,255,255,.8))}:host([data-state=speaking]) .ius-orb__cube svg{transform:scale(calc(1 + .028 * var(--_voice, 0)));transform-origin:50% 50%}:host([data-state=speaking]) ::ng-deep .cube-edge{stroke-width:calc(.22 + .04 * var(--_voice, 0))}@keyframes ius-orb-f1{0%,to{transform:translate(0) scale(1)}33%{transform:translate(16%,12%) scale(1.18)}66%{transform:translate(-8%,18%) scale(.9)}}@keyframes ius-orb-f2{0%,to{transform:translate(0) scale(1)}33%{transform:translate(-14%,10%) scale(.92)}66%{transform:translate(10%,-12%) scale(1.2)}}@keyframes ius-orb-f3{0%,to{transform:translate(0) scale(1)}33%{transform:translate(12%,-14%) scale(1.15)}66%{transform:translate(-12%,-4%) scale(.95)}}@keyframes ius-orb-swirl{to{transform:rotate(360deg)}}@keyframes ius-orb-breathe-soft{0%,to{transform:scale(.985)}50%{transform:scale(1.05)}}@keyframes ius-orb-halo{0%,to{opacity:.4;transform:scale(.96)}50%{opacity:.65;transform:scale(1.06)}}@keyframes ius-orb-cube-float{0%,to{transform:translate(-50%,-52%)}50%{transform:translate(-50%,-48%)}}@keyframes ius-orb-beacon{0%,to{opacity:.32;transform:scale(.9)}50%{opacity:.95;transform:scale(1.2)}}@keyframes ius-orb-beacon-glow{0%,to{filter:saturate(1.12) brightness(1.06)}50%{filter:saturate(1.5) brightness(1.55)}}@keyframes ius-orb-beacon-breathe{0%,to{transform:scale(.99)}50%{transform:scale(1.06)}}:host([data-state=thinking]) .ius-orb__blob.b1{animation-duration:2.4s}:host([data-state=thinking]) .ius-orb__blob.b2{animation-duration:2.8s}:host([data-state=thinking]) .ius-orb__blob.b3{animation-duration:3.1s}:host([data-state=thinking]) .ius-orb__blob.b4{animation-duration:2.2s}:host([data-state=thinking]) .ius-orb__sphere{animation-duration:2.6s}:host([data-state=thinking]):after{animation-duration:2.6s}:host([data-paused=true]) .ius-orb__sphere,:host([data-paused=true]) .ius-orb__flow,:host([data-paused=true]) .ius-orb__blob,:host([data-paused=true]) .ius-orb__cube,:host([data-paused=true]):after{animation-play-state:paused!important}@media(prefers-reduced-motion:reduce){:host:after,.ius-orb__sphere,.ius-orb__flow,.ius-orb__blob,.ius-orb__cube{animation:none!important}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
535
535
|
}
|
|
536
536
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: EleniaOrbComponent, decorators: [{
|
|
537
537
|
type: Component,
|
|
@@ -544,7 +544,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
544
544
|
'[style.width.px]': 'size',
|
|
545
545
|
'[style.height.px]': 'size',
|
|
546
546
|
'[style.--_orb]': "size + 'px'",
|
|
547
|
-
}, template: "<span class=\"ius-orb__sphere\">\n <span class=\"ius-orb__flow\">\n <span class=\"ius-orb__blob b1\"></span>\n <span class=\"ius-orb__blob b2\"></span>\n <span class=\"ius-orb__blob b3\"></span>\n <span class=\"ius-orb__blob b4\"></span>\n </span>\n <span class=\"ius-orb__cube\">\n <svg viewBox=\"-1.6 -1.6 3.2 3.2\" preserveAspectRatio=\"xMidYMid meet\" aria-hidden=\"true\">\n <g class=\"cube-g\" #cubeGroup></g>\n </svg>\n </span>\n <span class=\"ius-orb__spec\"></span>\n</span>\n", styles: ["@charset \"UTF-8\";:host{position:relative;display:inline-grid;place-items:center;isolation:isolate;line-height:0;--_c1: var(--ius-primary-500);--_c2: var(--ius-info-500);--_c3: var(--ius-primary-400);--_c4: var(--ius-info-300);--_halo: var(--ius-primary-400);--_edge: var(--ius-primary-100);--_cube-glow: rgba(150, 230, 255, .95)}:host:after{content:\"\";position:absolute;inset:-18%;border-radius:50%;z-index:-1;background:radial-gradient(circle at 50% 50%,var(--_halo) 0%,transparent 60%);opacity:.55;filter:blur(calc(var(--_orb) * .12));animation:ius-orb-halo 5.5s var(--ius-ease-ambient, ease-in-out) infinite}.ius-orb__sphere{position:relative;width:100%;height:100%;border-radius:50%;overflow:hidden;background:radial-gradient(circle at 50% 120%,var(--ius-primary-700) 0%,var(--ius-primary-900) 70%);box-shadow:inset 0 calc(var(--_orb) * .04) calc(var(--_orb) * .12) #ffffff2e,inset 0 calc(var(--_orb) * -.05) calc(var(--_orb) * .14) #0000008c;animation:ius-orb-breathe-soft 6s var(--ius-ease-ambient, ease-in-out) infinite}.ius-orb__flow{position:absolute;inset:0;animation:ius-orb-swirl 24s linear infinite;will-change:transform}.ius-orb__blob{position:absolute;border-radius:50%;mix-blend-mode:screen;filter:blur(calc(var(--_orb) * .08));will-change:transform}.ius-orb__blob.b1{width:90%;height:90%;left:-6%;top:-4%;background:radial-gradient(circle,var(--_c1) 0%,transparent 66%);animation:ius-orb-f1 7s var(--ius-ease-ambient, ease-in-out) infinite}.ius-orb__blob.b2{width:80%;height:80%;right:-8%;top:6%;background:radial-gradient(circle,var(--_c2) 0%,transparent 64%);animation:ius-orb-f2 8.5s var(--ius-ease-ambient, ease-in-out) infinite}.ius-orb__blob.b3{width:76%;height:76%;left:4%;bottom:-10%;background:radial-gradient(circle,var(--_c3) 0%,transparent 62%);animation:ius-orb-f3 9.5s var(--ius-ease-ambient, ease-in-out) infinite;opacity:.8}.ius-orb__blob.b4{width:60%;height:60%;right:2%;bottom:0%;background:radial-gradient(circle,var(--_c4) 0%,transparent 66%);animation:ius-orb-f1 6.5s var(--ius-ease-ambient, ease-in-out) infinite reverse}.ius-orb__cube{position:absolute;left:50%;top:50%;width:70%;height:70%;transform:translate(-50%,-50%);mix-blend-mode:screen;will-change:transform;filter:drop-shadow(0 0 calc(var(--_orb) * .045) var(--_cube-glow)) drop-shadow(0 0 calc(var(--_orb) * .015) rgba(255,255,255,.8));animation:ius-orb-cube-float 5.5s var(--ius-ease-ambient, ease-in-out) infinite}.ius-orb__cube svg{width:100%;height:100%;overflow:visible}.ius-orb__cube ::ng-deep .cube-edge{fill:none;stroke:var(--_edge);stroke-width:.26;stroke-linecap:round;stroke-linejoin:round}.ius-orb__spec{position:absolute;left:20%;top:12%;width:40%;height:34%;border-radius:50%;background:radial-gradient(circle at 50% 42%,rgba(255,255,255,.85) 0%,transparent 68%);opacity:.5;filter:blur(calc(var(--_orb) * .015))}:host([data-state=alert]){--_c1: var(--ius-primary-400);--_c2: var(--ius-info-400);--_c3: var(--ius-primary-300);--_c4: var(--ius-primary-200);--_halo: var(--ius-primary-400);--_edge: var(--ius-primary-100);--_cube-glow: rgba(150, 235, 255, .98)}:host([data-state=alert]):after{animation:ius-orb-beacon 1.8s var(--ius-ease-ambient, ease-in-out) infinite}:host([data-state=alert]) .ius-orb__sphere{animation:ius-orb-beacon-breathe 1.8s var(--ius-ease-ambient, ease-in-out) infinite}:host([data-state=alert]) .ius-orb__flow{animation:ius-orb-swirl 24s linear infinite,ius-orb-beacon-glow 1.8s var(--ius-ease-ambient, ease-in-out) infinite}:host([data-surface=dark]) .ius-orb__flow{filter:brightness(1.12)}:host([data-state=off]):after{opacity:.3;animation:none}:host([data-state=off]) .ius-orb__sphere{animation:none;background:radial-gradient(circle at 50% 120%,var(--ius-neutral-7) 0%,var(--ius-neutral-10) 62%,var(--ius-neutral-black) 82%);filter:brightness(.98) saturate(.6)}:host([data-state=off]) .ius-orb__flow{animation:none;filter:grayscale(.15) brightness(.9);opacity:.72}:host([data-state=off]) .ius-orb__blob{animation:none}:host([data-state=off]) .ius-orb__cube{animation:none;opacity:.82;filter:drop-shadow(0 0 calc(var(--_orb) * .032) rgba(150,205,235,.7))}:host([data-state=off]) ::ng-deep .cube-edge{stroke:var(--ius-neutral-4);stroke-width:.22}:host([data-state=off]) .ius-orb__spec{opacity:.38}:host([data-state=speaking]){--_cube-glow: rgba(150, 230, 255, .95)}:host([data-state=speaking]) .ius-orb__cube{filter:drop-shadow(0 0 calc(var(--_orb) * (.045 + .02 * var(--_voice, 0))) var(--_cube-glow)) drop-shadow(0 0 calc(var(--_orb) * .015) rgba(255,255,255,.8))}:host([data-state=speaking]) .ius-orb__cube svg{transform:scale(calc(1 + .028 * var(--_voice, 0)));transform-origin:50% 50%}:host([data-state=speaking]) ::ng-deep .cube-edge{stroke-width:calc(.22 + .04 * var(--_voice, 0))}@keyframes ius-orb-f1{0%,to{transform:translate(0) scale(1)}33%{transform:translate(16%,12%) scale(1.18)}66%{transform:translate(-8%,18%) scale(.9)}}@keyframes ius-orb-f2{0%,to{transform:translate(0) scale(1)}33%{transform:translate(-14%,10%) scale(.92)}66%{transform:translate(10%,-12%) scale(1.2)}}@keyframes ius-orb-f3{0%,to{transform:translate(0) scale(1)}33%{transform:translate(12%,-14%) scale(1.15)}66%{transform:translate(-12%,-4%) scale(.95)}}@keyframes ius-orb-swirl{to{transform:rotate(360deg)}}@keyframes ius-orb-breathe-soft{0%,to{transform:scale(.985)}50%{transform:scale(1.05)}}@keyframes ius-orb-halo{0%,to{opacity:.4;transform:scale(.96)}50%{opacity:.65;transform:scale(1.06)}}@keyframes ius-orb-cube-float{0%,to{transform:translate(-50%,-52%)}50%{transform:translate(-50%,-48%)}}@keyframes ius-orb-beacon{0%,to{opacity:.32;transform:scale(.9)}50%{opacity:.95;transform:scale(1.2)}}@keyframes ius-orb-beacon-glow{0%,to{filter:saturate(1.12) brightness(1.06)}50%{filter:saturate(1.5) brightness(1.55)}}@keyframes ius-orb-beacon-breathe{0%,to{transform:scale(.99)}50%{transform:scale(1.06)}}:host([data-state=thinking]) .ius-orb__blob.b1{animation-duration:2.4s}:host([data-state=thinking]) .ius-orb__blob.b2{animation-duration:2.8s}:host([data-state=thinking]) .ius-orb__blob.b3{animation-duration:3.1s}:host([data-state=thinking]) .ius-orb__blob.b4{animation-duration:2.2s}:host([data-state=thinking]) .ius-orb__sphere{animation-duration:2.6s}:host([data-state=thinking]):after{animation-duration:2.6s}:host([data-paused=true]) .ius-orb__sphere,:host([data-paused=true]) .ius-orb__flow,:host([data-paused=true]) .ius-orb__blob,:host([data-paused=true]) .ius-orb__cube,:host([data-paused=true]):after{animation-play-state:paused!important}@media(prefers-reduced-motion:reduce){:host:after,.ius-orb__sphere,.ius-orb__flow,.ius-orb__blob,.ius-orb__cube{animation:none!important}}\n"] }]
|
|
547
|
+
}, template: "<span class=\"ius-orb__sphere\">\r\n <span class=\"ius-orb__flow\">\r\n <span class=\"ius-orb__blob b1\"></span>\r\n <span class=\"ius-orb__blob b2\"></span>\r\n <span class=\"ius-orb__blob b3\"></span>\r\n <span class=\"ius-orb__blob b4\"></span>\r\n </span>\r\n <span class=\"ius-orb__cube\">\r\n <svg viewBox=\"-1.6 -1.6 3.2 3.2\" preserveAspectRatio=\"xMidYMid meet\" aria-hidden=\"true\">\r\n <g class=\"cube-g\" #cubeGroup></g>\r\n </svg>\r\n </span>\r\n <span class=\"ius-orb__spec\"></span>\r\n</span>\r\n", styles: ["@charset \"UTF-8\";:host{position:relative;display:inline-grid;place-items:center;isolation:isolate;line-height:0;--_c1: var(--ius-primary-500);--_c2: var(--ius-info-500);--_c3: var(--ius-primary-400);--_c4: var(--ius-info-300);--_halo: var(--ius-primary-400);--_edge: var(--ius-primary-100);--_cube-glow: rgba(150, 230, 255, .95)}:host:after{content:\"\";position:absolute;inset:-18%;border-radius:50%;z-index:-1;background:radial-gradient(circle at 50% 50%,var(--_halo) 0%,transparent 60%);opacity:.55;filter:blur(calc(var(--_orb) * .12));animation:ius-orb-halo 5.5s var(--ius-ease-ambient, ease-in-out) infinite}.ius-orb__sphere{position:relative;width:100%;height:100%;border-radius:50%;overflow:hidden;background:radial-gradient(circle at 50% 120%,var(--ius-primary-700) 0%,var(--ius-primary-900) 70%);box-shadow:inset 0 calc(var(--_orb) * .04) calc(var(--_orb) * .12) #ffffff2e,inset 0 calc(var(--_orb) * -.05) calc(var(--_orb) * .14) #0000008c;animation:ius-orb-breathe-soft 6s var(--ius-ease-ambient, ease-in-out) infinite}.ius-orb__flow{position:absolute;inset:0;animation:ius-orb-swirl 24s linear infinite;will-change:transform}.ius-orb__blob{position:absolute;border-radius:50%;mix-blend-mode:screen;filter:blur(calc(var(--_orb) * .08));will-change:transform}.ius-orb__blob.b1{width:90%;height:90%;left:-6%;top:-4%;background:radial-gradient(circle,var(--_c1) 0%,transparent 66%);animation:ius-orb-f1 7s var(--ius-ease-ambient, ease-in-out) infinite}.ius-orb__blob.b2{width:80%;height:80%;right:-8%;top:6%;background:radial-gradient(circle,var(--_c2) 0%,transparent 64%);animation:ius-orb-f2 8.5s var(--ius-ease-ambient, ease-in-out) infinite}.ius-orb__blob.b3{width:76%;height:76%;left:4%;bottom:-10%;background:radial-gradient(circle,var(--_c3) 0%,transparent 62%);animation:ius-orb-f3 9.5s var(--ius-ease-ambient, ease-in-out) infinite;opacity:.8}.ius-orb__blob.b4{width:60%;height:60%;right:2%;bottom:0%;background:radial-gradient(circle,var(--_c4) 0%,transparent 66%);animation:ius-orb-f1 6.5s var(--ius-ease-ambient, ease-in-out) infinite reverse}.ius-orb__cube{position:absolute;left:50%;top:50%;width:70%;height:70%;transform:translate(-50%,-50%);mix-blend-mode:screen;will-change:transform;filter:drop-shadow(0 0 calc(var(--_orb) * .045) var(--_cube-glow)) drop-shadow(0 0 calc(var(--_orb) * .015) rgba(255,255,255,.8));animation:ius-orb-cube-float 5.5s var(--ius-ease-ambient, ease-in-out) infinite}.ius-orb__cube svg{width:100%;height:100%;overflow:visible}.ius-orb__cube ::ng-deep .cube-edge{fill:none;stroke:var(--_edge);stroke-width:.26;stroke-linecap:round;stroke-linejoin:round}.ius-orb__spec{position:absolute;left:20%;top:12%;width:40%;height:34%;border-radius:50%;background:radial-gradient(circle at 50% 42%,rgba(255,255,255,.85) 0%,transparent 68%);opacity:.5;filter:blur(calc(var(--_orb) * .015))}:host([data-state=alert]){--_c1: var(--ius-primary-400);--_c2: var(--ius-info-400);--_c3: var(--ius-primary-300);--_c4: var(--ius-primary-200);--_halo: var(--ius-primary-400);--_edge: var(--ius-primary-100);--_cube-glow: rgba(150, 235, 255, .98)}:host([data-state=alert]):after{animation:ius-orb-beacon 1.8s var(--ius-ease-ambient, ease-in-out) infinite}:host([data-state=alert]) .ius-orb__sphere{animation:ius-orb-beacon-breathe 1.8s var(--ius-ease-ambient, ease-in-out) infinite}:host([data-state=alert]) .ius-orb__flow{animation:ius-orb-swirl 24s linear infinite,ius-orb-beacon-glow 1.8s var(--ius-ease-ambient, ease-in-out) infinite}:host([data-surface=dark]) .ius-orb__flow{filter:brightness(1.12)}:host([data-state=off]):after{opacity:.3;animation:none}:host([data-state=off]) .ius-orb__sphere{animation:none;background:radial-gradient(circle at 50% 120%,var(--ius-neutral-7) 0%,var(--ius-neutral-10) 62%,var(--ius-neutral-black) 82%);filter:brightness(.98) saturate(.6)}:host([data-state=off]) .ius-orb__flow{animation:none;filter:grayscale(.15) brightness(.9);opacity:.72}:host([data-state=off]) .ius-orb__blob{animation:none}:host([data-state=off]) .ius-orb__cube{animation:none;opacity:.82;filter:drop-shadow(0 0 calc(var(--_orb) * .032) rgba(150,205,235,.7))}:host([data-state=off]) ::ng-deep .cube-edge{stroke:var(--ius-neutral-4);stroke-width:.22}:host([data-state=off]) .ius-orb__spec{opacity:.38}:host([data-state=speaking]){--_cube-glow: rgba(150, 230, 255, .95)}:host([data-state=speaking]) .ius-orb__cube{filter:drop-shadow(0 0 calc(var(--_orb) * (.045 + .02 * var(--_voice, 0))) var(--_cube-glow)) drop-shadow(0 0 calc(var(--_orb) * .015) rgba(255,255,255,.8))}:host([data-state=speaking]) .ius-orb__cube svg{transform:scale(calc(1 + .028 * var(--_voice, 0)));transform-origin:50% 50%}:host([data-state=speaking]) ::ng-deep .cube-edge{stroke-width:calc(.22 + .04 * var(--_voice, 0))}@keyframes ius-orb-f1{0%,to{transform:translate(0) scale(1)}33%{transform:translate(16%,12%) scale(1.18)}66%{transform:translate(-8%,18%) scale(.9)}}@keyframes ius-orb-f2{0%,to{transform:translate(0) scale(1)}33%{transform:translate(-14%,10%) scale(.92)}66%{transform:translate(10%,-12%) scale(1.2)}}@keyframes ius-orb-f3{0%,to{transform:translate(0) scale(1)}33%{transform:translate(12%,-14%) scale(1.15)}66%{transform:translate(-12%,-4%) scale(.95)}}@keyframes ius-orb-swirl{to{transform:rotate(360deg)}}@keyframes ius-orb-breathe-soft{0%,to{transform:scale(.985)}50%{transform:scale(1.05)}}@keyframes ius-orb-halo{0%,to{opacity:.4;transform:scale(.96)}50%{opacity:.65;transform:scale(1.06)}}@keyframes ius-orb-cube-float{0%,to{transform:translate(-50%,-52%)}50%{transform:translate(-50%,-48%)}}@keyframes ius-orb-beacon{0%,to{opacity:.32;transform:scale(.9)}50%{opacity:.95;transform:scale(1.2)}}@keyframes ius-orb-beacon-glow{0%,to{filter:saturate(1.12) brightness(1.06)}50%{filter:saturate(1.5) brightness(1.55)}}@keyframes ius-orb-beacon-breathe{0%,to{transform:scale(.99)}50%{transform:scale(1.06)}}:host([data-state=thinking]) .ius-orb__blob.b1{animation-duration:2.4s}:host([data-state=thinking]) .ius-orb__blob.b2{animation-duration:2.8s}:host([data-state=thinking]) .ius-orb__blob.b3{animation-duration:3.1s}:host([data-state=thinking]) .ius-orb__blob.b4{animation-duration:2.2s}:host([data-state=thinking]) .ius-orb__sphere{animation-duration:2.6s}:host([data-state=thinking]):after{animation-duration:2.6s}:host([data-paused=true]) .ius-orb__sphere,:host([data-paused=true]) .ius-orb__flow,:host([data-paused=true]) .ius-orb__blob,:host([data-paused=true]) .ius-orb__cube,:host([data-paused=true]):after{animation-play-state:paused!important}@media(prefers-reduced-motion:reduce){:host:after,.ius-orb__sphere,.ius-orb__flow,.ius-orb__blob,.ius-orb__cube{animation:none!important}}\n"] }]
|
|
548
548
|
}], propDecorators: { size: [{
|
|
549
549
|
type: Input,
|
|
550
550
|
args: [{ transform: numberAttribute }]
|
|
@@ -699,7 +699,7 @@ class OauthButtonComponent {
|
|
|
699
699
|
return this.ariaLabel ?? `Continuar con ${this.text}`;
|
|
700
700
|
}
|
|
701
701
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: OauthButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
702
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: OauthButtonComponent, isStandalone: true, selector: "ius-oauth-button", inputs: { provider: "provider", label: "label", size: "size", fullWidth: ["fullWidth", "fullWidth", booleanAttribute], disabled: ["disabled", "disabled", booleanAttribute], type: "type", ariaLabel: "ariaLabel" }, outputs: { clicked: "clicked" }, host: { properties: { "attr.data-provider": "provider", "attr.data-size": "size", "attr.data-disabled": "disabled || null" } }, ngImport: i0, template: "<ius-button\n variant=\"secondary\"\n [size]=\"size\"\n [fullWidth]=\"fullWidth\"\n [disabled]=\"disabled\"\n [type]=\"type\"\n [ariaLabel]=\"effectiveAriaLabel\"\n (clicked)=\"clicked.emit($event)\"\n>\n <span class=\"ius-oauth__content\">\n <span class=\"ius-oauth__logo\" aria-hidden=\"true\">\n <!-- Logos de marca oficiales (multicolor) \u2014 excepci\u00F3n documentada:\n no tokenizar ni recolorear (ng-spec \u00A75). Paths verbatim del golden. -->\n @switch (provider) {\n @case ('microsoft') {\n <svg viewBox=\"0 0 20 20\" focusable=\"false\">\n <path d=\"M0.869568 0.869507H9.56522V9.56516H0.869568V0.869507Z\" fill=\"#F35325\" />\n <path d=\"M10.4348 0.869507H19.1304V9.56516H10.4348V0.869507Z\" fill=\"#81BC06\" />\n <path d=\"M0.869568 10.4348H9.56522V19.1305H0.869568V10.4348Z\" fill=\"#05A6F0\" />\n <path d=\"M10.4348 10.4348H19.1304V19.1305H10.4348V10.4348Z\" fill=\"#FFBA08\" />\n </svg>\n }\n @case ('linkedin') {\n <svg viewBox=\"0 0 20 20\" focusable=\"false\">\n <path d=\"M2.22222 20H17.7778C19.0051 20 20 19.0051 20 17.7778V2.22222C20 0.994923 19.0051 0 17.7778 0H2.22222C0.994923 0 0 0.994923 0 2.22222V17.7778C0 19.0051 0.994923 20 2.22222 20Z\" fill=\"#007EBB\" />\n <path d=\"M17.2222 17.2223H14.2543V12.1673C14.2543 10.7814 13.7277 10.0069 12.6307 10.0069C11.4374 10.0069 10.8139 10.8129 10.8139 12.1673V17.2223H7.9537V7.59265H10.8139V8.88976C10.8139 8.88976 11.6739 7.29845 13.7174 7.29845C15.7599 7.29845 17.2222 8.54574 17.2222 11.1254V17.2223ZM4.54148 6.33172C3.56723 6.33172 2.77777 5.53607 2.77777 4.55478C2.77777 3.57349 3.56723 2.77783 4.54148 2.77783C5.51573 2.77783 6.30472 3.57349 6.30472 4.55478C6.30472 5.53607 5.51573 6.33172 4.54148 6.33172ZM3.06459 17.2223H6.04705V7.59265H3.06459V17.2223Z\" fill=\"#FFFFFF\" />\n </svg>\n }\n @default {\n <svg viewBox=\"0 0 20 20\" focusable=\"false\">\n <path d=\"M18.8 10.2084C18.8 9.55837 18.7417 8.93337 18.6333 8.33337H10V11.8834H14.9333C14.7167 13.025 14.0667 13.9917 13.0917 14.6417V16.95H16.0667C17.8 15.35 18.8 13 18.8 10.2084Z\" fill=\"#4285F4\" />\n <path d=\"M10 19.1667C12.475 19.1667 14.55 18.35 16.0667 16.95L13.0917 14.6417C12.275 15.1917 11.2333 15.525 10 15.525C7.61668 15.525 5.59168 13.9167 4.86668 11.75H1.81668V14.1167C3.32501 17.1083 6.41668 19.1667 10 19.1667Z\" fill=\"#34A853\" />\n <path d=\"M4.86668 11.7417C4.68334 11.1917 4.57501 10.6084 4.57501 10.0001C4.57501 9.39172 4.68334 8.80839 4.86668 8.25839V5.89172H1.81668C1.19168 7.12506 0.833344 8.51672 0.833344 10.0001C0.833344 11.4834 1.19168 12.8751 1.81668 14.1084L4.19168 12.2584L4.86668 11.7417Z\" fill=\"#FBBC05\" />\n <path d=\"M10 4.48337C11.35 4.48337 12.55 4.95004 13.5083 5.85004L16.1333 3.22504C14.5417 1.74171 12.475 0.833374 10 0.833374C6.41668 0.833374 3.32501 2.89171 1.81668 5.89171L4.86668 8.25837C5.59168 6.09171 7.61668 4.48337 10 4.48337Z\" fill=\"#EA4335\" />\n </svg>\n }\n }\n </span>\n <span class=\"ius-oauth__label\">{{ text }}</span>\n </span>\n</ius-button>\n", styles: ["@charset \"UTF-8\";:host{display:contents;--_oa-logo: 20px}:host([data-size=small]){--_oa-logo: 18px}:host([data-size=large]){--_oa-logo: 22px}.ius-oauth__content{display:inline-flex;align-items:center;gap:var(--ius-space-sm)}.ius-oauth__logo{display:inline-flex;flex:0 0 auto}.ius-oauth__logo svg{display:block;width:var(--_oa-logo);height:var(--_oa-logo)}:host([data-disabled=true]) .ius-oauth__logo{filter:grayscale(1);opacity:.45}:host ::ng-deep .ius-btn[data-variant]{--_btn-bg-hover: var(--ius-neutral-4);--_btn-bg-pressed: var(--ius-neutral-5);--_btn-fg-hover: var(--ius-text-primary);--_btn-fg-pressed: var(--ius-text-primary)}:host([data-force=hover]) ::ng-deep .ius-btn[data-variant]:not(:disabled){background:var(--ius-neutral-4);color:var(--ius-text-primary)}:host([data-force=pressed]) ::ng-deep .ius-btn[data-variant]:not(:disabled){background:var(--ius-neutral-5);color:var(--ius-text-primary)}\n"], dependencies: [{ kind: "component", type: ButtonComponent, selector: "ius-button", inputs: ["variant", "label", "prefixIcon", "sufixIcon", "dynamic", "loading", "status", "disabled", "pressed", "fullWidth", "type", "ariaLabel", "action", "size"], outputs: ["clicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
702
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: OauthButtonComponent, isStandalone: true, selector: "ius-oauth-button", inputs: { provider: "provider", label: "label", size: "size", fullWidth: ["fullWidth", "fullWidth", booleanAttribute], disabled: ["disabled", "disabled", booleanAttribute], type: "type", ariaLabel: "ariaLabel" }, outputs: { clicked: "clicked" }, host: { properties: { "attr.data-provider": "provider", "attr.data-size": "size", "attr.data-disabled": "disabled || null" } }, ngImport: i0, template: "<ius-button\r\n variant=\"secondary\"\r\n [size]=\"size\"\r\n [fullWidth]=\"fullWidth\"\r\n [disabled]=\"disabled\"\r\n [type]=\"type\"\r\n [ariaLabel]=\"effectiveAriaLabel\"\r\n (clicked)=\"clicked.emit($event)\"\r\n>\r\n <span class=\"ius-oauth__content\">\r\n <span class=\"ius-oauth__logo\" aria-hidden=\"true\">\r\n <!-- Logos de marca oficiales (multicolor) \u2014 excepci\u00F3n documentada:\r\n no tokenizar ni recolorear (ng-spec \u00A75). Paths verbatim del golden. -->\r\n @switch (provider) {\r\n @case ('microsoft') {\r\n <svg viewBox=\"0 0 20 20\" focusable=\"false\">\r\n <path d=\"M0.869568 0.869507H9.56522V9.56516H0.869568V0.869507Z\" fill=\"#F35325\" />\r\n <path d=\"M10.4348 0.869507H19.1304V9.56516H10.4348V0.869507Z\" fill=\"#81BC06\" />\r\n <path d=\"M0.869568 10.4348H9.56522V19.1305H0.869568V10.4348Z\" fill=\"#05A6F0\" />\r\n <path d=\"M10.4348 10.4348H19.1304V19.1305H10.4348V10.4348Z\" fill=\"#FFBA08\" />\r\n </svg>\r\n }\r\n @case ('linkedin') {\r\n <svg viewBox=\"0 0 20 20\" focusable=\"false\">\r\n <path d=\"M2.22222 20H17.7778C19.0051 20 20 19.0051 20 17.7778V2.22222C20 0.994923 19.0051 0 17.7778 0H2.22222C0.994923 0 0 0.994923 0 2.22222V17.7778C0 19.0051 0.994923 20 2.22222 20Z\" fill=\"#007EBB\" />\r\n <path d=\"M17.2222 17.2223H14.2543V12.1673C14.2543 10.7814 13.7277 10.0069 12.6307 10.0069C11.4374 10.0069 10.8139 10.8129 10.8139 12.1673V17.2223H7.9537V7.59265H10.8139V8.88976C10.8139 8.88976 11.6739 7.29845 13.7174 7.29845C15.7599 7.29845 17.2222 8.54574 17.2222 11.1254V17.2223ZM4.54148 6.33172C3.56723 6.33172 2.77777 5.53607 2.77777 4.55478C2.77777 3.57349 3.56723 2.77783 4.54148 2.77783C5.51573 2.77783 6.30472 3.57349 6.30472 4.55478C6.30472 5.53607 5.51573 6.33172 4.54148 6.33172ZM3.06459 17.2223H6.04705V7.59265H3.06459V17.2223Z\" fill=\"#FFFFFF\" />\r\n </svg>\r\n }\r\n @default {\r\n <svg viewBox=\"0 0 20 20\" focusable=\"false\">\r\n <path d=\"M18.8 10.2084C18.8 9.55837 18.7417 8.93337 18.6333 8.33337H10V11.8834H14.9333C14.7167 13.025 14.0667 13.9917 13.0917 14.6417V16.95H16.0667C17.8 15.35 18.8 13 18.8 10.2084Z\" fill=\"#4285F4\" />\r\n <path d=\"M10 19.1667C12.475 19.1667 14.55 18.35 16.0667 16.95L13.0917 14.6417C12.275 15.1917 11.2333 15.525 10 15.525C7.61668 15.525 5.59168 13.9167 4.86668 11.75H1.81668V14.1167C3.32501 17.1083 6.41668 19.1667 10 19.1667Z\" fill=\"#34A853\" />\r\n <path d=\"M4.86668 11.7417C4.68334 11.1917 4.57501 10.6084 4.57501 10.0001C4.57501 9.39172 4.68334 8.80839 4.86668 8.25839V5.89172H1.81668C1.19168 7.12506 0.833344 8.51672 0.833344 10.0001C0.833344 11.4834 1.19168 12.8751 1.81668 14.1084L4.19168 12.2584L4.86668 11.7417Z\" fill=\"#FBBC05\" />\r\n <path d=\"M10 4.48337C11.35 4.48337 12.55 4.95004 13.5083 5.85004L16.1333 3.22504C14.5417 1.74171 12.475 0.833374 10 0.833374C6.41668 0.833374 3.32501 2.89171 1.81668 5.89171L4.86668 8.25837C5.59168 6.09171 7.61668 4.48337 10 4.48337Z\" fill=\"#EA4335\" />\r\n </svg>\r\n }\r\n }\r\n </span>\r\n <span class=\"ius-oauth__label\">{{ text }}</span>\r\n </span>\r\n</ius-button>\r\n", styles: ["@charset \"UTF-8\";:host{display:contents;--_oa-logo: 20px}:host([data-size=small]){--_oa-logo: 18px}:host([data-size=large]){--_oa-logo: 22px}.ius-oauth__content{display:inline-flex;align-items:center;gap:var(--ius-space-sm)}.ius-oauth__logo{display:inline-flex;flex:0 0 auto}.ius-oauth__logo svg{display:block;width:var(--_oa-logo);height:var(--_oa-logo)}:host([data-disabled=true]) .ius-oauth__logo{filter:grayscale(1);opacity:.45}:host ::ng-deep .ius-btn[data-variant]{--_btn-bg-hover: var(--ius-neutral-4);--_btn-bg-pressed: var(--ius-neutral-5);--_btn-fg-hover: var(--ius-text-primary);--_btn-fg-pressed: var(--ius-text-primary)}:host([data-force=hover]) ::ng-deep .ius-btn[data-variant]:not(:disabled){background:var(--ius-neutral-4);color:var(--ius-text-primary)}:host([data-force=pressed]) ::ng-deep .ius-btn[data-variant]:not(:disabled){background:var(--ius-neutral-5);color:var(--ius-text-primary)}\n"], dependencies: [{ kind: "component", type: ButtonComponent, selector: "ius-button", inputs: ["variant", "label", "prefixIcon", "sufixIcon", "dynamic", "loading", "status", "disabled", "pressed", "fullWidth", "type", "ariaLabel", "action", "size"], outputs: ["clicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
703
703
|
}
|
|
704
704
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: OauthButtonComponent, decorators: [{
|
|
705
705
|
type: Component,
|
|
@@ -707,7 +707,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
707
707
|
'[attr.data-provider]': 'provider',
|
|
708
708
|
'[attr.data-size]': 'size',
|
|
709
709
|
'[attr.data-disabled]': 'disabled || null',
|
|
710
|
-
}, template: "<ius-button\n variant=\"secondary\"\n [size]=\"size\"\n [fullWidth]=\"fullWidth\"\n [disabled]=\"disabled\"\n [type]=\"type\"\n [ariaLabel]=\"effectiveAriaLabel\"\n (clicked)=\"clicked.emit($event)\"\n>\n <span class=\"ius-oauth__content\">\n <span class=\"ius-oauth__logo\" aria-hidden=\"true\">\n <!-- Logos de marca oficiales (multicolor) \u2014 excepci\u00F3n documentada:\n no tokenizar ni recolorear (ng-spec \u00A75). Paths verbatim del golden. -->\n @switch (provider) {\n @case ('microsoft') {\n <svg viewBox=\"0 0 20 20\" focusable=\"false\">\n <path d=\"M0.869568 0.869507H9.56522V9.56516H0.869568V0.869507Z\" fill=\"#F35325\" />\n <path d=\"M10.4348 0.869507H19.1304V9.56516H10.4348V0.869507Z\" fill=\"#81BC06\" />\n <path d=\"M0.869568 10.4348H9.56522V19.1305H0.869568V10.4348Z\" fill=\"#05A6F0\" />\n <path d=\"M10.4348 10.4348H19.1304V19.1305H10.4348V10.4348Z\" fill=\"#FFBA08\" />\n </svg>\n }\n @case ('linkedin') {\n <svg viewBox=\"0 0 20 20\" focusable=\"false\">\n <path d=\"M2.22222 20H17.7778C19.0051 20 20 19.0051 20 17.7778V2.22222C20 0.994923 19.0051 0 17.7778 0H2.22222C0.994923 0 0 0.994923 0 2.22222V17.7778C0 19.0051 0.994923 20 2.22222 20Z\" fill=\"#007EBB\" />\n <path d=\"M17.2222 17.2223H14.2543V12.1673C14.2543 10.7814 13.7277 10.0069 12.6307 10.0069C11.4374 10.0069 10.8139 10.8129 10.8139 12.1673V17.2223H7.9537V7.59265H10.8139V8.88976C10.8139 8.88976 11.6739 7.29845 13.7174 7.29845C15.7599 7.29845 17.2222 8.54574 17.2222 11.1254V17.2223ZM4.54148 6.33172C3.56723 6.33172 2.77777 5.53607 2.77777 4.55478C2.77777 3.57349 3.56723 2.77783 4.54148 2.77783C5.51573 2.77783 6.30472 3.57349 6.30472 4.55478C6.30472 5.53607 5.51573 6.33172 4.54148 6.33172ZM3.06459 17.2223H6.04705V7.59265H3.06459V17.2223Z\" fill=\"#FFFFFF\" />\n </svg>\n }\n @default {\n <svg viewBox=\"0 0 20 20\" focusable=\"false\">\n <path d=\"M18.8 10.2084C18.8 9.55837 18.7417 8.93337 18.6333 8.33337H10V11.8834H14.9333C14.7167 13.025 14.0667 13.9917 13.0917 14.6417V16.95H16.0667C17.8 15.35 18.8 13 18.8 10.2084Z\" fill=\"#4285F4\" />\n <path d=\"M10 19.1667C12.475 19.1667 14.55 18.35 16.0667 16.95L13.0917 14.6417C12.275 15.1917 11.2333 15.525 10 15.525C7.61668 15.525 5.59168 13.9167 4.86668 11.75H1.81668V14.1167C3.32501 17.1083 6.41668 19.1667 10 19.1667Z\" fill=\"#34A853\" />\n <path d=\"M4.86668 11.7417C4.68334 11.1917 4.57501 10.6084 4.57501 10.0001C4.57501 9.39172 4.68334 8.80839 4.86668 8.25839V5.89172H1.81668C1.19168 7.12506 0.833344 8.51672 0.833344 10.0001C0.833344 11.4834 1.19168 12.8751 1.81668 14.1084L4.19168 12.2584L4.86668 11.7417Z\" fill=\"#FBBC05\" />\n <path d=\"M10 4.48337C11.35 4.48337 12.55 4.95004 13.5083 5.85004L16.1333 3.22504C14.5417 1.74171 12.475 0.833374 10 0.833374C6.41668 0.833374 3.32501 2.89171 1.81668 5.89171L4.86668 8.25837C5.59168 6.09171 7.61668 4.48337 10 4.48337Z\" fill=\"#EA4335\" />\n </svg>\n }\n }\n </span>\n <span class=\"ius-oauth__label\">{{ text }}</span>\n </span>\n</ius-button>\n", styles: ["@charset \"UTF-8\";:host{display:contents;--_oa-logo: 20px}:host([data-size=small]){--_oa-logo: 18px}:host([data-size=large]){--_oa-logo: 22px}.ius-oauth__content{display:inline-flex;align-items:center;gap:var(--ius-space-sm)}.ius-oauth__logo{display:inline-flex;flex:0 0 auto}.ius-oauth__logo svg{display:block;width:var(--_oa-logo);height:var(--_oa-logo)}:host([data-disabled=true]) .ius-oauth__logo{filter:grayscale(1);opacity:.45}:host ::ng-deep .ius-btn[data-variant]{--_btn-bg-hover: var(--ius-neutral-4);--_btn-bg-pressed: var(--ius-neutral-5);--_btn-fg-hover: var(--ius-text-primary);--_btn-fg-pressed: var(--ius-text-primary)}:host([data-force=hover]) ::ng-deep .ius-btn[data-variant]:not(:disabled){background:var(--ius-neutral-4);color:var(--ius-text-primary)}:host([data-force=pressed]) ::ng-deep .ius-btn[data-variant]:not(:disabled){background:var(--ius-neutral-5);color:var(--ius-text-primary)}\n"] }]
|
|
710
|
+
}, template: "<ius-button\r\n variant=\"secondary\"\r\n [size]=\"size\"\r\n [fullWidth]=\"fullWidth\"\r\n [disabled]=\"disabled\"\r\n [type]=\"type\"\r\n [ariaLabel]=\"effectiveAriaLabel\"\r\n (clicked)=\"clicked.emit($event)\"\r\n>\r\n <span class=\"ius-oauth__content\">\r\n <span class=\"ius-oauth__logo\" aria-hidden=\"true\">\r\n <!-- Logos de marca oficiales (multicolor) \u2014 excepci\u00F3n documentada:\r\n no tokenizar ni recolorear (ng-spec \u00A75). Paths verbatim del golden. -->\r\n @switch (provider) {\r\n @case ('microsoft') {\r\n <svg viewBox=\"0 0 20 20\" focusable=\"false\">\r\n <path d=\"M0.869568 0.869507H9.56522V9.56516H0.869568V0.869507Z\" fill=\"#F35325\" />\r\n <path d=\"M10.4348 0.869507H19.1304V9.56516H10.4348V0.869507Z\" fill=\"#81BC06\" />\r\n <path d=\"M0.869568 10.4348H9.56522V19.1305H0.869568V10.4348Z\" fill=\"#05A6F0\" />\r\n <path d=\"M10.4348 10.4348H19.1304V19.1305H10.4348V10.4348Z\" fill=\"#FFBA08\" />\r\n </svg>\r\n }\r\n @case ('linkedin') {\r\n <svg viewBox=\"0 0 20 20\" focusable=\"false\">\r\n <path d=\"M2.22222 20H17.7778C19.0051 20 20 19.0051 20 17.7778V2.22222C20 0.994923 19.0051 0 17.7778 0H2.22222C0.994923 0 0 0.994923 0 2.22222V17.7778C0 19.0051 0.994923 20 2.22222 20Z\" fill=\"#007EBB\" />\r\n <path d=\"M17.2222 17.2223H14.2543V12.1673C14.2543 10.7814 13.7277 10.0069 12.6307 10.0069C11.4374 10.0069 10.8139 10.8129 10.8139 12.1673V17.2223H7.9537V7.59265H10.8139V8.88976C10.8139 8.88976 11.6739 7.29845 13.7174 7.29845C15.7599 7.29845 17.2222 8.54574 17.2222 11.1254V17.2223ZM4.54148 6.33172C3.56723 6.33172 2.77777 5.53607 2.77777 4.55478C2.77777 3.57349 3.56723 2.77783 4.54148 2.77783C5.51573 2.77783 6.30472 3.57349 6.30472 4.55478C6.30472 5.53607 5.51573 6.33172 4.54148 6.33172ZM3.06459 17.2223H6.04705V7.59265H3.06459V17.2223Z\" fill=\"#FFFFFF\" />\r\n </svg>\r\n }\r\n @default {\r\n <svg viewBox=\"0 0 20 20\" focusable=\"false\">\r\n <path d=\"M18.8 10.2084C18.8 9.55837 18.7417 8.93337 18.6333 8.33337H10V11.8834H14.9333C14.7167 13.025 14.0667 13.9917 13.0917 14.6417V16.95H16.0667C17.8 15.35 18.8 13 18.8 10.2084Z\" fill=\"#4285F4\" />\r\n <path d=\"M10 19.1667C12.475 19.1667 14.55 18.35 16.0667 16.95L13.0917 14.6417C12.275 15.1917 11.2333 15.525 10 15.525C7.61668 15.525 5.59168 13.9167 4.86668 11.75H1.81668V14.1167C3.32501 17.1083 6.41668 19.1667 10 19.1667Z\" fill=\"#34A853\" />\r\n <path d=\"M4.86668 11.7417C4.68334 11.1917 4.57501 10.6084 4.57501 10.0001C4.57501 9.39172 4.68334 8.80839 4.86668 8.25839V5.89172H1.81668C1.19168 7.12506 0.833344 8.51672 0.833344 10.0001C0.833344 11.4834 1.19168 12.8751 1.81668 14.1084L4.19168 12.2584L4.86668 11.7417Z\" fill=\"#FBBC05\" />\r\n <path d=\"M10 4.48337C11.35 4.48337 12.55 4.95004 13.5083 5.85004L16.1333 3.22504C14.5417 1.74171 12.475 0.833374 10 0.833374C6.41668 0.833374 3.32501 2.89171 1.81668 5.89171L4.86668 8.25837C5.59168 6.09171 7.61668 4.48337 10 4.48337Z\" fill=\"#EA4335\" />\r\n </svg>\r\n }\r\n }\r\n </span>\r\n <span class=\"ius-oauth__label\">{{ text }}</span>\r\n </span>\r\n</ius-button>\r\n", styles: ["@charset \"UTF-8\";:host{display:contents;--_oa-logo: 20px}:host([data-size=small]){--_oa-logo: 18px}:host([data-size=large]){--_oa-logo: 22px}.ius-oauth__content{display:inline-flex;align-items:center;gap:var(--ius-space-sm)}.ius-oauth__logo{display:inline-flex;flex:0 0 auto}.ius-oauth__logo svg{display:block;width:var(--_oa-logo);height:var(--_oa-logo)}:host([data-disabled=true]) .ius-oauth__logo{filter:grayscale(1);opacity:.45}:host ::ng-deep .ius-btn[data-variant]{--_btn-bg-hover: var(--ius-neutral-4);--_btn-bg-pressed: var(--ius-neutral-5);--_btn-fg-hover: var(--ius-text-primary);--_btn-fg-pressed: var(--ius-text-primary)}:host([data-force=hover]) ::ng-deep .ius-btn[data-variant]:not(:disabled){background:var(--ius-neutral-4);color:var(--ius-text-primary)}:host([data-force=pressed]) ::ng-deep .ius-btn[data-variant]:not(:disabled){background:var(--ius-neutral-5);color:var(--ius-text-primary)}\n"] }]
|
|
711
711
|
}], propDecorators: { provider: [{
|
|
712
712
|
type: Input,
|
|
713
713
|
args: [{ required: true }]
|
|
@@ -1027,7 +1027,7 @@ class PopoverComponent {
|
|
|
1027
1027
|
}
|
|
1028
1028
|
}
|
|
1029
1029
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: PopoverComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1030
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: PopoverComponent, isStandalone: true, selector: "ius-popover", inputs: { title: "title", content: "content", placement: "placement", trigger: "trigger", offset: ["offset", "offset", numberAttribute], open: "open", defaultOpen: ["defaultOpen", "defaultOpen", booleanAttribute], showArrow: ["showArrow", "showArrow", booleanAttribute], disabled: ["disabled", "disabled", booleanAttribute], anchorRect: "anchorRect", padding: "padding", dismissable: ["dismissable", "dismissable", booleanAttribute], panelClass: "panelClass" }, outputs: { openChange: "openChange" }, host: { listeners: { "mouseenter": "onHostMouseEnter()", "mouseleave": "onHostMouseLeave()", "focusin": "onHostFocusIn()", "focusout": "onHostFocusOut()", "click": "onHostClick()" } }, viewQueries: [{ propertyName: "panelTpl", first: true, predicate: ["panelTpl"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<!-- Trigger (children del golden). El host es el ancla .ius-popover-anchor. -->\n<ng-content />\n\n<!-- Panel flotante \u2014 se estampa en el overlay del CDK v\u00EDa TemplatePortal. -->\n<ng-template #panelTpl>\n <div\n class=\"ius-popover\"\n [class]=\"panelClass ?? ''\"\n role=\"tooltip\"\n [attr.data-side]=\"side()\"\n [attr.data-padding]=\"padding\"\n >\n @if (title != null) {\n <div class=\"ius-popover__title\">{{ title }}</div>\n }\n <div class=\"ius-popover__content\">\n @if (content != null) {\n {{ content }}\n } @else {\n <ng-content select=\"[iusPopoverContent]\" />\n }\n </div>\n @if (showArrow) {\n <span\n class=\"ius-popover__arrow\"\n [style.left]=\"arrowLeft()\"\n [style.top]=\"arrowTop()\"\n aria-hidden=\"true\"\n ></span>\n }\n </div>\n</ng-template>\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;align-items:center}.ius-popover{width:max-content;max-width:280px;min-width:140px;position:relative;background:var(--ius-neutral-white);color:var(--ius-text-primary);border-radius:var(--ius-radius-lg);padding:var(--ius-space-sm) var(--ius-space-md);font-family:var(--ius-font-body);filter:drop-shadow(0 6px 18px rgba(0,0,0,.12)) drop-shadow(0 2px 6px rgba(0,0,0,.06));animation:ius-popover-in .12s var(--ius-ease-decelerate, cubic-bezier(0, 0, .2, 1));pointer-events:auto}@keyframes ius-popover-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.ius-popover__title{font-weight:var(--ius-fw-bold);font-size:var(--ius-fs-base);line-height:var(--ius-lh-base);color:var(--ius-text-primary);margin-bottom:var(--ius-space-xxs)}.ius-popover__content{font-weight:var(--ius-fw-regular);font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);letter-spacing:.02em;color:var(--ius-text-primary)}.ius-popover__arrow{position:absolute;width:12px;height:12px;background:var(--ius-neutral-white);transform:rotate(45deg)}.ius-popover[data-side=top] .ius-popover__arrow{bottom:-5px}.ius-popover[data-side=bottom] .ius-popover__arrow{top:-5px}.ius-popover[data-side=left] .ius-popover__arrow{right:-5px}.ius-popover[data-side=right] .ius-popover__arrow{left:-5px}.ius-popover[data-padding=compact]{padding:var(--ius-space-xs)}.ius-popover[data-padding=none]{padding:0}.ius-popover.ius-tooltip{min-width:0;max-width:240px;padding:var(--ius-space-xs) var(--ius-space-sm);background:var(--ius-text-primary)}.ius-popover.ius-tooltip .ius-popover__arrow{background:var(--ius-text-primary)}.ius-popover.ius-tooltip .ius-popover__content{font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);letter-spacing:normal;text-wrap:balance;color:var(--ius-neutral-white)}.ius-popover.ius-dropdown-pop{padding:var(--ius-space-xxs)}.ius-popover.ius-querybuilder-pop{max-width:none;width:min(720px,100vw - var(--ius-space-2xl));padding:var(--ius-space-md)}.ius-popover.ius-personpicker-pop{min-width:0;max-width:none;box-sizing:border-box}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1030
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: PopoverComponent, isStandalone: true, selector: "ius-popover", inputs: { title: "title", content: "content", placement: "placement", trigger: "trigger", offset: ["offset", "offset", numberAttribute], open: "open", defaultOpen: ["defaultOpen", "defaultOpen", booleanAttribute], showArrow: ["showArrow", "showArrow", booleanAttribute], disabled: ["disabled", "disabled", booleanAttribute], anchorRect: "anchorRect", padding: "padding", dismissable: ["dismissable", "dismissable", booleanAttribute], panelClass: "panelClass" }, outputs: { openChange: "openChange" }, host: { listeners: { "mouseenter": "onHostMouseEnter()", "mouseleave": "onHostMouseLeave()", "focusin": "onHostFocusIn()", "focusout": "onHostFocusOut()", "click": "onHostClick()" } }, viewQueries: [{ propertyName: "panelTpl", first: true, predicate: ["panelTpl"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<!-- Trigger (children del golden). El host es el ancla .ius-popover-anchor. -->\r\n<ng-content />\r\n\r\n<!-- Panel flotante \u2014 se estampa en el overlay del CDK v\u00EDa TemplatePortal. -->\r\n<ng-template #panelTpl>\r\n <div\r\n class=\"ius-popover\"\r\n [class]=\"panelClass ?? ''\"\r\n role=\"tooltip\"\r\n [attr.data-side]=\"side()\"\r\n [attr.data-padding]=\"padding\"\r\n >\r\n @if (title != null) {\r\n <div class=\"ius-popover__title\">{{ title }}</div>\r\n }\r\n <div class=\"ius-popover__content\">\r\n @if (content != null) {\r\n {{ content }}\r\n } @else {\r\n <ng-content select=\"[iusPopoverContent]\" />\r\n }\r\n </div>\r\n @if (showArrow) {\r\n <span\r\n class=\"ius-popover__arrow\"\r\n [style.left]=\"arrowLeft()\"\r\n [style.top]=\"arrowTop()\"\r\n aria-hidden=\"true\"\r\n ></span>\r\n }\r\n </div>\r\n</ng-template>\r\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;align-items:center}.ius-popover{width:max-content;max-width:280px;min-width:140px;position:relative;background:var(--ius-neutral-white);color:var(--ius-text-primary);border-radius:var(--ius-radius-lg);padding:var(--ius-space-sm) var(--ius-space-md);font-family:var(--ius-font-body);filter:drop-shadow(0 6px 18px rgba(0,0,0,.12)) drop-shadow(0 2px 6px rgba(0,0,0,.06));animation:ius-popover-in .12s var(--ius-ease-decelerate, cubic-bezier(0, 0, .2, 1));pointer-events:auto}@keyframes ius-popover-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.ius-popover__title{font-weight:var(--ius-fw-bold);font-size:var(--ius-fs-base);line-height:var(--ius-lh-base);color:var(--ius-text-primary);margin-bottom:var(--ius-space-xxs)}.ius-popover__content{font-weight:var(--ius-fw-regular);font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);letter-spacing:.02em;color:var(--ius-text-primary)}.ius-popover__arrow{position:absolute;width:12px;height:12px;background:var(--ius-neutral-white);transform:rotate(45deg)}.ius-popover[data-side=top] .ius-popover__arrow{bottom:-5px}.ius-popover[data-side=bottom] .ius-popover__arrow{top:-5px}.ius-popover[data-side=left] .ius-popover__arrow{right:-5px}.ius-popover[data-side=right] .ius-popover__arrow{left:-5px}.ius-popover[data-padding=compact]{padding:var(--ius-space-xs)}.ius-popover[data-padding=none]{padding:0}.ius-popover.ius-tooltip{min-width:0;max-width:240px;padding:var(--ius-space-xs) var(--ius-space-sm);background:var(--ius-text-primary)}.ius-popover.ius-tooltip .ius-popover__arrow{background:var(--ius-text-primary)}.ius-popover.ius-tooltip .ius-popover__content{font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);letter-spacing:normal;text-wrap:balance;color:var(--ius-neutral-white)}.ius-popover.ius-dropdown-pop{padding:var(--ius-space-xxs)}.ius-popover.ius-querybuilder-pop{max-width:none;width:min(720px,100vw - var(--ius-space-2xl));padding:var(--ius-space-md)}.ius-popover.ius-personpicker-pop{min-width:0;max-width:none;box-sizing:border-box}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1031
1031
|
}
|
|
1032
1032
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: PopoverComponent, decorators: [{
|
|
1033
1033
|
type: Component,
|
|
@@ -1037,7 +1037,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
1037
1037
|
'(focusin)': 'onHostFocusIn()',
|
|
1038
1038
|
'(focusout)': 'onHostFocusOut()',
|
|
1039
1039
|
'(click)': 'onHostClick()',
|
|
1040
|
-
}, template: "<!-- Trigger (children del golden). El host es el ancla .ius-popover-anchor. -->\n<ng-content />\n\n<!-- Panel flotante \u2014 se estampa en el overlay del CDK v\u00EDa TemplatePortal. -->\n<ng-template #panelTpl>\n <div\n class=\"ius-popover\"\n [class]=\"panelClass ?? ''\"\n role=\"tooltip\"\n [attr.data-side]=\"side()\"\n [attr.data-padding]=\"padding\"\n >\n @if (title != null) {\n <div class=\"ius-popover__title\">{{ title }}</div>\n }\n <div class=\"ius-popover__content\">\n @if (content != null) {\n {{ content }}\n } @else {\n <ng-content select=\"[iusPopoverContent]\" />\n }\n </div>\n @if (showArrow) {\n <span\n class=\"ius-popover__arrow\"\n [style.left]=\"arrowLeft()\"\n [style.top]=\"arrowTop()\"\n aria-hidden=\"true\"\n ></span>\n }\n </div>\n</ng-template>\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;align-items:center}.ius-popover{width:max-content;max-width:280px;min-width:140px;position:relative;background:var(--ius-neutral-white);color:var(--ius-text-primary);border-radius:var(--ius-radius-lg);padding:var(--ius-space-sm) var(--ius-space-md);font-family:var(--ius-font-body);filter:drop-shadow(0 6px 18px rgba(0,0,0,.12)) drop-shadow(0 2px 6px rgba(0,0,0,.06));animation:ius-popover-in .12s var(--ius-ease-decelerate, cubic-bezier(0, 0, .2, 1));pointer-events:auto}@keyframes ius-popover-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.ius-popover__title{font-weight:var(--ius-fw-bold);font-size:var(--ius-fs-base);line-height:var(--ius-lh-base);color:var(--ius-text-primary);margin-bottom:var(--ius-space-xxs)}.ius-popover__content{font-weight:var(--ius-fw-regular);font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);letter-spacing:.02em;color:var(--ius-text-primary)}.ius-popover__arrow{position:absolute;width:12px;height:12px;background:var(--ius-neutral-white);transform:rotate(45deg)}.ius-popover[data-side=top] .ius-popover__arrow{bottom:-5px}.ius-popover[data-side=bottom] .ius-popover__arrow{top:-5px}.ius-popover[data-side=left] .ius-popover__arrow{right:-5px}.ius-popover[data-side=right] .ius-popover__arrow{left:-5px}.ius-popover[data-padding=compact]{padding:var(--ius-space-xs)}.ius-popover[data-padding=none]{padding:0}.ius-popover.ius-tooltip{min-width:0;max-width:240px;padding:var(--ius-space-xs) var(--ius-space-sm);background:var(--ius-text-primary)}.ius-popover.ius-tooltip .ius-popover__arrow{background:var(--ius-text-primary)}.ius-popover.ius-tooltip .ius-popover__content{font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);letter-spacing:normal;text-wrap:balance;color:var(--ius-neutral-white)}.ius-popover.ius-dropdown-pop{padding:var(--ius-space-xxs)}.ius-popover.ius-querybuilder-pop{max-width:none;width:min(720px,100vw - var(--ius-space-2xl));padding:var(--ius-space-md)}.ius-popover.ius-personpicker-pop{min-width:0;max-width:none;box-sizing:border-box}\n"] }]
|
|
1040
|
+
}, template: "<!-- Trigger (children del golden). El host es el ancla .ius-popover-anchor. -->\r\n<ng-content />\r\n\r\n<!-- Panel flotante \u2014 se estampa en el overlay del CDK v\u00EDa TemplatePortal. -->\r\n<ng-template #panelTpl>\r\n <div\r\n class=\"ius-popover\"\r\n [class]=\"panelClass ?? ''\"\r\n role=\"tooltip\"\r\n [attr.data-side]=\"side()\"\r\n [attr.data-padding]=\"padding\"\r\n >\r\n @if (title != null) {\r\n <div class=\"ius-popover__title\">{{ title }}</div>\r\n }\r\n <div class=\"ius-popover__content\">\r\n @if (content != null) {\r\n {{ content }}\r\n } @else {\r\n <ng-content select=\"[iusPopoverContent]\" />\r\n }\r\n </div>\r\n @if (showArrow) {\r\n <span\r\n class=\"ius-popover__arrow\"\r\n [style.left]=\"arrowLeft()\"\r\n [style.top]=\"arrowTop()\"\r\n aria-hidden=\"true\"\r\n ></span>\r\n }\r\n </div>\r\n</ng-template>\r\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;align-items:center}.ius-popover{width:max-content;max-width:280px;min-width:140px;position:relative;background:var(--ius-neutral-white);color:var(--ius-text-primary);border-radius:var(--ius-radius-lg);padding:var(--ius-space-sm) var(--ius-space-md);font-family:var(--ius-font-body);filter:drop-shadow(0 6px 18px rgba(0,0,0,.12)) drop-shadow(0 2px 6px rgba(0,0,0,.06));animation:ius-popover-in .12s var(--ius-ease-decelerate, cubic-bezier(0, 0, .2, 1));pointer-events:auto}@keyframes ius-popover-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.ius-popover__title{font-weight:var(--ius-fw-bold);font-size:var(--ius-fs-base);line-height:var(--ius-lh-base);color:var(--ius-text-primary);margin-bottom:var(--ius-space-xxs)}.ius-popover__content{font-weight:var(--ius-fw-regular);font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);letter-spacing:.02em;color:var(--ius-text-primary)}.ius-popover__arrow{position:absolute;width:12px;height:12px;background:var(--ius-neutral-white);transform:rotate(45deg)}.ius-popover[data-side=top] .ius-popover__arrow{bottom:-5px}.ius-popover[data-side=bottom] .ius-popover__arrow{top:-5px}.ius-popover[data-side=left] .ius-popover__arrow{right:-5px}.ius-popover[data-side=right] .ius-popover__arrow{left:-5px}.ius-popover[data-padding=compact]{padding:var(--ius-space-xs)}.ius-popover[data-padding=none]{padding:0}.ius-popover.ius-tooltip{min-width:0;max-width:240px;padding:var(--ius-space-xs) var(--ius-space-sm);background:var(--ius-text-primary)}.ius-popover.ius-tooltip .ius-popover__arrow{background:var(--ius-text-primary)}.ius-popover.ius-tooltip .ius-popover__content{font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);letter-spacing:normal;text-wrap:balance;color:var(--ius-neutral-white)}.ius-popover.ius-dropdown-pop{padding:var(--ius-space-xxs)}.ius-popover.ius-querybuilder-pop{max-width:none;width:min(720px,100vw - var(--ius-space-2xl));padding:var(--ius-space-md)}.ius-popover.ius-personpicker-pop{min-width:0;max-width:none;box-sizing:border-box}\n"] }]
|
|
1041
1041
|
}], propDecorators: { title: [{
|
|
1042
1042
|
type: Input
|
|
1043
1043
|
}], content: [{
|
|
@@ -1194,7 +1194,7 @@ class ShowMoreComponent {
|
|
|
1194
1194
|
return this.expanded && !this.collapsible;
|
|
1195
1195
|
}
|
|
1196
1196
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: ShowMoreComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1197
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: ShowMoreComponent, isStandalone: true, selector: "ius-show-more", inputs: { expanded: ["expanded", "expanded", booleanAttribute], remaining: "remaining", moreLabel: "moreLabel", lessLabel: "lessLabel", collapsible: ["collapsible", "collapsible", booleanAttribute], size: "size", align: "align", ariaControls: "ariaControls" }, outputs: { toggle: "toggle" }, host: { properties: { "attr.data-align": "align !== 'center' ? align : null", "style.display": "hidden ? 'none' : ''", "attr.aria-hidden": "hidden || null" } }, ngImport: i0, template: "@if (!hidden) {\n <ius-text-button\n [size]=\"size\"\n [label]=\"label\"\n [sufixIcon]=\"expanded ? 'expand_less' : 'expand_more'\"\n [ariaExpanded]=\"expanded\"\n [ariaControls]=\"ariaControls\"\n (clicked)=\"toggle.emit($event)\"\n />\n}\n", styles: ["@charset \"UTF-8\";:host{display:flex;justify-content:var(--_sm-justify, center);padding:var(--ius-space-xs) 0}:host([data-align=start]){--_sm-justify: flex-start}:host([data-align=end]){--_sm-justify: flex-end}:host([data-align=block]){--_sm-justify: stretch}:host([data-align=block]) ::ng-deep .ius-txtbtn{width:100%;justify-content:center}\n"], dependencies: [{ kind: "component", type: TextButtonComponent, selector: "ius-text-button", inputs: ["label", "prefixIcon", "sufixIcon", "size", "disabled", "type", "ariaExpanded", "ariaControls"], outputs: ["clicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1197
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: ShowMoreComponent, isStandalone: true, selector: "ius-show-more", inputs: { expanded: ["expanded", "expanded", booleanAttribute], remaining: "remaining", moreLabel: "moreLabel", lessLabel: "lessLabel", collapsible: ["collapsible", "collapsible", booleanAttribute], size: "size", align: "align", ariaControls: "ariaControls" }, outputs: { toggle: "toggle" }, host: { properties: { "attr.data-align": "align !== 'center' ? align : null", "style.display": "hidden ? 'none' : ''", "attr.aria-hidden": "hidden || null" } }, ngImport: i0, template: "@if (!hidden) {\r\n <ius-text-button\r\n [size]=\"size\"\r\n [label]=\"label\"\r\n [sufixIcon]=\"expanded ? 'expand_less' : 'expand_more'\"\r\n [ariaExpanded]=\"expanded\"\r\n [ariaControls]=\"ariaControls\"\r\n (clicked)=\"toggle.emit($event)\"\r\n />\r\n}\r\n", styles: ["@charset \"UTF-8\";:host{display:flex;justify-content:var(--_sm-justify, center);padding:var(--ius-space-xs) 0}:host([data-align=start]){--_sm-justify: flex-start}:host([data-align=end]){--_sm-justify: flex-end}:host([data-align=block]){--_sm-justify: stretch}:host([data-align=block]) ::ng-deep .ius-txtbtn{width:100%;justify-content:center}\n"], dependencies: [{ kind: "component", type: TextButtonComponent, selector: "ius-text-button", inputs: ["label", "prefixIcon", "sufixIcon", "size", "disabled", "type", "ariaExpanded", "ariaControls"], outputs: ["clicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1198
1198
|
}
|
|
1199
1199
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: ShowMoreComponent, decorators: [{
|
|
1200
1200
|
type: Component,
|
|
@@ -1202,7 +1202,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
1202
1202
|
'[attr.data-align]': "align !== 'center' ? align : null",
|
|
1203
1203
|
'[style.display]': "hidden ? 'none' : ''",
|
|
1204
1204
|
'[attr.aria-hidden]': 'hidden || null',
|
|
1205
|
-
}, template: "@if (!hidden) {\n <ius-text-button\n [size]=\"size\"\n [label]=\"label\"\n [sufixIcon]=\"expanded ? 'expand_less' : 'expand_more'\"\n [ariaExpanded]=\"expanded\"\n [ariaControls]=\"ariaControls\"\n (clicked)=\"toggle.emit($event)\"\n />\n}\n", styles: ["@charset \"UTF-8\";:host{display:flex;justify-content:var(--_sm-justify, center);padding:var(--ius-space-xs) 0}:host([data-align=start]){--_sm-justify: flex-start}:host([data-align=end]){--_sm-justify: flex-end}:host([data-align=block]){--_sm-justify: stretch}:host([data-align=block]) ::ng-deep .ius-txtbtn{width:100%;justify-content:center}\n"] }]
|
|
1205
|
+
}, template: "@if (!hidden) {\r\n <ius-text-button\r\n [size]=\"size\"\r\n [label]=\"label\"\r\n [sufixIcon]=\"expanded ? 'expand_less' : 'expand_more'\"\r\n [ariaExpanded]=\"expanded\"\r\n [ariaControls]=\"ariaControls\"\r\n (clicked)=\"toggle.emit($event)\"\r\n />\r\n}\r\n", styles: ["@charset \"UTF-8\";:host{display:flex;justify-content:var(--_sm-justify, center);padding:var(--ius-space-xs) 0}:host([data-align=start]){--_sm-justify: flex-start}:host([data-align=end]){--_sm-justify: flex-end}:host([data-align=block]){--_sm-justify: stretch}:host([data-align=block]) ::ng-deep .ius-txtbtn{width:100%;justify-content:center}\n"] }]
|
|
1206
1206
|
}], propDecorators: { expanded: [{
|
|
1207
1207
|
type: Input,
|
|
1208
1208
|
args: [{ transform: booleanAttribute }]
|
|
@@ -1260,11 +1260,11 @@ class TooltipComponent {
|
|
|
1260
1260
|
return this.disabled || !this.label;
|
|
1261
1261
|
}
|
|
1262
1262
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: TooltipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1263
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "22.0.5", type: TooltipComponent, isStandalone: true, selector: "ius-tooltip", inputs: { label: "label", placement: "placement", trigger: "trigger", offset: ["offset", "offset", numberAttribute], showArrow: ["showArrow", "showArrow", booleanAttribute], disabled: ["disabled", "disabled", booleanAttribute], open: "open", defaultOpen: ["defaultOpen", "defaultOpen", booleanAttribute] }, outputs: { openChange: "openChange" }, ngImport: i0, template: "<ius-popover\n panelClass=\"ius-tooltip\"\n [content]=\"label\"\n [placement]=\"placement\"\n [trigger]=\"trigger\"\n [offset]=\"offset\"\n [showArrow]=\"showArrow\"\n [disabled]=\"effectiveDisabled\"\n [open]=\"open\"\n [defaultOpen]=\"defaultOpen\"\n (openChange)=\"openChange.emit($event)\"\n>\n <ng-content />\n</ius-popover>\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;align-items:center}\n"], dependencies: [{ kind: "component", type: PopoverComponent, selector: "ius-popover", inputs: ["title", "content", "placement", "trigger", "offset", "open", "defaultOpen", "showArrow", "disabled", "anchorRect", "padding", "dismissable", "panelClass"], outputs: ["openChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1263
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "22.0.5", type: TooltipComponent, isStandalone: true, selector: "ius-tooltip", inputs: { label: "label", placement: "placement", trigger: "trigger", offset: ["offset", "offset", numberAttribute], showArrow: ["showArrow", "showArrow", booleanAttribute], disabled: ["disabled", "disabled", booleanAttribute], open: "open", defaultOpen: ["defaultOpen", "defaultOpen", booleanAttribute] }, outputs: { openChange: "openChange" }, ngImport: i0, template: "<ius-popover\r\n panelClass=\"ius-tooltip\"\r\n [content]=\"label\"\r\n [placement]=\"placement\"\r\n [trigger]=\"trigger\"\r\n [offset]=\"offset\"\r\n [showArrow]=\"showArrow\"\r\n [disabled]=\"effectiveDisabled\"\r\n [open]=\"open\"\r\n [defaultOpen]=\"defaultOpen\"\r\n (openChange)=\"openChange.emit($event)\"\r\n>\r\n <ng-content />\r\n</ius-popover>\r\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;align-items:center}\n"], dependencies: [{ kind: "component", type: PopoverComponent, selector: "ius-popover", inputs: ["title", "content", "placement", "trigger", "offset", "open", "defaultOpen", "showArrow", "disabled", "anchorRect", "padding", "dismissable", "panelClass"], outputs: ["openChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1264
1264
|
}
|
|
1265
1265
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: TooltipComponent, decorators: [{
|
|
1266
1266
|
type: Component,
|
|
1267
|
-
args: [{ selector: 'ius-tooltip', standalone: true, imports: [PopoverComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ius-popover\n panelClass=\"ius-tooltip\"\n [content]=\"label\"\n [placement]=\"placement\"\n [trigger]=\"trigger\"\n [offset]=\"offset\"\n [showArrow]=\"showArrow\"\n [disabled]=\"effectiveDisabled\"\n [open]=\"open\"\n [defaultOpen]=\"defaultOpen\"\n (openChange)=\"openChange.emit($event)\"\n>\n <ng-content />\n</ius-popover>\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;align-items:center}\n"] }]
|
|
1267
|
+
args: [{ selector: 'ius-tooltip', standalone: true, imports: [PopoverComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ius-popover\r\n panelClass=\"ius-tooltip\"\r\n [content]=\"label\"\r\n [placement]=\"placement\"\r\n [trigger]=\"trigger\"\r\n [offset]=\"offset\"\r\n [showArrow]=\"showArrow\"\r\n [disabled]=\"effectiveDisabled\"\r\n [open]=\"open\"\r\n [defaultOpen]=\"defaultOpen\"\r\n (openChange)=\"openChange.emit($event)\"\r\n>\r\n <ng-content />\r\n</ius-popover>\r\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;align-items:center}\n"] }]
|
|
1268
1268
|
}], propDecorators: { label: [{
|
|
1269
1269
|
type: Input
|
|
1270
1270
|
}], placement: [{
|
|
@@ -1289,7 +1289,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
1289
1289
|
type: Output
|
|
1290
1290
|
}] } });
|
|
1291
1291
|
|
|
1292
|
-
let uid$
|
|
1292
|
+
let uid$h = 0;
|
|
1293
1293
|
/**
|
|
1294
1294
|
* TextField — Ius Design v2.
|
|
1295
1295
|
*
|
|
@@ -1328,7 +1328,7 @@ class TextFieldComponent {
|
|
|
1328
1328
|
...(ngDevMode ? [{ debugName: "focused" }] : /* istanbul ignore next */ []));
|
|
1329
1329
|
this.revealed = signal(false, /* @ts-ignore */
|
|
1330
1330
|
...(ngDevMode ? [{ debugName: "revealed" }] : /* istanbul ignore next */ []));
|
|
1331
|
-
this.inputId = `ius-tf-${uid$
|
|
1331
|
+
this.inputId = `ius-tf-${uid$h++}`;
|
|
1332
1332
|
this.helpId = `${this.inputId}-help`;
|
|
1333
1333
|
this.onChange = () => { };
|
|
1334
1334
|
this.onTouched = () => { };
|
|
@@ -1469,7 +1469,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
1469
1469
|
type: Output
|
|
1470
1470
|
}] } });
|
|
1471
1471
|
|
|
1472
|
-
let uid$
|
|
1472
|
+
let uid$g = 0;
|
|
1473
1473
|
/** Reparte una cadena en `length` casillas (1 carácter por casilla). */
|
|
1474
1474
|
function toChars(str, length) {
|
|
1475
1475
|
const out = new Array(length).fill('');
|
|
@@ -1529,7 +1529,7 @@ class CodeFieldComponent {
|
|
|
1529
1529
|
...(ngDevMode ? [{ debugName: "focused" }] : /* istanbul ignore next */ []));
|
|
1530
1530
|
this.indexes = computed(() => this.chars().map((_, i) => i), /* @ts-ignore */
|
|
1531
1531
|
...(ngDevMode ? [{ debugName: "indexes" }] : /* istanbul ignore next */ []));
|
|
1532
|
-
this.baseId = `ius-cf-${uid$
|
|
1532
|
+
this.baseId = `ius-cf-${uid$g++}`;
|
|
1533
1533
|
this.cellRefs = viewChildren('cell', /* @ts-ignore */
|
|
1534
1534
|
...(ngDevMode ? [{ debugName: "cellRefs" }] : /* istanbul ignore next */ []));
|
|
1535
1535
|
this.onChange = () => { };
|
|
@@ -1931,7 +1931,7 @@ class CountdownRingComponent {
|
|
|
1931
1931
|
inject(DestroyRef).onDestroy(() => this.clock.destroy());
|
|
1932
1932
|
}
|
|
1933
1933
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: CountdownRingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1934
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: CountdownRingComponent, isStandalone: true, selector: "ius-countdown-ring", inputs: { progress: { classPropertyName: "progress", publicName: "progress", isSignal: true, isRequired: false, transformFunction: null }, seconds: { classPropertyName: "seconds", publicName: "seconds", isSignal: true, isRequired: false, transformFunction: null }, running: { classPropertyName: "running", publicName: "running", isSignal: true, isRequired: false, transformFunction: null }, paused: { classPropertyName: "paused", publicName: "paused", isSignal: true, isRequired: false, transformFunction: null }, inverse: { classPropertyName: "inverse", publicName: "inverse", isSignal: true, isRequired: false, transformFunction: null }, tone: { classPropertyName: "tone", publicName: "tone", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { completed: "completed" }, host: { attributes: { "role": "img" }, properties: { "attr.data-size": "size()", "attr.data-eased": "isControlled() ? 'true' : null", "attr.aria-label": "ariaLabel() || null", "style.--_cdr-arc": "toneVars().arc", "style.--_cdr-trk": "toneVars().trk", "style.width.px": "dim().d", "style.height.px": "dim().d" }, classAttribute: "ius-cdring" }, ngImport: i0, template: "<svg\
|
|
1934
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: CountdownRingComponent, isStandalone: true, selector: "ius-countdown-ring", inputs: { progress: { classPropertyName: "progress", publicName: "progress", isSignal: true, isRequired: false, transformFunction: null }, seconds: { classPropertyName: "seconds", publicName: "seconds", isSignal: true, isRequired: false, transformFunction: null }, running: { classPropertyName: "running", publicName: "running", isSignal: true, isRequired: false, transformFunction: null }, paused: { classPropertyName: "paused", publicName: "paused", isSignal: true, isRequired: false, transformFunction: null }, inverse: { classPropertyName: "inverse", publicName: "inverse", isSignal: true, isRequired: false, transformFunction: null }, tone: { classPropertyName: "tone", publicName: "tone", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { completed: "completed" }, host: { attributes: { "role": "img" }, properties: { "attr.data-size": "size()", "attr.data-eased": "isControlled() ? 'true' : null", "attr.aria-label": "ariaLabel() || null", "style.--_cdr-arc": "toneVars().arc", "style.--_cdr-trk": "toneVars().trk", "style.width.px": "dim().d", "style.height.px": "dim().d" }, classAttribute: "ius-cdring" }, ngImport: i0, template: "<svg\n class=\"ius-cdring__svg\"\n [attr.width]=\"dim().d\"\n [attr.height]=\"dim().d\"\n [attr.viewBox]=\"'0 0 ' + dim().d + ' ' + dim().d\"\n>\n <circle\n class=\"ius-cdring__trk\"\n [attr.cx]=\"dim().d / 2\"\n [attr.cy]=\"dim().d / 2\"\n [attr.r]=\"ringR()\"\n [attr.stroke-width]=\"dim().s\"\n pathLength=\"100\"\n />\n @if (arcLen() > 0) {\n <circle\n class=\"ius-cdring__arc\"\n [attr.cx]=\"dim().d / 2\"\n [attr.cy]=\"dim().d / 2\"\n [attr.r]=\"ringR()\"\n [attr.stroke-width]=\"dim().s\"\n pathLength=\"100\"\n [style.stroke-dasharray]=\"dashArray()\"\n />\n }\n</svg>\n\n<span class=\"ius-cdring__center\"><ng-content /></span>\n", styles: ["@charset \"UTF-8\";:host{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;vertical-align:middle}.ius-cdring__svg{display:block;transform:rotate(-90deg)}.ius-cdring__svg circle{fill:none}.ius-cdring__trk{stroke:var(--_cdr-trk)}.ius-cdring__arc{stroke:var(--_cdr-arc);stroke-linecap:round}:host([data-eased=true]) .ius-cdring__arc{transition:stroke-dasharray var(--ius-duration-base, .22s) var(--ius-ease-standard)}@media(prefers-reduced-motion:reduce){:host([data-eased=true]) .ius-cdring__arc{transition:none}}.ius-cdring__center{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--ius-font-display);font-weight:var(--ius-fw-semibold);color:var(--ius-text-primary);line-height:1;font-variant-numeric:tabular-nums}:host([data-size=small]) .ius-cdring__center{display:none}:host([data-size=medium]) .ius-cdring__center{font-size:var(--ius-fs-sm)}:host([data-size=large]) .ius-cdring__center{font-size:var(--ius-fs-sm)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1935
1935
|
}
|
|
1936
1936
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: CountdownRingComponent, decorators: [{
|
|
1937
1937
|
type: Component,
|
|
@@ -1945,7 +1945,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
1945
1945
|
'[style.--_cdr-trk]': 'toneVars().trk',
|
|
1946
1946
|
'[style.width.px]': 'dim().d',
|
|
1947
1947
|
'[style.height.px]': 'dim().d',
|
|
1948
|
-
}, template: "<svg\
|
|
1948
|
+
}, template: "<svg\n class=\"ius-cdring__svg\"\n [attr.width]=\"dim().d\"\n [attr.height]=\"dim().d\"\n [attr.viewBox]=\"'0 0 ' + dim().d + ' ' + dim().d\"\n>\n <circle\n class=\"ius-cdring__trk\"\n [attr.cx]=\"dim().d / 2\"\n [attr.cy]=\"dim().d / 2\"\n [attr.r]=\"ringR()\"\n [attr.stroke-width]=\"dim().s\"\n pathLength=\"100\"\n />\n @if (arcLen() > 0) {\n <circle\n class=\"ius-cdring__arc\"\n [attr.cx]=\"dim().d / 2\"\n [attr.cy]=\"dim().d / 2\"\n [attr.r]=\"ringR()\"\n [attr.stroke-width]=\"dim().s\"\n pathLength=\"100\"\n [style.stroke-dasharray]=\"dashArray()\"\n />\n }\n</svg>\n\n<span class=\"ius-cdring__center\"><ng-content /></span>\n", styles: ["@charset \"UTF-8\";:host{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;vertical-align:middle}.ius-cdring__svg{display:block;transform:rotate(-90deg)}.ius-cdring__svg circle{fill:none}.ius-cdring__trk{stroke:var(--_cdr-trk)}.ius-cdring__arc{stroke:var(--_cdr-arc);stroke-linecap:round}:host([data-eased=true]) .ius-cdring__arc{transition:stroke-dasharray var(--ius-duration-base, .22s) var(--ius-ease-standard)}@media(prefers-reduced-motion:reduce){:host([data-eased=true]) .ius-cdring__arc{transition:none}}.ius-cdring__center{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--ius-font-display);font-weight:var(--ius-fw-semibold);color:var(--ius-text-primary);line-height:1;font-variant-numeric:tabular-nums}:host([data-size=small]) .ius-cdring__center{display:none}:host([data-size=medium]) .ius-cdring__center{font-size:var(--ius-fs-sm)}:host([data-size=large]) .ius-cdring__center{font-size:var(--ius-fs-sm)}\n"] }]
|
|
1949
1949
|
}], ctorParameters: () => [], propDecorators: { progress: [{ type: i0.Input, args: [{ isSignal: true, alias: "progress", required: false }] }], seconds: [{ type: i0.Input, args: [{ isSignal: true, alias: "seconds", required: false }] }], running: [{ type: i0.Input, args: [{ isSignal: true, alias: "running", required: false }] }], paused: [{ type: i0.Input, args: [{ isSignal: true, alias: "paused", required: false }] }], inverse: [{ type: i0.Input, args: [{ isSignal: true, alias: "inverse", required: false }] }], tone: [{ type: i0.Input, args: [{ isSignal: true, alias: "tone", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], completed: [{ type: i0.Output, args: ["completed"] }] } });
|
|
1950
1950
|
|
|
1951
1951
|
/** Color del número por tono (espeja el arco del CountdownRing). */
|
|
@@ -2062,7 +2062,7 @@ class CountdownComponent {
|
|
|
2062
2062
|
inject(DestroyRef).onDestroy(() => this.clock.destroy());
|
|
2063
2063
|
}
|
|
2064
2064
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: CountdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2065
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: CountdownComponent, isStandalone: true, selector: "ius-countdown", inputs: { seconds: { classPropertyName: "seconds", publicName: "seconds", isSignal: true, isRequired: true, transformFunction: null }, direction: { classPropertyName: "direction", publicName: "direction", isSignal: true, isRequired: false, transformFunction: null }, running: { classPropertyName: "running", publicName: "running", isSignal: true, isRequired: false, transformFunction: null }, paused: { classPropertyName: "paused", publicName: "paused", isSignal: true, isRequired: false, transformFunction: null }, format: { classPropertyName: "format", publicName: "format", isSignal: true, isRequired: false, transformFunction: null }, suffix: { classPropertyName: "suffix", publicName: "suffix", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, showRing: { classPropertyName: "showRing", publicName: "showRing", isSignal: true, isRequired: false, transformFunction: null }, ringPlacement: { classPropertyName: "ringPlacement", publicName: "ringPlacement", isSignal: true, isRequired: false, transformFunction: null }, ringInverse: { classPropertyName: "ringInverse", publicName: "ringInverse", isSignal: true, isRequired: false, transformFunction: null }, tone: { classPropertyName: "tone", publicName: "tone", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { completed: "completed" }, host: { attributes: { "role": "timer", "aria-live": "off" }, properties: { "attr.data-size": "size()", "attr.data-done": "done() ? 'true' : null", "attr.aria-label": "ariaLabel() || null", "style.--_cd-num": "numColor()" }, classAttribute: "ius-countdown" }, ngImport: i0, template: "@if (showRing() && ringPlacement() === 'start') {\
|
|
2065
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: CountdownComponent, isStandalone: true, selector: "ius-countdown", inputs: { seconds: { classPropertyName: "seconds", publicName: "seconds", isSignal: true, isRequired: true, transformFunction: null }, direction: { classPropertyName: "direction", publicName: "direction", isSignal: true, isRequired: false, transformFunction: null }, running: { classPropertyName: "running", publicName: "running", isSignal: true, isRequired: false, transformFunction: null }, paused: { classPropertyName: "paused", publicName: "paused", isSignal: true, isRequired: false, transformFunction: null }, format: { classPropertyName: "format", publicName: "format", isSignal: true, isRequired: false, transformFunction: null }, suffix: { classPropertyName: "suffix", publicName: "suffix", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, showRing: { classPropertyName: "showRing", publicName: "showRing", isSignal: true, isRequired: false, transformFunction: null }, ringPlacement: { classPropertyName: "ringPlacement", publicName: "ringPlacement", isSignal: true, isRequired: false, transformFunction: null }, ringInverse: { classPropertyName: "ringInverse", publicName: "ringInverse", isSignal: true, isRequired: false, transformFunction: null }, tone: { classPropertyName: "tone", publicName: "tone", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { completed: "completed" }, host: { attributes: { "role": "timer", "aria-live": "off" }, properties: { "attr.data-size": "size()", "attr.data-done": "done() ? 'true' : null", "attr.aria-label": "ariaLabel() || null", "style.--_cd-num": "numColor()" }, classAttribute: "ius-countdown" }, ngImport: i0, template: "@if (showRing() && ringPlacement() === 'start') {\n <ius-countdown-ring\n [progress]=\"fraction()\"\n [inverse]=\"ringInv()\"\n [tone]=\"tone()\"\n [size]=\"size()\"\n />\n}\n\n@if (label() != null) {\n <span class=\"ius-countdown__label\">{{ label() }}</span>\n}\n\n<span class=\"ius-countdown__time\">{{ text() }}</span>\n\n@if (showRing() && ringPlacement() === 'end') {\n <ius-countdown-ring\n [progress]=\"fraction()\"\n [inverse]=\"ringInv()\"\n [tone]=\"tone()\"\n [size]=\"size()\"\n />\n}\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;align-items:center;gap:var(--ius-space-xs);font-family:var(--ius-font-display);line-height:1;-webkit-user-select:none;user-select:none}.ius-countdown__label{color:var(--ius-text-secondary);font-weight:var(--ius-fw-regular, 400)}.ius-countdown__time{color:var(--_cd-num, var(--ius-primary-900));font-weight:var(--ius-fw-bold, 700);font-variant-numeric:tabular-nums;letter-spacing:-.01em}:host([data-done=true]) .ius-countdown__time{opacity:.55}:host([data-size=small]) .ius-countdown__label{font-size:var(--ius-fs-sm)}:host([data-size=small]) .ius-countdown__time{font-size:var(--ius-fs-lg)}:host([data-size=medium]) .ius-countdown__label{font-size:var(--ius-fs-lg)}:host([data-size=medium]) .ius-countdown__time{font-size:var(--ius-fs-h5)}:host([data-size=large]) .ius-countdown__label{font-size:var(--ius-fs-h5)}:host([data-size=large]) .ius-countdown__time{font-size:var(--ius-fs-h3)}\n"], dependencies: [{ kind: "component", type: CountdownRingComponent, selector: "ius-countdown-ring", inputs: ["progress", "seconds", "running", "paused", "inverse", "tone", "size", "ariaLabel"], outputs: ["completed"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2066
2066
|
}
|
|
2067
2067
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: CountdownComponent, decorators: [{
|
|
2068
2068
|
type: Component,
|
|
@@ -2074,7 +2074,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
2074
2074
|
'[attr.data-done]': "done() ? 'true' : null",
|
|
2075
2075
|
'[attr.aria-label]': 'ariaLabel() || null',
|
|
2076
2076
|
'[style.--_cd-num]': 'numColor()',
|
|
2077
|
-
}, template: "@if (showRing() && ringPlacement() === 'start') {\
|
|
2077
|
+
}, template: "@if (showRing() && ringPlacement() === 'start') {\n <ius-countdown-ring\n [progress]=\"fraction()\"\n [inverse]=\"ringInv()\"\n [tone]=\"tone()\"\n [size]=\"size()\"\n />\n}\n\n@if (label() != null) {\n <span class=\"ius-countdown__label\">{{ label() }}</span>\n}\n\n<span class=\"ius-countdown__time\">{{ text() }}</span>\n\n@if (showRing() && ringPlacement() === 'end') {\n <ius-countdown-ring\n [progress]=\"fraction()\"\n [inverse]=\"ringInv()\"\n [tone]=\"tone()\"\n [size]=\"size()\"\n />\n}\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;align-items:center;gap:var(--ius-space-xs);font-family:var(--ius-font-display);line-height:1;-webkit-user-select:none;user-select:none}.ius-countdown__label{color:var(--ius-text-secondary);font-weight:var(--ius-fw-regular, 400)}.ius-countdown__time{color:var(--_cd-num, var(--ius-primary-900));font-weight:var(--ius-fw-bold, 700);font-variant-numeric:tabular-nums;letter-spacing:-.01em}:host([data-done=true]) .ius-countdown__time{opacity:.55}:host([data-size=small]) .ius-countdown__label{font-size:var(--ius-fs-sm)}:host([data-size=small]) .ius-countdown__time{font-size:var(--ius-fs-lg)}:host([data-size=medium]) .ius-countdown__label{font-size:var(--ius-fs-lg)}:host([data-size=medium]) .ius-countdown__time{font-size:var(--ius-fs-h5)}:host([data-size=large]) .ius-countdown__label{font-size:var(--ius-fs-h5)}:host([data-size=large]) .ius-countdown__time{font-size:var(--ius-fs-h3)}\n"] }]
|
|
2078
2078
|
}], ctorParameters: () => [], propDecorators: { seconds: [{ type: i0.Input, args: [{ isSignal: true, alias: "seconds", required: true }] }], direction: [{ type: i0.Input, args: [{ isSignal: true, alias: "direction", required: false }] }], running: [{ type: i0.Input, args: [{ isSignal: true, alias: "running", required: false }] }], paused: [{ type: i0.Input, args: [{ isSignal: true, alias: "paused", required: false }] }], format: [{ type: i0.Input, args: [{ isSignal: true, alias: "format", required: false }] }], suffix: [{ type: i0.Input, args: [{ isSignal: true, alias: "suffix", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], showRing: [{ type: i0.Input, args: [{ isSignal: true, alias: "showRing", required: false }] }], ringPlacement: [{ type: i0.Input, args: [{ isSignal: true, alias: "ringPlacement", required: false }] }], ringInverse: [{ type: i0.Input, args: [{ isSignal: true, alias: "ringInverse", required: false }] }], tone: [{ type: i0.Input, args: [{ isSignal: true, alias: "tone", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], completed: [{ type: i0.Output, args: ["completed"] }] } });
|
|
2079
2079
|
|
|
2080
2080
|
/** Ícono por defecto según el tono. */
|
|
@@ -2420,7 +2420,7 @@ const SIZE_MAP = {
|
|
|
2420
2420
|
medium: 96,
|
|
2421
2421
|
large: 140,
|
|
2422
2422
|
};
|
|
2423
|
-
let uid$
|
|
2423
|
+
let uid$f = 0;
|
|
2424
2424
|
/**
|
|
2425
2425
|
* Illustration — Ius Design v2 (familia feedback).
|
|
2426
2426
|
*
|
|
@@ -2445,7 +2445,7 @@ class IllustrationComponent {
|
|
|
2445
2445
|
constructor() {
|
|
2446
2446
|
this.sanitizer = inject(DomSanitizer);
|
|
2447
2447
|
/** ID único por instancia, para el sufijo de gradientes. */
|
|
2448
|
-
this.instanceId = `i${uid$
|
|
2448
|
+
this.instanceId = `i${uid$f++}`;
|
|
2449
2449
|
this._size = 'medium';
|
|
2450
2450
|
this.viewBox = '0 0 110 110';
|
|
2451
2451
|
this.safeInner = '';
|
|
@@ -2490,11 +2490,11 @@ class IllustrationComponent {
|
|
|
2490
2490
|
this.safeInner = this.sanitizer.bypassSecurityTrustHtml(inner);
|
|
2491
2491
|
}
|
|
2492
2492
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: IllustrationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2493
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: IllustrationComponent, isStandalone: true, selector: "ius-illustration", inputs: { name: "name", size: "size", title: "title" }, host: { classAttribute: "ius-illustration" }, ngImport: i0, template: "@if (hasEntry) {\
|
|
2493
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: IllustrationComponent, isStandalone: true, selector: "ius-illustration", inputs: { name: "name", size: "size", title: "title" }, host: { classAttribute: "ius-illustration" }, ngImport: i0, template: "@if (hasEntry) {\n <svg\n [attr.viewBox]=\"viewBox\"\n [attr.width]=\"px\"\n [attr.height]=\"px\"\n role=\"img\"\n [attr.aria-label]=\"ariaLabel\"\n [innerHTML]=\"safeInner\"\n ></svg>\n} @else {\n <!-- Placeholder: nombre v\u00E1lido sin arte disponible (data parcial) o nombre\n desconocido. Espejo del fallback de Illustration.jsx. -->\n <svg\n viewBox=\"0 0 110 110\"\n [attr.width]=\"px\"\n [attr.height]=\"px\"\n role=\"img\"\n [attr.aria-label]=\"ariaLabel\"\n >\n <rect\n x=\"6\"\n y=\"6\"\n width=\"98\"\n height=\"98\"\n rx=\"14\"\n fill=\"var(--ius-neutral-2)\"\n stroke=\"var(--ius-stroke)\"\n stroke-dasharray=\"4 4\"\n />\n </svg>\n}\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;line-height:0}svg{display:block}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2494
2494
|
}
|
|
2495
2495
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: IllustrationComponent, decorators: [{
|
|
2496
2496
|
type: Component,
|
|
2497
|
-
args: [{ selector: 'ius-illustration', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'ius-illustration' }, template: "@if (hasEntry) {\
|
|
2497
|
+
args: [{ selector: 'ius-illustration', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'ius-illustration' }, template: "@if (hasEntry) {\n <svg\n [attr.viewBox]=\"viewBox\"\n [attr.width]=\"px\"\n [attr.height]=\"px\"\n role=\"img\"\n [attr.aria-label]=\"ariaLabel\"\n [innerHTML]=\"safeInner\"\n ></svg>\n} @else {\n <!-- Placeholder: nombre v\u00E1lido sin arte disponible (data parcial) o nombre\n desconocido. Espejo del fallback de Illustration.jsx. -->\n <svg\n viewBox=\"0 0 110 110\"\n [attr.width]=\"px\"\n [attr.height]=\"px\"\n role=\"img\"\n [attr.aria-label]=\"ariaLabel\"\n >\n <rect\n x=\"6\"\n y=\"6\"\n width=\"98\"\n height=\"98\"\n rx=\"14\"\n fill=\"var(--ius-neutral-2)\"\n stroke=\"var(--ius-stroke)\"\n stroke-dasharray=\"4 4\"\n />\n </svg>\n}\n", styles: ["@charset \"UTF-8\";:host{display:inline-flex;line-height:0}svg{display:block}\n"] }]
|
|
2498
2498
|
}], propDecorators: { name: [{
|
|
2499
2499
|
type: Input,
|
|
2500
2500
|
args: [{ required: true }]
|
|
@@ -2504,7 +2504,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
2504
2504
|
type: Input
|
|
2505
2505
|
}] } });
|
|
2506
2506
|
|
|
2507
|
-
let uid$
|
|
2507
|
+
let uid$e = 0;
|
|
2508
2508
|
/**
|
|
2509
2509
|
* Checkbox — Ius Design v2.
|
|
2510
2510
|
*
|
|
@@ -2542,7 +2542,7 @@ class CheckboxComponent {
|
|
|
2542
2542
|
...(ngDevMode ? [{ debugName: "disabledState" }] : /* istanbul ignore next */ []));
|
|
2543
2543
|
/** Callback con el nuevo booleano (original `onChange(checked)`; nunca `change`). */
|
|
2544
2544
|
this.checkedChange = new EventEmitter();
|
|
2545
|
-
this.inputId = `ius-cbx-${uid$
|
|
2545
|
+
this.inputId = `ius-cbx-${uid$e++}`;
|
|
2546
2546
|
this.onChange = () => { };
|
|
2547
2547
|
this.onTouched = () => { };
|
|
2548
2548
|
}
|
|
@@ -4132,7 +4132,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
4132
4132
|
args: [{ selector: '[iusUserMenuFooter]', standalone: true }]
|
|
4133
4133
|
}] });
|
|
4134
4134
|
/** Duración de la animación de entrada/salida (espejo del golden). */
|
|
4135
|
-
const ANIM_MS$
|
|
4135
|
+
const ANIM_MS$2 = 260;
|
|
4136
4136
|
/** Cuánto dura el acuse del chip de ID antes de volver a `content_copy`. */
|
|
4137
4137
|
const COPIA_MS = 1600;
|
|
4138
4138
|
/**
|
|
@@ -4309,12 +4309,12 @@ class UserMenuComponent {
|
|
|
4309
4309
|
this.timers.push(setTimeout(() => this.visible.set(true), 16));
|
|
4310
4310
|
// Al asentarse se suelta el transform: una capa transformada deja el
|
|
4311
4311
|
// texto borroso.
|
|
4312
|
-
this.timers.push(setTimeout(() => this.asentado.set(true), ANIM_MS$
|
|
4312
|
+
this.timers.push(setTimeout(() => this.asentado.set(true), ANIM_MS$2 + 60));
|
|
4313
4313
|
}
|
|
4314
4314
|
else if (this.overlayRef) {
|
|
4315
4315
|
this.asentado.set(false);
|
|
4316
4316
|
this.visible.set(false);
|
|
4317
|
-
this.timers.push(setTimeout(() => this.detach(), ANIM_MS$
|
|
4317
|
+
this.timers.push(setTimeout(() => this.detach(), ANIM_MS$2 + 20));
|
|
4318
4318
|
}
|
|
4319
4319
|
}
|
|
4320
4320
|
attach() {
|
|
@@ -4546,7 +4546,7 @@ function prefersReducedMotion() {
|
|
|
4546
4546
|
typeof window.matchMedia === 'function' &&
|
|
4547
4547
|
window.matchMedia('(prefers-reduced-motion: reduce)').matches);
|
|
4548
4548
|
}
|
|
4549
|
-
let uid$
|
|
4549
|
+
let uid$d = 0;
|
|
4550
4550
|
/**
|
|
4551
4551
|
* CircularProgress — Ius Design v2.
|
|
4552
4552
|
*
|
|
@@ -4567,7 +4567,7 @@ class CircularProgressComponent {
|
|
|
4567
4567
|
this.showValue = false;
|
|
4568
4568
|
/** Congela la cuenta regresiva conservando el tiempo restante (hover del Toast). */
|
|
4569
4569
|
this.paused = false;
|
|
4570
|
-
this.gid = `ius-cp-${uid$
|
|
4570
|
+
this.gid = `ius-cp-${uid$d++}`;
|
|
4571
4571
|
this.zone = inject(NgZone);
|
|
4572
4572
|
/** % restante de la cuenta regresiva (100 → 0). */
|
|
4573
4573
|
this.remaining = signal(100, /* @ts-ignore */
|
|
@@ -4729,7 +4729,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
4729
4729
|
args: [{ transform: booleanAttribute }]
|
|
4730
4730
|
}] } });
|
|
4731
4731
|
|
|
4732
|
-
let uid$
|
|
4732
|
+
let uid$c = 0;
|
|
4733
4733
|
/**
|
|
4734
4734
|
*
|
|
4735
4735
|
* Cargador de **identidad** Litigiovirtual: tres fichas se deslizan por el
|
|
@@ -4751,7 +4751,7 @@ class LoadingMarkComponent {
|
|
|
4751
4751
|
/** Etiqueta accesible. */
|
|
4752
4752
|
this.ariaLabel = 'Cargando';
|
|
4753
4753
|
// IDs únicos por instancia para los <defs> del SVG (gradientes/filtro/máscara).
|
|
4754
|
-
this.id = `lm-${uid$
|
|
4754
|
+
this.id = `lm-${uid$c++}`;
|
|
4755
4755
|
this.baseId = `${this.id}-base`;
|
|
4756
4756
|
this.glowId = `${this.id}-glow`;
|
|
4757
4757
|
this.softId = `${this.id}-soft`;
|
|
@@ -5580,7 +5580,7 @@ function placeholderContent(kind, providerLabel) {
|
|
|
5580
5580
|
};
|
|
5581
5581
|
}
|
|
5582
5582
|
}
|
|
5583
|
-
let uid$
|
|
5583
|
+
let uid$b = 0;
|
|
5584
5584
|
/**
|
|
5585
5585
|
* CaptchaField — Ius Design v2.
|
|
5586
5586
|
*
|
|
@@ -5729,7 +5729,7 @@ class CaptchaFieldComponent {
|
|
|
5729
5729
|
this.phase = signal('loading', /* @ts-ignore */
|
|
5730
5730
|
...(ngDevMode ? [{ debugName: "phase" }] : /* istanbul ignore next */ []));
|
|
5731
5731
|
this.widgetId = null;
|
|
5732
|
-
this.baseId = `ius-cf-${uid$
|
|
5732
|
+
this.baseId = `ius-cf-${uid$b++}`;
|
|
5733
5733
|
this.hostRef = viewChild('host', /* @ts-ignore */
|
|
5734
5734
|
...(ngDevMode ? [{ debugName: "hostRef" }] : /* istanbul ignore next */ []));
|
|
5735
5735
|
this.onChange = () => { };
|
|
@@ -7017,7 +7017,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
7017
7017
|
type: Output
|
|
7018
7018
|
}] } });
|
|
7019
7019
|
|
|
7020
|
-
let uid$
|
|
7020
|
+
let uid$a = 0;
|
|
7021
7021
|
/** ¿La lista viene agrupada (`{label, options}`) o plana? */
|
|
7022
7022
|
function isGrouped(options) {
|
|
7023
7023
|
return (Array.isArray(options) &&
|
|
@@ -7198,7 +7198,7 @@ class SelectComponent {
|
|
|
7198
7198
|
* corren en el constructor, antes de que Angular asigne los `@Input`, así que
|
|
7199
7199
|
* `this.id` valdría siempre `undefined` y el `id` del consumidor se perdería.
|
|
7200
7200
|
*/
|
|
7201
|
-
this.fallbackId = `ius-sel-${uid$
|
|
7201
|
+
this.fallbackId = `ius-sel-${uid$a++}`;
|
|
7202
7202
|
this.onChange = () => { };
|
|
7203
7203
|
this.onTouched = () => { };
|
|
7204
7204
|
this.overlay = inject(Overlay);
|
|
@@ -7989,7 +7989,7 @@ class ListViewPaginationComponent {
|
|
|
7989
7989
|
this.pageSizeChange.emit(n);
|
|
7990
7990
|
}
|
|
7991
7991
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: ListViewPaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
7992
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: ListViewPaginationComponent, isStandalone: true, selector: "ius-list-view-pagination", inputs: { variant: "variant", page: "page", defaultPage: ["defaultPage", "defaultPage", numberAttribute], totalPages: "totalPages", total: "total", pageSize: ["pageSize", "pageSize", numberAttribute], pageSizeOptions: "pageSizeOptions", showCount: ["showCount", "showCount", booleanAttribute], countNoun: "countNoun", siblingCount: ["siblingCount", "siblingCount", numberAttribute], boundaryCount: ["boundaryCount", "boundaryCount", numberAttribute], size: "size", disabled: ["disabled", "disabled", booleanAttribute] }, outputs: { pageChange: "pageChange", pageSizeChange: "pageSizeChange" }, host: { attributes: { "role": "navigation", "aria-label": "Paginaci\u00F3n" }, properties: { "attr.data-variant": "variant", "attr.data-block": "showCountBlock ? 'true' : null", "style.--_pg-h": "preset.h + 'px'", "style.--_pg-icon": "preset.icon", "style.--_pg-fs": "preset.fs", "style.--_pg-gap": "preset.gap + 'px'" }, classAttribute: "ius-pagination" }, ngImport: i0, template: "<!-- Conteo X\u2013Y de Z (opcional, empuja el resto a la derecha v\u00EDa data-block) -->\
|
|
7992
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: ListViewPaginationComponent, isStandalone: true, selector: "ius-list-view-pagination", inputs: { variant: "variant", page: "page", defaultPage: ["defaultPage", "defaultPage", numberAttribute], totalPages: "totalPages", total: "total", pageSize: ["pageSize", "pageSize", numberAttribute], pageSizeOptions: "pageSizeOptions", showCount: ["showCount", "showCount", booleanAttribute], countNoun: "countNoun", siblingCount: ["siblingCount", "siblingCount", numberAttribute], boundaryCount: ["boundaryCount", "boundaryCount", numberAttribute], size: "size", disabled: ["disabled", "disabled", booleanAttribute] }, outputs: { pageChange: "pageChange", pageSizeChange: "pageSizeChange" }, host: { attributes: { "role": "navigation", "aria-label": "Paginaci\u00F3n" }, properties: { "attr.data-variant": "variant", "attr.data-block": "showCountBlock ? 'true' : null", "style.--_pg-h": "preset.h + 'px'", "style.--_pg-icon": "preset.icon", "style.--_pg-fs": "preset.fs", "style.--_pg-gap": "preset.gap + 'px'" }, classAttribute: "ius-pagination" }, ngImport: i0, template: "<!-- Conteo X\u2013Y de Z (opcional, empuja el resto a la derecha v\u00EDa data-block) -->\n@if (showCountBlock) {\n <div class=\"ius-pagination__count\">\n @if (countRanged) {\n <b>{{ countFrom }}</b>\u2013<b>{{ countTo }}</b> de <b>{{ fmt(total!) }}</b> {{ countNoun }}\n } @else {\n <b>{{ fmt(total!) }}</b> {{ countNoun }}\n }\n </div>\n}\n\n<div class=\"ius-pagination__main\">\n <!-- Selector \"Filas por p\u00E1gina\" -->\n @if (pageSizeSelectOptions.length) {\n <div class=\"ius-pagination__sizer\">\n <span>Filas</span>\n <span class=\"ius-pagination__numsel\">\n <ius-select\n [options]=\"pageSizeSelectOptions\"\n [value]=\"pageSize\"\n (valueChange)=\"onSelectPageSize($event)\"\n compact\n [searchable]=\"false\"\n [showClear]=\"false\"\n [showHelpText]=\"false\"\n [size]=\"size\"\n [disabled]=\"disabled\"\n placeholder=\"\"\n />\n </span>\n </div>\n }\n\n @if (variant === 'compact') {\n <div class=\"ius-pagination__nav\">\n <ius-icon-button\n icon=\"first_page\"\n variant=\"tertiary\"\n ariaLabel=\"Primera p\u00E1gina\"\n [disabled]=\"disabled || atStart\"\n (clicked)=\"goTo(1)\"\n />\n <ius-icon-button\n icon=\"chevron_left\"\n variant=\"tertiary\"\n ariaLabel=\"P\u00E1gina anterior\"\n [disabled]=\"disabled || atStart\"\n (clicked)=\"goTo(currentPage - 1)\"\n />\n <span class=\"ius-pagination__compact\">\n P\u00E1gina \n <span class=\"ius-pagination__numsel\">\n <ius-select\n [options]=\"pageOptions\"\n [value]=\"currentPage\"\n (valueChange)=\"onSelectPage($event)\"\n compact\n [searchable]=\"false\"\n [showClear]=\"false\"\n [showHelpText]=\"false\"\n [size]=\"size\"\n [disabled]=\"disabled || effTotalPages <= 1\"\n placeholder=\"\"\n />\n </span>\n <span> de </span>\n <b>{{ fmt(effTotalPages) }}</b>\n </span>\n <ius-icon-button\n icon=\"chevron_right\"\n variant=\"tertiary\"\n ariaLabel=\"P\u00E1gina siguiente\"\n [disabled]=\"disabled || atEnd\"\n (clicked)=\"goTo(currentPage + 1)\"\n />\n <ius-icon-button\n icon=\"last_page\"\n variant=\"tertiary\"\n ariaLabel=\"\u00DAltima p\u00E1gina\"\n [disabled]=\"disabled || atEnd\"\n (clicked)=\"goTo(effTotalPages)\"\n />\n </div>\n } @else {\n <div class=\"ius-pagination__nav\">\n <ius-icon-button\n icon=\"chevron_left\"\n variant=\"tertiary\"\n ariaLabel=\"P\u00E1gina anterior\"\n [disabled]=\"disabled || atStart\"\n (clicked)=\"goTo(currentPage - 1)\"\n />\n <div class=\"ius-pagination__pages\">\n @for (row of pageRows; track $index) {\n @if (row.ellipsis) {\n <span class=\"ius-pagination__ellipsis\" aria-hidden=\"true\">\u2026</span>\n } @else {\n <ius-button\n class=\"ius-pagination__num\"\n [variant]=\"row.value === currentPage ? 'primary' : 'tertiary'\"\n [size]=\"size\"\n [label]=\"fmt(row.value!)\"\n [disabled]=\"disabled\"\n [attr.aria-current]=\"row.value === currentPage ? 'page' : null\"\n (clicked)=\"goTo(row.value!)\"\n />\n }\n }\n </div>\n <ius-icon-button\n icon=\"chevron_right\"\n variant=\"tertiary\"\n ariaLabel=\"P\u00E1gina siguiente\"\n [disabled]=\"disabled || atEnd\"\n (clicked)=\"goTo(currentPage + 1)\"\n />\n </div>\n }\n</div>\n", styles: ["@charset \"UTF-8\";:host{-webkit-user-select:none;user-select:none;display:flex;align-items:center;gap:var(--ius-space-lg);font-family:var(--ius-font-body);color:var(--ius-text-secondary)}:host([data-block=true]){width:100%;justify-content:space-between}.ius-pagination__count{font-size:var(--_pg-fs, 14px);line-height:1.4;color:var(--ius-text-secondary);white-space:nowrap}.ius-pagination__count b{font-weight:var(--ius-fw-medium);color:var(--ius-text-primary);font-variant-numeric:tabular-nums}.ius-pagination__main{display:flex;align-items:center;gap:var(--ius-space-lg)}.ius-pagination__nav,.ius-pagination__pages{display:flex;align-items:center;gap:var(--_pg-gap, var(--ius-space-xs))}.ius-pagination__nav ::ng-deep .ius-iconbtn{--_ib-size: var(--_pg-h, 40px);--_ib-icon: var(--_pg-icon, var(--ius-icon-md))}.ius-pagination__num ::ng-deep .ius-btn{min-width:var(--_pg-h, 40px);height:var(--_pg-h, 40px);padding-left:var(--ius-space-xs);padding-right:var(--ius-space-xs);font-variant-numeric:tabular-nums}.ius-pagination__ellipsis{min-width:var(--_pg-h, 40px);height:var(--_pg-h, 40px);display:inline-flex;align-items:flex-end;justify-content:center;padding-bottom:var(--ius-space-xs);color:var(--ius-text-tertiary);font-size:var(--_pg-fs, 14px);line-height:1}.ius-pagination__compact{display:inline-flex;align-items:center;gap:var(--ius-space-xs);font-size:var(--_pg-fs, 14px);color:var(--ius-text-secondary)}.ius-pagination__compact b{color:var(--ius-text-primary);font-weight:var(--ius-fw-medium);font-variant-numeric:tabular-nums}.ius-pagination__sizer{display:inline-flex;align-items:center;gap:var(--ius-space-xs);font-size:var(--_pg-fs, 14px);color:var(--ius-text-secondary);white-space:nowrap}.ius-pagination__numsel ::ng-deep .ius-tf__field{padding-right:var(--ius-space-xs);padding-left:var(--ius-space-sm);gap:var(--ius-space-xxs)}.ius-pagination__numsel ::ng-deep .ius-select__value{font-variant-numeric:tabular-nums;min-width:16px}.ius-pagination__numsel ::ng-deep .ius-select__chevron .ius-icon{font-size:var(--ius-icon-md)}\n"], dependencies: [{ kind: "component", type: ButtonComponent, selector: "ius-button", inputs: ["variant", "label", "prefixIcon", "sufixIcon", "dynamic", "loading", "status", "disabled", "pressed", "fullWidth", "type", "ariaLabel", "action", "size"], outputs: ["clicked"] }, { kind: "component", type: IconButtonComponent, selector: "ius-icon-button", inputs: ["icon", "variant", "size", "shape", "disabled", "type", "ariaLabel", "tooltip", "tooltipPlacement"], outputs: ["clicked"] }, { kind: "component", type: SelectComponent, selector: "ius-select", inputs: ["options", "multiple", "size", "disabled", "error", "state", "open", "value", "label", "required", "placeholder", "prefixIcon", "searchable", "searchPlaceholder", "emptyText", "creatable", "createPlaceholder", "createLabel", "createFactory", "maxVisible", "helpText", "errorText", "showHelpText", "showIconHelp", "iconHelpTitle", "iconHelpContent", "showClear", "defaultOpen", "compact", "defaultValue", "id", "name"], outputs: ["valueChange", "cleared", "openChange", "created"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
7993
7993
|
}
|
|
7994
7994
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: ListViewPaginationComponent, decorators: [{
|
|
7995
7995
|
type: Component,
|
|
@@ -8003,7 +8003,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
8003
8003
|
'[style.--_pg-icon]': 'preset.icon',
|
|
8004
8004
|
'[style.--_pg-fs]': 'preset.fs',
|
|
8005
8005
|
'[style.--_pg-gap]': "preset.gap + 'px'",
|
|
8006
|
-
}, template: "<!-- Conteo X\u2013Y de Z (opcional, empuja el resto a la derecha v\u00EDa data-block) -->\
|
|
8006
|
+
}, template: "<!-- Conteo X\u2013Y de Z (opcional, empuja el resto a la derecha v\u00EDa data-block) -->\n@if (showCountBlock) {\n <div class=\"ius-pagination__count\">\n @if (countRanged) {\n <b>{{ countFrom }}</b>\u2013<b>{{ countTo }}</b> de <b>{{ fmt(total!) }}</b> {{ countNoun }}\n } @else {\n <b>{{ fmt(total!) }}</b> {{ countNoun }}\n }\n </div>\n}\n\n<div class=\"ius-pagination__main\">\n <!-- Selector \"Filas por p\u00E1gina\" -->\n @if (pageSizeSelectOptions.length) {\n <div class=\"ius-pagination__sizer\">\n <span>Filas</span>\n <span class=\"ius-pagination__numsel\">\n <ius-select\n [options]=\"pageSizeSelectOptions\"\n [value]=\"pageSize\"\n (valueChange)=\"onSelectPageSize($event)\"\n compact\n [searchable]=\"false\"\n [showClear]=\"false\"\n [showHelpText]=\"false\"\n [size]=\"size\"\n [disabled]=\"disabled\"\n placeholder=\"\"\n />\n </span>\n </div>\n }\n\n @if (variant === 'compact') {\n <div class=\"ius-pagination__nav\">\n <ius-icon-button\n icon=\"first_page\"\n variant=\"tertiary\"\n ariaLabel=\"Primera p\u00E1gina\"\n [disabled]=\"disabled || atStart\"\n (clicked)=\"goTo(1)\"\n />\n <ius-icon-button\n icon=\"chevron_left\"\n variant=\"tertiary\"\n ariaLabel=\"P\u00E1gina anterior\"\n [disabled]=\"disabled || atStart\"\n (clicked)=\"goTo(currentPage - 1)\"\n />\n <span class=\"ius-pagination__compact\">\n P\u00E1gina \n <span class=\"ius-pagination__numsel\">\n <ius-select\n [options]=\"pageOptions\"\n [value]=\"currentPage\"\n (valueChange)=\"onSelectPage($event)\"\n compact\n [searchable]=\"false\"\n [showClear]=\"false\"\n [showHelpText]=\"false\"\n [size]=\"size\"\n [disabled]=\"disabled || effTotalPages <= 1\"\n placeholder=\"\"\n />\n </span>\n <span> de </span>\n <b>{{ fmt(effTotalPages) }}</b>\n </span>\n <ius-icon-button\n icon=\"chevron_right\"\n variant=\"tertiary\"\n ariaLabel=\"P\u00E1gina siguiente\"\n [disabled]=\"disabled || atEnd\"\n (clicked)=\"goTo(currentPage + 1)\"\n />\n <ius-icon-button\n icon=\"last_page\"\n variant=\"tertiary\"\n ariaLabel=\"\u00DAltima p\u00E1gina\"\n [disabled]=\"disabled || atEnd\"\n (clicked)=\"goTo(effTotalPages)\"\n />\n </div>\n } @else {\n <div class=\"ius-pagination__nav\">\n <ius-icon-button\n icon=\"chevron_left\"\n variant=\"tertiary\"\n ariaLabel=\"P\u00E1gina anterior\"\n [disabled]=\"disabled || atStart\"\n (clicked)=\"goTo(currentPage - 1)\"\n />\n <div class=\"ius-pagination__pages\">\n @for (row of pageRows; track $index) {\n @if (row.ellipsis) {\n <span class=\"ius-pagination__ellipsis\" aria-hidden=\"true\">\u2026</span>\n } @else {\n <ius-button\n class=\"ius-pagination__num\"\n [variant]=\"row.value === currentPage ? 'primary' : 'tertiary'\"\n [size]=\"size\"\n [label]=\"fmt(row.value!)\"\n [disabled]=\"disabled\"\n [attr.aria-current]=\"row.value === currentPage ? 'page' : null\"\n (clicked)=\"goTo(row.value!)\"\n />\n }\n }\n </div>\n <ius-icon-button\n icon=\"chevron_right\"\n variant=\"tertiary\"\n ariaLabel=\"P\u00E1gina siguiente\"\n [disabled]=\"disabled || atEnd\"\n (clicked)=\"goTo(currentPage + 1)\"\n />\n </div>\n }\n</div>\n", styles: ["@charset \"UTF-8\";:host{-webkit-user-select:none;user-select:none;display:flex;align-items:center;gap:var(--ius-space-lg);font-family:var(--ius-font-body);color:var(--ius-text-secondary)}:host([data-block=true]){width:100%;justify-content:space-between}.ius-pagination__count{font-size:var(--_pg-fs, 14px);line-height:1.4;color:var(--ius-text-secondary);white-space:nowrap}.ius-pagination__count b{font-weight:var(--ius-fw-medium);color:var(--ius-text-primary);font-variant-numeric:tabular-nums}.ius-pagination__main{display:flex;align-items:center;gap:var(--ius-space-lg)}.ius-pagination__nav,.ius-pagination__pages{display:flex;align-items:center;gap:var(--_pg-gap, var(--ius-space-xs))}.ius-pagination__nav ::ng-deep .ius-iconbtn{--_ib-size: var(--_pg-h, 40px);--_ib-icon: var(--_pg-icon, var(--ius-icon-md))}.ius-pagination__num ::ng-deep .ius-btn{min-width:var(--_pg-h, 40px);height:var(--_pg-h, 40px);padding-left:var(--ius-space-xs);padding-right:var(--ius-space-xs);font-variant-numeric:tabular-nums}.ius-pagination__ellipsis{min-width:var(--_pg-h, 40px);height:var(--_pg-h, 40px);display:inline-flex;align-items:flex-end;justify-content:center;padding-bottom:var(--ius-space-xs);color:var(--ius-text-tertiary);font-size:var(--_pg-fs, 14px);line-height:1}.ius-pagination__compact{display:inline-flex;align-items:center;gap:var(--ius-space-xs);font-size:var(--_pg-fs, 14px);color:var(--ius-text-secondary)}.ius-pagination__compact b{color:var(--ius-text-primary);font-weight:var(--ius-fw-medium);font-variant-numeric:tabular-nums}.ius-pagination__sizer{display:inline-flex;align-items:center;gap:var(--ius-space-xs);font-size:var(--_pg-fs, 14px);color:var(--ius-text-secondary);white-space:nowrap}.ius-pagination__numsel ::ng-deep .ius-tf__field{padding-right:var(--ius-space-xs);padding-left:var(--ius-space-sm);gap:var(--ius-space-xxs)}.ius-pagination__numsel ::ng-deep .ius-select__value{font-variant-numeric:tabular-nums;min-width:16px}.ius-pagination__numsel ::ng-deep .ius-select__chevron .ius-icon{font-size:var(--ius-icon-md)}\n"] }]
|
|
8007
8007
|
}], propDecorators: { variant: [{
|
|
8008
8008
|
type: Input
|
|
8009
8009
|
}], page: [{
|
|
@@ -8246,7 +8246,7 @@ class ListViewComponent {
|
|
|
8246
8246
|
this.sortChange.emit(payload.value);
|
|
8247
8247
|
}
|
|
8248
8248
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: ListViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8249
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: ListViewComponent, isStandalone: true, selector: "ius-list-view", inputs: { hideHeader: ["hideHeader", "hideHeader", booleanAttribute], selectable: ["selectable", "selectable", booleanAttribute], allSelected: ["allSelected", "allSelected", booleanAttribute], someSelected: ["someSelected", "someSelected", booleanAttribute], selectLabel: "selectLabel", sortOptions: "sortOptions", sortValue: "sortValue", actions: "actions", selectedCount: ["selectedCount", "selectedCount", numberAttribute], selectionActions: "selectionActions", gap: "gap", bodyPadding: "bodyPadding", bordered: ["bordered", "bordered", booleanAttribute], scrollTrackMargin: "scrollTrackMargin", fit: ["fit", "fit", booleanAttribute], fieldWidths: "fieldWidths", hideFooter: ["hideFooter", "hideFooter", booleanAttribute], total: "total", countNoun: "countNoun", pagination: ["pagination", "pagination", booleanAttribute], paginationVariant: "paginationVariant", page: "page", pageSize: ["pageSize", "pageSize", numberAttribute], pageSizeOptions: "pageSizeOptions", size: "size" }, outputs: { selectAll: "selectAll", sortChange: "sortChange", clearSelection: "clearSelection", pageChange: "pageChange", pageSizeChange: "pageSizeChange" }, host: { properties: { "attr.data-size": "size !== 'medium' ? size : null", "attr.data-bordered": "bordered ? 'true' : 'false'", "attr.data-fit": "fit ? 'height' : null" }, classAttribute: "ius-listview" }, queries: [{ propertyName: "filtersRef", first: true, predicate: IusListViewFiltersDirective, descendants: true, isSignal: true }, { propertyName: "headerStartRef", first: true, predicate: IusListViewHeaderStartDirective, descendants: true, isSignal: true }, { propertyName: "headerEndRef", first: true, predicate: IusListViewHeaderEndDirective, descendants: true, isSignal: true }, { propertyName: "toolbarRef", first: true, predicate: IusListViewToolbarDirective, descendants: true, isSignal: true }, { propertyName: "footerStartRef", first: true, predicate: IusListViewFooterStartDirective, descendants: true, isSignal: true }, { propertyName: "footerEndRef", first: true, predicate: IusListViewFooterEndDirective, descendants: true, isSignal: true }], ngImport: i0, template: "<!-- Header: modo selecci\u00F3n > toolbar > integrado -->\r\n@if (!hideHeader) {\r\n @if (inSelection) {\r\n <div class=\"ius-listview__header\" data-mode=\"selection\">\r\n @if (selectable) {\r\n <ius-checkbox\r\n [checked]=\"allSelected\"\r\n [indeterminate]=\"someSelected\"\r\n size=\"small\"\r\n (checkedChange)=\"selectAll.emit($event)\"\r\n />\r\n }\r\n <span class=\"ius-listview__selcount\">{{ selCountText }}</span>\r\n @if (selectionActions.length) {\r\n <span class=\"ius-listview__divider\"></span>\r\n }\r\n <div class=\"ius-listview__actions\">\r\n @for (a of selectionActions; track a.key ?? $index) {\r\n <ius-icon-button\r\n [icon]=\"a.icon\"\r\n variant=\"tertiary\"\r\n [size]=\"iconSize\"\r\n [ariaLabel]=\"a.ariaLabel || a.label || a.icon\"\r\n [disabled]=\"a.disabled ?? false\"\r\n (clicked)=\"onAction(a, $event)\"\r\n />\r\n }\r\n </div>\r\n <span class=\"ius-listview__spacer\"></span>\r\n @if (showClear) {\r\n <ius-text-button label=\"Limpiar\" (clicked)=\"clearSelection.emit()\" />\r\n }\r\n </div>\r\n } @else if (hasToolbar) {\r\n <div class=\"ius-listview__header ius-listview__header--toolbar\">\r\n <ng-content select=\"[iusListViewToolbar]\" />\r\n </div>\r\n } @else {\r\n <div class=\"ius-listview__header\">\r\n <div class=\"ius-listview__hgroup ius-listview__hgroup--grow\">\r\n <ng-content select=\"[iusListViewHeaderStart]\" />\r\n @if (selectable) {\r\n <ius-checkbox\r\n [checked]=\"allSelected\"\r\n [indeterminate]=\"someSelected\"\r\n size=\"small\"\r\n [label]=\"selectLabel\"\r\n (checkedChange)=\"selectAll.emit($event)\"\r\n />\r\n }\r\n @if (sortOptions.length) {\r\n <!-- orden: Dropdown de selecci\u00F3n \u00FAnica (trigger ghost swap_vert, tone neutral) -->\r\n <span class=\"ius-listview__sort\">\r\n <ius-dropdown\r\n selectable\r\n [items]=\"sortOptions\"\r\n [value]=\"sortValue\"\r\n [triggerLabel]=\"sortTriggerFallback\"\r\n triggerIcon=\"swap_vert\"\r\n tone=\"neutral\"\r\n ariaLabel=\"Ordenar\"\r\n (valueChange)=\"onSortChange($event)\"\r\n />\r\n </span>\r\n }\r\n @if (hasFilters) {\r\n <div class=\"ius-listview__filters\"><ng-content select=\"[iusListViewFilters]\" /></div>\r\n }\r\n </div>\r\n <div class=\"ius-listview__hgroup ius-listview__hgroup--end\">\r\n @if (actions.length) {\r\n <div class=\"ius-listview__actions\">\r\n @for (a of actions; track a.key ?? $index) {\r\n <ius-icon-button\r\n [icon]=\"a.icon\"\r\n variant=\"tertiary\"\r\n [size]=\"iconSize\"\r\n [ariaLabel]=\"a.ariaLabel || a.label || a.icon\"\r\n [disabled]=\"a.disabled ?? false\"\r\n (clicked)=\"onAction(a, $event)\"\r\n />\r\n }\r\n </div>\r\n }\r\n <ng-content select=\"[iusListViewHeaderEnd]\" />\r\n </div>\r\n </div>\r\n }\r\n}\r\n\r\n<!-- Body: \u00FAnico scroller; emite la rejilla --_lc-col-N a los ListCard proyectados -->\r\n<div\r\n class=\"ius-listview__body ius-scroll\"\r\n [style.gap]=\"px(gap)\"\r\n [style.padding]=\"px(bodyPadding)\"\r\n [style.--_sb-track-margin]=\"px(scrollTrackMargin)\"\r\n [style.--_lc-col-1]=\"colVar(0)\"\r\n [style.--_lc-col-2]=\"colVar(1)\"\r\n [style.--_lc-col-3]=\"colVar(2)\"\r\n [style.--_lc-col-4]=\"colVar(3)\"\r\n [style.--_lc-col-5]=\"colVar(4)\"\r\n [style.--_lc-col-6]=\"colVar(5)\"\r\n>\r\n <ng-content />\r\n</div>\r\n\r\n<!-- Footer: total a la izquierda + paginaci\u00F3n a la derecha -->\r\n@if (showFooter) {\r\n <div class=\"ius-listview__footer\">\r\n <ng-content select=\"[iusListViewFooterStart]\" />\r\n @if (countText) {\r\n <span class=\"ius-listview__count\">{{ countText }}</span>\r\n }\r\n @if (pagination) {\r\n <!-- FALLBACK Pagination: port interno (reemplazar por ius-pagination cuando exista) -->\r\n <ius-list-view-pagination\r\n [variant]=\"paginationVariant\"\r\n [total]=\"total\"\r\n [page]=\"page\"\r\n [pageSize]=\"pageSize\"\r\n [pageSizeOptions]=\"pageSizeOptions\"\r\n size=\"small\"\r\n (pageChange)=\"pageChange.emit($event)\"\r\n (pageSizeChange)=\"pageSizeChange.emit($event)\"\r\n />\r\n }\r\n <ng-content select=\"[iusListViewFooterEnd]\" />\r\n </div>\r\n}\r\n", styles: ["@charset \"UTF-8\";:host{display:flex;flex-direction:column;min-height:0;width:100%;height:100%;font-family:var(--ius-font-body);box-sizing:border-box}:host([data-bordered=true]){background:var(--ius-surface-card);border:1px solid var(--ius-stroke);border-radius:var(--ius-radius-lg);overflow:hidden}.ius-listview__header{flex:0 0 auto;display:flex;align-items:center;gap:var(--ius-space-sm);flex-wrap:nowrap;padding:var(--ius-space-xs) var(--ius-space-md);min-height:40px}.ius-listview__hgroup{display:flex;align-items:center;gap:var(--ius-space-sm);min-width:0;flex-wrap:wrap}.ius-listview__hgroup--grow{flex:1 1 auto}.ius-listview__hgroup--end{flex:0 0 auto;flex-wrap:nowrap;justify-content:flex-end}:host([data-bordered=true]) .ius-listview__header{border-bottom:1px solid var(--ius-stroke)}.ius-listview__header--toolbar{flex-wrap:wrap;min-height:0}:host([data-size=small]) .ius-listview__header{gap:var(--ius-space-xs);padding:var(--ius-space-xs) var(--ius-space-sm);min-height:36px}@container style(--ius-density: small){:host(:not([data-size])) .ius-listview__header{gap:var(--ius-space-xs);padding:var(--ius-space-xs) var(--ius-space-sm);min-height:36px}}.ius-listview__spacer{flex:1 1 auto}.ius-listview__divider{align-self:stretch;width:1px;background:var(--ius-stroke);margin:var(--ius-space-xxs) var(--ius-space-xs)}.ius-listview__filters{display:flex;align-items:center;gap:var(--ius-space-xs);flex-wrap:wrap}.ius-listview__actions{display:flex;align-items:center;gap:var(--ius-space-xxs)}.ius-listview__selcount{font:var(--ius-fw-regular, 400) var(--ius-fs-base)/var(--ius-lh-base) var(--ius-font-body);color:var(--ius-primary-900);font-variant-numeric:tabular-nums}.ius-listview__body{flex:1 1 auto;min-height:0;overflow-y:auto;display:flex;flex-direction:column}:host([data-fit=height]){flex:1 1 auto;min-height:0;overflow:hidden}.ius-listview__body ::ng-deep .ius-listcard:hover{z-index:2}.ius-listview__footer{flex:0 0 auto;display:flex;align-items:center;gap:var(--ius-space-sm);padding:var(--ius-space-xs) var(--ius-space-md)}:host([data-bordered=true]) .ius-listview__footer{border-top:1px solid var(--ius-stroke)}.ius-listview__count{font:var(--ius-fw-regular, 400) var(--ius-fs-sm)/var(--ius-lh-sm) var(--ius-font-body);color:var(--ius-text-secondary);font-variant-numeric:tabular-nums}.ius-listview__footer .ius-pagination{margin-left:auto;flex:0 0 auto}.ius-listview__sort{display:inline-flex}\n"], dependencies: [{ kind: "component", type: CheckboxComponent, selector: "ius-checkbox", inputs: ["label", "labelPosition", "showIconHelp", "iconHelpTitle", "iconHelpContent", "name", "value", "ariaLabel", "size", "checked", "defaultChecked", "indeterminate", "disabled"], outputs: ["checkedChange"] }, { kind: "component", type: DropdownComponent, selector: "ius-dropdown", inputs: ["items", "selectable", "value", "label", "triggerLabel", "triggerIcon", "tone", "variant", "placement", "open", "defaultOpen", "ariaLabel"], outputs: ["valueChange", "openChange"] }, { kind: "component", type: IconButtonComponent, selector: "ius-icon-button", inputs: ["icon", "variant", "size", "shape", "disabled", "type", "ariaLabel", "tooltip", "tooltipPlacement"], outputs: ["clicked"] }, { kind: "component", type: TextButtonComponent, selector: "ius-text-button", inputs: ["label", "prefixIcon", "sufixIcon", "size", "disabled", "type", "ariaExpanded", "ariaControls"], outputs: ["clicked"] }, { kind: "component", type: ListViewPaginationComponent, selector: "ius-list-view-pagination", inputs: ["variant", "page", "defaultPage", "totalPages", "total", "pageSize", "pageSizeOptions", "showCount", "countNoun", "siblingCount", "boundaryCount", "size", "disabled"], outputs: ["pageChange", "pageSizeChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
8249
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: ListViewComponent, isStandalone: true, selector: "ius-list-view", inputs: { hideHeader: ["hideHeader", "hideHeader", booleanAttribute], selectable: ["selectable", "selectable", booleanAttribute], allSelected: ["allSelected", "allSelected", booleanAttribute], someSelected: ["someSelected", "someSelected", booleanAttribute], selectLabel: "selectLabel", sortOptions: "sortOptions", sortValue: "sortValue", actions: "actions", selectedCount: ["selectedCount", "selectedCount", numberAttribute], selectionActions: "selectionActions", gap: "gap", bodyPadding: "bodyPadding", bordered: ["bordered", "bordered", booleanAttribute], scrollTrackMargin: "scrollTrackMargin", fit: ["fit", "fit", booleanAttribute], fieldWidths: "fieldWidths", hideFooter: ["hideFooter", "hideFooter", booleanAttribute], total: "total", countNoun: "countNoun", pagination: ["pagination", "pagination", booleanAttribute], paginationVariant: "paginationVariant", page: "page", pageSize: ["pageSize", "pageSize", numberAttribute], pageSizeOptions: "pageSizeOptions", size: "size" }, outputs: { selectAll: "selectAll", sortChange: "sortChange", clearSelection: "clearSelection", pageChange: "pageChange", pageSizeChange: "pageSizeChange" }, host: { properties: { "attr.data-size": "size !== 'medium' ? size : null", "attr.data-bordered": "bordered ? 'true' : 'false'", "attr.data-fit": "fit ? 'height' : null" }, classAttribute: "ius-listview" }, queries: [{ propertyName: "filtersRef", first: true, predicate: IusListViewFiltersDirective, descendants: true, isSignal: true }, { propertyName: "headerStartRef", first: true, predicate: IusListViewHeaderStartDirective, descendants: true, isSignal: true }, { propertyName: "headerEndRef", first: true, predicate: IusListViewHeaderEndDirective, descendants: true, isSignal: true }, { propertyName: "toolbarRef", first: true, predicate: IusListViewToolbarDirective, descendants: true, isSignal: true }, { propertyName: "footerStartRef", first: true, predicate: IusListViewFooterStartDirective, descendants: true, isSignal: true }, { propertyName: "footerEndRef", first: true, predicate: IusListViewFooterEndDirective, descendants: true, isSignal: true }], ngImport: i0, template: "<!-- Header: modo selecci\u00F3n > toolbar > integrado -->\n@if (!hideHeader) {\n @if (inSelection) {\n <div class=\"ius-listview__header\" data-mode=\"selection\">\n @if (selectable) {\n <ius-checkbox\n [checked]=\"allSelected\"\n [indeterminate]=\"someSelected\"\n size=\"small\"\n (checkedChange)=\"selectAll.emit($event)\"\n />\n }\n <span class=\"ius-listview__selcount\">{{ selCountText }}</span>\n @if (selectionActions.length) {\n <span class=\"ius-listview__divider\"></span>\n }\n <div class=\"ius-listview__actions\">\n @for (a of selectionActions; track a.key ?? $index) {\n <ius-icon-button\n [icon]=\"a.icon\"\n variant=\"tertiary\"\n [size]=\"iconSize\"\n [ariaLabel]=\"a.ariaLabel || a.label || a.icon\"\n [disabled]=\"a.disabled ?? false\"\n (clicked)=\"onAction(a, $event)\"\n />\n }\n </div>\n <span class=\"ius-listview__spacer\"></span>\n @if (showClear) {\n <ius-text-button label=\"Limpiar\" (clicked)=\"clearSelection.emit()\" />\n }\n </div>\n } @else if (hasToolbar) {\n <div class=\"ius-listview__header ius-listview__header--toolbar\">\n <ng-content select=\"[iusListViewToolbar]\" />\n </div>\n } @else {\n <div class=\"ius-listview__header\">\n <div class=\"ius-listview__hgroup ius-listview__hgroup--grow\">\n <ng-content select=\"[iusListViewHeaderStart]\" />\n @if (selectable) {\n <ius-checkbox\n [checked]=\"allSelected\"\n [indeterminate]=\"someSelected\"\n size=\"small\"\n [label]=\"selectLabel\"\n (checkedChange)=\"selectAll.emit($event)\"\n />\n }\n @if (sortOptions.length) {\n <!-- orden: Dropdown de selecci\u00F3n \u00FAnica (trigger ghost swap_vert, tone neutral) -->\n <span class=\"ius-listview__sort\">\n <ius-dropdown\n selectable\n [items]=\"sortOptions\"\n [value]=\"sortValue\"\n [triggerLabel]=\"sortTriggerFallback\"\n triggerIcon=\"swap_vert\"\n tone=\"neutral\"\n ariaLabel=\"Ordenar\"\n (valueChange)=\"onSortChange($event)\"\n />\n </span>\n }\n @if (hasFilters) {\n <div class=\"ius-listview__filters\"><ng-content select=\"[iusListViewFilters]\" /></div>\n }\n </div>\n <div class=\"ius-listview__hgroup ius-listview__hgroup--end\">\n @if (actions.length) {\n <div class=\"ius-listview__actions\">\n @for (a of actions; track a.key ?? $index) {\n <ius-icon-button\n [icon]=\"a.icon\"\n variant=\"tertiary\"\n [size]=\"iconSize\"\n [ariaLabel]=\"a.ariaLabel || a.label || a.icon\"\n [disabled]=\"a.disabled ?? false\"\n (clicked)=\"onAction(a, $event)\"\n />\n }\n </div>\n }\n <ng-content select=\"[iusListViewHeaderEnd]\" />\n </div>\n </div>\n }\n}\n\n<!-- Body: \u00FAnico scroller; emite la rejilla --_lc-col-N a los ListCard proyectados -->\n<div\n class=\"ius-listview__body ius-scroll\"\n [style.gap]=\"px(gap)\"\n [style.padding]=\"px(bodyPadding)\"\n [style.--_sb-track-margin]=\"px(scrollTrackMargin)\"\n [style.--_lc-col-1]=\"colVar(0)\"\n [style.--_lc-col-2]=\"colVar(1)\"\n [style.--_lc-col-3]=\"colVar(2)\"\n [style.--_lc-col-4]=\"colVar(3)\"\n [style.--_lc-col-5]=\"colVar(4)\"\n [style.--_lc-col-6]=\"colVar(5)\"\n>\n <ng-content />\n</div>\n\n<!-- Footer: total a la izquierda + paginaci\u00F3n a la derecha -->\n@if (showFooter) {\n <div class=\"ius-listview__footer\">\n <ng-content select=\"[iusListViewFooterStart]\" />\n @if (countText) {\n <span class=\"ius-listview__count\">{{ countText }}</span>\n }\n @if (pagination) {\n <!-- FALLBACK Pagination: port interno (reemplazar por ius-pagination cuando exista) -->\n <ius-list-view-pagination\n [variant]=\"paginationVariant\"\n [total]=\"total\"\n [page]=\"page\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n size=\"small\"\n (pageChange)=\"pageChange.emit($event)\"\n (pageSizeChange)=\"pageSizeChange.emit($event)\"\n />\n }\n <ng-content select=\"[iusListViewFooterEnd]\" />\n </div>\n}\n", styles: ["@charset \"UTF-8\";:host{display:flex;flex-direction:column;min-height:0;width:100%;height:100%;font-family:var(--ius-font-body);box-sizing:border-box}:host([data-bordered=true]){background:var(--ius-surface-card);border:1px solid var(--ius-stroke);border-radius:var(--ius-radius-lg);overflow:hidden}.ius-listview__header{flex:0 0 auto;display:flex;align-items:center;gap:var(--ius-space-sm);flex-wrap:nowrap;padding:var(--ius-space-xs) var(--ius-space-md);min-height:40px}.ius-listview__hgroup{display:flex;align-items:center;gap:var(--ius-space-sm);min-width:0;flex-wrap:wrap}.ius-listview__hgroup--grow{flex:1 1 auto}.ius-listview__hgroup--end{flex:0 0 auto;flex-wrap:nowrap;justify-content:flex-end}:host([data-bordered=true]) .ius-listview__header{border-bottom:1px solid var(--ius-stroke)}.ius-listview__header--toolbar{flex-wrap:wrap;min-height:0}:host([data-size=small]) .ius-listview__header{gap:var(--ius-space-xs);padding:var(--ius-space-xs) var(--ius-space-sm);min-height:36px}@container style(--ius-density: small){:host(:not([data-size])) .ius-listview__header{gap:var(--ius-space-xs);padding:var(--ius-space-xs) var(--ius-space-sm);min-height:36px}}.ius-listview__spacer{flex:1 1 auto}.ius-listview__divider{align-self:stretch;width:1px;background:var(--ius-stroke);margin:var(--ius-space-xxs) var(--ius-space-xs)}.ius-listview__filters{display:flex;align-items:center;gap:var(--ius-space-xs);flex-wrap:wrap}.ius-listview__actions{display:flex;align-items:center;gap:var(--ius-space-xxs)}.ius-listview__selcount{font:var(--ius-fw-regular, 400) var(--ius-fs-base)/var(--ius-lh-base) var(--ius-font-body);color:var(--ius-primary-900);font-variant-numeric:tabular-nums}.ius-listview__body{flex:1 1 auto;min-height:0;overflow-y:auto;display:flex;flex-direction:column}:host([data-fit=height]){flex:1 1 auto;min-height:0;overflow:hidden}.ius-listview__body ::ng-deep .ius-listcard:hover{z-index:2}.ius-listview__footer{flex:0 0 auto;display:flex;align-items:center;gap:var(--ius-space-sm);padding:var(--ius-space-xs) var(--ius-space-md)}:host([data-bordered=true]) .ius-listview__footer{border-top:1px solid var(--ius-stroke)}.ius-listview__count{font:var(--ius-fw-regular, 400) var(--ius-fs-sm)/var(--ius-lh-sm) var(--ius-font-body);color:var(--ius-text-secondary);font-variant-numeric:tabular-nums}.ius-listview__footer .ius-pagination{margin-left:auto;flex:0 0 auto}.ius-listview__sort{display:inline-flex}\n"], dependencies: [{ kind: "component", type: CheckboxComponent, selector: "ius-checkbox", inputs: ["label", "labelPosition", "showIconHelp", "iconHelpTitle", "iconHelpContent", "name", "value", "ariaLabel", "size", "checked", "defaultChecked", "indeterminate", "disabled"], outputs: ["checkedChange"] }, { kind: "component", type: DropdownComponent, selector: "ius-dropdown", inputs: ["items", "selectable", "value", "label", "triggerLabel", "triggerIcon", "tone", "variant", "placement", "open", "defaultOpen", "ariaLabel"], outputs: ["valueChange", "openChange"] }, { kind: "component", type: IconButtonComponent, selector: "ius-icon-button", inputs: ["icon", "variant", "size", "shape", "disabled", "type", "ariaLabel", "tooltip", "tooltipPlacement"], outputs: ["clicked"] }, { kind: "component", type: TextButtonComponent, selector: "ius-text-button", inputs: ["label", "prefixIcon", "sufixIcon", "size", "disabled", "type", "ariaExpanded", "ariaControls"], outputs: ["clicked"] }, { kind: "component", type: ListViewPaginationComponent, selector: "ius-list-view-pagination", inputs: ["variant", "page", "defaultPage", "totalPages", "total", "pageSize", "pageSizeOptions", "showCount", "countNoun", "siblingCount", "boundaryCount", "size", "disabled"], outputs: ["pageChange", "pageSizeChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
8250
8250
|
}
|
|
8251
8251
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: ListViewComponent, decorators: [{
|
|
8252
8252
|
type: Component,
|
|
@@ -8261,7 +8261,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
8261
8261
|
'[attr.data-size]': "size !== 'medium' ? size : null",
|
|
8262
8262
|
'[attr.data-bordered]': "bordered ? 'true' : 'false'",
|
|
8263
8263
|
'[attr.data-fit]': "fit ? 'height' : null",
|
|
8264
|
-
}, template: "<!-- Header: modo selecci\u00F3n > toolbar > integrado -->\
|
|
8264
|
+
}, template: "<!-- Header: modo selecci\u00F3n > toolbar > integrado -->\n@if (!hideHeader) {\n @if (inSelection) {\n <div class=\"ius-listview__header\" data-mode=\"selection\">\n @if (selectable) {\n <ius-checkbox\n [checked]=\"allSelected\"\n [indeterminate]=\"someSelected\"\n size=\"small\"\n (checkedChange)=\"selectAll.emit($event)\"\n />\n }\n <span class=\"ius-listview__selcount\">{{ selCountText }}</span>\n @if (selectionActions.length) {\n <span class=\"ius-listview__divider\"></span>\n }\n <div class=\"ius-listview__actions\">\n @for (a of selectionActions; track a.key ?? $index) {\n <ius-icon-button\n [icon]=\"a.icon\"\n variant=\"tertiary\"\n [size]=\"iconSize\"\n [ariaLabel]=\"a.ariaLabel || a.label || a.icon\"\n [disabled]=\"a.disabled ?? false\"\n (clicked)=\"onAction(a, $event)\"\n />\n }\n </div>\n <span class=\"ius-listview__spacer\"></span>\n @if (showClear) {\n <ius-text-button label=\"Limpiar\" (clicked)=\"clearSelection.emit()\" />\n }\n </div>\n } @else if (hasToolbar) {\n <div class=\"ius-listview__header ius-listview__header--toolbar\">\n <ng-content select=\"[iusListViewToolbar]\" />\n </div>\n } @else {\n <div class=\"ius-listview__header\">\n <div class=\"ius-listview__hgroup ius-listview__hgroup--grow\">\n <ng-content select=\"[iusListViewHeaderStart]\" />\n @if (selectable) {\n <ius-checkbox\n [checked]=\"allSelected\"\n [indeterminate]=\"someSelected\"\n size=\"small\"\n [label]=\"selectLabel\"\n (checkedChange)=\"selectAll.emit($event)\"\n />\n }\n @if (sortOptions.length) {\n <!-- orden: Dropdown de selecci\u00F3n \u00FAnica (trigger ghost swap_vert, tone neutral) -->\n <span class=\"ius-listview__sort\">\n <ius-dropdown\n selectable\n [items]=\"sortOptions\"\n [value]=\"sortValue\"\n [triggerLabel]=\"sortTriggerFallback\"\n triggerIcon=\"swap_vert\"\n tone=\"neutral\"\n ariaLabel=\"Ordenar\"\n (valueChange)=\"onSortChange($event)\"\n />\n </span>\n }\n @if (hasFilters) {\n <div class=\"ius-listview__filters\"><ng-content select=\"[iusListViewFilters]\" /></div>\n }\n </div>\n <div class=\"ius-listview__hgroup ius-listview__hgroup--end\">\n @if (actions.length) {\n <div class=\"ius-listview__actions\">\n @for (a of actions; track a.key ?? $index) {\n <ius-icon-button\n [icon]=\"a.icon\"\n variant=\"tertiary\"\n [size]=\"iconSize\"\n [ariaLabel]=\"a.ariaLabel || a.label || a.icon\"\n [disabled]=\"a.disabled ?? false\"\n (clicked)=\"onAction(a, $event)\"\n />\n }\n </div>\n }\n <ng-content select=\"[iusListViewHeaderEnd]\" />\n </div>\n </div>\n }\n}\n\n<!-- Body: \u00FAnico scroller; emite la rejilla --_lc-col-N a los ListCard proyectados -->\n<div\n class=\"ius-listview__body ius-scroll\"\n [style.gap]=\"px(gap)\"\n [style.padding]=\"px(bodyPadding)\"\n [style.--_sb-track-margin]=\"px(scrollTrackMargin)\"\n [style.--_lc-col-1]=\"colVar(0)\"\n [style.--_lc-col-2]=\"colVar(1)\"\n [style.--_lc-col-3]=\"colVar(2)\"\n [style.--_lc-col-4]=\"colVar(3)\"\n [style.--_lc-col-5]=\"colVar(4)\"\n [style.--_lc-col-6]=\"colVar(5)\"\n>\n <ng-content />\n</div>\n\n<!-- Footer: total a la izquierda + paginaci\u00F3n a la derecha -->\n@if (showFooter) {\n <div class=\"ius-listview__footer\">\n <ng-content select=\"[iusListViewFooterStart]\" />\n @if (countText) {\n <span class=\"ius-listview__count\">{{ countText }}</span>\n }\n @if (pagination) {\n <!-- FALLBACK Pagination: port interno (reemplazar por ius-pagination cuando exista) -->\n <ius-list-view-pagination\n [variant]=\"paginationVariant\"\n [total]=\"total\"\n [page]=\"page\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n size=\"small\"\n (pageChange)=\"pageChange.emit($event)\"\n (pageSizeChange)=\"pageSizeChange.emit($event)\"\n />\n }\n <ng-content select=\"[iusListViewFooterEnd]\" />\n </div>\n}\n", styles: ["@charset \"UTF-8\";:host{display:flex;flex-direction:column;min-height:0;width:100%;height:100%;font-family:var(--ius-font-body);box-sizing:border-box}:host([data-bordered=true]){background:var(--ius-surface-card);border:1px solid var(--ius-stroke);border-radius:var(--ius-radius-lg);overflow:hidden}.ius-listview__header{flex:0 0 auto;display:flex;align-items:center;gap:var(--ius-space-sm);flex-wrap:nowrap;padding:var(--ius-space-xs) var(--ius-space-md);min-height:40px}.ius-listview__hgroup{display:flex;align-items:center;gap:var(--ius-space-sm);min-width:0;flex-wrap:wrap}.ius-listview__hgroup--grow{flex:1 1 auto}.ius-listview__hgroup--end{flex:0 0 auto;flex-wrap:nowrap;justify-content:flex-end}:host([data-bordered=true]) .ius-listview__header{border-bottom:1px solid var(--ius-stroke)}.ius-listview__header--toolbar{flex-wrap:wrap;min-height:0}:host([data-size=small]) .ius-listview__header{gap:var(--ius-space-xs);padding:var(--ius-space-xs) var(--ius-space-sm);min-height:36px}@container style(--ius-density: small){:host(:not([data-size])) .ius-listview__header{gap:var(--ius-space-xs);padding:var(--ius-space-xs) var(--ius-space-sm);min-height:36px}}.ius-listview__spacer{flex:1 1 auto}.ius-listview__divider{align-self:stretch;width:1px;background:var(--ius-stroke);margin:var(--ius-space-xxs) var(--ius-space-xs)}.ius-listview__filters{display:flex;align-items:center;gap:var(--ius-space-xs);flex-wrap:wrap}.ius-listview__actions{display:flex;align-items:center;gap:var(--ius-space-xxs)}.ius-listview__selcount{font:var(--ius-fw-regular, 400) var(--ius-fs-base)/var(--ius-lh-base) var(--ius-font-body);color:var(--ius-primary-900);font-variant-numeric:tabular-nums}.ius-listview__body{flex:1 1 auto;min-height:0;overflow-y:auto;display:flex;flex-direction:column}:host([data-fit=height]){flex:1 1 auto;min-height:0;overflow:hidden}.ius-listview__body ::ng-deep .ius-listcard:hover{z-index:2}.ius-listview__footer{flex:0 0 auto;display:flex;align-items:center;gap:var(--ius-space-sm);padding:var(--ius-space-xs) var(--ius-space-md)}:host([data-bordered=true]) .ius-listview__footer{border-top:1px solid var(--ius-stroke)}.ius-listview__count{font:var(--ius-fw-regular, 400) var(--ius-fs-sm)/var(--ius-lh-sm) var(--ius-font-body);color:var(--ius-text-secondary);font-variant-numeric:tabular-nums}.ius-listview__footer .ius-pagination{margin-left:auto;flex:0 0 auto}.ius-listview__sort{display:inline-flex}\n"] }]
|
|
8265
8265
|
}], propDecorators: { hideHeader: [{
|
|
8266
8266
|
type: Input,
|
|
8267
8267
|
args: [{ transform: booleanAttribute }]
|
|
@@ -8588,7 +8588,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
8588
8588
|
}], trailingRef: [{ type: i0.ContentChild, args: [i0.forwardRef(() => IusPersonItemTrailingDirective), { isSignal: true }] }], nameRef: [{ type: i0.ContentChild, args: [i0.forwardRef(() => IusPersonItemNameDirective), { isSignal: true }] }] } });
|
|
8589
8589
|
|
|
8590
8590
|
/** Duración de la animación de entrada/salida (espejo de ANIM_MS del golden). */
|
|
8591
|
-
const ANIM_MS = 260;
|
|
8591
|
+
const ANIM_MS$1 = 260;
|
|
8592
8592
|
let nextDrawerId = 0;
|
|
8593
8593
|
/** Título rico proyectado (alternativa al input `title`). */
|
|
8594
8594
|
class IusDrawerTitleDirective {
|
|
@@ -8729,12 +8729,12 @@ class DrawerComponent {
|
|
|
8729
8729
|
this.timers.push(setTimeout(() => this.visible.set(true), 16));
|
|
8730
8730
|
// Al asentarse el deslizamiento se suelta el transform para que el texto
|
|
8731
8731
|
// rasterice nítido (un transform identidad deja una capa borrosa).
|
|
8732
|
-
this.timers.push(setTimeout(() => this.entered.set(true), ANIM_MS + 60));
|
|
8732
|
+
this.timers.push(setTimeout(() => this.entered.set(true), ANIM_MS$1 + 60));
|
|
8733
8733
|
}
|
|
8734
8734
|
else if (this.overlayRef) {
|
|
8735
8735
|
this.entered.set(false);
|
|
8736
8736
|
this.visible.set(false);
|
|
8737
|
-
this.timers.push(setTimeout(() => this.detach(), ANIM_MS + 20));
|
|
8737
|
+
this.timers.push(setTimeout(() => this.detach(), ANIM_MS$1 + 20));
|
|
8738
8738
|
}
|
|
8739
8739
|
}
|
|
8740
8740
|
attach() {
|
|
@@ -8767,11 +8767,11 @@ class DrawerComponent {
|
|
|
8767
8767
|
this.timers = [];
|
|
8768
8768
|
}
|
|
8769
8769
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: DrawerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
8770
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: DrawerComponent, isStandalone: true, selector: "ius-drawer", inputs: { open: "open", defaultOpen: ["defaultOpen", "defaultOpen", booleanAttribute], side: "side", size: "size", title: "title", centerTitle: ["centerTitle", "centerTitle", booleanAttribute], showBack: "showBack", showClose: ["showClose", "showClose", booleanAttribute], closeOnScrim: ["closeOnScrim", "closeOnScrim", booleanAttribute], closeOnEsc: ["closeOnEsc", "closeOnEsc", booleanAttribute], showScrim: ["showScrim", "showScrim", booleanAttribute], ariaLabel: "ariaLabel" }, outputs: { closed: "closed", openChange: "openChange", back: "back" }, queries: [{ propertyName: "titleSlot", first: true, predicate: IusDrawerTitleDirective, descendants: true }, { propertyName: "actionsSlot", first: true, predicate: IusDrawerHeaderActionsDirective, descendants: true }, { propertyName: "footerSlot", first: true, predicate: IusDrawerFooterDirective, descendants: true }], viewQueries: [{ propertyName: "tpl", first: true, predicate: ["tpl"], descendants: true, static: true }], ngImport: i0, template: "<ng-template #tpl>\
|
|
8770
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: DrawerComponent, isStandalone: true, selector: "ius-drawer", inputs: { open: "open", defaultOpen: ["defaultOpen", "defaultOpen", booleanAttribute], side: "side", size: "size", title: "title", centerTitle: ["centerTitle", "centerTitle", booleanAttribute], showBack: "showBack", showClose: ["showClose", "showClose", booleanAttribute], closeOnScrim: ["closeOnScrim", "closeOnScrim", booleanAttribute], closeOnEsc: ["closeOnEsc", "closeOnEsc", booleanAttribute], showScrim: ["showScrim", "showScrim", booleanAttribute], ariaLabel: "ariaLabel" }, outputs: { closed: "closed", openChange: "openChange", back: "back" }, queries: [{ propertyName: "titleSlot", first: true, predicate: IusDrawerTitleDirective, descendants: true }, { propertyName: "actionsSlot", first: true, predicate: IusDrawerHeaderActionsDirective, descendants: true }, { propertyName: "footerSlot", first: true, predicate: IusDrawerFooterDirective, descendants: true }], viewQueries: [{ propertyName: "tpl", first: true, predicate: ["tpl"], descendants: true, static: true }], ngImport: i0, template: "<ng-template #tpl>\n @if (showScrim) {\n <div\n class=\"ius-drawer-scrim\"\n [attr.data-visible]=\"visible() ? 'true' : null\"\n (click)=\"onScrimClick()\"\n ></div>\n }\n <div\n class=\"ius-drawer\"\n role=\"dialog\"\n aria-modal=\"true\"\n tabindex=\"-1\"\n cdkTrapFocus\n [cdkTrapFocusAutoCapture]=\"true\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"labelledBy\"\n [attr.data-side]=\"side\"\n [attr.data-size]=\"size\"\n [attr.data-visible]=\"visible() ? 'true' : null\"\n [attr.data-entered]=\"entered() ? 'true' : null\"\n >\n @if (hasHeader) {\n <div class=\"ius-drawer__header\">\n @if (showBackBtn) {\n <ius-icon-button\n icon=\"arrow_back\"\n variant=\"tertiary\"\n size=\"medium\"\n ariaLabel=\"Volver\"\n (clicked)=\"onBackClick()\"\n />\n }\n @if (hasTitle) {\n <h2\n class=\"ius-drawer__title\"\n [class.ius-drawer__title--center]=\"centerTitle\"\n [id]=\"titleId\"\n >{{ title }}<ng-content select=\"[iusDrawerTitle]\" /></h2>\n }\n @if (hasActionsZone) {\n <div class=\"ius-drawer__actions\">\n <ng-content select=\"[iusDrawerHeaderActions]\" />\n @if (showClose) {\n <ius-icon-button\n icon=\"close\"\n variant=\"tertiary\"\n size=\"medium\"\n ariaLabel=\"Cerrar\"\n (clicked)=\"requestClose()\"\n />\n }\n </div>\n }\n </div>\n }\n\n <div class=\"ius-drawer__body ius-scroll\"><ng-content /></div>\n\n @if (footerSlot) {\n <div class=\"ius-drawer__footer\"><ng-content select=\"[iusDrawerFooter]\" /></div>\n }\n </div>\n</ng-template>\n", styles: ["@charset \"UTF-8\";.ius-drawer-scrim{position:fixed;inset:0;background:var(--ius-surface-overlay);opacity:0;transition:opacity var(--ius-duration-slow) var(--ius-ease-standard)}.ius-drawer-scrim[data-visible=true]{opacity:1}.ius-drawer{position:fixed;top:0;bottom:0;display:flex;flex-direction:column;box-sizing:border-box;width:var(--_drawer-w, min(440px, 100vw));background:var(--ius-surface-card);box-shadow:var(--ius-elevation-400);font-family:var(--ius-font-body);transition:transform var(--ius-duration-slow) var(--ius-ease-decelerate, cubic-bezier(0, 0, .2, 1))}.ius-drawer[data-side=right]{right:0;transform:translate(100%);border-radius:var(--ius-radius-lg) 0 0 var(--ius-radius-lg)}.ius-drawer[data-side=left]{left:0;transform:translate(-100%);border-radius:0 var(--ius-radius-lg) var(--ius-radius-lg) 0}.ius-drawer[data-visible=true]{transform:translate(0)}.ius-drawer[data-entered=true]{transform:none}.ius-drawer[data-size=sm]{--_drawer-w: min(400px, 100vw)}.ius-drawer[data-size=md]{--_drawer-w: min(440px, 100vw)}.ius-drawer[data-size=lg]{--_drawer-w: min(560px, 100vw)}.ius-drawer[data-size=xl]{--_drawer-w: min(720px, 100vw)}@media(max-width:480px){.ius-drawer{width:100vw;border-radius:0}}@media(prefers-reduced-motion:reduce){.ius-drawer,.ius-drawer-scrim{transition:none}}.ius-drawer__header{flex:0 0 auto;display:flex;align-items:center;gap:var(--ius-space-xs);height:56px;box-sizing:border-box;padding:0 var(--ius-space-sm);border-bottom:1px solid var(--ius-stroke)}.ius-drawer__title{flex:1 1 auto;min-width:0;margin:0;font-family:var(--ius-font-display);font-weight:var(--ius-fw-medium);font-size:var(--ius-fs-lg);line-height:var(--ius-lh-lg);color:var(--ius-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ius-drawer__title--center{text-align:center}.ius-drawer__actions{flex:0 0 auto;display:inline-flex;align-items:center;gap:var(--ius-space-xxs)}.ius-drawer__body{flex:1 1 auto;overflow-y:auto;overscroll-behavior:contain;padding:var(--ius-space-lg) var(--ius-space-md);display:flex;flex-direction:column;gap:var(--ius-space-md);scrollbar-width:thin;scrollbar-color:var(--ius-neutral-5) transparent}.ius-drawer__body::-webkit-scrollbar{width:10px}.ius-drawer__body::-webkit-scrollbar-track{background:transparent}.ius-drawer__body::-webkit-scrollbar-thumb{background:var(--ius-neutral-5);border-radius:var(--ius-radius-pill);border:3px solid var(--ius-surface-card);background-clip:padding-box}.ius-drawer__body::-webkit-scrollbar-thumb:hover{background:var(--ius-neutral-6);background-clip:padding-box}.ius-drawer__body ::ng-deep .ius-tf,.ius-drawer__body ::ng-deep .ius-sb{max-width:none}.ius-drawer__footer{flex:0 0 auto;display:flex;flex-direction:column;gap:var(--ius-space-xs);padding:var(--ius-space-md);border-top:1px solid var(--ius-stroke);background:var(--ius-surface-card)}.ius-drawer[data-side=right] .ius-drawer__footer{border-bottom-left-radius:var(--ius-radius-lg)}.ius-drawer[data-side=left] .ius-drawer__footer{border-bottom-right-radius:var(--ius-radius-lg)}\n"], dependencies: [{ kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i1.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "component", type: IconButtonComponent, selector: "ius-icon-button", inputs: ["icon", "variant", "size", "shape", "disabled", "type", "ariaLabel", "tooltip", "tooltipPlacement"], outputs: ["clicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
8771
8771
|
}
|
|
8772
8772
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: DrawerComponent, decorators: [{
|
|
8773
8773
|
type: Component,
|
|
8774
|
-
args: [{ selector: 'ius-drawer', standalone: true, imports: [A11yModule, IconButtonComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template #tpl>\
|
|
8774
|
+
args: [{ selector: 'ius-drawer', standalone: true, imports: [A11yModule, IconButtonComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template #tpl>\n @if (showScrim) {\n <div\n class=\"ius-drawer-scrim\"\n [attr.data-visible]=\"visible() ? 'true' : null\"\n (click)=\"onScrimClick()\"\n ></div>\n }\n <div\n class=\"ius-drawer\"\n role=\"dialog\"\n aria-modal=\"true\"\n tabindex=\"-1\"\n cdkTrapFocus\n [cdkTrapFocusAutoCapture]=\"true\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"labelledBy\"\n [attr.data-side]=\"side\"\n [attr.data-size]=\"size\"\n [attr.data-visible]=\"visible() ? 'true' : null\"\n [attr.data-entered]=\"entered() ? 'true' : null\"\n >\n @if (hasHeader) {\n <div class=\"ius-drawer__header\">\n @if (showBackBtn) {\n <ius-icon-button\n icon=\"arrow_back\"\n variant=\"tertiary\"\n size=\"medium\"\n ariaLabel=\"Volver\"\n (clicked)=\"onBackClick()\"\n />\n }\n @if (hasTitle) {\n <h2\n class=\"ius-drawer__title\"\n [class.ius-drawer__title--center]=\"centerTitle\"\n [id]=\"titleId\"\n >{{ title }}<ng-content select=\"[iusDrawerTitle]\" /></h2>\n }\n @if (hasActionsZone) {\n <div class=\"ius-drawer__actions\">\n <ng-content select=\"[iusDrawerHeaderActions]\" />\n @if (showClose) {\n <ius-icon-button\n icon=\"close\"\n variant=\"tertiary\"\n size=\"medium\"\n ariaLabel=\"Cerrar\"\n (clicked)=\"requestClose()\"\n />\n }\n </div>\n }\n </div>\n }\n\n <div class=\"ius-drawer__body ius-scroll\"><ng-content /></div>\n\n @if (footerSlot) {\n <div class=\"ius-drawer__footer\"><ng-content select=\"[iusDrawerFooter]\" /></div>\n }\n </div>\n</ng-template>\n", styles: ["@charset \"UTF-8\";.ius-drawer-scrim{position:fixed;inset:0;background:var(--ius-surface-overlay);opacity:0;transition:opacity var(--ius-duration-slow) var(--ius-ease-standard)}.ius-drawer-scrim[data-visible=true]{opacity:1}.ius-drawer{position:fixed;top:0;bottom:0;display:flex;flex-direction:column;box-sizing:border-box;width:var(--_drawer-w, min(440px, 100vw));background:var(--ius-surface-card);box-shadow:var(--ius-elevation-400);font-family:var(--ius-font-body);transition:transform var(--ius-duration-slow) var(--ius-ease-decelerate, cubic-bezier(0, 0, .2, 1))}.ius-drawer[data-side=right]{right:0;transform:translate(100%);border-radius:var(--ius-radius-lg) 0 0 var(--ius-radius-lg)}.ius-drawer[data-side=left]{left:0;transform:translate(-100%);border-radius:0 var(--ius-radius-lg) var(--ius-radius-lg) 0}.ius-drawer[data-visible=true]{transform:translate(0)}.ius-drawer[data-entered=true]{transform:none}.ius-drawer[data-size=sm]{--_drawer-w: min(400px, 100vw)}.ius-drawer[data-size=md]{--_drawer-w: min(440px, 100vw)}.ius-drawer[data-size=lg]{--_drawer-w: min(560px, 100vw)}.ius-drawer[data-size=xl]{--_drawer-w: min(720px, 100vw)}@media(max-width:480px){.ius-drawer{width:100vw;border-radius:0}}@media(prefers-reduced-motion:reduce){.ius-drawer,.ius-drawer-scrim{transition:none}}.ius-drawer__header{flex:0 0 auto;display:flex;align-items:center;gap:var(--ius-space-xs);height:56px;box-sizing:border-box;padding:0 var(--ius-space-sm);border-bottom:1px solid var(--ius-stroke)}.ius-drawer__title{flex:1 1 auto;min-width:0;margin:0;font-family:var(--ius-font-display);font-weight:var(--ius-fw-medium);font-size:var(--ius-fs-lg);line-height:var(--ius-lh-lg);color:var(--ius-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ius-drawer__title--center{text-align:center}.ius-drawer__actions{flex:0 0 auto;display:inline-flex;align-items:center;gap:var(--ius-space-xxs)}.ius-drawer__body{flex:1 1 auto;overflow-y:auto;overscroll-behavior:contain;padding:var(--ius-space-lg) var(--ius-space-md);display:flex;flex-direction:column;gap:var(--ius-space-md);scrollbar-width:thin;scrollbar-color:var(--ius-neutral-5) transparent}.ius-drawer__body::-webkit-scrollbar{width:10px}.ius-drawer__body::-webkit-scrollbar-track{background:transparent}.ius-drawer__body::-webkit-scrollbar-thumb{background:var(--ius-neutral-5);border-radius:var(--ius-radius-pill);border:3px solid var(--ius-surface-card);background-clip:padding-box}.ius-drawer__body::-webkit-scrollbar-thumb:hover{background:var(--ius-neutral-6);background-clip:padding-box}.ius-drawer__body ::ng-deep .ius-tf,.ius-drawer__body ::ng-deep .ius-sb{max-width:none}.ius-drawer__footer{flex:0 0 auto;display:flex;flex-direction:column;gap:var(--ius-space-xs);padding:var(--ius-space-md);border-top:1px solid var(--ius-stroke);background:var(--ius-surface-card)}.ius-drawer[data-side=right] .ius-drawer__footer{border-bottom-left-radius:var(--ius-radius-lg)}.ius-drawer[data-side=left] .ius-drawer__footer{border-bottom-right-radius:var(--ius-radius-lg)}\n"] }]
|
|
8775
8775
|
}], propDecorators: { tpl: [{
|
|
8776
8776
|
type: ViewChild,
|
|
8777
8777
|
args: ['tpl', { static: true }]
|
|
@@ -8829,7 +8829,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
8829
8829
|
* Ver `SearchBar.jsx` → `demoFilled`. Nunca toca el valor real del modelo.
|
|
8830
8830
|
*/
|
|
8831
8831
|
const IUS_SB_DEMO_VALUE = 'CriterioBusqueda';
|
|
8832
|
-
let uid$
|
|
8832
|
+
let uid$9 = 0;
|
|
8833
8833
|
/**
|
|
8834
8834
|
* SearchBar — Ius Design v2.
|
|
8835
8835
|
*
|
|
@@ -8913,7 +8913,7 @@ class SearchBarComponent {
|
|
|
8913
8913
|
this.cleared = new EventEmitter();
|
|
8914
8914
|
// ── Estado interno ────────────────────────────────────────────────────
|
|
8915
8915
|
this.inputRef = viewChild.required('input');
|
|
8916
|
-
this.autoId = `ius-sb-${uid$
|
|
8916
|
+
this.autoId = `ius-sb-${uid$9++}`;
|
|
8917
8917
|
/** Estado forzado que el golden considera "con criterio" (demos). */
|
|
8918
8918
|
this.demoFilled = computed(() => this.stateInput() === 'hover' || this.stateInput() === 'focused', /* @ts-ignore */
|
|
8919
8919
|
...(ngDevMode ? [{ debugName: "demoFilled" }] : /* istanbul ignore next */ []));
|
|
@@ -9383,7 +9383,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
9383
9383
|
args: ['triggerEl']
|
|
9384
9384
|
}] } });
|
|
9385
9385
|
|
|
9386
|
-
let uid$
|
|
9386
|
+
let uid$8 = 0;
|
|
9387
9387
|
/**
|
|
9388
9388
|
* MultiTextField — Ius Design v2 (familia inputs).
|
|
9389
9389
|
*
|
|
@@ -9439,7 +9439,7 @@ class MultiTextFieldComponent {
|
|
|
9439
9439
|
/** Último valor escrito por el CVA (por si llega antes que los slots). */
|
|
9440
9440
|
this.pendingValue = signal(null, /* @ts-ignore */
|
|
9441
9441
|
...(ngDevMode ? [{ debugName: "pendingValue" }] : /* istanbul ignore next */ []));
|
|
9442
|
-
this.baseIdState = `ius-mtf-${uid$
|
|
9442
|
+
this.baseIdState = `ius-mtf-${uid$8++}`;
|
|
9443
9443
|
this.slotInputs = viewChildren('slotInput', /* @ts-ignore */
|
|
9444
9444
|
...(ngDevMode ? [{ debugName: "slotInputs" }] : /* istanbul ignore next */ []));
|
|
9445
9445
|
this.onChange = () => { };
|
|
@@ -9722,7 +9722,7 @@ const ICON_TONES = {
|
|
|
9722
9722
|
neutral: { bg: 'var(--ius-neutral-2)', fg: 'var(--ius-neutral-7)' },
|
|
9723
9723
|
};
|
|
9724
9724
|
/** Contador para los ids del nombre accesible (equivalente del `useId` del golden). */
|
|
9725
|
-
let uid$
|
|
9725
|
+
let uid$7 = 0;
|
|
9726
9726
|
/**
|
|
9727
9727
|
* Modal — Ius Design v2.
|
|
9728
9728
|
*
|
|
@@ -9745,7 +9745,7 @@ class ModalComponent {
|
|
|
9745
9745
|
* `aria-label`, y `aria-describedby` apunta a la descripción cuando la hay
|
|
9746
9746
|
* (T11). `aria-label` queda solo para el caso sin `title`.
|
|
9747
9747
|
*/
|
|
9748
|
-
this.baseId = `ius-modal-${uid$
|
|
9748
|
+
this.baseId = `ius-modal-${uid$7++}`;
|
|
9749
9749
|
this.titleId = `${this.baseId}-title`;
|
|
9750
9750
|
this.descId = `${this.baseId}-desc`;
|
|
9751
9751
|
this.overlay = inject(Overlay);
|
|
@@ -10676,7 +10676,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
10676
10676
|
args: [{ transform: booleanAttribute }]
|
|
10677
10677
|
}] } });
|
|
10678
10678
|
|
|
10679
|
-
let uid$
|
|
10679
|
+
let uid$6 = 0;
|
|
10680
10680
|
/**
|
|
10681
10681
|
* TextArea — Ius Design v2 (familia inputs).
|
|
10682
10682
|
*
|
|
@@ -10856,7 +10856,7 @@ class TextAreaComponent {
|
|
|
10856
10856
|
...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
|
|
10857
10857
|
this.focused = signal(false, /* @ts-ignore */
|
|
10858
10858
|
...(ngDevMode ? [{ debugName: "focused" }] : /* istanbul ignore next */ []));
|
|
10859
|
-
this.areaId = `ius-ta-${uid$
|
|
10859
|
+
this.areaId = `ius-ta-${uid$6++}`;
|
|
10860
10860
|
this.helpId = `${this.areaId}-help`;
|
|
10861
10861
|
this.area = viewChild('area', /* @ts-ignore */
|
|
10862
10862
|
...(ngDevMode ? [{ debugName: "area" }] : /* istanbul ignore next */ []));
|
|
@@ -12849,7 +12849,7 @@ function normalizeOpen(value, multiple) {
|
|
|
12849
12849
|
const list = Array.isArray(value) ? [...value] : [value];
|
|
12850
12850
|
return multiple ? list : list.slice(0, 1);
|
|
12851
12851
|
}
|
|
12852
|
-
let uid$
|
|
12852
|
+
let uid$5 = 0;
|
|
12853
12853
|
/**
|
|
12854
12854
|
* Accordion — Ius Design v2 (familia data-display).
|
|
12855
12855
|
*
|
|
@@ -12909,7 +12909,7 @@ class AccordionComponent {
|
|
|
12909
12909
|
/** Apertura propia del modo no controlado (`null` = aún sin tocar). */
|
|
12910
12910
|
this.picked = signal(null, /* @ts-ignore */
|
|
12911
12911
|
...(ngDevMode ? [{ debugName: "picked" }] : /* istanbul ignore next */ []));
|
|
12912
|
-
this.gid = `ius-acc-${uid$
|
|
12912
|
+
this.gid = `ius-acc-${uid$5++}`;
|
|
12913
12913
|
this.openIds = computed(() => {
|
|
12914
12914
|
const controlled = this.open();
|
|
12915
12915
|
if (controlled !== undefined)
|
|
@@ -13946,7 +13946,7 @@ class StatComponent {
|
|
|
13946
13946
|
event.preventDefault();
|
|
13947
13947
|
}
|
|
13948
13948
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: StatComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
13949
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: StatComponent, isStandalone: true, selector: "ius-stat", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, labelIcon: { classPropertyName: "labelIcon", publicName: "labelIcon", isSignal: true, isRequired: false, transformFunction: null }, iconTone: { classPropertyName: "iconTone", publicName: "iconTone", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, valueTone: { classPropertyName: "valueTone", publicName: "valueTone", isSignal: true, isRequired: false, transformFunction: null }, delta: { classPropertyName: "delta", publicName: "delta", isSignal: true, isRequired: false, transformFunction: null }, deltaLabel: { classPropertyName: "deltaLabel", publicName: "deltaLabel", isSignal: true, isRequired: false, transformFunction: null }, invertDelta: { classPropertyName: "invertDelta", publicName: "invertDelta", isSignal: true, isRequired: false, transformFunction: null }, caption: { classPropertyName: "caption", publicName: "caption", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, interactive: { classPropertyName: "interactive", publicName: "interactive", isSignal: true, isRequired: false, transformFunction: null }, href: { classPropertyName: "href", publicName: "href", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clicked: "clicked" }, host: { listeners: { "click": "onClickHost($event)", "keydown.enter": "onKeyActivate($event)", "keydown.space": "onSpaceDown($event)", "keyup.space": "onKeyActivate($event)" }, properties: { "attr.data-size": "effSize()", "attr.data-align": "align()", "attr.data-interactive": "navigable() || null", "attr.role": "navigable() ? (href() ? 'link' : 'button') : null", "attr.tabindex": "navigable() ? 0 : null", "attr.aria-label": "ariaLabel() || null" }, classAttribute: "ius-stat" }, queries: [{ propertyName: "deltaSlot", first: true, predicate: IusStatDeltaDirective, descendants: true, isSignal: true }, { propertyName: "sparkSlot", first: true, predicate: IusStatSparklineDirective, descendants: true, isSignal: true }, { propertyName: "labelSlot", first: true, predicate: IusStatLabelDirective, descendants: true, isSignal: true }, { propertyName: "deltaLabelSlot", first: true, predicate: IusStatDeltaLabelDirective, descendants: true, isSignal: true }, { propertyName: "captionSlot", first: true, predicate: IusStatCaptionDirective, descendants: true, isSignal: true }], ngImport: i0, template: "<!-- Eyebrow: r\u00F3tulo en may\u00FAsculas (input de texto \u203A proyecci\u00F3n), con \u00EDcono opcional que toma el tono -->\n@if (label() != null || hasLabelSlot()) {\n <span class=\"ius-stat__overline\">\n @if (labelIcon()) {\n <span translate=\"no\" class=\"ius-icon\" aria-hidden=\"true\" [style.color]=\"iconColor()\">{{ labelIcon() }}</span>\n }\n @if (label() != null) {\n {{ label() }}\n } @else {\n <ng-content select=\"[iusStatLabel]\" />\n }\n </span>\n}\n\n<!-- Fila de la cifra: valor tonal + delta (num\u00E9rico o proyectado) -->\n<span class=\"ius-stat__row\">\n <span class=\"ius-stat__value\" [style.color]=\"valueColor()\">\n @if (value() != null) {\n {{ value() }}\n } @else {\n <ng-content />\n }\n </span>\n\n @if (delta() != null) {\n <span\n class=\"ius-stat__delta\"\n [attr.data-dir]=\"deltaDir()\"\n [attr.data-invert]=\"invertDelta() ? 'true' : null\"\n >\n <span translate=\"no\" class=\"ius-icon\" aria-hidden=\"true\">{{ deltaArrow() }}</span>\n {{ deltaText() }}\n @if (deltaLabel() != null) {\n <span class=\"ius-stat__delta-label\">{{ deltaLabel() }}</span>\n } @else if (hasDeltaLabelSlot()) {\n <span class=\"ius-stat__delta-label\"><ng-content select=\"[iusStatDeltaLabel]\" /></span>\n }\n </span>\n } @else if (hasDeltaSlot()) {\n <span class=\"ius-stat__delta\" data-dir=\"flat\">\n <ng-content select=\"[iusStatDelta]\" />\n @if (deltaLabel() != null) {\n <span class=\"ius-stat__delta-label\">{{ deltaLabel() }}</span>\n } @else if (hasDeltaLabelSlot()) {\n <span class=\"ius-stat__delta-label\"><ng-content select=\"[iusStatDeltaLabel]\" /></span>\n }\n </span>\n }\n</span>\n\n<!-- Sparkline / microgr\u00E1fico bajo el valor -->\n@if (hasSparkline()) {\n <span class=\"ius-stat__spark\"><ng-content select=\"[iusStatSparkline]\" /></span>\n}\n\n<!-- Apoyo (multil\u00EDnea; input de texto \u203A proyecci\u00F3n) -->\n@if (caption() != null || hasCaptionSlot()) {\n <span class=\"ius-stat__caption\">\n @if (caption() != null) {\n {{ caption() }}\n } @else {\n <ng-content select=\"[iusStatCaption]\" />\n }\n </span>\n}\n", styles: ["@charset \"UTF-8\";:host{--_stat-value-fs: var(--ius-fs-h2);--_stat-value-lh: var(--ius-lh-h2);display:flex;flex-direction:column;gap:var(--ius-space-xxs);min-width:0;font-family:var(--ius-font-body);color:var(--ius-text-primary);text-align:left;text-decoration:none;box-sizing:border-box}:host([data-size=sm]){--_stat-value-fs: var(--ius-fs-h3);--_stat-value-lh: var(--ius-lh-h3)}:host([data-size=lg]){--_stat-value-fs: var(--ius-fs-h1);--_stat-value-lh: var(--ius-lh-h1)}:host([data-align=center]){text-align:center;align-items:center}:host([data-interactive=true]){cursor:pointer;border-radius:var(--ius-radius-sm)}:host([data-interactive=true]:focus-visible){outline:none;box-shadow:var(--ius-focus-ring)}.ius-stat__overline{display:inline-flex;align-items:center;gap:var(--ius-space-xxs);font-family:var(--ius-font-display);font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);font-weight:var(--ius-fw-medium);letter-spacing:var(--ius-ls-emphasis);text-transform:uppercase;color:var(--ius-text-tertiary)}.ius-stat__overline .ius-icon{font-size:var(--ius-icon-sm)}.ius-stat__row{display:inline-flex;align-items:baseline;gap:var(--ius-space-xs);flex-wrap:wrap}:host([data-align=center]) .ius-stat__row{justify-content:center}.ius-stat__value{font-family:var(--ius-font-display);font-weight:var(--ius-fw-bold);font-size:var(--_stat-value-fs);line-height:var(--_stat-value-lh);color:var(--ius-text-primary);font-variant-numeric:tabular-nums}.ius-stat__delta{display:inline-flex;align-items:center;gap:var(--ius-space-xxs);font-family:var(--ius-font-display);font-size:var(--ius-fs-sm);line-height:1;font-weight:var(--ius-fw-bold);font-variant-numeric:tabular-nums}.ius-stat__delta .ius-icon{font-size:var(--ius-icon-sm)}.ius-stat__delta[data-dir=up]{color:var(--ius-success-700)}.ius-stat__delta[data-dir=down],.ius-stat__delta[data-dir=up][data-invert=true]{color:var(--ius-danger-600)}.ius-stat__delta[data-dir=down][data-invert=true]{color:var(--ius-success-700)}.ius-stat__delta-label{color:var(--ius-text-tertiary);font-weight:var(--ius-fw-regular)}.ius-stat__spark{margin-top:var(--ius-space-xxs);line-height:0}.ius-stat__caption{font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);color:var(--ius-text-secondary)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
13949
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: StatComponent, isStandalone: true, selector: "ius-stat", inputs: { label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, labelIcon: { classPropertyName: "labelIcon", publicName: "labelIcon", isSignal: true, isRequired: false, transformFunction: null }, iconTone: { classPropertyName: "iconTone", publicName: "iconTone", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, valueTone: { classPropertyName: "valueTone", publicName: "valueTone", isSignal: true, isRequired: false, transformFunction: null }, delta: { classPropertyName: "delta", publicName: "delta", isSignal: true, isRequired: false, transformFunction: null }, deltaLabel: { classPropertyName: "deltaLabel", publicName: "deltaLabel", isSignal: true, isRequired: false, transformFunction: null }, invertDelta: { classPropertyName: "invertDelta", publicName: "invertDelta", isSignal: true, isRequired: false, transformFunction: null }, caption: { classPropertyName: "caption", publicName: "caption", isSignal: true, isRequired: false, transformFunction: null }, align: { classPropertyName: "align", publicName: "align", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, interactive: { classPropertyName: "interactive", publicName: "interactive", isSignal: true, isRequired: false, transformFunction: null }, href: { classPropertyName: "href", publicName: "href", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { clicked: "clicked" }, host: { listeners: { "click": "onClickHost($event)", "keydown.enter": "onKeyActivate($event)", "keydown.space": "onSpaceDown($event)", "keyup.space": "onKeyActivate($event)" }, properties: { "attr.data-size": "effSize()", "attr.data-align": "align()", "attr.data-interactive": "navigable() || null", "attr.role": "navigable() ? (href() ? 'link' : 'button') : null", "attr.tabindex": "navigable() ? 0 : null", "attr.aria-label": "ariaLabel() || null" }, classAttribute: "ius-stat" }, queries: [{ propertyName: "deltaSlot", first: true, predicate: IusStatDeltaDirective, descendants: true, isSignal: true }, { propertyName: "sparkSlot", first: true, predicate: IusStatSparklineDirective, descendants: true, isSignal: true }, { propertyName: "labelSlot", first: true, predicate: IusStatLabelDirective, descendants: true, isSignal: true }, { propertyName: "deltaLabelSlot", first: true, predicate: IusStatDeltaLabelDirective, descendants: true, isSignal: true }, { propertyName: "captionSlot", first: true, predicate: IusStatCaptionDirective, descendants: true, isSignal: true }], ngImport: i0, template: "<!-- Eyebrow: r\u00F3tulo en may\u00FAsculas (input de texto \u203A proyecci\u00F3n), con \u00EDcono opcional que toma el tono -->\r\n@if (label() != null || hasLabelSlot()) {\r\n <span class=\"ius-stat__overline\">\r\n @if (labelIcon()) {\r\n <span translate=\"no\" class=\"ius-icon\" aria-hidden=\"true\" [style.color]=\"iconColor()\">{{ labelIcon() }}</span>\r\n }\r\n @if (label() != null) {\r\n {{ label() }}\r\n } @else {\r\n <ng-content select=\"[iusStatLabel]\" />\r\n }\r\n </span>\r\n}\r\n\r\n<!-- Fila de la cifra: valor tonal + delta (num\u00E9rico o proyectado) -->\r\n<span class=\"ius-stat__row\">\r\n <span class=\"ius-stat__value\" [style.color]=\"valueColor()\">\r\n @if (value() != null) {\r\n {{ value() }}\r\n } @else {\r\n <ng-content />\r\n }\r\n </span>\r\n\r\n @if (delta() != null) {\r\n <span\r\n class=\"ius-stat__delta\"\r\n [attr.data-dir]=\"deltaDir()\"\r\n [attr.data-invert]=\"invertDelta() ? 'true' : null\"\r\n >\r\n <span translate=\"no\" class=\"ius-icon\" aria-hidden=\"true\">{{ deltaArrow() }}</span>\r\n {{ deltaText() }}\r\n @if (deltaLabel() != null) {\r\n <span class=\"ius-stat__delta-label\">{{ deltaLabel() }}</span>\r\n } @else if (hasDeltaLabelSlot()) {\r\n <span class=\"ius-stat__delta-label\"><ng-content select=\"[iusStatDeltaLabel]\" /></span>\r\n }\r\n </span>\r\n } @else if (hasDeltaSlot()) {\r\n <span class=\"ius-stat__delta\" data-dir=\"flat\">\r\n <ng-content select=\"[iusStatDelta]\" />\r\n @if (deltaLabel() != null) {\r\n <span class=\"ius-stat__delta-label\">{{ deltaLabel() }}</span>\r\n } @else if (hasDeltaLabelSlot()) {\r\n <span class=\"ius-stat__delta-label\"><ng-content select=\"[iusStatDeltaLabel]\" /></span>\r\n }\r\n </span>\r\n }\r\n</span>\r\n\r\n<!-- Sparkline / microgr\u00E1fico bajo el valor -->\r\n@if (hasSparkline()) {\r\n <span class=\"ius-stat__spark\"><ng-content select=\"[iusStatSparkline]\" /></span>\r\n}\r\n\r\n<!-- Apoyo (multil\u00EDnea; input de texto \u203A proyecci\u00F3n) -->\r\n@if (caption() != null || hasCaptionSlot()) {\r\n <span class=\"ius-stat__caption\">\r\n @if (caption() != null) {\r\n {{ caption() }}\r\n } @else {\r\n <ng-content select=\"[iusStatCaption]\" />\r\n }\r\n </span>\r\n}\r\n", styles: ["@charset \"UTF-8\";:host{--_stat-value-fs: var(--ius-fs-h2);--_stat-value-lh: var(--ius-lh-h2);display:flex;flex-direction:column;gap:var(--ius-space-xxs);min-width:0;font-family:var(--ius-font-body);color:var(--ius-text-primary);text-align:left;text-decoration:none;box-sizing:border-box}:host([data-size=sm]){--_stat-value-fs: var(--ius-fs-h3);--_stat-value-lh: var(--ius-lh-h3)}:host([data-size=lg]){--_stat-value-fs: var(--ius-fs-h1);--_stat-value-lh: var(--ius-lh-h1)}:host([data-align=center]){text-align:center;align-items:center}:host([data-interactive=true]){cursor:pointer;border-radius:var(--ius-radius-sm)}:host([data-interactive=true]:focus-visible){outline:none;box-shadow:var(--ius-focus-ring)}.ius-stat__overline{display:inline-flex;align-items:center;gap:var(--ius-space-xxs);font-family:var(--ius-font-display);font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);font-weight:var(--ius-fw-medium);letter-spacing:var(--ius-ls-emphasis);text-transform:uppercase;color:var(--ius-text-tertiary)}.ius-stat__overline .ius-icon{font-size:var(--ius-icon-sm)}.ius-stat__row{display:inline-flex;align-items:baseline;gap:var(--ius-space-xs);flex-wrap:wrap}:host([data-align=center]) .ius-stat__row{justify-content:center}.ius-stat__value{font-family:var(--ius-font-display);font-weight:var(--ius-fw-bold);font-size:var(--_stat-value-fs);line-height:var(--_stat-value-lh);color:var(--ius-text-primary);font-variant-numeric:tabular-nums}.ius-stat__delta{display:inline-flex;align-items:center;gap:var(--ius-space-xxs);font-family:var(--ius-font-display);font-size:var(--ius-fs-sm);line-height:1;font-weight:var(--ius-fw-bold);font-variant-numeric:tabular-nums}.ius-stat__delta .ius-icon{font-size:var(--ius-icon-sm)}.ius-stat__delta[data-dir=up]{color:var(--ius-success-700)}.ius-stat__delta[data-dir=down],.ius-stat__delta[data-dir=up][data-invert=true]{color:var(--ius-danger-600)}.ius-stat__delta[data-dir=down][data-invert=true]{color:var(--ius-success-700)}.ius-stat__delta-label{color:var(--ius-text-tertiary);font-weight:var(--ius-fw-regular)}.ius-stat__spark{margin-top:var(--ius-space-xxs);line-height:0}.ius-stat__caption{font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);color:var(--ius-text-secondary)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
13950
13950
|
}
|
|
13951
13951
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: StatComponent, decorators: [{
|
|
13952
13952
|
type: Component,
|
|
@@ -13962,7 +13962,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
13962
13962
|
'(keydown.enter)': 'onKeyActivate($event)',
|
|
13963
13963
|
'(keydown.space)': 'onSpaceDown($event)',
|
|
13964
13964
|
'(keyup.space)': 'onKeyActivate($event)',
|
|
13965
|
-
}, template: "<!-- Eyebrow: r\u00F3tulo en may\u00FAsculas (input de texto \u203A proyecci\u00F3n), con \u00EDcono opcional que toma el tono -->\n@if (label() != null || hasLabelSlot()) {\n <span class=\"ius-stat__overline\">\n @if (labelIcon()) {\n <span translate=\"no\" class=\"ius-icon\" aria-hidden=\"true\" [style.color]=\"iconColor()\">{{ labelIcon() }}</span>\n }\n @if (label() != null) {\n {{ label() }}\n } @else {\n <ng-content select=\"[iusStatLabel]\" />\n }\n </span>\n}\n\n<!-- Fila de la cifra: valor tonal + delta (num\u00E9rico o proyectado) -->\n<span class=\"ius-stat__row\">\n <span class=\"ius-stat__value\" [style.color]=\"valueColor()\">\n @if (value() != null) {\n {{ value() }}\n } @else {\n <ng-content />\n }\n </span>\n\n @if (delta() != null) {\n <span\n class=\"ius-stat__delta\"\n [attr.data-dir]=\"deltaDir()\"\n [attr.data-invert]=\"invertDelta() ? 'true' : null\"\n >\n <span translate=\"no\" class=\"ius-icon\" aria-hidden=\"true\">{{ deltaArrow() }}</span>\n {{ deltaText() }}\n @if (deltaLabel() != null) {\n <span class=\"ius-stat__delta-label\">{{ deltaLabel() }}</span>\n } @else if (hasDeltaLabelSlot()) {\n <span class=\"ius-stat__delta-label\"><ng-content select=\"[iusStatDeltaLabel]\" /></span>\n }\n </span>\n } @else if (hasDeltaSlot()) {\n <span class=\"ius-stat__delta\" data-dir=\"flat\">\n <ng-content select=\"[iusStatDelta]\" />\n @if (deltaLabel() != null) {\n <span class=\"ius-stat__delta-label\">{{ deltaLabel() }}</span>\n } @else if (hasDeltaLabelSlot()) {\n <span class=\"ius-stat__delta-label\"><ng-content select=\"[iusStatDeltaLabel]\" /></span>\n }\n </span>\n }\n</span>\n\n<!-- Sparkline / microgr\u00E1fico bajo el valor -->\n@if (hasSparkline()) {\n <span class=\"ius-stat__spark\"><ng-content select=\"[iusStatSparkline]\" /></span>\n}\n\n<!-- Apoyo (multil\u00EDnea; input de texto \u203A proyecci\u00F3n) -->\n@if (caption() != null || hasCaptionSlot()) {\n <span class=\"ius-stat__caption\">\n @if (caption() != null) {\n {{ caption() }}\n } @else {\n <ng-content select=\"[iusStatCaption]\" />\n }\n </span>\n}\n", styles: ["@charset \"UTF-8\";:host{--_stat-value-fs: var(--ius-fs-h2);--_stat-value-lh: var(--ius-lh-h2);display:flex;flex-direction:column;gap:var(--ius-space-xxs);min-width:0;font-family:var(--ius-font-body);color:var(--ius-text-primary);text-align:left;text-decoration:none;box-sizing:border-box}:host([data-size=sm]){--_stat-value-fs: var(--ius-fs-h3);--_stat-value-lh: var(--ius-lh-h3)}:host([data-size=lg]){--_stat-value-fs: var(--ius-fs-h1);--_stat-value-lh: var(--ius-lh-h1)}:host([data-align=center]){text-align:center;align-items:center}:host([data-interactive=true]){cursor:pointer;border-radius:var(--ius-radius-sm)}:host([data-interactive=true]:focus-visible){outline:none;box-shadow:var(--ius-focus-ring)}.ius-stat__overline{display:inline-flex;align-items:center;gap:var(--ius-space-xxs);font-family:var(--ius-font-display);font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);font-weight:var(--ius-fw-medium);letter-spacing:var(--ius-ls-emphasis);text-transform:uppercase;color:var(--ius-text-tertiary)}.ius-stat__overline .ius-icon{font-size:var(--ius-icon-sm)}.ius-stat__row{display:inline-flex;align-items:baseline;gap:var(--ius-space-xs);flex-wrap:wrap}:host([data-align=center]) .ius-stat__row{justify-content:center}.ius-stat__value{font-family:var(--ius-font-display);font-weight:var(--ius-fw-bold);font-size:var(--_stat-value-fs);line-height:var(--_stat-value-lh);color:var(--ius-text-primary);font-variant-numeric:tabular-nums}.ius-stat__delta{display:inline-flex;align-items:center;gap:var(--ius-space-xxs);font-family:var(--ius-font-display);font-size:var(--ius-fs-sm);line-height:1;font-weight:var(--ius-fw-bold);font-variant-numeric:tabular-nums}.ius-stat__delta .ius-icon{font-size:var(--ius-icon-sm)}.ius-stat__delta[data-dir=up]{color:var(--ius-success-700)}.ius-stat__delta[data-dir=down],.ius-stat__delta[data-dir=up][data-invert=true]{color:var(--ius-danger-600)}.ius-stat__delta[data-dir=down][data-invert=true]{color:var(--ius-success-700)}.ius-stat__delta-label{color:var(--ius-text-tertiary);font-weight:var(--ius-fw-regular)}.ius-stat__spark{margin-top:var(--ius-space-xxs);line-height:0}.ius-stat__caption{font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);color:var(--ius-text-secondary)}\n"] }]
|
|
13965
|
+
}, template: "<!-- Eyebrow: r\u00F3tulo en may\u00FAsculas (input de texto \u203A proyecci\u00F3n), con \u00EDcono opcional que toma el tono -->\r\n@if (label() != null || hasLabelSlot()) {\r\n <span class=\"ius-stat__overline\">\r\n @if (labelIcon()) {\r\n <span translate=\"no\" class=\"ius-icon\" aria-hidden=\"true\" [style.color]=\"iconColor()\">{{ labelIcon() }}</span>\r\n }\r\n @if (label() != null) {\r\n {{ label() }}\r\n } @else {\r\n <ng-content select=\"[iusStatLabel]\" />\r\n }\r\n </span>\r\n}\r\n\r\n<!-- Fila de la cifra: valor tonal + delta (num\u00E9rico o proyectado) -->\r\n<span class=\"ius-stat__row\">\r\n <span class=\"ius-stat__value\" [style.color]=\"valueColor()\">\r\n @if (value() != null) {\r\n {{ value() }}\r\n } @else {\r\n <ng-content />\r\n }\r\n </span>\r\n\r\n @if (delta() != null) {\r\n <span\r\n class=\"ius-stat__delta\"\r\n [attr.data-dir]=\"deltaDir()\"\r\n [attr.data-invert]=\"invertDelta() ? 'true' : null\"\r\n >\r\n <span translate=\"no\" class=\"ius-icon\" aria-hidden=\"true\">{{ deltaArrow() }}</span>\r\n {{ deltaText() }}\r\n @if (deltaLabel() != null) {\r\n <span class=\"ius-stat__delta-label\">{{ deltaLabel() }}</span>\r\n } @else if (hasDeltaLabelSlot()) {\r\n <span class=\"ius-stat__delta-label\"><ng-content select=\"[iusStatDeltaLabel]\" /></span>\r\n }\r\n </span>\r\n } @else if (hasDeltaSlot()) {\r\n <span class=\"ius-stat__delta\" data-dir=\"flat\">\r\n <ng-content select=\"[iusStatDelta]\" />\r\n @if (deltaLabel() != null) {\r\n <span class=\"ius-stat__delta-label\">{{ deltaLabel() }}</span>\r\n } @else if (hasDeltaLabelSlot()) {\r\n <span class=\"ius-stat__delta-label\"><ng-content select=\"[iusStatDeltaLabel]\" /></span>\r\n }\r\n </span>\r\n }\r\n</span>\r\n\r\n<!-- Sparkline / microgr\u00E1fico bajo el valor -->\r\n@if (hasSparkline()) {\r\n <span class=\"ius-stat__spark\"><ng-content select=\"[iusStatSparkline]\" /></span>\r\n}\r\n\r\n<!-- Apoyo (multil\u00EDnea; input de texto \u203A proyecci\u00F3n) -->\r\n@if (caption() != null || hasCaptionSlot()) {\r\n <span class=\"ius-stat__caption\">\r\n @if (caption() != null) {\r\n {{ caption() }}\r\n } @else {\r\n <ng-content select=\"[iusStatCaption]\" />\r\n }\r\n </span>\r\n}\r\n", styles: ["@charset \"UTF-8\";:host{--_stat-value-fs: var(--ius-fs-h2);--_stat-value-lh: var(--ius-lh-h2);display:flex;flex-direction:column;gap:var(--ius-space-xxs);min-width:0;font-family:var(--ius-font-body);color:var(--ius-text-primary);text-align:left;text-decoration:none;box-sizing:border-box}:host([data-size=sm]){--_stat-value-fs: var(--ius-fs-h3);--_stat-value-lh: var(--ius-lh-h3)}:host([data-size=lg]){--_stat-value-fs: var(--ius-fs-h1);--_stat-value-lh: var(--ius-lh-h1)}:host([data-align=center]){text-align:center;align-items:center}:host([data-interactive=true]){cursor:pointer;border-radius:var(--ius-radius-sm)}:host([data-interactive=true]:focus-visible){outline:none;box-shadow:var(--ius-focus-ring)}.ius-stat__overline{display:inline-flex;align-items:center;gap:var(--ius-space-xxs);font-family:var(--ius-font-display);font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);font-weight:var(--ius-fw-medium);letter-spacing:var(--ius-ls-emphasis);text-transform:uppercase;color:var(--ius-text-tertiary)}.ius-stat__overline .ius-icon{font-size:var(--ius-icon-sm)}.ius-stat__row{display:inline-flex;align-items:baseline;gap:var(--ius-space-xs);flex-wrap:wrap}:host([data-align=center]) .ius-stat__row{justify-content:center}.ius-stat__value{font-family:var(--ius-font-display);font-weight:var(--ius-fw-bold);font-size:var(--_stat-value-fs);line-height:var(--_stat-value-lh);color:var(--ius-text-primary);font-variant-numeric:tabular-nums}.ius-stat__delta{display:inline-flex;align-items:center;gap:var(--ius-space-xxs);font-family:var(--ius-font-display);font-size:var(--ius-fs-sm);line-height:1;font-weight:var(--ius-fw-bold);font-variant-numeric:tabular-nums}.ius-stat__delta .ius-icon{font-size:var(--ius-icon-sm)}.ius-stat__delta[data-dir=up]{color:var(--ius-success-700)}.ius-stat__delta[data-dir=down],.ius-stat__delta[data-dir=up][data-invert=true]{color:var(--ius-danger-600)}.ius-stat__delta[data-dir=down][data-invert=true]{color:var(--ius-success-700)}.ius-stat__delta-label{color:var(--ius-text-tertiary);font-weight:var(--ius-fw-regular)}.ius-stat__spark{margin-top:var(--ius-space-xxs);line-height:0}.ius-stat__caption{font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);color:var(--ius-text-secondary)}\n"] }]
|
|
13966
13966
|
}], propDecorators: { label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: false }] }], labelIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "labelIcon", required: false }] }], iconTone: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconTone", required: false }] }], value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: false }] }], valueTone: [{ type: i0.Input, args: [{ isSignal: true, alias: "valueTone", required: false }] }], delta: [{ type: i0.Input, args: [{ isSignal: true, alias: "delta", required: false }] }], deltaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "deltaLabel", required: false }] }], invertDelta: [{ type: i0.Input, args: [{ isSignal: true, alias: "invertDelta", required: false }] }], caption: [{ type: i0.Input, args: [{ isSignal: true, alias: "caption", required: false }] }], align: [{ type: i0.Input, args: [{ isSignal: true, alias: "align", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], interactive: [{ type: i0.Input, args: [{ isSignal: true, alias: "interactive", required: false }] }], href: [{ type: i0.Input, args: [{ isSignal: true, alias: "href", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], clicked: [{ type: i0.Output, args: ["clicked"] }], deltaSlot: [{ type: i0.ContentChild, args: [i0.forwardRef(() => IusStatDeltaDirective), { isSignal: true }] }], sparkSlot: [{ type: i0.ContentChild, args: [i0.forwardRef(() => IusStatSparklineDirective), { isSignal: true }] }], labelSlot: [{ type: i0.ContentChild, args: [i0.forwardRef(() => IusStatLabelDirective), { isSignal: true }] }], deltaLabelSlot: [{ type: i0.ContentChild, args: [i0.forwardRef(() => IusStatDeltaLabelDirective), { isSignal: true }] }], captionSlot: [{ type: i0.ContentChild, args: [i0.forwardRef(() => IusStatCaptionDirective), { isSignal: true }] }] } });
|
|
13967
13967
|
/** Mapa tono → color, idéntico a valueColor/iconColor del golden. */
|
|
13968
13968
|
function toneColor(tone, kind) {
|
|
@@ -14124,11 +14124,11 @@ class SkeletonComponent {
|
|
|
14124
14124
|
...(ngDevMode ? [{ debugName: "chartWidthCss" }] : /* istanbul ignore next */ []));
|
|
14125
14125
|
}
|
|
14126
14126
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: SkeletonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14127
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: SkeletonComponent, isStandalone: true, selector: "ius-skeleton", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, radius: { classPropertyName: "radius", publicName: "radius", isSignal: true, isRequired: false, transformFunction: null }, lines: { classPropertyName: "lines", publicName: "lines", isSignal: true, isRequired: false, transformFunction: null }, lastLineWidth: { classPropertyName: "lastLineWidth", publicName: "lastLineWidth", isSignal: true, isRequired: false, transformFunction: null }, bars: { classPropertyName: "bars", publicName: "bars", isSignal: true, isRequired: false, transformFunction: null }, gap: { classPropertyName: "gap", publicName: "gap", isSignal: true, isRequired: false, transformFunction: null }, animation: { classPropertyName: "animation", publicName: "animation", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "ius-skeleton-host" }, ngImport: i0, template: "@if (!loading()) {\n <!-- Cargado: el contenido real reemplaza al esqueleto (modo envoltorio). -->\n <ng-content />\n} @else if (variant() === 'chart') {\n <!-- Fila de barras verticales que insin\u00FAan una gr\u00E1fica. -->\n <span\n class=\"ius-skeleton-chart\"\n role=\"status\"\n aria-busy=\"true\"\n aria-live=\"polite\"\n [attr.aria-label]=\"ariaLabel()\"\n [style.gap]=\"gapCss()\"\n [style.height]=\"chartHeightCss()\"\n [style.width]=\"chartWidthCss()\"\n >\n @for (barHeight of chartBars(); track $index) {\n <span\n class=\"ius-skeleton\"\n data-variant=\"chart-bar\"\n [attr.data-anim]=\"anim()\"\n [style.height]=\"barHeight\"\n ></span>\n }\n </span>\n} @else if (variant() === 'text' && lines() > 1) {\n <!-- Texto multil\u00EDnea: la \u00FAltima l\u00EDnea m\u00E1s corta. -->\n <span\n class=\"ius-skeleton-text\"\n role=\"status\"\n aria-busy=\"true\"\n aria-live=\"polite\"\n [attr.aria-label]=\"ariaLabel()\"\n [style.gap]=\"gapCss()\"\n >\n @for (lineWidth of textLines(); track $index) {\n <span\n class=\"ius-skeleton\"\n [attr.data-variant]=\"variant()\"\n [attr.data-anim]=\"anim()\"\n [style.width]=\"lineWidth\"\n [style.height]=\"heightCss()\"\n [style.border-radius]=\"radiusCss()\"\n ></span>\n }\n </span>\n} @else {\n <!-- Caso simple: una sola pieza. -->\n <span\n class=\"ius-skeleton\"\n role=\"status\"\n aria-busy=\"true\"\n aria-live=\"polite\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.data-variant]=\"variant()\"\n [attr.data-anim]=\"anim()\"\n [style.width]=\"widthCss()\"\n [style.height]=\"heightCss()\"\n [style.border-radius]=\"radiusCss()\"\n ></span>\n}\n", styles: ["@charset \"UTF-8\";:host{display:contents}.ius-skeleton{display:block;position:relative;overflow:hidden;background:var(--ius-neutral-3);border-radius:var(--ius-radius-sm);flex:none;-webkit-user-select:none;user-select:none}.ius-skeleton[data-anim=shimmer]:after{content:\"\";position:absolute;inset:0;transform:translate(-100%);background:linear-gradient(90deg,transparent 0,color-mix(in srgb,var(--ius-neutral-white) 70%,transparent) 50%,transparent 100%);animation:ius-skeleton-shimmer 1.4s ease-in-out infinite}@keyframes ius-skeleton-shimmer{to{transform:translate(100%)}}.ius-skeleton[data-anim=pulse]{animation:ius-skeleton-pulse 1.5s ease-in-out infinite}@keyframes ius-skeleton-pulse{0%,to{opacity:1}50%{opacity:.45}}.ius-skeleton[data-variant=circle],.ius-skeleton[data-variant=pill]{border-radius:var(--ius-radius-pill)}.ius-skeleton[data-variant=button]{border-radius:var(--ius-radius-lg)}.ius-skeleton[data-variant=rect]{border-radius:var(--ius-radius-md)}.ius-skeleton-text{display:flex;flex-direction:column}.ius-skeleton-chart{display:flex;align-items:flex-end}.ius-skeleton-chart .ius-skeleton{flex:1 1 0;border-radius:var(--ius-radius-sm)}@media(prefers-reduced-motion:reduce){.ius-skeleton[data-anim=shimmer]:after{animation:none}.ius-skeleton[data-anim=pulse]{animation:none;opacity:.85}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
14127
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: SkeletonComponent, isStandalone: true, selector: "ius-skeleton", inputs: { variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, radius: { classPropertyName: "radius", publicName: "radius", isSignal: true, isRequired: false, transformFunction: null }, lines: { classPropertyName: "lines", publicName: "lines", isSignal: true, isRequired: false, transformFunction: null }, lastLineWidth: { classPropertyName: "lastLineWidth", publicName: "lastLineWidth", isSignal: true, isRequired: false, transformFunction: null }, bars: { classPropertyName: "bars", publicName: "bars", isSignal: true, isRequired: false, transformFunction: null }, gap: { classPropertyName: "gap", publicName: "gap", isSignal: true, isRequired: false, transformFunction: null }, animation: { classPropertyName: "animation", publicName: "animation", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "ius-skeleton-host" }, ngImport: i0, template: "@if (!loading()) {\r\n <!-- Cargado: el contenido real reemplaza al esqueleto (modo envoltorio). -->\r\n <ng-content />\r\n} @else if (variant() === 'chart') {\r\n <!-- Fila de barras verticales que insin\u00FAan una gr\u00E1fica. -->\r\n <span\r\n class=\"ius-skeleton-chart\"\r\n role=\"status\"\r\n aria-busy=\"true\"\r\n aria-live=\"polite\"\r\n [attr.aria-label]=\"ariaLabel()\"\r\n [style.gap]=\"gapCss()\"\r\n [style.height]=\"chartHeightCss()\"\r\n [style.width]=\"chartWidthCss()\"\r\n >\r\n @for (barHeight of chartBars(); track $index) {\r\n <span\r\n class=\"ius-skeleton\"\r\n data-variant=\"chart-bar\"\r\n [attr.data-anim]=\"anim()\"\r\n [style.height]=\"barHeight\"\r\n ></span>\r\n }\r\n </span>\r\n} @else if (variant() === 'text' && lines() > 1) {\r\n <!-- Texto multil\u00EDnea: la \u00FAltima l\u00EDnea m\u00E1s corta. -->\r\n <span\r\n class=\"ius-skeleton-text\"\r\n role=\"status\"\r\n aria-busy=\"true\"\r\n aria-live=\"polite\"\r\n [attr.aria-label]=\"ariaLabel()\"\r\n [style.gap]=\"gapCss()\"\r\n >\r\n @for (lineWidth of textLines(); track $index) {\r\n <span\r\n class=\"ius-skeleton\"\r\n [attr.data-variant]=\"variant()\"\r\n [attr.data-anim]=\"anim()\"\r\n [style.width]=\"lineWidth\"\r\n [style.height]=\"heightCss()\"\r\n [style.border-radius]=\"radiusCss()\"\r\n ></span>\r\n }\r\n </span>\r\n} @else {\r\n <!-- Caso simple: una sola pieza. -->\r\n <span\r\n class=\"ius-skeleton\"\r\n role=\"status\"\r\n aria-busy=\"true\"\r\n aria-live=\"polite\"\r\n [attr.aria-label]=\"ariaLabel()\"\r\n [attr.data-variant]=\"variant()\"\r\n [attr.data-anim]=\"anim()\"\r\n [style.width]=\"widthCss()\"\r\n [style.height]=\"heightCss()\"\r\n [style.border-radius]=\"radiusCss()\"\r\n ></span>\r\n}\r\n", styles: ["@charset \"UTF-8\";:host{display:contents}.ius-skeleton{display:block;position:relative;overflow:hidden;background:var(--ius-neutral-3);border-radius:var(--ius-radius-sm);flex:none;-webkit-user-select:none;user-select:none}.ius-skeleton[data-anim=shimmer]:after{content:\"\";position:absolute;inset:0;transform:translate(-100%);background:linear-gradient(90deg,transparent 0,color-mix(in srgb,var(--ius-neutral-white) 70%,transparent) 50%,transparent 100%);animation:ius-skeleton-shimmer 1.4s ease-in-out infinite}@keyframes ius-skeleton-shimmer{to{transform:translate(100%)}}.ius-skeleton[data-anim=pulse]{animation:ius-skeleton-pulse 1.5s ease-in-out infinite}@keyframes ius-skeleton-pulse{0%,to{opacity:1}50%{opacity:.45}}.ius-skeleton[data-variant=circle],.ius-skeleton[data-variant=pill]{border-radius:var(--ius-radius-pill)}.ius-skeleton[data-variant=button]{border-radius:var(--ius-radius-lg)}.ius-skeleton[data-variant=rect]{border-radius:var(--ius-radius-md)}.ius-skeleton-text{display:flex;flex-direction:column}.ius-skeleton-chart{display:flex;align-items:flex-end}.ius-skeleton-chart .ius-skeleton{flex:1 1 0;border-radius:var(--ius-radius-sm)}@media(prefers-reduced-motion:reduce){.ius-skeleton[data-anim=shimmer]:after{animation:none}.ius-skeleton[data-anim=pulse]{animation:none;opacity:.85}}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
14128
14128
|
}
|
|
14129
14129
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: SkeletonComponent, decorators: [{
|
|
14130
14130
|
type: Component,
|
|
14131
|
-
args: [{ selector: 'ius-skeleton', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'ius-skeleton-host' }, template: "@if (!loading()) {\n <!-- Cargado: el contenido real reemplaza al esqueleto (modo envoltorio). -->\n <ng-content />\n} @else if (variant() === 'chart') {\n <!-- Fila de barras verticales que insin\u00FAan una gr\u00E1fica. -->\n <span\n class=\"ius-skeleton-chart\"\n role=\"status\"\n aria-busy=\"true\"\n aria-live=\"polite\"\n [attr.aria-label]=\"ariaLabel()\"\n [style.gap]=\"gapCss()\"\n [style.height]=\"chartHeightCss()\"\n [style.width]=\"chartWidthCss()\"\n >\n @for (barHeight of chartBars(); track $index) {\n <span\n class=\"ius-skeleton\"\n data-variant=\"chart-bar\"\n [attr.data-anim]=\"anim()\"\n [style.height]=\"barHeight\"\n ></span>\n }\n </span>\n} @else if (variant() === 'text' && lines() > 1) {\n <!-- Texto multil\u00EDnea: la \u00FAltima l\u00EDnea m\u00E1s corta. -->\n <span\n class=\"ius-skeleton-text\"\n role=\"status\"\n aria-busy=\"true\"\n aria-live=\"polite\"\n [attr.aria-label]=\"ariaLabel()\"\n [style.gap]=\"gapCss()\"\n >\n @for (lineWidth of textLines(); track $index) {\n <span\n class=\"ius-skeleton\"\n [attr.data-variant]=\"variant()\"\n [attr.data-anim]=\"anim()\"\n [style.width]=\"lineWidth\"\n [style.height]=\"heightCss()\"\n [style.border-radius]=\"radiusCss()\"\n ></span>\n }\n </span>\n} @else {\n <!-- Caso simple: una sola pieza. -->\n <span\n class=\"ius-skeleton\"\n role=\"status\"\n aria-busy=\"true\"\n aria-live=\"polite\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.data-variant]=\"variant()\"\n [attr.data-anim]=\"anim()\"\n [style.width]=\"widthCss()\"\n [style.height]=\"heightCss()\"\n [style.border-radius]=\"radiusCss()\"\n ></span>\n}\n", styles: ["@charset \"UTF-8\";:host{display:contents}.ius-skeleton{display:block;position:relative;overflow:hidden;background:var(--ius-neutral-3);border-radius:var(--ius-radius-sm);flex:none;-webkit-user-select:none;user-select:none}.ius-skeleton[data-anim=shimmer]:after{content:\"\";position:absolute;inset:0;transform:translate(-100%);background:linear-gradient(90deg,transparent 0,color-mix(in srgb,var(--ius-neutral-white) 70%,transparent) 50%,transparent 100%);animation:ius-skeleton-shimmer 1.4s ease-in-out infinite}@keyframes ius-skeleton-shimmer{to{transform:translate(100%)}}.ius-skeleton[data-anim=pulse]{animation:ius-skeleton-pulse 1.5s ease-in-out infinite}@keyframes ius-skeleton-pulse{0%,to{opacity:1}50%{opacity:.45}}.ius-skeleton[data-variant=circle],.ius-skeleton[data-variant=pill]{border-radius:var(--ius-radius-pill)}.ius-skeleton[data-variant=button]{border-radius:var(--ius-radius-lg)}.ius-skeleton[data-variant=rect]{border-radius:var(--ius-radius-md)}.ius-skeleton-text{display:flex;flex-direction:column}.ius-skeleton-chart{display:flex;align-items:flex-end}.ius-skeleton-chart .ius-skeleton{flex:1 1 0;border-radius:var(--ius-radius-sm)}@media(prefers-reduced-motion:reduce){.ius-skeleton[data-anim=shimmer]:after{animation:none}.ius-skeleton[data-anim=pulse]{animation:none;opacity:.85}}\n"] }]
|
|
14131
|
+
args: [{ selector: 'ius-skeleton', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'ius-skeleton-host' }, template: "@if (!loading()) {\r\n <!-- Cargado: el contenido real reemplaza al esqueleto (modo envoltorio). -->\r\n <ng-content />\r\n} @else if (variant() === 'chart') {\r\n <!-- Fila de barras verticales que insin\u00FAan una gr\u00E1fica. -->\r\n <span\r\n class=\"ius-skeleton-chart\"\r\n role=\"status\"\r\n aria-busy=\"true\"\r\n aria-live=\"polite\"\r\n [attr.aria-label]=\"ariaLabel()\"\r\n [style.gap]=\"gapCss()\"\r\n [style.height]=\"chartHeightCss()\"\r\n [style.width]=\"chartWidthCss()\"\r\n >\r\n @for (barHeight of chartBars(); track $index) {\r\n <span\r\n class=\"ius-skeleton\"\r\n data-variant=\"chart-bar\"\r\n [attr.data-anim]=\"anim()\"\r\n [style.height]=\"barHeight\"\r\n ></span>\r\n }\r\n </span>\r\n} @else if (variant() === 'text' && lines() > 1) {\r\n <!-- Texto multil\u00EDnea: la \u00FAltima l\u00EDnea m\u00E1s corta. -->\r\n <span\r\n class=\"ius-skeleton-text\"\r\n role=\"status\"\r\n aria-busy=\"true\"\r\n aria-live=\"polite\"\r\n [attr.aria-label]=\"ariaLabel()\"\r\n [style.gap]=\"gapCss()\"\r\n >\r\n @for (lineWidth of textLines(); track $index) {\r\n <span\r\n class=\"ius-skeleton\"\r\n [attr.data-variant]=\"variant()\"\r\n [attr.data-anim]=\"anim()\"\r\n [style.width]=\"lineWidth\"\r\n [style.height]=\"heightCss()\"\r\n [style.border-radius]=\"radiusCss()\"\r\n ></span>\r\n }\r\n </span>\r\n} @else {\r\n <!-- Caso simple: una sola pieza. -->\r\n <span\r\n class=\"ius-skeleton\"\r\n role=\"status\"\r\n aria-busy=\"true\"\r\n aria-live=\"polite\"\r\n [attr.aria-label]=\"ariaLabel()\"\r\n [attr.data-variant]=\"variant()\"\r\n [attr.data-anim]=\"anim()\"\r\n [style.width]=\"widthCss()\"\r\n [style.height]=\"heightCss()\"\r\n [style.border-radius]=\"radiusCss()\"\r\n ></span>\r\n}\r\n", styles: ["@charset \"UTF-8\";:host{display:contents}.ius-skeleton{display:block;position:relative;overflow:hidden;background:var(--ius-neutral-3);border-radius:var(--ius-radius-sm);flex:none;-webkit-user-select:none;user-select:none}.ius-skeleton[data-anim=shimmer]:after{content:\"\";position:absolute;inset:0;transform:translate(-100%);background:linear-gradient(90deg,transparent 0,color-mix(in srgb,var(--ius-neutral-white) 70%,transparent) 50%,transparent 100%);animation:ius-skeleton-shimmer 1.4s ease-in-out infinite}@keyframes ius-skeleton-shimmer{to{transform:translate(100%)}}.ius-skeleton[data-anim=pulse]{animation:ius-skeleton-pulse 1.5s ease-in-out infinite}@keyframes ius-skeleton-pulse{0%,to{opacity:1}50%{opacity:.45}}.ius-skeleton[data-variant=circle],.ius-skeleton[data-variant=pill]{border-radius:var(--ius-radius-pill)}.ius-skeleton[data-variant=button]{border-radius:var(--ius-radius-lg)}.ius-skeleton[data-variant=rect]{border-radius:var(--ius-radius-md)}.ius-skeleton-text{display:flex;flex-direction:column}.ius-skeleton-chart{display:flex;align-items:flex-end}.ius-skeleton-chart .ius-skeleton{flex:1 1 0;border-radius:var(--ius-radius-sm)}@media(prefers-reduced-motion:reduce){.ius-skeleton[data-anim=shimmer]:after{animation:none}.ius-skeleton[data-anim=pulse]{animation:none;opacity:.85}}\n"] }]
|
|
14132
14132
|
}], propDecorators: { variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], width: [{ type: i0.Input, args: [{ isSignal: true, alias: "width", required: false }] }], height: [{ type: i0.Input, args: [{ isSignal: true, alias: "height", required: false }] }], radius: [{ type: i0.Input, args: [{ isSignal: true, alias: "radius", required: false }] }], lines: [{ type: i0.Input, args: [{ isSignal: true, alias: "lines", required: false }] }], lastLineWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "lastLineWidth", required: false }] }], bars: [{ type: i0.Input, args: [{ isSignal: true, alias: "bars", required: false }] }], gap: [{ type: i0.Input, args: [{ isSignal: true, alias: "gap", required: false }] }], animation: [{ type: i0.Input, args: [{ isSignal: true, alias: "animation", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }] } });
|
|
14133
14133
|
|
|
14134
14134
|
/** Breadcrumb proyectado (solo detalle): `<ius-breadcrumb iusPageHeaderBreadcrumb />`. */
|
|
@@ -14258,7 +14258,7 @@ class PageHeaderComponent {
|
|
|
14258
14258
|
...(ngDevMode ? [{ debugName: "backInBreadcrumb" }] : /* istanbul ignore next */ []));
|
|
14259
14259
|
}
|
|
14260
14260
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: PageHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
14261
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: PageHeaderComponent, isStandalone: true, selector: "ius-page-header", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, subtitle: { classPropertyName: "subtitle", publicName: "subtitle", isSignal: true, isRequired: false, transformFunction: null }, overline: { classPropertyName: "overline", publicName: "overline", isSignal: true, isRequired: false, transformFunction: null }, titleLevel: { classPropertyName: "titleLevel", publicName: "titleLevel", isSignal: true, isRequired: false, transformFunction: null }, showBack: { classPropertyName: "showBack", publicName: "showBack", isSignal: true, isRequired: false, transformFunction: null }, backLabel: { classPropertyName: "backLabel", publicName: "backLabel", isSignal: true, isRequired: false, transformFunction: null }, divider: { classPropertyName: "divider", publicName: "divider", isSignal: true, isRequired: false, transformFunction: null }, surface: { classPropertyName: "surface", publicName: "surface", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { back: "back" }, host: { properties: { "attr.data-divider": "divider() ? 'true' : null", "attr.data-surface": "surface() ? 'true' : null" }, classAttribute: "ius-pageheader" }, queries: [{ propertyName: "breadcrumbRef", first: true, predicate: IusPageHeaderBreadcrumbDirective, descendants: true, isSignal: true }, { propertyName: "actionsRef", first: true, predicate: IusPageHeaderActionsDirective, descendants: true, isSignal: true }, { propertyName: "toolbarRef", first: true, predicate: IusPageHeaderToolbarDirective, descendants: true, isSignal: true }, { propertyName: "overlineRef", first: true, predicate: IusPageHeaderOverlineDirective, descendants: true, isSignal: true }, { propertyName: "titleRef", first: true, predicate: IusPageHeaderTitleDirective, descendants: true, isSignal: true }, { propertyName: "subtitleRef", first: true, predicate: IusPageHeaderSubtitleDirective, descendants: true, isSignal: true }], ngImport: i0, template: "<!-- Fila de breadcrumb (solo detalle); volver la encabeza si existe -->\n@if (hasBreadcrumb()) {\n <div class=\"ius-pageheader__bc\">\n @if (backInBreadcrumb()) {\n <span class=\"ius-pageheader__back\">\n <ius-icon-button\n icon=\"arrow_back\"\n variant=\"tertiary\"\n size=\"small\"\n [ariaLabel]=\"backLabel()\"\n (clicked)=\"back.emit($event)\"\n />\n </span>\n }\n <ng-content select=\"[iusPageHeaderBreadcrumb]\" />\n </div>\n}\n\n<div class=\"ius-pageheader__top\">\n <div class=\"ius-pageheader__lead\">\n @if (showBack() && !backInBreadcrumb()) {\n <span class=\"ius-pageheader__back\">\n <ius-icon-button\n icon=\"arrow_back\"\n variant=\"tertiary\"\n size=\"small\"\n [ariaLabel]=\"backLabel()\"\n (clicked)=\"back.emit($event)\"\n />\n </span>\n }\n <div class=\"ius-pageheader__titles\">\n <!-- Cada pieza: input de texto \u203A contenido proyectado con su directiva -->\n @if (overline() != null || hasOverlineSlot()) {\n <span class=\"ius-pageheader__overline\">\n @if (overline() != null) {\n {{ overline() }}\n } @else {\n <ng-content select=\"[iusPageHeaderOverline]\" />\n }\n </span>\n }\n @if (title() != null || hasTitleSlot()) {\n <h1 class=\"ius-pageheader__title\" [class]=\"'ius-' + titleLevel()\">\n @if (title() != null) {\n {{ title() }}\n } @else {\n <ng-content select=\"[iusPageHeaderTitle]\" />\n }\n </h1>\n }\n @if (subtitle() != null || hasSubtitleSlot()) {\n <p class=\"ius-pageheader__subtitle\">\n @if (subtitle() != null) {\n {{ subtitle() }}\n } @else {\n <ng-content select=\"[iusPageHeaderSubtitle]\" />\n }\n </p>\n }\n </div>\n </div>\n @if (hasActions()) {\n <div class=\"ius-pageheader__actions\"><ng-content select=\"[iusPageHeaderActions]\" /></div>\n }\n</div>\n\n@if (hasToolbar()) {\n <div class=\"ius-pageheader__toolbar\"><ng-content select=\"[iusPageHeaderToolbar]\" /></div>\n}\n", styles: ["@charset \"UTF-8\";:host{display:flex;flex-direction:column;gap:var(--ius-space-xs)}:host([data-surface=true]){background:var(--ius-surface-card);border:1px solid var(--ius-stroke);border-radius:var(--ius-radius-lg);padding:var(--ius-space-md) var(--ius-space-lg)}:host([data-divider=true]){border-bottom:1px solid var(--ius-stroke);padding-bottom:var(--ius-space-sm)}.ius-pageheader__bc{min-width:0;display:flex;align-items:center;gap:var(--ius-space-xs)}.ius-pageheader__bc .ius-pageheader__back{margin-top:0}.ius-pageheader__top{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--ius-space-lg)}.ius-pageheader__lead{display:flex;align-items:flex-start;gap:var(--ius-space-sm);min-width:0}.ius-pageheader__back{flex:0 0 auto}.ius-pageheader__titles{min-width:0;display:flex;flex-direction:column;gap:var(--ius-space-xxs)}.ius-pageheader__overline{font-family:var(--ius-font-display);font-size:var(--ius-fs-sm);font-weight:var(--ius-fw-medium);line-height:var(--ius-lh-sm);letter-spacing:var(--ius-ls-emphasis);text-transform:uppercase;color:var(--ius-text-tertiary)}.ius-pageheader__title{margin:0}.ius-pageheader__subtitle{margin:0;font-family:var(--ius-font-body);font-size:var(--ius-fs-base);line-height:var(--ius-lh-base);color:var(--ius-text-secondary)}.ius-pageheader__actions{flex:0 0 auto;display:inline-flex;align-items:center;gap:var(--ius-space-sm)}.ius-pageheader__toolbar{display:flex;align-items:center;gap:var(--ius-space-sm);flex-wrap:wrap}\n"], dependencies: [{ kind: "component", type: IconButtonComponent, selector: "ius-icon-button", inputs: ["icon", "variant", "size", "shape", "disabled", "type", "ariaLabel", "tooltip", "tooltipPlacement"], outputs: ["clicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
14261
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: PageHeaderComponent, isStandalone: true, selector: "ius-page-header", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, subtitle: { classPropertyName: "subtitle", publicName: "subtitle", isSignal: true, isRequired: false, transformFunction: null }, overline: { classPropertyName: "overline", publicName: "overline", isSignal: true, isRequired: false, transformFunction: null }, titleLevel: { classPropertyName: "titleLevel", publicName: "titleLevel", isSignal: true, isRequired: false, transformFunction: null }, showBack: { classPropertyName: "showBack", publicName: "showBack", isSignal: true, isRequired: false, transformFunction: null }, backLabel: { classPropertyName: "backLabel", publicName: "backLabel", isSignal: true, isRequired: false, transformFunction: null }, divider: { classPropertyName: "divider", publicName: "divider", isSignal: true, isRequired: false, transformFunction: null }, surface: { classPropertyName: "surface", publicName: "surface", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { back: "back" }, host: { properties: { "attr.data-divider": "divider() ? 'true' : null", "attr.data-surface": "surface() ? 'true' : null" }, classAttribute: "ius-pageheader" }, queries: [{ propertyName: "breadcrumbRef", first: true, predicate: IusPageHeaderBreadcrumbDirective, descendants: true, isSignal: true }, { propertyName: "actionsRef", first: true, predicate: IusPageHeaderActionsDirective, descendants: true, isSignal: true }, { propertyName: "toolbarRef", first: true, predicate: IusPageHeaderToolbarDirective, descendants: true, isSignal: true }, { propertyName: "overlineRef", first: true, predicate: IusPageHeaderOverlineDirective, descendants: true, isSignal: true }, { propertyName: "titleRef", first: true, predicate: IusPageHeaderTitleDirective, descendants: true, isSignal: true }, { propertyName: "subtitleRef", first: true, predicate: IusPageHeaderSubtitleDirective, descendants: true, isSignal: true }], ngImport: i0, template: "<!-- Fila de breadcrumb (solo detalle); volver la encabeza si existe -->\r\n@if (hasBreadcrumb()) {\r\n <div class=\"ius-pageheader__bc\">\r\n @if (backInBreadcrumb()) {\r\n <span class=\"ius-pageheader__back\">\r\n <ius-icon-button\r\n icon=\"arrow_back\"\r\n variant=\"tertiary\"\r\n size=\"small\"\r\n [ariaLabel]=\"backLabel()\"\r\n (clicked)=\"back.emit($event)\"\r\n />\r\n </span>\r\n }\r\n <ng-content select=\"[iusPageHeaderBreadcrumb]\" />\r\n </div>\r\n}\r\n\r\n<div class=\"ius-pageheader__top\">\r\n <div class=\"ius-pageheader__lead\">\r\n @if (showBack() && !backInBreadcrumb()) {\r\n <span class=\"ius-pageheader__back\">\r\n <ius-icon-button\r\n icon=\"arrow_back\"\r\n variant=\"tertiary\"\r\n size=\"small\"\r\n [ariaLabel]=\"backLabel()\"\r\n (clicked)=\"back.emit($event)\"\r\n />\r\n </span>\r\n }\r\n <div class=\"ius-pageheader__titles\">\r\n <!-- Cada pieza: input de texto \u203A contenido proyectado con su directiva -->\r\n @if (overline() != null || hasOverlineSlot()) {\r\n <span class=\"ius-pageheader__overline\">\r\n @if (overline() != null) {\r\n {{ overline() }}\r\n } @else {\r\n <ng-content select=\"[iusPageHeaderOverline]\" />\r\n }\r\n </span>\r\n }\r\n @if (title() != null || hasTitleSlot()) {\r\n <h1 class=\"ius-pageheader__title\" [class]=\"'ius-' + titleLevel()\">\r\n @if (title() != null) {\r\n {{ title() }}\r\n } @else {\r\n <ng-content select=\"[iusPageHeaderTitle]\" />\r\n }\r\n </h1>\r\n }\r\n @if (subtitle() != null || hasSubtitleSlot()) {\r\n <p class=\"ius-pageheader__subtitle\">\r\n @if (subtitle() != null) {\r\n {{ subtitle() }}\r\n } @else {\r\n <ng-content select=\"[iusPageHeaderSubtitle]\" />\r\n }\r\n </p>\r\n }\r\n </div>\r\n </div>\r\n @if (hasActions()) {\r\n <div class=\"ius-pageheader__actions\"><ng-content select=\"[iusPageHeaderActions]\" /></div>\r\n }\r\n</div>\r\n\r\n@if (hasToolbar()) {\r\n <div class=\"ius-pageheader__toolbar\"><ng-content select=\"[iusPageHeaderToolbar]\" /></div>\r\n}\r\n", styles: ["@charset \"UTF-8\";:host{display:flex;flex-direction:column;gap:var(--ius-space-xs)}:host([data-surface=true]){background:var(--ius-surface-card);border:1px solid var(--ius-stroke);border-radius:var(--ius-radius-lg);padding:var(--ius-space-md) var(--ius-space-lg)}:host([data-divider=true]){border-bottom:1px solid var(--ius-stroke);padding-bottom:var(--ius-space-sm)}.ius-pageheader__bc{min-width:0;display:flex;align-items:center;gap:var(--ius-space-xs)}.ius-pageheader__bc .ius-pageheader__back{margin-top:0}.ius-pageheader__top{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--ius-space-lg)}.ius-pageheader__lead{display:flex;align-items:flex-start;gap:var(--ius-space-sm);min-width:0}.ius-pageheader__back{flex:0 0 auto}.ius-pageheader__titles{min-width:0;display:flex;flex-direction:column;gap:var(--ius-space-xxs)}.ius-pageheader__overline{font-family:var(--ius-font-display);font-size:var(--ius-fs-sm);font-weight:var(--ius-fw-medium);line-height:var(--ius-lh-sm);letter-spacing:var(--ius-ls-emphasis);text-transform:uppercase;color:var(--ius-text-tertiary)}.ius-pageheader__title{margin:0}.ius-pageheader__subtitle{margin:0;font-family:var(--ius-font-body);font-size:var(--ius-fs-base);line-height:var(--ius-lh-base);color:var(--ius-text-secondary)}.ius-pageheader__actions{flex:0 0 auto;display:inline-flex;align-items:center;gap:var(--ius-space-sm)}.ius-pageheader__toolbar{display:flex;align-items:center;gap:var(--ius-space-sm);flex-wrap:wrap}\n"], dependencies: [{ kind: "component", type: IconButtonComponent, selector: "ius-icon-button", inputs: ["icon", "variant", "size", "shape", "disabled", "type", "ariaLabel", "tooltip", "tooltipPlacement"], outputs: ["clicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
14262
14262
|
}
|
|
14263
14263
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: PageHeaderComponent, decorators: [{
|
|
14264
14264
|
type: Component,
|
|
@@ -14266,10 +14266,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
14266
14266
|
class: 'ius-pageheader',
|
|
14267
14267
|
'[attr.data-divider]': "divider() ? 'true' : null",
|
|
14268
14268
|
'[attr.data-surface]': "surface() ? 'true' : null",
|
|
14269
|
-
}, template: "<!-- Fila de breadcrumb (solo detalle); volver la encabeza si existe -->\n@if (hasBreadcrumb()) {\n <div class=\"ius-pageheader__bc\">\n @if (backInBreadcrumb()) {\n <span class=\"ius-pageheader__back\">\n <ius-icon-button\n icon=\"arrow_back\"\n variant=\"tertiary\"\n size=\"small\"\n [ariaLabel]=\"backLabel()\"\n (clicked)=\"back.emit($event)\"\n />\n </span>\n }\n <ng-content select=\"[iusPageHeaderBreadcrumb]\" />\n </div>\n}\n\n<div class=\"ius-pageheader__top\">\n <div class=\"ius-pageheader__lead\">\n @if (showBack() && !backInBreadcrumb()) {\n <span class=\"ius-pageheader__back\">\n <ius-icon-button\n icon=\"arrow_back\"\n variant=\"tertiary\"\n size=\"small\"\n [ariaLabel]=\"backLabel()\"\n (clicked)=\"back.emit($event)\"\n />\n </span>\n }\n <div class=\"ius-pageheader__titles\">\n <!-- Cada pieza: input de texto \u203A contenido proyectado con su directiva -->\n @if (overline() != null || hasOverlineSlot()) {\n <span class=\"ius-pageheader__overline\">\n @if (overline() != null) {\n {{ overline() }}\n } @else {\n <ng-content select=\"[iusPageHeaderOverline]\" />\n }\n </span>\n }\n @if (title() != null || hasTitleSlot()) {\n <h1 class=\"ius-pageheader__title\" [class]=\"'ius-' + titleLevel()\">\n @if (title() != null) {\n {{ title() }}\n } @else {\n <ng-content select=\"[iusPageHeaderTitle]\" />\n }\n </h1>\n }\n @if (subtitle() != null || hasSubtitleSlot()) {\n <p class=\"ius-pageheader__subtitle\">\n @if (subtitle() != null) {\n {{ subtitle() }}\n } @else {\n <ng-content select=\"[iusPageHeaderSubtitle]\" />\n }\n </p>\n }\n </div>\n </div>\n @if (hasActions()) {\n <div class=\"ius-pageheader__actions\"><ng-content select=\"[iusPageHeaderActions]\" /></div>\n }\n</div>\n\n@if (hasToolbar()) {\n <div class=\"ius-pageheader__toolbar\"><ng-content select=\"[iusPageHeaderToolbar]\" /></div>\n}\n", styles: ["@charset \"UTF-8\";:host{display:flex;flex-direction:column;gap:var(--ius-space-xs)}:host([data-surface=true]){background:var(--ius-surface-card);border:1px solid var(--ius-stroke);border-radius:var(--ius-radius-lg);padding:var(--ius-space-md) var(--ius-space-lg)}:host([data-divider=true]){border-bottom:1px solid var(--ius-stroke);padding-bottom:var(--ius-space-sm)}.ius-pageheader__bc{min-width:0;display:flex;align-items:center;gap:var(--ius-space-xs)}.ius-pageheader__bc .ius-pageheader__back{margin-top:0}.ius-pageheader__top{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--ius-space-lg)}.ius-pageheader__lead{display:flex;align-items:flex-start;gap:var(--ius-space-sm);min-width:0}.ius-pageheader__back{flex:0 0 auto}.ius-pageheader__titles{min-width:0;display:flex;flex-direction:column;gap:var(--ius-space-xxs)}.ius-pageheader__overline{font-family:var(--ius-font-display);font-size:var(--ius-fs-sm);font-weight:var(--ius-fw-medium);line-height:var(--ius-lh-sm);letter-spacing:var(--ius-ls-emphasis);text-transform:uppercase;color:var(--ius-text-tertiary)}.ius-pageheader__title{margin:0}.ius-pageheader__subtitle{margin:0;font-family:var(--ius-font-body);font-size:var(--ius-fs-base);line-height:var(--ius-lh-base);color:var(--ius-text-secondary)}.ius-pageheader__actions{flex:0 0 auto;display:inline-flex;align-items:center;gap:var(--ius-space-sm)}.ius-pageheader__toolbar{display:flex;align-items:center;gap:var(--ius-space-sm);flex-wrap:wrap}\n"] }]
|
|
14269
|
+
}, template: "<!-- Fila de breadcrumb (solo detalle); volver la encabeza si existe -->\r\n@if (hasBreadcrumb()) {\r\n <div class=\"ius-pageheader__bc\">\r\n @if (backInBreadcrumb()) {\r\n <span class=\"ius-pageheader__back\">\r\n <ius-icon-button\r\n icon=\"arrow_back\"\r\n variant=\"tertiary\"\r\n size=\"small\"\r\n [ariaLabel]=\"backLabel()\"\r\n (clicked)=\"back.emit($event)\"\r\n />\r\n </span>\r\n }\r\n <ng-content select=\"[iusPageHeaderBreadcrumb]\" />\r\n </div>\r\n}\r\n\r\n<div class=\"ius-pageheader__top\">\r\n <div class=\"ius-pageheader__lead\">\r\n @if (showBack() && !backInBreadcrumb()) {\r\n <span class=\"ius-pageheader__back\">\r\n <ius-icon-button\r\n icon=\"arrow_back\"\r\n variant=\"tertiary\"\r\n size=\"small\"\r\n [ariaLabel]=\"backLabel()\"\r\n (clicked)=\"back.emit($event)\"\r\n />\r\n </span>\r\n }\r\n <div class=\"ius-pageheader__titles\">\r\n <!-- Cada pieza: input de texto \u203A contenido proyectado con su directiva -->\r\n @if (overline() != null || hasOverlineSlot()) {\r\n <span class=\"ius-pageheader__overline\">\r\n @if (overline() != null) {\r\n {{ overline() }}\r\n } @else {\r\n <ng-content select=\"[iusPageHeaderOverline]\" />\r\n }\r\n </span>\r\n }\r\n @if (title() != null || hasTitleSlot()) {\r\n <h1 class=\"ius-pageheader__title\" [class]=\"'ius-' + titleLevel()\">\r\n @if (title() != null) {\r\n {{ title() }}\r\n } @else {\r\n <ng-content select=\"[iusPageHeaderTitle]\" />\r\n }\r\n </h1>\r\n }\r\n @if (subtitle() != null || hasSubtitleSlot()) {\r\n <p class=\"ius-pageheader__subtitle\">\r\n @if (subtitle() != null) {\r\n {{ subtitle() }}\r\n } @else {\r\n <ng-content select=\"[iusPageHeaderSubtitle]\" />\r\n }\r\n </p>\r\n }\r\n </div>\r\n </div>\r\n @if (hasActions()) {\r\n <div class=\"ius-pageheader__actions\"><ng-content select=\"[iusPageHeaderActions]\" /></div>\r\n }\r\n</div>\r\n\r\n@if (hasToolbar()) {\r\n <div class=\"ius-pageheader__toolbar\"><ng-content select=\"[iusPageHeaderToolbar]\" /></div>\r\n}\r\n", styles: ["@charset \"UTF-8\";:host{display:flex;flex-direction:column;gap:var(--ius-space-xs)}:host([data-surface=true]){background:var(--ius-surface-card);border:1px solid var(--ius-stroke);border-radius:var(--ius-radius-lg);padding:var(--ius-space-md) var(--ius-space-lg)}:host([data-divider=true]){border-bottom:1px solid var(--ius-stroke);padding-bottom:var(--ius-space-sm)}.ius-pageheader__bc{min-width:0;display:flex;align-items:center;gap:var(--ius-space-xs)}.ius-pageheader__bc .ius-pageheader__back{margin-top:0}.ius-pageheader__top{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--ius-space-lg)}.ius-pageheader__lead{display:flex;align-items:flex-start;gap:var(--ius-space-sm);min-width:0}.ius-pageheader__back{flex:0 0 auto}.ius-pageheader__titles{min-width:0;display:flex;flex-direction:column;gap:var(--ius-space-xxs)}.ius-pageheader__overline{font-family:var(--ius-font-display);font-size:var(--ius-fs-sm);font-weight:var(--ius-fw-medium);line-height:var(--ius-lh-sm);letter-spacing:var(--ius-ls-emphasis);text-transform:uppercase;color:var(--ius-text-tertiary)}.ius-pageheader__title{margin:0}.ius-pageheader__subtitle{margin:0;font-family:var(--ius-font-body);font-size:var(--ius-fs-base);line-height:var(--ius-lh-base);color:var(--ius-text-secondary)}.ius-pageheader__actions{flex:0 0 auto;display:inline-flex;align-items:center;gap:var(--ius-space-sm)}.ius-pageheader__toolbar{display:flex;align-items:center;gap:var(--ius-space-sm);flex-wrap:wrap}\n"] }]
|
|
14270
14270
|
}], propDecorators: { title: [{ type: i0.Input, args: [{ isSignal: true, alias: "title", required: false }] }], subtitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "subtitle", required: false }] }], overline: [{ type: i0.Input, args: [{ isSignal: true, alias: "overline", required: false }] }], titleLevel: [{ type: i0.Input, args: [{ isSignal: true, alias: "titleLevel", required: false }] }], showBack: [{ type: i0.Input, args: [{ isSignal: true, alias: "showBack", required: false }] }], backLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "backLabel", required: false }] }], divider: [{ type: i0.Input, args: [{ isSignal: true, alias: "divider", required: false }] }], surface: [{ type: i0.Input, args: [{ isSignal: true, alias: "surface", required: false }] }], back: [{ type: i0.Output, args: ["back"] }], breadcrumbRef: [{ type: i0.ContentChild, args: [i0.forwardRef(() => IusPageHeaderBreadcrumbDirective), { isSignal: true }] }], actionsRef: [{ type: i0.ContentChild, args: [i0.forwardRef(() => IusPageHeaderActionsDirective), { isSignal: true }] }], toolbarRef: [{ type: i0.ContentChild, args: [i0.forwardRef(() => IusPageHeaderToolbarDirective), { isSignal: true }] }], overlineRef: [{ type: i0.ContentChild, args: [i0.forwardRef(() => IusPageHeaderOverlineDirective), { isSignal: true }] }], titleRef: [{ type: i0.ContentChild, args: [i0.forwardRef(() => IusPageHeaderTitleDirective), { isSignal: true }] }], subtitleRef: [{ type: i0.ContentChild, args: [i0.forwardRef(() => IusPageHeaderSubtitleDirective), { isSignal: true }] }] } });
|
|
14271
14271
|
|
|
14272
|
-
let uid$
|
|
14272
|
+
let uid$4 = 0;
|
|
14273
14273
|
/** `min`/`max`/`step` llegan como número o como atributo de texto; vacío = sin valor.
|
|
14274
14274
|
* (Declaración de función: el compilador exige un transform analizable estáticamente.) */
|
|
14275
14275
|
function numeroOpcional(v) {
|
|
@@ -14340,7 +14340,7 @@ class NumberFieldComponent {
|
|
|
14340
14340
|
...(ngDevMode ? [{ debugName: "text" }] : /* istanbul ignore next */ []));
|
|
14341
14341
|
this.focused = signal(false, /* @ts-ignore */
|
|
14342
14342
|
...(ngDevMode ? [{ debugName: "focused" }] : /* istanbul ignore next */ []));
|
|
14343
|
-
this.inputId = `ius-num-${uid$
|
|
14343
|
+
this.inputId = `ius-num-${uid$4++}`;
|
|
14344
14344
|
this.helpId = `${this.inputId}-help`;
|
|
14345
14345
|
this.atMax = computed(() => {
|
|
14346
14346
|
const max = this.maxState();
|
|
@@ -14570,7 +14570,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
14570
14570
|
type: Directive,
|
|
14571
14571
|
args: [{ selector: '[iusFormFooter]', standalone: true }]
|
|
14572
14572
|
}] });
|
|
14573
|
-
let uid$
|
|
14573
|
+
let uid$3 = 0;
|
|
14574
14574
|
/**
|
|
14575
14575
|
* Form — Ius Design v2 (familia layout).
|
|
14576
14576
|
*
|
|
@@ -14645,7 +14645,7 @@ class FormComponent {
|
|
|
14645
14645
|
...(ngDevMode ? [{ debugName: "errores" }] : /* istanbul ignore next */ []));
|
|
14646
14646
|
this.hasErrors = computed(() => this.errores().length > 0, /* @ts-ignore */
|
|
14647
14647
|
...(ngDevMode ? [{ debugName: "hasErrors" }] : /* istanbul ignore next */ []));
|
|
14648
|
-
this.formId = `ius-form-${uid$
|
|
14648
|
+
this.formId = `ius-form-${uid$3++}`;
|
|
14649
14649
|
// ── Coordinación single-open de las secciones colapsables ──────────────
|
|
14650
14650
|
/** Sección colapsable abierta en modo `accordion` (`null` = todas cerradas). */
|
|
14651
14651
|
this.openSectionId = signal(null, /* @ts-ignore */
|
|
@@ -14685,7 +14685,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
14685
14685
|
args: [{ selector: 'ius-form', standalone: true, imports: [AlertComponent, ButtonComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<form class=\"ius-form\" [id]=\"formId\" novalidate (submit)=\"onSubmit($event)\">\r\n @if (hasErrors()) {\r\n <ius-alert tone=\"danger\" role=\"alert\" [title]=\"errorTitle()\">\r\n <ul class=\"ius-form__summary-list\">\r\n @for (e of errores(); track e.field ?? $index) {\r\n <li>\r\n @if (e.field; as field) {\r\n <a [href]=\"'#' + field\" (click)=\"focusField(field, $event)\">{{ e.label || field }}</a>\r\n } @else {\r\n {{ e.label || '' }}\r\n }\r\n @if (e.message) {\r\n \u2014 {{ e.message }}\r\n }\r\n </li>\r\n }\r\n </ul>\r\n </ius-alert>\r\n }\r\n\r\n <div class=\"ius-form__grid\" [attr.data-cols]=\"columns()\">\r\n <ng-content />\r\n </div>\r\n\r\n @if (footer()) {\r\n <div class=\"ius-form__footer\" [attr.data-sticky]=\"stickyFooter() ? 'true' : null\">\r\n @if (hasFooterSlot()) {\r\n <ng-content select=\"[iusFormFooter]\" />\r\n } @else {\r\n @if (showCancel()) {\r\n <ius-button [variant]=\"cancelVariant()\" type=\"button\" [label]=\"cancelLabel()\" (clicked)=\"onCancel()\" />\r\n }\r\n <ius-button\r\n [variant]=\"submitVariant()\"\r\n type=\"submit\"\r\n [loading]=\"submitting()\"\r\n [disabled]=\"submitDisabled()\"\r\n [label]=\"submitLabel()\"\r\n />\r\n }\r\n </div>\r\n }\r\n</form>\r\n", styles: ["@charset \"UTF-8\";:host{display:flex;flex-direction:column;min-height:0}.ius-form{container-type:inline-size;display:flex;flex-direction:column;gap:var(--ius-space-lg);font-family:var(--ius-font-body);min-height:0;margin:0;flex:1 1 auto}.ius-form__grid{display:grid;gap:var(--ius-space-md) var(--ius-space-lg);grid-template-columns:1fr;align-content:start}.ius-form__grid[data-cols=\"1\"]{grid-template-columns:1fr}@container (min-width: 600px){.ius-form__grid[data-cols=\"2\"],.ius-form__grid[data-cols=auto]{grid-template-columns:1fr 1fr}}.ius-form__footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--ius-space-sm)}.ius-form__footer[data-sticky=true]{position:sticky;bottom:0;background:var(--ius-surface-card);border-top:1px solid var(--ius-stroke);padding-top:var(--ius-space-md)}.ius-form__summary-list{list-style:disc;margin:var(--ius-space-xs) 0 0;padding-left:var(--ius-space-lg);display:flex;flex-direction:column;gap:var(--ius-space-xxs)}.ius-form__summary-list li{font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm)}.ius-form__summary-list a{color:inherit;text-decoration:underline;cursor:pointer}\n"] }]
|
|
14686
14686
|
}], propDecorators: { columns: [{ type: i0.Input, args: [{ isSignal: true, alias: "columns", required: false }] }], errorSummary: [{ type: i0.Input, args: [{ isSignal: true, alias: "errorSummary", required: false }] }], errorTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "errorTitle", required: false }] }], submitLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "submitLabel", required: false }] }], cancelLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "cancelLabel", required: false }] }], submitVariant: [{ type: i0.Input, args: [{ isSignal: true, alias: "submitVariant", required: false }] }], cancelVariant: [{ type: i0.Input, args: [{ isSignal: true, alias: "cancelVariant", required: false }] }], submitting: [{ type: i0.Input, args: [{ isSignal: true, alias: "submitting", required: false }] }], submitDisabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "submitDisabled", required: false }] }], footer: [{ type: i0.Input, args: [{ isSignal: true, alias: "footer", required: false }] }], showCancel: [{ type: i0.Input, args: [{ isSignal: true, alias: "showCancel", required: false }] }], stickyFooter: [{ type: i0.Input, args: [{ isSignal: true, alias: "stickyFooter", required: false }] }], accordion: [{ type: i0.Input, args: [{ isSignal: true, alias: "accordion", required: false }] }], sectionVariant: [{ type: i0.Input, args: [{ isSignal: true, alias: "sectionVariant", required: false }] }], submitted: [{ type: i0.Output, args: ["submitted"] }], cancelled: [{ type: i0.Output, args: ["cancelled"] }], footerSlot: [{ type: i0.ContentChild, args: [i0.forwardRef(() => IusFormFooterDirective), { isSignal: true }] }] } });
|
|
14687
14687
|
|
|
14688
|
-
let uid = 0;
|
|
14688
|
+
let uid$2 = 0;
|
|
14689
14689
|
/**
|
|
14690
14690
|
* FormSection — agrupa campos bajo un título (opcionalmente colapsable).
|
|
14691
14691
|
*
|
|
@@ -14718,7 +14718,7 @@ class FormSectionComponent {
|
|
|
14718
14718
|
this.columns = input(undefined, /* @ts-ignore */
|
|
14719
14719
|
...(ngDevMode ? [{ debugName: "columns" }] : /* istanbul ignore next */ []));
|
|
14720
14720
|
this.cuerpo = viewChild.required('cuerpo');
|
|
14721
|
-
this.sectionId = `ius-form-sec-${uid++}`;
|
|
14721
|
+
this.sectionId = `ius-form-sec-${uid$2++}`;
|
|
14722
14722
|
this.colsEfectivas = computed(() => this.columns() ?? this.form?.columns() ?? 'auto', /* @ts-ignore */
|
|
14723
14723
|
...(ngDevMode ? [{ debugName: "colsEfectivas" }] : /* istanbul ignore next */ []));
|
|
14724
14724
|
this.variantEfectiva = computed(() => this.variant() ?? this.form?.sectionVariant() ?? 'contained', /* @ts-ignore */
|
|
@@ -14944,6 +14944,699 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
14944
14944
|
args: [{ selector: 'ius-breadcrumb', standalone: true, imports: [PopoverComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<nav [attr.aria-label]=\"ariaLabel()\">\r\n <ol class=\"ius-bc\" [attr.data-size]=\"size() !== 'medium' ? size() : null\">\r\n @for (entry of rendered(); track $index; let i = $index) {\r\n @if (i > 0) {\r\n <li class=\"ius-bc__item\" aria-hidden=\"true\">\r\n @if (separator() === 'slash') {\r\n <span class=\"ius-bc__sep ius-bc__sep--slash\">/</span>\r\n } @else {\r\n <span class=\"ius-bc__sep\"><span translate=\"no\" class=\"ius-icon\">chevron_right</span></span>\r\n }\r\n </li>\r\n }\r\n\r\n @if (entry.kind === 'more') {\r\n <li class=\"ius-bc__item\">\r\n <ius-popover\r\n placement=\"bottom\"\r\n trigger=\"click\"\r\n [showArrow]=\"true\"\r\n padding=\"compact\"\r\n [open]=\"moreOpen()\"\r\n (openChange)=\"moreOpen.set($event)\"\r\n >\r\n <button type=\"button\" class=\"ius-bc__more\" aria-label=\"Mostrar ruta oculta\">\r\n <span translate=\"no\" class=\"ius-icon\">more_horiz</span>\r\n </button>\r\n <div iusPopoverContent class=\"ius-bc__menu\">\r\n @for (h of entry.hidden; track h.index) {\r\n <button type=\"button\" class=\"ius-bc__menu-item\" (click)=\"onHidden(h.item, h.index, $event)\">\r\n @if (h.item.icon) {\r\n <span translate=\"no\" class=\"ius-icon\" aria-hidden=\"true\">{{ h.item.icon }}</span>\r\n }\r\n <span>{{ h.item.label }}</span>\r\n </button>\r\n }\r\n </div>\r\n </ius-popover>\r\n </li>\r\n } @else {\r\n <li class=\"ius-bc__item\">\r\n @if (isCurrent(entry.index)) {\r\n <span class=\"ius-bc__crumb\" aria-current=\"page\">\r\n @if (entry.item.icon) {\r\n <span translate=\"no\" class=\"ius-icon\" aria-hidden=\"true\">{{ entry.item.icon }}</span>\r\n }\r\n <span class=\"ius-bc__label\">{{ entry.item.label }}</span>\r\n </span>\r\n } @else if (entry.item.href) {\r\n <a class=\"ius-bc__crumb\" [href]=\"entry.item.href\" (click)=\"onCrumb(entry.item, entry.index, $event)\">\r\n @if (entry.item.icon) {\r\n <span translate=\"no\" class=\"ius-icon\" aria-hidden=\"true\">{{ entry.item.icon }}</span>\r\n }\r\n <span class=\"ius-bc__label\">{{ entry.item.label }}</span>\r\n </a>\r\n } @else {\r\n <button type=\"button\" class=\"ius-bc__crumb\" (click)=\"onCrumb(entry.item, entry.index, $event)\">\r\n @if (entry.item.icon) {\r\n <span translate=\"no\" class=\"ius-icon\" aria-hidden=\"true\">{{ entry.item.icon }}</span>\r\n }\r\n <span class=\"ius-bc__label\">{{ entry.item.label }}</span>\r\n </button>\r\n }\r\n </li>\r\n }\r\n }\r\n </ol>\r\n</nav>\r\n", styles: ["@charset \"UTF-8\";:host{display:block}.ius-bc{-webkit-user-select:none;user-select:none;--_bc-fs: var(--ius-fs-base);--_bc-lh: var(--ius-lh-base);--_bc-icon: var(--ius-icon-sm);--_bc-gap: var(--ius-space-xs);display:flex;align-items:center;flex-wrap:wrap;font-family:var(--ius-font-body);margin:0;padding:0;list-style:none}.ius-bc[data-size=small]{--_bc-fs: var(--ius-fs-sm);--_bc-lh: var(--ius-lh-sm);--_bc-icon: var(--ius-icon-sm);--_bc-gap: var(--ius-space-xxs)}.ius-bc__item{display:inline-flex;align-items:center}.ius-bc__crumb{appearance:none;border:0;background:transparent;padding:var(--ius-space-xxs) var(--ius-space-xxs);margin:0;border-radius:var(--ius-radius-sm);display:inline-flex;align-items:center;gap:var(--_bc-gap);font-family:inherit;font-size:var(--_bc-fs);line-height:var(--_bc-lh);font-weight:var(--ius-fw-regular);color:var(--ius-text-secondary);text-decoration:none;cursor:pointer;max-width:220px;transition:color var(--ius-duration-fast) var(--ius-ease-standard),background-color var(--ius-duration-fast) var(--ius-ease-standard)}.ius-bc__crumb .ius-bc__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ius-bc__crumb .ius-icon{font-size:var(--_bc-icon);line-height:1;flex:0 0 auto}a.ius-bc__crumb:hover,button.ius-bc__crumb:hover{color:var(--ius-primary-500)}a.ius-bc__crumb:focus-visible,button.ius-bc__crumb:focus-visible{outline:none;box-shadow:var(--ius-focus-ring)}.ius-bc__crumb[aria-current=page]{color:var(--ius-primary-900);font-weight:var(--ius-fw-medium);cursor:default}.ius-bc__sep{display:inline-flex;align-items:center;justify-content:center;color:var(--ius-neutral-6);margin:0 var(--ius-space-xxs);-webkit-user-select:none;user-select:none}.ius-bc__sep .ius-icon{font-size:var(--_bc-icon);line-height:1}.ius-bc__sep--slash{font-size:var(--_bc-fs);line-height:var(--_bc-lh)}.ius-bc__more{appearance:none;border:0;background:transparent;padding:var(--ius-space-xxs) var(--ius-space-xxs);border-radius:var(--ius-radius-sm);display:inline-flex;align-items:center;color:var(--ius-text-secondary);cursor:pointer;transition:color var(--ius-duration-fast) var(--ius-ease-standard),background-color var(--ius-duration-fast) var(--ius-ease-standard)}.ius-bc__more:hover{color:var(--ius-primary-500);background:var(--ius-neutral-2)}.ius-bc__more:focus-visible{outline:none;box-shadow:var(--ius-focus-ring)}.ius-bc__more .ius-icon{font-size:var(--_bc-icon);line-height:1}.ius-bc__menu{display:flex;flex-direction:column;gap:var(--ius-space-xxs);min-width:160px}.ius-bc__menu-item{appearance:none;border:0;background:transparent;text-align:left;padding:var(--ius-space-xs) var(--ius-space-xs);border-radius:var(--ius-radius-sm);display:flex;align-items:center;gap:var(--ius-space-xs);font-family:var(--ius-font-body);font-size:var(--ius-fs-base);line-height:var(--ius-lh-base);color:var(--ius-text-primary);cursor:pointer;white-space:nowrap}.ius-bc__menu-item:hover{background:var(--ius-info-100);color:var(--ius-primary-900)}.ius-bc__menu-item .ius-icon{font-size:var(--ius-icon-md);line-height:1;color:var(--ius-text-tertiary);flex:0 0 auto}.ius-bc__menu-item:hover .ius-icon{color:var(--ius-primary-700)}\n"] }]
|
|
14945
14945
|
}], propDecorators: { items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }], separator: [{ type: i0.Input, args: [{ isSignal: true, alias: "separator", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], maxItems: [{ type: i0.Input, args: [{ isSignal: true, alias: "maxItems", required: false }] }], itemsBeforeCollapse: [{ type: i0.Input, args: [{ isSignal: true, alias: "itemsBeforeCollapse", required: false }] }], itemsAfterCollapse: [{ type: i0.Input, args: [{ isSignal: true, alias: "itemsAfterCollapse", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], navigate: [{ type: i0.Output, args: ["navigate"] }] } });
|
|
14946
14946
|
|
|
14947
|
+
/*
|
|
14948
|
+
* ChartsCore — utilidad compartida de la familia `charts/` (BarChart.ng-spec.md §10).
|
|
14949
|
+
*
|
|
14950
|
+
* QUÉ ES. No es un componente de UI: son tipos, `const` y funciones puras que
|
|
14951
|
+
* BarChart / LineChart / DonutChart / Sparkline comparten para no duplicar en
|
|
14952
|
+
* cada uno: el tipo `ChartTone` (12 tonos), la rotación categórica por defecto
|
|
14953
|
+
* de las series, el mapeo tono → `--ius-<tono>-500`, la escala «nice numbers»
|
|
14954
|
+
* de los ejes, los trazados smooth (Catmull-Rom) / linear y el formato `Intl`
|
|
14955
|
+
* es-CO por defecto.
|
|
14956
|
+
*
|
|
14957
|
+
* FUENTE DE VERDAD. Proyecto Claude Design → `components/charts/<Chart>/<Chart>.jsx`
|
|
14958
|
+
* (funciones `colorVar`, `toneOf`, `niceNum`, `axisTicks`, `smoothPath`,
|
|
14959
|
+
* `linearPath`, `defaultFormat`, idénticas en los cuatro goldens) + la nota
|
|
14960
|
+
* «Utilidades compartidas» de `BarChart.ng-spec.md` y del PORT-TRACKER.
|
|
14961
|
+
*
|
|
14962
|
+
* REGLA. La geometría SVG (coordenadas, grosores) es dato; el color siempre
|
|
14963
|
+
* sale de un token `--ius-*`. `neutral` no tiene escalón -500: mapea a la
|
|
14964
|
+
* escala gris (neutral-7 / neutral-8), igual que el golden.
|
|
14965
|
+
*/
|
|
14966
|
+
/** Orden de rotación categórica de las series cuando no traen `tone` (mismo orden que el golden). */
|
|
14967
|
+
const CHART_CATEGORICAL_TONES = [
|
|
14968
|
+
'arandano',
|
|
14969
|
+
'aguacate',
|
|
14970
|
+
'uva',
|
|
14971
|
+
'durazno',
|
|
14972
|
+
'sandia',
|
|
14973
|
+
'banano',
|
|
14974
|
+
];
|
|
14975
|
+
const CHART_SEMANTIC_TONES = [
|
|
14976
|
+
'primary',
|
|
14977
|
+
'info',
|
|
14978
|
+
'success',
|
|
14979
|
+
'warning',
|
|
14980
|
+
'danger',
|
|
14981
|
+
'neutral',
|
|
14982
|
+
];
|
|
14983
|
+
/** Los 12 tonos del contrato `ChartTone`. */
|
|
14984
|
+
const CHART_TONES = [...CHART_CATEGORICAL_TONES, ...CHART_SEMANTIC_TONES];
|
|
14985
|
+
/**
|
|
14986
|
+
* Resuelve un tono → variable CSS de color (`--ius-<tono>-<shade>`, default 500).
|
|
14987
|
+
* `neutral` no tiene -500: mapea a la escala gris (≥600 → neutral-8, si no neutral-7).
|
|
14988
|
+
*/
|
|
14989
|
+
function chartToneVar(tone, shade = 500) {
|
|
14990
|
+
if (tone === 'neutral')
|
|
14991
|
+
return shade >= 600 ? 'var(--ius-neutral-8)' : 'var(--ius-neutral-7)';
|
|
14992
|
+
return `var(--ius-${tone}-${shade})`;
|
|
14993
|
+
}
|
|
14994
|
+
/** Tono efectivo de la serie `index`: el explícito o la rotación categórica. */
|
|
14995
|
+
function chartToneAt(tone, index) {
|
|
14996
|
+
return tone ?? CHART_CATEGORICAL_TONES[index % CHART_CATEGORICAL_TONES.length];
|
|
14997
|
+
}
|
|
14998
|
+
/** Nice-number rounding para los ticks del eje (Heckbert). */
|
|
14999
|
+
function chartNiceNum(range, round) {
|
|
15000
|
+
const r = range || 1;
|
|
15001
|
+
const exp = Math.floor(Math.log10(r));
|
|
15002
|
+
const frac = r / Math.pow(10, exp);
|
|
15003
|
+
let nf;
|
|
15004
|
+
if (round)
|
|
15005
|
+
nf = frac < 1.5 ? 1 : frac < 3 ? 2 : frac < 7 ? 5 : 10;
|
|
15006
|
+
else
|
|
15007
|
+
nf = frac <= 1 ? 1 : frac <= 2 ? 2 : frac <= 5 ? 5 : 10;
|
|
15008
|
+
return nf * Math.pow(10, exp);
|
|
15009
|
+
}
|
|
15010
|
+
/**
|
|
15011
|
+
* Ticks «nice» de un eje: `count` divisiones aproximadas entre `min` y `max`,
|
|
15012
|
+
* extendidas al múltiplo de paso más cercano por fuera. El primero y el último
|
|
15013
|
+
* son el dominio efectivo del eje.
|
|
15014
|
+
*/
|
|
15015
|
+
function chartAxisTicks(min, max, count) {
|
|
15016
|
+
let hi = max;
|
|
15017
|
+
if (min === hi)
|
|
15018
|
+
hi = min + 1;
|
|
15019
|
+
const step = chartNiceNum((hi - min) / Math.max(1, count - 1), true);
|
|
15020
|
+
const niceMin = Math.floor(min / step) * step;
|
|
15021
|
+
const niceMax = Math.ceil(hi / step) * step;
|
|
15022
|
+
const out = [];
|
|
15023
|
+
for (let v = niceMin; v <= niceMax + step * 0.5; v += step)
|
|
15024
|
+
out.push(+v.toFixed(6));
|
|
15025
|
+
return out;
|
|
15026
|
+
}
|
|
15027
|
+
/** Trazado suave (Catmull-Rom → Bézier cúbica) por los puntos dados. */
|
|
15028
|
+
function chartSmoothPath(pts) {
|
|
15029
|
+
if (!pts.length)
|
|
15030
|
+
return '';
|
|
15031
|
+
if (pts.length < 3)
|
|
15032
|
+
return 'M' + pts.map((p) => p.x + ',' + p.y).join(' L');
|
|
15033
|
+
let d = 'M' + pts[0].x + ',' + pts[0].y;
|
|
15034
|
+
for (let i = 0; i < pts.length - 1; i++) {
|
|
15035
|
+
const p0 = pts[i - 1] ?? pts[i];
|
|
15036
|
+
const p1 = pts[i];
|
|
15037
|
+
const p2 = pts[i + 1];
|
|
15038
|
+
const p3 = pts[i + 2] ?? p2;
|
|
15039
|
+
const c1x = p1.x + (p2.x - p0.x) / 6;
|
|
15040
|
+
const c1y = p1.y + (p2.y - p0.y) / 6;
|
|
15041
|
+
const c2x = p2.x - (p3.x - p1.x) / 6;
|
|
15042
|
+
const c2y = p2.y - (p3.y - p1.y) / 6;
|
|
15043
|
+
d += ' C' + c1x + ',' + c1y + ' ' + c2x + ',' + c2y + ' ' + p2.x + ',' + p2.y;
|
|
15044
|
+
}
|
|
15045
|
+
return d;
|
|
15046
|
+
}
|
|
15047
|
+
/** Trazado de segmentos rectos por los puntos dados. */
|
|
15048
|
+
function chartLinearPath(pts) {
|
|
15049
|
+
return pts.length ? 'M' + pts.map((p) => p.x + ',' + p.y).join(' L') : '';
|
|
15050
|
+
}
|
|
15051
|
+
/** Trazado según la curvatura pedida. */
|
|
15052
|
+
function chartPath(pts, curve) {
|
|
15053
|
+
return curve === 'linear' ? chartLinearPath(pts) : chartSmoothPath(pts);
|
|
15054
|
+
}
|
|
15055
|
+
const esCO = typeof Intl !== 'undefined' ? new Intl.NumberFormat('es-CO') : null;
|
|
15056
|
+
/** Formato numérico por defecto de los charts: `Intl` es-CO (+ sufijo de unidad opcional). */
|
|
15057
|
+
function chartFormatValue(n, unit) {
|
|
15058
|
+
const s = esCO ? esCO.format(n) : String(n);
|
|
15059
|
+
return unit ? s + unit : s;
|
|
15060
|
+
}
|
|
15061
|
+
/** Espejo del chequeo de reduced-motion que hacen los goldens antes de animar. */
|
|
15062
|
+
function chartPrefersReducedMotion() {
|
|
15063
|
+
return (typeof window !== 'undefined' &&
|
|
15064
|
+
typeof window.matchMedia === 'function' &&
|
|
15065
|
+
window.matchMedia('(prefers-reduced-motion: reduce)').matches);
|
|
15066
|
+
}
|
|
15067
|
+
|
|
15068
|
+
let uid$1 = 0;
|
|
15069
|
+
/**
|
|
15070
|
+
* Sparkline — Ius Design v2 (familia charts).
|
|
15071
|
+
*
|
|
15072
|
+
* **Micrográfico** en SVG propio para incrustar una tendencia dentro de una
|
|
15073
|
+
* celda de tabla, una card o un KPI (`ius-stat` vía `[iusStatSparkline]`): sin
|
|
15074
|
+
* ejes, sin leyenda, sin tooltip — solo la forma del dato. Variante `line`
|
|
15075
|
+
* (con área opcional) o `bar` (la última barra a opacidad plena ancla el
|
|
15076
|
+
* «ahora»). Color por un tono fijo o **por tendencia** (`trend`: success si el
|
|
15077
|
+
* último valor ≥ el primero, si no danger).
|
|
15078
|
+
*
|
|
15079
|
+
* Pensado para repetirse muchas veces: **estático y liviano** por diseño, sin
|
|
15080
|
+
* animación ni interacción ni outputs. Fuente de verdad: `Sparkline.jsx` +
|
|
15081
|
+
* `Sparkline.d.ts` + `Sparkline.ng-spec.md`. Tonos/trazados desde `charts-core`.
|
|
15082
|
+
*
|
|
15083
|
+
* No usar como gráfico principal con ejes/leyenda/tooltip (→ LineChart / BarChart).
|
|
15084
|
+
*/
|
|
15085
|
+
class SparklineComponent {
|
|
15086
|
+
constructor() {
|
|
15087
|
+
/** Serie de valores. En `line` cada valor es un punto; en `bar`, una barra. */
|
|
15088
|
+
this.data = input([], /* @ts-ignore */
|
|
15089
|
+
...(ngDevMode ? [{ debugName: "data" }] : /* istanbul ignore next */ []));
|
|
15090
|
+
/** Forma: `line` (default) o `bar`. */
|
|
15091
|
+
this.variant = input('line', /* @ts-ignore */
|
|
15092
|
+
...(ngDevMode ? [{ debugName: "variant" }] : /* istanbul ignore next */ []));
|
|
15093
|
+
/** Ancho en px. Default 96. */
|
|
15094
|
+
this.width = input(96, { ...(ngDevMode ? { debugName: "width" } : /* istanbul ignore next */ {}), transform: numberAttribute });
|
|
15095
|
+
/** Alto en px. Default 28. */
|
|
15096
|
+
this.height = input(28, { ...(ngDevMode ? { debugName: "height" } : /* istanbul ignore next */ {}), transform: numberAttribute });
|
|
15097
|
+
/** Tono fijo del trazo/barras. Default `arandano`. Ignorado si `trend`. */
|
|
15098
|
+
this.tone = input('arandano', /* @ts-ignore */
|
|
15099
|
+
...(ngDevMode ? [{ debugName: "tone" }] : /* istanbul ignore next */ []));
|
|
15100
|
+
/** Colorea por tendencia: `success` si el último ≥ el primero, si no `danger`. */
|
|
15101
|
+
this.trend = input(false, { ...(ngDevMode ? { debugName: "trend" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
15102
|
+
/** Relleno de área bajo la línea (solo `line`). */
|
|
15103
|
+
this.area = input(false, { ...(ngDevMode ? { debugName: "area" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
15104
|
+
/** Curvatura de la línea. Default `smooth`. */
|
|
15105
|
+
this.curve = input('smooth', /* @ts-ignore */
|
|
15106
|
+
...(ngDevMode ? [{ debugName: "curve" }] : /* istanbul ignore next */ []));
|
|
15107
|
+
/** Grosor del trazo (solo `line`). Default 1.5. */
|
|
15108
|
+
this.strokeWidth = input(1.5, { ...(ngDevMode ? { debugName: "strokeWidth" } : /* istanbul ignore next */ {}), transform: numberAttribute });
|
|
15109
|
+
/** Punto en el último valor (solo `line`). Default true. */
|
|
15110
|
+
this.showDot = input(true, { ...(ngDevMode ? { debugName: "showDot" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
15111
|
+
/** Fuerza el mínimo del dominio (default: mínimo del dato). */
|
|
15112
|
+
this.min = input(undefined, /* @ts-ignore */
|
|
15113
|
+
...(ngDevMode ? [{ debugName: "min" }] : /* istanbul ignore next */ []));
|
|
15114
|
+
/** Fuerza el máximo del dominio (default: máximo del dato). */
|
|
15115
|
+
this.max = input(undefined, /* @ts-ignore */
|
|
15116
|
+
...(ngDevMode ? [{ debugName: "max" }] : /* istanbul ignore next */ []));
|
|
15117
|
+
/** Etiqueta accesible (p. ej. «Movimientos últimos 12 meses»). */
|
|
15118
|
+
this.ariaLabel = input(/* @ts-ignore */
|
|
15119
|
+
...(ngDevMode ? [undefined, { debugName: "ariaLabel" }] : /* istanbul ignore next */ []));
|
|
15120
|
+
/** Id del degradado del área, único por instancia (igual que `gid` del golden). */
|
|
15121
|
+
this.gid = `iussp-${++uid$1}`;
|
|
15122
|
+
/** Solo valores numéricos finitos (el golden descarta null/NaN antes de dibujar). */
|
|
15123
|
+
this.vals = computed(() => (this.data() ?? []).filter((v) => v != null && Number.isFinite(v)), /* @ts-ignore */
|
|
15124
|
+
...(ngDevMode ? [{ debugName: "vals" }] : /* istanbul ignore next */ []));
|
|
15125
|
+
this.hasData = computed(() => this.vals().length > 0, /* @ts-ignore */
|
|
15126
|
+
...(ngDevMode ? [{ debugName: "hasData" }] : /* istanbul ignore next */ []));
|
|
15127
|
+
/** Color efectivo: por tendencia (success/danger) o el tono fijo, siempre escalón 500. */
|
|
15128
|
+
this.color = computed(() => {
|
|
15129
|
+
const v = this.vals();
|
|
15130
|
+
const tone = this.trend()
|
|
15131
|
+
? v.length && v[v.length - 1] >= v[0]
|
|
15132
|
+
? 'success'
|
|
15133
|
+
: 'danger'
|
|
15134
|
+
: this.tone();
|
|
15135
|
+
return chartToneVar(tone);
|
|
15136
|
+
}, /* @ts-ignore */
|
|
15137
|
+
...(ngDevMode ? [{ debugName: "color" }] : /* istanbul ignore next */ []));
|
|
15138
|
+
/** Caja de dibujo: padding = strokeWidth + 1, dominio auto o forzado. */
|
|
15139
|
+
this.frame = computed(() => {
|
|
15140
|
+
const v = this.vals();
|
|
15141
|
+
const pad = this.strokeWidth() + 1;
|
|
15142
|
+
const lo = this.min() ?? (v.length ? Math.min(...v) : 0);
|
|
15143
|
+
const hi = this.max() ?? (v.length ? Math.max(...v) : 1);
|
|
15144
|
+
const span = hi - lo || 1;
|
|
15145
|
+
const innerW = Math.max(1, this.width() - pad * 2);
|
|
15146
|
+
const innerH = Math.max(1, this.height() - pad * 2);
|
|
15147
|
+
const yAt = (val) => pad + innerH - ((val - lo) / span) * innerH;
|
|
15148
|
+
return { pad, lo, hi, span, innerW, innerH, n: v.length, yAt, baseY: pad + innerH };
|
|
15149
|
+
}, /* @ts-ignore */
|
|
15150
|
+
...(ngDevMode ? [{ debugName: "frame" }] : /* istanbul ignore next */ []));
|
|
15151
|
+
/** Puntos de la línea (un solo valor se centra). */
|
|
15152
|
+
this.pts = computed(() => {
|
|
15153
|
+
const { pad, innerW, n, yAt } = this.frame();
|
|
15154
|
+
return this.vals().map((v, i) => ({
|
|
15155
|
+
x: pad + (n <= 1 ? innerW / 2 : (i / (n - 1)) * innerW),
|
|
15156
|
+
y: yAt(v),
|
|
15157
|
+
}));
|
|
15158
|
+
}, /* @ts-ignore */
|
|
15159
|
+
...(ngDevMode ? [{ debugName: "pts" }] : /* istanbul ignore next */ []));
|
|
15160
|
+
this.dLine = computed(() => chartPath(this.pts(), this.curve()), /* @ts-ignore */
|
|
15161
|
+
...(ngDevMode ? [{ debugName: "dLine" }] : /* istanbul ignore next */ []));
|
|
15162
|
+
this.dArea = computed(() => {
|
|
15163
|
+
const pts = this.pts();
|
|
15164
|
+
if (!pts.length)
|
|
15165
|
+
return '';
|
|
15166
|
+
const { baseY } = this.frame();
|
|
15167
|
+
const last = pts[pts.length - 1];
|
|
15168
|
+
return this.dLine() + ' L' + last.x + ',' + baseY + ' L' + pts[0].x + ',' + baseY + ' Z';
|
|
15169
|
+
}, /* @ts-ignore */
|
|
15170
|
+
...(ngDevMode ? [{ debugName: "dArea" }] : /* istanbul ignore next */ []));
|
|
15171
|
+
this.last = computed(() => {
|
|
15172
|
+
const pts = this.pts();
|
|
15173
|
+
return pts.length ? pts[pts.length - 1] : null;
|
|
15174
|
+
}, /* @ts-ignore */
|
|
15175
|
+
...(ngDevMode ? [{ debugName: "last" }] : /* istanbul ignore next */ []));
|
|
15176
|
+
this.dotR = computed(() => this.strokeWidth() + 0.5, /* @ts-ignore */
|
|
15177
|
+
...(ngDevMode ? [{ debugName: "dotR" }] : /* istanbul ignore next */ []));
|
|
15178
|
+
/** Barras: gap proporcional (12 % del ancho repartido), la última a opacidad plena. */
|
|
15179
|
+
this.bars = computed(() => {
|
|
15180
|
+
const { pad, innerW, n, yAt, baseY } = this.frame();
|
|
15181
|
+
if (!n)
|
|
15182
|
+
return [];
|
|
15183
|
+
const gap = n > 1 ? Math.max(1, (innerW * 0.12) / n) : 0;
|
|
15184
|
+
const bw = (innerW - gap * (n - 1)) / n;
|
|
15185
|
+
return this.vals().map((v, i) => {
|
|
15186
|
+
const y = yAt(v);
|
|
15187
|
+
return {
|
|
15188
|
+
x: pad + i * (bw + gap),
|
|
15189
|
+
y,
|
|
15190
|
+
w: Math.max(1, bw),
|
|
15191
|
+
h: Math.max(1, baseY - y),
|
|
15192
|
+
rx: Math.min(1.5, bw / 2),
|
|
15193
|
+
opacity: i === n - 1 ? 1 : 0.55,
|
|
15194
|
+
};
|
|
15195
|
+
});
|
|
15196
|
+
}, /* @ts-ignore */
|
|
15197
|
+
...(ngDevMode ? [{ debugName: "bars" }] : /* istanbul ignore next */ []));
|
|
15198
|
+
}
|
|
15199
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: SparklineComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
15200
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: SparklineComponent, isStandalone: true, selector: "ius-sparkline", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, variant: { classPropertyName: "variant", publicName: "variant", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, tone: { classPropertyName: "tone", publicName: "tone", isSignal: true, isRequired: false, transformFunction: null }, trend: { classPropertyName: "trend", publicName: "trend", isSignal: true, isRequired: false, transformFunction: null }, area: { classPropertyName: "area", publicName: "area", isSignal: true, isRequired: false, transformFunction: null }, curve: { classPropertyName: "curve", publicName: "curve", isSignal: true, isRequired: false, transformFunction: null }, strokeWidth: { classPropertyName: "strokeWidth", publicName: "strokeWidth", isSignal: true, isRequired: false, transformFunction: null }, showDot: { classPropertyName: "showDot", publicName: "showDot", isSignal: true, isRequired: false, transformFunction: null }, min: { classPropertyName: "min", publicName: "min", isSignal: true, isRequired: false, transformFunction: null }, max: { classPropertyName: "max", publicName: "max", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.width.px": "width()", "style.height.px": "height()" }, classAttribute: "ius-spark" }, ngImport: i0, template: "<!-- Sin datos el golden deja el span vac\u00EDo con su caja (width/height van en el host). -->\n@if (hasData()) {\n <svg\n class=\"ius-spark__svg\"\n [attr.width]=\"width()\"\n [attr.height]=\"height()\"\n [attr.viewBox]=\"'0 0 ' + width() + ' ' + height()\"\n role=\"img\"\n [attr.aria-label]=\"ariaLabel() || null\"\n >\n @if (variant() === 'bar') {\n <g>\n @for (b of bars(); track $index) {\n <rect\n [attr.x]=\"b.x\"\n [attr.y]=\"b.y\"\n [attr.width]=\"b.w\"\n [attr.height]=\"b.h\"\n [attr.rx]=\"b.rx\"\n [attr.fill]=\"color()\"\n [attr.fill-opacity]=\"b.opacity\"\n />\n }\n </g>\n } @else {\n <g>\n @if (area()) {\n <defs>\n <linearGradient [attr.id]=\"gid\" x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\n <stop offset=\"0%\" [attr.stop-color]=\"color()\" stop-opacity=\"0.24\" />\n <stop offset=\"100%\" [attr.stop-color]=\"color()\" stop-opacity=\"0.02\" />\n </linearGradient>\n </defs>\n <path [attr.d]=\"dArea()\" [attr.fill]=\"'url(#' + gid + ')'\" />\n }\n <path class=\"ius-spark__line\" [attr.d]=\"dLine()\" [attr.stroke]=\"color()\" [attr.stroke-width]=\"strokeWidth()\" />\n @if (showDot()) {\n @if (last(); as p) {\n <circle class=\"ius-spark__dot\" [attr.cx]=\"p.x\" [attr.cy]=\"p.y\" [attr.r]=\"dotR()\" [attr.fill]=\"color()\" stroke-width=\"1\" />\n }\n }\n </g>\n }\n </svg>\n}\n", styles: ["@charset \"UTF-8\";:host{display:inline-block;line-height:0;vertical-align:middle;-webkit-user-select:none;user-select:none}.ius-spark__svg{display:block;overflow:visible}.ius-spark__line{fill:none;stroke-linecap:round;stroke-linejoin:round}.ius-spark__dot{stroke:var(--ius-surface-card)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
15201
|
+
}
|
|
15202
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: SparklineComponent, decorators: [{
|
|
15203
|
+
type: Component,
|
|
15204
|
+
args: [{ selector: 'ius-sparkline', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
15205
|
+
class: 'ius-spark',
|
|
15206
|
+
'[style.width.px]': 'width()',
|
|
15207
|
+
'[style.height.px]': 'height()',
|
|
15208
|
+
}, template: "<!-- Sin datos el golden deja el span vac\u00EDo con su caja (width/height van en el host). -->\n@if (hasData()) {\n <svg\n class=\"ius-spark__svg\"\n [attr.width]=\"width()\"\n [attr.height]=\"height()\"\n [attr.viewBox]=\"'0 0 ' + width() + ' ' + height()\"\n role=\"img\"\n [attr.aria-label]=\"ariaLabel() || null\"\n >\n @if (variant() === 'bar') {\n <g>\n @for (b of bars(); track $index) {\n <rect\n [attr.x]=\"b.x\"\n [attr.y]=\"b.y\"\n [attr.width]=\"b.w\"\n [attr.height]=\"b.h\"\n [attr.rx]=\"b.rx\"\n [attr.fill]=\"color()\"\n [attr.fill-opacity]=\"b.opacity\"\n />\n }\n </g>\n } @else {\n <g>\n @if (area()) {\n <defs>\n <linearGradient [attr.id]=\"gid\" x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\n <stop offset=\"0%\" [attr.stop-color]=\"color()\" stop-opacity=\"0.24\" />\n <stop offset=\"100%\" [attr.stop-color]=\"color()\" stop-opacity=\"0.02\" />\n </linearGradient>\n </defs>\n <path [attr.d]=\"dArea()\" [attr.fill]=\"'url(#' + gid + ')'\" />\n }\n <path class=\"ius-spark__line\" [attr.d]=\"dLine()\" [attr.stroke]=\"color()\" [attr.stroke-width]=\"strokeWidth()\" />\n @if (showDot()) {\n @if (last(); as p) {\n <circle class=\"ius-spark__dot\" [attr.cx]=\"p.x\" [attr.cy]=\"p.y\" [attr.r]=\"dotR()\" [attr.fill]=\"color()\" stroke-width=\"1\" />\n }\n }\n </g>\n }\n </svg>\n}\n", styles: ["@charset \"UTF-8\";:host{display:inline-block;line-height:0;vertical-align:middle;-webkit-user-select:none;user-select:none}.ius-spark__svg{display:block;overflow:visible}.ius-spark__line{fill:none;stroke-linecap:round;stroke-linejoin:round}.ius-spark__dot{stroke:var(--ius-surface-card)}\n"] }]
|
|
15209
|
+
}], propDecorators: { data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }], variant: [{ type: i0.Input, args: [{ isSignal: true, alias: "variant", required: false }] }], width: [{ type: i0.Input, args: [{ isSignal: true, alias: "width", required: false }] }], height: [{ type: i0.Input, args: [{ isSignal: true, alias: "height", required: false }] }], tone: [{ type: i0.Input, args: [{ isSignal: true, alias: "tone", required: false }] }], trend: [{ type: i0.Input, args: [{ isSignal: true, alias: "trend", required: false }] }], area: [{ type: i0.Input, args: [{ isSignal: true, alias: "area", required: false }] }], curve: [{ type: i0.Input, args: [{ isSignal: true, alias: "curve", required: false }] }], strokeWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "strokeWidth", required: false }] }], showDot: [{ type: i0.Input, args: [{ isSignal: true, alias: "showDot", required: false }] }], min: [{ type: i0.Input, args: [{ isSignal: true, alias: "min", required: false }] }], max: [{ type: i0.Input, args: [{ isSignal: true, alias: "max", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }] } });
|
|
15210
|
+
|
|
15211
|
+
let uid = 0;
|
|
15212
|
+
/** Duración del dibujado de la línea (WAAPI) y red de seguridad que la deja sólida. */
|
|
15213
|
+
const ANIM_MS = 820;
|
|
15214
|
+
const ANIM_SAFETY_MS = 950;
|
|
15215
|
+
/**
|
|
15216
|
+
* LineChart — Ius Design v2 (familia charts).
|
|
15217
|
+
*
|
|
15218
|
+
* **Gráfico de líneas / área** en SVG propio (sin librería de charts) para la
|
|
15219
|
+
* evolución de una magnitud sobre una **secuencia ordenada** (meses, semanas…).
|
|
15220
|
+
* Una o varias series sobre el mismo eje; `null` deja un hueco en la línea.
|
|
15221
|
+
*
|
|
15222
|
+
* Trae ejes + grilla «nice numbers», leyenda (auto con > 1 serie), etiquetas de
|
|
15223
|
+
* valor opcionales, **tooltip** en hover con guía vertical y puntos de la
|
|
15224
|
+
* categoría más cercana, **animación** de entrada (stroke-dash reveal vía WAAPI,
|
|
15225
|
+
* con red de seguridad que deja la línea sólida y respeto a
|
|
15226
|
+
* `prefers-reduced-motion`), tamaño **responsive** (`ResizeObserver`, `minWidth`,
|
|
15227
|
+
* `aspectRatio`) o **fijo** (`width`), y estados de **carga** (skeleton) y
|
|
15228
|
+
* **vacío** (compone `ius-empty-state`).
|
|
15229
|
+
*
|
|
15230
|
+
* Fuente de verdad: `LineChart.jsx` + `LineChart.d.ts` + `LineChart.ng-spec.md`.
|
|
15231
|
+
* Tonos, escala, trazados y formato es-CO vienen de `charts-core`.
|
|
15232
|
+
*
|
|
15233
|
+
* Decisiones del port: `label`/`emptyTitle`/`emptyDescription`/`xFormat` son
|
|
15234
|
+
* `string` (el ReactNode se degrada a texto); el slot `empty` viaja como
|
|
15235
|
+
* `emptyTemplate: TemplateRef`. Display puro: sin outputs (la spec los deja
|
|
15236
|
+
* opcionales).
|
|
15237
|
+
*
|
|
15238
|
+
* No usar para categorías discretas sin orden (→ BarChart), partes de un todo
|
|
15239
|
+
* (→ DonutChart) ni mini-tendencia embebida sin ejes (→ Sparkline).
|
|
15240
|
+
*/
|
|
15241
|
+
class LineChartComponent {
|
|
15242
|
+
constructor() {
|
|
15243
|
+
/** Etiquetas del eje X (secuencia ordenada). */
|
|
15244
|
+
this.categories = input([], /* @ts-ignore */
|
|
15245
|
+
...(ngDevMode ? [{ debugName: "categories" }] : /* istanbul ignore next */ []));
|
|
15246
|
+
/** Series a trazar (una línea cada una). */
|
|
15247
|
+
this.series = input([], /* @ts-ignore */
|
|
15248
|
+
...(ngDevMode ? [{ debugName: "series" }] : /* istanbul ignore next */ []));
|
|
15249
|
+
// ── Tamaño ──
|
|
15250
|
+
/** Alto del área de dibujo en px. Default 280. */
|
|
15251
|
+
this.height = input(280, { ...(ngDevMode ? { debugName: "height" } : /* istanbul ignore next */ {}), transform: numberAttribute });
|
|
15252
|
+
/** Ancho fijo en px. Si se omite, el chart es responsive (llena el contenedor). */
|
|
15253
|
+
this.width = input(undefined, /* @ts-ignore */
|
|
15254
|
+
...(ngDevMode ? [{ debugName: "width" }] : /* istanbul ignore next */ []));
|
|
15255
|
+
/** En modo responsive fija el alto como ancho/ratio (ignora `height`). */
|
|
15256
|
+
this.aspectRatio = input(undefined, /* @ts-ignore */
|
|
15257
|
+
...(ngDevMode ? [{ debugName: "aspectRatio" }] : /* istanbul ignore next */ []));
|
|
15258
|
+
/** Ancho mínimo en px (modo responsive). Default 280. */
|
|
15259
|
+
this.minWidth = input(280, { ...(ngDevMode ? { debugName: "minWidth" } : /* istanbul ignore next */ {}), transform: numberAttribute });
|
|
15260
|
+
/** Ancho reservado para las etiquetas del eje Y en px. Default 44. */
|
|
15261
|
+
this.yAxisWidth = input(44, { ...(ngDevMode ? { debugName: "yAxisWidth" } : /* istanbul ignore next */ {}), transform: numberAttribute });
|
|
15262
|
+
// ── Ejes y grilla ──
|
|
15263
|
+
this.showXAxis = input(true, { ...(ngDevMode ? { debugName: "showXAxis" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
15264
|
+
this.showYAxis = input(true, { ...(ngDevMode ? { debugName: "showYAxis" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
15265
|
+
this.showGrid = input(true, { ...(ngDevMode ? { debugName: "showGrid" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
15266
|
+
/** Nº aproximado de divisiones del eje Y. Default 4. */
|
|
15267
|
+
this.yTicks = input(4, { ...(ngDevMode ? { debugName: "yTicks" } : /* istanbul ignore next */ {}), transform: numberAttribute });
|
|
15268
|
+
/** Fuerza el mínimo del eje Y (default: 0 si todo es ≥ 0, si no el mínimo del dato). */
|
|
15269
|
+
this.yMin = input(undefined, /* @ts-ignore */
|
|
15270
|
+
...(ngDevMode ? [{ debugName: "yMin" }] : /* istanbul ignore next */ []));
|
|
15271
|
+
/** Fuerza el máximo del eje Y (default: automático «nice»). */
|
|
15272
|
+
this.yMax = input(undefined, /* @ts-ignore */
|
|
15273
|
+
...(ngDevMode ? [{ debugName: "yMax" }] : /* istanbul ignore next */ []));
|
|
15274
|
+
// ── Marcas ──
|
|
15275
|
+
/** Relleno de área bajo todas las líneas (por serie con `series[].area`). */
|
|
15276
|
+
this.area = input(false, { ...(ngDevMode ? { debugName: "area" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
15277
|
+
/** Curvatura de la línea. Default `smooth`. */
|
|
15278
|
+
this.curve = input('smooth', /* @ts-ignore */
|
|
15279
|
+
...(ngDevMode ? [{ debugName: "curve" }] : /* istanbul ignore next */ []));
|
|
15280
|
+
/** Puntos sobre los datos. Default `hover`. */
|
|
15281
|
+
this.showPoints = input('hover', /* @ts-ignore */
|
|
15282
|
+
...(ngDevMode ? [{ debugName: "showPoints" }] : /* istanbul ignore next */ []));
|
|
15283
|
+
/** Etiqueta de valor sobre cada punto (usar con pocos puntos / 1 serie). */
|
|
15284
|
+
this.showValueLabels = input(false, { ...(ngDevMode ? { debugName: "showValueLabels" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
15285
|
+
// ── Leyenda y tooltip ──
|
|
15286
|
+
/** Leyenda de series. Sin fijar: visible cuando hay > 1 serie. */
|
|
15287
|
+
this.showLegend = input(undefined, /* @ts-ignore */
|
|
15288
|
+
...(ngDevMode ? [{ debugName: "showLegend" }] : /* istanbul ignore next */ []));
|
|
15289
|
+
/** Tooltip en hover con guía vertical. Default true. */
|
|
15290
|
+
this.showTooltip = input(true, { ...(ngDevMode ? { debugName: "showTooltip" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
15291
|
+
// ── Formato ──
|
|
15292
|
+
/** Formatea los valores (eje Y, tooltip, etiquetas). Default `Intl` es-CO. */
|
|
15293
|
+
this.valueFormat = input(undefined, /* @ts-ignore */
|
|
15294
|
+
...(ngDevMode ? [{ debugName: "valueFormat" }] : /* istanbul ignore next */ []));
|
|
15295
|
+
/** Formatea las etiquetas del eje X (y el título del tooltip). */
|
|
15296
|
+
this.xFormat = input(undefined, /* @ts-ignore */
|
|
15297
|
+
...(ngDevMode ? [{ debugName: "xFormat" }] : /* istanbul ignore next */ []));
|
|
15298
|
+
/** Sufijo de unidad (p. ej. ` mov`). Ignorado si hay `valueFormat`. */
|
|
15299
|
+
this.unit = input(/* @ts-ignore */
|
|
15300
|
+
...(ngDevMode ? [undefined, { debugName: "unit" }] : /* istanbul ignore next */ []));
|
|
15301
|
+
// ── Estados ──
|
|
15302
|
+
/** Carga: oculta los datos y muestra un skeleton del área. */
|
|
15303
|
+
this.loading = input(false, { ...(ngDevMode ? { debugName: "loading" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
15304
|
+
/** Plantilla propia cuando no hay datos (reemplaza el EmptyState por defecto). */
|
|
15305
|
+
this.emptyTemplate = input(undefined, /* @ts-ignore */
|
|
15306
|
+
...(ngDevMode ? [{ debugName: "emptyTemplate" }] : /* istanbul ignore next */ []));
|
|
15307
|
+
/** Título del EmptyState por defecto. */
|
|
15308
|
+
this.emptyTitle = input('Sin datos', /* @ts-ignore */
|
|
15309
|
+
...(ngDevMode ? [{ debugName: "emptyTitle" }] : /* istanbul ignore next */ []));
|
|
15310
|
+
/** Descripción del EmptyState por defecto. */
|
|
15311
|
+
this.emptyDescription = input(/* @ts-ignore */
|
|
15312
|
+
...(ngDevMode ? [undefined, { debugName: "emptyDescription" }] : /* istanbul ignore next */ []));
|
|
15313
|
+
// ── Misc ──
|
|
15314
|
+
/** Animación de entrada: dibujado de la línea (stroke-dash reveal). Default true. */
|
|
15315
|
+
this.animate = input(true, { ...(ngDevMode ? { debugName: "animate" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
15316
|
+
/** Etiqueta accesible del gráfico. */
|
|
15317
|
+
this.ariaLabel = input(/* @ts-ignore */
|
|
15318
|
+
...(ngDevMode ? [undefined, { debugName: "ariaLabel" }] : /* istanbul ignore next */ []));
|
|
15319
|
+
this.el = inject(ElementRef);
|
|
15320
|
+
this.animTimers = [];
|
|
15321
|
+
this.animations = [];
|
|
15322
|
+
/** Ancho medido del contenedor (modo responsive). */
|
|
15323
|
+
this.measured = signal(null, /* @ts-ignore */
|
|
15324
|
+
...(ngDevMode ? [{ debugName: "measured" }] : /* istanbul ignore next */ []));
|
|
15325
|
+
/** Categoría bajo el cursor (tooltip + guía). */
|
|
15326
|
+
this.active = signal(null, /* @ts-ignore */
|
|
15327
|
+
...(ngDevMode ? [{ debugName: "active" }] : /* istanbul ignore next */ []));
|
|
15328
|
+
this.uidStr = `iuslc-${++uid}`;
|
|
15329
|
+
this.hasData = computed(() => {
|
|
15330
|
+
const cats = this.categories();
|
|
15331
|
+
const series = this.series();
|
|
15332
|
+
return series.length > 0 && cats.length > 0 && series.some((s) => (s.values ?? []).some((v) => v != null));
|
|
15333
|
+
}, /* @ts-ignore */
|
|
15334
|
+
...(ngDevMode ? [{ debugName: "hasData" }] : /* istanbul ignore next */ []));
|
|
15335
|
+
this.legendOn = computed(() => this.showLegend() ?? this.series().length > 1, /* @ts-ignore */
|
|
15336
|
+
...(ngDevMode ? [{ debugName: "legendOn" }] : /* istanbul ignore next */ []));
|
|
15337
|
+
/** Lienzo: tamaño, márgenes, dominio Y «nice» y proyecciones x/y. */
|
|
15338
|
+
this.frame = computed(() => {
|
|
15339
|
+
const W = Math.max(this.minWidth(), this.width() ?? this.measured() ?? this.minWidth());
|
|
15340
|
+
const ratio = this.aspectRatio();
|
|
15341
|
+
const H = ratio ? Math.round(W / ratio) : this.height();
|
|
15342
|
+
const mT = this.showValueLabels() ? 24 : 12;
|
|
15343
|
+
const mR = 14;
|
|
15344
|
+
const mB = this.showXAxis() ? 30 : 10;
|
|
15345
|
+
const mL = this.showYAxis() ? this.yAxisWidth() : 10;
|
|
15346
|
+
const innerW = Math.max(0, W - mL - mR);
|
|
15347
|
+
const innerH = Math.max(0, H - mT - mB);
|
|
15348
|
+
let dataMin = Infinity;
|
|
15349
|
+
let dataMax = -Infinity;
|
|
15350
|
+
for (const s of this.series()) {
|
|
15351
|
+
for (const v of s.values ?? []) {
|
|
15352
|
+
if (v == null)
|
|
15353
|
+
continue;
|
|
15354
|
+
if (v < dataMin)
|
|
15355
|
+
dataMin = v;
|
|
15356
|
+
if (v > dataMax)
|
|
15357
|
+
dataMax = v;
|
|
15358
|
+
}
|
|
15359
|
+
}
|
|
15360
|
+
if (!Number.isFinite(dataMin)) {
|
|
15361
|
+
dataMin = 0;
|
|
15362
|
+
dataMax = 1;
|
|
15363
|
+
}
|
|
15364
|
+
const domMin = this.yMin() ?? Math.min(0, dataMin);
|
|
15365
|
+
const domMax = this.yMax() ?? dataMax;
|
|
15366
|
+
const ticks = chartAxisTicks(domMin, domMax, this.yTicks() + 1);
|
|
15367
|
+
const lo = ticks[0];
|
|
15368
|
+
const hi = ticks[ticks.length - 1];
|
|
15369
|
+
const n = this.categories().length;
|
|
15370
|
+
const xAt = (i) => mL + (n <= 1 ? innerW / 2 : (i / (n - 1)) * innerW);
|
|
15371
|
+
const yAt = (v) => mT + innerH - ((v - lo) / (hi - lo || 1)) * innerH;
|
|
15372
|
+
return { W, H, mT, mR, mB, mL, innerW, innerH, n, ticks, lo, hi, baseY: yAt(lo), xAt, yAt };
|
|
15373
|
+
}, /* @ts-ignore */
|
|
15374
|
+
...(ngDevMode ? [{ debugName: "frame" }] : /* istanbul ignore next */ []));
|
|
15375
|
+
this.viewBox = computed(() => `0 0 ${this.frame().W} ${this.frame().H}`, /* @ts-ignore */
|
|
15376
|
+
...(ngDevMode ? [{ debugName: "viewBox" }] : /* istanbul ignore next */ []));
|
|
15377
|
+
/** Geometría de cada serie: color, trazado, área y puntos. */
|
|
15378
|
+
this.lines = computed(() => {
|
|
15379
|
+
const f = this.frame();
|
|
15380
|
+
const curve = this.curve();
|
|
15381
|
+
const areaAll = this.area();
|
|
15382
|
+
return this.series().map((s, si) => {
|
|
15383
|
+
const color = chartToneVar(chartToneAt(s.tone, si));
|
|
15384
|
+
const pts = [];
|
|
15385
|
+
(s.values ?? []).forEach((v, i) => {
|
|
15386
|
+
if (v != null)
|
|
15387
|
+
pts.push({ x: f.xAt(i), y: f.yAt(v) });
|
|
15388
|
+
});
|
|
15389
|
+
const dLine = chartPath(pts, curve);
|
|
15390
|
+
const wantArea = s.area ?? areaAll;
|
|
15391
|
+
const dArea = wantArea && pts.length
|
|
15392
|
+
? dLine + ' L' + pts[pts.length - 1].x + ',' + f.baseY + ' L' + pts[0].x + ',' + f.baseY + ' Z'
|
|
15393
|
+
: null;
|
|
15394
|
+
return {
|
|
15395
|
+
key: s.key,
|
|
15396
|
+
label: s.label,
|
|
15397
|
+
color,
|
|
15398
|
+
gradId: `${this.uidStr}-${s.key}`,
|
|
15399
|
+
dLine,
|
|
15400
|
+
dArea,
|
|
15401
|
+
dashed: !!s.dashed,
|
|
15402
|
+
points: pts,
|
|
15403
|
+
};
|
|
15404
|
+
});
|
|
15405
|
+
}, /* @ts-ignore */
|
|
15406
|
+
...(ngDevMode ? [{ debugName: "lines" }] : /* istanbul ignore next */ []));
|
|
15407
|
+
this.gridYs = computed(() => this.frame().ticks.map((t) => this.frame().yAt(t)), /* @ts-ignore */
|
|
15408
|
+
...(ngDevMode ? [{ debugName: "gridYs" }] : /* istanbul ignore next */ []));
|
|
15409
|
+
this.yTickItems = computed(() => {
|
|
15410
|
+
const f = this.frame();
|
|
15411
|
+
const loading = this.loading();
|
|
15412
|
+
return f.ticks.map((t) => ({ y: f.yAt(t), text: loading ? '' : this.fmt(t) }));
|
|
15413
|
+
}, /* @ts-ignore */
|
|
15414
|
+
...(ngDevMode ? [{ debugName: "yTickItems" }] : /* istanbul ignore next */ []));
|
|
15415
|
+
this.xLabels = computed(() => {
|
|
15416
|
+
const f = this.frame();
|
|
15417
|
+
const xf = this.xFormat();
|
|
15418
|
+
return this.categories().map((c, i) => ({ x: f.xAt(i), text: xf ? xf(c, i) : String(c) }));
|
|
15419
|
+
}, /* @ts-ignore */
|
|
15420
|
+
...(ngDevMode ? [{ debugName: "xLabels" }] : /* istanbul ignore next */ []));
|
|
15421
|
+
this.valueLabels = computed(() => {
|
|
15422
|
+
const f = this.frame();
|
|
15423
|
+
const out = [];
|
|
15424
|
+
for (const s of this.series()) {
|
|
15425
|
+
(s.values ?? []).forEach((v, i) => {
|
|
15426
|
+
if (v != null)
|
|
15427
|
+
out.push({ x: f.xAt(i), y: f.yAt(v) - 9, text: this.fmt(v) });
|
|
15428
|
+
});
|
|
15429
|
+
}
|
|
15430
|
+
return out;
|
|
15431
|
+
}, /* @ts-ignore */
|
|
15432
|
+
...(ngDevMode ? [{ debugName: "valueLabels" }] : /* istanbul ignore next */ []));
|
|
15433
|
+
/** Línea fantasma del skeleton: seno suave sobre las categorías (mínimo 6 puntos, como el golden). */
|
|
15434
|
+
this.skeletonPath = computed(() => {
|
|
15435
|
+
const f = this.frame();
|
|
15436
|
+
const count = Math.max(2, f.n || 6);
|
|
15437
|
+
const pts = Array.from({ length: count }, (_, i) => ({
|
|
15438
|
+
x: f.xAt(i),
|
|
15439
|
+
y: f.mT + f.innerH * (0.5 + 0.28 * Math.sin(i * 1.1)),
|
|
15440
|
+
}));
|
|
15441
|
+
return chartSmoothPath(pts);
|
|
15442
|
+
}, /* @ts-ignore */
|
|
15443
|
+
...(ngDevMode ? [{ debugName: "skeletonPath" }] : /* istanbul ignore next */ []));
|
|
15444
|
+
/** Guía vertical + puntos resaltados de la categoría activa. */
|
|
15445
|
+
this.activeMarks = computed(() => {
|
|
15446
|
+
const a = this.active();
|
|
15447
|
+
if (a == null || this.loading() || !this.showTooltip())
|
|
15448
|
+
return null;
|
|
15449
|
+
const f = this.frame();
|
|
15450
|
+
const points = [];
|
|
15451
|
+
this.series().forEach((s, si) => {
|
|
15452
|
+
const v = (s.values ?? [])[a];
|
|
15453
|
+
if (v == null)
|
|
15454
|
+
return;
|
|
15455
|
+
points.push({ key: s.key, x: f.xAt(a), y: f.yAt(v), color: chartToneVar(chartToneAt(s.tone, si)) });
|
|
15456
|
+
});
|
|
15457
|
+
return { x: f.xAt(a), y1: f.mT, y2: f.mT + f.innerH, points };
|
|
15458
|
+
}, /* @ts-ignore */
|
|
15459
|
+
...(ngDevMode ? [{ debugName: "activeMarks" }] : /* istanbul ignore next */ []));
|
|
15460
|
+
/** Tarjeta del tooltip: posición en % (se re-escala con el SVG responsive) y una fila por serie. */
|
|
15461
|
+
this.tooltip = computed(() => {
|
|
15462
|
+
const a = this.active();
|
|
15463
|
+
if (a == null || this.loading() || !this.showTooltip())
|
|
15464
|
+
return null;
|
|
15465
|
+
const f = this.frame();
|
|
15466
|
+
const xf = this.xFormat();
|
|
15467
|
+
const cat = this.categories()[a];
|
|
15468
|
+
let top = Infinity;
|
|
15469
|
+
const rows = this.series().map((s, si) => {
|
|
15470
|
+
const v = (s.values ?? [])[a];
|
|
15471
|
+
if (v != null)
|
|
15472
|
+
top = Math.min(top, f.yAt(v));
|
|
15473
|
+
return {
|
|
15474
|
+
key: s.key,
|
|
15475
|
+
label: s.label,
|
|
15476
|
+
color: chartToneVar(chartToneAt(s.tone, si)),
|
|
15477
|
+
value: v == null ? '—' : this.fmt(v),
|
|
15478
|
+
};
|
|
15479
|
+
});
|
|
15480
|
+
if (!Number.isFinite(top))
|
|
15481
|
+
top = f.mT;
|
|
15482
|
+
return {
|
|
15483
|
+
left: (f.xAt(a) / f.W) * 100,
|
|
15484
|
+
top: (top / f.H) * 100,
|
|
15485
|
+
title: cat == null ? '' : xf ? xf(cat, a) : String(cat),
|
|
15486
|
+
rows,
|
|
15487
|
+
};
|
|
15488
|
+
}, /* @ts-ignore */
|
|
15489
|
+
...(ngDevMode ? [{ debugName: "tooltip" }] : /* istanbul ignore next */ []));
|
|
15490
|
+
/** Firma del dato que dispara la animación de entrada (igual que `animSig` del golden). */
|
|
15491
|
+
this.animSig = computed(() => this.series()
|
|
15492
|
+
.map((s) => s.key + ':' + (s.values ?? []).length)
|
|
15493
|
+
.join('|') +
|
|
15494
|
+
'#' +
|
|
15495
|
+
this.categories().length +
|
|
15496
|
+
'#' +
|
|
15497
|
+
this.curve(), /* @ts-ignore */
|
|
15498
|
+
...(ngDevMode ? [{ debugName: "animSig" }] : /* istanbul ignore next */ []));
|
|
15499
|
+
// Cada cambio de dato/curva vuelve a dibujar la línea; se agenda tras el render
|
|
15500
|
+
// (setTimeout 0) para que los <path> ya tengan su `d` nuevo al medir getTotalLength.
|
|
15501
|
+
effect(() => {
|
|
15502
|
+
const sig = this.animSig();
|
|
15503
|
+
const on = this.animate() && !this.loading() && this.hasData();
|
|
15504
|
+
untracked(() => {
|
|
15505
|
+
this.stopAnimations();
|
|
15506
|
+
if (on && sig)
|
|
15507
|
+
this.animTimers.push(setTimeout(() => this.runEntryAnimation(), 0));
|
|
15508
|
+
});
|
|
15509
|
+
});
|
|
15510
|
+
}
|
|
15511
|
+
ngAfterViewInit() {
|
|
15512
|
+
if (this.width() != null || typeof ResizeObserver === 'undefined')
|
|
15513
|
+
return;
|
|
15514
|
+
this.resizeObserver = new ResizeObserver((entries) => {
|
|
15515
|
+
for (const e of entries) {
|
|
15516
|
+
const cw = e.contentRect.width;
|
|
15517
|
+
if (cw)
|
|
15518
|
+
this.measured.set(Math.round(cw));
|
|
15519
|
+
}
|
|
15520
|
+
});
|
|
15521
|
+
this.resizeObserver.observe(this.el.nativeElement);
|
|
15522
|
+
}
|
|
15523
|
+
ngOnDestroy() {
|
|
15524
|
+
this.resizeObserver?.disconnect();
|
|
15525
|
+
this.stopAnimations();
|
|
15526
|
+
}
|
|
15527
|
+
/** Formato de un valor: `valueFormat` o `Intl` es-CO + `unit`. */
|
|
15528
|
+
fmt(n) {
|
|
15529
|
+
const f = this.valueFormat();
|
|
15530
|
+
return f ? f(n) : chartFormatValue(n, this.unit());
|
|
15531
|
+
}
|
|
15532
|
+
/** Categoría más cercana al cursor (re-escala por el SVG responsive), como `onMove` del golden. */
|
|
15533
|
+
onMove(event) {
|
|
15534
|
+
const f = this.frame();
|
|
15535
|
+
if (!this.showTooltip() || !f.n)
|
|
15536
|
+
return;
|
|
15537
|
+
const rect = event.currentTarget.getBoundingClientRect();
|
|
15538
|
+
if (!rect.width)
|
|
15539
|
+
return;
|
|
15540
|
+
const relX = (event.clientX - rect.left) * (f.W / rect.width);
|
|
15541
|
+
const idx = f.n <= 1 ? 0 : Math.round(((relX - f.mL) / (f.innerW || 1)) * (f.n - 1));
|
|
15542
|
+
const clamped = Math.max(0, Math.min(f.n - 1, idx));
|
|
15543
|
+
if (clamped !== this.active())
|
|
15544
|
+
this.active.set(clamped);
|
|
15545
|
+
}
|
|
15546
|
+
onLeave() {
|
|
15547
|
+
this.active.set(null);
|
|
15548
|
+
}
|
|
15549
|
+
/**
|
|
15550
|
+
* Efecto de dibujado (stroke-dash reveal) + fade del área vía WAAPI. Red de seguridad:
|
|
15551
|
+
* pasada la duración la línea queda SÓLIDA aunque el timeline esté congelado
|
|
15552
|
+
* (thumbnails/print), así nunca se ve un trazo a medias. `prefers-reduced-motion` = sin animar.
|
|
15553
|
+
*/
|
|
15554
|
+
runEntryAnimation() {
|
|
15555
|
+
if (typeof window === 'undefined' || chartPrefersReducedMotion())
|
|
15556
|
+
return;
|
|
15557
|
+
const host = this.el.nativeElement;
|
|
15558
|
+
host.querySelectorAll('.ius-chart__line:not([data-dashed="true"])').forEach((p) => {
|
|
15559
|
+
const len = typeof p.getTotalLength === 'function' ? p.getTotalLength() : 0;
|
|
15560
|
+
if (!len)
|
|
15561
|
+
return;
|
|
15562
|
+
const solid = () => {
|
|
15563
|
+
p.style.strokeDasharray = 'none';
|
|
15564
|
+
p.style.strokeDashoffset = '0px';
|
|
15565
|
+
};
|
|
15566
|
+
p.style.strokeDasharray = len + 'px';
|
|
15567
|
+
p.style.strokeDashoffset = len + 'px';
|
|
15568
|
+
let a = null;
|
|
15569
|
+
if (typeof p.animate === 'function') {
|
|
15570
|
+
a = p.animate([{ strokeDashoffset: len + 'px' }, { strokeDashoffset: '0px' }], {
|
|
15571
|
+
duration: ANIM_MS,
|
|
15572
|
+
easing: 'cubic-bezier(0.4, 0, 0.2, 1)',
|
|
15573
|
+
});
|
|
15574
|
+
a.onfinish = solid;
|
|
15575
|
+
this.animations.push(a);
|
|
15576
|
+
}
|
|
15577
|
+
else {
|
|
15578
|
+
solid();
|
|
15579
|
+
}
|
|
15580
|
+
this.animTimers.push(setTimeout(() => {
|
|
15581
|
+
try {
|
|
15582
|
+
a?.cancel();
|
|
15583
|
+
}
|
|
15584
|
+
catch {
|
|
15585
|
+
/* noop */
|
|
15586
|
+
}
|
|
15587
|
+
solid();
|
|
15588
|
+
}, ANIM_SAFETY_MS));
|
|
15589
|
+
});
|
|
15590
|
+
host.querySelectorAll('.ius-chart__area').forEach((ar) => {
|
|
15591
|
+
const show = () => {
|
|
15592
|
+
ar.style.opacity = '1';
|
|
15593
|
+
};
|
|
15594
|
+
ar.style.opacity = '0';
|
|
15595
|
+
let a = null;
|
|
15596
|
+
if (typeof ar.animate === 'function') {
|
|
15597
|
+
a = ar.animate([{ opacity: 0 }, { opacity: 1 }], { duration: ANIM_MS, easing: 'ease-out' });
|
|
15598
|
+
a.onfinish = show;
|
|
15599
|
+
this.animations.push(a);
|
|
15600
|
+
}
|
|
15601
|
+
else {
|
|
15602
|
+
show();
|
|
15603
|
+
}
|
|
15604
|
+
this.animTimers.push(setTimeout(() => {
|
|
15605
|
+
try {
|
|
15606
|
+
a?.cancel();
|
|
15607
|
+
}
|
|
15608
|
+
catch {
|
|
15609
|
+
/* noop */
|
|
15610
|
+
}
|
|
15611
|
+
show();
|
|
15612
|
+
}, ANIM_SAFETY_MS));
|
|
15613
|
+
});
|
|
15614
|
+
}
|
|
15615
|
+
stopAnimations() {
|
|
15616
|
+
this.animTimers.forEach(clearTimeout);
|
|
15617
|
+
this.animTimers = [];
|
|
15618
|
+
this.animations.forEach((a) => {
|
|
15619
|
+
try {
|
|
15620
|
+
a.cancel();
|
|
15621
|
+
}
|
|
15622
|
+
catch {
|
|
15623
|
+
/* noop */
|
|
15624
|
+
}
|
|
15625
|
+
});
|
|
15626
|
+
this.animations = [];
|
|
15627
|
+
}
|
|
15628
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: LineChartComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
15629
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: LineChartComponent, isStandalone: true, selector: "ius-line-chart", inputs: { categories: { classPropertyName: "categories", publicName: "categories", isSignal: true, isRequired: false, transformFunction: null }, series: { classPropertyName: "series", publicName: "series", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, aspectRatio: { classPropertyName: "aspectRatio", publicName: "aspectRatio", isSignal: true, isRequired: false, transformFunction: null }, minWidth: { classPropertyName: "minWidth", publicName: "minWidth", isSignal: true, isRequired: false, transformFunction: null }, yAxisWidth: { classPropertyName: "yAxisWidth", publicName: "yAxisWidth", isSignal: true, isRequired: false, transformFunction: null }, showXAxis: { classPropertyName: "showXAxis", publicName: "showXAxis", isSignal: true, isRequired: false, transformFunction: null }, showYAxis: { classPropertyName: "showYAxis", publicName: "showYAxis", isSignal: true, isRequired: false, transformFunction: null }, showGrid: { classPropertyName: "showGrid", publicName: "showGrid", isSignal: true, isRequired: false, transformFunction: null }, yTicks: { classPropertyName: "yTicks", publicName: "yTicks", isSignal: true, isRequired: false, transformFunction: null }, yMin: { classPropertyName: "yMin", publicName: "yMin", isSignal: true, isRequired: false, transformFunction: null }, yMax: { classPropertyName: "yMax", publicName: "yMax", isSignal: true, isRequired: false, transformFunction: null }, area: { classPropertyName: "area", publicName: "area", isSignal: true, isRequired: false, transformFunction: null }, curve: { classPropertyName: "curve", publicName: "curve", isSignal: true, isRequired: false, transformFunction: null }, showPoints: { classPropertyName: "showPoints", publicName: "showPoints", isSignal: true, isRequired: false, transformFunction: null }, showValueLabels: { classPropertyName: "showValueLabels", publicName: "showValueLabels", isSignal: true, isRequired: false, transformFunction: null }, showLegend: { classPropertyName: "showLegend", publicName: "showLegend", isSignal: true, isRequired: false, transformFunction: null }, showTooltip: { classPropertyName: "showTooltip", publicName: "showTooltip", isSignal: true, isRequired: false, transformFunction: null }, valueFormat: { classPropertyName: "valueFormat", publicName: "valueFormat", isSignal: true, isRequired: false, transformFunction: null }, xFormat: { classPropertyName: "xFormat", publicName: "xFormat", isSignal: true, isRequired: false, transformFunction: null }, unit: { classPropertyName: "unit", publicName: "unit", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, emptyTemplate: { classPropertyName: "emptyTemplate", publicName: "emptyTemplate", isSignal: true, isRequired: false, transformFunction: null }, emptyTitle: { classPropertyName: "emptyTitle", publicName: "emptyTitle", isSignal: true, isRequired: false, transformFunction: null }, emptyDescription: { classPropertyName: "emptyDescription", publicName: "emptyDescription", isSignal: true, isRequired: false, transformFunction: null }, animate: { classPropertyName: "animate", publicName: "animate", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-animate": "animate() && !loading() ? 'true' : 'false'", "style.width.px": "width() ?? null" }, classAttribute: "ius-chart" }, ngImport: i0, template: "@if (!loading() && !hasData()) {\n <!-- Vac\u00EDo: EmptyState compacto (o la plantilla propia del consumidor), a la altura del \u00E1rea. -->\n <div class=\"ius-chart__block\" [style.height.px]=\"frame().H\">\n @if (emptyTemplate(); as tpl) {\n <ng-container *ngTemplateOutlet=\"tpl\" />\n } @else {\n <ius-empty-state variant=\"no-data\" size=\"compact\" [title]=\"emptyTitle()\" [description]=\"emptyDescription()\" />\n }\n </div>\n} @else {\n @if (legendOn() && !loading()) {\n <div class=\"ius-chart__legend\">\n @for (l of lines(); track l.key) {\n <span class=\"ius-chart__leg\">\n <span class=\"ius-chart__dot\" [style.background]=\"l.color\"></span>\n {{ l.label }}\n </span>\n }\n </div>\n }\n\n <div class=\"ius-chart__plot\">\n <svg\n class=\"ius-chart__svg\"\n [attr.viewBox]=\"viewBox()\"\n role=\"img\"\n [attr.aria-label]=\"ariaLabel() || null\"\n (mousemove)=\"onMove($event)\"\n (mouseleave)=\"onLeave()\"\n >\n <defs>\n @for (l of lines(); track l.key) {\n <linearGradient [attr.id]=\"l.gradId\" x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\n <stop offset=\"0%\" [attr.stop-color]=\"l.color\" stop-opacity=\"0.22\" />\n <stop offset=\"100%\" [attr.stop-color]=\"l.color\" stop-opacity=\"0.02\" />\n </linearGradient>\n }\n </defs>\n\n <!-- grilla -->\n @if (showGrid() && !loading()) {\n <g class=\"ius-chart__grid\">\n @for (y of gridYs(); track $index) {\n <line [attr.x1]=\"frame().mL\" [attr.y1]=\"y\" [attr.x2]=\"frame().mL + frame().innerW\" [attr.y2]=\"y\" />\n }\n </g>\n }\n\n <!-- eje Y -->\n @if (showYAxis()) {\n <g class=\"ius-chart__tick\" text-anchor=\"end\" dominant-baseline=\"middle\">\n @for (t of yTickItems(); track $index) {\n <text [attr.x]=\"frame().mL - 8\" [attr.y]=\"t.y\">{{ t.text }}</text>\n }\n </g>\n }\n\n <!-- skeleton -->\n @if (loading()) {\n <g>\n <rect\n class=\"ius-chart__skel\"\n [attr.x]=\"frame().mL\"\n [attr.y]=\"frame().mT\"\n [attr.width]=\"frame().innerW\"\n [attr.height]=\"frame().innerH\"\n rx=\"8\"\n opacity=\"0.5\"\n />\n <path class=\"ius-chart__skel--line\" [attr.d]=\"skeletonPath()\" />\n </g>\n }\n\n <!-- \u00E1reas + l\u00EDneas -->\n @if (!loading()) {\n @for (l of lines(); track l.key) {\n <g>\n @if (l.dArea) {\n <path class=\"ius-chart__area\" [attr.d]=\"l.dArea\" [attr.fill]=\"'url(#' + l.gradId + ')'\" />\n }\n <path class=\"ius-chart__line\" [attr.data-dashed]=\"l.dashed ? 'true' : null\" [attr.d]=\"l.dLine\" [attr.stroke]=\"l.color\" />\n @if (showPoints() === 'always') {\n @for (p of l.points; track $index) {\n <circle class=\"ius-chart__pt\" [attr.cx]=\"p.x\" [attr.cy]=\"p.y\" r=\"3.5\" [attr.fill]=\"l.color\" />\n }\n }\n </g>\n }\n }\n\n <!-- etiquetas de valor (1 serie recomendado) -->\n @if (!loading() && showValueLabels()) {\n @for (v of valueLabels(); track $index) {\n <text class=\"ius-chart__vlabel\" [attr.x]=\"v.x\" [attr.y]=\"v.y\">{{ v.text }}</text>\n }\n }\n\n <!-- gu\u00EDa vertical + puntos activos -->\n @if (activeMarks(); as am) {\n <g>\n <line class=\"ius-chart__guide\" [attr.x1]=\"am.x\" [attr.y1]=\"am.y1\" [attr.x2]=\"am.x\" [attr.y2]=\"am.y2\" />\n @for (p of am.points; track p.key) {\n <circle class=\"ius-chart__pt\" [attr.cx]=\"p.x\" [attr.cy]=\"p.y\" r=\"4.5\" [attr.fill]=\"p.color\" />\n }\n </g>\n }\n\n <!-- eje X -->\n @if (showXAxis() && !loading()) {\n <g class=\"ius-chart__xlabel\" text-anchor=\"middle\">\n <line\n class=\"ius-chart__axisline\"\n [attr.x1]=\"frame().mL\"\n [attr.y1]=\"frame().mT + frame().innerH\"\n [attr.x2]=\"frame().mL + frame().innerW\"\n [attr.y2]=\"frame().mT + frame().innerH\"\n />\n @for (x of xLabels(); track $index) {\n <text [attr.x]=\"x.x\" [attr.y]=\"frame().mT + frame().innerH + 18\">{{ x.text }}</text>\n }\n </g>\n }\n </svg>\n\n <!-- tooltip (HTML) -->\n @if (tooltip(); as tip) {\n <div class=\"ius-chart__tip\" [style.left.%]=\"tip.left\" [style.top.%]=\"tip.top\">\n <div class=\"ius-chart__tip-x\">{{ tip.title }}</div>\n @for (r of tip.rows; track r.key) {\n <div class=\"ius-chart__tip-row\">\n <span class=\"ius-chart__dot\" [style.background]=\"r.color\"></span>\n {{ r.label }}\n <b>{{ r.value }}</b>\n </div>\n }\n </div>\n }\n </div>\n}\n", styles: ["@charset \"UTF-8\";:host{position:relative;display:block;width:100%;box-sizing:border-box;font-family:var(--ius-font-body);color:var(--ius-text-primary);-webkit-user-select:none;user-select:none}.ius-chart__svg{display:block;width:100%;height:auto;overflow:visible}.ius-chart__plot{position:relative}.ius-chart__grid line{stroke:var(--ius-neutral-3);stroke-width:1;shape-rendering:crispEdges}.ius-chart__axisline{stroke:var(--ius-stroke);stroke-width:1;shape-rendering:crispEdges}.ius-chart__tick,.ius-chart__xlabel{fill:var(--ius-text-tertiary);font-family:var(--ius-font-display);font-size:var(--ius-fs-sm)}.ius-chart__line{fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.ius-chart__line[data-dashed=true]{stroke-dasharray:6 5}.ius-chart__pt{stroke:var(--ius-surface-card);stroke-width:2}.ius-chart__vlabel{fill:var(--ius-text-secondary);font-family:var(--ius-font-display);font-size:var(--ius-fs-sm);font-weight:var(--ius-fw-medium);text-anchor:middle}.ius-chart__guide{stroke:var(--ius-stroke-strong);stroke-width:1;stroke-dasharray:4 4}.ius-chart__legend{display:flex;flex-wrap:wrap;gap:var(--ius-space-xs) var(--ius-space-md);margin-bottom:var(--ius-space-sm)}.ius-chart__leg{display:inline-flex;align-items:center;gap:var(--ius-space-xxs);font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);color:var(--ius-text-secondary)}.ius-chart__dot{width:10px;height:10px;border-radius:var(--ius-radius-pill);flex:0 0 auto}.ius-chart__tip{position:absolute;pointer-events:none;z-index:var(--ius-z-sticky);min-width:132px;background:var(--ius-surface-card);border:1px solid var(--ius-stroke);border-radius:var(--ius-radius-md);box-shadow:var(--ius-elevation-300);padding:var(--ius-space-xs) var(--ius-space-sm);transform:translate(-50%,calc(-100% - var(--ius-space-sm)))}.ius-chart__tip-x{font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);font-weight:var(--ius-fw-bold);color:var(--ius-text-primary);margin-bottom:var(--ius-space-xxs);white-space:nowrap}.ius-chart__tip-row{display:flex;align-items:center;gap:var(--ius-space-xs);font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);color:var(--ius-text-secondary);white-space:nowrap}.ius-chart__tip-row b{margin-left:auto;padding-left:var(--ius-space-sm);color:var(--ius-text-primary);font-weight:var(--ius-fw-medium);font-variant-numeric:tabular-nums}.ius-chart__skel{fill:var(--ius-neutral-2)}.ius-chart__skel--line{stroke:var(--ius-neutral-3);stroke-width:2;fill:none}.ius-chart__block{display:grid;place-items:center;min-height:160px}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: EmptyStateComponent, selector: "ius-empty-state", inputs: ["variant", "size", "tone", "icon", "illustration", "illustrationTemplate", "title", "description", "primaryAction", "secondaryAction", "actionsTemplate", "role"], outputs: ["primaryClick", "secondaryClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
15630
|
+
}
|
|
15631
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: LineChartComponent, decorators: [{
|
|
15632
|
+
type: Component,
|
|
15633
|
+
args: [{ selector: 'ius-line-chart', standalone: true, imports: [NgTemplateOutlet, EmptyStateComponent], changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
15634
|
+
class: 'ius-chart',
|
|
15635
|
+
'[attr.data-animate]': "animate() && !loading() ? 'true' : 'false'",
|
|
15636
|
+
'[style.width.px]': 'width() ?? null',
|
|
15637
|
+
}, template: "@if (!loading() && !hasData()) {\n <!-- Vac\u00EDo: EmptyState compacto (o la plantilla propia del consumidor), a la altura del \u00E1rea. -->\n <div class=\"ius-chart__block\" [style.height.px]=\"frame().H\">\n @if (emptyTemplate(); as tpl) {\n <ng-container *ngTemplateOutlet=\"tpl\" />\n } @else {\n <ius-empty-state variant=\"no-data\" size=\"compact\" [title]=\"emptyTitle()\" [description]=\"emptyDescription()\" />\n }\n </div>\n} @else {\n @if (legendOn() && !loading()) {\n <div class=\"ius-chart__legend\">\n @for (l of lines(); track l.key) {\n <span class=\"ius-chart__leg\">\n <span class=\"ius-chart__dot\" [style.background]=\"l.color\"></span>\n {{ l.label }}\n </span>\n }\n </div>\n }\n\n <div class=\"ius-chart__plot\">\n <svg\n class=\"ius-chart__svg\"\n [attr.viewBox]=\"viewBox()\"\n role=\"img\"\n [attr.aria-label]=\"ariaLabel() || null\"\n (mousemove)=\"onMove($event)\"\n (mouseleave)=\"onLeave()\"\n >\n <defs>\n @for (l of lines(); track l.key) {\n <linearGradient [attr.id]=\"l.gradId\" x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\n <stop offset=\"0%\" [attr.stop-color]=\"l.color\" stop-opacity=\"0.22\" />\n <stop offset=\"100%\" [attr.stop-color]=\"l.color\" stop-opacity=\"0.02\" />\n </linearGradient>\n }\n </defs>\n\n <!-- grilla -->\n @if (showGrid() && !loading()) {\n <g class=\"ius-chart__grid\">\n @for (y of gridYs(); track $index) {\n <line [attr.x1]=\"frame().mL\" [attr.y1]=\"y\" [attr.x2]=\"frame().mL + frame().innerW\" [attr.y2]=\"y\" />\n }\n </g>\n }\n\n <!-- eje Y -->\n @if (showYAxis()) {\n <g class=\"ius-chart__tick\" text-anchor=\"end\" dominant-baseline=\"middle\">\n @for (t of yTickItems(); track $index) {\n <text [attr.x]=\"frame().mL - 8\" [attr.y]=\"t.y\">{{ t.text }}</text>\n }\n </g>\n }\n\n <!-- skeleton -->\n @if (loading()) {\n <g>\n <rect\n class=\"ius-chart__skel\"\n [attr.x]=\"frame().mL\"\n [attr.y]=\"frame().mT\"\n [attr.width]=\"frame().innerW\"\n [attr.height]=\"frame().innerH\"\n rx=\"8\"\n opacity=\"0.5\"\n />\n <path class=\"ius-chart__skel--line\" [attr.d]=\"skeletonPath()\" />\n </g>\n }\n\n <!-- \u00E1reas + l\u00EDneas -->\n @if (!loading()) {\n @for (l of lines(); track l.key) {\n <g>\n @if (l.dArea) {\n <path class=\"ius-chart__area\" [attr.d]=\"l.dArea\" [attr.fill]=\"'url(#' + l.gradId + ')'\" />\n }\n <path class=\"ius-chart__line\" [attr.data-dashed]=\"l.dashed ? 'true' : null\" [attr.d]=\"l.dLine\" [attr.stroke]=\"l.color\" />\n @if (showPoints() === 'always') {\n @for (p of l.points; track $index) {\n <circle class=\"ius-chart__pt\" [attr.cx]=\"p.x\" [attr.cy]=\"p.y\" r=\"3.5\" [attr.fill]=\"l.color\" />\n }\n }\n </g>\n }\n }\n\n <!-- etiquetas de valor (1 serie recomendado) -->\n @if (!loading() && showValueLabels()) {\n @for (v of valueLabels(); track $index) {\n <text class=\"ius-chart__vlabel\" [attr.x]=\"v.x\" [attr.y]=\"v.y\">{{ v.text }}</text>\n }\n }\n\n <!-- gu\u00EDa vertical + puntos activos -->\n @if (activeMarks(); as am) {\n <g>\n <line class=\"ius-chart__guide\" [attr.x1]=\"am.x\" [attr.y1]=\"am.y1\" [attr.x2]=\"am.x\" [attr.y2]=\"am.y2\" />\n @for (p of am.points; track p.key) {\n <circle class=\"ius-chart__pt\" [attr.cx]=\"p.x\" [attr.cy]=\"p.y\" r=\"4.5\" [attr.fill]=\"p.color\" />\n }\n </g>\n }\n\n <!-- eje X -->\n @if (showXAxis() && !loading()) {\n <g class=\"ius-chart__xlabel\" text-anchor=\"middle\">\n <line\n class=\"ius-chart__axisline\"\n [attr.x1]=\"frame().mL\"\n [attr.y1]=\"frame().mT + frame().innerH\"\n [attr.x2]=\"frame().mL + frame().innerW\"\n [attr.y2]=\"frame().mT + frame().innerH\"\n />\n @for (x of xLabels(); track $index) {\n <text [attr.x]=\"x.x\" [attr.y]=\"frame().mT + frame().innerH + 18\">{{ x.text }}</text>\n }\n </g>\n }\n </svg>\n\n <!-- tooltip (HTML) -->\n @if (tooltip(); as tip) {\n <div class=\"ius-chart__tip\" [style.left.%]=\"tip.left\" [style.top.%]=\"tip.top\">\n <div class=\"ius-chart__tip-x\">{{ tip.title }}</div>\n @for (r of tip.rows; track r.key) {\n <div class=\"ius-chart__tip-row\">\n <span class=\"ius-chart__dot\" [style.background]=\"r.color\"></span>\n {{ r.label }}\n <b>{{ r.value }}</b>\n </div>\n }\n </div>\n }\n </div>\n}\n", styles: ["@charset \"UTF-8\";:host{position:relative;display:block;width:100%;box-sizing:border-box;font-family:var(--ius-font-body);color:var(--ius-text-primary);-webkit-user-select:none;user-select:none}.ius-chart__svg{display:block;width:100%;height:auto;overflow:visible}.ius-chart__plot{position:relative}.ius-chart__grid line{stroke:var(--ius-neutral-3);stroke-width:1;shape-rendering:crispEdges}.ius-chart__axisline{stroke:var(--ius-stroke);stroke-width:1;shape-rendering:crispEdges}.ius-chart__tick,.ius-chart__xlabel{fill:var(--ius-text-tertiary);font-family:var(--ius-font-display);font-size:var(--ius-fs-sm)}.ius-chart__line{fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.ius-chart__line[data-dashed=true]{stroke-dasharray:6 5}.ius-chart__pt{stroke:var(--ius-surface-card);stroke-width:2}.ius-chart__vlabel{fill:var(--ius-text-secondary);font-family:var(--ius-font-display);font-size:var(--ius-fs-sm);font-weight:var(--ius-fw-medium);text-anchor:middle}.ius-chart__guide{stroke:var(--ius-stroke-strong);stroke-width:1;stroke-dasharray:4 4}.ius-chart__legend{display:flex;flex-wrap:wrap;gap:var(--ius-space-xs) var(--ius-space-md);margin-bottom:var(--ius-space-sm)}.ius-chart__leg{display:inline-flex;align-items:center;gap:var(--ius-space-xxs);font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);color:var(--ius-text-secondary)}.ius-chart__dot{width:10px;height:10px;border-radius:var(--ius-radius-pill);flex:0 0 auto}.ius-chart__tip{position:absolute;pointer-events:none;z-index:var(--ius-z-sticky);min-width:132px;background:var(--ius-surface-card);border:1px solid var(--ius-stroke);border-radius:var(--ius-radius-md);box-shadow:var(--ius-elevation-300);padding:var(--ius-space-xs) var(--ius-space-sm);transform:translate(-50%,calc(-100% - var(--ius-space-sm)))}.ius-chart__tip-x{font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);font-weight:var(--ius-fw-bold);color:var(--ius-text-primary);margin-bottom:var(--ius-space-xxs);white-space:nowrap}.ius-chart__tip-row{display:flex;align-items:center;gap:var(--ius-space-xs);font-size:var(--ius-fs-sm);line-height:var(--ius-lh-sm);color:var(--ius-text-secondary);white-space:nowrap}.ius-chart__tip-row b{margin-left:auto;padding-left:var(--ius-space-sm);color:var(--ius-text-primary);font-weight:var(--ius-fw-medium);font-variant-numeric:tabular-nums}.ius-chart__skel{fill:var(--ius-neutral-2)}.ius-chart__skel--line{stroke:var(--ius-neutral-3);stroke-width:2;fill:none}.ius-chart__block{display:grid;place-items:center;min-height:160px}\n"] }]
|
|
15638
|
+
}], ctorParameters: () => [], propDecorators: { categories: [{ type: i0.Input, args: [{ isSignal: true, alias: "categories", required: false }] }], series: [{ type: i0.Input, args: [{ isSignal: true, alias: "series", required: false }] }], height: [{ type: i0.Input, args: [{ isSignal: true, alias: "height", required: false }] }], width: [{ type: i0.Input, args: [{ isSignal: true, alias: "width", required: false }] }], aspectRatio: [{ type: i0.Input, args: [{ isSignal: true, alias: "aspectRatio", required: false }] }], minWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "minWidth", required: false }] }], yAxisWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "yAxisWidth", required: false }] }], showXAxis: [{ type: i0.Input, args: [{ isSignal: true, alias: "showXAxis", required: false }] }], showYAxis: [{ type: i0.Input, args: [{ isSignal: true, alias: "showYAxis", required: false }] }], showGrid: [{ type: i0.Input, args: [{ isSignal: true, alias: "showGrid", required: false }] }], yTicks: [{ type: i0.Input, args: [{ isSignal: true, alias: "yTicks", required: false }] }], yMin: [{ type: i0.Input, args: [{ isSignal: true, alias: "yMin", required: false }] }], yMax: [{ type: i0.Input, args: [{ isSignal: true, alias: "yMax", required: false }] }], area: [{ type: i0.Input, args: [{ isSignal: true, alias: "area", required: false }] }], curve: [{ type: i0.Input, args: [{ isSignal: true, alias: "curve", required: false }] }], showPoints: [{ type: i0.Input, args: [{ isSignal: true, alias: "showPoints", required: false }] }], showValueLabels: [{ type: i0.Input, args: [{ isSignal: true, alias: "showValueLabels", required: false }] }], showLegend: [{ type: i0.Input, args: [{ isSignal: true, alias: "showLegend", required: false }] }], showTooltip: [{ type: i0.Input, args: [{ isSignal: true, alias: "showTooltip", required: false }] }], valueFormat: [{ type: i0.Input, args: [{ isSignal: true, alias: "valueFormat", required: false }] }], xFormat: [{ type: i0.Input, args: [{ isSignal: true, alias: "xFormat", required: false }] }], unit: [{ type: i0.Input, args: [{ isSignal: true, alias: "unit", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], emptyTemplate: [{ type: i0.Input, args: [{ isSignal: true, alias: "emptyTemplate", required: false }] }], emptyTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "emptyTitle", required: false }] }], emptyDescription: [{ type: i0.Input, args: [{ isSignal: true, alias: "emptyDescription", required: false }] }], animate: [{ type: i0.Input, args: [{ isSignal: true, alias: "animate", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }] } });
|
|
15639
|
+
|
|
14947
15640
|
/*
|
|
14948
15641
|
* Public API de @litigiovirtual/ius-design-components v2.
|
|
14949
15642
|
* La librería se está reconstruyendo componente a componente desde las
|
|
@@ -14955,5 +15648,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
14955
15648
|
* Generated bundle index. Do not edit.
|
|
14956
15649
|
*/
|
|
14957
15650
|
|
|
14958
|
-
export { AccordionComponent, AccountItemComponent, AlertComponent, AppLayoutComponent, AvatarComponent, BreadcrumbComponent, ButtonComponent, CaptchaFieldComponent, CardComponent, CarouselComponent, CheckboxComponent, ChipComponent, CircularProgressComponent, CodeFieldComponent, CountdownComponent, CountdownRingComponent, DescriptionListComponent, DividerComponent, DrawerComponent, DropdownComponent, EVENT_KINDS, EVENT_KIND_ICON, EleniaBubbleComponent, EleniaOrbComponent, EmptyStateComponent, FlexComponent, FormComponent, FormFieldComponent, FormSectionComponent, HeaderBarComponent, ILLUSTRATIONS, ILLUSTRATION_ALIAS, ILLUSTRATION_NAMES, IUS_FILTER_OPERATORS, IUS_TOAST_DEFAULT_DURATION, IUS_TOAST_DEFAULT_ICON, IconButtonComponent, IllustrationComponent, InsigniaComponent, IusAccountItemNameDirective, IusAccountItemSubtitleDirective, IusAccountItemTrailingDirective, IusAlertActionsDirective, IusAlertTrailingDirective, IusCardFooterDirective, IusCardHeaderDirective, IusDrawerFooterDirective, IusDrawerHeaderActionsDirective, IusDrawerTitleDirective, IusDropdownTriggerDirective, IusFormFooterDirective, IusListCardLeadingDirective, IusListCardOverlineDirective, IusListCardParagraphDirective, IusListCardSubtitleDirective, IusListCardTitleDirective, IusListViewFiltersDirective, IusListViewFooterEndDirective, IusListViewFooterStartDirective, IusListViewHeaderEndDirective, IusListViewHeaderStartDirective, IusListViewToolbarDirective, IusMenuItemTrailingDirective, IusModalFooterDirective, IusPageHeaderActionsDirective, IusPageHeaderBreadcrumbDirective, IusPageHeaderOverlineDirective, IusPageHeaderSubtitleDirective, IusPageHeaderTitleDirective, IusPageHeaderToolbarDirective, IusPersonItemNameDirective, IusPersonItemTrailingDirective, IusSectionTitleActionDirective, IusSettingsNavFooterDirective, IusSettingsNavHeaderDirective, IusStatCaptionDirective, IusStatDeltaDirective, IusStatDeltaLabelDirective, IusStatLabelDirective, IusStatSparklineDirective, IusTagPrefixDirective, IusTagSuffixDirective, IusToastActionDirective, IusUserMenuFooterDirective, LinearProgressBarComponent, ListCardComponent, ListViewComponent, LoadingComponent, LoadingMarkComponent, MenuComponent, MenuItemComponent, ModalComponent, MultiTextFieldComponent, NavUserComponent, NumberFieldComponent, ORB_PERIODS, OauthButtonComponent, OptionItemComponent, PageHeaderComponent, PersonItemComponent, PersonPickerComponent, PlanUsageItemComponent, PopoverComponent, QueryBuilderComponent, STATUS_TONES, STATUS_VOCAB, STATUS_VOCABS, STATUS_VOCABS_PENDING, ScrollAreaComponent, SearchBarComponent, SectionHeaderComponent, SectionTitleComponent, SegmentGroupComponent, SegmentedControlComponent, SelectComponent, SettingsNavComponent, ShowMoreComponent, SkeletonComponent, SplitterComponent, StatComponent, StatGroupComponent, StatusChipComponent, StatusStateComponent, TableComponent, TabsComponent, TagComponent, TextAreaComponent, TextButtonComponent, TextComponent, TextFieldComponent, TimelineComponent, ToastComponent, ToastService, ToastViewportComponent, TooltipComponent, UserMenuComponent, WizardComponent, WizardController, WizardNavComponent, createWizard, eventKindOptions, iusSegColor, pose, poseIso, poseSpeaking, poseThinking, renderCubeSvg, resolveEventIcon, resolveIllustration, resolveStatus, statusOptions, statusOrder, statusToneVars, statusVocab, voiceEnv };
|
|
15651
|
+
export { AccordionComponent, AccountItemComponent, AlertComponent, AppLayoutComponent, AvatarComponent, BreadcrumbComponent, ButtonComponent, CHART_CATEGORICAL_TONES, CHART_SEMANTIC_TONES, CHART_TONES, CaptchaFieldComponent, CardComponent, CarouselComponent, CheckboxComponent, ChipComponent, CircularProgressComponent, CodeFieldComponent, CountdownComponent, CountdownRingComponent, DescriptionListComponent, DividerComponent, DrawerComponent, DropdownComponent, EVENT_KINDS, EVENT_KIND_ICON, EleniaBubbleComponent, EleniaOrbComponent, EmptyStateComponent, FlexComponent, FormComponent, FormFieldComponent, FormSectionComponent, HeaderBarComponent, ILLUSTRATIONS, ILLUSTRATION_ALIAS, ILLUSTRATION_NAMES, IUS_FILTER_OPERATORS, IUS_TOAST_DEFAULT_DURATION, IUS_TOAST_DEFAULT_ICON, IconButtonComponent, IllustrationComponent, InsigniaComponent, IusAccountItemNameDirective, IusAccountItemSubtitleDirective, IusAccountItemTrailingDirective, IusAlertActionsDirective, IusAlertTrailingDirective, IusCardFooterDirective, IusCardHeaderDirective, IusDrawerFooterDirective, IusDrawerHeaderActionsDirective, IusDrawerTitleDirective, IusDropdownTriggerDirective, IusFormFooterDirective, IusListCardLeadingDirective, IusListCardOverlineDirective, IusListCardParagraphDirective, IusListCardSubtitleDirective, IusListCardTitleDirective, IusListViewFiltersDirective, IusListViewFooterEndDirective, IusListViewFooterStartDirective, IusListViewHeaderEndDirective, IusListViewHeaderStartDirective, IusListViewToolbarDirective, IusMenuItemTrailingDirective, IusModalFooterDirective, IusPageHeaderActionsDirective, IusPageHeaderBreadcrumbDirective, IusPageHeaderOverlineDirective, IusPageHeaderSubtitleDirective, IusPageHeaderTitleDirective, IusPageHeaderToolbarDirective, IusPersonItemNameDirective, IusPersonItemTrailingDirective, IusSectionTitleActionDirective, IusSettingsNavFooterDirective, IusSettingsNavHeaderDirective, IusStatCaptionDirective, IusStatDeltaDirective, IusStatDeltaLabelDirective, IusStatLabelDirective, IusStatSparklineDirective, IusTagPrefixDirective, IusTagSuffixDirective, IusToastActionDirective, IusUserMenuFooterDirective, LineChartComponent, LinearProgressBarComponent, ListCardComponent, ListViewComponent, LoadingComponent, LoadingMarkComponent, MenuComponent, MenuItemComponent, ModalComponent, MultiTextFieldComponent, NavUserComponent, NumberFieldComponent, ORB_PERIODS, OauthButtonComponent, OptionItemComponent, PageHeaderComponent, PersonItemComponent, PersonPickerComponent, PlanUsageItemComponent, PopoverComponent, QueryBuilderComponent, STATUS_TONES, STATUS_VOCAB, STATUS_VOCABS, STATUS_VOCABS_PENDING, ScrollAreaComponent, SearchBarComponent, SectionHeaderComponent, SectionTitleComponent, SegmentGroupComponent, SegmentedControlComponent, SelectComponent, SettingsNavComponent, ShowMoreComponent, SkeletonComponent, SparklineComponent, SplitterComponent, StatComponent, StatGroupComponent, StatusChipComponent, StatusStateComponent, TableComponent, TabsComponent, TagComponent, TextAreaComponent, TextButtonComponent, TextComponent, TextFieldComponent, TimelineComponent, ToastComponent, ToastService, ToastViewportComponent, TooltipComponent, UserMenuComponent, WizardComponent, WizardController, WizardNavComponent, chartAxisTicks, chartFormatValue, chartLinearPath, chartNiceNum, chartPath, chartPrefersReducedMotion, chartSmoothPath, chartToneAt, chartToneVar, createWizard, eventKindOptions, iusSegColor, pose, poseIso, poseSpeaking, poseThinking, renderCubeSvg, resolveEventIcon, resolveIllustration, resolveStatus, statusOptions, statusOrder, statusToneVars, statusVocab, voiceEnv };
|
|
14959
15652
|
//# sourceMappingURL=litigiovirtual-ius-design-components.mjs.map
|