@litigiovirtual/ius-design-components 2.2.8 → 2.2.10
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.
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
|
-
import { OnDestroy, EventEmitter, AfterViewInit, OnChanges, SimpleChanges, OnInit, TemplateRef, ElementRef, Signal } from '@angular/core';
|
|
2
|
+
import { OnDestroy, EventEmitter, AfterViewInit, OnChanges, SimpleChanges, OnInit, TemplateRef, ElementRef, Signal, Injector } from '@angular/core';
|
|
3
3
|
import { ControlValueAccessor } from '@angular/forms';
|
|
4
|
-
import { SafeHtml } from '@angular/platform-browser';
|
|
4
|
+
import { SafeHtml, SafeResourceUrl } from '@angular/platform-browser';
|
|
5
5
|
import * as _litigiovirtual_ius_design_components from '@litigiovirtual/ius-design-components';
|
|
6
|
+
import { CdkDrag, CdkDragStart, CdkDragDrop } from '@angular/cdk/drag-drop';
|
|
6
7
|
|
|
7
8
|
/** Jerarquía visual. `danger` = destructivo (color semántico, no accent). */
|
|
8
9
|
type IusButtonVariant = 'primary' | 'outline' | 'secondary' | 'tertiary' | 'danger';
|
|
@@ -68,6 +69,11 @@ declare class ButtonComponent implements OnDestroy {
|
|
|
68
69
|
* `...rest`/`aria-label` del golden; lo usa OAuthButton al componer).
|
|
69
70
|
*/
|
|
70
71
|
ariaLabel?: string;
|
|
72
|
+
/**
|
|
73
|
+
* `aria-current` del `<button>` (mismo passthrough `...rest`; lo usa
|
|
74
|
+
* Pagination para marcar la página activa con `'page'`).
|
|
75
|
+
*/
|
|
76
|
+
ariaCurrent?: 'page' | 'step' | 'location' | 'date' | 'time' | 'true' | 'false';
|
|
71
77
|
/** Acción del modo `dynamic`; su resolución decide success/error (§3). */
|
|
72
78
|
action?: (event: MouseEvent) => Promise<IusButtonActionResult> | IusButtonActionResult;
|
|
73
79
|
/**
|
|
@@ -92,7 +98,7 @@ declare class ButtonComponent implements OnDestroy {
|
|
|
92
98
|
ngOnDestroy(): void;
|
|
93
99
|
protected handleClick(event: MouseEvent): Promise<void>;
|
|
94
100
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ButtonComponent, never>;
|
|
95
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ButtonComponent, "ius-button", never, { "variant": { "alias": "variant"; "required": false; }; "label": { "alias": "label"; "required": false; }; "prefixIcon": { "alias": "prefixIcon"; "required": false; }; "sufixIcon": { "alias": "sufixIcon"; "required": false; }; "dynamic": { "alias": "dynamic"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "status": { "alias": "status"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "pressed": { "alias": "pressed"; "required": false; }; "fullWidth": { "alias": "fullWidth"; "required": false; }; "type": { "alias": "type"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "action": { "alias": "action"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, { "clicked": "clicked"; }, never, ["*"], true, never>;
|
|
101
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ButtonComponent, "ius-button", never, { "variant": { "alias": "variant"; "required": false; }; "label": { "alias": "label"; "required": false; }; "prefixIcon": { "alias": "prefixIcon"; "required": false; }; "sufixIcon": { "alias": "sufixIcon"; "required": false; }; "dynamic": { "alias": "dynamic"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "status": { "alias": "status"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "pressed": { "alias": "pressed"; "required": false; }; "fullWidth": { "alias": "fullWidth"; "required": false; }; "type": { "alias": "type"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "ariaCurrent": { "alias": "ariaCurrent"; "required": false; }; "action": { "alias": "action"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, { "clicked": "clicked"; }, never, ["*"], true, never>;
|
|
96
102
|
static ngAcceptInputType_dynamic: unknown;
|
|
97
103
|
static ngAcceptInputType_loading: unknown;
|
|
98
104
|
static ngAcceptInputType_disabled: unknown;
|
|
@@ -594,6 +600,11 @@ declare class TextFieldComponent implements ControlValueAccessor {
|
|
|
594
600
|
protected get hint(): string | undefined;
|
|
595
601
|
protected get showHint(): boolean;
|
|
596
602
|
protected get showClearComputed(): boolean;
|
|
603
|
+
/**
|
|
604
|
+
* Slot estable del golden: salvo `showClear=false` o disabled, el botón queda en el
|
|
605
|
+
* flujo (oculto sin valor) para que aparecer/desaparecer no cambie ancho ni alto.
|
|
606
|
+
*/
|
|
607
|
+
protected get clearReserved(): boolean;
|
|
597
608
|
writeValue(value: string): void;
|
|
598
609
|
registerOnChange(fn: (value: string) => void): void;
|
|
599
610
|
registerOnTouched(fn: () => void): void;
|
|
@@ -884,7 +895,7 @@ declare class AlertComponent {
|
|
|
884
895
|
/** Alineación (auto: `center` si hay `trailing` sin `actions`). */
|
|
885
896
|
readonly align: _angular_core.InputSignal<"start" | "center" | undefined>;
|
|
886
897
|
/** `status` (default, no interrumpe) o `alert` (asertivo). */
|
|
887
|
-
readonly role: _angular_core.InputSignal<"
|
|
898
|
+
readonly role: _angular_core.InputSignal<"status" | "alert">;
|
|
888
899
|
/** Al pulsar × (original: `onClose`). */
|
|
889
900
|
readonly closed: _angular_core.OutputEmitterRef<void>;
|
|
890
901
|
private readonly actionsRef;
|
|
@@ -1024,7 +1035,7 @@ declare class CheckboxComponent implements ControlValueAccessor {
|
|
|
1024
1035
|
registerOnChange(fn: (value: boolean) => void): void;
|
|
1025
1036
|
registerOnTouched(fn: () => void): void;
|
|
1026
1037
|
setDisabledState(isDisabled: boolean): void;
|
|
1027
|
-
protected onToggle(): void;
|
|
1038
|
+
protected onToggle(event: Event): void;
|
|
1028
1039
|
protected onBlur(): void;
|
|
1029
1040
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CheckboxComponent, never>;
|
|
1030
1041
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CheckboxComponent, "ius-checkbox", never, { "label": { "alias": "label"; "required": false; }; "labelPosition": { "alias": "labelPosition"; "required": false; }; "showIconHelp": { "alias": "showIconHelp"; "required": false; }; "iconHelpTitle": { "alias": "iconHelpTitle"; "required": false; }; "iconHelpContent": { "alias": "iconHelpContent"; "required": false; }; "name": { "alias": "name"; "required": false; }; "value": { "alias": "value"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "size": { "alias": "size"; "required": false; }; "checked": { "alias": "checked"; "required": false; }; "defaultChecked": { "alias": "defaultChecked"; "required": false; }; "indeterminate": { "alias": "indeterminate"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "checkedChange": "checkedChange"; }, never, never, true, never>;
|
|
@@ -1140,6 +1151,13 @@ declare class IconButtonComponent implements OnInit {
|
|
|
1140
1151
|
* golden; lo usa AnswerFeedback al componer los pulgares como toggles).
|
|
1141
1152
|
*/
|
|
1142
1153
|
ariaPressed?: boolean;
|
|
1154
|
+
/**
|
|
1155
|
+
* Passthrough `aria-expanded`/`aria-controls` al `<button>` (equivalente del
|
|
1156
|
+
* `...rest` del golden; los usa Table en los disparadores de filas
|
|
1157
|
+
* expandibles y agrupadas).
|
|
1158
|
+
*/
|
|
1159
|
+
ariaExpanded?: boolean;
|
|
1160
|
+
ariaControls?: string;
|
|
1143
1161
|
/** Colocación del tooltip. */
|
|
1144
1162
|
tooltipPlacement: IusPopoverPlacement;
|
|
1145
1163
|
/** Emite al pulsar. Nunca `click` (colisión con el nativo del host). */
|
|
@@ -1148,7 +1166,7 @@ declare class IconButtonComponent implements OnInit {
|
|
|
1148
1166
|
protected get computedLabel(): string;
|
|
1149
1167
|
protected onClick(event: MouseEvent): void;
|
|
1150
1168
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<IconButtonComponent, never>;
|
|
1151
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<IconButtonComponent, "ius-icon-button", never, { "icon": { "alias": "icon"; "required": true; }; "variant": { "alias": "variant"; "required": false; }; "size": { "alias": "size"; "required": false; }; "shape": { "alias": "shape"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "type": { "alias": "type"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "tooltip": { "alias": "tooltip"; "required": false; }; "ariaPressed": { "alias": "ariaPressed"; "required": false; }; "tooltipPlacement": { "alias": "tooltipPlacement"; "required": false; }; }, { "clicked": "clicked"; }, never, never, true, never>;
|
|
1169
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<IconButtonComponent, "ius-icon-button", never, { "icon": { "alias": "icon"; "required": true; }; "variant": { "alias": "variant"; "required": false; }; "size": { "alias": "size"; "required": false; }; "shape": { "alias": "shape"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "type": { "alias": "type"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "tooltip": { "alias": "tooltip"; "required": false; }; "ariaPressed": { "alias": "ariaPressed"; "required": false; }; "ariaExpanded": { "alias": "ariaExpanded"; "required": false; }; "ariaControls": { "alias": "ariaControls"; "required": false; }; "tooltipPlacement": { "alias": "tooltipPlacement"; "required": false; }; }, { "clicked": "clicked"; }, never, never, true, never>;
|
|
1152
1170
|
static ngAcceptInputType_disabled: unknown;
|
|
1153
1171
|
}
|
|
1154
1172
|
|
|
@@ -3065,13 +3083,14 @@ interface SelectOption {
|
|
|
3065
3083
|
label: string;
|
|
3066
3084
|
/**
|
|
3067
3085
|
* Línea superior (overline / eyebrow) encima del label. Ej.: el cliente
|
|
3068
|
-
* encima del nombre del expediente.
|
|
3069
|
-
*
|
|
3086
|
+
* encima del nombre del expediente. Participa en la búsqueda junto con `label`
|
|
3087
|
+
* (ajuste de lógica 2026-10-08, F7 · HU-27: «Buscar expediente o cliente»; el
|
|
3088
|
+
* golden aún filtra solo por `label`).
|
|
3070
3089
|
*/
|
|
3071
3090
|
overline?: string;
|
|
3072
3091
|
/**
|
|
3073
|
-
* Línea de ayuda bajo el label — p. ej. qué permite un rol en el Select de rol.
|
|
3074
|
-
*
|
|
3092
|
+
* Línea de ayuda bajo el label — p. ej. qué permite un rol en el Select de rol. No
|
|
3093
|
+
* participa en la búsqueda: el filtro mira `label` y `overline`.
|
|
3075
3094
|
*/
|
|
3076
3095
|
description?: string;
|
|
3077
3096
|
/** Ícono Material Symbols Rounded a la izquierda de la opción. */
|
|
@@ -4371,6 +4390,173 @@ declare class ModalComponent implements AfterViewInit, OnDestroy {
|
|
|
4371
4390
|
static ngAcceptInputType_zIndex: unknown;
|
|
4372
4391
|
}
|
|
4373
4392
|
|
|
4393
|
+
type IusDocumentViewerVariant = 'overlay' | 'inline';
|
|
4394
|
+
type IusDocumentViewerKind = 'pdf' | 'image' | 'video' | 'audio';
|
|
4395
|
+
/** Motivo del cierre emitido por `closed`. */
|
|
4396
|
+
type IusDocumentViewerCloseReason = 'close' | 'esc' | 'scrim';
|
|
4397
|
+
/** Pasos de zoom en % (`DocumentViewer.ZOOM_STEPS` del golden). */
|
|
4398
|
+
declare const IUS_DOCUMENT_VIEWER_ZOOM_STEPS: readonly number[];
|
|
4399
|
+
/** Tipo de vista: el explícito, o por extensión de `name`/`src` (imagen, video, audio; el resto PDF). */
|
|
4400
|
+
declare function resolveViewKind(kind?: string | null, name?: string | null, src?: string | null): IusDocumentViewerKind;
|
|
4401
|
+
/** Acciones de la cabecera, antes de cerrar: `<div iusDocViewerActions>…</div>`. */
|
|
4402
|
+
declare class IusDocViewerActionsDirective {
|
|
4403
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<IusDocViewerActionsDirective, never>;
|
|
4404
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<IusDocViewerActionsDirective, "[iusDocViewerActions]", never, {}, {}, never, never, true, never>;
|
|
4405
|
+
}
|
|
4406
|
+
/** Contenido de la columna de detalles (se monta en `ius-detail-side-panel`). */
|
|
4407
|
+
declare class IusDocViewerAsideDirective {
|
|
4408
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<IusDocViewerAsideDirective, never>;
|
|
4409
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<IusDocViewerAsideDirective, "[iusDocViewerAside]", never, {}, {}, never, never, true, never>;
|
|
4410
|
+
}
|
|
4411
|
+
/** Cuerpo a medida (p. ej. páginas renderizadas con pdf.js): reemplaza iframe/imagen. */
|
|
4412
|
+
declare class IusDocViewerBodyDirective {
|
|
4413
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<IusDocViewerBodyDirective, never>;
|
|
4414
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<IusDocViewerBodyDirective, "[iusDocViewerBody]", never, {}, {}, never, never, true, never>;
|
|
4415
|
+
}
|
|
4416
|
+
/**
|
|
4417
|
+
* DocumentViewer — Ius Design v2 (familia overlays).
|
|
4418
|
+
*
|
|
4419
|
+
* Previsualiza un PDF, una imagen, un video o un audio sin descargarlo. En
|
|
4420
|
+
* `overlay` (default) se portalea a `document.body` con CDK Overlay: scrim en
|
|
4421
|
+
* `--ius-z-modal`, scroll-lock, focus-trap, foco inicial en «Cerrar» y
|
|
4422
|
+
* restauración al cerrar. En `inline` ocupa su contenedor (`role="region"`),
|
|
4423
|
+
* sin scrim; cerrar pasa a «Volver» y Esc solo actúa con el foco dentro.
|
|
4424
|
+
*
|
|
4425
|
+
* Compone FileTypeIcon, IconButton, Pagination, Loading, StatusState y
|
|
4426
|
+
* DetailSidePanel; no introduce controles propios. Confirmaciones → Modal;
|
|
4427
|
+
* formularios → Drawer.
|
|
4428
|
+
* Fuente de verdad: `DocumentViewer.jsx` + `.d.ts` + `DocumentViewer.ng-spec.md`.
|
|
4429
|
+
*
|
|
4430
|
+
* Outputs como `EventEmitter` porque el contrato depende de si hay listener:
|
|
4431
|
+
* sin `prev`/`next` las flechas quedan deshabilitadas, sin `fullscreen` no hay
|
|
4432
|
+
* botón, sin `retry` el error no ofrece «Reintentar» y sin `zoomChange` el zoom
|
|
4433
|
+
* no se muestra salvo que lo pida `showZoom` o se enlace `zoom`.
|
|
4434
|
+
*/
|
|
4435
|
+
declare class DocumentViewerComponent implements OnDestroy {
|
|
4436
|
+
private readonly overlay;
|
|
4437
|
+
private readonly viewContainerRef;
|
|
4438
|
+
private readonly sanitizer;
|
|
4439
|
+
private readonly injector;
|
|
4440
|
+
private readonly document;
|
|
4441
|
+
protected readonly titleId: string;
|
|
4442
|
+
readonly variant: _angular_core.InputSignal<IusDocumentViewerVariant>;
|
|
4443
|
+
/** Apertura (controlado). */
|
|
4444
|
+
readonly open: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
4445
|
+
/**
|
|
4446
|
+
* URL del archivo. Office: la URL del PDF convertido en el servidor con `kind="pdf"`.
|
|
4447
|
+
* Debe ser de confianza (la emite el servidor): el PDF la monta en un iframe sin sanear.
|
|
4448
|
+
*/
|
|
4449
|
+
readonly src: _angular_core.InputSignal<string | undefined>;
|
|
4450
|
+
/** Nombre del archivo en la cabecera y nombre accesible; su extensión da el ícono. */
|
|
4451
|
+
readonly name: _angular_core.InputSignal<string | undefined>;
|
|
4452
|
+
/** Nombre rico como plantilla (alternativa a `name`). */
|
|
4453
|
+
readonly nameTemplate: _angular_core.InputSignal<TemplateRef<unknown> | undefined>;
|
|
4454
|
+
/** Tipo de vista. Sin él, por extensión de `name` o `src`. */
|
|
4455
|
+
readonly kind: _angular_core.InputSignal<IusDocumentViewerKind | undefined>;
|
|
4456
|
+
/** Solo video: portada antes de reproducir. */
|
|
4457
|
+
readonly poster: _angular_core.InputSignal<string | undefined>;
|
|
4458
|
+
readonly loading: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
4459
|
+
readonly loadingLabel: _angular_core.InputSignal<string>;
|
|
4460
|
+
/** `true` (o el atributo suelto) usa la descripción por defecto; un texto la reemplaza. */
|
|
4461
|
+
readonly error: _angular_core.InputSignalWithTransform<string | boolean, string | boolean | null | undefined>;
|
|
4462
|
+
/** Página actual (controlado, base 1). Para PDF va como `#page=N`. */
|
|
4463
|
+
readonly page: _angular_core.InputSignal<number | undefined>;
|
|
4464
|
+
readonly defaultPage: _angular_core.InputSignal<number>;
|
|
4465
|
+
/** Total de páginas; con más de una, el pie muestra la paginación compacta. */
|
|
4466
|
+
readonly pageCount: _angular_core.InputSignal<number | undefined>;
|
|
4467
|
+
/** Zoom en % (controlado). Pasos 50 · 75 · 100 · 125 · 150 · 200. */
|
|
4468
|
+
readonly zoom: _angular_core.InputSignal<number | undefined>;
|
|
4469
|
+
readonly defaultZoom: _angular_core.InputSignal<number>;
|
|
4470
|
+
/** Default: visible si se enlaza `zoom` o `zoomChange`. */
|
|
4471
|
+
readonly showZoom: _angular_core.InputSignal<boolean | undefined>;
|
|
4472
|
+
readonly asideTitle: _angular_core.InputSignal<string>;
|
|
4473
|
+
readonly asideWidth: _angular_core.InputSignal<string | number>;
|
|
4474
|
+
readonly asideCollapsible: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
4475
|
+
/** Detalles expandidos (controlado). */
|
|
4476
|
+
readonly asideOpen: _angular_core.InputSignal<boolean | undefined>;
|
|
4477
|
+
readonly defaultAsideOpen: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
4478
|
+
/** Posición del archivo (base 0) y total, para «N de M» entre las flechas. */
|
|
4479
|
+
readonly fileIndex: _angular_core.InputSignal<number | undefined>;
|
|
4480
|
+
readonly fileCount: _angular_core.InputSignal<number | undefined>;
|
|
4481
|
+
/** Solo `overlay`. */
|
|
4482
|
+
readonly closeOnScrim: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
4483
|
+
readonly closeOnEsc: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
4484
|
+
/** Sobrescribe el plano (default `var(--ius-z-modal)`). */
|
|
4485
|
+
readonly zIndex: _angular_core.InputSignal<number | undefined>;
|
|
4486
|
+
/** Nombre accesible cuando no hay `name`. */
|
|
4487
|
+
readonly ariaLabel: _angular_core.InputSignal<string>;
|
|
4488
|
+
/** Original `onClose(reason)`. */
|
|
4489
|
+
readonly closed: EventEmitter<IusDocumentViewerCloseReason>;
|
|
4490
|
+
/** Original `onPageChange`. */
|
|
4491
|
+
readonly pageChange: EventEmitter<number>;
|
|
4492
|
+
/** Original `onZoomChange`. */
|
|
4493
|
+
readonly zoomChange: EventEmitter<number>;
|
|
4494
|
+
/** Original `onAsideOpenChange`. */
|
|
4495
|
+
readonly asideOpenChange: EventEmitter<boolean>;
|
|
4496
|
+
/** Original `onPrev`; sin listener la flecha queda deshabilitada. */
|
|
4497
|
+
readonly prev: EventEmitter<void>;
|
|
4498
|
+
/** Original `onNext`; sin listener la flecha queda deshabilitada. */
|
|
4499
|
+
readonly next: EventEmitter<void>;
|
|
4500
|
+
/** Original `onFullscreen`; con listener aparece «Pantalla completa». */
|
|
4501
|
+
readonly fullscreen: EventEmitter<void>;
|
|
4502
|
+
/** Original `onRetry`; con listener el error muestra «Reintentar». */
|
|
4503
|
+
readonly retry: EventEmitter<void>;
|
|
4504
|
+
protected readonly actionsRef: _angular_core.Signal<IusDocViewerActionsDirective | undefined>;
|
|
4505
|
+
protected readonly asideRef: _angular_core.Signal<IusDocViewerAsideDirective | undefined>;
|
|
4506
|
+
protected readonly bodyRef: _angular_core.Signal<IusDocViewerBodyDirective | undefined>;
|
|
4507
|
+
private readonly overlayTpl;
|
|
4508
|
+
private readonly mainEl;
|
|
4509
|
+
/** `.ius-docv__main` mide 560px o menos: los detalles bajan bajo el documento. */
|
|
4510
|
+
protected readonly narrow: _angular_core.WritableSignal<boolean>;
|
|
4511
|
+
private readonly pageInt;
|
|
4512
|
+
private readonly zoomInt;
|
|
4513
|
+
private readonly asideInt;
|
|
4514
|
+
/** El `<video>`/`<audio>` no pudo reproducir; se limpia al cambiar `src`. */
|
|
4515
|
+
protected readonly mediaFailed: _angular_core.WritableSignal<boolean>;
|
|
4516
|
+
/** Cambiarlo re-monta el reproductor (Reintentar tras un fallo de medios). */
|
|
4517
|
+
protected readonly mediaKey: _angular_core.WritableSignal<number>;
|
|
4518
|
+
protected readonly naturalWidth: _angular_core.WritableSignal<number>;
|
|
4519
|
+
protected readonly inline: _angular_core.Signal<boolean>;
|
|
4520
|
+
protected readonly currentPage: _angular_core.Signal<number>;
|
|
4521
|
+
protected readonly hasPaging: _angular_core.Signal<boolean>;
|
|
4522
|
+
protected readonly currentZoom: _angular_core.Signal<number>;
|
|
4523
|
+
protected readonly asideIsOpen: _angular_core.Signal<boolean>;
|
|
4524
|
+
protected readonly viewKind: _angular_core.Signal<IusDocumentViewerKind>;
|
|
4525
|
+
protected readonly isMedia: _angular_core.Signal<boolean>;
|
|
4526
|
+
protected readonly hasName: _angular_core.Signal<boolean>;
|
|
4527
|
+
protected readonly pdfUrl: _angular_core.Signal<SafeResourceUrl | null>;
|
|
4528
|
+
protected readonly hasError: _angular_core.Signal<boolean>;
|
|
4529
|
+
protected readonly errorDescription: _angular_core.Signal<string>;
|
|
4530
|
+
protected readonly bodyIsPdf: _angular_core.Signal<boolean>;
|
|
4531
|
+
protected readonly zoomed: _angular_core.Signal<boolean>;
|
|
4532
|
+
protected readonly imageWidth: _angular_core.Signal<string | null>;
|
|
4533
|
+
protected readonly canZoomOut: _angular_core.Signal<boolean>;
|
|
4534
|
+
protected readonly canZoomIn: _angular_core.Signal<boolean>;
|
|
4535
|
+
protected readonly showFilePos: _angular_core.Signal<boolean>;
|
|
4536
|
+
private overlayRef;
|
|
4537
|
+
private keydownSub;
|
|
4538
|
+
private focusToRestore;
|
|
4539
|
+
constructor();
|
|
4540
|
+
ngOnDestroy(): void;
|
|
4541
|
+
protected get zoomVisible(): boolean;
|
|
4542
|
+
protected get showFoot(): boolean;
|
|
4543
|
+
protected get hasFileNav(): boolean;
|
|
4544
|
+
protected get retryAction(): IusEmptyStateAction | undefined;
|
|
4545
|
+
private attach;
|
|
4546
|
+
private detach;
|
|
4547
|
+
protected onScrimMouseDown(event: MouseEvent): void;
|
|
4548
|
+
protected onHostKeydown(event: KeyboardEvent): void;
|
|
4549
|
+
protected goPage(page: number): void;
|
|
4550
|
+
protected zoomOut(): void;
|
|
4551
|
+
protected zoomIn(): void;
|
|
4552
|
+
private setZoom;
|
|
4553
|
+
protected onAsideCollapsedChange(collapsed: boolean): void;
|
|
4554
|
+
protected onImageLoad(event: Event): void;
|
|
4555
|
+
protected onRetry(): void;
|
|
4556
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DocumentViewerComponent, never>;
|
|
4557
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DocumentViewerComponent, "ius-document-viewer", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "open": { "alias": "open"; "required": false; "isSignal": true; }; "src": { "alias": "src"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "nameTemplate": { "alias": "nameTemplate"; "required": false; "isSignal": true; }; "kind": { "alias": "kind"; "required": false; "isSignal": true; }; "poster": { "alias": "poster"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "loadingLabel": { "alias": "loadingLabel"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "page": { "alias": "page"; "required": false; "isSignal": true; }; "defaultPage": { "alias": "defaultPage"; "required": false; "isSignal": true; }; "pageCount": { "alias": "pageCount"; "required": false; "isSignal": true; }; "zoom": { "alias": "zoom"; "required": false; "isSignal": true; }; "defaultZoom": { "alias": "defaultZoom"; "required": false; "isSignal": true; }; "showZoom": { "alias": "showZoom"; "required": false; "isSignal": true; }; "asideTitle": { "alias": "asideTitle"; "required": false; "isSignal": true; }; "asideWidth": { "alias": "asideWidth"; "required": false; "isSignal": true; }; "asideCollapsible": { "alias": "asideCollapsible"; "required": false; "isSignal": true; }; "asideOpen": { "alias": "asideOpen"; "required": false; "isSignal": true; }; "defaultAsideOpen": { "alias": "defaultAsideOpen"; "required": false; "isSignal": true; }; "fileIndex": { "alias": "fileIndex"; "required": false; "isSignal": true; }; "fileCount": { "alias": "fileCount"; "required": false; "isSignal": true; }; "closeOnScrim": { "alias": "closeOnScrim"; "required": false; "isSignal": true; }; "closeOnEsc": { "alias": "closeOnEsc"; "required": false; "isSignal": true; }; "zIndex": { "alias": "zIndex"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "closed": "closed"; "pageChange": "pageChange"; "zoomChange": "zoomChange"; "asideOpenChange": "asideOpenChange"; "prev": "prev"; "next": "next"; "fullscreen": "fullscreen"; "retry": "retry"; }, ["actionsRef", "asideRef", "bodyRef"], ["[iusDocViewerActions]", "[iusDocViewerBody]", "[iusDocViewerAside]"], true, never>;
|
|
4558
|
+
}
|
|
4559
|
+
|
|
4374
4560
|
/**
|
|
4375
4561
|
* Rol tipográfico → clase de escala (`typography.css`). `body` es alias de
|
|
4376
4562
|
* `body-base`. Mapa exacto en VARIANT_CLASS/DEFAULT_TAG.
|
|
@@ -4554,6 +4740,168 @@ declare class SegmentedControlComponent implements ControlValueAccessor {
|
|
|
4554
4740
|
static ngAcceptInputType_disabled: unknown;
|
|
4555
4741
|
}
|
|
4556
4742
|
|
|
4743
|
+
/**
|
|
4744
|
+
* SelectNumber — Ius Design v2.
|
|
4745
|
+
*
|
|
4746
|
+
* Variante **compacta y sin label** del Select para elegir un número dentro de
|
|
4747
|
+
* un rango: página actual de un paginador, filas por página, cantidades
|
|
4748
|
+
* acotadas. Sin caja de búsqueda, footprint reducido y valor en
|
|
4749
|
+
* `tabular-nums`. Para listas de texto, búsqueda o multiselección → Select.
|
|
4750
|
+
*
|
|
4751
|
+
* Envoltorio delgado sobre `ius-select` (`compact`, sin búsqueda, sin label,
|
|
4752
|
+
* opciones = rango numérico), igual que el golden: cualquier ajuste de
|
|
4753
|
+
* comportamiento se hace en Select. Implementa `ControlValueAccessor`
|
|
4754
|
+
* numérico y además soporta `[(value)]`.
|
|
4755
|
+
*
|
|
4756
|
+
* Fuente de verdad: `components/inputs/SelectNumber/SelectNumber.jsx` + `.d.ts`
|
|
4757
|
+
* + `SelectNumber.ng-spec.md`.
|
|
4758
|
+
*/
|
|
4759
|
+
declare class SelectNumberComponent implements ControlValueAccessor, OnInit {
|
|
4760
|
+
private readonly minState;
|
|
4761
|
+
/** Primer número del rango (inclusive). */
|
|
4762
|
+
set min(value: number);
|
|
4763
|
+
get min(): number;
|
|
4764
|
+
private readonly maxState;
|
|
4765
|
+
/** Último número del rango (inclusive). Requerido si no se pasan `options`. */
|
|
4766
|
+
set max(value: number | undefined);
|
|
4767
|
+
get max(): number | undefined;
|
|
4768
|
+
private readonly optionsState;
|
|
4769
|
+
/** Lista explícita de números (ignora `min`/`max`). */
|
|
4770
|
+
set options(value: number[] | undefined);
|
|
4771
|
+
get options(): number[] | undefined;
|
|
4772
|
+
private readonly valueState;
|
|
4773
|
+
private hasExplicitValue;
|
|
4774
|
+
/** Valor controlado (CVA / `[(value)]`). */
|
|
4775
|
+
set value(value: number | null | undefined);
|
|
4776
|
+
get value(): number | null;
|
|
4777
|
+
/** Valor inicial no controlado. Default: el primer número (`min`). */
|
|
4778
|
+
defaultValue?: number;
|
|
4779
|
+
/** Opciones visibles antes de hacer scroll. */
|
|
4780
|
+
maxVisible: number;
|
|
4781
|
+
/** Estado de error. */
|
|
4782
|
+
error: boolean;
|
|
4783
|
+
private readonly disabledState;
|
|
4784
|
+
/** Estado deshabilitado. */
|
|
4785
|
+
set disabled(value: boolean);
|
|
4786
|
+
get disabled(): boolean;
|
|
4787
|
+
/** Tamaño del campo: small ~34 · medium ~40 (default) · large ~48px. */
|
|
4788
|
+
size: IusSelectSize;
|
|
4789
|
+
/** Estado forzado — **solo demos**. */
|
|
4790
|
+
state?: IusSelectState;
|
|
4791
|
+
/** Botón de limpiar. Off por defecto: un número siempre tiene valor. */
|
|
4792
|
+
showClear: boolean;
|
|
4793
|
+
/** `id` del campo. */
|
|
4794
|
+
id?: string;
|
|
4795
|
+
/** Número elegido (original `onChange`). `null` solo al limpiar con `showClear`. */
|
|
4796
|
+
readonly valueChange: EventEmitter<number | null>;
|
|
4797
|
+
protected readonly nums: _angular_core.Signal<number[]>;
|
|
4798
|
+
protected readonly selectOptions: _angular_core.Signal<SelectOption[]>;
|
|
4799
|
+
protected readonly current: _angular_core.Signal<number | null>;
|
|
4800
|
+
protected readonly isDisabled: _angular_core.Signal<boolean>;
|
|
4801
|
+
private onChange;
|
|
4802
|
+
private onTouched;
|
|
4803
|
+
ngOnInit(): void;
|
|
4804
|
+
writeValue(value: number | null): void;
|
|
4805
|
+
registerOnChange(fn: (value: number | null) => void): void;
|
|
4806
|
+
registerOnTouched(fn: () => void): void;
|
|
4807
|
+
setDisabledState(isDisabled: boolean): void;
|
|
4808
|
+
protected onSelect(value: IusSelectValue | IusSelectValue[] | null): void;
|
|
4809
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SelectNumberComponent, never>;
|
|
4810
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SelectNumberComponent, "ius-select-number", never, { "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "options": { "alias": "options"; "required": false; }; "value": { "alias": "value"; "required": false; }; "defaultValue": { "alias": "defaultValue"; "required": false; }; "maxVisible": { "alias": "maxVisible"; "required": false; }; "error": { "alias": "error"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "size": { "alias": "size"; "required": false; }; "state": { "alias": "state"; "required": false; }; "showClear": { "alias": "showClear"; "required": false; }; "id": { "alias": "id"; "required": false; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
|
|
4811
|
+
static ngAcceptInputType_min: unknown;
|
|
4812
|
+
static ngAcceptInputType_maxVisible: unknown;
|
|
4813
|
+
static ngAcceptInputType_error: unknown;
|
|
4814
|
+
static ngAcceptInputType_disabled: unknown;
|
|
4815
|
+
static ngAcceptInputType_showClear: unknown;
|
|
4816
|
+
}
|
|
4817
|
+
|
|
4818
|
+
/** Forma del paginador. */
|
|
4819
|
+
type IusPaginationVariant = 'numbered' | 'compact';
|
|
4820
|
+
/** Tamaño: small ~32 · medium ~40 (default) · large ~48px. */
|
|
4821
|
+
type IusPaginationSize = 'small' | 'medium' | 'large';
|
|
4822
|
+
/** Fila de página ya normalizada para el template. */
|
|
4823
|
+
interface PageRow {
|
|
4824
|
+
ellipsis: boolean;
|
|
4825
|
+
value?: number;
|
|
4826
|
+
}
|
|
4827
|
+
/**
|
|
4828
|
+
* Pagination — Ius Design v2.
|
|
4829
|
+
*
|
|
4830
|
+
* Navegación entre páginas de una lista o tabla larga. `numbered`: prev/next +
|
|
4831
|
+
* números con elipsis (activa en primario, resto tertiary). `compact`:
|
|
4832
|
+
* first/prev + «Página [SelectNumber] de N» + next/last. Opcionalmente muestra
|
|
4833
|
+
* el conteo «1–25 de 1.234 procesos» y el selector de filas por página.
|
|
4834
|
+
* Controlada (`page` + `pageChange`) o no controlada (`defaultPage`).
|
|
4835
|
+
*
|
|
4836
|
+
* Compone `ius-button`, `ius-icon-button` e `ius-select-number`. El host es el
|
|
4837
|
+
* `<nav>` del golden (`role="navigation"` + `aria-label`).
|
|
4838
|
+
*
|
|
4839
|
+
* Fuente de verdad: `components/navigation/Pagination/Pagination.jsx` + `.d.ts`
|
|
4840
|
+
* + `Pagination.ng-spec.md`.
|
|
4841
|
+
*/
|
|
4842
|
+
declare class PaginationComponent implements OnInit {
|
|
4843
|
+
/** Forma del paginador. */
|
|
4844
|
+
variant: IusPaginationVariant;
|
|
4845
|
+
/** Página actual (controlado, base 1). */
|
|
4846
|
+
page?: number;
|
|
4847
|
+
/** Página inicial no controlada. */
|
|
4848
|
+
defaultPage: number;
|
|
4849
|
+
/** Total de páginas. Sin él, se calcula con `total` / `pageSize`. */
|
|
4850
|
+
totalPages?: number;
|
|
4851
|
+
/** Total de elementos: deriva `totalPages` y alimenta el conteo. */
|
|
4852
|
+
total?: number;
|
|
4853
|
+
/** Elementos por página. */
|
|
4854
|
+
pageSize: number;
|
|
4855
|
+
/** Con opciones, muestra el selector de filas por página. */
|
|
4856
|
+
pageSizeOptions?: number[];
|
|
4857
|
+
/** Conteo «1–25 de 1.234 procesos» a la izquierda (requiere `total`). */
|
|
4858
|
+
showCount: boolean;
|
|
4859
|
+
/** Sustantivo del conteo. */
|
|
4860
|
+
countNoun: string;
|
|
4861
|
+
/** Páginas vecinas a cada lado de la actual (`numbered`). */
|
|
4862
|
+
siblingCount: number;
|
|
4863
|
+
/** Páginas fijas en cada extremo (`numbered`). */
|
|
4864
|
+
boundaryCount: number;
|
|
4865
|
+
/** Tamaño de la fila. */
|
|
4866
|
+
size: IusPaginationSize;
|
|
4867
|
+
/** Deshabilita toda la navegación. */
|
|
4868
|
+
disabled: boolean;
|
|
4869
|
+
/** Cambio de página, base 1 (original `onPageChange`). */
|
|
4870
|
+
readonly pageChange: EventEmitter<number>;
|
|
4871
|
+
/** Cambio de filas por página (original `onPageSizeChange`). */
|
|
4872
|
+
readonly pageSizeChange: EventEmitter<number>;
|
|
4873
|
+
private readonly internalPage;
|
|
4874
|
+
ngOnInit(): void;
|
|
4875
|
+
protected get preset(): {
|
|
4876
|
+
h: number;
|
|
4877
|
+
icon: string;
|
|
4878
|
+
fs: string;
|
|
4879
|
+
gap: number;
|
|
4880
|
+
};
|
|
4881
|
+
protected get currentPage(): number;
|
|
4882
|
+
protected get effTotalPages(): number;
|
|
4883
|
+
protected get atStart(): boolean;
|
|
4884
|
+
protected get atEnd(): boolean;
|
|
4885
|
+
protected get pageRows(): PageRow[];
|
|
4886
|
+
protected get hasPageSizeOptions(): boolean;
|
|
4887
|
+
protected get showCountBlock(): boolean;
|
|
4888
|
+
protected get countRanged(): boolean;
|
|
4889
|
+
protected get countFrom(): string;
|
|
4890
|
+
protected get countTo(): string;
|
|
4891
|
+
protected fmt(n: number): string;
|
|
4892
|
+
protected goTo(next: number): void;
|
|
4893
|
+
protected onSelectPage(value: number | null): void;
|
|
4894
|
+
protected onSelectPageSize(value: number | null): void;
|
|
4895
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PaginationComponent, never>;
|
|
4896
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PaginationComponent, "ius-pagination", never, { "variant": { "alias": "variant"; "required": false; }; "page": { "alias": "page"; "required": false; }; "defaultPage": { "alias": "defaultPage"; "required": false; }; "totalPages": { "alias": "totalPages"; "required": false; }; "total": { "alias": "total"; "required": false; }; "pageSize": { "alias": "pageSize"; "required": false; }; "pageSizeOptions": { "alias": "pageSizeOptions"; "required": false; }; "showCount": { "alias": "showCount"; "required": false; }; "countNoun": { "alias": "countNoun"; "required": false; }; "siblingCount": { "alias": "siblingCount"; "required": false; }; "boundaryCount": { "alias": "boundaryCount"; "required": false; }; "size": { "alias": "size"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "pageChange": "pageChange"; "pageSizeChange": "pageSizeChange"; }, never, never, true, never>;
|
|
4897
|
+
static ngAcceptInputType_defaultPage: unknown;
|
|
4898
|
+
static ngAcceptInputType_pageSize: unknown;
|
|
4899
|
+
static ngAcceptInputType_showCount: unknown;
|
|
4900
|
+
static ngAcceptInputType_siblingCount: unknown;
|
|
4901
|
+
static ngAcceptInputType_boundaryCount: unknown;
|
|
4902
|
+
static ngAcceptInputType_disabled: unknown;
|
|
4903
|
+
}
|
|
4904
|
+
|
|
4557
4905
|
/**
|
|
4558
4906
|
* Un paso del asistente.
|
|
4559
4907
|
*
|
|
@@ -4593,16 +4941,21 @@ interface WizardApi {
|
|
|
4593
4941
|
goTo(next: number | ((prev: number) => number)): void;
|
|
4594
4942
|
}
|
|
4595
4943
|
interface UseWizardOptions {
|
|
4596
|
-
/**
|
|
4597
|
-
|
|
4944
|
+
/**
|
|
4945
|
+
* Pasos del flujo. Con un `Signal` la lista es reactiva (el golden recalcula
|
|
4946
|
+
* `total` en cada render): `total`, `current` e `isLast` siguen sus cambios
|
|
4947
|
+
* y el paso se acota al nuevo total.
|
|
4948
|
+
*/
|
|
4949
|
+
steps: WizardStep[] | Signal<WizardStep[]>;
|
|
4598
4950
|
/** Paso inicial (no controlado). Default 1. */
|
|
4599
4951
|
defaultStep?: number;
|
|
4600
4952
|
/**
|
|
4601
|
-
* Paso
|
|
4602
|
-
*
|
|
4603
|
-
*
|
|
4953
|
+
* Paso controlado (1-based). Con un `Signal` el estado lo gobierna el
|
|
4954
|
+
* consumidor, como en el golden: `api.step` lo lee y `next`/`back`/`goTo` solo
|
|
4955
|
+
* avisan por `onStepChange`, que es quien debe actualizarlo. Un número fijo
|
|
4956
|
+
* solo siembra el paso inicial (no hay re-render que lo vuelva a pasar).
|
|
4604
4957
|
*/
|
|
4605
|
-
step?: number
|
|
4958
|
+
step?: number | Signal<number>;
|
|
4606
4959
|
/** Cambio de paso (recibe el nuevo paso 1-based). */
|
|
4607
4960
|
onStepChange?: (step: number) => void;
|
|
4608
4961
|
/** Se dispara al pulsar "siguiente" en el último paso (cierre del flujo). */
|
|
@@ -4610,18 +4963,24 @@ interface UseWizardOptions {
|
|
|
4610
4963
|
}
|
|
4611
4964
|
/**
|
|
4612
4965
|
* Controller de estado del Wizard — equivalente Angular del hook `Wizard.use`
|
|
4613
|
-
* de React (ng-spec §2).
|
|
4966
|
+
* de React (ng-spec §2). Pasos y paso viven en signals, así que leer
|
|
4614
4967
|
* `api.step` / `api.current` / `api.isLast` en una plantilla registra la
|
|
4615
4968
|
* dependencia y refresca los componentes `OnPush` que consumen la `api`.
|
|
4969
|
+
*
|
|
4970
|
+
* El constructor no escribe en ningún signal: se puede crear dentro de un
|
|
4971
|
+
* `computed`.
|
|
4616
4972
|
*/
|
|
4617
4973
|
declare class WizardController implements WizardApi {
|
|
4618
|
-
readonly
|
|
4619
|
-
private readonly
|
|
4620
|
-
/**
|
|
4974
|
+
private readonly stepsSource;
|
|
4975
|
+
private readonly stepSource;
|
|
4976
|
+
/** Solo existe en modo no controlado. */
|
|
4977
|
+
private readonly internal?;
|
|
4978
|
+
/** Señal de solo lectura del paso (1-based, acotado al total). */
|
|
4621
4979
|
readonly step$: Signal<number>;
|
|
4622
4980
|
private readonly onStepChange?;
|
|
4623
4981
|
private readonly onFinish?;
|
|
4624
4982
|
constructor(options: UseWizardOptions);
|
|
4983
|
+
get steps(): WizardStep[];
|
|
4625
4984
|
get total(): number;
|
|
4626
4985
|
get step(): number;
|
|
4627
4986
|
get index(): number;
|
|
@@ -4648,12 +5007,8 @@ declare function createWizard(options: UseWizardOptions): WizardApi;
|
|
|
4648
5007
|
* misma `api`. Distinto del `Stepper` (indicador display-only).
|
|
4649
5008
|
*
|
|
4650
5009
|
* El estado lo gobierna el controller `createWizard(...)` (ver `wizard.ts`),
|
|
4651
|
-
* espejo del hook `Wizard.use` de React (ng-spec §2).
|
|
4652
|
-
*
|
|
4653
|
-
* Nota del port: el indicador por defecto del golden es `LinearProgressBar`
|
|
4654
|
-
* (aún no portado); aquí se inlinea su modo "steps" (`.ius-lpb`, fill/rest)
|
|
4655
|
-
* fiel al golden. Cuando exista `ius-linear-progress-bar`, reemplazar por
|
|
4656
|
-
* composición sin cambiar la API. `indicator` permite pasar un nodo propio.
|
|
5010
|
+
* espejo del hook `Wizard.use` de React (ng-spec §2). El indicador por defecto
|
|
5011
|
+
* es `ius-linear-progress-bar` en modo pasos; `indicator` lo reemplaza.
|
|
4657
5012
|
*/
|
|
4658
5013
|
declare class WizardComponent {
|
|
4659
5014
|
/** API de `createWizard(...)`. */
|
|
@@ -4668,9 +5023,6 @@ declare class WizardComponent {
|
|
|
4668
5023
|
stepWord: string;
|
|
4669
5024
|
/** Palabra para "de". */
|
|
4670
5025
|
ofWord: string;
|
|
4671
|
-
/** Porcentaje del indicador (step/total), espejo del modo stepped del LPB. */
|
|
4672
|
-
protected get percent(): number;
|
|
4673
|
-
protected get ariaNow(): number;
|
|
4674
5026
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<WizardComponent, never>;
|
|
4675
5027
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<WizardComponent, "ius-wizard", never, { "api": { "alias": "api"; "required": true; }; "showIndicator": { "alias": "showIndicator"; "required": false; }; "indicator": { "alias": "indicator"; "required": false; }; "showStepLabel": { "alias": "showStepLabel"; "required": false; }; "stepWord": { "alias": "stepWord"; "required": false; }; "ofWord": { "alias": "ofWord"; "required": false; }; }, {}, never, never, true, never>;
|
|
4676
5028
|
static ngAcceptInputType_showIndicator: unknown;
|
|
@@ -6257,12 +6609,33 @@ type IusToastPosition = 'top-right' | 'top-left' | 'top-center' | 'bottom-right'
|
|
|
6257
6609
|
declare const IUS_TOAST_DEFAULT_ICON: Record<IusToastTone, string>;
|
|
6258
6610
|
/** Auto-cierre por defecto, en ms (golden: `duration === undefined ? 5000`). */
|
|
6259
6611
|
declare const IUS_TOAST_DEFAULT_DURATION = 5000;
|
|
6612
|
+
/**
|
|
6613
|
+
* Contexto con el que se pinta la plantilla `action`.
|
|
6614
|
+
*
|
|
6615
|
+
* En el golden `action` es un `ReactNode` que se arma en cada llamada y lleva
|
|
6616
|
+
* en su closure los datos de ESE toast. Una `TemplateRef` se declara una sola
|
|
6617
|
+
* vez, así que los datos le llegan aquí: una misma plantilla sirve a varios
|
|
6618
|
+
* toasts vivos a la vez.
|
|
6619
|
+
*
|
|
6620
|
+
* ```html
|
|
6621
|
+
* <ng-template #abrirTpl let-reporte let-dismiss="dismiss">
|
|
6622
|
+
* <ius-text-button size="small" label="Abrir" (clicked)="abrir(reporte); dismiss()" />
|
|
6623
|
+
* </ng-template>
|
|
6624
|
+
* ```
|
|
6625
|
+
*/
|
|
6626
|
+
interface IusToastActionContext<T = unknown> {
|
|
6627
|
+
/** El `actionContext` del toast (`let-x`). */
|
|
6628
|
+
$implicit: T;
|
|
6629
|
+
/** Cierra este toast con su animación de salida, igual que el ×. */
|
|
6630
|
+
dismiss: () => void;
|
|
6631
|
+
}
|
|
6260
6632
|
/**
|
|
6261
6633
|
* Opciones con las que `ToastService` dispara un toast.
|
|
6262
6634
|
*
|
|
6263
6635
|
* Nota de port: `action` es `React.ReactNode` en el golden; por la regla
|
|
6264
6636
|
* transversal 6 del monorepo (render/content de React → `TemplateRef`) aquí
|
|
6265
|
-
* viaja como plantilla, que es lo único proyectable desde una llamada TS.
|
|
6637
|
+
* viaja como plantilla, que es lo único proyectable desde una llamada TS. Los
|
|
6638
|
+
* datos que el golden captura en el closure viajan en `actionContext`.
|
|
6266
6639
|
*/
|
|
6267
6640
|
interface IusToastOptions {
|
|
6268
6641
|
/** id propio; reutilizarlo REEMPLAZA el toast existente (útil para progreso). */
|
|
@@ -6276,6 +6649,8 @@ interface IusToastOptions {
|
|
|
6276
6649
|
icon?: string | false;
|
|
6277
6650
|
/** Acción inline (p. ej. un `ius-text-button` "Deshacer"). */
|
|
6278
6651
|
action?: TemplateRef<unknown>;
|
|
6652
|
+
/** Datos de este toast para la plantilla `action` (ver `IusToastActionContext`). */
|
|
6653
|
+
actionContext?: unknown;
|
|
6279
6654
|
/** Muestra el × de cierre. Default `true`. */
|
|
6280
6655
|
closable?: boolean;
|
|
6281
6656
|
/** ms hasta el auto-cierre. `0`/`null` = persistente. Default 5000. */
|
|
@@ -6289,6 +6664,7 @@ interface IusToastItem {
|
|
|
6289
6664
|
readonly message?: string;
|
|
6290
6665
|
readonly icon?: string | false;
|
|
6291
6666
|
readonly action?: TemplateRef<unknown>;
|
|
6667
|
+
readonly actionContext?: unknown;
|
|
6292
6668
|
readonly closable: boolean;
|
|
6293
6669
|
readonly duration: number | null;
|
|
6294
6670
|
}
|
|
@@ -6331,6 +6707,8 @@ declare class ToastComponent {
|
|
|
6331
6707
|
readonly icon: _angular_core.InputSignal<string | false | undefined>;
|
|
6332
6708
|
/** Acción inline como plantilla (vía `ToastService`). */
|
|
6333
6709
|
readonly action: _angular_core.InputSignal<TemplateRef<unknown> | undefined>;
|
|
6710
|
+
/** Datos para `action`: llegan como `$implicit` de su contexto. */
|
|
6711
|
+
readonly actionContext: _angular_core.InputSignal<unknown>;
|
|
6334
6712
|
/** Muestra el × de cierre. */
|
|
6335
6713
|
readonly closable: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
6336
6714
|
/**
|
|
@@ -6345,11 +6723,13 @@ declare class ToastComponent {
|
|
|
6345
6723
|
readonly closed: _angular_core.OutputEmitterRef<void>;
|
|
6346
6724
|
private readonly actionRef;
|
|
6347
6725
|
protected readonly iconName: _angular_core.Signal<string | null>;
|
|
6726
|
+
private readonly dismiss;
|
|
6727
|
+
protected readonly actionOutletContext: _angular_core.Signal<IusToastActionContext<unknown>>;
|
|
6348
6728
|
protected readonly hasAction: _angular_core.Signal<boolean>;
|
|
6349
6729
|
/** Solo hay aro si el auto-cierre está activo (golden: `duration && duration > 0`). */
|
|
6350
6730
|
protected readonly showRing: _angular_core.Signal<boolean>;
|
|
6351
6731
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ToastComponent, never>;
|
|
6352
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ToastComponent, "ius-toast", never, { "tone": { "alias": "tone"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "message": { "alias": "message"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "action": { "alias": "action"; "required": false; "isSignal": true; }; "closable": { "alias": "closable"; "required": false; "isSignal": true; }; "duration": { "alias": "duration"; "required": false; "isSignal": true; }; "paused": { "alias": "paused"; "required": false; "isSignal": true; }; }, { "closed": "closed"; }, ["actionRef"], ["[iusToastAction]"], true, never>;
|
|
6732
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ToastComponent, "ius-toast", never, { "tone": { "alias": "tone"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "message": { "alias": "message"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "action": { "alias": "action"; "required": false; "isSignal": true; }; "actionContext": { "alias": "actionContext"; "required": false; "isSignal": true; }; "closable": { "alias": "closable"; "required": false; "isSignal": true; }; "duration": { "alias": "duration"; "required": false; "isSignal": true; }; "paused": { "alias": "paused"; "required": false; "isSignal": true; }; }, { "closed": "closed"; }, ["actionRef"], ["[iusToastAction]"], true, never>;
|
|
6353
6733
|
}
|
|
6354
6734
|
|
|
6355
6735
|
/**
|
|
@@ -6407,6 +6787,9 @@ type ToneShortcutOptions = Omit<IusToastOptions, 'tone' | 'title'>;
|
|
|
6407
6787
|
* // persistente + acción "Deshacer"
|
|
6408
6788
|
* const id = this.toasts.show({ tone: 'neutral', title: 'Nota archivada', duration: 0, action: this.undoTpl() });
|
|
6409
6789
|
* this.toasts.dismiss(id);
|
|
6790
|
+
*
|
|
6791
|
+
* // una plantilla para varios toasts: cada uno lleva sus datos
|
|
6792
|
+
* this.toasts.success('Reporte listo', { action: this.abrirTpl(), actionContext: reporte });
|
|
6410
6793
|
* ```
|
|
6411
6794
|
*/
|
|
6412
6795
|
declare class ToastService {
|
|
@@ -6956,7 +7339,28 @@ type IusTableSize = 'small' | 'medium' | 'large';
|
|
|
6956
7339
|
type IusTableTone = 'info' | 'primary' | 'success' | 'warning' | 'danger' | 'neutral' | 'durazno' | 'banano' | 'sandia' | 'arandano' | 'uva' | 'aguacate';
|
|
6957
7340
|
/** Clave estable de fila: nombre de campo o función. */
|
|
6958
7341
|
type IusTableRowKey<Row> = string | ((row: Row, index: number) => string | number);
|
|
6959
|
-
/**
|
|
7342
|
+
/** Clave de fila hija: nombre de campo o función `(hija, grupo)`. */
|
|
7343
|
+
type IusTableChildRowKey<Row> = string | ((child: Row, parent: Row) => string | number);
|
|
7344
|
+
/** Texto accesible fijo o por fila. */
|
|
7345
|
+
type IusTableRowLabel<Row> = string | ((row: Row, index: number) => string);
|
|
7346
|
+
/** Metadatos de la fila (filas agrupadas). Llega a las celdas y a `rowClick`. */
|
|
7347
|
+
interface IusTableRowMeta<Row = any> {
|
|
7348
|
+
/** `true` en una fila hija de un grupo. */
|
|
7349
|
+
isChild: boolean;
|
|
7350
|
+
/** Fila grupo de la hija (`null` en filas de primer nivel). */
|
|
7351
|
+
parent: Row | null;
|
|
7352
|
+
/** Clave del grupo de la hija. */
|
|
7353
|
+
parentKey: string | number | null;
|
|
7354
|
+
/** 0 = primer nivel · 1 = hija. */
|
|
7355
|
+
depth: number;
|
|
7356
|
+
/** `true` si `getChildren` devolvió hijas para la fila. */
|
|
7357
|
+
isGroup: boolean;
|
|
7358
|
+
/** Grupo abierto. */
|
|
7359
|
+
expanded: boolean;
|
|
7360
|
+
/** Índice de la fila (en `data` o entre las hijas de su grupo). */
|
|
7361
|
+
index: number;
|
|
7362
|
+
}
|
|
7363
|
+
/** Contexto que recibe el `TemplateRef` de celda (`render(row, i, meta)` del golden). */
|
|
6960
7364
|
interface IusTableCellContext<Row = any> {
|
|
6961
7365
|
$implicit: Row;
|
|
6962
7366
|
row: Row;
|
|
@@ -6964,12 +7368,23 @@ interface IusTableCellContext<Row = any> {
|
|
|
6964
7368
|
column: IusTableColumn<Row>;
|
|
6965
7369
|
/** `row[column.key]` ya leído, por comodidad. */
|
|
6966
7370
|
value: unknown;
|
|
7371
|
+
/**
|
|
7372
|
+
* Metadatos de la fila (filas agrupadas). `ius-table` siempre lo entrega;
|
|
7373
|
+
* es opcional en el tipo para no romper contextos armados a mano (pruebas).
|
|
7374
|
+
*/
|
|
7375
|
+
meta?: IusTableRowMeta<Row>;
|
|
6967
7376
|
}
|
|
6968
7377
|
/** Contexto del `TemplateRef` de encabezado (`header` como nodo en el golden). */
|
|
6969
7378
|
interface IusTableHeaderContext<Row = any> {
|
|
6970
7379
|
$implicit: IusTableColumn<Row>;
|
|
6971
7380
|
column: IusTableColumn<Row>;
|
|
6972
7381
|
}
|
|
7382
|
+
/** Contexto del `TemplateRef` de detalle (`renderExpanded(row, i)` del golden). */
|
|
7383
|
+
interface IusTableExpandedContext<Row = any> {
|
|
7384
|
+
$implicit: Row;
|
|
7385
|
+
row: Row;
|
|
7386
|
+
index: number;
|
|
7387
|
+
}
|
|
6973
7388
|
interface IusTableColumn<Row = any> {
|
|
6974
7389
|
/** Identificador único de la columna. Lee `row[key]` si no hay `render`. */
|
|
6975
7390
|
key: string;
|
|
@@ -6981,8 +7396,12 @@ interface IusTableColumn<Row = any> {
|
|
|
6981
7396
|
headerIcon?: string;
|
|
6982
7397
|
/** `title` nativo del encabezado (tooltip). */
|
|
6983
7398
|
headerTitle?: string;
|
|
6984
|
-
/** Render de celda a medida (`render(row, i)` del golden → TemplateRef con `{ row, index }`). */
|
|
7399
|
+
/** Render de celda a medida (`render(row, i, meta)` del golden → TemplateRef con `{ row, index, meta }`). */
|
|
6985
7400
|
render?: TemplateRef<IusTableCellContext<Row>>;
|
|
7401
|
+
/** Valor de orden de la celda. Ordena las **filas hijas** entre sí con `sortColumn`; si falta, compara `row[key]`. */
|
|
7402
|
+
sortValue?: (row: Row) => string | number | null | undefined;
|
|
7403
|
+
/** Marca de celda vacía de esta columna (sin `render` y `row[key]` nulo o `''`). `''` deja la celda en blanco. Gana sobre `emptyCell` de la tabla. */
|
|
7404
|
+
emptyCell?: string;
|
|
6986
7405
|
/** Alineación del contenido. Default `start` (o `end` si `numeric`). */
|
|
6987
7406
|
align?: IusTableAlign;
|
|
6988
7407
|
/** Columna numérica: `tabular-nums` y alineación `end` por defecto. */
|
|
@@ -7016,14 +7435,49 @@ interface IusTableSortChange {
|
|
|
7016
7435
|
column: string | null;
|
|
7017
7436
|
direction: IusTableSortDirection | null;
|
|
7018
7437
|
}
|
|
7019
|
-
/** Payload de `rowClick` — `onRowClick(row, index, event)`. */
|
|
7438
|
+
/** Payload de `rowClick` — `onRowClick(row, index, event, meta)`. */
|
|
7020
7439
|
interface IusTableRowClick<Row = any> {
|
|
7021
7440
|
row: Row;
|
|
7022
7441
|
index: number;
|
|
7023
7442
|
event: MouseEvent | KeyboardEvent;
|
|
7443
|
+
meta: IusTableRowMeta<Row>;
|
|
7024
7444
|
}
|
|
7025
7445
|
/** Estilo inline por fila (objeto CSS que acepta el binding `[style]`). */
|
|
7026
7446
|
type IusTableRowStyle = Record<string, string | number | null | undefined>;
|
|
7447
|
+
type Key = string | number;
|
|
7448
|
+
interface GroupKid<Row> {
|
|
7449
|
+
row: Row;
|
|
7450
|
+
index: number;
|
|
7451
|
+
key: Key;
|
|
7452
|
+
}
|
|
7453
|
+
interface GroupInfo<Row> {
|
|
7454
|
+
key: Key;
|
|
7455
|
+
kids: GroupKid<Row>[];
|
|
7456
|
+
}
|
|
7457
|
+
/** Fila ya resuelta para la plantilla: datos, hija o detalle expandido. */
|
|
7458
|
+
interface BodyRow<Row> {
|
|
7459
|
+
kind: 'row' | 'detail';
|
|
7460
|
+
track: string;
|
|
7461
|
+
row: Row;
|
|
7462
|
+
index: number;
|
|
7463
|
+
key: Key;
|
|
7464
|
+
meta: IusTableRowMeta<Row>;
|
|
7465
|
+
group: GroupInfo<Row> | null;
|
|
7466
|
+
parentGroup: GroupInfo<Row> | null;
|
|
7467
|
+
disabled: boolean;
|
|
7468
|
+
checked: boolean;
|
|
7469
|
+
indeterminate: boolean;
|
|
7470
|
+
clickable: boolean;
|
|
7471
|
+
cls: string | null;
|
|
7472
|
+
style: IusTableRowStyle | null;
|
|
7473
|
+
accent: string | null;
|
|
7474
|
+
expOk: boolean;
|
|
7475
|
+
open: boolean;
|
|
7476
|
+
}
|
|
7477
|
+
interface Thumb {
|
|
7478
|
+
pos: number;
|
|
7479
|
+
size: number;
|
|
7480
|
+
}
|
|
7027
7481
|
/**
|
|
7028
7482
|
* Table — Ius Design v2.
|
|
7029
7483
|
*
|
|
@@ -7036,14 +7490,17 @@ type IusTableRowStyle = Record<string, string | number | null | undefined>;
|
|
|
7036
7490
|
* Es una **tabla controlada**: el consumidor mantiene los datos ya ordenados,
|
|
7037
7491
|
* filtrados y paginados, y el estado de orden/selección; `ius-table` solo
|
|
7038
7492
|
* pinta la rejilla y emite los cambios (`sortChange`, `selectionChange`,
|
|
7039
|
-
* `rowClick`). No ordena ni pagina por dentro.
|
|
7493
|
+
* `rowClick`). No ordena ni pagina por dentro. Admite **filas expandibles**
|
|
7494
|
+
* (`expandable` + `renderExpanded`) y **filas agrupadas** (`getChildren`).
|
|
7040
7495
|
*
|
|
7041
7496
|
* **Composición**: para la barra de herramientas y la paginación numerada del
|
|
7042
7497
|
* pie, envolverla en `ius-list-view` (`bordered=false` en ambos). Compone
|
|
7043
|
-
* `ius-checkbox` (selección)
|
|
7498
|
+
* `ius-checkbox` (selección), `ius-icon-button` (disparadores) y
|
|
7499
|
+
* `ius-empty-state` (vacío).
|
|
7044
7500
|
*
|
|
7045
7501
|
* Decisiones del port (golden `Table.jsx` / `Table.d.ts`):
|
|
7046
|
-
* - `render(row, i)` → `column.render: TemplateRef<IusTableCellContext>`;
|
|
7502
|
+
* - `render(row, i, meta)` → `column.render: TemplateRef<IusTableCellContext>`;
|
|
7503
|
+
* `renderExpanded(row, i)` → `TemplateRef<IusTableExpandedContext>`;
|
|
7047
7504
|
* `header` como nodo → `column.headerTemplate`; `empty` → `emptyTemplate`;
|
|
7048
7505
|
* `summary[].value` como nodo → `summary[].template`.
|
|
7049
7506
|
* - En React la sola presencia de `onRowClick` hace la fila clicable/enfocable.
|
|
@@ -7051,9 +7508,19 @@ type IusTableRowStyle = Record<string, string | number | null | undefined>;
|
|
|
7051
7508
|
* `rowClickable` + output `rowClick`.
|
|
7052
7509
|
* - `rowStyle` es un objeto CSS (o función que lo devuelve) consumido por el
|
|
7053
7510
|
* binding `[style]`; se combina con la atenuación de `isRowDisabled`.
|
|
7511
|
+
* - `emptyCell` es texto. Un `TemplateRef` no delata si pinta vacío, así que
|
|
7512
|
+
* la marca aplica a las celdas sin `render`; con `render`, la plantilla
|
|
7513
|
+
* decide qué pintar (p. ej. nada en las hijas, usando `meta`).
|
|
7514
|
+
* - `title` de celda: el texto del valor sin `render`. Con `render` el golden usa
|
|
7515
|
+
* el string que devuelve; un `TemplateRef` no lo expone, así que va
|
|
7516
|
+
* `headerTitle` (la plantilla puede poner su propio `title`).
|
|
7517
|
+
* - Barra superpuesta: el scroll nativo se oculta y el thumb lo dibuja el
|
|
7518
|
+
* host, acotado entre cabecera fija y resumen (altos medidos con
|
|
7519
|
+
* ResizeObserver). Sin prop pública.
|
|
7054
7520
|
*/
|
|
7055
7521
|
declare class TableComponent<Row = any> {
|
|
7056
7522
|
private readonly document;
|
|
7523
|
+
private readonly uid;
|
|
7057
7524
|
private readonly scrollRef;
|
|
7058
7525
|
private readonly tableRef;
|
|
7059
7526
|
/** Definición de columnas, en orden de aparición. */
|
|
@@ -7069,7 +7536,7 @@ declare class TableComponent<Row = any> {
|
|
|
7069
7536
|
/** Muestra la columna de checkboxes + "Seleccionar todo" en la cabecera. */
|
|
7070
7537
|
readonly selectable: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
7071
7538
|
/** Claves seleccionadas (controlado). */
|
|
7072
|
-
readonly selectedKeys: _angular_core.InputSignal<readonly
|
|
7539
|
+
readonly selectedKeys: _angular_core.InputSignal<readonly Key[] | null | undefined>;
|
|
7073
7540
|
/** Etiqueta accesible del checkbox de fila. Default `Seleccionar fila`. */
|
|
7074
7541
|
readonly selectAriaLabel: _angular_core.InputSignal<string>;
|
|
7075
7542
|
/** Hace la fila enfocable y clicable (emite `rowClick`). Equivale a pasar `onRowClick` en el golden. */
|
|
@@ -7082,6 +7549,34 @@ declare class TableComponent<Row = any> {
|
|
|
7082
7549
|
readonly rowClassName: _angular_core.InputSignal<string | ((row: Row, index: number) => string | undefined) | undefined>;
|
|
7083
7550
|
/** Estilo inline por fila (o función `(row, i) => estilo`). Se combina con la atenuación de `isRowDisabled`. */
|
|
7084
7551
|
readonly rowStyle: _angular_core.InputSignal<IusTableRowStyle | ((row: Row, index: number) => IusTableRowStyle | undefined) | undefined>;
|
|
7552
|
+
/** Activa filas expandibles (o función por fila; `false` deja la celda del disparador vacía). Requiere `renderExpanded`. */
|
|
7553
|
+
readonly expandable: _angular_core.InputSignalWithTransform<boolean | ((row: Row, index: number) => boolean), string | boolean | ((row: Row, index: number) => boolean) | null | undefined>;
|
|
7554
|
+
/** Detalle bajo la fila abierta: fila a todo el ancho, fondo `surface-sunken`. */
|
|
7555
|
+
readonly renderExpanded: _angular_core.InputSignal<TemplateRef<IusTableExpandedContext<Row>> | undefined>;
|
|
7556
|
+
/** Claves de las filas abiertas (controlado; `undefined` = no controlado). */
|
|
7557
|
+
readonly expandedKeys: _angular_core.InputSignal<readonly Key[] | null | undefined>;
|
|
7558
|
+
/** Claves abiertas al montar (no controlado). */
|
|
7559
|
+
readonly defaultExpandedKeys: _angular_core.InputSignal<readonly Key[] | undefined>;
|
|
7560
|
+
/** `multiple` permite varias abiertas; `single` cierra la anterior. */
|
|
7561
|
+
readonly expandMode: _angular_core.InputSignal<"single" | "multiple">;
|
|
7562
|
+
/** Etiqueta accesible del botón de abrir (texto o función por fila). */
|
|
7563
|
+
readonly expandAriaLabel: _angular_core.InputSignal<IusTableRowLabel<Row>>;
|
|
7564
|
+
/** Hijas de una fila: si devuelve elementos, la fila es grupo y las abre en las mismas columnas. */
|
|
7565
|
+
readonly getChildren: _angular_core.InputSignal<((row: Row) => readonly Row[] | null | undefined) | undefined>;
|
|
7566
|
+
/** Clave de cada hija (campo o función). Default `claveGrupo·índice`. */
|
|
7567
|
+
readonly childRowKey: _angular_core.InputSignal<IusTableChildRowKey<Row> | undefined>;
|
|
7568
|
+
/** Grupos abiertos (controlado; `undefined` = no controlado). */
|
|
7569
|
+
readonly expandedGroups: _angular_core.InputSignal<readonly Key[] | null | undefined>;
|
|
7570
|
+
/** Grupos abiertos al montar (no controlado). */
|
|
7571
|
+
readonly defaultExpandedGroups: _angular_core.InputSignal<readonly Key[] | undefined>;
|
|
7572
|
+
/** `cascade`: el grupo marca sus hijas (indeterminado si son algunas). `independent`: cada fila por separado. */
|
|
7573
|
+
readonly childSelection: _angular_core.InputSignal<"independent" | "cascade">;
|
|
7574
|
+
/** Etiqueta accesible del disparador del grupo. */
|
|
7575
|
+
readonly groupToggleAriaLabel: _angular_core.InputSignal<IusTableRowLabel<Row>>;
|
|
7576
|
+
/** Fondo de las hijas: `sunken` o `none` (la jerarquía la marca solo la sangría). */
|
|
7577
|
+
readonly childRowTone: _angular_core.InputSignal<"none" | "sunken">;
|
|
7578
|
+
/** Marca de celda vacía. Default `—`; `''` deja la celda en blanco. */
|
|
7579
|
+
readonly emptyCell: _angular_core.InputSignal<string>;
|
|
7085
7580
|
/** Redimensionado de columnas por arrastre del borde de la cabecera. Default `true`. */
|
|
7086
7581
|
readonly resizable: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
7087
7582
|
/** Divisores verticales hairline entre columnas. Default `true`. */
|
|
@@ -7108,40 +7603,76 @@ declare class TableComponent<Row = any> {
|
|
|
7108
7603
|
readonly stickyHeader: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
7109
7604
|
/** Fila de pie fija (totales/sumas) por columna. */
|
|
7110
7605
|
readonly summary: _angular_core.InputSignal<readonly IusTableSummaryCell[] | null | undefined>;
|
|
7111
|
-
/** Alto fijo
|
|
7606
|
+
/** Alto fijo de la tabla (px o CSS; con `100%` ocupa el alto de su contenedor). Activa el scroll vertical. */
|
|
7112
7607
|
readonly height: _angular_core.InputSignal<string | number | undefined>;
|
|
7113
|
-
/** Alto máximo (px o CSS). */
|
|
7608
|
+
/** Alto máximo del área con scroll (px o CSS). */
|
|
7114
7609
|
readonly maxHeight: _angular_core.InputSignal<string | number | undefined>;
|
|
7115
7610
|
/** Etiqueta accesible de la tabla. */
|
|
7116
7611
|
readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
|
|
7117
7612
|
/** Cambio de orden al clicar una cabecera `sortable` (tri-estado asc → desc → ninguno). */
|
|
7118
7613
|
readonly sortChange: _angular_core.OutputEmitterRef<IusTableSortChange>;
|
|
7119
7614
|
/** Nuevo conjunto de claves seleccionadas. */
|
|
7120
|
-
readonly selectionChange: _angular_core.OutputEmitterRef<
|
|
7615
|
+
readonly selectionChange: _angular_core.OutputEmitterRef<Key[]>;
|
|
7121
7616
|
/** Click/Enter/Espacio sobre una fila (requiere `rowClickable`). */
|
|
7122
7617
|
readonly rowClick: _angular_core.OutputEmitterRef<IusTableRowClick<Row>>;
|
|
7618
|
+
/** Nuevo conjunto de filas abiertas (expandibles). */
|
|
7619
|
+
readonly expandedChange: _angular_core.OutputEmitterRef<Key[]>;
|
|
7620
|
+
/** Nuevo conjunto de grupos abiertos. */
|
|
7621
|
+
readonly expandedGroupsChange: _angular_core.OutputEmitterRef<Key[]>;
|
|
7123
7622
|
protected readonly scrolledX: _angular_core.WritableSignal<boolean>;
|
|
7124
7623
|
protected readonly resizing: _angular_core.WritableSignal<boolean>;
|
|
7624
|
+
protected readonly barDrag: _angular_core.WritableSignal<boolean>;
|
|
7625
|
+
protected readonly fills: _angular_core.WritableSignal<boolean>;
|
|
7626
|
+
protected readonly bands: _angular_core.WritableSignal<{
|
|
7627
|
+
head: number;
|
|
7628
|
+
foot: number;
|
|
7629
|
+
}>;
|
|
7630
|
+
protected readonly headH: _angular_core.Signal<string>;
|
|
7631
|
+
protected readonly footH: _angular_core.Signal<string>;
|
|
7632
|
+
protected readonly vThumb: _angular_core.WritableSignal<Thumb | null>;
|
|
7633
|
+
protected readonly hThumb: _angular_core.WritableSignal<Thumb | null>;
|
|
7125
7634
|
/** Anchos medidos / redimensionados por `key` (px). */
|
|
7126
7635
|
private readonly colW;
|
|
7127
7636
|
private readonly measured;
|
|
7637
|
+
private readonly innerExp;
|
|
7638
|
+
private readonly innerGrp;
|
|
7128
7639
|
protected readonly cols: _angular_core.Signal<IusTableColumn<Row>[]>;
|
|
7640
|
+
protected readonly hasExpand: _angular_core.Signal<boolean>;
|
|
7641
|
+
protected readonly hasGroups: _angular_core.Signal<boolean>;
|
|
7129
7642
|
protected readonly colCount: _angular_core.Signal<number>;
|
|
7130
|
-
protected readonly selWidth: _angular_core.Signal<
|
|
7643
|
+
protected readonly selWidth: _angular_core.Signal<44 | 40 | 52>;
|
|
7131
7644
|
protected readonly isEmpty: _angular_core.Signal<boolean>;
|
|
7132
7645
|
protected readonly tableLayout: _angular_core.Signal<"auto" | "fixed">;
|
|
7133
7646
|
protected readonly skeletonIdx: _angular_core.Signal<number[]>;
|
|
7134
7647
|
protected readonly showSummary: _angular_core.Signal<boolean>;
|
|
7135
7648
|
/** Firma de estructura: al cambiar, se descartan los anchos medidos. */
|
|
7136
7649
|
private readonly colsSig;
|
|
7650
|
+
private readonly expList;
|
|
7651
|
+
private readonly grpList;
|
|
7652
|
+
private readonly expSet;
|
|
7653
|
+
private readonly grpSet;
|
|
7654
|
+
/** Hijas por grupo, ordenadas entre sí con la columna de orden activa. */
|
|
7655
|
+
private readonly groupsInfo;
|
|
7137
7656
|
private readonly selSet;
|
|
7657
|
+
private readonly cascade;
|
|
7138
7658
|
private readonly allKeys;
|
|
7139
7659
|
protected readonly allSelected: _angular_core.Signal<boolean>;
|
|
7140
7660
|
protected readonly someSelected: _angular_core.Signal<boolean>;
|
|
7661
|
+
protected readonly bodyRows: _angular_core.Signal<BodyRow<Row>[]>;
|
|
7141
7662
|
private readonly pinInfo;
|
|
7142
7663
|
constructor();
|
|
7143
|
-
protected keyOf(row: Row, rowKey: IusTableRowKey<Row>, i: number):
|
|
7144
|
-
|
|
7664
|
+
protected keyOf(row: Row, rowKey: IusTableRowKey<Row>, i: number): Key;
|
|
7665
|
+
private childKeyOf;
|
|
7666
|
+
/** Las hijas se ordenan entre sí con la columna activa; los grupos los ordena el consumidor. */
|
|
7667
|
+
private sortKids;
|
|
7668
|
+
private kidKeys;
|
|
7669
|
+
private selStateOf;
|
|
7670
|
+
private canExpand;
|
|
7671
|
+
protected labelOf(label: IusTableRowLabel<Row>, row: Row, i: number): string;
|
|
7672
|
+
private safeId;
|
|
7673
|
+
protected detailId(k: Key): string;
|
|
7674
|
+
protected childId(k: Key): string;
|
|
7675
|
+
protected childIds(g: GroupInfo<Row> | null): string | undefined;
|
|
7145
7676
|
protected alignOf(c: IusTableColumn<Row>): IusTableAlign;
|
|
7146
7677
|
protected dirOf(key: string): IusTableSortDirection | null;
|
|
7147
7678
|
protected sortIcon(key: string): string;
|
|
@@ -7155,32 +7686,44 @@ declare class TableComponent<Row = any> {
|
|
|
7155
7686
|
protected pinLeft(key: string): string | null;
|
|
7156
7687
|
protected pinRight(key: string): string | null;
|
|
7157
7688
|
protected readonly selKey = "__sel";
|
|
7689
|
+
protected readonly expKey = "__exp";
|
|
7158
7690
|
protected px(v: number | string | undefined | null): string | null;
|
|
7159
7691
|
protected cellValue(row: Row, c: IusTableColumn<Row>): unknown;
|
|
7160
7692
|
protected isBlank(v: unknown): boolean;
|
|
7693
|
+
protected emptyMarkOf(c: IusTableColumn<Row>): string;
|
|
7161
7694
|
protected cellTitle(row: Row, c: IusTableColumn<Row>): string | null;
|
|
7162
|
-
protected cellContext(
|
|
7695
|
+
protected cellContext(b: BodyRow<Row>, c: IusTableColumn<Row>): IusTableCellContext<Row>;
|
|
7163
7696
|
protected headerContext(c: IusTableColumn<Row>): IusTableHeaderContext<Row>;
|
|
7164
|
-
protected
|
|
7165
|
-
|
|
7166
|
-
|
|
7167
|
-
protected rowClass(row: Row, i: number): string | null;
|
|
7697
|
+
protected expandedContext(b: BodyRow<Row>): IusTableExpandedContext<Row>;
|
|
7698
|
+
private isDisabled;
|
|
7699
|
+
private rowClassOf;
|
|
7168
7700
|
/** `{ ...(disabled ? { opacity: .55 } : null), ...rowStyle }` del golden. */
|
|
7169
|
-
|
|
7701
|
+
private rowStylesOf;
|
|
7170
7702
|
/** Barra de acento (3px) sobre la primera celda de la fila; `null` = sin barra. */
|
|
7171
|
-
|
|
7703
|
+
private accentOf;
|
|
7172
7704
|
protected skelWidth(c: IusTableColumn<Row>, ci: number): string;
|
|
7173
7705
|
protected summaryCell(key: string): IusTableSummaryCell | undefined;
|
|
7174
7706
|
protected onScroll(): void;
|
|
7175
7707
|
protected onHeaderSort(col: IusTableColumn<Row>): void;
|
|
7176
|
-
|
|
7177
|
-
|
|
7178
|
-
|
|
7179
|
-
|
|
7708
|
+
/**
|
|
7709
|
+
* Selección controlada (como el Checkbox golden con `checked`): la casilla vuelve
|
|
7710
|
+
* al valor de `selectedKeys` y solo cambia cuando el consumidor lo actualiza. Sin
|
|
7711
|
+
* esto quedaría marcada si la selección no cambia (sin filas, todas deshabilitadas).
|
|
7712
|
+
*/
|
|
7713
|
+
protected toggleAll(checked: boolean, cbx: CheckboxComponent): void;
|
|
7714
|
+
protected toggleRow(b: BodyRow<Row>, checked: boolean, cbx: CheckboxComponent): void;
|
|
7715
|
+
protected toggleExpand(k: Key): void;
|
|
7716
|
+
protected toggleGroup(k: Key): void;
|
|
7717
|
+
protected onRowClick(b: BodyRow<Row>, event: MouseEvent): void;
|
|
7718
|
+
protected onRowKeydown(b: BodyRow<Row>, e: KeyboardEvent): void;
|
|
7719
|
+
protected onGroupToggleKeydown(e: KeyboardEvent): void;
|
|
7720
|
+
private focusRow;
|
|
7721
|
+
private syncBars;
|
|
7722
|
+
protected startThumbDrag(axis: 'x' | 'y', e: PointerEvent): void;
|
|
7180
7723
|
private measureAll;
|
|
7181
7724
|
protected startResize(e: MouseEvent, col: IusTableColumn<Row>): void;
|
|
7182
7725
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TableComponent<any>, never>;
|
|
7183
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TableComponent<any>, "ius-table", never, { "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; "rowKey": { "alias": "rowKey"; "required": false; "isSignal": true; }; "sortColumn": { "alias": "sortColumn"; "required": false; "isSignal": true; }; "sortDirection": { "alias": "sortDirection"; "required": false; "isSignal": true; }; "selectable": { "alias": "selectable"; "required": false; "isSignal": true; }; "selectedKeys": { "alias": "selectedKeys"; "required": false; "isSignal": true; }; "selectAriaLabel": { "alias": "selectAriaLabel"; "required": false; "isSignal": true; }; "rowClickable": { "alias": "rowClickable"; "required": false; "isSignal": true; }; "isRowDisabled": { "alias": "isRowDisabled"; "required": false; "isSignal": true; }; "getRowAccent": { "alias": "getRowAccent"; "required": false; "isSignal": true; }; "rowClassName": { "alias": "rowClassName"; "required": false; "isSignal": true; }; "rowStyle": { "alias": "rowStyle"; "required": false; "isSignal": true; }; "resizable": { "alias": "resizable"; "required": false; "isSignal": true; }; "columnDividers": { "alias": "columnDividers"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "skeletonRows": { "alias": "skeletonRows"; "required": false; "isSignal": true; }; "emptyTemplate": { "alias": "emptyTemplate"; "required": false; "isSignal": true; }; "emptyTitle": { "alias": "emptyTitle"; "required": false; "isSignal": true; }; "emptyDescription": { "alias": "emptyDescription"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "bordered": { "alias": "bordered"; "required": false; "isSignal": true; }; "striped": { "alias": "striped"; "required": false; "isSignal": true; }; "hover": { "alias": "hover"; "required": false; "isSignal": true; }; "stickyHeader": { "alias": "stickyHeader"; "required": false; "isSignal": true; }; "summary": { "alias": "summary"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "maxHeight": { "alias": "maxHeight"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "sortChange": "sortChange"; "selectionChange": "selectionChange"; "rowClick": "rowClick"; }, never, never, true, never>;
|
|
7726
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TableComponent<any>, "ius-table", never, { "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; "rowKey": { "alias": "rowKey"; "required": false; "isSignal": true; }; "sortColumn": { "alias": "sortColumn"; "required": false; "isSignal": true; }; "sortDirection": { "alias": "sortDirection"; "required": false; "isSignal": true; }; "selectable": { "alias": "selectable"; "required": false; "isSignal": true; }; "selectedKeys": { "alias": "selectedKeys"; "required": false; "isSignal": true; }; "selectAriaLabel": { "alias": "selectAriaLabel"; "required": false; "isSignal": true; }; "rowClickable": { "alias": "rowClickable"; "required": false; "isSignal": true; }; "isRowDisabled": { "alias": "isRowDisabled"; "required": false; "isSignal": true; }; "getRowAccent": { "alias": "getRowAccent"; "required": false; "isSignal": true; }; "rowClassName": { "alias": "rowClassName"; "required": false; "isSignal": true; }; "rowStyle": { "alias": "rowStyle"; "required": false; "isSignal": true; }; "expandable": { "alias": "expandable"; "required": false; "isSignal": true; }; "renderExpanded": { "alias": "renderExpanded"; "required": false; "isSignal": true; }; "expandedKeys": { "alias": "expandedKeys"; "required": false; "isSignal": true; }; "defaultExpandedKeys": { "alias": "defaultExpandedKeys"; "required": false; "isSignal": true; }; "expandMode": { "alias": "expandMode"; "required": false; "isSignal": true; }; "expandAriaLabel": { "alias": "expandAriaLabel"; "required": false; "isSignal": true; }; "getChildren": { "alias": "getChildren"; "required": false; "isSignal": true; }; "childRowKey": { "alias": "childRowKey"; "required": false; "isSignal": true; }; "expandedGroups": { "alias": "expandedGroups"; "required": false; "isSignal": true; }; "defaultExpandedGroups": { "alias": "defaultExpandedGroups"; "required": false; "isSignal": true; }; "childSelection": { "alias": "childSelection"; "required": false; "isSignal": true; }; "groupToggleAriaLabel": { "alias": "groupToggleAriaLabel"; "required": false; "isSignal": true; }; "childRowTone": { "alias": "childRowTone"; "required": false; "isSignal": true; }; "emptyCell": { "alias": "emptyCell"; "required": false; "isSignal": true; }; "resizable": { "alias": "resizable"; "required": false; "isSignal": true; }; "columnDividers": { "alias": "columnDividers"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "skeletonRows": { "alias": "skeletonRows"; "required": false; "isSignal": true; }; "emptyTemplate": { "alias": "emptyTemplate"; "required": false; "isSignal": true; }; "emptyTitle": { "alias": "emptyTitle"; "required": false; "isSignal": true; }; "emptyDescription": { "alias": "emptyDescription"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "bordered": { "alias": "bordered"; "required": false; "isSignal": true; }; "striped": { "alias": "striped"; "required": false; "isSignal": true; }; "hover": { "alias": "hover"; "required": false; "isSignal": true; }; "stickyHeader": { "alias": "stickyHeader"; "required": false; "isSignal": true; }; "summary": { "alias": "summary"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "maxHeight": { "alias": "maxHeight"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "sortChange": "sortChange"; "selectionChange": "selectionChange"; "rowClick": "rowClick"; "expandedChange": "expandedChange"; "expandedGroupsChange": "expandedGroupsChange"; }, never, never, true, never>;
|
|
7184
7727
|
}
|
|
7185
7728
|
|
|
7186
7729
|
/** Familia de color de la cifra: default + 6 semánticos + 6 frutas. */
|
|
@@ -7277,7 +7820,7 @@ declare class StatComponent {
|
|
|
7277
7820
|
protected readonly effSize: _angular_core.Signal<IusStatSize>;
|
|
7278
7821
|
protected readonly navigable: _angular_core.Signal<boolean>;
|
|
7279
7822
|
/** Dirección del delta numérico. */
|
|
7280
|
-
protected readonly deltaDir: _angular_core.Signal<"flat" | "
|
|
7823
|
+
protected readonly deltaDir: _angular_core.Signal<"flat" | "up" | "down" | null>;
|
|
7281
7824
|
protected readonly deltaArrow: _angular_core.Signal<"remove" | "arrow_upward" | "arrow_downward">;
|
|
7282
7825
|
protected readonly deltaText: _angular_core.Signal<string>;
|
|
7283
7826
|
/** Color de la cifra según el tono (mismo mapa que el golden). */
|
|
@@ -8579,6 +9122,176 @@ declare class SwitchComponent implements ControlValueAccessor {
|
|
|
8579
9122
|
static ngAcceptInputType_disabled: unknown;
|
|
8580
9123
|
}
|
|
8581
9124
|
|
|
9125
|
+
/** Tamaño del anillo — small 16 · medium 20 (default) · large 24 px. */
|
|
9126
|
+
type IusRadioSize = 'small' | 'medium' | 'large';
|
|
9127
|
+
/** Lado del label respecto al anillo. */
|
|
9128
|
+
type IusRadioLabelPosition = 'left' | 'right';
|
|
9129
|
+
/**
|
|
9130
|
+
* Radio — Ius Design v2 (familia inputs).
|
|
9131
|
+
*
|
|
9132
|
+
* Botón de opción para elegir **una** entre varias excluyentes: anillo gris sin
|
|
9133
|
+
* seleccionar; anillo y punto navy (Primary-900) al elegir; halo gris en hover y
|
|
9134
|
+
* azul en pressed/focus. Fuente de verdad: `Radio.jsx` + `Radio.d.ts` +
|
|
9135
|
+
* `Radio.ng-spec.md` (DELTA sobre `Checkbox.ng-spec.md`).
|
|
9136
|
+
*
|
|
9137
|
+
* Los radios con el mismo `name` son excluyentes (lo asegura el navegador). El
|
|
9138
|
+
* valor escalar del grupo lo maneja el CVA del grupo (`ius-selection-field
|
|
9139
|
+
* type="radio"`); el Radio individual expone `checked`/`checkedChange` y `value`
|
|
9140
|
+
* y conserva el CVA booleano heredado de Checkbox.
|
|
9141
|
+
*
|
|
9142
|
+
* DECISIONES DE PORT (las mismas de Checkbox y Switch):
|
|
9143
|
+
* 1. `state` es solo para demos → fuera de la API pública; el playground
|
|
9144
|
+
* congela un estado visual con el atributo `data-force`.
|
|
9145
|
+
* 2. El DOM es input → anillo → label siempre y `labelPosition: 'left'` se
|
|
9146
|
+
* resuelve con `order`: el halo de foco depende del selector adyacente
|
|
9147
|
+
* `.ius-rad__input:focus-visible + .ius-rad__ctrl`.
|
|
9148
|
+
*/
|
|
9149
|
+
declare class RadioComponent implements ControlValueAccessor {
|
|
9150
|
+
/** Texto junto al anillo. Sin label si se omite. */
|
|
9151
|
+
label?: string;
|
|
9152
|
+
/** Lado del label respecto al anillo. */
|
|
9153
|
+
labelPosition: IusRadioLabelPosition;
|
|
9154
|
+
/** Nombre del grupo: radios con el mismo `name` son excluyentes. */
|
|
9155
|
+
name?: string;
|
|
9156
|
+
/** Valor que representa la opción. */
|
|
9157
|
+
value?: string;
|
|
9158
|
+
private readonly sizeState;
|
|
9159
|
+
set size(value: IusRadioSize);
|
|
9160
|
+
get size(): IusRadioSize;
|
|
9161
|
+
private readonly checkedState;
|
|
9162
|
+
set checked(value: boolean);
|
|
9163
|
+
get checked(): boolean;
|
|
9164
|
+
/** Estado inicial no controlado (alias de `checked` como valor inicial). */
|
|
9165
|
+
set defaultChecked(value: boolean);
|
|
9166
|
+
private readonly disabledState;
|
|
9167
|
+
set disabled(value: boolean);
|
|
9168
|
+
get disabled(): boolean;
|
|
9169
|
+
/** Emite `true` al seleccionar (original `onChange(true)`; nunca `change`). */
|
|
9170
|
+
readonly checkedChange: EventEmitter<boolean>;
|
|
9171
|
+
protected readonly inputId: string;
|
|
9172
|
+
private onChangeCb;
|
|
9173
|
+
private onTouchedCb;
|
|
9174
|
+
writeValue(value: boolean): void;
|
|
9175
|
+
registerOnChange(fn: (value: boolean) => void): void;
|
|
9176
|
+
registerOnTouched(fn: () => void): void;
|
|
9177
|
+
setDisabledState(isDisabled: boolean): void;
|
|
9178
|
+
protected onSelect(): void;
|
|
9179
|
+
protected onBlur(): void;
|
|
9180
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RadioComponent, never>;
|
|
9181
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<RadioComponent, "ius-radio", never, { "label": { "alias": "label"; "required": false; }; "labelPosition": { "alias": "labelPosition"; "required": false; }; "name": { "alias": "name"; "required": false; }; "value": { "alias": "value"; "required": false; }; "size": { "alias": "size"; "required": false; }; "checked": { "alias": "checked"; "required": false; }; "defaultChecked": { "alias": "defaultChecked"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "checkedChange": "checkedChange"; }, never, never, true, never>;
|
|
9182
|
+
static ngAcceptInputType_checked: unknown;
|
|
9183
|
+
static ngAcceptInputType_defaultChecked: unknown;
|
|
9184
|
+
static ngAcceptInputType_disabled: unknown;
|
|
9185
|
+
}
|
|
9186
|
+
|
|
9187
|
+
/** Molécula de cada opción. */
|
|
9188
|
+
type IusSelectionFieldType = 'checkbox' | 'radio' | 'switch';
|
|
9189
|
+
/** Tamaño de las moléculas — small · medium (default) · large. */
|
|
9190
|
+
type IusSelectionFieldSize = 'small' | 'medium' | 'large';
|
|
9191
|
+
/** Disposición de las opciones. */
|
|
9192
|
+
type IusSelectionFieldDirection = 'vertical' | 'horizontal';
|
|
9193
|
+
/** Lado del label de cada opción. */
|
|
9194
|
+
type IusSelectionFieldLabelPosition = 'left' | 'right';
|
|
9195
|
+
type IusSelectionOptionValue = string | number;
|
|
9196
|
+
/** Escalar en `radio`; arreglo en `checkbox`/`switch`. */
|
|
9197
|
+
type IusSelectionFieldValue = IusSelectionOptionValue | IusSelectionOptionValue[] | null;
|
|
9198
|
+
interface IusSelectionOption {
|
|
9199
|
+
value: IusSelectionOptionValue;
|
|
9200
|
+
/** Texto de la opción (label de la molécula). */
|
|
9201
|
+
label: string;
|
|
9202
|
+
disabled?: boolean;
|
|
9203
|
+
/** Ícono de ayuda por opción. */
|
|
9204
|
+
showIconHelp?: boolean;
|
|
9205
|
+
iconHelpTitle?: string;
|
|
9206
|
+
iconHelpContent?: string;
|
|
9207
|
+
}
|
|
9208
|
+
/**
|
|
9209
|
+
* SelectionField — Ius Design v2 (familia inputs).
|
|
9210
|
+
*
|
|
9211
|
+
* Grupo etiquetado de opciones que **compone** `ius-checkbox`, `ius-radio` o
|
|
9212
|
+
* `ius-switch` (según `type`) y aporta el chrome de campo de TextField: label
|
|
9213
|
+
* con required + iconHelp + `:`, helpText/errorText, `error` y `size`. Fuente de
|
|
9214
|
+
* verdad: `SelectionField.jsx` + `SelectionField.d.ts` + `SelectionField.ng-spec.md`.
|
|
9215
|
+
*
|
|
9216
|
+
* `ControlValueAccessor` con forma según `type`: **escalar** en `radio` (`null`
|
|
9217
|
+
* sin selección) y **arreglo** en `checkbox`/`switch` (en el orden en que se
|
|
9218
|
+
* marcaron, como el golden). `valueChange` entrega ese mismo shape.
|
|
9219
|
+
*
|
|
9220
|
+
* Las clases `.ius-tf__*` se replican en el SCSS porque bajo
|
|
9221
|
+
* ViewEncapsulation.Emulated las de TextField no alcanzan a este componente
|
|
9222
|
+
* (mismo criterio que CodeField, MultiTextField y TextArea).
|
|
9223
|
+
*/
|
|
9224
|
+
declare class SelectionFieldComponent implements ControlValueAccessor {
|
|
9225
|
+
/** Molécula usada para cada opción. */
|
|
9226
|
+
type: IusSelectionFieldType;
|
|
9227
|
+
/** Título del grupo (con `:` final). */
|
|
9228
|
+
label?: string;
|
|
9229
|
+
/**
|
|
9230
|
+
* Punto rojo (•) de obligatorio. Con `formControl`/`ngModel`, Angular solo le
|
|
9231
|
+
* engancha `Validators.required` cuando el atributo `type` no es literalmente
|
|
9232
|
+
* `"checkbox"`: en `checkbox`/`switch` agregue el validador en el control.
|
|
9233
|
+
*/
|
|
9234
|
+
required: boolean;
|
|
9235
|
+
/** Pastilla "?" del campo (popover). */
|
|
9236
|
+
showIconHelp: boolean;
|
|
9237
|
+
/** Título del contenido de ayuda del campo. */
|
|
9238
|
+
iconHelpTitle?: string;
|
|
9239
|
+
/** Cuerpo del contenido de ayuda del campo. */
|
|
9240
|
+
iconHelpContent?: string;
|
|
9241
|
+
/** Opciones del grupo. */
|
|
9242
|
+
options: IusSelectionOption[];
|
|
9243
|
+
/** Línea de ayuda bajo el grupo. */
|
|
9244
|
+
helpText?: string;
|
|
9245
|
+
/** Reemplaza `helpText` cuando `error` es `true`. */
|
|
9246
|
+
errorText?: string;
|
|
9247
|
+
/** Mostrar/ocultar la línea de ayuda. */
|
|
9248
|
+
showHelpText: boolean;
|
|
9249
|
+
/** Estado de error (color del hint + errorText). */
|
|
9250
|
+
error: boolean;
|
|
9251
|
+
/** Tamaño de las moléculas. */
|
|
9252
|
+
size: IusSelectionFieldSize;
|
|
9253
|
+
/** Disposición de las opciones. */
|
|
9254
|
+
direction: IusSelectionFieldDirection;
|
|
9255
|
+
/** Lado del label de cada opción. */
|
|
9256
|
+
optionLabelPosition: IusSelectionFieldLabelPosition;
|
|
9257
|
+
/** Nombre del grupo (radio). Se genera si se omite. */
|
|
9258
|
+
name?: string;
|
|
9259
|
+
private readonly valueState;
|
|
9260
|
+
set value(value: IusSelectionFieldValue);
|
|
9261
|
+
get value(): IusSelectionFieldValue;
|
|
9262
|
+
private defaultSeeded;
|
|
9263
|
+
set defaultValue(value: IusSelectionFieldValue | undefined);
|
|
9264
|
+
private readonly disabledState;
|
|
9265
|
+
/** Inhabilita todo el campo. */
|
|
9266
|
+
set disabled(value: boolean);
|
|
9267
|
+
get disabled(): boolean;
|
|
9268
|
+
/** Nuevo valor con el shape de `type` (original `onChange`). */
|
|
9269
|
+
readonly valueChange: EventEmitter<IusSelectionFieldValue>;
|
|
9270
|
+
private readonly baseId;
|
|
9271
|
+
protected readonly labelId: string;
|
|
9272
|
+
protected readonly hintId: string;
|
|
9273
|
+
private onChange;
|
|
9274
|
+
protected onTouched: () => void;
|
|
9275
|
+
protected get multiple(): boolean;
|
|
9276
|
+
protected get groupName(): string;
|
|
9277
|
+
protected get hint(): string | undefined;
|
|
9278
|
+
protected get showHint(): boolean;
|
|
9279
|
+
protected isChecked(val: IusSelectionOptionValue): boolean;
|
|
9280
|
+
protected toggle(val: IusSelectionOptionValue): void;
|
|
9281
|
+
private commit;
|
|
9282
|
+
writeValue(value: IusSelectionFieldValue): void;
|
|
9283
|
+
registerOnChange(fn: (value: IusSelectionFieldValue) => void): void;
|
|
9284
|
+
registerOnTouched(fn: () => void): void;
|
|
9285
|
+
setDisabledState(isDisabled: boolean): void;
|
|
9286
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SelectionFieldComponent, never>;
|
|
9287
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SelectionFieldComponent, "ius-selection-field", never, { "type": { "alias": "type"; "required": false; }; "label": { "alias": "label"; "required": false; }; "required": { "alias": "required"; "required": false; }; "showIconHelp": { "alias": "showIconHelp"; "required": false; }; "iconHelpTitle": { "alias": "iconHelpTitle"; "required": false; }; "iconHelpContent": { "alias": "iconHelpContent"; "required": false; }; "options": { "alias": "options"; "required": false; }; "helpText": { "alias": "helpText"; "required": false; }; "errorText": { "alias": "errorText"; "required": false; }; "showHelpText": { "alias": "showHelpText"; "required": false; }; "error": { "alias": "error"; "required": false; }; "size": { "alias": "size"; "required": false; }; "direction": { "alias": "direction"; "required": false; }; "optionLabelPosition": { "alias": "optionLabelPosition"; "required": false; }; "name": { "alias": "name"; "required": false; }; "value": { "alias": "value"; "required": false; }; "defaultValue": { "alias": "defaultValue"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
|
|
9288
|
+
static ngAcceptInputType_required: unknown;
|
|
9289
|
+
static ngAcceptInputType_showIconHelp: unknown;
|
|
9290
|
+
static ngAcceptInputType_showHelpText: unknown;
|
|
9291
|
+
static ngAcceptInputType_error: unknown;
|
|
9292
|
+
static ngAcceptInputType_disabled: unknown;
|
|
9293
|
+
}
|
|
9294
|
+
|
|
8582
9295
|
/** Id de nodo. */
|
|
8583
9296
|
type IusEntityId = string | number;
|
|
8584
9297
|
/** Nodo del árbol. `label`/`sublabel` son string (ReactNode del golden → regla 5 del port). */
|
|
@@ -10237,6 +10950,12 @@ declare class DatePickerComponent implements ControlValueAccessor {
|
|
|
10237
10950
|
error: boolean;
|
|
10238
10951
|
disabled: boolean;
|
|
10239
10952
|
size: 'small' | 'medium' | 'large';
|
|
10953
|
+
/**
|
|
10954
|
+
* Ocupa el ancho del contenedor como los demás campos del formulario, con el
|
|
10955
|
+
* tope de 360px de `.ius-tf` (el Drawer lo quita). En `range` no lleva tope:
|
|
10956
|
+
* las dos fechas y el ícono van siempre en una línea.
|
|
10957
|
+
*/
|
|
10958
|
+
fullWidth: boolean;
|
|
10240
10959
|
defaultOpen: boolean;
|
|
10241
10960
|
private _open?;
|
|
10242
10961
|
/** Apertura controlada del panel. */
|
|
@@ -10300,13 +11019,14 @@ declare class DatePickerComponent implements ControlValueAccessor {
|
|
|
10300
11019
|
protected get hint(): string | undefined;
|
|
10301
11020
|
protected get showHint(): boolean;
|
|
10302
11021
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DatePickerComponent, never>;
|
|
10303
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DatePickerComponent, "ius-date-picker", never, { "mode": { "alias": "mode"; "required": false; }; "label": { "alias": "label"; "required": false; }; "required": { "alias": "required"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "startPlaceholder": { "alias": "startPlaceholder"; "required": false; }; "endPlaceholder": { "alias": "endPlaceholder"; "required": false; }; "defaultValue": { "alias": "defaultValue"; "required": false; }; "value": { "alias": "value"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; "isDateDisabled": { "alias": "isDateDisabled"; "required": false; }; "minuteStep": { "alias": "minuteStep"; "required": false; }; "helpText": { "alias": "helpText"; "required": false; }; "errorText": { "alias": "errorText"; "required": false; }; "showHelpText": { "alias": "showHelpText"; "required": false; }; "showIconHelp": { "alias": "showIconHelp"; "required": false; }; "iconHelpTitle": { "alias": "iconHelpTitle"; "required": false; }; "iconHelpContent": { "alias": "iconHelpContent"; "required": false; }; "error": { "alias": "error"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "size": { "alias": "size"; "required": false; }; "defaultOpen": { "alias": "defaultOpen"; "required": false; }; "open": { "alias": "open"; "required": false; }; "state": { "alias": "state"; "required": false; }; "name": { "alias": "name"; "required": false; }; }, { "valueChange": "valueChange"; "openChange": "openChange"; }, never, never, true, never>;
|
|
11022
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DatePickerComponent, "ius-date-picker", never, { "mode": { "alias": "mode"; "required": false; }; "label": { "alias": "label"; "required": false; }; "required": { "alias": "required"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "startPlaceholder": { "alias": "startPlaceholder"; "required": false; }; "endPlaceholder": { "alias": "endPlaceholder"; "required": false; }; "defaultValue": { "alias": "defaultValue"; "required": false; }; "value": { "alias": "value"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; "isDateDisabled": { "alias": "isDateDisabled"; "required": false; }; "minuteStep": { "alias": "minuteStep"; "required": false; }; "helpText": { "alias": "helpText"; "required": false; }; "errorText": { "alias": "errorText"; "required": false; }; "showHelpText": { "alias": "showHelpText"; "required": false; }; "showIconHelp": { "alias": "showIconHelp"; "required": false; }; "iconHelpTitle": { "alias": "iconHelpTitle"; "required": false; }; "iconHelpContent": { "alias": "iconHelpContent"; "required": false; }; "error": { "alias": "error"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "size": { "alias": "size"; "required": false; }; "fullWidth": { "alias": "fullWidth"; "required": false; }; "defaultOpen": { "alias": "defaultOpen"; "required": false; }; "open": { "alias": "open"; "required": false; }; "state": { "alias": "state"; "required": false; }; "name": { "alias": "name"; "required": false; }; }, { "valueChange": "valueChange"; "openChange": "openChange"; }, never, never, true, never>;
|
|
10304
11023
|
static ngAcceptInputType_required: unknown;
|
|
10305
11024
|
static ngAcceptInputType_minuteStep: unknown;
|
|
10306
11025
|
static ngAcceptInputType_showHelpText: unknown;
|
|
10307
11026
|
static ngAcceptInputType_showIconHelp: unknown;
|
|
10308
11027
|
static ngAcceptInputType_error: unknown;
|
|
10309
11028
|
static ngAcceptInputType_disabled: unknown;
|
|
11029
|
+
static ngAcceptInputType_fullWidth: unknown;
|
|
10310
11030
|
static ngAcceptInputType_defaultOpen: unknown;
|
|
10311
11031
|
}
|
|
10312
11032
|
|
|
@@ -11149,6 +11869,8 @@ declare class PartyListComponent {
|
|
|
11149
11869
|
type IusFileItemLayout = 'row' | 'card';
|
|
11150
11870
|
type IusFileItemSize = 'small' | 'medium' | 'large';
|
|
11151
11871
|
type IusFileItemActivateOn = 'single' | 'double';
|
|
11872
|
+
/** Estado del archivo: subida en curso · generándose en el servidor · falló. */
|
|
11873
|
+
type IusFileItemStatus = 'uploading' | 'processing' | 'error';
|
|
11152
11874
|
/** Columna de metadatos (row): etiqueta pequeña sobre el valor. */
|
|
11153
11875
|
interface IusFileItemField {
|
|
11154
11876
|
key?: string | number;
|
|
@@ -11159,6 +11881,11 @@ interface IusFileItemField {
|
|
|
11159
11881
|
/** Ancho fijo de la columna (px o CSS). */
|
|
11160
11882
|
width?: number | string;
|
|
11161
11883
|
align?: 'start' | 'end';
|
|
11884
|
+
/**
|
|
11885
|
+
* Prioridad al estrecharse la fila (`responsive`): menor sale antes. Default `0`; a igual
|
|
11886
|
+
* prioridad sale antes el de la izquierda (el último field es el que más se conserva).
|
|
11887
|
+
*/
|
|
11888
|
+
priority?: number;
|
|
11162
11889
|
}
|
|
11163
11890
|
/** Acción rápida revelada en hover (IconButton). */
|
|
11164
11891
|
interface IusFileItemAction {
|
|
@@ -11205,6 +11932,16 @@ interface IusFileItemActionClick {
|
|
|
11205
11932
|
* del golden. Fuente de verdad: `FileItem.jsx` + `FileItem.d.ts` +
|
|
11206
11933
|
* `FileItem.ng-spec.md`.
|
|
11207
11934
|
*
|
|
11935
|
+
* **Estado del archivo** (`status`): con estado, la fila reemplaza los `fields`
|
|
11936
|
+
* por el indicador (barra, spinner o error) y oculta casilla, dueño, estrella y
|
|
11937
|
+
* menú; no se abre ni se selecciona (`aria-busy` mientras sube o se genera). En
|
|
11938
|
+
* card el indicador va en el pie en lugar del `caption`. «Cancelar» y
|
|
11939
|
+
* «Reintentar» aparecen solo si `(cancel)` / `(retry)` están enlazados.
|
|
11940
|
+
*
|
|
11941
|
+
* **Fila responsive** (`responsive`, solo row): el host es contenedor
|
|
11942
|
+
* `fileitem` y oculta dueño y columnas por prioridad (`data-drop`) al
|
|
11943
|
+
* estrecharse, para que el nombre siga visible.
|
|
11944
|
+
*
|
|
11208
11945
|
* Decisión de port: el `onContextMenu` del golden se expone como `contextMenu`
|
|
11209
11946
|
* (regla transversal 3: los outputs nunca llevan el nombre de un evento nativo,
|
|
11210
11947
|
* y `contextmenu` dispararía doble). Se agrega `actionClick` para escuchar las
|
|
@@ -11242,6 +11979,18 @@ declare class FileItemComponent {
|
|
|
11242
11979
|
caption?: string;
|
|
11243
11980
|
/** Dueño/responsable → Avatar en la zona final (row). */
|
|
11244
11981
|
owner?: IusFileItemOwner;
|
|
11982
|
+
/**
|
|
11983
|
+
* Solo row. La fila mide su propio ancho (container query) y oculta columnas por prioridad
|
|
11984
|
+
* para que el nombre siga visible: ≤ 640 px el dueño · ≤ 580 px el primer field en salir ·
|
|
11985
|
+
* ≤ 500 px el segundo · ≤ 420 px todos. La fila debe tener ancho definido por su contenedor.
|
|
11986
|
+
*/
|
|
11987
|
+
responsive: boolean;
|
|
11988
|
+
/** Estado del archivo. Con estado no se abre ni se selecciona; oculta dueño, estrella y menú. */
|
|
11989
|
+
status?: IusFileItemStatus;
|
|
11990
|
+
/** 0–100, solo `uploading`. Sin él la barra es indeterminada. */
|
|
11991
|
+
progress?: number;
|
|
11992
|
+
/** Texto del estado. Default «Subiendo… 45 %» · «Generando…» · «No se pudo completar». */
|
|
11993
|
+
statusLabel?: string;
|
|
11245
11994
|
/** Acciones rápidas reveladas en hover (IconButton). */
|
|
11246
11995
|
actions: readonly IusFileItemAction[];
|
|
11247
11996
|
/** Opciones del menú ⋮ (items de Dropdown). */
|
|
@@ -11260,20 +12009,37 @@ declare class FileItemComponent {
|
|
|
11260
12009
|
readonly contextMenu: EventEmitter<MouseEvent>;
|
|
11261
12010
|
/** Acción rápida pulsada (además del `onClick` del item). */
|
|
11262
12011
|
readonly actionClick: EventEmitter<IusFileItemActionClick>;
|
|
12012
|
+
/** Solo `error`: enlazarlo muestra el botón «Reintentar». Original `onRetry`. */
|
|
12013
|
+
readonly retry: EventEmitter<MouseEvent>;
|
|
12014
|
+
/** Solo `uploading`/`processing`: enlazarlo muestra el botón «Cancelar». Original `onCancel`. */
|
|
12015
|
+
readonly cancel: EventEmitter<MouseEvent>;
|
|
11263
12016
|
/** Mantiene visibles acciones y menú mientras el ⋮ está abierto. */
|
|
11264
12017
|
protected readonly menuOpen: _angular_core.WritableSignal<boolean>;
|
|
11265
12018
|
protected get isCard(): boolean;
|
|
12019
|
+
protected get busy(): boolean;
|
|
12020
|
+
protected get failed(): boolean;
|
|
12021
|
+
protected get blocked(): boolean;
|
|
12022
|
+
protected get pct(): number | null;
|
|
12023
|
+
protected get statusText(): string | null;
|
|
12024
|
+
protected get showCancel(): boolean;
|
|
12025
|
+
protected get showRetry(): boolean;
|
|
11266
12026
|
protected get activatable(): boolean;
|
|
11267
12027
|
protected get clickable(): boolean;
|
|
11268
12028
|
protected get hasStar(): boolean;
|
|
11269
12029
|
protected get starLabel(): string;
|
|
11270
12030
|
protected widthOf(f: IusFileItemField): string | null;
|
|
12031
|
+
/**
|
|
12032
|
+
* Orden de salida al estrecharse: menor `priority` sale antes; a igual prioridad, el de la
|
|
12033
|
+
* izquierda. drop 1 y 2 tienen umbral propio; 3+ salen con todo el bloque. Un único field lleva 2.
|
|
12034
|
+
*/
|
|
12035
|
+
protected dropRanks(): number[];
|
|
11271
12036
|
protected trackKey(item: {
|
|
11272
12037
|
key?: string | number;
|
|
11273
12038
|
}, index: number): string | number;
|
|
11274
12039
|
private doOpen;
|
|
11275
12040
|
protected onHostClick(event: MouseEvent): void;
|
|
11276
12041
|
protected onHostDblClick(event: MouseEvent): void;
|
|
12042
|
+
/** Solo la fila enfocada abre o selecciona: Enter sobre el menú, la estrella o una acción es de ese botón. */
|
|
11277
12043
|
protected onKeydown(event: KeyboardEvent): void;
|
|
11278
12044
|
protected onContextMenu(event: MouseEvent): void;
|
|
11279
12045
|
/** La casilla y el menú no disparan apertura ni selección por clic en la fila. */
|
|
@@ -11281,13 +12047,16 @@ declare class FileItemComponent {
|
|
|
11281
12047
|
protected onSelect(next: boolean): void;
|
|
11282
12048
|
protected onStar(event: MouseEvent): void;
|
|
11283
12049
|
protected onAction(action: IusFileItemAction, event: MouseEvent): void;
|
|
12050
|
+
protected onRetry(event: MouseEvent): void;
|
|
12051
|
+
protected onCancel(event: MouseEvent): void;
|
|
11284
12052
|
protected onMenuOpen(open: boolean): void;
|
|
11285
12053
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FileItemComponent, never>;
|
|
11286
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FileItemComponent, "ius-file-item", never, { "kind": { "alias": "kind"; "required": false; }; "name": { "alias": "name"; "required": false; }; "thumbnail": { "alias": "thumbnail"; "required": false; }; "layout": { "alias": "layout"; "required": false; }; "size": { "alias": "size"; "required": false; }; "href": { "alias": "href"; "required": false; }; "activateOn": { "alias": "activateOn"; "required": false; }; "selectable": { "alias": "selectable"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "unread": { "alias": "unread"; "required": false; }; "shared": { "alias": "shared"; "required": false; }; "starred": { "alias": "starred"; "required": false; }; "tags": { "alias": "tags"; "required": false; }; "fields": { "alias": "fields"; "required": false; }; "caption": { "alias": "caption"; "required": false; }; "owner": { "alias": "owner"; "required": false; }; "actions": { "alias": "actions"; "required": false; }; "menu": { "alias": "menu"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; }, { "opened": "opened"; "clicked": "clicked"; "selectChange": "selectChange"; "starChange": "starChange"; "contextMenu": "contextMenu"; "actionClick": "actionClick"; }, never, never, true, never>;
|
|
12054
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FileItemComponent, "ius-file-item", never, { "kind": { "alias": "kind"; "required": false; }; "name": { "alias": "name"; "required": false; }; "thumbnail": { "alias": "thumbnail"; "required": false; }; "layout": { "alias": "layout"; "required": false; }; "size": { "alias": "size"; "required": false; }; "href": { "alias": "href"; "required": false; }; "activateOn": { "alias": "activateOn"; "required": false; }; "selectable": { "alias": "selectable"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "unread": { "alias": "unread"; "required": false; }; "shared": { "alias": "shared"; "required": false; }; "starred": { "alias": "starred"; "required": false; }; "tags": { "alias": "tags"; "required": false; }; "fields": { "alias": "fields"; "required": false; }; "caption": { "alias": "caption"; "required": false; }; "owner": { "alias": "owner"; "required": false; }; "responsive": { "alias": "responsive"; "required": false; }; "status": { "alias": "status"; "required": false; }; "progress": { "alias": "progress"; "required": false; }; "statusLabel": { "alias": "statusLabel"; "required": false; }; "actions": { "alias": "actions"; "required": false; }; "menu": { "alias": "menu"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; }, { "opened": "opened"; "clicked": "clicked"; "selectChange": "selectChange"; "starChange": "starChange"; "contextMenu": "contextMenu"; "actionClick": "actionClick"; "retry": "retry"; "cancel": "cancel"; }, never, never, true, never>;
|
|
11287
12055
|
static ngAcceptInputType_selectable: unknown;
|
|
11288
12056
|
static ngAcceptInputType_selected: unknown;
|
|
11289
12057
|
static ngAcceptInputType_unread: unknown;
|
|
11290
12058
|
static ngAcceptInputType_shared: unknown;
|
|
12059
|
+
static ngAcceptInputType_responsive: unknown;
|
|
11291
12060
|
static ngAcceptInputType_disabled: unknown;
|
|
11292
12061
|
}
|
|
11293
12062
|
|
|
@@ -11449,6 +12218,8 @@ interface IusDetailSidePanelSection {
|
|
|
11449
12218
|
/** Abierta al montar (solo con `accordion`). */
|
|
11450
12219
|
defaultOpen?: boolean;
|
|
11451
12220
|
}
|
|
12221
|
+
/** Lado del contenido en que va la ficha; `bottom` para vistas angostas. */
|
|
12222
|
+
type IusDetailSidePanelSide = 'end' | 'start' | 'bottom';
|
|
11452
12223
|
/**
|
|
11453
12224
|
* DetailSidePanel — Ius Design v2 (familia layout).
|
|
11454
12225
|
*
|
|
@@ -11486,8 +12257,16 @@ declare class DetailSidePanelComponent {
|
|
|
11486
12257
|
collapseLabel: string;
|
|
11487
12258
|
/** aria/tooltip del toggle expandir (riel). */
|
|
11488
12259
|
expandLabel: string;
|
|
11489
|
-
/** Ícono del botón de reabrir en el riel. */
|
|
11490
|
-
expandIcon
|
|
12260
|
+
/** Ícono del botón de reabrir en el riel. Default según `side`. */
|
|
12261
|
+
expandIcon?: string;
|
|
12262
|
+
/**
|
|
12263
|
+
* `end` (derecha del contenido) · `start` (izquierda: borde y toggle al inicio) ·
|
|
12264
|
+
* `bottom` (bajo el contenido, alto `height`, plegado a franja horizontal).
|
|
12265
|
+
* Los íconos de plegar/abrir siguen el lado.
|
|
12266
|
+
*/
|
|
12267
|
+
side: IusDetailSidePanelSide;
|
|
12268
|
+
/** Alto con `side="bottom"` (px o CSS) → `--_ds-h`. Default 40%. */
|
|
12269
|
+
height?: number | string;
|
|
11491
12270
|
/** Secciones del cuerpo. Alternativa al contenido proyectado. */
|
|
11492
12271
|
sections?: readonly IusDetailSidePanelSection[];
|
|
11493
12272
|
/** Monta las `sections` como Accordion plegable (`variant divided`). */
|
|
@@ -11501,6 +12280,10 @@ declare class DetailSidePanelComponent {
|
|
|
11501
12280
|
private readonly internal;
|
|
11502
12281
|
protected get isCollapsed(): boolean;
|
|
11503
12282
|
protected get widthCss(): string;
|
|
12283
|
+
protected get heightCss(): string | null;
|
|
12284
|
+
protected get isStart(): boolean;
|
|
12285
|
+
protected get collapseIcon(): string;
|
|
12286
|
+
protected get openIcon(): string;
|
|
11504
12287
|
protected get hasSections(): boolean;
|
|
11505
12288
|
protected get useAccordion(): boolean;
|
|
11506
12289
|
protected get showHead(): boolean;
|
|
@@ -11513,7 +12296,7 @@ declare class DetailSidePanelComponent {
|
|
|
11513
12296
|
protected toggle(): void;
|
|
11514
12297
|
protected readonly railWidth = "52px";
|
|
11515
12298
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DetailSidePanelComponent, never>;
|
|
11516
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DetailSidePanelComponent, "ius-detail-side-panel", never, { "width": { "alias": "width"; "required": false; }; "title": { "alias": "title"; "required": false; }; "titleTemplate": { "alias": "titleTemplate"; "required": false; }; "titleIcon": { "alias": "titleIcon"; "required": false; }; "collapsible": { "alias": "collapsible"; "required": false; }; "collapsed": { "alias": "collapsed"; "required": false; }; "defaultCollapsed": { "alias": "defaultCollapsed"; "required": false; }; "collapseLabel": { "alias": "collapseLabel"; "required": false; }; "expandLabel": { "alias": "expandLabel"; "required": false; }; "expandIcon": { "alias": "expandIcon"; "required": false; }; "sections": { "alias": "sections"; "required": false; }; "accordion": { "alias": "accordion"; "required": false; }; "accordionMultiple": { "alias": "accordionMultiple"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; }, { "collapsedChange": "collapsedChange"; }, never, ["*"], true, never>;
|
|
12299
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DetailSidePanelComponent, "ius-detail-side-panel", never, { "width": { "alias": "width"; "required": false; }; "title": { "alias": "title"; "required": false; }; "titleTemplate": { "alias": "titleTemplate"; "required": false; }; "titleIcon": { "alias": "titleIcon"; "required": false; }; "collapsible": { "alias": "collapsible"; "required": false; }; "collapsed": { "alias": "collapsed"; "required": false; }; "defaultCollapsed": { "alias": "defaultCollapsed"; "required": false; }; "collapseLabel": { "alias": "collapseLabel"; "required": false; }; "expandLabel": { "alias": "expandLabel"; "required": false; }; "expandIcon": { "alias": "expandIcon"; "required": false; }; "side": { "alias": "side"; "required": false; }; "height": { "alias": "height"; "required": false; }; "sections": { "alias": "sections"; "required": false; }; "accordion": { "alias": "accordion"; "required": false; }; "accordionMultiple": { "alias": "accordionMultiple"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; }, { "collapsedChange": "collapsedChange"; }, never, ["*"], true, never>;
|
|
11517
12300
|
static ngAcceptInputType_collapsible: unknown;
|
|
11518
12301
|
static ngAcceptInputType_defaultCollapsed: unknown;
|
|
11519
12302
|
static ngAcceptInputType_accordion: unknown;
|
|
@@ -11785,5 +12568,556 @@ declare class StageDetailDrawerComponent {
|
|
|
11785
12568
|
static ngAcceptInputType_closeOnEsc: unknown;
|
|
11786
12569
|
}
|
|
11787
12570
|
|
|
11788
|
-
|
|
11789
|
-
|
|
12571
|
+
/** Familia de color: colorea el ícono y la barra; con `blocking`, también el texto. */
|
|
12572
|
+
type IusFooterStatusTone = 'neutral' | 'info' | 'success' | 'warning' | 'danger';
|
|
12573
|
+
/** Tamaño. Sin `size` explícito hereda `--ius-control-size` del ancestro. */
|
|
12574
|
+
type IusFooterStatusSize = 'small' | 'medium';
|
|
12575
|
+
/**
|
|
12576
|
+
* Marca la salida del bloqueo (TextButton/Button), alineada al centro de la fila
|
|
12577
|
+
* inmediatamente después del texto: `<ius-text-button iusFooterStatusAction …/>`.
|
|
12578
|
+
*/
|
|
12579
|
+
declare class IusFooterStatusActionDirective {
|
|
12580
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<IusFooterStatusActionDirective, never>;
|
|
12581
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<IusFooterStatusActionDirective, "[iusFooterStatusAction]", never, {}, {}, never, never, true, never>;
|
|
12582
|
+
}
|
|
12583
|
+
/**
|
|
12584
|
+
* FooterStatus — Ius Design v2 (familia feedback).
|
|
12585
|
+
*
|
|
12586
|
+
* Línea de estado del pie de acción (`footer` de Drawer/Modal, pie de Form, pie de
|
|
12587
|
+
* página): texto plano sobre la superficie del pie, sin píldora ni caja tintada.
|
|
12588
|
+
* La frase se compone por partes —`label` · `value` (+`separator`+`total`) · `unit`—
|
|
12589
|
+
* y `meter` la ilustra con una `ius-linear-progress-bar`. Con `blocking` pasa a
|
|
12590
|
+
* `role="alert"` y texto tonal; el primario lo deshabilita la vista, no el componente.
|
|
12591
|
+
* Refluye a dos líneas, nunca trunca. Fuente de verdad: `FooterStatus.jsx` + ng-spec.
|
|
12592
|
+
*
|
|
12593
|
+
* Etiqueta de categoría → Tag; callout del cuerpo → Alert.
|
|
12594
|
+
*/
|
|
12595
|
+
declare class FooterStatusComponent {
|
|
12596
|
+
readonly tone: _angular_core.InputSignal<IusFooterStatusTone>;
|
|
12597
|
+
/** Ligadura Material Symbols; `false` oculta el ícono; omitir = default por tono. */
|
|
12598
|
+
readonly icon: _angular_core.InputSignal<string | false | undefined>;
|
|
12599
|
+
/** Texto antes de la cifra («Ocupa», «El lote supera el cupo:»). */
|
|
12600
|
+
readonly label: _angular_core.InputSignal<string | undefined>;
|
|
12601
|
+
/** Cifra principal; un `number` se formatea en es-CO (`1.234`). */
|
|
12602
|
+
readonly value: _angular_core.InputSignal<string | number | null | undefined>;
|
|
12603
|
+
/** Cifra de referencia: `value <separator> total`. */
|
|
12604
|
+
readonly total: _angular_core.InputSignal<string | number | null | undefined>;
|
|
12605
|
+
/** Conector entre cifras; `''` las deja adyacentes. */
|
|
12606
|
+
readonly separator: _angular_core.InputSignal<string>;
|
|
12607
|
+
/** Texto después de la cifra («cupos disponibles»). */
|
|
12608
|
+
readonly unit: _angular_core.InputSignal<string | undefined>;
|
|
12609
|
+
/** Barra horizontal bajo el texto. */
|
|
12610
|
+
readonly meter: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
12611
|
+
/** Varios valores en la barra, sobre `total`. Requiere `meter`. */
|
|
12612
|
+
readonly segments: _angular_core.InputSignal<IusLinearProgressSegment[] | undefined>;
|
|
12613
|
+
/** Leyenda (punto + etiqueta + valor) de la barra segmentada. */
|
|
12614
|
+
readonly meterLegend: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
12615
|
+
/** La condición impide confirmar: `role="alert"` + texto tonal. */
|
|
12616
|
+
readonly blocking: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
12617
|
+
readonly size: _angular_core.InputSignal<IusFooterStatusSize>;
|
|
12618
|
+
private readonly actionRef;
|
|
12619
|
+
protected readonly hasAction: _angular_core.Signal<boolean>;
|
|
12620
|
+
protected readonly glyph: _angular_core.Signal<string | null>;
|
|
12621
|
+
protected readonly hasValue: _angular_core.Signal<boolean>;
|
|
12622
|
+
protected readonly showTotal: _angular_core.Signal<boolean>;
|
|
12623
|
+
protected readonly before: _angular_core.Signal<string>;
|
|
12624
|
+
protected readonly valueText: _angular_core.Signal<string>;
|
|
12625
|
+
protected readonly connector: _angular_core.Signal<string>;
|
|
12626
|
+
protected readonly totalText: _angular_core.Signal<string>;
|
|
12627
|
+
protected readonly after: _angular_core.Signal<string>;
|
|
12628
|
+
private readonly hasSegments;
|
|
12629
|
+
protected readonly showMeter: _angular_core.Signal<boolean>;
|
|
12630
|
+
/** `max` de la barra: el `total`, o el default de LinearProgressBar si no es numérico. */
|
|
12631
|
+
protected readonly meterMax: _angular_core.Signal<number>;
|
|
12632
|
+
protected readonly meterValue: _angular_core.Signal<number>;
|
|
12633
|
+
/** La barra simple no admite gris: en `neutral` se rinde como segmento único. */
|
|
12634
|
+
protected readonly meterSegments: _angular_core.Signal<IusLinearProgressSegment[] | undefined>;
|
|
12635
|
+
protected readonly meterTone: _angular_core.Signal<IusLinearProgressTone>;
|
|
12636
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FooterStatusComponent, never>;
|
|
12637
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<FooterStatusComponent, "ius-footer-status", never, { "tone": { "alias": "tone"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; "total": { "alias": "total"; "required": false; "isSignal": true; }; "separator": { "alias": "separator"; "required": false; "isSignal": true; }; "unit": { "alias": "unit"; "required": false; "isSignal": true; }; "meter": { "alias": "meter"; "required": false; "isSignal": true; }; "segments": { "alias": "segments"; "required": false; "isSignal": true; }; "meterLegend": { "alias": "meterLegend"; "required": false; "isSignal": true; }; "blocking": { "alias": "blocking"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, ["actionRef"], ["[iusFooterStatusAction]"], true, never>;
|
|
12638
|
+
}
|
|
12639
|
+
|
|
12640
|
+
type KanbanMenuRow = {
|
|
12641
|
+
sep: true;
|
|
12642
|
+
key: string;
|
|
12643
|
+
} | {
|
|
12644
|
+
sep: false;
|
|
12645
|
+
key: string | number;
|
|
12646
|
+
action: IusKanbanCardAction;
|
|
12647
|
+
};
|
|
12648
|
+
|
|
12649
|
+
/** Color del módulo / de la insignia: 6 semánticos + 6 frutas categóricas. */
|
|
12650
|
+
type IusKanbanTone = 'primary' | 'info' | 'success' | 'warning' | 'danger' | 'neutral' | 'durazno' | 'banano' | 'sandia' | 'arandano' | 'uva' | 'aguacate';
|
|
12651
|
+
/** Tono de una línea del cuerpo (texto + ícono prefijo). */
|
|
12652
|
+
type IusKanbanLineTone = 'neutral' | 'muted' | 'info' | 'success' | 'warning' | 'danger' | 'primary';
|
|
12653
|
+
type IusKanbanCardLayout = 'stacked' | 'row';
|
|
12654
|
+
/** Solo demos: fuerza un estado visual primario. */
|
|
12655
|
+
type IusKanbanCardState = 'hover' | 'focused';
|
|
12656
|
+
type IusKanbanId = string | number;
|
|
12657
|
+
/** Acción secundaria del menú ⋮ (también la usa KanbanColumn). */
|
|
12658
|
+
interface IusKanbanCardAction {
|
|
12659
|
+
key?: string | number;
|
|
12660
|
+
icon?: string;
|
|
12661
|
+
label?: string;
|
|
12662
|
+
onClick?: (event: MouseEvent) => void;
|
|
12663
|
+
/** Agrupa el menú con divisores. */
|
|
12664
|
+
group?: string;
|
|
12665
|
+
/** Acción destructiva (rojo). */
|
|
12666
|
+
danger?: boolean;
|
|
12667
|
+
}
|
|
12668
|
+
/** Insignia superior derecha (prioridad/novedad). Solo indicador. */
|
|
12669
|
+
interface IusKanbanCardFlag {
|
|
12670
|
+
/** Default `dot`. */
|
|
12671
|
+
variant?: IusInsigniaVariant;
|
|
12672
|
+
/** Default `warning`. */
|
|
12673
|
+
tone?: IusKanbanTone;
|
|
12674
|
+
/** Default `small`. */
|
|
12675
|
+
size?: IusInsigniaSize;
|
|
12676
|
+
count?: number | string;
|
|
12677
|
+
ring?: boolean;
|
|
12678
|
+
label?: string;
|
|
12679
|
+
ariaLabel?: string;
|
|
12680
|
+
}
|
|
12681
|
+
/** Texto de una línea: string/número o `TemplateRef` (equivalente del nodo React). */
|
|
12682
|
+
type IusKanbanCardText = string | number | TemplateRef<unknown>;
|
|
12683
|
+
interface IusKanbanCardLineObject {
|
|
12684
|
+
text?: IusKanbanCardText;
|
|
12685
|
+
/** Ícono Material Symbols como **prefijo** (a la izquierda de la línea). */
|
|
12686
|
+
icon?: string;
|
|
12687
|
+
/** Color del texto + ícono. */
|
|
12688
|
+
tone?: IusKanbanLineTone;
|
|
12689
|
+
}
|
|
12690
|
+
/** Una línea: texto simple, `TemplateRef` u objeto `{text, icon, tone}`. */
|
|
12691
|
+
type IusKanbanCardLine = IusKanbanCardText | IusKanbanCardLineObject;
|
|
12692
|
+
/** Config de `ius-tag` para la fila de tags (size `small` por defecto). */
|
|
12693
|
+
interface IusKanbanCardTagConfig {
|
|
12694
|
+
label?: string;
|
|
12695
|
+
tone?: IusTagTone;
|
|
12696
|
+
variant?: IusTagVariant;
|
|
12697
|
+
size?: IusTagSize;
|
|
12698
|
+
shape?: IusTagShape;
|
|
12699
|
+
role?: IusTagRole;
|
|
12700
|
+
icon?: string;
|
|
12701
|
+
dot?: boolean;
|
|
12702
|
+
count?: number | string;
|
|
12703
|
+
}
|
|
12704
|
+
/** Un tag: string, config de Tag o `TemplateRef`. */
|
|
12705
|
+
type IusKanbanCardTag = string | IusKanbanCardTagConfig | TemplateRef<unknown>;
|
|
12706
|
+
/** Responsable: chip Avatar + nombre en el pie (junto al caption). */
|
|
12707
|
+
interface IusKanbanCardAssignee {
|
|
12708
|
+
name?: string;
|
|
12709
|
+
src?: string;
|
|
12710
|
+
avatar?: string;
|
|
12711
|
+
monogram?: string;
|
|
12712
|
+
icon?: string;
|
|
12713
|
+
color?: IusAvatarColor;
|
|
12714
|
+
}
|
|
12715
|
+
type LineKind = 'overline' | 'title' | 'subtitle' | 'paragraph' | 'caption';
|
|
12716
|
+
interface ResolvedLine extends IusKanbanCardLineObject {
|
|
12717
|
+
kind: LineKind;
|
|
12718
|
+
textTpl: TemplateRef<unknown> | null;
|
|
12719
|
+
}
|
|
12720
|
+
interface ResolvedTag {
|
|
12721
|
+
tpl: TemplateRef<unknown> | null;
|
|
12722
|
+
cfg: IusKanbanCardTagConfig;
|
|
12723
|
+
}
|
|
12724
|
+
/** Slot al inicio proyectado (Avatar, ícono de tipo, Checkbox…). */
|
|
12725
|
+
declare class IusKanbanCardLeadingDirective {
|
|
12726
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<IusKanbanCardLeadingDirective, never>;
|
|
12727
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<IusKanbanCardLeadingDirective, "[iusKanbanCardLeading]", never, {}, {}, never, never, true, never>;
|
|
12728
|
+
}
|
|
12729
|
+
/** Slot al final proyectado (Switch «obligatorio», control…). */
|
|
12730
|
+
declare class IusKanbanCardTrailingDirective {
|
|
12731
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<IusKanbanCardTrailingDirective, never>;
|
|
12732
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<IusKanbanCardTrailingDirective, "[iusKanbanCardTrailing]", never, {}, {}, never, never, true, never>;
|
|
12733
|
+
}
|
|
12734
|
+
/** Contenido libre proyectado: reemplaza el cuerpo de líneas (`children` del golden). */
|
|
12735
|
+
declare class IusKanbanCardBodyDirective {
|
|
12736
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<IusKanbanCardBodyDirective, never>;
|
|
12737
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<IusKanbanCardBodyDirective, "[iusKanbanCardBody]", never, {}, {}, never, never, true, never>;
|
|
12738
|
+
}
|
|
12739
|
+
/**
|
|
12740
|
+
* KanbanCard — Ius Design v2 (familia kanban).
|
|
12741
|
+
*
|
|
12742
|
+
* Ítem arrastrable **presentacional**: el arrastre lo cablea KanbanBoard
|
|
12743
|
+
* (`cdkDrag` en el contenedor; el grip es `cdkDragHandle`). Cuerpo flexible de
|
|
12744
|
+
* líneas `overline·title·subtitle·paragraph·tags·caption`, cada una string,
|
|
12745
|
+
* `TemplateRef` o `{text, icon, tone}`. `layout="row"` + `handle` = fila
|
|
12746
|
+
* reordenable de un constructor.
|
|
12747
|
+
*
|
|
12748
|
+
* Slots `leading`/`trailing`/cuerpo libre: por proyección
|
|
12749
|
+
* (`[iusKanbanCardLeading]`…) o por `TemplateRef` (lo que usa el board desde los
|
|
12750
|
+
* ítems), con `templateContext` como contexto.
|
|
12751
|
+
*
|
|
12752
|
+
* Host = la tarjeta; `cardRef` expone la raíz (el forwardRef que el golden no
|
|
12753
|
+
* tiene). `clicked` no dispara tras un arrastre. Para tarjetas estáticas que
|
|
12754
|
+
* navegan a detalle → ListCard.
|
|
12755
|
+
* Fuente de verdad: `KanbanCard.jsx` + `KanbanCard.d.ts` + `KanbanCard.ng-spec.md`.
|
|
12756
|
+
*/
|
|
12757
|
+
declare class KanbanCardComponent {
|
|
12758
|
+
/** Raíz de la tarjeta (equivalente del `cardRef` del golden). */
|
|
12759
|
+
readonly cardRef: ElementRef<HTMLElement>;
|
|
12760
|
+
/** Línea superior tipo eyebrow (categoría, código…). */
|
|
12761
|
+
readonly overline: _angular_core.InputSignal<IusKanbanCardLine | undefined>;
|
|
12762
|
+
/** Título / nombre. */
|
|
12763
|
+
readonly title: _angular_core.InputSignal<IusKanbanCardLine | undefined>;
|
|
12764
|
+
/** Subtítulo corto (origen del lead, tipo de campo…). */
|
|
12765
|
+
readonly subtitle: _angular_core.InputSignal<IusKanbanCardLine | undefined>;
|
|
12766
|
+
/** Párrafo / cuerpo largo (hasta 3 líneas). */
|
|
12767
|
+
readonly paragraph: _angular_core.InputSignal<IusKanbanCardLine | undefined>;
|
|
12768
|
+
/** Pie fechado, normalmente con tono (umbral de inactividad). */
|
|
12769
|
+
readonly caption: _angular_core.InputSignal<IusKanbanCardLine | undefined>;
|
|
12770
|
+
/** Fila de Tags bajo el cuerpo. */
|
|
12771
|
+
readonly tags: _angular_core.InputSignal<readonly IusKanbanCardTag[] | undefined>;
|
|
12772
|
+
/** Responsable: config (Avatar + nombre) o `TemplateRef`. */
|
|
12773
|
+
readonly assignee: _angular_core.InputSignal<TemplateRef<unknown> | IusKanbanCardAssignee | undefined>;
|
|
12774
|
+
/** Insignia superior derecha (prioridad/novedad). */
|
|
12775
|
+
readonly flag: _angular_core.InputSignal<IusKanbanCardFlag | undefined>;
|
|
12776
|
+
/** Slot al inicio por `TemplateRef` (alternativa a `[iusKanbanCardLeading]`). */
|
|
12777
|
+
readonly leading: _angular_core.InputSignal<TemplateRef<unknown> | undefined>;
|
|
12778
|
+
/** Slot al final por `TemplateRef` (alternativa a `[iusKanbanCardTrailing]`). */
|
|
12779
|
+
readonly trailing: _angular_core.InputSignal<TemplateRef<unknown> | undefined>;
|
|
12780
|
+
/** Cuerpo libre por `TemplateRef` (alternativa a `[iusKanbanCardBody]`). */
|
|
12781
|
+
readonly content: _angular_core.InputSignal<TemplateRef<unknown> | undefined>;
|
|
12782
|
+
/** Contexto con el que se estampan `leading`/`trailing`/`content`. */
|
|
12783
|
+
readonly templateContext: _angular_core.InputSignal<unknown>;
|
|
12784
|
+
/** `stacked` (tarjeta vertical) · `row` (fila horizontal compacta). */
|
|
12785
|
+
readonly layout: _angular_core.InputSignal<IusKanbanCardLayout>;
|
|
12786
|
+
/** Grip `drag_indicator`: el arrastre nace del grip, no de toda la card. */
|
|
12787
|
+
readonly handle: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
12788
|
+
/** Color del módulo para el anillo de selección. */
|
|
12789
|
+
readonly accent: _angular_core.InputSignal<IusKanbanTone>;
|
|
12790
|
+
/** Seleccionada: anillo accent. */
|
|
12791
|
+
readonly selected: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
12792
|
+
/** Origen del arrastre: atenuada. */
|
|
12793
|
+
readonly dragging: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
12794
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
12795
|
+
/** Solo demos: fuerza `hover` · `focused`. */
|
|
12796
|
+
readonly state: _angular_core.InputSignal<IusKanbanCardState | undefined>;
|
|
12797
|
+
/** Acciones secundarias → menú ⋮ en Popover. */
|
|
12798
|
+
readonly actions: _angular_core.InputSignal<readonly IusKanbanCardAction[] | undefined>;
|
|
12799
|
+
/** La marca arrastrable el orquestador (cursor grab y grip activo). */
|
|
12800
|
+
readonly draggable: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
12801
|
+
/** Id del ítem (se refleja en `data-item-id`). */
|
|
12802
|
+
readonly itemId: _angular_core.InputSignal<IusKanbanId | undefined>;
|
|
12803
|
+
readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
|
|
12804
|
+
/**
|
|
12805
|
+
* Fuerza si la card es interactiva. Por defecto lo es cuando `(clicked)` está
|
|
12806
|
+
* enlazado (el `onClick` del golden); el board lo fija según `multiSelect`.
|
|
12807
|
+
*/
|
|
12808
|
+
readonly clickable: _angular_core.InputSignal<boolean | undefined>;
|
|
12809
|
+
/** Clic en la card (abrir detalle). No dispara tras arrastrar. */
|
|
12810
|
+
readonly clicked: EventEmitter<MouseEvent | KeyboardEvent>;
|
|
12811
|
+
private readonly leadingRef;
|
|
12812
|
+
private readonly trailingRef;
|
|
12813
|
+
private readonly bodyRef;
|
|
12814
|
+
protected readonly menuOpen: _angular_core.WritableSignal<boolean>;
|
|
12815
|
+
private didDrag;
|
|
12816
|
+
protected readonly hasLeading: _angular_core.Signal<boolean>;
|
|
12817
|
+
protected readonly hasTrailing: _angular_core.Signal<boolean>;
|
|
12818
|
+
protected readonly hasCustomBody: _angular_core.Signal<boolean>;
|
|
12819
|
+
protected readonly lines: _angular_core.Signal<ResolvedLine[]>;
|
|
12820
|
+
protected readonly captionLine: _angular_core.Signal<ResolvedLine | null>;
|
|
12821
|
+
protected readonly resolvedTags: _angular_core.Signal<ResolvedTag[]>;
|
|
12822
|
+
protected readonly assigneeTpl: _angular_core.Signal<TemplateRef<unknown> | null>;
|
|
12823
|
+
protected readonly assigneeCfg: _angular_core.Signal<IusKanbanCardAssignee | null>;
|
|
12824
|
+
protected readonly menuRows: _angular_core.Signal<KanbanMenuRow[]>;
|
|
12825
|
+
protected readonly hasActions: _angular_core.Signal<boolean>;
|
|
12826
|
+
protected readonly hasCorner: _angular_core.Signal<boolean>;
|
|
12827
|
+
protected get isClickable(): boolean;
|
|
12828
|
+
constructor();
|
|
12829
|
+
protected flagAriaLabel(flag: IusKanbanCardFlag): string | undefined;
|
|
12830
|
+
/** El Popover solo abre por clic: Enter/Espacio sobre el ⋮ hacen lo mismo. */
|
|
12831
|
+
protected toggleMenu(event: Event): void;
|
|
12832
|
+
protected onAction(action: IusKanbanCardAction, event: MouseEvent): void;
|
|
12833
|
+
protected onClick(event: MouseEvent): void;
|
|
12834
|
+
protected onKeydown(event: KeyboardEvent): void;
|
|
12835
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KanbanCardComponent, never>;
|
|
12836
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KanbanCardComponent, "ius-kanban-card", never, { "overline": { "alias": "overline"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "subtitle": { "alias": "subtitle"; "required": false; "isSignal": true; }; "paragraph": { "alias": "paragraph"; "required": false; "isSignal": true; }; "caption": { "alias": "caption"; "required": false; "isSignal": true; }; "tags": { "alias": "tags"; "required": false; "isSignal": true; }; "assignee": { "alias": "assignee"; "required": false; "isSignal": true; }; "flag": { "alias": "flag"; "required": false; "isSignal": true; }; "leading": { "alias": "leading"; "required": false; "isSignal": true; }; "trailing": { "alias": "trailing"; "required": false; "isSignal": true; }; "content": { "alias": "content"; "required": false; "isSignal": true; }; "templateContext": { "alias": "templateContext"; "required": false; "isSignal": true; }; "layout": { "alias": "layout"; "required": false; "isSignal": true; }; "handle": { "alias": "handle"; "required": false; "isSignal": true; }; "accent": { "alias": "accent"; "required": false; "isSignal": true; }; "selected": { "alias": "selected"; "required": false; "isSignal": true; }; "dragging": { "alias": "dragging"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "state": { "alias": "state"; "required": false; "isSignal": true; }; "actions": { "alias": "actions"; "required": false; "isSignal": true; }; "draggable": { "alias": "draggable"; "required": false; "isSignal": true; }; "itemId": { "alias": "itemId"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "clickable": { "alias": "clickable"; "required": false; "isSignal": true; }; }, { "clicked": "clicked"; }, ["leadingRef", "trailingRef", "bodyRef"], ["[iusKanbanCardLeading]", "[iusKanbanCardBody]", "[iusKanbanCardTrailing]"], true, never>;
|
|
12837
|
+
}
|
|
12838
|
+
|
|
12839
|
+
/**
|
|
12840
|
+
* KanbanColumn — Ius Design v2 (familia kanban).
|
|
12841
|
+
*
|
|
12842
|
+
* Silo de un board: cabecera (punto + título + contador + ⋮) sobre la lista
|
|
12843
|
+
* vertical de KanbanCards (proyectadas), estado vacío (EmptyState compact) y
|
|
12844
|
+
* pie «Agregar». `bare` = lista contenedora sin cromo que crece con su contenido
|
|
12845
|
+
* y no corta la rueda (el scroll lo pone el ancestro). `collapsible` la pliega a
|
|
12846
|
+
* una franja de 44px que sigue siendo destino de arrastre.
|
|
12847
|
+
*
|
|
12848
|
+
* **Presentacional**: el arrastre lo cablea KanbanBoard con CDK drag-drop
|
|
12849
|
+
* (`cdkDropList` sobre el host con `.ius-kbcol__body`/`.ius-kbcol__strip` como
|
|
12850
|
+
* contenedor y `cdkDrag` para el reorden de columnas; la cabecera y la franja
|
|
12851
|
+
* son su `cdkDragHandle`). `bodyRef` expone el cuerpo desplazable.
|
|
12852
|
+
* Fuente de verdad: `KanbanColumn.jsx` + `KanbanColumn.d.ts` + `KanbanColumn.ng-spec.md`.
|
|
12853
|
+
*/
|
|
12854
|
+
declare class KanbanColumnComponent {
|
|
12855
|
+
/** Título de la etapa. */
|
|
12856
|
+
readonly title: _angular_core.InputSignal<string | undefined>;
|
|
12857
|
+
/** Color del punto de cabecera y del contador. */
|
|
12858
|
+
readonly tone: _angular_core.InputSignal<IusKanbanTone>;
|
|
12859
|
+
/** Contador (píldora). Suele ser el nº de tarjetas. */
|
|
12860
|
+
readonly count: _angular_core.InputSignal<number | undefined>;
|
|
12861
|
+
/** Color del módulo para el resaltado de drop y el placeholder. */
|
|
12862
|
+
readonly accent: _angular_core.InputSignal<IusKanbanTone>;
|
|
12863
|
+
/** Acciones de columna → menú ⋮. */
|
|
12864
|
+
readonly actions: _angular_core.InputSignal<readonly IusKanbanCardAction[] | undefined>;
|
|
12865
|
+
readonly addLabel: _angular_core.InputSignalWithTransform<string, string | undefined>;
|
|
12866
|
+
/**
|
|
12867
|
+
* Muestra el pie «Agregar». Por defecto aparece cuando `(addItem)` está
|
|
12868
|
+
* enlazado (el `onAddItem` del golden); el board lo fija explícito.
|
|
12869
|
+
*/
|
|
12870
|
+
readonly addable: _angular_core.InputSignal<boolean | undefined>;
|
|
12871
|
+
/** Sin tarjetas: estado vacío (EmptyState compact). */
|
|
12872
|
+
readonly empty: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
12873
|
+
readonly emptyLabel: _angular_core.InputSignalWithTransform<string, string | undefined>;
|
|
12874
|
+
readonly emptyIcon: _angular_core.InputSignalWithTransform<string, string | undefined>;
|
|
12875
|
+
/** Sin cabecera/fondo: lista contenedora, sin scroll propio. */
|
|
12876
|
+
readonly bare: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
12877
|
+
/** Ancho fijo (px). Ignorado en `bare`. */
|
|
12878
|
+
readonly width: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
12879
|
+
/** Botón de plegar en la cabecera. Ignorado en `bare`. */
|
|
12880
|
+
readonly collapsible: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
12881
|
+
/** Plegada (controlado). */
|
|
12882
|
+
readonly collapsed: _angular_core.InputSignal<boolean | undefined>;
|
|
12883
|
+
/** Plegada al montar (no controlado). */
|
|
12884
|
+
readonly defaultCollapsed: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
12885
|
+
/** Cabecera arrastrable (reorden de columnas). */
|
|
12886
|
+
readonly draggable: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
12887
|
+
/** Esta columna se está arrastrando. */
|
|
12888
|
+
readonly dragging: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
12889
|
+
/** Destino de drop actual (resaltado). */
|
|
12890
|
+
readonly over: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
12891
|
+
/** Botón «Agregar» del pie. */
|
|
12892
|
+
readonly addItem: EventEmitter<MouseEvent>;
|
|
12893
|
+
/** Se pidió plegar (`true`) o desplegar (`false`). */
|
|
12894
|
+
readonly collapsedChange: EventEmitter<boolean>;
|
|
12895
|
+
/** Cuerpo desplazable (el `bodyRef` del golden). */
|
|
12896
|
+
readonly bodyRef: _angular_core.Signal<ElementRef<HTMLElement> | undefined>;
|
|
12897
|
+
private readonly innerCollapsed;
|
|
12898
|
+
protected readonly menuOpen: _angular_core.WritableSignal<boolean>;
|
|
12899
|
+
protected readonly isCollapsed: _angular_core.Signal<boolean>;
|
|
12900
|
+
protected readonly hostWidth: _angular_core.Signal<string>;
|
|
12901
|
+
protected readonly countTone: _angular_core.Signal<IusKanbanTone>;
|
|
12902
|
+
protected readonly emptyTone: _angular_core.Signal<IusEmptyStateTone | undefined>;
|
|
12903
|
+
protected readonly menuRows: _angular_core.Signal<KanbanMenuRow[]>;
|
|
12904
|
+
protected readonly hasActions: _angular_core.Signal<boolean>;
|
|
12905
|
+
protected get showAdd(): boolean;
|
|
12906
|
+
protected setCollapsed(value: boolean, event: MouseEvent): void;
|
|
12907
|
+
protected onAction(action: IusKanbanCardAction, event: MouseEvent): void;
|
|
12908
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KanbanColumnComponent, never>;
|
|
12909
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KanbanColumnComponent, "ius-kanban-column", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "tone": { "alias": "tone"; "required": false; "isSignal": true; }; "count": { "alias": "count"; "required": false; "isSignal": true; }; "accent": { "alias": "accent"; "required": false; "isSignal": true; }; "actions": { "alias": "actions"; "required": false; "isSignal": true; }; "addLabel": { "alias": "addLabel"; "required": false; "isSignal": true; }; "addable": { "alias": "addable"; "required": false; "isSignal": true; }; "empty": { "alias": "empty"; "required": false; "isSignal": true; }; "emptyLabel": { "alias": "emptyLabel"; "required": false; "isSignal": true; }; "emptyIcon": { "alias": "emptyIcon"; "required": false; "isSignal": true; }; "bare": { "alias": "bare"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "collapsible": { "alias": "collapsible"; "required": false; "isSignal": true; }; "collapsed": { "alias": "collapsed"; "required": false; "isSignal": true; }; "defaultCollapsed": { "alias": "defaultCollapsed"; "required": false; "isSignal": true; }; "draggable": { "alias": "draggable"; "required": false; "isSignal": true; }; "dragging": { "alias": "dragging"; "required": false; "isSignal": true; }; "over": { "alias": "over"; "required": false; "isSignal": true; }; }, { "addItem": "addItem"; "collapsedChange": "collapsedChange"; }, never, ["*"], true, never>;
|
|
12910
|
+
}
|
|
12911
|
+
|
|
12912
|
+
type IusKanbanBoardVariant = 'board' | 'list';
|
|
12913
|
+
interface IusKanbanBoardColumn {
|
|
12914
|
+
/** Id único de la columna/etapa. */
|
|
12915
|
+
id: string;
|
|
12916
|
+
title?: string;
|
|
12917
|
+
/** Color del punto + contador de la cabecera. */
|
|
12918
|
+
tone?: IusKanbanTone;
|
|
12919
|
+
/** Acento propio (anula el del board para esta columna). */
|
|
12920
|
+
accent?: IusKanbanTone;
|
|
12921
|
+
/** Contador explícito (por defecto = nº de tarjetas). */
|
|
12922
|
+
count?: number;
|
|
12923
|
+
/** Acciones de columna → menú ⋮. */
|
|
12924
|
+
actions?: IusKanbanCardAction[];
|
|
12925
|
+
/** Ancho propio (px). */
|
|
12926
|
+
width?: number;
|
|
12927
|
+
addLabel?: string;
|
|
12928
|
+
emptyLabel?: string;
|
|
12929
|
+
/** Columna sin cromo (lista contenedora). */
|
|
12930
|
+
bare?: boolean;
|
|
12931
|
+
/** Plegable a franja; plegada sigue siendo destino de drop (la tarjeta va al final). */
|
|
12932
|
+
collapsible?: boolean;
|
|
12933
|
+
/** Plegada (controlado; usar con `(columnCollapse)`). */
|
|
12934
|
+
collapsed?: boolean;
|
|
12935
|
+
/** Plegada al montar (no controlado). */
|
|
12936
|
+
defaultCollapsed?: boolean;
|
|
12937
|
+
}
|
|
12938
|
+
/** Contexto de `leading`/`trailing`/`content` de un ítem: `let-item`. */
|
|
12939
|
+
interface IusKanbanItemContext {
|
|
12940
|
+
$implicit: IusKanbanBoardItem;
|
|
12941
|
+
}
|
|
12942
|
+
/** Ítem: `id` (+ `columnId` en board) y las props de KanbanCard. */
|
|
12943
|
+
interface IusKanbanBoardItem {
|
|
12944
|
+
id: IusKanbanId;
|
|
12945
|
+
/** Columna a la que pertenece (ignorado en `list`). */
|
|
12946
|
+
columnId?: string;
|
|
12947
|
+
overline?: IusKanbanCardLine;
|
|
12948
|
+
title?: IusKanbanCardLine;
|
|
12949
|
+
subtitle?: IusKanbanCardLine;
|
|
12950
|
+
paragraph?: IusKanbanCardLine;
|
|
12951
|
+
caption?: IusKanbanCardLine;
|
|
12952
|
+
tags?: IusKanbanCardTag[];
|
|
12953
|
+
assignee?: IusKanbanCardAssignee | TemplateRef<unknown>;
|
|
12954
|
+
flag?: IusKanbanCardFlag;
|
|
12955
|
+
leading?: TemplateRef<IusKanbanItemContext>;
|
|
12956
|
+
trailing?: TemplateRef<IusKanbanItemContext>;
|
|
12957
|
+
/** Cuerpo libre (el `children` del golden). */
|
|
12958
|
+
content?: TemplateRef<IusKanbanItemContext>;
|
|
12959
|
+
actions?: IusKanbanCardAction[];
|
|
12960
|
+
ariaLabel?: string;
|
|
12961
|
+
layout?: IusKanbanCardLayout;
|
|
12962
|
+
handle?: boolean;
|
|
12963
|
+
disabled?: boolean;
|
|
12964
|
+
selected?: boolean;
|
|
12965
|
+
/** Clic propio del ítem (gana sobre `(itemClick)`). */
|
|
12966
|
+
onClick?: (event: MouseEvent | KeyboardEvent) => void;
|
|
12967
|
+
}
|
|
12968
|
+
interface IusKanbanItemMoveInfo {
|
|
12969
|
+
/** Columna de origen (undefined en `list`). */
|
|
12970
|
+
from?: string;
|
|
12971
|
+
/** Columna destino (undefined en `list`). */
|
|
12972
|
+
to?: string;
|
|
12973
|
+
/** Índice final dentro de la columna destino (-1 = al final, «Mover todas a…»). */
|
|
12974
|
+
index: number;
|
|
12975
|
+
}
|
|
12976
|
+
interface IusKanbanItemMoveEvent {
|
|
12977
|
+
itemId: IusKanbanId;
|
|
12978
|
+
info: IusKanbanItemMoveInfo;
|
|
12979
|
+
}
|
|
12980
|
+
interface IusKanbanItemsMoveEvent {
|
|
12981
|
+
itemIds: IusKanbanId[];
|
|
12982
|
+
info: IusKanbanItemMoveInfo;
|
|
12983
|
+
}
|
|
12984
|
+
/** Lo que el golden esparce como `dragProps` en `renderCard`. */
|
|
12985
|
+
interface IusKanbanCardDragProps {
|
|
12986
|
+
draggable: boolean;
|
|
12987
|
+
dragging: boolean;
|
|
12988
|
+
itemId: IusKanbanId;
|
|
12989
|
+
accent: IusKanbanTone;
|
|
12990
|
+
layout: IusKanbanCardLayout;
|
|
12991
|
+
handle: boolean;
|
|
12992
|
+
}
|
|
12993
|
+
/** Contexto de `renderCard`: `let-item let-drag="drag"`. */
|
|
12994
|
+
interface IusKanbanRenderCardContext {
|
|
12995
|
+
$implicit: IusKanbanBoardItem;
|
|
12996
|
+
drag: IusKanbanCardDragProps;
|
|
12997
|
+
}
|
|
12998
|
+
/**
|
|
12999
|
+
* KanbanBoard — Ius Design v2 (familia kanban). **Orquestador de drag-and-drop.**
|
|
13000
|
+
*
|
|
13001
|
+
* `variant="board"`: columnas (pipeline) — mover tarjetas entre/dentro de etapas
|
|
13002
|
+
* y reordenar columnas por la cabecera. `variant="list"`: sortable vertical de
|
|
13003
|
+
* una sola lista sin cromo (campos de plantilla, checklist); crece con su
|
|
13004
|
+
* contenido y deja pasar la rueda al ancestro (`ius-scroll-area`).
|
|
13005
|
+
*
|
|
13006
|
+
* DnD con `@angular/cdk/drag-drop`: `cdkDropList` por columna (conectadas por
|
|
13007
|
+
* `cdkDropListGroup`), `cdkDrag` por tarjeta y lista horizontal de columnas; el
|
|
13008
|
+
* índice sale del CDK. Estado de orden **no controlado** (resincroniza si
|
|
13009
|
+
* `items`/`columns` cambian por referencia) y avisa por outputs. Multi-selección
|
|
13010
|
+
* Cmd/Ctrl-click (arrastrar una seleccionada mueve la pila), «Mover todas a…»
|
|
13011
|
+
* en el ⋮ y columnas plegables.
|
|
13012
|
+
* Fuente de verdad: `KanbanBoard.jsx` + `KanbanBoard.d.ts` + `KanbanBoard.ng-spec.md`.
|
|
13013
|
+
*/
|
|
13014
|
+
declare class KanbanBoardComponent {
|
|
13015
|
+
private readonly injector;
|
|
13016
|
+
/** Columnas/etapas (board). En `list` solo se toma la primera como config. */
|
|
13017
|
+
readonly columns: _angular_core.InputSignal<readonly IusKanbanBoardColumn[]>;
|
|
13018
|
+
/** Ítems; cada uno con `id` y, en board, `columnId`. */
|
|
13019
|
+
readonly items: _angular_core.InputSignal<readonly IusKanbanBoardItem[]>;
|
|
13020
|
+
/** Color del módulo (anillos de selección/drop). */
|
|
13021
|
+
readonly accent: _angular_core.InputSignal<IusKanbanTone>;
|
|
13022
|
+
readonly variant: _angular_core.InputSignal<IusKanbanBoardVariant>;
|
|
13023
|
+
/** Permite arrastrar tarjetas. */
|
|
13024
|
+
readonly sortable: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
13025
|
+
/** Reordenar columnas arrastrando su cabecera (solo board). */
|
|
13026
|
+
readonly reorderColumns: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
13027
|
+
/** Default `stacked` (board) / `row` (list). */
|
|
13028
|
+
readonly cardLayout: _angular_core.InputSignal<IusKanbanCardLayout | undefined>;
|
|
13029
|
+
/** Default false (board) / true (list). */
|
|
13030
|
+
readonly cardHandle: _angular_core.InputSignalWithTransform<boolean | undefined, unknown>;
|
|
13031
|
+
/**
|
|
13032
|
+
* Render custom de cada tarjeta. Contexto `let-item let-drag="drag"`: aplicar
|
|
13033
|
+
* `drag.draggable/dragging/handle/itemId/accent/layout` al `ius-kanban-card`.
|
|
13034
|
+
*/
|
|
13035
|
+
readonly renderCard: _angular_core.InputSignal<TemplateRef<IusKanbanRenderCardContext> | undefined>;
|
|
13036
|
+
/** Ancho por defecto de columna (px). */
|
|
13037
|
+
readonly columnWidth: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
13038
|
+
/** Id de la tarjeta seleccionada (anillo accent). */
|
|
13039
|
+
readonly selectedItemId: _angular_core.InputSignal<IusKanbanId | undefined>;
|
|
13040
|
+
/** Cmd/Ctrl-click selecciona varias; arrastrar una seleccionada mueve la pila. */
|
|
13041
|
+
readonly multiSelect: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
13042
|
+
/** Inyecta «Mover todas a …» en el ⋮ de cada columna con tarjetas. */
|
|
13043
|
+
readonly bulkMove: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
13044
|
+
readonly addColumnLabel: _angular_core.InputSignal<string>;
|
|
13045
|
+
/** Tarjeta movida. */
|
|
13046
|
+
readonly itemMove: EventEmitter<IusKanbanItemMoveEvent>;
|
|
13047
|
+
/** Pila movida (multi-selección o «Mover todas a…»). Si no se enlaza, el bulk emite `itemMove` por id. */
|
|
13048
|
+
readonly itemsMove: EventEmitter<IusKanbanItemsMoveEvent>;
|
|
13049
|
+
/** Clic en una tarjeta (abrir detalle/Drawer). */
|
|
13050
|
+
readonly itemClick: EventEmitter<IusKanbanBoardItem>;
|
|
13051
|
+
/** Cambió la multi-selección. */
|
|
13052
|
+
readonly selectionChange: EventEmitter<IusKanbanId[]>;
|
|
13053
|
+
/** Se pidió plegar/desplegar una columna `collapsible`. */
|
|
13054
|
+
readonly columnCollapse: EventEmitter<{
|
|
13055
|
+
columnId: string;
|
|
13056
|
+
collapsed: boolean;
|
|
13057
|
+
}>;
|
|
13058
|
+
/** Columna reordenada (al soltar). */
|
|
13059
|
+
readonly columnMove: EventEmitter<{
|
|
13060
|
+
columnId: string;
|
|
13061
|
+
index: number;
|
|
13062
|
+
}>;
|
|
13063
|
+
/** Botón «Agregar» al pie de cada columna (undefined en `list`). */
|
|
13064
|
+
readonly addItem: EventEmitter<string | undefined>;
|
|
13065
|
+
/** Botón para crear columna al final del board. */
|
|
13066
|
+
readonly addColumn: EventEmitter<MouseEvent>;
|
|
13067
|
+
protected readonly isList: _angular_core.Signal<boolean>;
|
|
13068
|
+
protected readonly effLayout: _angular_core.Signal<IusKanbanCardLayout>;
|
|
13069
|
+
protected readonly effHandle: _angular_core.Signal<boolean>;
|
|
13070
|
+
protected readonly cols: _angular_core.WritableSignal<IusKanbanBoardColumn[]>;
|
|
13071
|
+
private readonly data;
|
|
13072
|
+
private readonly collapsedMap;
|
|
13073
|
+
private readonly sel;
|
|
13074
|
+
/** Ids que viajan en el arrastre en curso (la pila si hay multi-selección). */
|
|
13075
|
+
private readonly dragIds;
|
|
13076
|
+
protected readonly overCol: _angular_core.WritableSignal<string | null>;
|
|
13077
|
+
/** Alto de la tarjeta tomada: el placeholder lo copia (el golden lo estima de una card). */
|
|
13078
|
+
protected readonly phHeight: _angular_core.WritableSignal<number | null>;
|
|
13079
|
+
private readonly dragInjectors;
|
|
13080
|
+
protected readonly columnActions: _angular_core.Signal<Map<string, IusKanbanCardAction[]>>;
|
|
13081
|
+
protected orderOf(colId: string): IusKanbanId[];
|
|
13082
|
+
protected itemOf(id: IusKanbanId): IusKanbanBoardItem | undefined;
|
|
13083
|
+
protected countOf(col: IusKanbanBoardColumn): number | undefined;
|
|
13084
|
+
protected isColCollapsed(col: IusKanbanBoardColumn): boolean;
|
|
13085
|
+
/** Vacía = sin tarjetas y sin un arrastre encima (el golden pinta ahí el placeholder). */
|
|
13086
|
+
protected isEmpty(col: IusKanbanBoardColumn): boolean;
|
|
13087
|
+
protected isInteractive(item: IusKanbanBoardItem): boolean;
|
|
13088
|
+
protected isSelected(item: IusKanbanBoardItem): boolean;
|
|
13089
|
+
protected isDragging(id: IusKanbanId): boolean;
|
|
13090
|
+
protected itemContext(item: IusKanbanBoardItem): IusKanbanItemContext;
|
|
13091
|
+
protected renderContext(item: IusKanbanBoardItem): IusKanbanRenderCardContext;
|
|
13092
|
+
/**
|
|
13093
|
+
* Injector del `renderCard`: el template del consumidor se declara fuera del
|
|
13094
|
+
* board, así que la card que pinta solo ve su `cdkDrag` (grip y supresión de
|
|
13095
|
+
* clic tras arrastrar) si se le inyecta aquí.
|
|
13096
|
+
*/
|
|
13097
|
+
protected dragInjector(drag: CdkDrag): Injector;
|
|
13098
|
+
protected onCardClick(item: IusKanbanBoardItem, event: MouseEvent | KeyboardEvent): void;
|
|
13099
|
+
private clearSelection;
|
|
13100
|
+
/** Selección en orden del tablero, incluyendo el ancla arrastrada. */
|
|
13101
|
+
private orderedSelection;
|
|
13102
|
+
protected measure(event: Event): void;
|
|
13103
|
+
protected onDragStarted(event: CdkDragStart<IusKanbanId>, colId: string): void;
|
|
13104
|
+
protected onListExited(colId: string): void;
|
|
13105
|
+
protected onItemDrop(event: CdkDragDrop<string, string, IusKanbanId>): void;
|
|
13106
|
+
/**
|
|
13107
|
+
* Índice de inserción de la pila entre las tarjetas que NO viajan: se aplica el
|
|
13108
|
+
* movimiento del ancla que reporta el CDK y se cuentan las ajenas que quedan
|
|
13109
|
+
* antes. En una columna plegada va al final.
|
|
13110
|
+
*/
|
|
13111
|
+
private dropIndex;
|
|
13112
|
+
/** Mueve 1..n ids a `to` en `index`, contiguos y en su orden relativo. */
|
|
13113
|
+
private performMoveIds;
|
|
13114
|
+
/** «Mover todas a …» del menú ⋮ de columna. */
|
|
13115
|
+
private moveAll;
|
|
13116
|
+
protected onColumnDrop(event: CdkDragDrop<unknown, unknown, string>): void;
|
|
13117
|
+
protected toggleCollapse(col: IusKanbanBoardColumn, collapsed: boolean): void;
|
|
13118
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KanbanBoardComponent, never>;
|
|
13119
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<KanbanBoardComponent, "ius-kanban-board", never, { "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "items": { "alias": "items"; "required": false; "isSignal": true; }; "accent": { "alias": "accent"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "sortable": { "alias": "sortable"; "required": false; "isSignal": true; }; "reorderColumns": { "alias": "reorderColumns"; "required": false; "isSignal": true; }; "cardLayout": { "alias": "cardLayout"; "required": false; "isSignal": true; }; "cardHandle": { "alias": "cardHandle"; "required": false; "isSignal": true; }; "renderCard": { "alias": "renderCard"; "required": false; "isSignal": true; }; "columnWidth": { "alias": "columnWidth"; "required": false; "isSignal": true; }; "selectedItemId": { "alias": "selectedItemId"; "required": false; "isSignal": true; }; "multiSelect": { "alias": "multiSelect"; "required": false; "isSignal": true; }; "bulkMove": { "alias": "bulkMove"; "required": false; "isSignal": true; }; "addColumnLabel": { "alias": "addColumnLabel"; "required": false; "isSignal": true; }; }, { "itemMove": "itemMove"; "itemsMove": "itemsMove"; "itemClick": "itemClick"; "selectionChange": "selectionChange"; "columnCollapse": "columnCollapse"; "columnMove": "columnMove"; "addItem": "addItem"; "addColumn": "addColumn"; }, never, never, true, never>;
|
|
13120
|
+
}
|
|
13121
|
+
|
|
13122
|
+
export { ACTUACION_CATALOG, ACTUACION_FUENTES, AccordionComponent, AccountItemComponent, AlertComponent, AnswerFeedbackComponent, AppLayoutComponent, AutocompleteComponent, AvatarComponent, AvatarStackComponent, BarChartComponent, BorderBeamComponent, BreadcrumbComponent, ButtonComponent, CATEGORIES, CATEGORY_DEF, CATEGORY_HUE, CHART_CATEGORICAL_TONES, CHART_SEMANTIC_TONES, CHART_TONES, CLASE_DEF, CalendarComponent, CaptchaFieldComponent, CardComponent, CarouselComponent, CheckboxComponent, ChipComponent, CircularProgressComponent, CodeFieldComponent, CountdownComponent, CountdownRingComponent, DateFilterComponent, DatePickerComponent, DescriptionListComponent, DetailSidePanelComponent, DividerComponent, DocumentViewerComponent, DonutChartComponent, DrawerComponent, DropdownComponent, EVENT_KINDS, EVENT_KIND_ICON, EXT_KIND, EleniaBubbleComponent, EleniaOrbComponent, EmptyStateComponent, EntityNavigatorComponent, EntityRowComponent, EventPillComponent, FUENTES, FUENTE_DEF, FUENTE_FALLBACK, FileItemComponent, FileTypeIconComponent, FileUploadComponent, FlexComponent, FooterStatusComponent, FormComponent, FormFieldComponent, FormSectionComponent, HeaderBarComponent, ILLUSTRATIONS, ILLUSTRATION_ALIAS, ILLUSTRATION_NAMES, IUS_DOCUMENT_VIEWER_ZOOM_STEPS, IUS_FILTER_OPERATORS, IUS_TOAST_DEFAULT_DURATION, IUS_TOAST_DEFAULT_ICON, IconButtonComponent, IllustrationComponent, InsightComponent, InsigniaComponent, IusAccountItemNameDirective, IusAccountItemSubtitleDirective, IusAccountItemTrailingDirective, IusAlertActionsDirective, IusAlertTrailingDirective, IusCalendarAsideDirective, IusCalendarFooterDirective, IusCardFooterDirective, IusCardHeaderDirective, IusDocViewerActionsDirective, IusDocViewerAsideDirective, IusDocViewerBodyDirective, IusDrawerFooterDirective, IusDrawerHeaderActionsDirective, IusDrawerTitleDirective, IusDropdownTriggerDirective, IusEntityRowLabelDirective, IusEntityRowSublabelDirective, IusFooterStatusActionDirective, IusFormFooterDirective, IusInsightActionsDirective, IusKanbanCardBodyDirective, IusKanbanCardLeadingDirective, IusKanbanCardTrailingDirective, IusListCardLeadingDirective, IusListCardOverlineDirective, IusListCardParagraphDirective, IusListCardSubtitleDirective, IusListCardTitleDirective, IusListViewFiltersDirective, IusListViewFooterEndDirective, IusListViewFooterStartDirective, IusListViewHeaderEndDirective, IusListViewHeaderStartDirective, IusListViewToolbarDirective, IusMenuItemTrailingDirective, IusModalFooterDirective, IusPageHeaderActionsDirective, IusPageHeaderBreadcrumbDirective, IusPageHeaderOverlineDirective, IusPageHeaderSubtitleDirective, IusPageHeaderTitleDirective, IusPageHeaderToolbarDirective, IusPersonItemNameDirective, IusPersonItemTrailingDirective, IusSectionTitleActionDirective, IusSettingsNavFooterDirective, IusSettingsNavHeaderDirective, IusStageDetailFooterDirective, IusStageDetailHeaderActionsDirective, IusStageDetailMetaDirective, IusStatCaptionDirective, IusStatDeltaDirective, IusStatDeltaLabelDirective, IusStatLabelDirective, IusStatSparklineDirective, IusTagPrefixDirective, IusTagSuffixDirective, IusToastActionDirective, IusUserMenuFooterDirective, KINDS, KIND_DEF, KIND_FALLBACK, KanbanBoardComponent, KanbanCardComponent, KanbanColumnComponent, LineChartComponent, LinearProgressBarComponent, ListCardComponent, ListViewComponent, LoadingComponent, LoadingMarkComponent, MenuComponent, MenuItemComponent, ModalComponent, MultiTextFieldComponent, NATURALEZA_DEF, NavUserComponent, NumberFieldComponent, ORB_PERIODS, OauthButtonComponent, OptionItemComponent, PageHeaderComponent, PaginationComponent, PartyListComponent, PersonItemComponent, PersonPickerComponent, PlanUsageItemComponent, PopoverComponent, QueryBuilderComponent, RadioComponent, RepeatableFieldComponent, SOURCE_FUENTE, SOURCE_LABEL, STATUS_TONES, STATUS_VOCAB, STATUS_VOCABS, STATUS_VOCABS_PENDING, ScrollAreaComponent, SearchBarComponent, SectionHeaderComponent, SectionTitleComponent, SegmentGroupComponent, SegmentedControlComponent, SelectComponent, SelectNumberComponent, SelectionFieldComponent, SettingsNavComponent, ShowMoreComponent, SkeletonComponent, SparklineComponent, SplitterComponent, StageDetailDrawerComponent, StatComponent, StatGroupComponent, StatusChipComponent, StatusStateComponent, StepperComponent, SwitchComponent, TableComponent, TabsComponent, TagComponent, TextAreaComponent, TextButtonComponent, TextComponent, TextFieldComponent, TimePanelComponent, TimelineComponent, ToastComponent, ToastService, ToastViewportComponent, TooltipComponent, UserMenuComponent, WizardComponent, WizardController, WizardNavComponent, categoryColors, categoryOptions, chartAxisTicks, chartFormatValue, chartLinearPath, chartNiceNum, chartPath, chartPrefersReducedMotion, chartSmoothPath, chartToneAt, chartToneVar, createWizard, eventKindOptions, extOf, formatBytes, formatDate, formatTime, fuenteColors, fuenteOptions, iusSegColor, kindHue, kindIcon, kindLabel, kindMeta, kindOptions, naturalezaMeta, naturalezaOptions, normalizeTipo, pose, poseIso, poseSpeaking, poseThinking, renderCubeSvg, resolveActuacion, resolveCategoryHue, resolveEventIcon, resolveFuente, resolveIllustration, resolveKind, resolveStatus, resolveViewKind, sourceIcon, sourceMeta, statusOptions, statusOrder, statusToneVars, statusVocab, timeFromDate, voiceEnv };
|
|
13123
|
+
export type { ActuacionEntry, ActuacionMeta, ActuacionStatus, AlertSize, AlertTone, AlertVariant, CategoryColors, CategoryDef, CategoryHueSource, CategoryKey, CategoryOption, ChartCategoricalTone, ChartCurve, ChartPoint, ChartSemanticTone, ChartTone, Clase, ClaseDef, CountdownDirection, CountdownFormat, CountdownRingSize, CountdownRingTone, DescriptionListItem, DescriptionListLayout, DescriptionListSize, DescriptionListValueClick, EventIconSource, EventKind, EventKindOption, FileKind, FileKindDef, FileKindDomain, FileKindFs, FileKindMeta, FileKindOption, FileTypeHue, FuenteColors, FuenteDef, FuenteKey, FuenteOption, GestionStatus, Hue, IllustrationEntry, IllustrationName, IllustrationSize, IusAccordionAction, IusAccordionActionEvent, IusAccordionItem, IusAccordionItemContext, IusAccordionSize, IusAccordionVariant, IusAccountItemAction, IusAccountItemState, IusAnswerFeedbackSize, IusAnswerFeedbackValue, IusAppLayoutAccent, IusAutocompleteItemContext, IusAutocompletePlacement, IusAutocompleteSize, IusAutocompleteSource, IusAvatarColor, IusAvatarShape, IusAvatarSize, IusAvatarStackItem, IusAvatarStackItemClick, IusAvatarStackStyle, IusBarChartOrientation, IusBarSeries, IusBreadcrumbItem, IusBreadcrumbNavigate, IusBreadcrumbSeparator, IusBreadcrumbSize, IusButtonActionResult, IusButtonSize, IusButtonStatus, IusButtonType, IusButtonVariant, IusCalendarMode, IusCalendarValue, IusCaptchaAppearance, IusCaptchaFieldHandle, IusCaptchaProvider, IusCaptchaSize, IusCaptchaState, IusCaptchaTheme, IusCardAs, IusCardPadding, IusCardRadius, IusCardVariant, IusCarouselImage, IusCarouselImageInput, IusCarouselObjectFit, IusCarouselOrder, IusCarouselOverlay, IusCarouselTransition, IusCheckboxLabelPosition, IusCheckboxSize, IusChipSize, IusChipState, IusCircularProgressSize, IusCircularProgressTone, IusCodeFieldSize, IusDateFilterMode, IusDateFilterPlacement, IusDateFilterSize, IusDateFilterValue, IusDatePickerMode, IusDatePickerState, IusDatePickerValue, IusDatePreset, IusDateRange, IusDateTimeValue, IusDetailSidePanelSection, IusDetailSidePanelSide, IusDividerOrientation, IusDividerTextAlign, IusDividerVariant, IusDocumentViewerCloseReason, IusDocumentViewerKind, IusDocumentViewerVariant, IusDonutLegendPosition, IusDonutSegment, IusDrawerSide, IusDrawerSize, IusDropdownItem, IusDropdownTone, IusDropdownVariant, IusEleniaBubblePosition, IusEleniaBubbleSize, IusEleniaOrbMood, IusEleniaOrbSurface, IusEmptyStateAction, IusEmptyStateSize, IusEmptyStateTone, IusEmptyStateVariant, IusEntityDesc, IusEntityDescKind, IusEntityFacet, IusEntityFilter, IusEntityFilterOption, IusEntityGroup, IusEntityId, IusEntityItemHeights, IusEntityNode, IusEntityRowAccent, IusEntityRowAction, IusEntityRowKind, IusEntityRowNoveltyTone, IusEntityRowState, IusEntityRowTag, IusEntitySection, IusEntityStateSegment, IusEventAssignee, IusEventPillFill, IusEventPillSize, IusEventPillVariant, IusFileItemAction, IusFileItemActionClick, IusFileItemActivateOn, IusFileItemField, IusFileItemLayout, IusFileItemOwner, IusFileItemSize, IusFileItemStatus, IusFileItemTag, IusFileTypeIconSize, IusFileTypeIconVariant, IusFileUploadVariant, IusFilterField, IusFilterFieldOption, IusFilterFieldType, IusFilterRule, IusFilterValue, IusFlexAlign, IusFlexDirection, IusFlexGap, IusFlexJustify, IusFooterStatusSize, IusFooterStatusTone, IusFormColumns, IusFormError, IusFormFieldSpan, IusFormSectionVariant, IusIconButtonShape, IusIconButtonSize, IusIconButtonVariant, IusInsightTone, IusInsightVariant, IusInsigniaSize, IusInsigniaTone, IusInsigniaVariant, IusKanbanBoardColumn, IusKanbanBoardItem, IusKanbanBoardVariant, IusKanbanCardAction, IusKanbanCardAssignee, IusKanbanCardDragProps, IusKanbanCardFlag, IusKanbanCardLayout, IusKanbanCardLine, IusKanbanCardLineObject, IusKanbanCardState, IusKanbanCardTag, IusKanbanCardTagConfig, IusKanbanCardText, IusKanbanId, IusKanbanItemContext, IusKanbanItemMoveEvent, IusKanbanItemMoveInfo, IusKanbanItemsMoveEvent, IusKanbanLineTone, IusKanbanRenderCardContext, IusKanbanTone, IusLineChartPoints, IusLineSeries, IusLinearProgressSegment, IusLinearProgressSize, IusLinearProgressTone, IusListCardAction, IusListCardField, IusListCardMarker, IusListCardMenuItem, IusListCardSize, IusListCardStatus, IusListCardTag, IusListCardTone, IusListViewAction, IusListViewSize, IusListViewSortOption, IusLoadingMarkSurface, IusLoadingVariant, IusMenuItemSize, IusMenuItemState, IusMenuItemVariant, IusMenuOption, IusModalCloseReason, IusModalIconTone, IusModalSize, IusMultiTextFieldSize, IusMultiTextFieldSlot, IusMultiTextFieldState, IusNavUserAccount, IusNavUserLayout, IusNavUserUser, IusOAuthButtonSize, IusOAuthButtonType, IusOAuthProvider, IusOptionItemSize, IusOptionItemState, IusPageHeaderDensity, IusPageHeaderTitleLevel, IusPaginationSize, IusPaginationVariant, IusPartyListConnector, IusPartyListSize, IusPersonId, IusPersonItemAction, IusPersonItemSize, IusPersonItemState, IusPersonItemVariant, IusPersonOption, IusPersonPickerSelectedContext, IusPlanUsageAction, IusPlanUsageLegend, IusPlanUsageStatus, IusPopoverPadding, IusPopoverPlacement, IusPopoverTrigger, IusQueryBuilderSize, IusRadioLabelPosition, IusRadioSize, IusRepeatableControlContext, IusRepeatableInputMode, IusRepeatableItem, IusRepeatableSize, IusRepeatableTypeOption, IusScrollAxis, IusScrollSize, IusSearchBarSize, IusSearchBarState, IusSectionHeaderAccent, IusSectionHeaderVariant, IusSectionTitleAs, IusSectionTitleHelpTrigger, IusSectionTitleSize, IusSegmentedSize, IusSegmentedVariant, IusSelectCreateFactory, IusSelectSize, IusSelectState, IusSelectValue, IusSelectionFieldDirection, IusSelectionFieldLabelPosition, IusSelectionFieldSize, IusSelectionFieldType, IusSelectionFieldValue, IusSelectionOption, IusSelectionOptionValue, IusSettingsNavAccent, IusSettingsNavItem, IusSettingsNavSize, IusShowMoreAlign, IusSkeletonAnimation, IusSkeletonVariant, IusSparklineVariant, IusSplitterAccent, IusSplitterOrientation, IusStageDetailAccent, IusStageDetailAssignee, IusStageDetailState, IusStatAlign, IusStatSize, IusStatTone, IusStatusChipSize, IusStatusChipTone, IusStatusKind, IusStepperAccent, IusStepperAssignee, IusStepperCollapsedControl, IusStepperContextRow, IusStepperDetailDisplay, IusStepperOrientation, IusStepperPopoverAction, IusStepperSize, IusStepperStage, IusStepperStageEvent, IusStepperState, IusStepperSubstage, IusSwitchLabelPosition, IusSwitchSize, IusTabItem, IusTabTag, IusTableAlign, IusTableCellContext, IusTableChildRowKey, IusTableColumn, IusTableExpandedContext, IusTableHeaderContext, IusTableRowClick, IusTableRowKey, IusTableRowLabel, IusTableRowMeta, IusTableRowStyle, IusTableSize, IusTableSortChange, IusTableSortDirection, IusTableSummaryCell, IusTableTone, IusTabsAccent, IusTabsSize, IusTagRole, IusTagShape, IusTagSize, IusTagState, IusTagTone, IusTagVariant, IusTextAlign, IusTextAreaSize, IusTextAreaState, IusTextButtonSize, IusTextButtonType, IusTextColor, IusTextFieldInputMode, IusTextFieldSize, IusTextFieldType, IusTextTag, IusTextVariant, IusTextWeight, IusTimeValue, IusTimelineAccent, IusTimelineAssignee, IusTimelineAttachment, IusTimelineAttachmentClick, IusTimelineItem, IusTimelineItemState, IusTimelineSize, IusTimelineTag, IusTimelineTagTone, IusToastActionContext, IusToastItem, IusToastOptions, IusToastPosition, IusToastTone, IusTooltipTrigger, IusUploadFile, IusUploadStatus, IusUploader, IusUploaderHelpers, IusUserMenuAccount, IusUserMenuAccountOption, IusUserMenuItem, IusUserMenuOrigin, IusUserMenuService, IusUserMenuUser, Naturaleza, NaturalezaDef, NaturalezaOption, NaturalezaTone, OrbMood, OrbPose, SegmentedOption, SelectOption, SelectOptionGroup, SourceKey, SourceMeta, StatusMeta, StatusOption, StatusTone, StatusToneVars, StatusVocabMap, StatusVocabName, UseWizardOptions, WizardApi, WizardStep };
|