@litigiovirtual/ius-design-components 2.1.25 → 2.2.1
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.
|
@@ -1125,6 +1125,11 @@ declare class IconButtonComponent implements OnInit {
|
|
|
1125
1125
|
ariaLabel?: string;
|
|
1126
1126
|
/** Etiqueta breve en hover/focus (compone `ius-tooltip`). No sustituye a `ariaLabel`. */
|
|
1127
1127
|
tooltip?: string;
|
|
1128
|
+
/**
|
|
1129
|
+
* Passthrough `aria-pressed` al `<button>` (equivalente del `...rest` del
|
|
1130
|
+
* golden; lo usa AnswerFeedback al componer los pulgares como toggles).
|
|
1131
|
+
*/
|
|
1132
|
+
ariaPressed?: boolean;
|
|
1128
1133
|
/** Colocación del tooltip. */
|
|
1129
1134
|
tooltipPlacement: IusPopoverPlacement;
|
|
1130
1135
|
/** Emite al pulsar. Nunca `click` (colisión con el nativo del host). */
|
|
@@ -1133,7 +1138,7 @@ declare class IconButtonComponent implements OnInit {
|
|
|
1133
1138
|
protected get computedLabel(): string;
|
|
1134
1139
|
protected onClick(event: MouseEvent): void;
|
|
1135
1140
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<IconButtonComponent, never>;
|
|
1136
|
-
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; }; "tooltipPlacement": { "alias": "tooltipPlacement"; "required": false; }; }, { "clicked": "clicked"; }, never, never, true, never>;
|
|
1141
|
+
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>;
|
|
1137
1142
|
static ngAcceptInputType_disabled: unknown;
|
|
1138
1143
|
}
|
|
1139
1144
|
|
|
@@ -7211,8 +7216,10 @@ declare class SkeletonComponent {
|
|
|
7211
7216
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SkeletonComponent, "ius-skeleton", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "radius": { "alias": "radius"; "required": false; "isSignal": true; }; "lines": { "alias": "lines"; "required": false; "isSignal": true; }; "lastLineWidth": { "alias": "lastLineWidth"; "required": false; "isSignal": true; }; "bars": { "alias": "bars"; "required": false; "isSignal": true; }; "gap": { "alias": "gap"; "required": false; "isSignal": true; }; "animation": { "alias": "animation"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
7212
7217
|
}
|
|
7213
7218
|
|
|
7214
|
-
/** Nivel tipográfico del título
|
|
7215
|
-
type IusPageHeaderTitleLevel = 'h1' | 'h2' | 'h3';
|
|
7219
|
+
/** Nivel tipográfico del título. Si se omite: `h3` en densidad `default`, `h4` en `compact`. */
|
|
7220
|
+
type IusPageHeaderTitleLevel = 'h1' | 'h2' | 'h3' | 'h4' | 'h5';
|
|
7221
|
+
/** Densidad del encabezado: `compact` reduce paddings/gaps sin quitar información. */
|
|
7222
|
+
type IusPageHeaderDensity = 'default' | 'compact';
|
|
7216
7223
|
/** Breadcrumb proyectado (solo detalle): `<ius-breadcrumb iusPageHeaderBreadcrumb />`. */
|
|
7217
7224
|
declare class IusPageHeaderBreadcrumbDirective {
|
|
7218
7225
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<IusPageHeaderBreadcrumbDirective, never>;
|
|
@@ -7247,7 +7254,7 @@ declare class IusPageHeaderToolbarDirective {
|
|
|
7247
7254
|
* PageHeader — Ius Design v2 (familia navigation).
|
|
7248
7255
|
*
|
|
7249
7256
|
* Encabezado **de la vista** dentro del `main`: [breadcrumb/volver] ·
|
|
7250
|
-
* overline · título (h1
|
|
7257
|
+
* overline · título (h1…h5) + subtítulo · acciones · [toolbar] ·
|
|
7251
7258
|
* [divider/surface]. Cáscara por slots: no conoce datos. Fuente de verdad:
|
|
7252
7259
|
* `PageHeader.jsx` + `PageHeader.d.ts` + `PageHeader.ng-spec.md`.
|
|
7253
7260
|
*
|
|
@@ -7261,6 +7268,10 @@ declare class IusPageHeaderToolbarDirective {
|
|
|
7261
7268
|
* `title`/`subtitle`/`overline` son proyección en el contrato (nodos): cada
|
|
7262
7269
|
* uno acepta el input de texto O contenido proyectado con su directiva
|
|
7263
7270
|
* (`iusPageHeaderTitle`…), como ListCard. El input, si viene, manda.
|
|
7271
|
+
*
|
|
7272
|
+
* `density="compact"`: paddings/gaps reducidos, subtítulo tenue (fs-sm,
|
|
7273
|
+
* text-tertiary), `titleLevel` `h4` por defecto y `--ius-control-size: small`
|
|
7274
|
+
* para los controles proyectados. Objetivo: encabezado de detalle ≤ ~140px.
|
|
7264
7275
|
*/
|
|
7265
7276
|
declare class PageHeaderComponent {
|
|
7266
7277
|
/** Título de la vista. */
|
|
@@ -7269,8 +7280,13 @@ declare class PageHeaderComponent {
|
|
|
7269
7280
|
readonly subtitle: _angular_core.InputSignal<string | undefined>;
|
|
7270
7281
|
/** Categoría / sección sobre el título (mayúsculas). */
|
|
7271
7282
|
readonly overline: _angular_core.InputSignal<string | undefined>;
|
|
7272
|
-
/**
|
|
7273
|
-
|
|
7283
|
+
/**
|
|
7284
|
+
* Nivel tipográfico del título. Si se omite, es `h3` en densidad `default`
|
|
7285
|
+
* y `h4` en `compact` (igual que el golden).
|
|
7286
|
+
*/
|
|
7287
|
+
readonly titleLevel: _angular_core.InputSignal<IusPageHeaderTitleLevel | undefined>;
|
|
7288
|
+
/** Densidad del encabezado. Default `default` (comportamiento histórico). */
|
|
7289
|
+
readonly density: _angular_core.InputSignal<IusPageHeaderDensity>;
|
|
7274
7290
|
/** Muestra la flecha de volver (leading). */
|
|
7275
7291
|
readonly showBack: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
7276
7292
|
/** Texto accesible de la flecha de volver. */
|
|
@@ -7293,10 +7309,12 @@ declare class PageHeaderComponent {
|
|
|
7293
7309
|
protected readonly hasOverlineSlot: _angular_core.Signal<boolean>;
|
|
7294
7310
|
protected readonly hasTitleSlot: _angular_core.Signal<boolean>;
|
|
7295
7311
|
protected readonly hasSubtitleSlot: _angular_core.Signal<boolean>;
|
|
7312
|
+
/** Nivel efectivo del título: el input manda; si no, `h3`/`h4` según densidad. */
|
|
7313
|
+
protected readonly titleLevelEfectivo: _angular_core.Signal<IusPageHeaderTitleLevel>;
|
|
7296
7314
|
/** Volver es leading: si hay breadcrumb, encabeza esa fila. */
|
|
7297
7315
|
protected readonly backInBreadcrumb: _angular_core.Signal<boolean>;
|
|
7298
7316
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PageHeaderComponent, never>;
|
|
7299
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PageHeaderComponent, "ius-page-header", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "subtitle": { "alias": "subtitle"; "required": false; "isSignal": true; }; "overline": { "alias": "overline"; "required": false; "isSignal": true; }; "titleLevel": { "alias": "titleLevel"; "required": false; "isSignal": true; }; "showBack": { "alias": "showBack"; "required": false; "isSignal": true; }; "backLabel": { "alias": "backLabel"; "required": false; "isSignal": true; }; "divider": { "alias": "divider"; "required": false; "isSignal": true; }; "surface": { "alias": "surface"; "required": false; "isSignal": true; }; }, { "back": "back"; }, ["breadcrumbRef", "actionsRef", "toolbarRef", "overlineRef", "titleRef", "subtitleRef"], ["[iusPageHeaderBreadcrumb]", "[iusPageHeaderOverline]", "[iusPageHeaderTitle]", "[iusPageHeaderSubtitle]", "[iusPageHeaderActions]", "[iusPageHeaderToolbar]"], true, never>;
|
|
7317
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<PageHeaderComponent, "ius-page-header", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "subtitle": { "alias": "subtitle"; "required": false; "isSignal": true; }; "overline": { "alias": "overline"; "required": false; "isSignal": true; }; "titleLevel": { "alias": "titleLevel"; "required": false; "isSignal": true; }; "density": { "alias": "density"; "required": false; "isSignal": true; }; "showBack": { "alias": "showBack"; "required": false; "isSignal": true; }; "backLabel": { "alias": "backLabel"; "required": false; "isSignal": true; }; "divider": { "alias": "divider"; "required": false; "isSignal": true; }; "surface": { "alias": "surface"; "required": false; "isSignal": true; }; }, { "back": "back"; }, ["breadcrumbRef", "actionsRef", "toolbarRef", "overlineRef", "titleRef", "subtitleRef"], ["[iusPageHeaderBreadcrumb]", "[iusPageHeaderOverline]", "[iusPageHeaderTitle]", "[iusPageHeaderSubtitle]", "[iusPageHeaderActions]", "[iusPageHeaderToolbar]"], true, never>;
|
|
7300
7318
|
}
|
|
7301
7319
|
|
|
7302
7320
|
/**
|
|
@@ -8000,31 +8018,41 @@ declare class LineChartComponent implements AfterViewInit, OnDestroy {
|
|
|
8000
8018
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<LineChartComponent, "ius-line-chart", never, { "categories": { "alias": "categories"; "required": false; "isSignal": true; }; "series": { "alias": "series"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "aspectRatio": { "alias": "aspectRatio"; "required": false; "isSignal": true; }; "minWidth": { "alias": "minWidth"; "required": false; "isSignal": true; }; "yAxisWidth": { "alias": "yAxisWidth"; "required": false; "isSignal": true; }; "showXAxis": { "alias": "showXAxis"; "required": false; "isSignal": true; }; "showYAxis": { "alias": "showYAxis"; "required": false; "isSignal": true; }; "showGrid": { "alias": "showGrid"; "required": false; "isSignal": true; }; "yTicks": { "alias": "yTicks"; "required": false; "isSignal": true; }; "yMin": { "alias": "yMin"; "required": false; "isSignal": true; }; "yMax": { "alias": "yMax"; "required": false; "isSignal": true; }; "area": { "alias": "area"; "required": false; "isSignal": true; }; "curve": { "alias": "curve"; "required": false; "isSignal": true; }; "showPoints": { "alias": "showPoints"; "required": false; "isSignal": true; }; "showValueLabels": { "alias": "showValueLabels"; "required": false; "isSignal": true; }; "showLegend": { "alias": "showLegend"; "required": false; "isSignal": true; }; "showTooltip": { "alias": "showTooltip"; "required": false; "isSignal": true; }; "valueFormat": { "alias": "valueFormat"; "required": false; "isSignal": true; }; "xFormat": { "alias": "xFormat"; "required": false; "isSignal": true; }; "unit": { "alias": "unit"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "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; }; "animate": { "alias": "animate"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
8001
8019
|
}
|
|
8002
8020
|
|
|
8003
|
-
/** Familia de color válida (semánticas + frutas + neutral). */
|
|
8021
|
+
/** Familia de color válida (semánticas + frutas categóricas + neutral). */
|
|
8004
8022
|
type Hue = 'primary' | 'info' | 'success' | 'warning' | 'danger' | 'durazno' | 'banano' | 'sandia' | 'arandano' | 'uva' | 'aguacate' | 'neutral';
|
|
8005
8023
|
/**
|
|
8006
|
-
* Categorías del catálogo central. Los módulos
|
|
8007
|
-
* `customMap`, así que donde se acepte una
|
|
8024
|
+
* Categorías del catálogo central. Los módulos pueden extenderlo en runtime con
|
|
8025
|
+
* `customMap`, así que donde se acepte una category se admite también `string`.
|
|
8008
8026
|
*/
|
|
8009
8027
|
type CategoryKey = 'termino' | 'plazo' | 'vencido' | 'pago' | 'audiencia' | 'diligencia' | 'tarea' | 'reunion' | 'recordatorio' | 'notificacion' | 'evento' | 'libre' | (string & {});
|
|
8010
8028
|
interface CategoryDef {
|
|
8029
|
+
/** Etiqueta legible (dropdowns, leyendas). */
|
|
8011
8030
|
label: string;
|
|
8031
|
+
/** Familia de color con la que se pinta. */
|
|
8012
8032
|
hue: Hue;
|
|
8013
8033
|
/** `state` = comunica urgencia (semántica) · `identity` = sin estado (fruta). */
|
|
8014
8034
|
tone: 'state' | 'identity';
|
|
8015
8035
|
}
|
|
8016
|
-
/** Definición central: category → { label
|
|
8036
|
+
/** Definición central: category → { label, hue, tone }. */
|
|
8017
8037
|
declare const CATEGORY_DEF: Readonly<Record<string, CategoryDef>>;
|
|
8018
|
-
/** Mapa directo category → hue (paralelo a EVENT_KIND_ICON). */
|
|
8038
|
+
/** Mapa directo category → hue (paralelo a EVENT_KIND_ICON de EventCatalog). */
|
|
8019
8039
|
declare const CATEGORY_HUE: Readonly<Record<string, Hue>>;
|
|
8020
8040
|
/** Lista de categorías reconocidas (orden del catálogo). */
|
|
8021
8041
|
declare const CATEGORIES: readonly string[];
|
|
8022
|
-
/** Objeto con forma `{ category?, hue? }` cuyo
|
|
8042
|
+
/** Objeto con forma `{ category?, hue? }` cuyo color se resuelve contra el catálogo. */
|
|
8023
8043
|
interface CategoryHueSource {
|
|
8024
8044
|
category?: string;
|
|
8025
8045
|
hue?: Hue;
|
|
8026
8046
|
}
|
|
8027
|
-
/**
|
|
8047
|
+
/**
|
|
8048
|
+
* Resuelve el **hue** de un objeto `{ category?, hue? }`. Orden:
|
|
8049
|
+
* 1) `hue` (escape hatch directo)
|
|
8050
|
+
* 2) `customMap[category]` (extensión por módulo)
|
|
8051
|
+
* 3) Catálogo central
|
|
8052
|
+
* 4) `'neutral'` (fallback seguro — nunca lanza)
|
|
8053
|
+
*/
|
|
8054
|
+
declare function resolveCategoryHue(o: CategoryHueSource | null | undefined, customMap?: Readonly<Record<string, Hue>>): Hue;
|
|
8055
|
+
/** Tokens de color resueltos para un hue/categoría (todos strings `var(--ius-*)`). */
|
|
8028
8056
|
interface CategoryColors {
|
|
8029
8057
|
/** Punto / ícono / barra de acento (hue-600). */
|
|
8030
8058
|
accent: string;
|
|
@@ -8040,31 +8068,2262 @@ interface CategoryColors {
|
|
|
8040
8068
|
onSolid: string;
|
|
8041
8069
|
hue: Hue;
|
|
8042
8070
|
}
|
|
8043
|
-
/**
|
|
8071
|
+
/**
|
|
8072
|
+
* Devuelve los tokens de color resueltos para un hue, listos para un pill /
|
|
8073
|
+
* chip / insignia:
|
|
8074
|
+
* accent — punto / ícono / barra (hue-600)
|
|
8075
|
+
* fill — fondo suave (hue-100)
|
|
8076
|
+
* border — borde (hue-200)
|
|
8077
|
+
* text — texto sobre `fill` (hue-800)
|
|
8078
|
+
* solid — relleno fuerte (hue-500)
|
|
8079
|
+
* onSolid — texto sobre `solid`
|
|
8080
|
+
* Acepta un hue (string) o un objeto `{ category?, hue? }`. Devuelve SIEMPRE
|
|
8081
|
+
* strings de token: el consumidor los aplica a `style`/CSS, aquí no se resuelve
|
|
8082
|
+
* ningún color computado.
|
|
8083
|
+
*/
|
|
8084
|
+
declare function categoryColors(hueOrObj: Hue | CategoryHueSource, customMap?: Readonly<Record<string, Hue>>): CategoryColors;
|
|
8085
|
+
/** Opción lista para un dropdown / leyenda por categoría. */
|
|
8044
8086
|
interface CategoryOption {
|
|
8045
8087
|
value: string;
|
|
8046
8088
|
label: string;
|
|
8047
8089
|
hue: Hue;
|
|
8048
8090
|
}
|
|
8091
|
+
/** Opciones listas para un dropdown/leyenda (value · label · hue). */
|
|
8092
|
+
declare function categoryOptions(): CategoryOption[];
|
|
8093
|
+
|
|
8094
|
+
/** Tipo de nodo → ícono por defecto. */
|
|
8095
|
+
type IusEntityRowKind = 'empresa' | 'persona' | 'expediente' | 'proceso';
|
|
8096
|
+
/** Color del módulo para el estado activo — 6 semánticas + 6 frutas (como el NavRail). */
|
|
8097
|
+
type IusEntityRowAccent = 'primary' | 'info' | 'success' | 'warning' | 'danger' | 'neutral' | 'durazno' | 'banano' | 'sandia' | 'arandano' | 'uva' | 'aguacate';
|
|
8098
|
+
/**
|
|
8099
|
+
* Tono de la señal de novedad. `info` = «no leído nuevo»; `warning` queda
|
|
8100
|
+
* reservado para «no leído vencido»; `danger` nunca para esto.
|
|
8101
|
+
*/
|
|
8102
|
+
type IusEntityRowNoveltyTone = 'info' | 'warning' | 'primary' | 'success' | 'danger' | 'neutral';
|
|
8103
|
+
/**
|
|
8104
|
+
* Acción del menú ⋮ de la fila. Misma forma que `IusMenuOption` (la que consume
|
|
8105
|
+
* `ius-dropdown`): `group` inserta divisores y `danger` la pinta destructiva.
|
|
8106
|
+
*/
|
|
8107
|
+
type IusEntityRowAction = IusMenuOption;
|
|
8108
|
+
/** Nombre rico proyectado (alternativa al input `label`). */
|
|
8109
|
+
declare class IusEntityRowLabelDirective {
|
|
8110
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<IusEntityRowLabelDirective, never>;
|
|
8111
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<IusEntityRowLabelDirective, "[iusEntityRowLabel]", never, {}, {}, never, never, true, never>;
|
|
8112
|
+
}
|
|
8113
|
+
/** Subtítulo rico proyectado (alternativa al input `sublabel`). */
|
|
8114
|
+
declare class IusEntityRowSublabelDirective {
|
|
8115
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<IusEntityRowSublabelDirective, never>;
|
|
8116
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<IusEntityRowSublabelDirective, "[iusEntityRowSublabel]", never, {}, {}, never, never, true, never>;
|
|
8117
|
+
}
|
|
8118
|
+
/**
|
|
8119
|
+
* EntityRow — Ius Design v2 (familia navigation).
|
|
8120
|
+
*
|
|
8121
|
+
* Fila base del árbol del **EntityNavigator** (Clientes & Expedientes): un nodo
|
|
8122
|
+
* navegable —cliente, expediente o proceso— con chevron de expandir (si tiene
|
|
8123
|
+
* hijos), ícono según el tipo, nombre (+ subtítulo) y contador. Se sangra por
|
|
8124
|
+
* `level` (22 px por nivel, cualquier profundidad) y resalta el nodo activo con
|
|
8125
|
+
* el color del módulo (`accent`). Fuente de verdad: `EntityRow.jsx` +
|
|
8126
|
+
* `EntityRow.d.ts` + `EntityRow.ng-spec.md`.
|
|
8127
|
+
*
|
|
8128
|
+
* Es **presentacional**: la expansión, la selección y la petición de hijos las
|
|
8129
|
+
* maneja el EntityNavigator; esta fila solo MUESTRA el estado.
|
|
8130
|
+
*
|
|
8131
|
+
* `loading` es la carga **de una fila** (sus hijos, tras expandirla): un
|
|
8132
|
+
* `ius-circular-progress` indeterminado (small, neutral) ocupa el lugar del
|
|
8133
|
+
* chevron, escalado a la caja de 18 px para que la fila no salte, y sin rotar
|
|
8134
|
+
* aunque esté `expanded`. La fila queda `aria-busy` pero sigue navegable y el
|
|
8135
|
+
* resto del árbol no se bloquea. La **primera carga del árbol completo** NO es
|
|
8136
|
+
* esto: va envuelta en Skeleton.
|
|
8137
|
+
*
|
|
8138
|
+
* Novedad (no leídos), una sola lectura en filtro, orden y árbol:
|
|
8139
|
+
* - `unread` > 0 (hoja/proceso) → contador tonal sólido a la derecha + fila
|
|
8140
|
+
* realzada (label semibold), SIN punto guía. Aditivo a `count`.
|
|
8141
|
+
* - `hasUnread` (contenedor) → punto (small) al inicio de la fila, sin número.
|
|
8142
|
+
* Si además llega `unread`, gana `unread`.
|
|
8143
|
+
* - `count` es un conteo NEUTRO de hijos (píldora `count-soft`), nunca una
|
|
8144
|
+
* señal de novedad: por eso se ve distinto del contador de no leídos.
|
|
8145
|
+
*
|
|
8146
|
+
* No usar como fila de menú (MenuItem), de cuenta (AccountItem) ni de acción.
|
|
8147
|
+
*
|
|
8148
|
+
* DECISIONES DE PORT:
|
|
8149
|
+
* 1. `label`/`sublabel` son `ReactNode` en el golden: se portan como input
|
|
8150
|
+
* `string` + slot proyectado (`[iusEntityRowLabel]`, `[iusEntityRowSublabel]`),
|
|
8151
|
+
* el patrón de AccountItem/PersonItem.
|
|
8152
|
+
* 2. El menú ⋮ del golden es `Popover` + `MenuItem` con divisores por `group` y
|
|
8153
|
+
* la acción destructiva al fondo. Aquí lo pone **`ius-dropdown`**, que es
|
|
8154
|
+
* exactamente esa composición ya encapsulada en la librería (Popover+Menu) y
|
|
8155
|
+
* consume la misma forma de opción. El disparador sí es propio
|
|
8156
|
+
* (`.ius-entityrow__act`, 26 px, revelado en hover), proyectado con
|
|
8157
|
+
* `iusDropdownTrigger`, para no perder el aspecto del golden.
|
|
8158
|
+
* 3. Los controles internos del golden son `span[role=button][tabindex=0]`;
|
|
8159
|
+
* aquí son `<button type="button">` reales (mejor teclado, mismo aspecto).
|
|
8160
|
+
* Quedan dentro de la raíz `role="button"` igual que en el golden — es
|
|
8161
|
+
* inherente a una fila de árbol donde el chevron es un objetivo aparte. Las
|
|
8162
|
+
* semánticas de árbol (`role="treeitem"`) las pone el EntityNavigator.
|
|
8163
|
+
* 4. `data-menu-open` se alimenta de `openChange` de `ius-dropdown`, para que
|
|
8164
|
+
* las acciones sigan visibles mientras el menú está abierto (como el golden).
|
|
8165
|
+
*/
|
|
8166
|
+
declare class EntityRowComponent {
|
|
8167
|
+
/** Tipo → ícono por defecto. */
|
|
8168
|
+
kind: IusEntityRowKind;
|
|
8169
|
+
/** Ícono explícito (anula el de `kind`). */
|
|
8170
|
+
icon?: string;
|
|
8171
|
+
/** Nombre del nodo. Para markup rico proyectar `[iusEntityRowLabel]`. */
|
|
8172
|
+
label?: string;
|
|
8173
|
+
/** Subtítulo (radicado, tipo…). Para markup rico proyectar `[iusEntityRowSublabel]`. */
|
|
8174
|
+
sublabel?: string;
|
|
8175
|
+
/** Nivel de anidación (0 = raíz). Sangra 22 px por nivel, cualquier profundidad. */
|
|
8176
|
+
level: number;
|
|
8177
|
+
/** Color del módulo para el estado activo. */
|
|
8178
|
+
accent: IusEntityRowAccent;
|
|
8179
|
+
/** Tiene hijos: muestra el chevron. */
|
|
8180
|
+
expandable: boolean;
|
|
8181
|
+
/** Expandido (chevron girado). */
|
|
8182
|
+
expanded: boolean;
|
|
8183
|
+
/** Trayendo el contenido de la fila: aro indeterminado en el lugar del chevron. */
|
|
8184
|
+
loading: boolean;
|
|
8185
|
+
/** Nodo activo: fondo tintado + texto/ícono en el accent. */
|
|
8186
|
+
selected: boolean;
|
|
8187
|
+
/** Fila inerte. */
|
|
8188
|
+
disabled: boolean;
|
|
8189
|
+
/**
|
|
8190
|
+
* Contador NEUTRO de hijos (píldora gris). No implica novedad.
|
|
8191
|
+
* Sin `numberAttribute` a propósito: aquí `undefined` SIGNIFICA «sin contador»
|
|
8192
|
+
* y el transform lo convertiría en `NaN` (que no es `== null` y pintaría una
|
|
8193
|
+
* píldora vacía). Igual para `unread`.
|
|
8194
|
+
*/
|
|
8195
|
+
count?: number;
|
|
8196
|
+
/** No leídos de la hoja/proceso (> 0): contador tonal sólido + fila realzada. */
|
|
8197
|
+
unread?: number;
|
|
8198
|
+
/** Padre con algún hijo sin leer: punto al inicio, sin número. Lo gana `unread`. */
|
|
8199
|
+
hasUnread: boolean;
|
|
8200
|
+
/** Tono de la señal de novedad. */
|
|
8201
|
+
noveltyTone: IusEntityRowNoveltyTone;
|
|
8202
|
+
/** Anclado: pin fijo y tintado. Sin escucha de `togglePin` el pin no aparece. */
|
|
8203
|
+
pinned: boolean;
|
|
8204
|
+
/**
|
|
8205
|
+
* Permite ocultar el pin en ESTA fila aunque alguien escuche `togglePin`.
|
|
8206
|
+
* Añadido del port (no está en el golden, que lo expresa omitiendo el
|
|
8207
|
+
* callback `onTogglePin`): en Angular un output enlazado siempre está
|
|
8208
|
+
* «observado», así que hace falta una forma explícita de suprimirlo. Lo usa
|
|
8209
|
+
* EntityNavigator para `EntityNode.pinnable: false` y para no repetir el pin
|
|
8210
|
+
* en los descendientes de un nodo ya anclado.
|
|
8211
|
+
*/
|
|
8212
|
+
pinnable: boolean;
|
|
8213
|
+
/** Acciones secundarias del menú ⋮. */
|
|
8214
|
+
actions: readonly IusEntityRowAction[];
|
|
8215
|
+
/** aria del disparador del menú ⋮. */
|
|
8216
|
+
actionsLabel: string;
|
|
8217
|
+
/** Nombre accesible de la fila. */
|
|
8218
|
+
ariaLabel?: string;
|
|
8219
|
+
/** Clic en el chevron. NO propaga al `clicked` de la fila. */
|
|
8220
|
+
readonly toggle: EventEmitter<MouseEvent>;
|
|
8221
|
+
/** Anclar / desanclar. */
|
|
8222
|
+
readonly togglePin: EventEmitter<MouseEvent>;
|
|
8223
|
+
/** Fila pulsada (original `onClick`). */
|
|
8224
|
+
readonly clicked: EventEmitter<MouseEvent>;
|
|
8225
|
+
private readonly labelRef;
|
|
8226
|
+
private readonly sublabelRef;
|
|
8227
|
+
/** Menú ⋮ abierto — mantiene visibles las acciones (espejo de `data-menu-open`). */
|
|
8228
|
+
protected readonly menuOpen: _angular_core.WritableSignal<boolean>;
|
|
8229
|
+
/** Sangría del golden: `10 + level * 22` px. */
|
|
8230
|
+
protected get padLeft(): number;
|
|
8231
|
+
/** Ícono efectivo: `icon` › mapa por `kind` › `folder`. */
|
|
8232
|
+
protected get effIcon(): string;
|
|
8233
|
+
/** Hoja con no leídos: manda sobre `count` y sobre el punto de `hasUnread`. */
|
|
8234
|
+
protected get hasNovelty(): boolean;
|
|
8235
|
+
/** Contenedor con novedad: solo el punto al inicio, sin número. */
|
|
8236
|
+
protected get showNoveltyDot(): boolean;
|
|
8237
|
+
/** El contador neutro cede el sitio al de novedad. */
|
|
8238
|
+
protected get showCount(): boolean;
|
|
8239
|
+
/** El pin solo aparece si alguien escucha `togglePin` (regla del golden) y la fila lo admite. */
|
|
8240
|
+
protected get hasPin(): boolean;
|
|
8241
|
+
protected get hasActions(): boolean;
|
|
8242
|
+
protected get hasRowActions(): boolean;
|
|
8243
|
+
protected get hasSublabel(): boolean;
|
|
8244
|
+
protected get hasLabelSlot(): boolean;
|
|
8245
|
+
/**
|
|
8246
|
+
* Los contadores se ocultan en hover cuando hay acciones, para que no se
|
|
8247
|
+
* solapen con el pin y el ⋮ (`data-dim` del golden).
|
|
8248
|
+
*/
|
|
8249
|
+
protected get dim(): string | null;
|
|
8250
|
+
protected get pinLabel(): string;
|
|
8251
|
+
protected get menuLabel(): string;
|
|
8252
|
+
/** Clic en el chevron: expande, y NUNCA navega (navegar y expandir son distintos). */
|
|
8253
|
+
protected onToggleClick(event: MouseEvent): void;
|
|
8254
|
+
protected onPinClick(event: MouseEvent): void;
|
|
8255
|
+
/** Un clic nacido en la zona de acciones no navega (espejo del `closest` del golden). */
|
|
8256
|
+
protected onRowClick(event: MouseEvent): void;
|
|
8257
|
+
protected onKeyDown(event: KeyboardEvent): void;
|
|
8258
|
+
protected onMenuOpenChange(open: boolean): void;
|
|
8259
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<EntityRowComponent, never>;
|
|
8260
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<EntityRowComponent, "ius-entity-row", never, { "kind": { "alias": "kind"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "label": { "alias": "label"; "required": false; }; "sublabel": { "alias": "sublabel"; "required": false; }; "level": { "alias": "level"; "required": false; }; "accent": { "alias": "accent"; "required": false; }; "expandable": { "alias": "expandable"; "required": false; }; "expanded": { "alias": "expanded"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "count": { "alias": "count"; "required": false; }; "unread": { "alias": "unread"; "required": false; }; "hasUnread": { "alias": "hasUnread"; "required": false; }; "noveltyTone": { "alias": "noveltyTone"; "required": false; }; "pinned": { "alias": "pinned"; "required": false; }; "pinnable": { "alias": "pinnable"; "required": false; }; "actions": { "alias": "actions"; "required": false; }; "actionsLabel": { "alias": "actionsLabel"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; }, { "toggle": "toggle"; "togglePin": "togglePin"; "clicked": "clicked"; }, ["labelRef", "sublabelRef"], ["[iusEntityRowLabel]", "[iusEntityRowSublabel]"], true, never>;
|
|
8261
|
+
static ngAcceptInputType_level: unknown;
|
|
8262
|
+
static ngAcceptInputType_expandable: unknown;
|
|
8263
|
+
static ngAcceptInputType_expanded: unknown;
|
|
8264
|
+
static ngAcceptInputType_loading: unknown;
|
|
8265
|
+
static ngAcceptInputType_selected: unknown;
|
|
8266
|
+
static ngAcceptInputType_disabled: unknown;
|
|
8267
|
+
static ngAcceptInputType_hasUnread: unknown;
|
|
8268
|
+
static ngAcceptInputType_pinned: unknown;
|
|
8269
|
+
static ngAcceptInputType_pinnable: unknown;
|
|
8270
|
+
}
|
|
8271
|
+
|
|
8272
|
+
/** Tamaño del interruptor — small 36×20 · medium 44×24 (default) · large 52×28 px. */
|
|
8273
|
+
type IusSwitchSize = 'small' | 'medium' | 'large';
|
|
8274
|
+
/** Lado del label respecto a la pista. */
|
|
8275
|
+
type IusSwitchLabelPosition = 'left' | 'right';
|
|
8049
8276
|
/**
|
|
8050
|
-
*
|
|
8051
|
-
*
|
|
8052
|
-
*
|
|
8277
|
+
* Switch — Ius Design v2 (familia inputs).
|
|
8278
|
+
*
|
|
8279
|
+
* Interruptor de encendido/apagado que **aplica el cambio de inmediato**, a
|
|
8280
|
+
* diferencia del Checkbox, que confirma una selección dentro de un formulario.
|
|
8281
|
+
* Pista neutra con perilla blanca que se tiñe navy (Primary-900) al encender;
|
|
8282
|
+
* halo de foco en la pista. Fuente de verdad: `Switch.jsx` + `Switch.d.ts` +
|
|
8283
|
+
* `Switch.ng-spec.md` (que es un DELTA sobre `Checkbox.ng-spec.md`).
|
|
8284
|
+
*
|
|
8285
|
+
* Hereda el patrón de Checkbox: mismo juego de inputs, halo + estados, y
|
|
8286
|
+
* `ControlValueAccessor` **booleano** para `[(ngModel)]` / `formControl`. Las
|
|
8287
|
+
* diferencias del delta son: visual de pista/perilla, `role="switch"` y que
|
|
8288
|
+
* **no existe** el estado `indeterminate`.
|
|
8289
|
+
*
|
|
8290
|
+
* `showIconHelp` compone `ius-popover` (título + contenido en hover/focus),
|
|
8291
|
+
* igual que Checkbox y TextField; el ícono conserva `tabindex="0"` +
|
|
8292
|
+
* `aria-label` y su clic no alterna el interruptor.
|
|
8293
|
+
*
|
|
8294
|
+
* Para selección múltiple en un formulario → Checkbox; para una entre varias
|
|
8295
|
+
* excluyentes → Radio.
|
|
8296
|
+
*
|
|
8297
|
+
* DECISIONES DE PORT:
|
|
8298
|
+
* 1. `state` (`idle | hover | pressed | focused | disabled`) es SOLO para
|
|
8299
|
+
* demos/especímenes → se omite de la API pública, igual que en Checkbox y
|
|
8300
|
+
* TextField. El playground congela el estado visual con `data-force`, que el
|
|
8301
|
+
* SCSS sí conserva.
|
|
8302
|
+
* 2. `ariaLabel` se añade (no está en el `.d.ts`) por la misma razón que en
|
|
8303
|
+
* Checkbox: un interruptor sin label visible —en una fila de tabla o de
|
|
8304
|
+
* ajustes— necesita nombre accesible.
|
|
8305
|
+
* 3. El orden del DOM es input → pista → label SIEMPRE, y `labelPosition:
|
|
8306
|
+
* 'left'` se resuelve con `order` en el SCSS. El golden reordena los nodos,
|
|
8307
|
+
* pero el halo de foco depende del selector adyacente
|
|
8308
|
+
* `.ius-sw__input:focus-visible + .ius-sw__track`: moverlos lo rompería.
|
|
8309
|
+
* Mismo criterio que el port de Checkbox.
|
|
8310
|
+
*/
|
|
8311
|
+
declare class SwitchComponent implements ControlValueAccessor {
|
|
8312
|
+
/** Texto junto al interruptor. Sin label si se omite. */
|
|
8313
|
+
label?: string;
|
|
8314
|
+
/** Lado del label respecto a la pista. */
|
|
8315
|
+
labelPosition: IusSwitchLabelPosition;
|
|
8316
|
+
/** Pastilla "?" junto al label. */
|
|
8317
|
+
showIconHelp: boolean;
|
|
8318
|
+
/** Título del contenido de ayuda (popover). */
|
|
8319
|
+
iconHelpTitle?: string;
|
|
8320
|
+
/** Cuerpo del contenido de ayuda (popover). */
|
|
8321
|
+
iconHelpContent?: string;
|
|
8322
|
+
/** `name` del input. */
|
|
8323
|
+
name?: string;
|
|
8324
|
+
/** `value` del input. */
|
|
8325
|
+
value?: string;
|
|
8326
|
+
/** Etiqueta accesible cuando no hay `label` visible (filas de tabla, ajustes). */
|
|
8327
|
+
ariaLabel?: string;
|
|
8328
|
+
private readonly sizeState;
|
|
8329
|
+
set size(value: IusSwitchSize);
|
|
8330
|
+
get size(): IusSwitchSize;
|
|
8331
|
+
private readonly checkedState;
|
|
8332
|
+
set checked(value: boolean);
|
|
8333
|
+
get checked(): boolean;
|
|
8334
|
+
/** Estado inicial no controlado (alias de `checked` como valor inicial). */
|
|
8335
|
+
set defaultChecked(value: boolean);
|
|
8336
|
+
private readonly disabledState;
|
|
8337
|
+
set disabled(value: boolean);
|
|
8338
|
+
get disabled(): boolean;
|
|
8339
|
+
/** Nuevo booleano (original `onChange(checked)`; nunca `change`). */
|
|
8340
|
+
readonly checkedChange: EventEmitter<boolean>;
|
|
8341
|
+
protected readonly inputId: string;
|
|
8342
|
+
private onChangeCb;
|
|
8343
|
+
private onTouchedCb;
|
|
8344
|
+
protected get ariaChecked(): 'true' | 'false';
|
|
8345
|
+
writeValue(value: boolean): void;
|
|
8346
|
+
registerOnChange(fn: (value: boolean) => void): void;
|
|
8347
|
+
registerOnTouched(fn: () => void): void;
|
|
8348
|
+
setDisabledState(isDisabled: boolean): void;
|
|
8349
|
+
protected onToggle(): void;
|
|
8350
|
+
protected onBlur(): void;
|
|
8351
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SwitchComponent, never>;
|
|
8352
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<SwitchComponent, "ius-switch", 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; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "checkedChange": "checkedChange"; }, never, never, true, never>;
|
|
8353
|
+
static ngAcceptInputType_showIconHelp: unknown;
|
|
8354
|
+
static ngAcceptInputType_checked: unknown;
|
|
8355
|
+
static ngAcceptInputType_defaultChecked: unknown;
|
|
8356
|
+
static ngAcceptInputType_disabled: unknown;
|
|
8357
|
+
}
|
|
8358
|
+
|
|
8359
|
+
/** Id de nodo. */
|
|
8360
|
+
type IusEntityId = string | number;
|
|
8361
|
+
/** Nodo del árbol. `label`/`sublabel` son string (ReactNode del golden → regla 5 del port). */
|
|
8362
|
+
interface IusEntityNode {
|
|
8363
|
+
id: IusEntityId;
|
|
8364
|
+
kind?: IusEntityRowKind;
|
|
8365
|
+
icon?: string;
|
|
8366
|
+
label?: string;
|
|
8367
|
+
sublabel?: string;
|
|
8368
|
+
/** Marca de novedad: dato para el filtro/orden «Con novedad». NO se pinta en la fila. */
|
|
8369
|
+
novelty?: number;
|
|
8370
|
+
count?: number;
|
|
8371
|
+
/** No leídos de la hoja → EntityRow: contador sólido + fila realzada. */
|
|
8372
|
+
unread?: number;
|
|
8373
|
+
/** Padre con algún hijo sin leer → EntityRow: punto sin número. */
|
|
8374
|
+
hasUnread?: boolean;
|
|
8375
|
+
noveltyTone?: IusEntityRowNoveltyTone;
|
|
8376
|
+
/** Anclado (lo lista el filtro «Anclados»). */
|
|
8377
|
+
pinned?: boolean;
|
|
8378
|
+
/** `false` oculta el pin en este nodo. */
|
|
8379
|
+
pinnable?: boolean;
|
|
8380
|
+
/** Acciones del menú ⋮ de la fila. */
|
|
8381
|
+
actions?: readonly IusEntityRowAction[];
|
|
8382
|
+
children?: IusEntityNode[];
|
|
8383
|
+
/** Tiene hijos aún no cargados: expandible sin `children`; al abrirlo dispara `expandLoad`. */
|
|
8384
|
+
hasChildren?: boolean;
|
|
8385
|
+
/** Fuerza (`true`) o suprime (`false`) el estado de carga y el auto-disparo. */
|
|
8386
|
+
loadingChildren?: boolean;
|
|
8387
|
+
/** Letra para el divisor A–Z (se muestra cuando cambia). */
|
|
8388
|
+
letter?: string;
|
|
8389
|
+
/** Enlace «+ …» bajo los hijos expandidos. */
|
|
8390
|
+
addChildLabel?: string;
|
|
8391
|
+
onAddChild?: (event: MouseEvent) => void;
|
|
8392
|
+
}
|
|
8393
|
+
/** Opción de una faceta paramétrica. */
|
|
8394
|
+
interface IusEntityFilterOption {
|
|
8395
|
+
key: string;
|
|
8396
|
+
label: string;
|
|
8397
|
+
}
|
|
8398
|
+
/** Chip de filtro de la barra, o categoría del menú «+ Filtro». */
|
|
8399
|
+
interface IusEntityFilter {
|
|
8400
|
+
key: string;
|
|
8401
|
+
label: string;
|
|
8402
|
+
count?: number;
|
|
8403
|
+
icon?: string;
|
|
8404
|
+
dot?: boolean;
|
|
8405
|
+
tone?: string;
|
|
8406
|
+
active?: boolean;
|
|
8407
|
+
removable?: boolean;
|
|
8408
|
+
/** Con `picker` + `options` se vuelve una faceta paramétrica. */
|
|
8409
|
+
picker?: 'list' | 'search' | 'tree';
|
|
8410
|
+
options?: readonly IusEntityFilterOption[];
|
|
8411
|
+
}
|
|
8412
|
+
/** Faceta activa (chip paramétrico creado desde «+ Filtro»), combinable en AND. */
|
|
8413
|
+
interface IusEntityFacet {
|
|
8414
|
+
key: string;
|
|
8415
|
+
label: string;
|
|
8416
|
+
value: string;
|
|
8417
|
+
valueLabel?: string;
|
|
8418
|
+
icon?: string;
|
|
8419
|
+
tone?: string;
|
|
8420
|
+
}
|
|
8421
|
+
/** Sección del árbol. */
|
|
8422
|
+
interface IusEntityGroup {
|
|
8423
|
+
key?: string;
|
|
8424
|
+
label?: string;
|
|
8425
|
+
count?: number;
|
|
8426
|
+
icon?: string;
|
|
8427
|
+
items: IusEntityNode[];
|
|
8428
|
+
limit?: number;
|
|
8429
|
+
/** Hay más nodos por traer: pinta centinela + «Cargar más» al pie. */
|
|
8430
|
+
hasMore?: boolean;
|
|
8431
|
+
/** Lote en curso: reemplaza el centinela por un `ius-loading` inline. */
|
|
8432
|
+
loadingMore?: boolean;
|
|
8433
|
+
}
|
|
8434
|
+
/** Segmento del eje de estado. */
|
|
8435
|
+
interface IusEntityStateSegment {
|
|
8436
|
+
value: string;
|
|
8437
|
+
label: string;
|
|
8438
|
+
}
|
|
8439
|
+
/** Alto declarado por tipo de ítem para la ventana de render (px). */
|
|
8440
|
+
interface IusEntityItemHeights {
|
|
8441
|
+
row?: number;
|
|
8442
|
+
group?: number;
|
|
8443
|
+
letter?: number;
|
|
8444
|
+
more?: number;
|
|
8445
|
+
loadMore?: number;
|
|
8446
|
+
addChild?: number;
|
|
8447
|
+
}
|
|
8448
|
+
/** Tipo de ítem de la lista aplanada. */
|
|
8449
|
+
type IusEntityDescKind = 'row' | 'letter' | 'group' | 'more' | 'loadMore' | 'addChild';
|
|
8450
|
+
/** Descriptor de un ítem: lo que el golden resuelve con un `render()` por elemento. */
|
|
8451
|
+
interface IusEntityDesc {
|
|
8452
|
+
key: string;
|
|
8453
|
+
kind: IusEntityDescKind;
|
|
8454
|
+
/** row / addChild */
|
|
8455
|
+
node?: IusEntityNode;
|
|
8456
|
+
level?: number;
|
|
8457
|
+
expandable?: boolean;
|
|
8458
|
+
expanded?: boolean;
|
|
8459
|
+
loading?: boolean;
|
|
8460
|
+
selected?: boolean;
|
|
8461
|
+
canPin?: boolean;
|
|
8462
|
+
/** letter */
|
|
8463
|
+
letter?: string;
|
|
8464
|
+
}
|
|
8465
|
+
/** Sección ya resuelta: descriptores, ventana de render y espaciadores. */
|
|
8466
|
+
interface IusEntitySection {
|
|
8467
|
+
gk: string;
|
|
8468
|
+
group: IusEntityGroup;
|
|
8469
|
+
isPinned: boolean;
|
|
8470
|
+
isCollapsed: boolean;
|
|
8471
|
+
/** Descriptores del cuerpo (sin el encabezado, que se pinta aparte). */
|
|
8472
|
+
descs: IusEntityDesc[];
|
|
8473
|
+
/** Rebanada visible (== `descs` si la sección no entra en ventana). */
|
|
8474
|
+
visible: IusEntityDesc[];
|
|
8475
|
+
padTop: number;
|
|
8476
|
+
padBot: number;
|
|
8477
|
+
/** ShowMore del grupo. */
|
|
8478
|
+
showMore: boolean;
|
|
8479
|
+
moreExpanded: boolean;
|
|
8480
|
+
moreRemaining: number;
|
|
8481
|
+
/** Pie de carga por lotes. */
|
|
8482
|
+
showLoadMore: boolean;
|
|
8483
|
+
loadingMore: boolean;
|
|
8484
|
+
/** El encabezado solo existe en modo agrupado. */
|
|
8485
|
+
hasHeader: boolean;
|
|
8486
|
+
sticky: boolean;
|
|
8487
|
+
}
|
|
8488
|
+
/**
|
|
8489
|
+
* EntityNavigator — Ius Design v2 (familia navigation).
|
|
8490
|
+
*
|
|
8491
|
+
* Segunda columna de un módulo de datos (Vigilancia, CRM…): el navegador de
|
|
8492
|
+
* ENTIDADES en árbol —clientes → expedientes → procesos—. Reúne buscador, eje de
|
|
8493
|
+
* estado, chips de filtro y facetas, orden, secciones agrupadas (anclados, con
|
|
8494
|
+
* novedad, A–Z), el árbol de `ius-entity-row` y un CTA de pie. Fuente de verdad:
|
|
8495
|
+
* `EntityNavigator.jsx` + `.d.ts` + `.ng-spec.md`.
|
|
8496
|
+
*
|
|
8497
|
+
* Presentacional + ESTADO DE UI PROPIO (expansión, selección, filtro activo,
|
|
8498
|
+
* sección fijada) en signals; los datos y su orden los provee el consumidor.
|
|
8499
|
+
* Cada par controlado/no controlado funciona como en el golden: si el input
|
|
8500
|
+
* viene definido manda el consumidor, si no manda el estado interno sembrado por
|
|
8501
|
+
* el `default*`. En Angular son pares two-way: `[(selected)]`, `[(expanded)]`,
|
|
8502
|
+
* `[(collapsed)]`.
|
|
8503
|
+
*
|
|
8504
|
+
* Fila suelta → `ius-entity-row`; secciones del módulo → NavRail.
|
|
8505
|
+
*
|
|
8506
|
+
* DECISIONES DE PORT:
|
|
8507
|
+
* 1. Los `ReactNode` de etiqueta (título, labels de nodo/grupo/filtro, CTA…) se
|
|
8508
|
+
* degradan a `string` (regla 5). El único que necesita markup rico es el
|
|
8509
|
+
* estado vacío: `emptyState` → `emptyStateTemplate: TemplateRef`.
|
|
8510
|
+
* 2. Outputs como `EventEmitter` (no `output()`) porque el contrato del golden
|
|
8511
|
+
* depende de SI HAY LISTENER: sin `onTogglePin` no hay pin, sin `onCreate` no
|
|
8512
|
+
* hay pie. `EventEmitter.observed` es la única forma de saberlo.
|
|
8513
|
+
* 3. El pin por nodo (`pinnable:false`, y descendientes de un anclado) necesitó
|
|
8514
|
+
* un input `pinnable` nuevo en `ius-entity-row`: React lo expresa omitiendo
|
|
8515
|
+
* el callback y en Angular un output enlazado siempre está observado.
|
|
8516
|
+
* 4. El golden acumula «nodos abiertos sin hijos» durante el render y los drena
|
|
8517
|
+
* en un efecto. Aquí es un `computed` puro (`nodosPorCargar`) leído por un
|
|
8518
|
+
* `effect`, que es el equivalente Angular y evita efectos en fase de render.
|
|
8519
|
+
* 5. Los centinelas de lote y las anclas de letra se siguen con `viewChildren`
|
|
8520
|
+
* (consultas signal que se reevalúan solas) en vez de con un hook
|
|
8521
|
+
* post-render.
|
|
8522
|
+
* 6. `onAddChild` se queda como callback del NODO, igual que `actions[].onClick`
|
|
8523
|
+
* (que ya es el contrato de `IusMenuOption` en esta librería).
|
|
8524
|
+
* 7. El golden mete el encabezado de grupo DENTRO de la ventana de render (su
|
|
8525
|
+
* lista de descriptores lo incluye), así que con secciones enormes puede
|
|
8526
|
+
* desaparecer del DOM. Aquí el encabezado se pinta siempre y solo los ítems
|
|
8527
|
+
* entran en ventana; su alto sí cuenta en el cursor aritmético, así que las
|
|
8528
|
+
* posiciones coinciden. Es un elemento extra por sección y a cambio el
|
|
8529
|
+
* encabezado nunca se esfuma al desplazarse.
|
|
8530
|
+
*/
|
|
8531
|
+
declare class EntityNavigatorComponent {
|
|
8532
|
+
readonly title: _angular_core.InputSignal<string>;
|
|
8533
|
+
readonly titleIcon: _angular_core.InputSignal<string>;
|
|
8534
|
+
/** `auto` (visible al superar la densidad) · `true` (siempre) · `false` (nunca). */
|
|
8535
|
+
readonly searchable: _angular_core.InputSignal<boolean | "auto">;
|
|
8536
|
+
readonly searchThreshold: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
8537
|
+
readonly searchPlaceholder: _angular_core.InputSignal<string>;
|
|
8538
|
+
/** Valor del buscador (controlado) — habilita la búsqueda en vivo. */
|
|
8539
|
+
readonly searchValue: _angular_core.InputSignal<string | undefined>;
|
|
8540
|
+
readonly filters: _angular_core.InputSignal<readonly IusEntityFilter[]>;
|
|
8541
|
+
/** Selección controlada de los chips (keys activas). */
|
|
8542
|
+
readonly selectedFilters: _angular_core.InputSignal<readonly string[] | undefined>;
|
|
8543
|
+
readonly availableFilters: _angular_core.InputSignal<readonly IusEntityFilter[]>;
|
|
8544
|
+
/** Facetas activas (controlado). Sin este input las mantiene el componente. */
|
|
8545
|
+
readonly activeFacets: _angular_core.InputSignal<readonly IusEntityFacet[] | undefined>;
|
|
8546
|
+
readonly stateSegments: _angular_core.InputSignal<readonly IusEntityStateSegment[] | undefined>;
|
|
8547
|
+
readonly stateValue: _angular_core.InputSignal<string | undefined>;
|
|
8548
|
+
readonly sortLabel: _angular_core.InputSignal<string | undefined>;
|
|
8549
|
+
readonly sortOptions: _angular_core.InputSignal<readonly IusMenuOption[] | undefined>;
|
|
8550
|
+
readonly sortValue: _angular_core.InputSignal<string | number | undefined>;
|
|
8551
|
+
readonly metaLabel: _angular_core.InputSignal<string | undefined>;
|
|
8552
|
+
readonly groups: _angular_core.InputSignal<readonly IusEntityGroup[] | undefined>;
|
|
8553
|
+
readonly items: _angular_core.InputSignal<readonly IusEntityNode[] | undefined>;
|
|
8554
|
+
/** Color del módulo, propagado a los EntityRow activos. */
|
|
8555
|
+
readonly accent: _angular_core.InputSignal<IusEntityRowAccent>;
|
|
8556
|
+
readonly defaultExpanded: _angular_core.InputSignal<readonly IusEntityId[]>;
|
|
8557
|
+
/** Expansión controlada (ids abiertos). Par two-way con `expandedChange`. */
|
|
8558
|
+
readonly expanded: _angular_core.InputSignal<readonly IusEntityId[] | undefined>;
|
|
8559
|
+
readonly autoExpandOnFilter: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
8560
|
+
/** Selección controlada. Par two-way con `selectedChange`. */
|
|
8561
|
+
readonly selected: _angular_core.InputSignal<IusEntityId | undefined>;
|
|
8562
|
+
readonly defaultSelected: _angular_core.InputSignal<IusEntityId | undefined>;
|
|
8563
|
+
/** Estado vacío a medida (el `emptyState: ReactNode` del golden). */
|
|
8564
|
+
readonly emptyStateTemplate: _angular_core.InputSignal<TemplateRef<unknown> | undefined>;
|
|
8565
|
+
readonly noResultsLabel: _angular_core.InputSignal<string>;
|
|
8566
|
+
readonly createLabel: _angular_core.InputSignal<string>;
|
|
8567
|
+
readonly createIcon: _angular_core.InputSignal<string>;
|
|
8568
|
+
readonly groupLimit: _angular_core.InputSignal<number | undefined>;
|
|
8569
|
+
readonly collapsibleGroups: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
8570
|
+
readonly stickyHeaders: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
8571
|
+
readonly pinnableGroups: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
8572
|
+
readonly defaultPinnedGroup: _angular_core.InputSignal<string | null>;
|
|
8573
|
+
/** «Mostrar N más» al final de la lista. */
|
|
8574
|
+
readonly moreLabel: _angular_core.InputSignal<string | undefined>;
|
|
8575
|
+
readonly alphaIndex: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
8576
|
+
readonly alphaIndexLetters: _angular_core.InputSignal<readonly string[] | undefined>;
|
|
8577
|
+
readonly loadMoreLabel: _angular_core.InputSignal<string | undefined>;
|
|
8578
|
+
readonly virtualized: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
8579
|
+
readonly virtualizeThreshold: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
8580
|
+
readonly itemHeights: _angular_core.InputSignal<IusEntityItemHeights | undefined>;
|
|
8581
|
+
readonly collapsible: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
8582
|
+
/** Colapsado controlado. Par two-way con `collapsedChange`. */
|
|
8583
|
+
readonly collapsed: _angular_core.InputSignal<boolean | undefined>;
|
|
8584
|
+
readonly defaultCollapsed: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
8585
|
+
readonly fluidWidth: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
8586
|
+
readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
|
|
8587
|
+
readonly search: EventEmitter<string>;
|
|
8588
|
+
readonly searchChange: EventEmitter<string>;
|
|
8589
|
+
readonly searchClear: EventEmitter<void>;
|
|
8590
|
+
readonly filter: EventEmitter<string[]>;
|
|
8591
|
+
readonly filterRemove: EventEmitter<string>;
|
|
8592
|
+
readonly addFilter: EventEmitter<{
|
|
8593
|
+
filter: IusEntityFilter;
|
|
8594
|
+
value?: IusEntityFilterOption;
|
|
8595
|
+
}>;
|
|
8596
|
+
readonly stateChange: EventEmitter<string>;
|
|
8597
|
+
readonly facetAdd: EventEmitter<{
|
|
8598
|
+
category: IusEntityFilter;
|
|
8599
|
+
option: IusEntityFilterOption;
|
|
8600
|
+
}>;
|
|
8601
|
+
readonly facetRemove: EventEmitter<string>;
|
|
8602
|
+
readonly sort: EventEmitter<{
|
|
8603
|
+
value: string | number | undefined;
|
|
8604
|
+
item?: IusMenuOption;
|
|
8605
|
+
}>;
|
|
8606
|
+
readonly select: EventEmitter<IusEntityNode>;
|
|
8607
|
+
/** Par two-way de `selected`. */
|
|
8608
|
+
readonly selectedChange: EventEmitter<IusEntityId>;
|
|
8609
|
+
/** Par two-way de `expanded`. */
|
|
8610
|
+
readonly expandedChange: EventEmitter<IusEntityId[]>;
|
|
8611
|
+
readonly togglePin: EventEmitter<{
|
|
8612
|
+
node: IusEntityNode;
|
|
8613
|
+
event: MouseEvent;
|
|
8614
|
+
}>;
|
|
8615
|
+
readonly create: EventEmitter<MouseEvent>;
|
|
8616
|
+
readonly pinGroup: EventEmitter<string | null>;
|
|
8617
|
+
readonly more: EventEmitter<MouseEvent>;
|
|
8618
|
+
/** Par two-way de `collapsed`. */
|
|
8619
|
+
readonly collapsedChange: EventEmitter<boolean>;
|
|
8620
|
+
readonly jumpToLetter: EventEmitter<string>;
|
|
8621
|
+
readonly loadMore: EventEmitter<string>;
|
|
8622
|
+
readonly expandLoad: EventEmitter<IusEntityNode>;
|
|
8623
|
+
private readonly bodyRef;
|
|
8624
|
+
private readonly alphaRef;
|
|
8625
|
+
private readonly searchRef;
|
|
8626
|
+
private readonly sentinels;
|
|
8627
|
+
private readonly letterAnchors;
|
|
8628
|
+
private readonly doc;
|
|
8629
|
+
private readonly zone;
|
|
8630
|
+
private readonly destroyRef;
|
|
8631
|
+
private readonly internalCollapsed;
|
|
8632
|
+
private readonly internalFilterKeys;
|
|
8633
|
+
private readonly internalState;
|
|
8634
|
+
private readonly internalFacets;
|
|
8635
|
+
private readonly internalExpanded;
|
|
8636
|
+
private readonly internalSelected;
|
|
8637
|
+
private sembrado;
|
|
8638
|
+
/** Menú «+ Filtro». */
|
|
8639
|
+
protected readonly addOpen: _angular_core.WritableSignal<boolean>;
|
|
8640
|
+
protected readonly addStep: _angular_core.WritableSignal<IusEntityFilter | null>;
|
|
8641
|
+
protected readonly addQuery: _angular_core.WritableSignal<string>;
|
|
8642
|
+
/** ShowMore y plegado por grupo. */
|
|
8643
|
+
private readonly grpExpanded;
|
|
8644
|
+
private readonly grpCollapsed;
|
|
8645
|
+
protected readonly pinnedKey: _angular_core.WritableSignal<string | null>;
|
|
8646
|
+
protected readonly bodyScrolled: _angular_core.WritableSignal<boolean>;
|
|
8647
|
+
private readonly searchManual;
|
|
8648
|
+
protected readonly activeLetter: _angular_core.WritableSignal<string | null>;
|
|
8649
|
+
private readonly alphaCap;
|
|
8650
|
+
private readonly vScroll;
|
|
8651
|
+
private readonly vPort;
|
|
8652
|
+
/** Guard «en vuelo» de la carga de hijos (afecta al render → signal). */
|
|
8653
|
+
private readonly elBusy;
|
|
8654
|
+
/** Guard «en vuelo» de los lotes (no afecta al render → campos planos). */
|
|
8655
|
+
private readonly lmBusy;
|
|
8656
|
+
private readonly lmCounts;
|
|
8657
|
+
private pendingLetter;
|
|
8658
|
+
private io;
|
|
8659
|
+
private vRaf;
|
|
8660
|
+
constructor();
|
|
8661
|
+
/** Siembra el estado interno con los `default*` la primera vez que se leen. */
|
|
8662
|
+
private sembrarEstadoInicial;
|
|
8663
|
+
protected readonly isCollapsed: _angular_core.Signal<boolean>;
|
|
8664
|
+
protected readonly activeKeys: _angular_core.Signal<ReadonlySet<string>>;
|
|
8665
|
+
protected readonly stateVal: _angular_core.Signal<string | undefined>;
|
|
8666
|
+
/** SegmentedControl pide un array mutable; el input del contrato es readonly. */
|
|
8667
|
+
protected readonly segmentos: _angular_core.Signal<IusEntityStateSegment[]>;
|
|
8668
|
+
protected readonly facets: _angular_core.Signal<readonly IusEntityFacet[]>;
|
|
8669
|
+
private readonly expSet;
|
|
8670
|
+
protected readonly selectedId: _angular_core.Signal<IusEntityId | undefined>;
|
|
8671
|
+
/** Nodos del nivel superior — alimenta el umbral de `searchable: 'auto'`. */
|
|
8672
|
+
protected readonly topCount: _angular_core.Signal<number>;
|
|
8673
|
+
protected readonly hasSearch: _angular_core.Signal<boolean>;
|
|
8674
|
+
private readonly autoShow;
|
|
8675
|
+
protected readonly searchVisible: _angular_core.Signal<boolean>;
|
|
8676
|
+
/** El icono de la lupa solo aparece si el buscador es alternable (`auto`/`true` ≠ siempre). */
|
|
8677
|
+
protected readonly showSearchToggle: _angular_core.Signal<boolean>;
|
|
8678
|
+
protected readonly searchActive: _angular_core.Signal<boolean>;
|
|
8679
|
+
protected readonly filterActive: _angular_core.Signal<boolean>;
|
|
8680
|
+
/** Con `autoExpandOnFilter`, mientras hay búsqueda o filtros se abre todo. */
|
|
8681
|
+
private readonly autoExp;
|
|
8682
|
+
private registrarAtajoBusqueda;
|
|
8683
|
+
protected abrirBusqueda(): void;
|
|
8684
|
+
protected alternarBusqueda(): void;
|
|
8685
|
+
protected onSearchValueChange(value: string): void;
|
|
8686
|
+
protected alternarFiltro(key: string): void;
|
|
8687
|
+
protected quitarFiltro(key: string): void;
|
|
8688
|
+
protected quitarFaceta(key: string): void;
|
|
8689
|
+
protected elegirEstado(value: string): void;
|
|
8690
|
+
protected onSort(payload: {
|
|
8691
|
+
value: string | number | undefined;
|
|
8692
|
+
item: IusMenuOption;
|
|
8693
|
+
}): void;
|
|
8694
|
+
/** Categorías aún no presentes como chip en la barra. */
|
|
8695
|
+
protected readonly categoriasDisponibles: _angular_core.Signal<IusEntityFilter[]>;
|
|
8696
|
+
/** Opciones del paso 2 del menú, filtradas por el buscador del picker. */
|
|
8697
|
+
protected readonly opcionesDelPaso: _angular_core.Signal<readonly IusEntityFilterOption[]>;
|
|
8698
|
+
protected alternarMenuFiltro(): void;
|
|
8699
|
+
protected onAddOpenChange(open: boolean): void;
|
|
8700
|
+
private cerrarPasoFiltro;
|
|
8701
|
+
protected elegirCategoria(f: IusEntityFilter): void;
|
|
8702
|
+
protected facetaActiva(categoria: IusEntityFilter, opt: IusEntityFilterOption): boolean;
|
|
8703
|
+
protected elegirValor(categoria: IusEntityFilter, opt: IusEntityFilterOption): void;
|
|
8704
|
+
/** Texto del chip de faceta: «Categoría: Valor» cuando hay `valueLabel`. */
|
|
8705
|
+
protected textoFaceta(f: IusEntityFacet): string;
|
|
8706
|
+
/** El `tone` del contrato es `string` libre; Tag lo tipa — se estrecha aquí. */
|
|
8707
|
+
protected tonoFiltro(f: IusEntityFilter): IusTagTone;
|
|
8708
|
+
protected tonoFaceta(f: IusEntityFacet): IusTagTone;
|
|
8709
|
+
/** «Volver» del paso 2 del menú «+ Filtro». */
|
|
8710
|
+
protected volverDelPaso(): void;
|
|
8711
|
+
protected alternarNodo(node: IusEntityNode): void;
|
|
8712
|
+
protected elegirNodo(desc: IusEntityDesc): void;
|
|
8713
|
+
protected onTogglePinNodo(node: IusEntityNode, event: MouseEvent): void;
|
|
8714
|
+
protected onAddChild(node: IusEntityNode, event: MouseEvent): void;
|
|
8715
|
+
protected alternarPinGrupo(key: string): void;
|
|
8716
|
+
protected alternarShowMore(key: string): void;
|
|
8717
|
+
protected alternarPlegadoGrupo(key: string): void;
|
|
8718
|
+
protected alternarColapso(): void;
|
|
8719
|
+
private readonly alturas;
|
|
8720
|
+
/** `stickyHeaders` es incompatible con la ventana de render: con `virtualized` se ignora. */
|
|
8721
|
+
protected readonly stickyOn: _angular_core.Signal<boolean>;
|
|
8722
|
+
/** Aplana un nodo y su subárbol abierto en descriptores. */
|
|
8723
|
+
private descsDeNodo;
|
|
8724
|
+
/** Aplana una lista de nivel superior, intercalando los divisores A–Z. */
|
|
8725
|
+
private descsDeLista;
|
|
8726
|
+
/**
|
|
8727
|
+
* Modelo completo: secciones con su ventana de render, sección fijada aparte y
|
|
8728
|
+
* las posiciones declaradas de cada letra (para el salto y la letra activa).
|
|
8729
|
+
* Un solo `computed` para que el cursor aritmético quede consistente, igual que
|
|
8730
|
+
* el `vCursor` del golden.
|
|
8731
|
+
*/
|
|
8732
|
+
protected readonly modelo: _angular_core.Signal<{
|
|
8733
|
+
secciones: IusEntitySection[];
|
|
8734
|
+
fijada: IusEntitySection | null;
|
|
8735
|
+
letras: Record<string, number>;
|
|
8736
|
+
virtOn: boolean;
|
|
8737
|
+
}>;
|
|
8738
|
+
protected readonly vacio: _angular_core.Signal<boolean>;
|
|
8739
|
+
protected readonly descripcionVacio: _angular_core.Signal<"Ajuste la búsqueda o los filtros." | undefined>;
|
|
8740
|
+
/**
|
|
8741
|
+
* Nodos abiertos que declaran hijos y aún no los traen. Equivalente Angular del
|
|
8742
|
+
* `elPendingRef` que el golden llena durante el render (decisión de port 4).
|
|
8743
|
+
*/
|
|
8744
|
+
private readonly nodosPorCargar;
|
|
8745
|
+
private registrarCargaDeHijos;
|
|
8746
|
+
/** Reconcilia el guard: si el grupo creció (llegó el lote) o ya no tiene más, se libera. */
|
|
8747
|
+
private registrarReconciliacionDeLotes;
|
|
8748
|
+
protected dispararLote(gk: string): void;
|
|
8749
|
+
private dispararTodosLosLotes;
|
|
8750
|
+
private readonly hayMasLotes;
|
|
8751
|
+
/** (Re)observa los centinelas presentes tras cada render. */
|
|
8752
|
+
private registrarCentinelas;
|
|
8753
|
+
/** Letras realmente presentes en el nivel superior, en orden de aparición. */
|
|
8754
|
+
protected readonly letrasPresentes: _angular_core.Signal<string[]>;
|
|
8755
|
+
private readonly setPresentes;
|
|
8756
|
+
/** El rail se oculta con búsqueda o filtros activos (el árbol se aplana). */
|
|
8757
|
+
protected readonly alphaVisible: _angular_core.Signal<boolean>;
|
|
8758
|
+
private readonly railLetters;
|
|
8759
|
+
/** Si no caben todas a ~16px: solo las que tienen nodos y, en el extremo, muestreadas. */
|
|
8760
|
+
protected readonly displayLetters: _angular_core.Signal<readonly string[]>;
|
|
8761
|
+
protected letraHabilitada(l: string): boolean;
|
|
8762
|
+
/** Roving tabindex: el único tab-stop del rail. */
|
|
8763
|
+
protected readonly alphaTabStop: _angular_core.Signal<string | undefined>;
|
|
8764
|
+
protected saltarALetra(letter: string): void;
|
|
8765
|
+
private anclaDeLetra;
|
|
8766
|
+
/** Descuenta el alto del encabezado sticky (salto por scrollTop, no scrollIntoView). */
|
|
8767
|
+
private topDeAncla;
|
|
8768
|
+
private prefiereMenosMovimiento;
|
|
8769
|
+
/** Resuelve el salto pendiente cuando el ancla aparece tras cargar lotes. */
|
|
8770
|
+
private registrarAnclasDeLetra;
|
|
8771
|
+
/** Teclado del rail: ↑/↓/Inicio/Fin mueven el foco entre letras habilitadas. */
|
|
8772
|
+
protected onRailKey(event: KeyboardEvent): void;
|
|
8773
|
+
private registrarObservadores;
|
|
8774
|
+
/**
|
|
8775
|
+
* Letra en viewport. Con ventana de render sale de las posiciones DECLARADAS;
|
|
8776
|
+
* si no, del `offsetTop` real del ancla (descontando el sticky).
|
|
8777
|
+
*/
|
|
8778
|
+
private actualizarLetraActiva;
|
|
8779
|
+
protected readonly hayCabecera: _angular_core.Signal<boolean>;
|
|
8780
|
+
protected readonly hayBarraFiltros: _angular_core.Signal<boolean>;
|
|
8781
|
+
protected readonly hayMeta: _angular_core.Signal<boolean>;
|
|
8782
|
+
protected readonly hayPie: _angular_core.Signal<boolean>;
|
|
8783
|
+
protected readonly textoCargarMas: _angular_core.Signal<string>;
|
|
8784
|
+
protected readonly textoCargando: _angular_core.Signal<string>;
|
|
8785
|
+
/** Sangría del enlace «+ …»: alinea con el label de la fila hija. */
|
|
8786
|
+
protected padAddChild(level: number): number;
|
|
8787
|
+
protected etiquetaPinGrupo(fijada: boolean): string;
|
|
8788
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<EntityNavigatorComponent, never>;
|
|
8789
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<EntityNavigatorComponent, "ius-entity-navigator", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "titleIcon": { "alias": "titleIcon"; "required": false; "isSignal": true; }; "searchable": { "alias": "searchable"; "required": false; "isSignal": true; }; "searchThreshold": { "alias": "searchThreshold"; "required": false; "isSignal": true; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; "isSignal": true; }; "searchValue": { "alias": "searchValue"; "required": false; "isSignal": true; }; "filters": { "alias": "filters"; "required": false; "isSignal": true; }; "selectedFilters": { "alias": "selectedFilters"; "required": false; "isSignal": true; }; "availableFilters": { "alias": "availableFilters"; "required": false; "isSignal": true; }; "activeFacets": { "alias": "activeFacets"; "required": false; "isSignal": true; }; "stateSegments": { "alias": "stateSegments"; "required": false; "isSignal": true; }; "stateValue": { "alias": "stateValue"; "required": false; "isSignal": true; }; "sortLabel": { "alias": "sortLabel"; "required": false; "isSignal": true; }; "sortOptions": { "alias": "sortOptions"; "required": false; "isSignal": true; }; "sortValue": { "alias": "sortValue"; "required": false; "isSignal": true; }; "metaLabel": { "alias": "metaLabel"; "required": false; "isSignal": true; }; "groups": { "alias": "groups"; "required": false; "isSignal": true; }; "items": { "alias": "items"; "required": false; "isSignal": true; }; "accent": { "alias": "accent"; "required": false; "isSignal": true; }; "defaultExpanded": { "alias": "defaultExpanded"; "required": false; "isSignal": true; }; "expanded": { "alias": "expanded"; "required": false; "isSignal": true; }; "autoExpandOnFilter": { "alias": "autoExpandOnFilter"; "required": false; "isSignal": true; }; "selected": { "alias": "selected"; "required": false; "isSignal": true; }; "defaultSelected": { "alias": "defaultSelected"; "required": false; "isSignal": true; }; "emptyStateTemplate": { "alias": "emptyStateTemplate"; "required": false; "isSignal": true; }; "noResultsLabel": { "alias": "noResultsLabel"; "required": false; "isSignal": true; }; "createLabel": { "alias": "createLabel"; "required": false; "isSignal": true; }; "createIcon": { "alias": "createIcon"; "required": false; "isSignal": true; }; "groupLimit": { "alias": "groupLimit"; "required": false; "isSignal": true; }; "collapsibleGroups": { "alias": "collapsibleGroups"; "required": false; "isSignal": true; }; "stickyHeaders": { "alias": "stickyHeaders"; "required": false; "isSignal": true; }; "pinnableGroups": { "alias": "pinnableGroups"; "required": false; "isSignal": true; }; "defaultPinnedGroup": { "alias": "defaultPinnedGroup"; "required": false; "isSignal": true; }; "moreLabel": { "alias": "moreLabel"; "required": false; "isSignal": true; }; "alphaIndex": { "alias": "alphaIndex"; "required": false; "isSignal": true; }; "alphaIndexLetters": { "alias": "alphaIndexLetters"; "required": false; "isSignal": true; }; "loadMoreLabel": { "alias": "loadMoreLabel"; "required": false; "isSignal": true; }; "virtualized": { "alias": "virtualized"; "required": false; "isSignal": true; }; "virtualizeThreshold": { "alias": "virtualizeThreshold"; "required": false; "isSignal": true; }; "itemHeights": { "alias": "itemHeights"; "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; }; "fluidWidth": { "alias": "fluidWidth"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "search": "search"; "searchChange": "searchChange"; "searchClear": "searchClear"; "filter": "filter"; "filterRemove": "filterRemove"; "addFilter": "addFilter"; "stateChange": "stateChange"; "facetAdd": "facetAdd"; "facetRemove": "facetRemove"; "sort": "sort"; "select": "select"; "selectedChange": "selectedChange"; "expandedChange": "expandedChange"; "togglePin": "togglePin"; "create": "create"; "pinGroup": "pinGroup"; "more": "more"; "collapsedChange": "collapsedChange"; "jumpToLetter": "jumpToLetter"; "loadMore": "loadMore"; "expandLoad": "expandLoad"; }, never, never, true, never>;
|
|
8790
|
+
}
|
|
8791
|
+
|
|
8792
|
+
/**
|
|
8793
|
+
* Clave de FUENTE (portal). Solo las cinco integradas realmente; un módulo puede
|
|
8794
|
+
* aportar las suyas por `customMap`, de ahí el `(string & {})`.
|
|
8053
8795
|
*/
|
|
8054
|
-
|
|
8796
|
+
type FuenteKey = 'rama' | 'sic' | 'supersociedades' | 'conciliacion' | 'manual' | (string & {});
|
|
8797
|
+
/** Clave de FILA (subfuente / origen del dato tal como llega). */
|
|
8798
|
+
type SourceKey = FuenteKey | 'judicial' | 'admin' | 'super' | (string & {});
|
|
8799
|
+
interface FuenteDef {
|
|
8800
|
+
/** Nombre completo del portal. */
|
|
8801
|
+
label: string;
|
|
8802
|
+
/** Nombre corto para chips/filtros. */
|
|
8803
|
+
short: string;
|
|
8804
|
+
/** Ícono Material Symbols Rounded. */
|
|
8805
|
+
icon: string;
|
|
8806
|
+
/** Hue categórico (identidad, nunca estado). */
|
|
8807
|
+
hue: Hue;
|
|
8808
|
+
}
|
|
8055
8809
|
/**
|
|
8056
|
-
*
|
|
8057
|
-
*
|
|
8058
|
-
*
|
|
8059
|
-
* border — borde del pill (hue-200)
|
|
8060
|
-
* text — texto sobre fill (hue-800)
|
|
8061
|
-
* solid — relleno fuerte / punto compacto (hue-500)
|
|
8062
|
-
* onSolid — texto sobre solid
|
|
8063
|
-
* Acepta un hue (string) o un objeto `{ category?, hue? }`.
|
|
8810
|
+
* Catálogo primario: fuente (portal) → { label, short, icon, hue }.
|
|
8811
|
+
* Orden: primero las VIGILADAS (de las que se capturan novedades), después las
|
|
8812
|
+
* NO vigiladas (el dato entra por otra vía). Ver divergencia 1 de la cabecera.
|
|
8064
8813
|
*/
|
|
8065
|
-
declare
|
|
8066
|
-
/**
|
|
8067
|
-
declare
|
|
8814
|
+
declare const FUENTE_DEF: Readonly<Record<string, FuenteDef>>;
|
|
8815
|
+
/** Fuente de reserva para una clave desconocida (nunca falla, cae aquí). */
|
|
8816
|
+
declare const FUENTE_FALLBACK: FuenteDef;
|
|
8817
|
+
/** Lista de fuentes reconocidas (orden del catálogo). */
|
|
8818
|
+
declare const FUENTES: readonly string[];
|
|
8819
|
+
/**
|
|
8820
|
+
* Puente subfuente → fuente. Solo las claves de fila que NO coinciden con una
|
|
8821
|
+
* fuente (las que sí coinciden — `sic`, `manual`… — se resuelven directo). Aquí
|
|
8822
|
+
* viven las subfuentes de la Rama Judicial y los alias heredados de los datos.
|
|
8823
|
+
*/
|
|
8824
|
+
declare const SOURCE_FUENTE: Readonly<Record<string, FuenteKey>>;
|
|
8825
|
+
/**
|
|
8826
|
+
* Etiqueta específica de subfuente (más fina que la de la fuente). Opcional: si
|
|
8827
|
+
* una clave no está aquí, se usa la etiqueta de su fuente.
|
|
8828
|
+
*/
|
|
8829
|
+
declare const SOURCE_LABEL: Readonly<Record<string, string>>;
|
|
8830
|
+
/**
|
|
8831
|
+
* Resuelve la CLAVE DE FUENTE de una clave de fila. Orden:
|
|
8832
|
+
* 1) `customMap[key]` (extensión por módulo)
|
|
8833
|
+
* 2) `SOURCE_FUENTE` (subfuente conocida)
|
|
8834
|
+
* 3) la propia clave si ya es una fuente
|
|
8835
|
+
* 4) `null` — el consumidor decide (se conserva nullable a propósito: sirve
|
|
8836
|
+
* para validar payload, `if (!resolveFuente(x)) throw …`).
|
|
8837
|
+
*/
|
|
8838
|
+
declare function resolveFuente(sourceKey: SourceKey | null | undefined, customMap?: Readonly<Record<string, FuenteKey>>): FuenteKey | null;
|
|
8839
|
+
/** Definición completa de la fuente de una clave de fila (con fallback seguro). */
|
|
8840
|
+
interface SourceMeta {
|
|
8841
|
+
fuente: FuenteKey | null;
|
|
8842
|
+
icon: string;
|
|
8843
|
+
hue: Hue;
|
|
8844
|
+
/** Etiqueta de la FUENTE (portal). */
|
|
8845
|
+
label: string;
|
|
8846
|
+
short: string;
|
|
8847
|
+
/** Etiqueta de la SUBFUENTE, si aplica. */
|
|
8848
|
+
subLabel: string | null;
|
|
8849
|
+
}
|
|
8850
|
+
/** Metadatos completos de una clave de fila; cae a `FUENTE_FALLBACK` si no resuelve. */
|
|
8851
|
+
declare function sourceMeta(sourceKey: SourceKey, customMap?: Readonly<Record<string, FuenteKey>>): SourceMeta;
|
|
8852
|
+
/** Ícono de una clave de fila — SIEMPRE por fuente (regla dura 1). */
|
|
8853
|
+
declare function sourceIcon(sourceKey: SourceKey, customMap?: Readonly<Record<string, FuenteKey>>): string;
|
|
8854
|
+
/** Tokens de color de una fuente — misma forma que `CategoryColors`. */
|
|
8855
|
+
type FuenteColors = CategoryColors;
|
|
8856
|
+
/**
|
|
8857
|
+
* Tokens de color resueltos para una fuente, listos para un chip / insignia de
|
|
8858
|
+
* origen: accent · fill · border · text · solid · onSolid · hue. Acepta una
|
|
8859
|
+
* clave de fuente, una clave de fila (subfuente) o directamente un hue.
|
|
8860
|
+
* Delega el mapeo hue → tokens en `categoryColors` (ver divergencia 4).
|
|
8861
|
+
*/
|
|
8862
|
+
declare function fuenteColors(keyOrHue: FuenteKey | SourceKey | Hue, customMap?: Readonly<Record<string, FuenteKey>>): FuenteColors;
|
|
8863
|
+
/** Opción lista para el filtro/dropdown "Fuente". */
|
|
8864
|
+
interface FuenteOption {
|
|
8865
|
+
value: string;
|
|
8866
|
+
label: string;
|
|
8867
|
+
icon: string;
|
|
8868
|
+
}
|
|
8869
|
+
/**
|
|
8870
|
+
* Opciones para el filtro "Fuente" de la Bandeja (value · label · icon).
|
|
8871
|
+
* Prefija la opción "Todas" si `all` es true (default), como la usa la Bandeja.
|
|
8872
|
+
*/
|
|
8873
|
+
declare function fuenteOptions(all?: boolean): FuenteOption[];
|
|
8874
|
+
|
|
8875
|
+
/** Escala del grupo; se propaga al control, al Select de tipo y al botón agregar. */
|
|
8876
|
+
type IusRepeatableSize = 'small' | 'medium' | 'large';
|
|
8877
|
+
/** Teclado + validación por fila del control por defecto. */
|
|
8878
|
+
type IusRepeatableInputMode = 'tel' | 'email' | 'text';
|
|
8879
|
+
/** Una fila de la lista repetible. */
|
|
8880
|
+
interface IusRepeatableItem {
|
|
8881
|
+
/** Id estable de la fila (se autogenera si falta). */
|
|
8882
|
+
id?: string | number;
|
|
8883
|
+
/** Tipo por fila (móvil/fijo, demandante/demandado…) — solo con `types`. */
|
|
8884
|
+
type?: string | number;
|
|
8885
|
+
/** Valor de la fila. */
|
|
8886
|
+
value?: unknown;
|
|
8887
|
+
}
|
|
8888
|
+
/** Opción del Select de tipo por fila. */
|
|
8889
|
+
interface IusRepeatableTypeOption {
|
|
8890
|
+
value: string | number;
|
|
8891
|
+
label: string;
|
|
8892
|
+
icon?: string;
|
|
8893
|
+
}
|
|
8894
|
+
/**
|
|
8895
|
+
* Contexto que recibe el `TemplateRef` de `renderControl` — equivalente del
|
|
8896
|
+
* `renderControl(item, setValue, ctx)` del golden.
|
|
8897
|
+
*/
|
|
8898
|
+
interface IusRepeatableControlContext {
|
|
8899
|
+
/** La fila (`let-item`). */
|
|
8900
|
+
$implicit: IusRepeatableItem;
|
|
8901
|
+
/** Escribe el valor de ESTA fila y emite el arreglo completo. */
|
|
8902
|
+
setValue: (value: unknown) => void;
|
|
8903
|
+
index: number;
|
|
8904
|
+
disabled: boolean;
|
|
8905
|
+
size: IusRepeatableSize;
|
|
8906
|
+
/** Error efectivo de la fila (del grupo o de su propia validación). */
|
|
8907
|
+
error: boolean;
|
|
8908
|
+
errorText?: string;
|
|
8909
|
+
}
|
|
8910
|
+
/** Fila ya normalizada: el `id` deja de ser opcional. */
|
|
8911
|
+
interface Fila extends IusRepeatableItem {
|
|
8912
|
+
id: string | number;
|
|
8913
|
+
}
|
|
8914
|
+
/** Vista de una fila: lo que el template necesita, precalculado. */
|
|
8915
|
+
interface FilaVM {
|
|
8916
|
+
fila: Fila;
|
|
8917
|
+
/** `value` como string para el TextField por defecto. */
|
|
8918
|
+
texto: string;
|
|
8919
|
+
error: boolean;
|
|
8920
|
+
errorText?: string;
|
|
8921
|
+
quitarDeshabilitado: boolean;
|
|
8922
|
+
ctx: IusRepeatableControlContext;
|
|
8923
|
+
}
|
|
8924
|
+
/**
|
|
8925
|
+
* RepeatableField — Ius Design v2.
|
|
8926
|
+
*
|
|
8927
|
+
* Lista abierta de valores del mismo tipo (varios teléfonos, correos,
|
|
8928
|
+
* direcciones): filas «+ Agregar» / eliminar, cada una con un control editable
|
|
8929
|
+
* y, opcional, un Select de tipo por fila. **No aporta UI nueva**: compone
|
|
8930
|
+
* `ius-text-field`, `ius-select`, `ius-icon-button` y `ius-text-button`.
|
|
8931
|
+
*
|
|
8932
|
+
* Decisiones de port (divergencias documentadas contra el material remoto):
|
|
8933
|
+
*
|
|
8934
|
+
* 1. **`label` es `string`, no un slot proyectado.** La ng-spec lo tipa `node`
|
|
8935
|
+
* (React), pero sus hermanos de la familia `.ius-tf` — TextField, Select,
|
|
8936
|
+
* TextArea, MultiTextField — lo exponen como `string`, y todos los usos del
|
|
8937
|
+
* card/playground pasan texto plano. Un `<ng-content>` extra aquí además
|
|
8938
|
+
* chocaría con la trampa ya documentada del slot detrás de un `@if`.
|
|
8939
|
+
*
|
|
8940
|
+
* 2. **`max` DESHABILITA «Agregar», no lo oculta.** La prosa de la ng-spec dice
|
|
8941
|
+
* «oculta»; el golden (que la propia ng-spec declara fuente de verdad) hace
|
|
8942
|
+
* `disabled: disabled || atMax`. Se sigue el golden: un botón deshabilitado
|
|
8943
|
+
* comunica el tope, uno que desaparece lo esconde.
|
|
8944
|
+
*
|
|
8945
|
+
* 3. **`typeWidth` por defecto 150**, como el JSX y el fallback del CSS
|
|
8946
|
+
* (`var(--_rf-type-w, 150px)`). El `.d.ts` dice 140 — es su comentario el
|
|
8947
|
+
* que está desactualizado, no el código.
|
|
8948
|
+
*
|
|
8949
|
+
* 4. **Los `id` se normalizan SIEMPRE**, no solo en la semilla. La ng-spec §3 lo
|
|
8950
|
+
* pide («los `id` se autogeneran si faltan»); el golden solo normaliza
|
|
8951
|
+
* `seed()`, así que en modo controlado dos filas sin `id` colisionan en
|
|
8952
|
+
* `undefined` y `setRow` las escribe todas. Aquí el id se memoiza por
|
|
8953
|
+
* identidad de objeto (WeakMap), así que recalcular la vista no lo cambia.
|
|
8954
|
+
*
|
|
8955
|
+
* 5. **`--_rf-field-h` también responde a `--ius-control-size`.** El golden no
|
|
8956
|
+
* trae la consulta de contenedor, pero TextField y Select sí: con
|
|
8957
|
+
* `--ius-control-size: small` los campos encogen y el alto declarado aquí
|
|
8958
|
+
* (40px) descentraría el botón de quitar. Mismo patrón que Switch/SearchBar.
|
|
8959
|
+
*/
|
|
8960
|
+
declare class RepeatableFieldComponent implements ControlValueAccessor {
|
|
8961
|
+
private readonly itemsInput;
|
|
8962
|
+
/** Filas controladas por el consumidor. Sin bindear = no controlado (CVA). */
|
|
8963
|
+
set items(value: IusRepeatableItem[] | null | undefined);
|
|
8964
|
+
get items(): IusRepeatableItem[] | undefined;
|
|
8965
|
+
private readonly interno;
|
|
8966
|
+
private semillaAplicada;
|
|
8967
|
+
/** Semilla del modo no controlado (espejo del `useState(seed)` del golden). */
|
|
8968
|
+
set defaultItems(value: IusRepeatableItem[] | null | undefined);
|
|
8969
|
+
private readonly typesState;
|
|
8970
|
+
/** Si se pasa, cada fila lleva un Select de tipo. */
|
|
8971
|
+
set types(value: readonly IusRepeatableTypeOption[] | null | undefined);
|
|
8972
|
+
get types(): IusRepeatableTypeOption[] | undefined;
|
|
8973
|
+
/** Ancho del Select de tipo (número = px). */
|
|
8974
|
+
typeWidth: number | string;
|
|
8975
|
+
/** Placeholder del Select de tipo. */
|
|
8976
|
+
typePlaceholder: string;
|
|
8977
|
+
/**
|
|
8978
|
+
* Control a medida por fila; reemplaza al TextField. Contexto:
|
|
8979
|
+
* `{ $implicit, setValue, index, disabled, size, error, errorText }`.
|
|
8980
|
+
*/
|
|
8981
|
+
renderControl?: TemplateRef<IusRepeatableControlContext>;
|
|
8982
|
+
/** Ícono a la izquierda del TextField por defecto (phone/mail). */
|
|
8983
|
+
prefixIcon?: string;
|
|
8984
|
+
/** Placeholder del control por defecto. */
|
|
8985
|
+
placeholder?: string;
|
|
8986
|
+
private readonly inputModeState;
|
|
8987
|
+
/** Valida y teclea por fila: `email` y `tel` marcan su propia fila. */
|
|
8988
|
+
set inputMode(value: IusRepeatableInputMode | null | undefined);
|
|
8989
|
+
get inputMode(): IusRepeatableInputMode | undefined;
|
|
8990
|
+
private readonly emptyValueState;
|
|
8991
|
+
/** Valor de una fila nueva. */
|
|
8992
|
+
set emptyValue(value: unknown);
|
|
8993
|
+
get emptyValue(): unknown;
|
|
8994
|
+
/** Texto del botón agregar. */
|
|
8995
|
+
addLabel: string;
|
|
8996
|
+
/** Ícono del botón agregar. */
|
|
8997
|
+
addIcon: string;
|
|
8998
|
+
private readonly maxState;
|
|
8999
|
+
/**
|
|
9000
|
+
* Tope de filas. Sin `numberAttribute` a propósito: aquí `undefined` significa
|
|
9001
|
+
* «sin tope» y el transform lo convertiría en `NaN`, que no es `== null`.
|
|
9002
|
+
*/
|
|
9003
|
+
set max(value: number | null | undefined);
|
|
9004
|
+
get max(): number | undefined;
|
|
9005
|
+
/** Etiqueta del grupo (sobre las filas). */
|
|
9006
|
+
label?: string;
|
|
9007
|
+
private readonly sizeState;
|
|
9008
|
+
set size(value: IusRepeatableSize);
|
|
9009
|
+
get size(): IusRepeatableSize;
|
|
9010
|
+
private readonly disabledState;
|
|
9011
|
+
set disabled(value: boolean);
|
|
9012
|
+
get disabled(): boolean;
|
|
9013
|
+
private readonly requiredState;
|
|
9014
|
+
/** Mantiene ≥1 fila: eliminar la última la LIMPIA en vez de borrarla. */
|
|
9015
|
+
set required(value: boolean);
|
|
9016
|
+
get required(): boolean;
|
|
9017
|
+
private readonly errorState;
|
|
9018
|
+
/** Error del grupo (marca todas las filas y pinta el pie). */
|
|
9019
|
+
set error(value: boolean);
|
|
9020
|
+
get error(): boolean;
|
|
9021
|
+
private readonly errorTextState;
|
|
9022
|
+
/** Reemplaza a `helpText` cuando `error` es `true`. */
|
|
9023
|
+
set errorText(value: string | undefined);
|
|
9024
|
+
get errorText(): string | undefined;
|
|
9025
|
+
private readonly helpTextState;
|
|
9026
|
+
/** Línea de ayuda al pie del grupo. */
|
|
9027
|
+
set helpText(value: string | undefined);
|
|
9028
|
+
get helpText(): string | undefined;
|
|
9029
|
+
/** Además del CVA: el arreglo completo en cada cambio (add/remove/edit/tipo). */
|
|
9030
|
+
readonly valueChange: EventEmitter<IusRepeatableItem[]>;
|
|
9031
|
+
protected readonly labelId: string;
|
|
9032
|
+
/** Referencia estable: un objeto literal en el template cambiaría cada CD. */
|
|
9033
|
+
protected readonly ngModelSuelto: {
|
|
9034
|
+
standalone: boolean;
|
|
9035
|
+
};
|
|
9036
|
+
private onChangeFn;
|
|
9037
|
+
private onTouchedFn;
|
|
9038
|
+
/**
|
|
9039
|
+
* Ids autogenerados, memoizados por identidad de objeto: recalcular la vista
|
|
9040
|
+
* no reasigna ids (si lo hiciera, el `track` del `@for` recrearía cada fila
|
|
9041
|
+
* y el input perdería el foco en cada tecla).
|
|
9042
|
+
*/
|
|
9043
|
+
private readonly idsGenerados;
|
|
9044
|
+
/** Id de la fila fantasma que sostiene `required` cuando no hay ninguna. */
|
|
9045
|
+
private readonly idFilaRequerida;
|
|
9046
|
+
private idDe;
|
|
9047
|
+
private primerTipo;
|
|
9048
|
+
/** Fuente de las filas: `[items]` manda sobre el estado interno/CVA. */
|
|
9049
|
+
protected readonly filas: _angular_core.Signal<Fila[]>;
|
|
9050
|
+
protected readonly filasVM: _angular_core.Signal<FilaVM[]>;
|
|
9051
|
+
protected readonly conTipos: _angular_core.Signal<boolean>;
|
|
9052
|
+
protected readonly opcionesTipo: _angular_core.Signal<SelectOption[]>;
|
|
9053
|
+
protected readonly alTope: _angular_core.Signal<boolean>;
|
|
9054
|
+
/**
|
|
9055
|
+
* Texto del pie. Sin error = `helpText`; con error = `errorText` (y nada si
|
|
9056
|
+
* no hay `errorText`, igual que el golden, que en ese caso no pinta ninguna
|
|
9057
|
+
* de sus dos ramas).
|
|
9058
|
+
*/
|
|
9059
|
+
protected readonly pie: _angular_core.Signal<string | null>;
|
|
9060
|
+
protected readonly tipoInput: _angular_core.Signal<"text" | "email" | "tel">;
|
|
9061
|
+
protected get anchoTipo(): string;
|
|
9062
|
+
/**
|
|
9063
|
+
* Única salida de escritura: en modo no controlado guarda, y siempre notifica
|
|
9064
|
+
* (CVA + `valueChange`). Espejo del `commit` del golden.
|
|
9065
|
+
*/
|
|
9066
|
+
private commit;
|
|
9067
|
+
protected setValor(id: string | number, valor: unknown): void;
|
|
9068
|
+
protected setTipo(id: string | number, tipo: unknown): void;
|
|
9069
|
+
protected agregar(): void;
|
|
9070
|
+
protected quitar(id: string | number): void;
|
|
9071
|
+
writeValue(value: IusRepeatableItem[] | null): void;
|
|
9072
|
+
registerOnChange(fn: (items: IusRepeatableItem[]) => void): void;
|
|
9073
|
+
registerOnTouched(fn: () => void): void;
|
|
9074
|
+
setDisabledState(isDisabled: boolean): void;
|
|
9075
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RepeatableFieldComponent, never>;
|
|
9076
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<RepeatableFieldComponent, "ius-repeatable-field", never, { "items": { "alias": "items"; "required": false; }; "defaultItems": { "alias": "defaultItems"; "required": false; }; "types": { "alias": "types"; "required": false; }; "typeWidth": { "alias": "typeWidth"; "required": false; }; "typePlaceholder": { "alias": "typePlaceholder"; "required": false; }; "renderControl": { "alias": "renderControl"; "required": false; }; "prefixIcon": { "alias": "prefixIcon"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "inputMode": { "alias": "inputMode"; "required": false; }; "emptyValue": { "alias": "emptyValue"; "required": false; }; "addLabel": { "alias": "addLabel"; "required": false; }; "addIcon": { "alias": "addIcon"; "required": false; }; "max": { "alias": "max"; "required": false; }; "label": { "alias": "label"; "required": false; }; "size": { "alias": "size"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "required": { "alias": "required"; "required": false; }; "error": { "alias": "error"; "required": false; }; "errorText": { "alias": "errorText"; "required": false; }; "helpText": { "alias": "helpText"; "required": false; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
|
|
9077
|
+
static ngAcceptInputType_disabled: unknown;
|
|
9078
|
+
static ngAcceptInputType_required: unknown;
|
|
9079
|
+
static ngAcceptInputType_error: unknown;
|
|
9080
|
+
}
|
|
9081
|
+
|
|
9082
|
+
/** Una serie del gráfico: valores alineados 1:1 con `categories`; `null` omite la barra. */
|
|
9083
|
+
interface IusBarSeries {
|
|
9084
|
+
/** Identificador único de la serie. */
|
|
9085
|
+
key: string;
|
|
9086
|
+
/** Etiqueta de la serie (leyenda + tooltip). */
|
|
9087
|
+
label: string;
|
|
9088
|
+
/** Valores alineados 1:1 con `categories`. `null` omite la barra de esa categoría. */
|
|
9089
|
+
values: ReadonlyArray<number | null>;
|
|
9090
|
+
/** Tono explícito; si se omite, rota por los tonos categóricos del DS. */
|
|
9091
|
+
tone?: ChartTone;
|
|
9092
|
+
}
|
|
9093
|
+
/** Orientación de las barras. */
|
|
9094
|
+
type IusBarChartOrientation = 'vertical' | 'horizontal';
|
|
9095
|
+
interface BarRect {
|
|
9096
|
+
x: number;
|
|
9097
|
+
y: number;
|
|
9098
|
+
w: number;
|
|
9099
|
+
h: number;
|
|
9100
|
+
color: string;
|
|
9101
|
+
i: number;
|
|
9102
|
+
v: number;
|
|
9103
|
+
/** Solo apilado: path con esquinas redondeadas en los extremos del stack. */
|
|
9104
|
+
d: string | null;
|
|
9105
|
+
/** No apilado: radio del rect. */
|
|
9106
|
+
rx: number;
|
|
9107
|
+
}
|
|
9108
|
+
interface BarFrame {
|
|
9109
|
+
W: number;
|
|
9110
|
+
H: number;
|
|
9111
|
+
mT: number;
|
|
9112
|
+
mR: number;
|
|
9113
|
+
mB: number;
|
|
9114
|
+
mL: number;
|
|
9115
|
+
innerW: number;
|
|
9116
|
+
innerH: number;
|
|
9117
|
+
n: number;
|
|
9118
|
+
vertical: boolean;
|
|
9119
|
+
ticks: number[];
|
|
9120
|
+
vLo: number;
|
|
9121
|
+
vHi: number;
|
|
9122
|
+
baseV: number;
|
|
9123
|
+
basePos: number;
|
|
9124
|
+
bandSize: number;
|
|
9125
|
+
innerBand: number;
|
|
9126
|
+
valuePos: (v: number) => number;
|
|
9127
|
+
bandCenter: (i: number) => number;
|
|
9128
|
+
}
|
|
9129
|
+
/**
|
|
9130
|
+
* BarChart — Ius Design v2 (familia charts).
|
|
9131
|
+
*
|
|
9132
|
+
* **Gráfico de barras** en SVG propio (sin librería de charts) para comparar
|
|
9133
|
+
* **categorías discretas**. Vertical (default) u horizontal (ranking /
|
|
9134
|
+
* etiquetas largas); agrupado (default) o **apilado** (partes que suman, con
|
|
9135
|
+
* Total en el tooltip). Dominio de valor «nice numbers» desde 0
|
|
9136
|
+
* (forzable con `valueMin`/`valueMax`).
|
|
9137
|
+
*
|
|
9138
|
+
* Trae ejes + grilla, leyenda (auto con > 1 serie), etiquetas de valor
|
|
9139
|
+
* opcionales (por barra, o total por categoría en apilado), **tooltip** por
|
|
9140
|
+
* banda de categoría (resalta sus barras y atenúa el resto), **animación** de
|
|
9141
|
+
* crecimiento desde la base (WAAPI con stagger por categoría, red de seguridad
|
|
9142
|
+
* para capturas y respeto a `prefers-reduced-motion`), tamaño **responsive**
|
|
9143
|
+
* (`ResizeObserver`, `minWidth`, `aspectRatio`) o **fijo** (`width`), y estados
|
|
9144
|
+
* de **carga** (skeleton) y **vacío** (compone `ius-empty-state`).
|
|
9145
|
+
*
|
|
9146
|
+
* Fuente de verdad: `BarChart.jsx` + `BarChart.d.ts` + `BarChart.ng-spec.md`.
|
|
9147
|
+
* Tonos, escala y formato es-CO vienen de `charts-core`.
|
|
9148
|
+
*
|
|
9149
|
+
* Decisiones del port (mismas que LineChart): `emptyTitle`/`emptyDescription`
|
|
9150
|
+
* son `string`; el slot `empty` viaja como `emptyTemplate: TemplateRef`;
|
|
9151
|
+
* `categoryFormat` es función → `string`. Display puro: sin outputs.
|
|
9152
|
+
*
|
|
9153
|
+
* No usar para evolución sobre una secuencia (→ LineChart), partes de un todo
|
|
9154
|
+
* sin comparación entre categorías (→ DonutChart) ni mini-tendencia (→ Sparkline).
|
|
9155
|
+
*/
|
|
9156
|
+
declare class BarChartComponent implements AfterViewInit, OnDestroy {
|
|
9157
|
+
/** Categorías discretas (eje de categoría). */
|
|
9158
|
+
readonly categories: _angular_core.InputSignal<readonly (string | number)[]>;
|
|
9159
|
+
/** Series a dibujar (un juego de barras cada una). */
|
|
9160
|
+
readonly series: _angular_core.InputSignal<readonly IusBarSeries[]>;
|
|
9161
|
+
/** Horizontal para ranking / etiquetas largas. Default vertical. */
|
|
9162
|
+
readonly orientation: _angular_core.InputSignal<IusBarChartOrientation>;
|
|
9163
|
+
/** Apila las series por categoría (partes que suman). */
|
|
9164
|
+
readonly stacked: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
9165
|
+
/** Alto del área de dibujo en px. Default 280. */
|
|
9166
|
+
readonly height: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
9167
|
+
/** Ancho fijo en px. Si se omite, el chart es responsive (llena el contenedor). */
|
|
9168
|
+
readonly width: _angular_core.InputSignal<number | undefined>;
|
|
9169
|
+
/** En modo responsive fija el alto como ancho/ratio (ignora `height`). */
|
|
9170
|
+
readonly aspectRatio: _angular_core.InputSignal<number | undefined>;
|
|
9171
|
+
/** Ancho mínimo en px (modo responsive). Default 280. */
|
|
9172
|
+
readonly minWidth: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
9173
|
+
/** Ancho del eje de valor (vertical) o de categoría (horizontal) en px. Default 44. */
|
|
9174
|
+
readonly axisWidth: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
9175
|
+
/** Grosor máximo de cada barra en px. Default 28. */
|
|
9176
|
+
readonly barSize: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
9177
|
+
readonly showCategoryAxis: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
9178
|
+
readonly showValueAxis: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
9179
|
+
readonly showGrid: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
9180
|
+
/** Nº aproximado de divisiones del eje de valor. Default 4. */
|
|
9181
|
+
readonly valueTicks: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
9182
|
+
/** Fuerza el mínimo del dominio (default: 0 si todo es ≥ 0, si no el mínimo del dato). */
|
|
9183
|
+
readonly valueMin: _angular_core.InputSignal<number | undefined>;
|
|
9184
|
+
/** Fuerza el máximo del dominio (default: automático «nice»). */
|
|
9185
|
+
readonly valueMax: _angular_core.InputSignal<number | undefined>;
|
|
9186
|
+
/** Etiqueta por barra (no apilado) o total por categoría (apilado). */
|
|
9187
|
+
readonly showValueLabels: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
9188
|
+
/** Leyenda de series. Sin fijar: visible cuando hay > 1 serie. */
|
|
9189
|
+
readonly showLegend: _angular_core.InputSignal<boolean | undefined>;
|
|
9190
|
+
/** Tooltip por categoría en hover. Default true. */
|
|
9191
|
+
readonly showTooltip: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
9192
|
+
/** Formatea los valores (eje, tooltip, etiquetas). Default `Intl` es-CO. */
|
|
9193
|
+
readonly valueFormat: _angular_core.InputSignal<((value: number) => string) | undefined>;
|
|
9194
|
+
/** Formatea las etiquetas de categoría (y el título del tooltip). */
|
|
9195
|
+
readonly categoryFormat: _angular_core.InputSignal<((category: string | number, index: number) => string) | undefined>;
|
|
9196
|
+
/** Sufijo de unidad (p. ej. ` mov`). Ignorado si hay `valueFormat`. */
|
|
9197
|
+
readonly unit: _angular_core.InputSignal<string | undefined>;
|
|
9198
|
+
/** Carga: oculta los datos y muestra barras skeleton. */
|
|
9199
|
+
readonly loading: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
9200
|
+
/** Plantilla propia cuando no hay datos (reemplaza el EmptyState por defecto). */
|
|
9201
|
+
readonly emptyTemplate: _angular_core.InputSignal<TemplateRef<unknown> | undefined>;
|
|
9202
|
+
/** Título del EmptyState por defecto. */
|
|
9203
|
+
readonly emptyTitle: _angular_core.InputSignal<string>;
|
|
9204
|
+
/** Descripción del EmptyState por defecto. */
|
|
9205
|
+
readonly emptyDescription: _angular_core.InputSignal<string | undefined>;
|
|
9206
|
+
/** Animación de crecimiento desde la base. Default true. */
|
|
9207
|
+
readonly animate: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
9208
|
+
/** Etiqueta accesible del gráfico. */
|
|
9209
|
+
readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
|
|
9210
|
+
private readonly el;
|
|
9211
|
+
private resizeObserver?;
|
|
9212
|
+
private animTimers;
|
|
9213
|
+
private animations;
|
|
9214
|
+
/** Ancho medido del contenedor (modo responsive). */
|
|
9215
|
+
private readonly measured;
|
|
9216
|
+
/** Categoría bajo el cursor (tooltip + resalte). */
|
|
9217
|
+
protected readonly active: _angular_core.WritableSignal<number | null>;
|
|
9218
|
+
private readonly uidStr;
|
|
9219
|
+
protected readonly hasData: _angular_core.Signal<boolean>;
|
|
9220
|
+
protected readonly legendOn: _angular_core.Signal<boolean>;
|
|
9221
|
+
protected readonly vertical: _angular_core.Signal<boolean>;
|
|
9222
|
+
/** Series con su color resuelto (leyenda + tooltip). */
|
|
9223
|
+
protected readonly seriesView: _angular_core.Signal<{
|
|
9224
|
+
key: string;
|
|
9225
|
+
label: string;
|
|
9226
|
+
color: string;
|
|
9227
|
+
}[]>;
|
|
9228
|
+
/** Lienzo: tamaño, márgenes, dominio «nice», banda de categoría y proyecciones. */
|
|
9229
|
+
protected readonly frame: _angular_core.Signal<BarFrame>;
|
|
9230
|
+
protected readonly viewBox: _angular_core.Signal<string>;
|
|
9231
|
+
/** Rects de las barras (agrupado: rect+rx · apilado: path con extremos redondeados). */
|
|
9232
|
+
protected readonly rects: _angular_core.Signal<BarRect[]>;
|
|
9233
|
+
/** Ticks del eje de valor con su posición. */
|
|
9234
|
+
protected readonly tickItems: _angular_core.Signal<{
|
|
9235
|
+
pos: number;
|
|
9236
|
+
text: string;
|
|
9237
|
+
}[]>;
|
|
9238
|
+
/** Etiquetas de categoría con su centro de banda. */
|
|
9239
|
+
protected readonly catItems: _angular_core.Signal<{
|
|
9240
|
+
center: number;
|
|
9241
|
+
text: string;
|
|
9242
|
+
}[]>;
|
|
9243
|
+
/** Bandas invisibles de hover (una por categoría). */
|
|
9244
|
+
protected readonly hoverBands: _angular_core.Signal<{
|
|
9245
|
+
i: number;
|
|
9246
|
+
x: number;
|
|
9247
|
+
y: number;
|
|
9248
|
+
w: number;
|
|
9249
|
+
h: number;
|
|
9250
|
+
}[]>;
|
|
9251
|
+
/** Barras skeleton (alturas pseudoaleatorias estables, como el golden). */
|
|
9252
|
+
protected readonly skeletonRects: _angular_core.Signal<{
|
|
9253
|
+
x: number;
|
|
9254
|
+
y: number;
|
|
9255
|
+
w: number;
|
|
9256
|
+
h: number;
|
|
9257
|
+
}[]>;
|
|
9258
|
+
/** Etiquetas de valor: por barra (agrupado) o total por categoría (apilado). */
|
|
9259
|
+
protected readonly valueLabelItems: _angular_core.Signal<{
|
|
9260
|
+
x: number;
|
|
9261
|
+
y: number;
|
|
9262
|
+
anchor: string;
|
|
9263
|
+
baseline: string | null;
|
|
9264
|
+
text: string;
|
|
9265
|
+
}[]>;
|
|
9266
|
+
/** Tarjeta del tooltip de la categoría activa (posición en %, una fila por serie, Total en apilado). */
|
|
9267
|
+
protected readonly tooltip: _angular_core.Signal<{
|
|
9268
|
+
left: number;
|
|
9269
|
+
top: number;
|
|
9270
|
+
title: string;
|
|
9271
|
+
rows: {
|
|
9272
|
+
key: string;
|
|
9273
|
+
label: string;
|
|
9274
|
+
color: string;
|
|
9275
|
+
value: string;
|
|
9276
|
+
}[];
|
|
9277
|
+
total: string | null;
|
|
9278
|
+
} | null>;
|
|
9279
|
+
/** Firma del dato que dispara la animación de crecimiento (igual que `animSig` del golden). */
|
|
9280
|
+
private readonly animSig;
|
|
9281
|
+
constructor();
|
|
9282
|
+
ngAfterViewInit(): void;
|
|
9283
|
+
ngOnDestroy(): void;
|
|
9284
|
+
/** Formato de un valor: `valueFormat` o `Intl` es-CO + `unit`. */
|
|
9285
|
+
protected fmt(n: number): string;
|
|
9286
|
+
/** Suma de la categoría `i` (tooltip/etiqueta del apilado). */
|
|
9287
|
+
protected total(i: number): number;
|
|
9288
|
+
protected onBandEnter(i: number): void;
|
|
9289
|
+
protected onBandLeave(i: number): void;
|
|
9290
|
+
/**
|
|
9291
|
+
* Crecimiento desde la base (scaleY/scaleX vía WAAPI con stagger por categoría).
|
|
9292
|
+
* Red de seguridad: pasada la duración se CANCELA la animación y la barra queda
|
|
9293
|
+
* a tamaño real aunque el timeline esté congelado (capturas/thumbnails).
|
|
9294
|
+
* `prefers-reduced-motion` = sin animar.
|
|
9295
|
+
*/
|
|
9296
|
+
private runEntryAnimation;
|
|
9297
|
+
private stopAnimations;
|
|
9298
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<BarChartComponent, never>;
|
|
9299
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<BarChartComponent, "ius-bar-chart", never, { "categories": { "alias": "categories"; "required": false; "isSignal": true; }; "series": { "alias": "series"; "required": false; "isSignal": true; }; "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "stacked": { "alias": "stacked"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "aspectRatio": { "alias": "aspectRatio"; "required": false; "isSignal": true; }; "minWidth": { "alias": "minWidth"; "required": false; "isSignal": true; }; "axisWidth": { "alias": "axisWidth"; "required": false; "isSignal": true; }; "barSize": { "alias": "barSize"; "required": false; "isSignal": true; }; "showCategoryAxis": { "alias": "showCategoryAxis"; "required": false; "isSignal": true; }; "showValueAxis": { "alias": "showValueAxis"; "required": false; "isSignal": true; }; "showGrid": { "alias": "showGrid"; "required": false; "isSignal": true; }; "valueTicks": { "alias": "valueTicks"; "required": false; "isSignal": true; }; "valueMin": { "alias": "valueMin"; "required": false; "isSignal": true; }; "valueMax": { "alias": "valueMax"; "required": false; "isSignal": true; }; "showValueLabels": { "alias": "showValueLabels"; "required": false; "isSignal": true; }; "showLegend": { "alias": "showLegend"; "required": false; "isSignal": true; }; "showTooltip": { "alias": "showTooltip"; "required": false; "isSignal": true; }; "valueFormat": { "alias": "valueFormat"; "required": false; "isSignal": true; }; "categoryFormat": { "alias": "categoryFormat"; "required": false; "isSignal": true; }; "unit": { "alias": "unit"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "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; }; "animate": { "alias": "animate"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
9300
|
+
}
|
|
9301
|
+
|
|
9302
|
+
/** Un segmento de la dona: parte del total. Valores ≤ 0 se ignoran. */
|
|
9303
|
+
interface IusDonutSegment {
|
|
9304
|
+
/** Identificador único del segmento. */
|
|
9305
|
+
key: string;
|
|
9306
|
+
/** Etiqueta (leyenda + tooltip). */
|
|
9307
|
+
label: string;
|
|
9308
|
+
/** Valor absoluto; el % se calcula sobre la suma. */
|
|
9309
|
+
value: number;
|
|
9310
|
+
/** Tono explícito; si se omite, rota por los tonos categóricos del DS. */
|
|
9311
|
+
tone?: ChartTone;
|
|
9312
|
+
}
|
|
9313
|
+
/** Posición de la leyenda respecto de la dona. */
|
|
9314
|
+
type IusDonutLegendPosition = 'right' | 'bottom';
|
|
9315
|
+
interface DonutSlice {
|
|
9316
|
+
key: string;
|
|
9317
|
+
label: string;
|
|
9318
|
+
i: number;
|
|
9319
|
+
color: string;
|
|
9320
|
+
d: string;
|
|
9321
|
+
mid: number;
|
|
9322
|
+
value: number;
|
|
9323
|
+
pct: number;
|
|
9324
|
+
}
|
|
9325
|
+
interface DonutGeometry {
|
|
9326
|
+
D: number;
|
|
9327
|
+
cx: number;
|
|
9328
|
+
cy: number;
|
|
9329
|
+
rOuter: number;
|
|
9330
|
+
rInner: number;
|
|
9331
|
+
rMid: number;
|
|
9332
|
+
ringW: number;
|
|
9333
|
+
}
|
|
9334
|
+
/**
|
|
9335
|
+
* DonutChart — Ius Design v2 (familia charts).
|
|
9336
|
+
*
|
|
9337
|
+
* **Gráfico de dona** en SVG propio (sin librería de charts) para la
|
|
9338
|
+
* **composición de un todo**: cada segmento es una parte del total y el centro
|
|
9339
|
+
* queda libre para el total (`centerLabel`, default suma formateada;
|
|
9340
|
+
* `centerSublabel` secundario; `false` lo oculta). Solo dona — la variante
|
|
9341
|
+
* `pie` se descartó por diseño.
|
|
9342
|
+
*
|
|
9343
|
+
* Segmentos con **esquinas redondeadas** y hueco parejo (`padAngle`), grosor
|
|
9344
|
+
* por `thickness` y arranque por `startAngle`. Leyenda `right`/`bottom` con
|
|
9345
|
+
* valor + % y **resalte recíproco** leyenda ↔ segmento (atenúa los demás),
|
|
9346
|
+
* `showLabels` rotula el % en segmentos con ≥ 7% de espacio, **tooltip** con
|
|
9347
|
+
* etiqueta/valor/%, **animación** de entrada (fade + leve giro/escala vía WAAPI
|
|
9348
|
+
* con red de seguridad y respeto a `prefers-reduced-motion`), tamaño
|
|
9349
|
+
* **responsive** (diámetro según contenedor) o **fijo** (`size`), y estados de
|
|
9350
|
+
* **carga** (anillo skeleton) y **vacío** (compone `ius-empty-state`).
|
|
9351
|
+
*
|
|
9352
|
+
* Fuente de verdad: `DonutChart.jsx` + `DonutChart.d.ts` + `DonutChart.ng-spec.md`.
|
|
9353
|
+
* Tonos y formato es-CO vienen de `charts-core`; la geometría de arcos es dato.
|
|
9354
|
+
*
|
|
9355
|
+
* Decisiones del port (mismas que LineChart/BarChart): `centerLabel` es
|
|
9356
|
+
* `string | false` y `centerSublabel`/`emptyTitle`/`emptyDescription` son
|
|
9357
|
+
* `string`; el slot `empty` viaja como `emptyTemplate: TemplateRef`. Display
|
|
9358
|
+
* puro: sin outputs (la spec deja `segmentClicked` como opcional).
|
|
9359
|
+
*
|
|
9360
|
+
* No usar para comparar categorías (→ BarChart) ni evolución (→ LineChart).
|
|
9361
|
+
*/
|
|
9362
|
+
declare class DonutChartComponent implements AfterViewInit, OnDestroy {
|
|
9363
|
+
/** Segmentos de la dona (`{ key, label, value, tone? }`). Valores ≤ 0 se ignoran. */
|
|
9364
|
+
readonly data: _angular_core.InputSignal<readonly IusDonutSegment[]>;
|
|
9365
|
+
/** Diámetro fijo en px; omitido → responsive según el contenedor. */
|
|
9366
|
+
readonly size: _angular_core.InputSignal<number | undefined>;
|
|
9367
|
+
/** Grosor del anillo como fracción del radio (0–1). Default 0.4. */
|
|
9368
|
+
readonly thickness: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
9369
|
+
/** Ángulo inicial (0 = derecha, −90 = arriba). Default −90. */
|
|
9370
|
+
readonly startAngle: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
9371
|
+
/** Separación entre segmentos en grados. Default 1.5. */
|
|
9372
|
+
readonly padAngle: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
9373
|
+
/** Leyenda. Default true. */
|
|
9374
|
+
readonly showLegend: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
9375
|
+
/** Posición de la leyenda. Default `right`. */
|
|
9376
|
+
readonly legendPosition: _angular_core.InputSignal<IusDonutLegendPosition>;
|
|
9377
|
+
/** Valor + % en la leyenda. Default true. */
|
|
9378
|
+
readonly legendValues: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
9379
|
+
/** % sobre cada segmento con espacio (≥ 7%). Default false. */
|
|
9380
|
+
readonly showLabels: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
9381
|
+
/** Tooltip en hover (etiqueta, valor, %). Default true. */
|
|
9382
|
+
readonly showTooltip: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
9383
|
+
/** Total central; sin fijar = suma formateada; `false` lo oculta. */
|
|
9384
|
+
readonly centerLabel: _angular_core.InputSignal<string | false | undefined>;
|
|
9385
|
+
/** Texto secundario bajo el central. */
|
|
9386
|
+
readonly centerSublabel: _angular_core.InputSignal<string | undefined>;
|
|
9387
|
+
/** Formatea los valores (centro, leyenda, tooltip). Default `Intl` es-CO. */
|
|
9388
|
+
readonly valueFormat: _angular_core.InputSignal<((value: number) => string) | undefined>;
|
|
9389
|
+
/** Sufijo de unidad. Ignorado si hay `valueFormat`. */
|
|
9390
|
+
readonly unit: _angular_core.InputSignal<string | undefined>;
|
|
9391
|
+
/** Carga: anillo skeleton. */
|
|
9392
|
+
readonly loading: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
9393
|
+
/** Plantilla propia cuando no hay datos (reemplaza el EmptyState por defecto). */
|
|
9394
|
+
readonly emptyTemplate: _angular_core.InputSignal<TemplateRef<unknown> | undefined>;
|
|
9395
|
+
readonly emptyTitle: _angular_core.InputSignal<string>;
|
|
9396
|
+
readonly emptyDescription: _angular_core.InputSignal<string | undefined>;
|
|
9397
|
+
/** Animación de entrada (fade + leve giro/escala). Default true. */
|
|
9398
|
+
readonly animate: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
9399
|
+
/** Etiqueta accesible del gráfico. */
|
|
9400
|
+
readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
|
|
9401
|
+
private readonly el;
|
|
9402
|
+
private resizeObserver?;
|
|
9403
|
+
private animTimers;
|
|
9404
|
+
private animations;
|
|
9405
|
+
/** Ancho medido del contenedor (modo responsive). */
|
|
9406
|
+
private readonly measured;
|
|
9407
|
+
/** Segmento bajo el cursor (tooltip + resalte recíproco con la leyenda). */
|
|
9408
|
+
protected readonly active: _angular_core.WritableSignal<number | null>;
|
|
9409
|
+
/** Segmentos válidos (value > 0). */
|
|
9410
|
+
protected readonly segs: _angular_core.Signal<IusDonutSegment[]>;
|
|
9411
|
+
protected readonly total: _angular_core.Signal<number>;
|
|
9412
|
+
protected readonly hasData: _angular_core.Signal<boolean>;
|
|
9413
|
+
/** Diámetro y radios (fijo con `size`; responsive según contenedor y leyenda). */
|
|
9414
|
+
protected readonly geo: _angular_core.Signal<DonutGeometry>;
|
|
9415
|
+
protected readonly viewBox: _angular_core.Signal<string>;
|
|
9416
|
+
protected pct(v: number): number;
|
|
9417
|
+
/** Segmentos con su arco ya trazado (hueco `padAngle` + esquinas redondeadas). */
|
|
9418
|
+
protected readonly slices: _angular_core.Signal<DonutSlice[]>;
|
|
9419
|
+
/** Rótulos de % sobre los segmentos con ≥ 7% de espacio. */
|
|
9420
|
+
protected readonly sliceLabels: _angular_core.Signal<{
|
|
9421
|
+
key: string;
|
|
9422
|
+
x: number;
|
|
9423
|
+
y: number;
|
|
9424
|
+
text: string;
|
|
9425
|
+
}[]>;
|
|
9426
|
+
/** Leyenda con valor + % por segmento. */
|
|
9427
|
+
protected readonly legendItems: _angular_core.Signal<{
|
|
9428
|
+
key: string;
|
|
9429
|
+
i: number;
|
|
9430
|
+
label: string;
|
|
9431
|
+
color: string;
|
|
9432
|
+
val: string;
|
|
9433
|
+
}[]>;
|
|
9434
|
+
/** Total central: `centerLabel` (string) · default suma formateada · `false` = oculto. */
|
|
9435
|
+
protected readonly centerMain: _angular_core.Signal<string | null>;
|
|
9436
|
+
protected readonly centerOn: _angular_core.Signal<boolean>;
|
|
9437
|
+
/** Tooltip del segmento activo, anclado al punto medio del anillo. */
|
|
9438
|
+
protected readonly tooltip: _angular_core.Signal<{
|
|
9439
|
+
left: number;
|
|
9440
|
+
top: number;
|
|
9441
|
+
label: string;
|
|
9442
|
+
color: string;
|
|
9443
|
+
value: string;
|
|
9444
|
+
pct: string;
|
|
9445
|
+
} | null>;
|
|
9446
|
+
/** Firma del dato que dispara la animación de entrada (igual que `animSig` del golden). */
|
|
9447
|
+
private readonly animSig;
|
|
9448
|
+
constructor();
|
|
9449
|
+
ngAfterViewInit(): void;
|
|
9450
|
+
ngOnDestroy(): void;
|
|
9451
|
+
/** Formato de un valor: `valueFormat` o `Intl` es-CO + `unit`. */
|
|
9452
|
+
protected fmt(n: number): string;
|
|
9453
|
+
protected onSegEnter(i: number): void;
|
|
9454
|
+
protected onSegLeave(i: number): void;
|
|
9455
|
+
/**
|
|
9456
|
+
* Entrada: fade + leve giro/escala del grupo de segmentos (WAAPI). Red de
|
|
9457
|
+
* seguridad: pasada la duración se cancela y la dona queda completa aunque el
|
|
9458
|
+
* timeline esté congelado (capturas/thumbnails). `prefers-reduced-motion` = sin animar.
|
|
9459
|
+
*/
|
|
9460
|
+
private runEntryAnimation;
|
|
9461
|
+
private stopAnimations;
|
|
9462
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DonutChartComponent, never>;
|
|
9463
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<DonutChartComponent, "ius-donut-chart", never, { "data": { "alias": "data"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "thickness": { "alias": "thickness"; "required": false; "isSignal": true; }; "startAngle": { "alias": "startAngle"; "required": false; "isSignal": true; }; "padAngle": { "alias": "padAngle"; "required": false; "isSignal": true; }; "showLegend": { "alias": "showLegend"; "required": false; "isSignal": true; }; "legendPosition": { "alias": "legendPosition"; "required": false; "isSignal": true; }; "legendValues": { "alias": "legendValues"; "required": false; "isSignal": true; }; "showLabels": { "alias": "showLabels"; "required": false; "isSignal": true; }; "showTooltip": { "alias": "showTooltip"; "required": false; "isSignal": true; }; "centerLabel": { "alias": "centerLabel"; "required": false; "isSignal": true; }; "centerSublabel": { "alias": "centerSublabel"; "required": false; "isSignal": true; }; "valueFormat": { "alias": "valueFormat"; "required": false; "isSignal": true; }; "unit": { "alias": "unit"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "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; }; "animate": { "alias": "animate"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
9464
|
+
}
|
|
9465
|
+
|
|
9466
|
+
/**
|
|
9467
|
+
* BorderBeam — Ius Design v2 (familia data-display; réplica fiel de Magic UI).
|
|
9468
|
+
*
|
|
9469
|
+
* **Decoración**: haz de luz que recorre el borde del contenedor para señalar
|
|
9470
|
+
* novedad/actividad. Técnica: un anillo del grosor del borde (máscara
|
|
9471
|
+
* `border-box ∩ padding-box`, hereda el `border-radius`) dentro del cual viaja
|
|
9472
|
+
* un cuadrado con degradado a lo largo de un `offset-path` rectangular — la
|
|
9473
|
+
* máscara confina el cuadrado al anillo, así el grosor visible es constante en
|
|
9474
|
+
* lados y esquinas. El offset-path se redondea por el TAMAÑO del haz (no por el
|
|
9475
|
+
* radio real) para que el giro por esquinas sea fluido.
|
|
9476
|
+
*
|
|
9477
|
+
* Se monta DENTRO de un contenedor con `position` no estática + `border-radius`.
|
|
9478
|
+
* `aria-hidden`, `pointer-events: none`, y se detiene con
|
|
9479
|
+
* `prefers-reduced-motion`. Fuente de verdad: `BorderBeam.jsx` +
|
|
9480
|
+
* `BorderBeam.d.ts` + `BorderBeam.ng-spec.md`.
|
|
9481
|
+
*
|
|
9482
|
+
* **Mesura**: un BorderBeam por vista — no convertir paneles normales en luces
|
|
9483
|
+
* permanentes. Para etiqueta con texto → Tag; aviso con CTA → Coachmark.
|
|
9484
|
+
*/
|
|
9485
|
+
declare class BorderBeamComponent {
|
|
9486
|
+
/** Largo de la estela en px. Rango estable 40–120. Default 90. */
|
|
9487
|
+
readonly size: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
9488
|
+
/** Grosor del trazo en px. Mantener 1–1.5. Default 1.5. */
|
|
9489
|
+
readonly borderWidth: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
9490
|
+
/** Segundos por vuelta. Rango 5–10. Default 9. */
|
|
9491
|
+
readonly duration: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
9492
|
+
/** Retraso inicial en segundos (arranca a mitad de camino con valores > 0). */
|
|
9493
|
+
readonly delay: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
9494
|
+
/** Sentido inverso del recorrido. */
|
|
9495
|
+
readonly reverse: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
9496
|
+
/** Deriva el degradado `--ius-<accent>-400 → -500` (mismo vocabulario que Tag.tone). */
|
|
9497
|
+
readonly accent: _angular_core.InputSignal<IusTagTone | undefined>;
|
|
9498
|
+
/** Color inicial del degradado (sobrescribe `accent`). */
|
|
9499
|
+
readonly colorFrom: _angular_core.InputSignal<string | undefined>;
|
|
9500
|
+
/** Color final del degradado (sobrescribe `accent`). */
|
|
9501
|
+
readonly colorTo: _angular_core.InputSignal<string | undefined>;
|
|
9502
|
+
/** Redondeo del recorrido en esquinas (default: derivado de `size`, como Magic UI). */
|
|
9503
|
+
readonly radius: _angular_core.InputSignal<string | number | undefined>;
|
|
9504
|
+
protected readonly from: _angular_core.Signal<string>;
|
|
9505
|
+
protected readonly to: _angular_core.Signal<string>;
|
|
9506
|
+
/** El offset-path se redondea por el tamaño del haz (giro fluido en esquinas). */
|
|
9507
|
+
protected readonly path: _angular_core.Signal<string>;
|
|
9508
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<BorderBeamComponent, never>;
|
|
9509
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<BorderBeamComponent, "ius-border-beam", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "borderWidth": { "alias": "borderWidth"; "required": false; "isSignal": true; }; "duration": { "alias": "duration"; "required": false; "isSignal": true; }; "delay": { "alias": "delay"; "required": false; "isSignal": true; }; "reverse": { "alias": "reverse"; "required": false; "isSignal": true; }; "accent": { "alias": "accent"; "required": false; "isSignal": true; }; "colorFrom": { "alias": "colorFrom"; "required": false; "isSignal": true; }; "colorTo": { "alias": "colorTo"; "required": false; "isSignal": true; }; "radius": { "alias": "radius"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
9510
|
+
}
|
|
9511
|
+
|
|
9512
|
+
/** Voto binario: pulgar arriba, pulgar abajo o sin voto. */
|
|
9513
|
+
type IusAnswerFeedbackValue = 'up' | 'down' | null;
|
|
9514
|
+
/** Tamaño de los pulgares (ícono sm/md). */
|
|
9515
|
+
type IusAnswerFeedbackSize = 'small' | 'medium';
|
|
9516
|
+
/**
|
|
9517
|
+
* AnswerFeedback — Ius Design v2 (familia inputs).
|
|
9518
|
+
*
|
|
9519
|
+
* «¿Te fue útil?» 👍/👎 sobre una **salida generada** (un resumen o
|
|
9520
|
+
* recomendación de ElenIA, una respuesta de ayuda). Ciclo: pregunta + dos
|
|
9521
|
+
* pulsadores → al votar, el elegido queda activo (color de **marca**
|
|
9522
|
+
* `--ius-primary-100/700`, NO semántico: el sentido lo da el pulgar), aparece
|
|
9523
|
+
* el micro-agradecimiento y el voto no elegido se atenúa. Pulsar el voto activo
|
|
9524
|
+
* lo **retira** (emite `null`).
|
|
9525
|
+
*
|
|
9526
|
+
* Controlado (`value`) o no controlado (estado interno desde `defaultValue`).
|
|
9527
|
+
* Los pulgares COMPONEN `ius-icon-button` (tertiary, con tooltip propio);
|
|
9528
|
+
* este componente solo matiza el estado «votado» por CSS. No pide motivo (por
|
|
9529
|
+
* decisión). Fuente de verdad: `AnswerFeedback.jsx` + `.d.ts` + ng-spec.
|
|
9530
|
+
*
|
|
9531
|
+
* No es `Rate` (estrellas 1–5): esto es un juicio binario útil/no-útil.
|
|
9532
|
+
*/
|
|
9533
|
+
declare class AnswerFeedbackComponent {
|
|
9534
|
+
/** Voto controlado (`undefined` = no controlado con `defaultValue`). */
|
|
9535
|
+
readonly value: _angular_core.InputSignal<IusAnswerFeedbackValue | undefined>;
|
|
9536
|
+
/** Voto inicial del modo no controlado. */
|
|
9537
|
+
readonly defaultValue: _angular_core.InputSignal<IusAnswerFeedbackValue>;
|
|
9538
|
+
/** Texto previo al voto. */
|
|
9539
|
+
readonly question: _angular_core.InputSignal<string>;
|
|
9540
|
+
/** Texto tras votar. */
|
|
9541
|
+
readonly thanksLabel: _angular_core.InputSignal<string>;
|
|
9542
|
+
/** Tamaño de los pulgares. Default `small`. */
|
|
9543
|
+
readonly size: _angular_core.InputSignal<IusAnswerFeedbackSize>;
|
|
9544
|
+
readonly disabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
9545
|
+
/** Emite al votar; `null` al retirar el voto activo (original `onChange`). */
|
|
9546
|
+
readonly valueChange: _angular_core.OutputEmitterRef<IusAnswerFeedbackValue>;
|
|
9547
|
+
/** `undefined` = aún sin interacción → manda `defaultValue`. */
|
|
9548
|
+
private readonly inner;
|
|
9549
|
+
/** Voto vigente: controlado por `value` si viene definido; si no, estado interno. */
|
|
9550
|
+
protected readonly current: _angular_core.Signal<IusAnswerFeedbackValue>;
|
|
9551
|
+
protected vote(next: 'up' | 'down'): void;
|
|
9552
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AnswerFeedbackComponent, never>;
|
|
9553
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AnswerFeedbackComponent, "ius-answer-feedback", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "defaultValue": { "alias": "defaultValue"; "required": false; "isSignal": true; }; "question": { "alias": "question"; "required": false; "isSignal": true; }; "thanksLabel": { "alias": "thanksLabel"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
|
|
9554
|
+
}
|
|
9555
|
+
|
|
9556
|
+
/** Tinte/acento de marca del Insight. */
|
|
9557
|
+
type IusInsightTone = 'primary' | 'info';
|
|
9558
|
+
/** Caja limpia (default) o con wash muy tenue de marca. */
|
|
9559
|
+
type IusInsightVariant = 'plain' | 'tinted';
|
|
9560
|
+
/**
|
|
9561
|
+
* Acciones extra de la barra (a la derecha del copiar/feedback):
|
|
9562
|
+
* `<ius-insight …><button iusInsightActions>…</button></ius-insight>`.
|
|
9563
|
+
*/
|
|
9564
|
+
declare class IusInsightActionsDirective {
|
|
9565
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<IusInsightActionsDirective, never>;
|
|
9566
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<IusInsightActionsDirective, "[iusInsightActions]", never, {}, {}, never, never, true, never>;
|
|
9567
|
+
}
|
|
9568
|
+
/**
|
|
9569
|
+
* Insight — Ius Design v2 (familia feedback).
|
|
9570
|
+
*
|
|
9571
|
+
* Superficie de **contenido proactivo generado por IA** (ElenIA): el
|
|
9572
|
+
* briefing/resumen que se produce sin que se lo pidan. No se distingue por
|
|
9573
|
+
* teñir la caja (eso lo hace `Alert` y competiría), sino por la **cabecera de
|
|
9574
|
+
* procedencia**: chip de marca con `auto_awesome` + «Generado por IA». La caja
|
|
9575
|
+
* es limpia (surface-card + borde tenue) para que el texto y los `Alert`
|
|
9576
|
+
* anidados se lean livianos (sin tinte-sobre-tinte); `variant="tinted"` añade
|
|
9577
|
+
* un wash muy tenue solo si el Insight va suelto y quiere más presencia.
|
|
9578
|
+
*
|
|
9579
|
+
* El contenido entra por `<ng-content>` (texto o rico: Alerts/Tags). Barra
|
|
9580
|
+
* opcional: copiar (`ius-icon-button`, `content_copy`→`check` 1.5s) + calificar
|
|
9581
|
+
* (`ius-answer-feedback`) + acciones propias (`[iusInsightActions]`). `beam`
|
|
9582
|
+
* enciende un `ius-border-beam` («recién generado»). El título compone
|
|
9583
|
+
* `ius-section-title size=small divider=false` (mismo rótulo del sistema).
|
|
9584
|
+
*
|
|
9585
|
+
* Fuente de verdad: `Insight.jsx` + `.d.ts` + `Insight.ng-spec.md`.
|
|
9586
|
+
*
|
|
9587
|
+
* NO es `Alert` (callout semántico ligado al contenido) ni `ChatBubble` (una
|
|
9588
|
+
* intervención de la conversación): esto es el digest proactivo.
|
|
9589
|
+
*/
|
|
9590
|
+
declare class InsightComponent implements AfterViewInit, OnDestroy {
|
|
9591
|
+
/** Título del briefing (compone `ius-section-title`). */
|
|
9592
|
+
readonly title: _angular_core.InputSignal<string | undefined>;
|
|
9593
|
+
/** Procedencia (el sello que lo distingue). `""` la oculta. */
|
|
9594
|
+
readonly overline: _angular_core.InputSignal<string>;
|
|
9595
|
+
/** Ícono de la procedencia. */
|
|
9596
|
+
readonly icon: _angular_core.InputSignal<string>;
|
|
9597
|
+
/** Texto tenue a la derecha de la procedencia (fecha, fuente…). */
|
|
9598
|
+
readonly meta: _angular_core.InputSignal<string | undefined>;
|
|
9599
|
+
/** Tinte/acento de marca. */
|
|
9600
|
+
readonly tone: _angular_core.InputSignal<IusInsightTone>;
|
|
9601
|
+
/** `plain` = tarjeta limpia · `tinted` = wash de marca muy tenue. */
|
|
9602
|
+
readonly variant: _angular_core.InputSignal<IusInsightVariant>;
|
|
9603
|
+
/** Monta un `ius-border-beam` con el acento del tono («recién generado»). */
|
|
9604
|
+
readonly beam: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
9605
|
+
/** Botón copiar en la barra. */
|
|
9606
|
+
readonly copyable: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
9607
|
+
/** Texto que va al portapapeles. */
|
|
9608
|
+
readonly copyText: _angular_core.InputSignal<string | undefined>;
|
|
9609
|
+
/** Muestra `ius-answer-feedback` en la barra. */
|
|
9610
|
+
readonly feedback: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
9611
|
+
/** Voto controlado del feedback. */
|
|
9612
|
+
readonly feedbackValue: _angular_core.InputSignal<IusAnswerFeedbackValue | undefined>;
|
|
9613
|
+
/** Tras copiar (original `onCopy`). */
|
|
9614
|
+
readonly copied: _angular_core.OutputEmitterRef<void>;
|
|
9615
|
+
/** Voto del `AnswerFeedback` interno (original `onFeedback`). */
|
|
9616
|
+
readonly feedbackChanged: _angular_core.OutputEmitterRef<IusAnswerFeedbackValue>;
|
|
9617
|
+
private readonly actionsRef;
|
|
9618
|
+
/**
|
|
9619
|
+
* Span donde se estampa el `<ng-content>` del cuerpo. Se inspecciona UNA vez
|
|
9620
|
+
* (patrón de ius-status-chip/ius-divider: bajo OnPush la proyección no se
|
|
9621
|
+
* re-evalúa) para no dejar un hueco de gap cuando no hay contenido.
|
|
9622
|
+
*/
|
|
9623
|
+
private bodyRef;
|
|
9624
|
+
protected readonly hasBody: _angular_core.WritableSignal<boolean>;
|
|
9625
|
+
/** Estado transitorio del botón copiar (`content_copy` → `check`). */
|
|
9626
|
+
protected readonly copiedNow: _angular_core.WritableSignal<boolean>;
|
|
9627
|
+
private copyTimer;
|
|
9628
|
+
protected readonly hasOverline: _angular_core.Signal<boolean>;
|
|
9629
|
+
protected readonly hasProv: _angular_core.Signal<boolean>;
|
|
9630
|
+
protected get hasActions(): boolean;
|
|
9631
|
+
protected get hasBar(): boolean;
|
|
9632
|
+
ngAfterViewInit(): void;
|
|
9633
|
+
ngOnDestroy(): void;
|
|
9634
|
+
protected doCopy(): void;
|
|
9635
|
+
protected onFeedback(value: IusAnswerFeedbackValue): void;
|
|
9636
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<InsightComponent, never>;
|
|
9637
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<InsightComponent, "ius-insight", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "overline": { "alias": "overline"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "meta": { "alias": "meta"; "required": false; "isSignal": true; }; "tone": { "alias": "tone"; "required": false; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "beam": { "alias": "beam"; "required": false; "isSignal": true; }; "copyable": { "alias": "copyable"; "required": false; "isSignal": true; }; "copyText": { "alias": "copyText"; "required": false; "isSignal": true; }; "feedback": { "alias": "feedback"; "required": false; "isSignal": true; }; "feedbackValue": { "alias": "feedbackValue"; "required": false; "isSignal": true; }; }, { "copied": "copied"; "feedbackChanged": "feedbackChanged"; }, ["actionsRef"], ["*", "[iusInsightActions]"], true, never>;
|
|
9638
|
+
}
|
|
9639
|
+
|
|
9640
|
+
/** Rango de fechas del modo `range` (extremos inclusive; `end` null mientras se elige). */
|
|
9641
|
+
interface IusDateRange {
|
|
9642
|
+
start: Date | null;
|
|
9643
|
+
end: Date | null;
|
|
9644
|
+
}
|
|
9645
|
+
/** Selección simple o por rango. */
|
|
9646
|
+
type IusCalendarMode = 'single' | 'range';
|
|
9647
|
+
/** Valor del calendario: fecha (single), rango (range) o nada. */
|
|
9648
|
+
type IusCalendarValue = Date | IusDateRange | null;
|
|
9649
|
+
/** Nivel de navegación del encabezado. */
|
|
9650
|
+
type CalendarLevel = 'day' | 'month' | 'year';
|
|
9651
|
+
/** Formatea una fecha como "12/11/2025" (util del paquete, verbatim del golden). */
|
|
9652
|
+
declare function formatDate(d: Date | null | undefined): string;
|
|
9653
|
+
interface DayCell {
|
|
9654
|
+
date: Date;
|
|
9655
|
+
label: number;
|
|
9656
|
+
outside: boolean;
|
|
9657
|
+
disabled: boolean;
|
|
9658
|
+
today: boolean;
|
|
9659
|
+
selected: boolean;
|
|
9660
|
+
inRange: boolean;
|
|
9661
|
+
rangeStart: boolean;
|
|
9662
|
+
rangeEnd: boolean;
|
|
9663
|
+
}
|
|
9664
|
+
interface MonthView {
|
|
9665
|
+
key: string;
|
|
9666
|
+
days: DayCell[];
|
|
9667
|
+
}
|
|
9668
|
+
interface HeaderTitle {
|
|
9669
|
+
/** Texto simple (año o década); null = mes + año del `date`. */
|
|
9670
|
+
text: string | null;
|
|
9671
|
+
monthAbbr: string;
|
|
9672
|
+
year: number;
|
|
9673
|
+
date: Date;
|
|
9674
|
+
}
|
|
9675
|
+
interface PickerCell {
|
|
9676
|
+
label: string;
|
|
9677
|
+
outside: boolean;
|
|
9678
|
+
selected: boolean;
|
|
9679
|
+
today: boolean;
|
|
9680
|
+
value: number;
|
|
9681
|
+
}
|
|
9682
|
+
/** Pie propio del calendario (reemplaza el pie "Fecha actual"). */
|
|
9683
|
+
declare class IusCalendarFooterDirective {
|
|
9684
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<IusCalendarFooterDirective, never>;
|
|
9685
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<IusCalendarFooterDirective, "[iusCalendarFooter]", never, {}, {}, never, never, true, never>;
|
|
9686
|
+
}
|
|
9687
|
+
/** Columna lateral (el DatePicker monta aquí el TimePanel). */
|
|
9688
|
+
declare class IusCalendarAsideDirective {
|
|
9689
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<IusCalendarAsideDirective, never>;
|
|
9690
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<IusCalendarAsideDirective, "[iusCalendarAside]", never, {}, {}, never, never, true, never>;
|
|
9691
|
+
}
|
|
9692
|
+
/**
|
|
9693
|
+
* Calendar — Ius Design v2 (familia inputs, CVA).
|
|
9694
|
+
*
|
|
9695
|
+
* Molécula de calendario reusable: la pieza interna del DatePicker, también
|
|
9696
|
+
* embebible sola. Rejilla de días con **navegación en 3 niveles** tocando el
|
|
9697
|
+
* encabezado (día → mes → año/década). Día seleccionado en círculo azul
|
|
9698
|
+
* (`--ius-primary-900`), **hoy** en verde (`--ius-success-100/700`), días de
|
|
9699
|
+
* otro mes atenuados. Semana inicia lunes (`weekStartsOn`).
|
|
9700
|
+
*
|
|
9701
|
+
* `mode="range"` muestra **dos meses** y pinta la banda azul entre extremos
|
|
9702
|
+
* (con preview en hover mientras se elige el fin). Límites con
|
|
9703
|
+
* `minDate`/`maxDate`/`isDateDisabled`. Pie «Fecha actual» (`showToday`),
|
|
9704
|
+
* reemplazable por `[iusCalendarFooter]`; columna lateral `[iusCalendarAside]`
|
|
9705
|
+
* (el DatePicker monta ahí el TimePanel). Para hora → TimePanel.
|
|
9706
|
+
*
|
|
9707
|
+
* Fuente de verdad: `Calendar.jsx` + `Calendar.d.ts` + `Calendar.ng-spec.md`.
|
|
9708
|
+
* Export util: `formatDate(d)` → "12/11/2025".
|
|
9709
|
+
*/
|
|
9710
|
+
declare class CalendarComponent implements ControlValueAccessor {
|
|
9711
|
+
/** `single` (default) o `range` (dos meses + banda azul). */
|
|
9712
|
+
mode: IusCalendarMode;
|
|
9713
|
+
/** Estado inicial del modo no controlado. */
|
|
9714
|
+
defaultValue?: IusCalendarValue;
|
|
9715
|
+
private readonly valueState;
|
|
9716
|
+
/** Valor controlado (CVA / `[(value)]`). */
|
|
9717
|
+
set value(value: IusCalendarValue | undefined);
|
|
9718
|
+
get value(): IusCalendarValue;
|
|
9719
|
+
private _viewDate?;
|
|
9720
|
+
/** Mes mostrado (controlado opcional). */
|
|
9721
|
+
set viewDate(value: Date | undefined);
|
|
9722
|
+
get viewDate(): Date | undefined;
|
|
9723
|
+
minDate?: Date;
|
|
9724
|
+
maxDate?: Date;
|
|
9725
|
+
/** Deshabilita fechas puntuales. */
|
|
9726
|
+
isDateDisabled?: (date: Date) => boolean;
|
|
9727
|
+
/** Pie "Fecha actual". Default true. */
|
|
9728
|
+
showToday: boolean;
|
|
9729
|
+
todayLabel?: string;
|
|
9730
|
+
/** Primer día de la semana: 1 = lunes (default) · 0 = domingo. */
|
|
9731
|
+
weekStartsOn: 0 | 1;
|
|
9732
|
+
/** Original `onChange`. */
|
|
9733
|
+
readonly valueChange: EventEmitter<IusCalendarValue>;
|
|
9734
|
+
/** Mes mostrado (original `onViewDateChange`). */
|
|
9735
|
+
readonly viewDateChange: EventEmitter<Date>;
|
|
9736
|
+
/** Click del pie "hoy" (original `onToday`); si no se enlaza, navega + selecciona hoy. */
|
|
9737
|
+
readonly todayClick: EventEmitter<void>;
|
|
9738
|
+
private readonly footerRef;
|
|
9739
|
+
private readonly asideRef;
|
|
9740
|
+
/** Nivel de navegación del encabezado. */
|
|
9741
|
+
protected readonly level: _angular_core.WritableSignal<CalendarLevel>;
|
|
9742
|
+
/** Día bajo el cursor (preview del extremo del rango). */
|
|
9743
|
+
private readonly hoverDate;
|
|
9744
|
+
private readonly internalView;
|
|
9745
|
+
private readonly cvaDisabled;
|
|
9746
|
+
private onChangeFn;
|
|
9747
|
+
private onTouchedFn;
|
|
9748
|
+
writeValue(value: IusCalendarValue): void;
|
|
9749
|
+
registerOnChange(fn: (value: IusCalendarValue) => void): void;
|
|
9750
|
+
registerOnTouched(fn: () => void): void;
|
|
9751
|
+
setDisabledState(isDisabled: boolean): void;
|
|
9752
|
+
protected get isRange(): boolean;
|
|
9753
|
+
private get today();
|
|
9754
|
+
protected get hasFooterSlot(): boolean;
|
|
9755
|
+
protected get hasAside(): boolean;
|
|
9756
|
+
/** Valor vigente: controlado/CVA → interno → `defaultValue` → vacío. */
|
|
9757
|
+
protected get current(): IusCalendarValue;
|
|
9758
|
+
private get range();
|
|
9759
|
+
/** Mes mostrado: controlado → interno → derivado del valor → hoy. */
|
|
9760
|
+
protected get view(): Date;
|
|
9761
|
+
private setViewDate;
|
|
9762
|
+
private commit;
|
|
9763
|
+
protected get weekdays(): string[];
|
|
9764
|
+
private dayDisabled;
|
|
9765
|
+
/** Extremo efectivo del rango durante la elección (preview con hover). */
|
|
9766
|
+
private get previewEnd();
|
|
9767
|
+
private inRange;
|
|
9768
|
+
private isRangeStart;
|
|
9769
|
+
private isRangeEnd;
|
|
9770
|
+
private isSelected;
|
|
9771
|
+
/** Bloques de mes visibles (range = dos meses consecutivos). */
|
|
9772
|
+
protected get monthsView(): MonthView[];
|
|
9773
|
+
/** Títulos del encabezado (day: uno por mes; month/year: uno solo). */
|
|
9774
|
+
protected get headerTitles(): HeaderTitle[];
|
|
9775
|
+
/** Celdas del selector de mes. */
|
|
9776
|
+
protected get monthCells(): PickerCell[];
|
|
9777
|
+
/** Celdas del selector de año (década −1 … +10, extremos atenuados). */
|
|
9778
|
+
protected get yearCells(): PickerCell[];
|
|
9779
|
+
protected onDayClick(cell: DayCell): void;
|
|
9780
|
+
protected onDayEnter(cell: DayCell): void;
|
|
9781
|
+
protected onMonthsLeave(): void;
|
|
9782
|
+
protected onMonthCell(cell: PickerCell): void;
|
|
9783
|
+
protected onYearCell(cell: PickerCell): void;
|
|
9784
|
+
protected step(dir: -1 | 1): void;
|
|
9785
|
+
protected onTitleClick(title: HeaderTitle): void;
|
|
9786
|
+
protected onTodayBtn(): void;
|
|
9787
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<CalendarComponent, never>;
|
|
9788
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<CalendarComponent, "ius-calendar", never, { "mode": { "alias": "mode"; "required": false; }; "defaultValue": { "alias": "defaultValue"; "required": false; }; "value": { "alias": "value"; "required": false; }; "viewDate": { "alias": "viewDate"; "required": false; }; "minDate": { "alias": "minDate"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; "isDateDisabled": { "alias": "isDateDisabled"; "required": false; }; "showToday": { "alias": "showToday"; "required": false; }; "todayLabel": { "alias": "todayLabel"; "required": false; }; "weekStartsOn": { "alias": "weekStartsOn"; "required": false; }; }, { "valueChange": "valueChange"; "viewDateChange": "viewDateChange"; "todayClick": "todayClick"; }, ["footerRef", "asideRef"], ["[iusCalendarAside]", "[iusCalendarFooter]"], true, never>;
|
|
9789
|
+
static ngAcceptInputType_showToday: unknown;
|
|
9790
|
+
}
|
|
9791
|
+
|
|
9792
|
+
/** Hora en reloj de 12: `{ hours: 1–12, minutes: 0–59, ampm }`. */
|
|
9793
|
+
interface IusTimeValue {
|
|
9794
|
+
hours: number;
|
|
9795
|
+
minutes: number;
|
|
9796
|
+
ampm: 'AM' | 'PM';
|
|
9797
|
+
}
|
|
9798
|
+
/** Formatea un `IusTimeValue` como "01:05 PM" (util del paquete, verbatim del golden). */
|
|
9799
|
+
declare function formatTime(v: IusTimeValue | null | undefined): string;
|
|
9800
|
+
/** Deriva un `IusTimeValue` 12h de un `Date` (util del paquete, verbatim del golden). */
|
|
9801
|
+
declare function timeFromDate(d: Date): IusTimeValue;
|
|
9802
|
+
/**
|
|
9803
|
+
* TimePanel — Ius Design v2 (familia inputs, CVA).
|
|
9804
|
+
*
|
|
9805
|
+
* Molécula de selección de hora: **3 columnas con scroll** (horas 01–12 ·
|
|
9806
|
+
* minutos por `minuteStep` · AM/PM). Celda elegida en azul
|
|
9807
|
+
* (`--ius-primary-900`); la hora/minuto «ahora» en verde (`now`). Encabezado
|
|
9808
|
+
* con la hora formateada ("01:00 PM") o **editable** (`hh | mm` sobre
|
|
9809
|
+
* `ius-multi-text-field` + toggle AM/PM, sincronizados — permite minuto exacto
|
|
9810
|
+
* fuera del paso). `fillHeight` la vuelve columna que llena el alto disponible
|
|
9811
|
+
* (la usa el DatePicker en modo `datetime`, donde el calendario fija el alto).
|
|
9812
|
+
*
|
|
9813
|
+
* Pieza interna del DatePicker modo `datetime`; **no se usa suelta** en
|
|
9814
|
+
* formularios. Fuente de verdad: `TimePanel.jsx` + `.d.ts` + ng-spec.
|
|
9815
|
+
* Export utils: `formatTime(v)` → "01:05 PM" y `timeFromDate(d)`.
|
|
9816
|
+
*/
|
|
9817
|
+
declare class TimePanelComponent implements ControlValueAccessor, AfterViewInit {
|
|
9818
|
+
/** Estado inicial del modo no controlado. Default `12:00 AM`. */
|
|
9819
|
+
defaultValue?: IusTimeValue;
|
|
9820
|
+
private readonly valueState;
|
|
9821
|
+
/** Hora controlada (CVA / `[(value)]`). */
|
|
9822
|
+
set value(value: IusTimeValue | undefined);
|
|
9823
|
+
get value(): IusTimeValue;
|
|
9824
|
+
/** Paso de minutos (00, 05, … 55). Default 5. */
|
|
9825
|
+
minuteStep: number;
|
|
9826
|
+
/** Marca «ahora» en verde: `true` = hora actual, o un `Date` de referencia. */
|
|
9827
|
+
now: boolean | Date;
|
|
9828
|
+
/** Encabezado con la hora formateada. Default true. */
|
|
9829
|
+
showHeader: boolean;
|
|
9830
|
+
/** Encabezado editable (`hh:mm` + AM/PM escribibles, sincronizados). */
|
|
9831
|
+
editable: boolean;
|
|
9832
|
+
/** Llena el alto disponible (uso interno del DatePicker `datetime`). */
|
|
9833
|
+
fillHeight: boolean;
|
|
9834
|
+
/** Filas por columna antes de scroll. Default 6. */
|
|
9835
|
+
maxVisible: number;
|
|
9836
|
+
/** Original `onChange`. */
|
|
9837
|
+
readonly valueChange: EventEmitter<IusTimeValue>;
|
|
9838
|
+
private colH?;
|
|
9839
|
+
private colM?;
|
|
9840
|
+
private readonly cvaDisabled;
|
|
9841
|
+
private onChangeFn;
|
|
9842
|
+
private onTouchedFn;
|
|
9843
|
+
writeValue(value: IusTimeValue | null): void;
|
|
9844
|
+
registerOnChange(fn: (value: IusTimeValue) => void): void;
|
|
9845
|
+
registerOnTouched(fn: () => void): void;
|
|
9846
|
+
setDisabledState(isDisabled: boolean): void;
|
|
9847
|
+
ngAfterViewInit(): void;
|
|
9848
|
+
protected get current(): IusTimeValue;
|
|
9849
|
+
protected get nowVal(): IusTimeValue | null;
|
|
9850
|
+
protected get hours(): number[];
|
|
9851
|
+
protected get minutes(): number[];
|
|
9852
|
+
protected readonly periods: Array<'AM' | 'PM'>;
|
|
9853
|
+
protected get colMaxH(): string | null;
|
|
9854
|
+
protected get headerText(): string;
|
|
9855
|
+
/** Segmentos `hh | mm` del encabezado editable (sobre ius-multi-text-field). */
|
|
9856
|
+
protected get editSlots(): IusMultiTextFieldSlot[];
|
|
9857
|
+
protected pad(n: number): string;
|
|
9858
|
+
protected commit(patch: Partial<IusTimeValue>): void;
|
|
9859
|
+
private onHourInput;
|
|
9860
|
+
private onMinInput;
|
|
9861
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TimePanelComponent, never>;
|
|
9862
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TimePanelComponent, "ius-time-panel", never, { "defaultValue": { "alias": "defaultValue"; "required": false; }; "value": { "alias": "value"; "required": false; }; "minuteStep": { "alias": "minuteStep"; "required": false; }; "now": { "alias": "now"; "required": false; }; "showHeader": { "alias": "showHeader"; "required": false; }; "editable": { "alias": "editable"; "required": false; }; "fillHeight": { "alias": "fillHeight"; "required": false; }; "maxVisible": { "alias": "maxVisible"; "required": false; }; }, { "valueChange": "valueChange"; }, never, never, true, never>;
|
|
9863
|
+
static ngAcceptInputType_minuteStep: unknown;
|
|
9864
|
+
static ngAcceptInputType_showHeader: unknown;
|
|
9865
|
+
static ngAcceptInputType_editable: unknown;
|
|
9866
|
+
static ngAcceptInputType_fillHeight: unknown;
|
|
9867
|
+
static ngAcceptInputType_maxVisible: unknown;
|
|
9868
|
+
}
|
|
9869
|
+
|
|
9870
|
+
/** Modo del campo: fecha única, rango o fecha+hora. */
|
|
9871
|
+
type IusDatePickerMode = 'date' | 'range' | 'datetime';
|
|
9872
|
+
/** Valor del modo `datetime`. */
|
|
9873
|
+
interface IusDateTimeValue {
|
|
9874
|
+
date: Date | null;
|
|
9875
|
+
time: IusTimeValue;
|
|
9876
|
+
}
|
|
9877
|
+
/** Valor según el modo (CVA). */
|
|
9878
|
+
type IusDatePickerValue = Date | null | IusDateRange | IusDateTimeValue;
|
|
9879
|
+
/** Estado forzado — solo demos. */
|
|
9880
|
+
type IusDatePickerState = 'hover' | 'focused' | 'open' | 'error' | 'disabled';
|
|
9881
|
+
/** Token del campo enmascarado (mismo esquema de segmentos que MultiTextField). */
|
|
9882
|
+
interface FieldToken {
|
|
9883
|
+
kind: 'slot' | 'divider' | 'gap' | 'arrow' | 'ampm';
|
|
9884
|
+
id?: string;
|
|
9885
|
+
max?: number;
|
|
9886
|
+
ph?: string;
|
|
9887
|
+
}
|
|
9888
|
+
/**
|
|
9889
|
+
* DatePicker — Ius Design v2 (familia inputs, CVA).
|
|
9890
|
+
*
|
|
9891
|
+
* Campo de fecha que reúne el **shell del TextField** (label + required +
|
|
9892
|
+
* iconHelp + sufijo calendario + estados + help/error + `size`) con una
|
|
9893
|
+
* **máscara escribible** `DD | MM | AAAA` (misma lógica de segmentos que
|
|
9894
|
+
* MultiTextField: solo dígitos, auto-avance al llenar, Backspace en vacío
|
|
9895
|
+
* retrocede) y abre un panel que compone **Calendar** (+ **TimePanel** en
|
|
9896
|
+
* `datetime`).
|
|
9897
|
+
*
|
|
9898
|
+
* Tres modos: `date` (un mes) · `range` (dos meses + banda, `DD/MM/AAAA →
|
|
9899
|
+
* DD/MM/AAAA`) · `datetime` (mes + panel de hora `hh|mm` + AM/PM). Semana
|
|
9900
|
+
* inicia lunes; hoy en verde; el pie «Fecha actual» / «Fecha y hora actual»
|
|
9901
|
+
* selecciona y cierra (en `range` no hay pie). Escribir en la máscara mueve el
|
|
9902
|
+
* mes del panel; elegir en el panel resincroniza la máscara.
|
|
9903
|
+
*
|
|
9904
|
+
* El panel se ancla con `ius-popover` (manual + dismissable, piel
|
|
9905
|
+
* `ius-datepicker-pop` que suelta el max-width). Fuente de verdad:
|
|
9906
|
+
* `DatePicker.jsx` + `.d.ts` + ng-spec. Pendiente documentado del prompt:
|
|
9907
|
+
* versión móvil compacta del modo `range`.
|
|
9908
|
+
*
|
|
9909
|
+
* Para calendario embebido sin campo → Calendar.
|
|
9910
|
+
*/
|
|
9911
|
+
declare class DatePickerComponent implements ControlValueAccessor {
|
|
9912
|
+
private static nextId;
|
|
9913
|
+
/** Modo del campo. */
|
|
9914
|
+
mode: IusDatePickerMode;
|
|
9915
|
+
/** Shell: etiqueta del campo. */
|
|
9916
|
+
label?: string;
|
|
9917
|
+
required: boolean;
|
|
9918
|
+
/** Placeholders del contrato (la máscara actual usa `DD/MM/AAAA` fijos, como el golden). */
|
|
9919
|
+
placeholder: string;
|
|
9920
|
+
startPlaceholder: string;
|
|
9921
|
+
endPlaceholder: string;
|
|
9922
|
+
/** Estado inicial del modo no controlado. */
|
|
9923
|
+
defaultValue?: IusDatePickerValue;
|
|
9924
|
+
private readonly valueState;
|
|
9925
|
+
/** Valor controlado según el modo (CVA / `[(value)]`). */
|
|
9926
|
+
set value(value: IusDatePickerValue | undefined);
|
|
9927
|
+
get value(): IusDatePickerValue;
|
|
9928
|
+
minDate?: Date;
|
|
9929
|
+
maxDate?: Date;
|
|
9930
|
+
isDateDisabled?: (date: Date) => boolean;
|
|
9931
|
+
/** Paso de minutos del TimePanel (`datetime`). */
|
|
9932
|
+
minuteStep: number;
|
|
9933
|
+
helpText?: string;
|
|
9934
|
+
errorText?: string;
|
|
9935
|
+
showHelpText: boolean;
|
|
9936
|
+
showIconHelp: boolean;
|
|
9937
|
+
iconHelpTitle?: string;
|
|
9938
|
+
iconHelpContent?: string;
|
|
9939
|
+
error: boolean;
|
|
9940
|
+
disabled: boolean;
|
|
9941
|
+
size: 'small' | 'medium' | 'large';
|
|
9942
|
+
defaultOpen: boolean;
|
|
9943
|
+
private _open?;
|
|
9944
|
+
/** Apertura controlada del panel. */
|
|
9945
|
+
set open(value: boolean | undefined);
|
|
9946
|
+
get open(): boolean | undefined;
|
|
9947
|
+
/** Estado forzado — solo demos. */
|
|
9948
|
+
state?: IusDatePickerState;
|
|
9949
|
+
name?: string;
|
|
9950
|
+
/** Original `onChange` (payload según el modo). */
|
|
9951
|
+
readonly valueChange: EventEmitter<IusDatePickerValue>;
|
|
9952
|
+
/** Original `onOpenChange`. */
|
|
9953
|
+
readonly openChange: EventEmitter<boolean>;
|
|
9954
|
+
private slotEls;
|
|
9955
|
+
protected readonly baseId: string;
|
|
9956
|
+
protected readonly fieldFocused: _angular_core.WritableSignal<boolean>;
|
|
9957
|
+
/** Máscara en edición; `null` = derivada del valor vigente (resincronizada). */
|
|
9958
|
+
private readonly editState;
|
|
9959
|
+
private readonly innerOpen;
|
|
9960
|
+
private readonly viewState;
|
|
9961
|
+
private readonly cvaDisabled;
|
|
9962
|
+
private onChangeFn;
|
|
9963
|
+
private onTouchedFn;
|
|
9964
|
+
writeValue(value: IusDatePickerValue): void;
|
|
9965
|
+
registerOnChange(fn: (value: IusDatePickerValue) => void): void;
|
|
9966
|
+
registerOnTouched(fn: () => void): void;
|
|
9967
|
+
setDisabledState(isDisabled: boolean): void;
|
|
9968
|
+
private get emptyValue();
|
|
9969
|
+
protected get current(): IusDatePickerValue;
|
|
9970
|
+
protected get isDisabled(): boolean;
|
|
9971
|
+
protected get isError(): boolean;
|
|
9972
|
+
protected get isOpen(): boolean;
|
|
9973
|
+
protected setOpen(v: boolean): void;
|
|
9974
|
+
protected onPopoverOpenChange(open: boolean): void;
|
|
9975
|
+
protected onEscape(): void;
|
|
9976
|
+
private commit;
|
|
9977
|
+
protected get view(): Date;
|
|
9978
|
+
protected onViewChange(d: Date): void;
|
|
9979
|
+
private setView;
|
|
9980
|
+
protected get calMode(): 'single' | 'range';
|
|
9981
|
+
protected get calValue(): IusCalendarValue;
|
|
9982
|
+
protected get currentTime(): IusTimeValue;
|
|
9983
|
+
protected get ampmVal(): 'AM' | 'PM';
|
|
9984
|
+
protected onCalChange(v: IusCalendarValue): void;
|
|
9985
|
+
protected onTimeChange(t: IusTimeValue): void;
|
|
9986
|
+
protected get todayFootLabel(): string;
|
|
9987
|
+
protected onTodayFoot(): void;
|
|
9988
|
+
protected get tokens(): FieldToken[];
|
|
9989
|
+
private get order();
|
|
9990
|
+
private buildEdit;
|
|
9991
|
+
protected slotValue(id: string): string;
|
|
9992
|
+
protected slotWidth(t: FieldToken): string;
|
|
9993
|
+
/** `undefined` = campo vacío intencional · `null` = incompleto/ inválido · `Date` = válida. */
|
|
9994
|
+
private mkDate;
|
|
9995
|
+
private tryCommit;
|
|
9996
|
+
protected onSlotInput(token: FieldToken, event: Event): void;
|
|
9997
|
+
protected onSlotKeydown(token: FieldToken, event: KeyboardEvent): void;
|
|
9998
|
+
protected onSlotFocus(): void;
|
|
9999
|
+
protected onSlotBlur(): void;
|
|
10000
|
+
protected toggleAmpm(): void;
|
|
10001
|
+
protected toggleOpen(): void;
|
|
10002
|
+
protected get hint(): string | undefined;
|
|
10003
|
+
protected get showHint(): boolean;
|
|
10004
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DatePickerComponent, never>;
|
|
10005
|
+
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>;
|
|
10006
|
+
static ngAcceptInputType_required: unknown;
|
|
10007
|
+
static ngAcceptInputType_minuteStep: unknown;
|
|
10008
|
+
static ngAcceptInputType_showHelpText: unknown;
|
|
10009
|
+
static ngAcceptInputType_showIconHelp: unknown;
|
|
10010
|
+
static ngAcceptInputType_error: unknown;
|
|
10011
|
+
static ngAcceptInputType_disabled: unknown;
|
|
10012
|
+
static ngAcceptInputType_defaultOpen: unknown;
|
|
10013
|
+
}
|
|
10014
|
+
|
|
10015
|
+
/**
|
|
10016
|
+
* Fuente de sugerencias: arreglo (filtra por substring), función sync o
|
|
10017
|
+
* función async (el componente maneja el spinner y descarta respuestas
|
|
10018
|
+
* obsoletas).
|
|
10019
|
+
*/
|
|
10020
|
+
type IusAutocompleteSource<T> = T[] | ((query: string) => T[] | Promise<T[]>);
|
|
10021
|
+
/** Escala del campo (pass-through al TextField). */
|
|
10022
|
+
type IusAutocompleteSize = 'small' | 'medium' | 'large';
|
|
10023
|
+
/** Colocación del popover relativa al input. */
|
|
10024
|
+
type IusAutocompletePlacement = 'bottom-start' | 'bottom-end' | 'bottom' | 'top-start' | 'top-end' | 'top';
|
|
10025
|
+
/** Contexto del `TemplateRef` de `renderItem` (equivalente del `ctx` del golden). */
|
|
10026
|
+
interface IusAutocompleteItemContext<T> {
|
|
10027
|
+
/** El ítem (`let-item`). */
|
|
10028
|
+
$implicit: T;
|
|
10029
|
+
/** `true` si es el ítem resaltado por teclado/hover. */
|
|
10030
|
+
highlighted: boolean;
|
|
10031
|
+
/** Texto actual del input, para resaltar el fragmento que coincide. */
|
|
10032
|
+
query: string;
|
|
10033
|
+
index: number;
|
|
10034
|
+
}
|
|
10035
|
+
/** Fila lista para pintar: label ya partido por la coincidencia con la query. */
|
|
10036
|
+
interface ItemVM<T> {
|
|
10037
|
+
item: T;
|
|
10038
|
+
key: string | number;
|
|
10039
|
+
label: string;
|
|
10040
|
+
index: number;
|
|
10041
|
+
/** Partes del label: antes · coincidencia · después. `match` vacío = sin coincidencia. */
|
|
10042
|
+
pre: string;
|
|
10043
|
+
match: string;
|
|
10044
|
+
post: string;
|
|
10045
|
+
ctx: IusAutocompleteItemContext<T>;
|
|
10046
|
+
}
|
|
10047
|
+
/**
|
|
10048
|
+
* Autocomplete — Ius Design v2.
|
|
10049
|
+
*
|
|
10050
|
+
* Campo de texto con **lista flotante de sugerencias**: el usuario escribe, el
|
|
10051
|
+
* componente consulta la fuente (arreglo, función sync o async) y abre un
|
|
10052
|
+
* popover anclado al input. Selección con clic, Enter o flechas + Enter.
|
|
10053
|
+
*
|
|
10054
|
+
* **Compone** `ius-text-field` (trigger, con toda su gramática pasada de largo)
|
|
10055
|
+
* y `ius-popover` (panel portaleado, piel `ius-autocomplete-pop`). Para texto
|
|
10056
|
+
* enriquecido con menciones inline (`@persona`) va `MentionsField`, no esto.
|
|
10057
|
+
*
|
|
10058
|
+
* Decisiones de port (divergencias documentadas contra el material remoto):
|
|
10059
|
+
*
|
|
10060
|
+
* 1. **El debounce aplica a TODAS las fuentes**, no solo a la async. La prosa
|
|
10061
|
+
* de la ng-spec dice «debounce de la fuente async»; el golden —que la propia
|
|
10062
|
+
* ng-spec declara fuente de verdad— programa un `setTimeout(debounceMs)`
|
|
10063
|
+
* para arreglo, función sync y async por igual. Un consumidor con catálogo
|
|
10064
|
+
* en memoria que quiera filtrado instantáneo pone `debounceMs="0"`.
|
|
10065
|
+
*
|
|
10066
|
+
* 2. **`suffixIcon` e `id` no existen** en el pass-through. La ng-spec los lista
|
|
10067
|
+
* como props de TextField, pero el TextField local no los expone (su `id` lo
|
|
10068
|
+
* genera él para el `for` del label; el slot `.ius-tf__sufix` está en su CSS
|
|
10069
|
+
* pero sin input que lo alimente). Se omiten en vez de fingirlos; ni la card
|
|
10070
|
+
* ni el playground del DS los ejercitan.
|
|
10071
|
+
*
|
|
10072
|
+
* 3. **`helperText` se llama `helpText`**, como en TextField, Select,
|
|
10073
|
+
* NumberField, TextArea y RepeatableField. Es un pass-through: debe llamarse
|
|
10074
|
+
* como el input al que pasa.
|
|
10075
|
+
*
|
|
10076
|
+
* 4. **El panel iguala el ancho del campo** (`min-width: 240px` del golden como
|
|
10077
|
+
* piso). El golden deja que el popover se autodimensione; aquí se sigue la
|
|
10078
|
+
* convención local de Select y PersonPicker, que miden el trigger.
|
|
10079
|
+
*
|
|
10080
|
+
* La carrera de la fuente async se resuelve con `switchMap`: la respuesta de
|
|
10081
|
+
* una query abandonada se descarta sola al desuscribirse (la ng-spec §4 pide
|
|
10082
|
+
* exactamente eso, «switchMap o guard por query token»).
|
|
10083
|
+
*/
|
|
10084
|
+
declare class AutocompleteComponent<T = any> implements ControlValueAccessor, OnInit, OnDestroy {
|
|
10085
|
+
private readonly sourceState;
|
|
10086
|
+
/** Arreglo (filtra substring), función sync o función async. */
|
|
10087
|
+
set source(value: IusAutocompleteSource<T>);
|
|
10088
|
+
get source(): IusAutocompleteSource<T>;
|
|
10089
|
+
private readonly valorControlado;
|
|
10090
|
+
/** Ítem seleccionado (controlado). Sin bindear = no controlado / CVA. */
|
|
10091
|
+
set value(v: T | null | undefined);
|
|
10092
|
+
get value(): T | null | undefined;
|
|
10093
|
+
private readonly valorInterno;
|
|
10094
|
+
private valorSembrado;
|
|
10095
|
+
/** Ítem inicial (no controlado). */
|
|
10096
|
+
set defaultValue(v: T | null | undefined);
|
|
10097
|
+
private readonly textoControlado;
|
|
10098
|
+
/** Texto del input (controlado). Útil para que el padre orqueste la query. */
|
|
10099
|
+
set inputValue(v: string | undefined);
|
|
10100
|
+
get inputValue(): string | undefined;
|
|
10101
|
+
private readonly textoInterno;
|
|
10102
|
+
private textoSembrado;
|
|
10103
|
+
private textoInicial?;
|
|
10104
|
+
/** Texto inicial (no controlado). */
|
|
10105
|
+
set defaultInputValue(v: string | undefined);
|
|
10106
|
+
private readonly getItemLabelState;
|
|
10107
|
+
/** Label legible. Default: `item.label`, o el propio string. */
|
|
10108
|
+
set getItemLabel(fn: ((item: T) => string) | undefined);
|
|
10109
|
+
get getItemLabel(): ((item: T) => string) | undefined;
|
|
10110
|
+
private readonly getItemKeyState;
|
|
10111
|
+
/** Key estable del `@for`. Default: `item.id`, o el label. */
|
|
10112
|
+
set getItemKey(fn: ((item: T) => string | number) | undefined);
|
|
10113
|
+
get getItemKey(): ((item: T) => string | number) | undefined;
|
|
10114
|
+
/** Render a medida de cada fila. Contexto: `{ $implicit, highlighted, query, index }`. */
|
|
10115
|
+
renderItem?: TemplateRef<IusAutocompleteItemContext<T>>;
|
|
10116
|
+
private readonly debounceMsState;
|
|
10117
|
+
/** Debounce antes de consultar la fuente, en ms. */
|
|
10118
|
+
set debounceMs(v: number);
|
|
10119
|
+
get debounceMs(): number;
|
|
10120
|
+
private readonly minCharsState;
|
|
10121
|
+
/** Mínimo de caracteres para consultar y abrir. */
|
|
10122
|
+
set minChars(v: number);
|
|
10123
|
+
get minChars(): number;
|
|
10124
|
+
private readonly loadingState;
|
|
10125
|
+
/** Carga forzada por el consumidor; se combina con la interna de la async. */
|
|
10126
|
+
set loading(v: boolean);
|
|
10127
|
+
get loading(): boolean;
|
|
10128
|
+
private readonly noResultsTextState;
|
|
10129
|
+
/** Mensaje cuando la búsqueda no devuelve resultados. */
|
|
10130
|
+
set noResultsText(v: string);
|
|
10131
|
+
get noResultsText(): string;
|
|
10132
|
+
private readonly emptyTextState;
|
|
10133
|
+
/** Mensaje mientras no se cumple `minChars` (por defecto se redacta solo). */
|
|
10134
|
+
set emptyText(v: string | undefined);
|
|
10135
|
+
get emptyText(): string | undefined;
|
|
10136
|
+
/** Mensaje de carga. Lo lee el template directo, sin `computed` de por medio. */
|
|
10137
|
+
loadingText: string;
|
|
10138
|
+
private readonly clearableState;
|
|
10139
|
+
/** Botón × para limpiar la selección. */
|
|
10140
|
+
set clearable(v: boolean);
|
|
10141
|
+
get clearable(): boolean;
|
|
10142
|
+
/** Abre el popover al recibir foco, sin necesidad de escribir. */
|
|
10143
|
+
openOnFocus: boolean;
|
|
10144
|
+
/** Colocación del popover. */
|
|
10145
|
+
placement: IusAutocompletePlacement;
|
|
10146
|
+
/** Label sobre el input. */
|
|
10147
|
+
label?: string;
|
|
10148
|
+
placeholder?: string;
|
|
10149
|
+
size: IusAutocompleteSize;
|
|
10150
|
+
required: boolean;
|
|
10151
|
+
errorText?: string;
|
|
10152
|
+
/** Línea de ayuda bajo el campo (el `helperText` de la ng-spec). */
|
|
10153
|
+
helpText?: string;
|
|
10154
|
+
/** Ícono contextual al dato. **No usar `search`**: esa lupa es de SearchBar. */
|
|
10155
|
+
prefixIcon?: string;
|
|
10156
|
+
name?: string;
|
|
10157
|
+
private readonly errorState;
|
|
10158
|
+
set error(v: boolean);
|
|
10159
|
+
get error(): boolean;
|
|
10160
|
+
private readonly disabledState;
|
|
10161
|
+
set disabled(v: boolean);
|
|
10162
|
+
get disabled(): boolean;
|
|
10163
|
+
/** Selección (o `null` al limpiar). Original `onChange`. */
|
|
10164
|
+
readonly valueChange: EventEmitter<T | null>;
|
|
10165
|
+
/** Texto tecleado — el enganche para una API async controlada. */
|
|
10166
|
+
readonly inputChange: EventEmitter<string>;
|
|
10167
|
+
/** `read: ElementRef` — sin eso `viewChild` sobre un componente devuelve la
|
|
10168
|
+
* instancia, no el elemento, y no se puede medir. */
|
|
10169
|
+
private readonly campo;
|
|
10170
|
+
/** Referencia estable: un objeto literal en el template cambiaría cada CD. */
|
|
10171
|
+
protected readonly ngModelSuelto: {
|
|
10172
|
+
standalone: boolean;
|
|
10173
|
+
};
|
|
10174
|
+
private readonly abierto;
|
|
10175
|
+
private readonly items;
|
|
10176
|
+
private readonly cargandoInterno;
|
|
10177
|
+
protected readonly resaltado: _angular_core.WritableSignal<number>;
|
|
10178
|
+
protected readonly anchoMenu: _angular_core.WritableSignal<number | null>;
|
|
10179
|
+
private readonly peticiones;
|
|
10180
|
+
/**
|
|
10181
|
+
* Corta UNA resolución: tras elegir un ítem el input pasa a su label, y eso
|
|
10182
|
+
* volvería a consultar la fuente con el texto que acabamos de escribir.
|
|
10183
|
+
* Espejo del `skipNextResolveRef` del golden.
|
|
10184
|
+
*/
|
|
10185
|
+
private saltarProximaResolucion;
|
|
10186
|
+
private temporizadorBlur?;
|
|
10187
|
+
private observadorAncho?;
|
|
10188
|
+
private raf;
|
|
10189
|
+
private onChangeFn;
|
|
10190
|
+
private onTouchedFn;
|
|
10191
|
+
protected readonly itemSeleccionado: _angular_core.Signal<T | null>;
|
|
10192
|
+
protected readonly queryText: _angular_core.Signal<string>;
|
|
10193
|
+
protected readonly listaVisible: _angular_core.Signal<boolean>;
|
|
10194
|
+
protected readonly cargando: _angular_core.Signal<boolean>;
|
|
10195
|
+
protected readonly mostrarClear: _angular_core.Signal<boolean>;
|
|
10196
|
+
protected readonly itemsVM: _angular_core.Signal<ItemVM<T>[]>;
|
|
10197
|
+
protected readonly mensajeVacio: _angular_core.Signal<string>;
|
|
10198
|
+
constructor();
|
|
10199
|
+
ngOnInit(): void;
|
|
10200
|
+
ngOnDestroy(): void;
|
|
10201
|
+
private resolver;
|
|
10202
|
+
private etiqueta;
|
|
10203
|
+
private claveDe;
|
|
10204
|
+
/** Parte el label por la primera coincidencia con la query (case-insensitive). */
|
|
10205
|
+
private partir;
|
|
10206
|
+
private abrir;
|
|
10207
|
+
private cerrar;
|
|
10208
|
+
protected onPopoverOpenChange(abierto: boolean): void;
|
|
10209
|
+
private medirDiferido;
|
|
10210
|
+
private medir;
|
|
10211
|
+
protected onInput(v: string): void;
|
|
10212
|
+
protected onFocusIn(): void;
|
|
10213
|
+
protected onFocusOut(): void;
|
|
10214
|
+
protected onItemMouseDown(event: MouseEvent, item: T): void;
|
|
10215
|
+
protected seleccionar(item: T): void;
|
|
10216
|
+
protected onClear(): void;
|
|
10217
|
+
protected onKeyDown(event: KeyboardEvent): void;
|
|
10218
|
+
writeValue(value: T | null): void;
|
|
10219
|
+
registerOnChange(fn: (item: T | null) => void): void;
|
|
10220
|
+
registerOnTouched(fn: () => void): void;
|
|
10221
|
+
setDisabledState(isDisabled: boolean): void;
|
|
10222
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AutocompleteComponent<any>, never>;
|
|
10223
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AutocompleteComponent<any>, "ius-autocomplete", never, { "source": { "alias": "source"; "required": true; }; "value": { "alias": "value"; "required": false; }; "defaultValue": { "alias": "defaultValue"; "required": false; }; "inputValue": { "alias": "inputValue"; "required": false; }; "defaultInputValue": { "alias": "defaultInputValue"; "required": false; }; "getItemLabel": { "alias": "getItemLabel"; "required": false; }; "getItemKey": { "alias": "getItemKey"; "required": false; }; "renderItem": { "alias": "renderItem"; "required": false; }; "debounceMs": { "alias": "debounceMs"; "required": false; }; "minChars": { "alias": "minChars"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "noResultsText": { "alias": "noResultsText"; "required": false; }; "emptyText": { "alias": "emptyText"; "required": false; }; "loadingText": { "alias": "loadingText"; "required": false; }; "clearable": { "alias": "clearable"; "required": false; }; "openOnFocus": { "alias": "openOnFocus"; "required": false; }; "placement": { "alias": "placement"; "required": false; }; "label": { "alias": "label"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "size": { "alias": "size"; "required": false; }; "required": { "alias": "required"; "required": false; }; "errorText": { "alias": "errorText"; "required": false; }; "helpText": { "alias": "helpText"; "required": false; }; "prefixIcon": { "alias": "prefixIcon"; "required": false; }; "name": { "alias": "name"; "required": false; }; "error": { "alias": "error"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "valueChange": "valueChange"; "inputChange": "inputChange"; }, never, never, true, never>;
|
|
10224
|
+
static ngAcceptInputType_debounceMs: unknown;
|
|
10225
|
+
static ngAcceptInputType_minChars: unknown;
|
|
10226
|
+
static ngAcceptInputType_loading: unknown;
|
|
10227
|
+
static ngAcceptInputType_clearable: unknown;
|
|
10228
|
+
static ngAcceptInputType_openOnFocus: unknown;
|
|
10229
|
+
static ngAcceptInputType_required: unknown;
|
|
10230
|
+
static ngAcceptInputType_error: unknown;
|
|
10231
|
+
static ngAcceptInputType_disabled: unknown;
|
|
10232
|
+
}
|
|
10233
|
+
|
|
10234
|
+
/** Naturaleza (implicación) — eje semántico UNIVERSAL, común a todas las fuentes. */
|
|
10235
|
+
type Naturaleza = 'exige_accion' | 'resuelve' | 'impulsa' | 'notifica' | 'informa' | 'sin_clasificar';
|
|
10236
|
+
/** Clase de la fila tal como la entrega el portal. */
|
|
10237
|
+
type Clase = 'providencia' | 'estado' | 'anotacion';
|
|
10238
|
+
/**
|
|
10239
|
+
* Tono del chip de naturaleza. SEMÁNTICO a propósito: una naturaleza dice qué
|
|
10240
|
+
* implica la actuación, no de dónde viene — nunca un hue categórico.
|
|
10241
|
+
*/
|
|
10242
|
+
type NaturalezaTone = 'warning' | 'success' | 'primary' | 'info' | 'neutral';
|
|
10243
|
+
interface NaturalezaDef {
|
|
10244
|
+
label: string;
|
|
10245
|
+
/** Familia semántica: se consume como `var(--ius-<tone>-700)` y compañía. */
|
|
10246
|
+
tone: NaturalezaTone;
|
|
10247
|
+
/** Orden de importancia (1 = más urgente). Gobierna `naturalezaOptions()`. */
|
|
10248
|
+
priority: number;
|
|
10249
|
+
/** Ícono Material Symbols Rounded. */
|
|
10250
|
+
icon: string;
|
|
10251
|
+
}
|
|
10252
|
+
interface ClaseDef {
|
|
10253
|
+
label: string;
|
|
10254
|
+
icon: string;
|
|
10255
|
+
}
|
|
10256
|
+
/** Entrada del catálogo para un tipo concreto. */
|
|
10257
|
+
interface ActuacionEntry {
|
|
10258
|
+
clase: Clase;
|
|
10259
|
+
/** `null` = no se puede afirmar desde el rótulo (ver `interno`). */
|
|
10260
|
+
naturaleza: Naturaleza | null;
|
|
10261
|
+
label: string;
|
|
10262
|
+
icon: string;
|
|
10263
|
+
/** Publicación/fijación derivada de una providencia previa: se agrupa bajo su causa. */
|
|
10264
|
+
rol?: 'consecuencia';
|
|
10265
|
+
/** Etiqueta NUESTRA, no del portal: la actuación real vive en el adjunto. */
|
|
10266
|
+
interno?: boolean;
|
|
10267
|
+
nota?: string;
|
|
10268
|
+
}
|
|
10269
|
+
/** Resultado de resolver un tipo. Nunca `null`. */
|
|
10270
|
+
interface ActuacionMeta extends ActuacionEntry {
|
|
10271
|
+
match: 'exacto' | 'heuristica' | 'generico';
|
|
10272
|
+
/** `true` solo con match exacto. `false` → candidato a promoción (telemetría de misses). */
|
|
10273
|
+
clasificado: boolean;
|
|
10274
|
+
/** El tipo crudo, tal como llegó. */
|
|
10275
|
+
tipo: string;
|
|
10276
|
+
/** El tipo normalizado con el que se hizo el lookup. */
|
|
10277
|
+
key: string;
|
|
10278
|
+
}
|
|
10279
|
+
/** Eje universal: qué implica la actuación para el abogado. */
|
|
10280
|
+
declare const NATURALEZA_DEF: Readonly<Record<Naturaleza, NaturalezaDef>>;
|
|
10281
|
+
/** Clase del portal: providencia · estado/publicación · anotación. */
|
|
10282
|
+
declare const CLASE_DEF: Readonly<Record<Clase, ClaseDef>>;
|
|
10283
|
+
/**
|
|
10284
|
+
* Catálogo por fuente: `fuente → { TIPO_NORMALIZADO → ActuacionEntry }`.
|
|
10285
|
+
*
|
|
10286
|
+
* Las claves ya vienen normalizadas (mayúsculas, sin tildes ni puntuación):
|
|
10287
|
+
* son el resultado de `normalizeTipo` sobre el rótulo del portal.
|
|
10288
|
+
*
|
|
10289
|
+
* Solo `rama` está sembrada. SIC, Supersociedades, conciliación y registro
|
|
10290
|
+
* manual entran cuando su vocabulario pase por validación humana; hasta
|
|
10291
|
+
* entonces resuelven por heurística, que es el comportamiento correcto.
|
|
10292
|
+
*/
|
|
10293
|
+
declare const ACTUACION_CATALOG: Readonly<Record<string, Readonly<Record<string, ActuacionEntry>>>>;
|
|
10294
|
+
/** Fuentes con vocabulario sembrado (hoy: solo `rama`). */
|
|
10295
|
+
declare const ACTUACION_FUENTES: readonly string[];
|
|
10296
|
+
/**
|
|
10297
|
+
* Normaliza un tipo crudo para el lookup: quita tildes, pasa a mayúsculas,
|
|
10298
|
+
* convierte la puntuación en espacio y colapsa los espacios.
|
|
10299
|
+
*
|
|
10300
|
+
* Ojo con la Ñ: `NFD` la descompone en `N` + tilde combinante y el filtro se
|
|
10301
|
+
* lleva la tilde, así que «AÑO» normaliza a «ANO». Es el comportamiento del
|
|
10302
|
+
* golden y conviene para el lookup (el portal no es consistente con las tildes).
|
|
10303
|
+
*/
|
|
10304
|
+
declare function normalizeTipo(raw: string | null | undefined): string;
|
|
10305
|
+
/**
|
|
10306
|
+
* Resuelve un tipo de actuación a su semántica. **Nunca devuelve `null`**: si no
|
|
10307
|
+
* hay match exacto ni heurístico, entrega un genérico marcado
|
|
10308
|
+
* (`clasificado: false`) para que el consumidor lo registre como miss.
|
|
10309
|
+
*
|
|
10310
|
+
* El `customMap` del módulo GANA sobre el catálogo core de la fuente: así un
|
|
10311
|
+
* despacho con vocabulario propio se corrige sin tocar el foundation.
|
|
10312
|
+
*/
|
|
10313
|
+
declare function resolveActuacion(fuente: FuenteKey, tipoRaw: string | null | undefined, customMap?: Readonly<Record<string, ActuacionEntry>>): ActuacionMeta;
|
|
10314
|
+
/** Meta de la naturaleza resuelta, para pintar el chip. Cae a `sin_clasificar`. */
|
|
10315
|
+
declare function naturalezaMeta(naturaleza: Naturaleza | null | undefined): NaturalezaDef;
|
|
10316
|
+
/** Opción de naturaleza para filtros y orden. */
|
|
10317
|
+
interface NaturalezaOption {
|
|
10318
|
+
value: Naturaleza;
|
|
10319
|
+
label: string;
|
|
10320
|
+
tone: NaturalezaTone;
|
|
10321
|
+
}
|
|
10322
|
+
/**
|
|
10323
|
+
* Opciones de naturaleza ordenadas por `priority`, sin `sin_clasificar`: es un
|
|
10324
|
+
* estado de fallo del catálogo, no algo que el usuario elija filtrar.
|
|
10325
|
+
*/
|
|
10326
|
+
declare function naturalezaOptions(): NaturalezaOption[];
|
|
8068
10327
|
|
|
8069
10328
|
/** Hue categórico (identidad, nunca estado). */
|
|
8070
10329
|
type FileTypeHue = 'primary' | 'neutral' | 'durazno' | 'banano' | 'sandia' | 'arandano' | 'uva' | 'aguacate';
|
|
@@ -9069,5 +11328,5 @@ declare class StageDetailDrawerComponent {
|
|
|
9069
11328
|
static ngAcceptInputType_closeOnEsc: unknown;
|
|
9070
11329
|
}
|
|
9071
11330
|
|
|
9072
|
-
export { AccordionComponent, AccountItemComponent, AlertComponent, AppLayoutComponent, AvatarComponent, AvatarStackComponent, BreadcrumbComponent, ButtonComponent, CATEGORIES, CATEGORY_DEF, CATEGORY_HUE, CHART_CATEGORICAL_TONES, CHART_SEMANTIC_TONES, CHART_TONES, CaptchaFieldComponent, CardComponent, CarouselComponent, CheckboxComponent, ChipComponent, CircularProgressComponent, CodeFieldComponent, CountdownComponent, CountdownRingComponent, DescriptionListComponent, DetailSidePanelComponent, DividerComponent, DrawerComponent, DropdownComponent, EVENT_KINDS, EVENT_KIND_ICON, EXT_KIND, EleniaBubbleComponent, EleniaOrbComponent, EmptyStateComponent, EventPillComponent, FileItemComponent, FileTypeIconComponent, FileUploadComponent, FlexComponent, FormComponent, FormFieldComponent, FormSectionComponent, HeaderBarComponent, ILLUSTRATIONS, ILLUSTRATION_ALIAS, ILLUSTRATION_NAMES, IUS_FILTER_OPERATORS, IUS_TOAST_DEFAULT_DURATION, IUS_TOAST_DEFAULT_ICON, IconButtonComponent, IllustrationComponent, InsigniaComponent, IusAccountItemNameDirective, IusAccountItemSubtitleDirective, IusAccountItemTrailingDirective, IusAlertActionsDirective, IusAlertTrailingDirective, IusCardFooterDirective, IusCardHeaderDirective, IusDrawerFooterDirective, IusDrawerHeaderActionsDirective, IusDrawerTitleDirective, IusDropdownTriggerDirective, IusFormFooterDirective, IusListCardLeadingDirective, IusListCardOverlineDirective, IusListCardParagraphDirective, IusListCardSubtitleDirective, IusListCardTitleDirective, IusListViewFiltersDirective, IusListViewFooterEndDirective, IusListViewFooterStartDirective, IusListViewHeaderEndDirective, IusListViewHeaderStartDirective, IusListViewToolbarDirective, IusMenuItemTrailingDirective, IusModalFooterDirective, IusPageHeaderActionsDirective, IusPageHeaderBreadcrumbDirective, IusPageHeaderOverlineDirective, IusPageHeaderSubtitleDirective, IusPageHeaderTitleDirective, IusPageHeaderToolbarDirective, IusPersonItemNameDirective, IusPersonItemTrailingDirective, IusSectionTitleActionDirective, IusSettingsNavFooterDirective, IusSettingsNavHeaderDirective, IusStageDetailFooterDirective, IusStageDetailHeaderActionsDirective, IusStageDetailMetaDirective, IusStatCaptionDirective, IusStatDeltaDirective, IusStatDeltaLabelDirective, IusStatLabelDirective, IusStatSparklineDirective, IusTagPrefixDirective, IusTagSuffixDirective, IusToastActionDirective, IusUserMenuFooterDirective, KINDS, KIND_DEF, KIND_FALLBACK, LineChartComponent, LinearProgressBarComponent, ListCardComponent, ListViewComponent, LoadingComponent, LoadingMarkComponent, MenuComponent, MenuItemComponent, ModalComponent, MultiTextFieldComponent, NavUserComponent, NumberFieldComponent, ORB_PERIODS, OauthButtonComponent, OptionItemComponent, PageHeaderComponent, PartyListComponent, PersonItemComponent, PersonPickerComponent, PlanUsageItemComponent, PopoverComponent, QueryBuilderComponent, STATUS_TONES, STATUS_VOCAB, STATUS_VOCABS, STATUS_VOCABS_PENDING, ScrollAreaComponent, SearchBarComponent, SectionHeaderComponent, SectionTitleComponent, SegmentGroupComponent, SegmentedControlComponent, SelectComponent, SettingsNavComponent, ShowMoreComponent, SkeletonComponent, SparklineComponent, SplitterComponent, StageDetailDrawerComponent, StatComponent, StatGroupComponent, StatusChipComponent, StatusStateComponent, StepperComponent, TableComponent, TabsComponent, TagComponent, TextAreaComponent, TextButtonComponent, TextComponent, TextFieldComponent, TimelineComponent, ToastComponent, ToastService, ToastViewportComponent, TooltipComponent, UserMenuComponent, WizardComponent, WizardController, WizardNavComponent, categoryColors, categoryOptions, chartAxisTicks, chartFormatValue, chartLinearPath, chartNiceNum, chartPath, chartPrefersReducedMotion, chartSmoothPath, chartToneAt, chartToneVar, createWizard, eventKindOptions, extOf, formatBytes, iusSegColor, kindHue, kindIcon, kindLabel, kindMeta, kindOptions, pose, poseIso, poseSpeaking, poseThinking, renderCubeSvg, resolveCategoryHue, resolveEventIcon, resolveIllustration, resolveKind, resolveStatus, statusOptions, statusOrder, statusToneVars, statusVocab, voiceEnv };
|
|
9073
|
-
export type { ActuacionStatus, AlertSize, AlertTone, AlertVariant, CategoryColors, CategoryDef, CategoryHueSource, CategoryKey, CategoryOption, ChartCategoricalTone, ChartCurve, ChartPoint, ChartSemanticTone, ChartTone, CountdownDirection, CountdownFormat, CountdownRingSize, CountdownRingTone, DescriptionListItem, DescriptionListLayout, DescriptionListSize, DescriptionListValueClick, EventIconSource, EventKind, EventKindOption, FileKind, FileKindDef, FileKindDomain, FileKindFs, FileKindMeta, FileKindOption, FileTypeHue, GestionStatus, Hue, IllustrationEntry, IllustrationName, IllustrationSize, IusAccordionItem, IusAccordionVariant, IusAccountItemAction, IusAccountItemState, IusAppLayoutAccent, IusAvatarColor, IusAvatarShape, IusAvatarSize, IusAvatarStackItem, IusAvatarStackItemClick, IusAvatarStackStyle, IusBreadcrumbItem, IusBreadcrumbNavigate, IusBreadcrumbSeparator, IusBreadcrumbSize, IusButtonActionResult, IusButtonSize, IusButtonStatus, IusButtonType, IusButtonVariant, IusCaptchaAppearance, IusCaptchaFieldHandle, IusCaptchaProvider, IusCaptchaSize, IusCaptchaState, IusCaptchaTheme, IusCardAs, IusCardPadding, IusCardRadius, IusCardVariant, IusCarouselImage, IusCarouselImageInput, IusCarouselObjectFit, IusCarouselOrder, IusCarouselOverlay, IusCarouselTransition, IusCheckboxLabelPosition, IusCheckboxSize, IusChipSize, IusChipState, IusCircularProgressSize, IusCircularProgressTone, IusCodeFieldSize, IusDetailSidePanelSection, IusDividerOrientation, IusDividerTextAlign, IusDividerVariant, IusDrawerSide, IusDrawerSize, IusDropdownItem, IusDropdownTone, IusDropdownVariant, IusEleniaBubblePosition, IusEleniaBubbleSize, IusEleniaOrbMood, IusEleniaOrbSurface, IusEmptyStateAction, IusEmptyStateSize, IusEmptyStateTone, IusEmptyStateVariant, IusEventAssignee, IusEventPillFill, IusEventPillSize, IusEventPillVariant, IusFileItemAction, IusFileItemActionClick, IusFileItemActivateOn, IusFileItemField, IusFileItemLayout, IusFileItemOwner, IusFileItemSize, IusFileItemTag, IusFileTypeIconSize, IusFileTypeIconVariant, IusFileUploadVariant, IusFilterField, IusFilterFieldOption, IusFilterFieldType, IusFilterRule, IusFilterValue, IusFlexAlign, IusFlexDirection, IusFlexGap, IusFlexJustify, IusFormColumns, IusFormError, IusFormFieldSpan, IusFormSectionVariant, IusIconButtonShape, IusIconButtonSize, IusIconButtonVariant, IusInsigniaSize, IusInsigniaTone, IusInsigniaVariant, 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, IusPageHeaderTitleLevel, IusPartyListConnector, IusPartyListSize, IusPersonId, IusPersonItemAction, IusPersonItemSize, IusPersonItemState, IusPersonItemVariant, IusPersonOption, IusPersonPickerSelectedContext, IusPlanUsageAction, IusPlanUsageLegend, IusPlanUsageStatus, IusPopoverPadding, IusPopoverPlacement, IusPopoverTrigger, IusQueryBuilderSize, IusScrollAxis, IusScrollSize, IusSearchBarSize, IusSearchBarState, IusSectionHeaderAccent, IusSectionHeaderVariant, IusSectionTitleAs, IusSectionTitleHelpTrigger, IusSectionTitleSize, IusSegmentedSize, IusSegmentedVariant, IusSelectCreateFactory, IusSelectSize, IusSelectState, IusSelectValue, 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, IusTabItem, IusTabTag, IusTableAlign, IusTableCellContext, IusTableColumn, IusTableHeaderContext, IusTableRowClick, IusTableRowKey, IusTableRowStyle, IusTableSize, IusTableSortChange, IusTableSortDirection, IusTableSummaryCell, IusTableTone, IusTabsAccent, IusTabsSize, IusTagRole, IusTagShape, IusTagSize, IusTagState, IusTagTone, IusTagVariant, IusTextAlign, IusTextAreaSize, IusTextAreaState, IusTextButtonSize, IusTextButtonType, IusTextColor, IusTextFieldSize, IusTextFieldType, IusTextTag, IusTextVariant, IusTextWeight, IusTimelineAccent, IusTimelineAssignee, IusTimelineAttachment, IusTimelineAttachmentClick, IusTimelineItem, IusTimelineItemState, IusTimelineSize, IusTimelineTag, IusTimelineTagTone, IusToastItem, IusToastOptions, IusToastPosition, IusToastTone, IusTooltipTrigger, IusUploadFile, IusUploadStatus, IusUploader, IusUploaderHelpers, IusUserMenuAccount, IusUserMenuAccountOption, IusUserMenuItem, IusUserMenuOrigin, IusUserMenuService, IusUserMenuUser, OrbMood, OrbPose, SegmentedOption, SelectOption, SelectOptionGroup, StatusMeta, StatusOption, StatusTone, StatusToneVars, StatusVocabMap, StatusVocabName, UseWizardOptions, WizardApi, WizardStep };
|
|
11331
|
+
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, DatePickerComponent, DescriptionListComponent, DetailSidePanelComponent, DividerComponent, 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, FormComponent, FormFieldComponent, FormSectionComponent, HeaderBarComponent, ILLUSTRATIONS, ILLUSTRATION_ALIAS, ILLUSTRATION_NAMES, IUS_FILTER_OPERATORS, IUS_TOAST_DEFAULT_DURATION, IUS_TOAST_DEFAULT_ICON, IconButtonComponent, IllustrationComponent, InsightComponent, InsigniaComponent, IusAccountItemNameDirective, IusAccountItemSubtitleDirective, IusAccountItemTrailingDirective, IusAlertActionsDirective, IusAlertTrailingDirective, IusCalendarAsideDirective, IusCalendarFooterDirective, IusCardFooterDirective, IusCardHeaderDirective, IusDrawerFooterDirective, IusDrawerHeaderActionsDirective, IusDrawerTitleDirective, IusDropdownTriggerDirective, IusEntityRowLabelDirective, IusEntityRowSublabelDirective, IusFormFooterDirective, IusInsightActionsDirective, 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, LineChartComponent, LinearProgressBarComponent, ListCardComponent, ListViewComponent, LoadingComponent, LoadingMarkComponent, MenuComponent, MenuItemComponent, ModalComponent, MultiTextFieldComponent, NATURALEZA_DEF, NavUserComponent, NumberFieldComponent, ORB_PERIODS, OauthButtonComponent, OptionItemComponent, PageHeaderComponent, PartyListComponent, PersonItemComponent, PersonPickerComponent, PlanUsageItemComponent, PopoverComponent, QueryBuilderComponent, RepeatableFieldComponent, SOURCE_FUENTE, SOURCE_LABEL, STATUS_TONES, STATUS_VOCAB, STATUS_VOCABS, STATUS_VOCABS_PENDING, ScrollAreaComponent, SearchBarComponent, SectionHeaderComponent, SectionTitleComponent, SegmentGroupComponent, SegmentedControlComponent, SelectComponent, 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, sourceIcon, sourceMeta, statusOptions, statusOrder, statusToneVars, statusVocab, timeFromDate, voiceEnv };
|
|
11332
|
+
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, IusAccordionItem, 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, IusDatePickerMode, IusDatePickerState, IusDatePickerValue, IusDateRange, IusDateTimeValue, IusDetailSidePanelSection, IusDividerOrientation, IusDividerTextAlign, IusDividerVariant, 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, IusEntitySection, IusEntityStateSegment, IusEventAssignee, IusEventPillFill, IusEventPillSize, IusEventPillVariant, IusFileItemAction, IusFileItemActionClick, IusFileItemActivateOn, IusFileItemField, IusFileItemLayout, IusFileItemOwner, IusFileItemSize, IusFileItemTag, IusFileTypeIconSize, IusFileTypeIconVariant, IusFileUploadVariant, IusFilterField, IusFilterFieldOption, IusFilterFieldType, IusFilterRule, IusFilterValue, IusFlexAlign, IusFlexDirection, IusFlexGap, IusFlexJustify, IusFormColumns, IusFormError, IusFormFieldSpan, IusFormSectionVariant, IusIconButtonShape, IusIconButtonSize, IusIconButtonVariant, IusInsightTone, IusInsightVariant, IusInsigniaSize, IusInsigniaTone, IusInsigniaVariant, 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, IusPartyListConnector, IusPartyListSize, IusPersonId, IusPersonItemAction, IusPersonItemSize, IusPersonItemState, IusPersonItemVariant, IusPersonOption, IusPersonPickerSelectedContext, IusPlanUsageAction, IusPlanUsageLegend, IusPlanUsageStatus, IusPopoverPadding, IusPopoverPlacement, IusPopoverTrigger, IusQueryBuilderSize, IusRepeatableControlContext, IusRepeatableInputMode, IusRepeatableItem, IusRepeatableSize, IusRepeatableTypeOption, IusScrollAxis, IusScrollSize, IusSearchBarSize, IusSearchBarState, IusSectionHeaderAccent, IusSectionHeaderVariant, IusSectionTitleAs, IusSectionTitleHelpTrigger, IusSectionTitleSize, IusSegmentedSize, IusSegmentedVariant, IusSelectCreateFactory, IusSelectSize, IusSelectState, IusSelectValue, 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, IusTableColumn, IusTableHeaderContext, IusTableRowClick, IusTableRowKey, IusTableRowStyle, IusTableSize, IusTableSortChange, IusTableSortDirection, IusTableSummaryCell, IusTableTone, IusTabsAccent, IusTabsSize, IusTagRole, IusTagShape, IusTagSize, IusTagState, IusTagTone, IusTagVariant, IusTextAlign, IusTextAreaSize, IusTextAreaState, IusTextButtonSize, IusTextButtonType, IusTextColor, IusTextFieldSize, IusTextFieldType, IusTextTag, IusTextVariant, IusTextWeight, IusTimeValue, IusTimelineAccent, IusTimelineAssignee, IusTimelineAttachment, IusTimelineAttachmentClick, IusTimelineItem, IusTimelineItemState, IusTimelineSize, IusTimelineTag, IusTimelineTagTone, 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 };
|