@litigiovirtual/ius-design-components 2.2.11 → 2.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -36,6 +36,11 @@ interface SizePreset$2 {
|
|
|
36
36
|
* idle. Una excepción de `action` cae a `error`; resolver sin valor es
|
|
37
37
|
* `success`. `dynamic` ignora los inputs manuales `loading`/`status`.
|
|
38
38
|
*
|
|
39
|
+
* En loading/success/error el contenido (prefixIcon + label + sufixIcon) sigue
|
|
40
|
+
* en el flujo con `visibility:hidden` para conservar el ancho natural, y el
|
|
41
|
+
* spinner o el ícono `check_circle`/`error` se superpone centrado en
|
|
42
|
+
* `.ius-btn__overlay` (§4/§7).
|
|
43
|
+
*
|
|
39
44
|
* Nota: el `state` de la spec ("solo demos") se omite de la API pública —
|
|
40
45
|
* mismo criterio que TextField. El playground congela hover/pressed con el
|
|
41
46
|
* atributo `data-force` en el host (solo CSS); loading/success/error/disabled
|
|
@@ -893,7 +898,7 @@ declare class AlertComponent {
|
|
|
893
898
|
/** Divisor sobre la fila de acciones. */
|
|
894
899
|
readonly actionsDivider: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
895
900
|
/** Alineación (auto: `center` si hay `trailing` sin `actions`). */
|
|
896
|
-
readonly align: _angular_core.InputSignal<"
|
|
901
|
+
readonly align: _angular_core.InputSignal<"center" | "start" | undefined>;
|
|
897
902
|
/** `status` (default, no interrumpe) o `alert` (asertivo). */
|
|
898
903
|
readonly role: _angular_core.InputSignal<"alert" | "status">;
|
|
899
904
|
/** Al pulsar × (original: `onClose`). */
|
|
@@ -904,7 +909,7 @@ declare class AlertComponent {
|
|
|
904
909
|
protected readonly hasTrailing: _angular_core.Signal<boolean>;
|
|
905
910
|
/** trailing y actions son excluyentes: si hay ambos, gana actions. */
|
|
906
911
|
protected readonly showTrailing: _angular_core.Signal<boolean>;
|
|
907
|
-
protected readonly computedAlign: _angular_core.Signal<"
|
|
912
|
+
protected readonly computedAlign: _angular_core.Signal<"center" | "start">;
|
|
908
913
|
protected readonly iconName: _angular_core.Signal<string | null>;
|
|
909
914
|
protected readonly chip: _angular_core.Signal<boolean>;
|
|
910
915
|
protected readonly showHead: _angular_core.Signal<boolean>;
|
|
@@ -4939,6 +4944,14 @@ interface WizardApi {
|
|
|
4939
4944
|
back(): void;
|
|
4940
4945
|
/** Salta a un paso (1-based), o función `(prev) => next`. */
|
|
4941
4946
|
goTo(next: number | ((prev: number) => number)): void;
|
|
4947
|
+
/**
|
|
4948
|
+
* `true` mientras el botón final dinámico de `ius-wizard-nav`
|
|
4949
|
+
* (`finishDynamic`) no está en reposo (loading · success · error). Sirve para
|
|
4950
|
+
* bloquear otras salidas (p. ej. `backDisabled` del PageHeader). Lo expone
|
|
4951
|
+
* `createWizard`; una api armada a mano puede omitirlo y escuchar el output
|
|
4952
|
+
* `finishingChange` del nav. `back()` llamado directo no se bloquea.
|
|
4953
|
+
*/
|
|
4954
|
+
readonly finishing?: boolean;
|
|
4942
4955
|
}
|
|
4943
4956
|
interface UseWizardOptions {
|
|
4944
4957
|
/**
|
|
@@ -4977,6 +4990,8 @@ declare class WizardController implements WizardApi {
|
|
|
4977
4990
|
private readonly internal?;
|
|
4978
4991
|
/** Señal de solo lectura del paso (1-based, acotado al total). */
|
|
4979
4992
|
readonly step$: Signal<number>;
|
|
4993
|
+
/** Espera del botón final; la escribe `ius-wizard-nav` (golden `_setFinishing`). */
|
|
4994
|
+
private readonly finishingSource;
|
|
4980
4995
|
private readonly onStepChange?;
|
|
4981
4996
|
private readonly onFinish?;
|
|
4982
4997
|
constructor(options: UseWizardOptions);
|
|
@@ -4987,6 +5002,12 @@ declare class WizardController implements WizardApi {
|
|
|
4987
5002
|
get current(): WizardStep | null;
|
|
4988
5003
|
get isFirst(): boolean;
|
|
4989
5004
|
get isLast(): boolean;
|
|
5005
|
+
get finishing(): boolean;
|
|
5006
|
+
/**
|
|
5007
|
+
* Lo llama `ius-wizard-nav` al entrar en la espera del botón final y al
|
|
5008
|
+
* volver a reposo. No es para el consumidor: este lee `finishing`.
|
|
5009
|
+
*/
|
|
5010
|
+
setFinishing(finishing: boolean): void;
|
|
4990
5011
|
goTo: (next: number | ((prev: number) => number)) => void;
|
|
4991
5012
|
next: () => void;
|
|
4992
5013
|
back: () => void;
|
|
@@ -5043,8 +5064,16 @@ declare class WizardComponent {
|
|
|
5043
5064
|
* El handler final se pasa como `finishAction` (con `finishDynamic` debe
|
|
5044
5065
|
* devolver una `Promise` para integrarse con el modo dynamic del Button);
|
|
5045
5066
|
* además se emite el output `finish` (ng-spec §4).
|
|
5067
|
+
*
|
|
5068
|
+
* Espera del botón final (`finishDynamic`): mientras está en loading · success ·
|
|
5069
|
+
* error, «Atrás» queda deshabilitado, `api.finishing` es `true` (api de
|
|
5070
|
+
* `createWizard`) y `finishingChange` avisa `true` al entrar y `false` al volver
|
|
5071
|
+
* a reposo. El nav espeja la fase del Button con sus mismos tiempos, como el
|
|
5072
|
+
* golden. Si el nav se destruye en plena espera limpia sus timers sin avisar
|
|
5073
|
+
* (igual que el golden) y libera `api.finishing`, para que una api que
|
|
5074
|
+
* sobrevive no quede bloqueada.
|
|
5046
5075
|
*/
|
|
5047
|
-
declare class WizardNavComponent {
|
|
5076
|
+
declare class WizardNavComponent implements OnDestroy {
|
|
5048
5077
|
/** API de `createWizard(...)`. */
|
|
5049
5078
|
api: WizardApi;
|
|
5050
5079
|
/** Etiqueta del botón atrás. */
|
|
@@ -5055,12 +5084,17 @@ declare class WizardNavComponent {
|
|
|
5055
5084
|
finishLabel: string;
|
|
5056
5085
|
/** Ícono al final del botón siguiente. */
|
|
5057
5086
|
nextIcon: string;
|
|
5058
|
-
/**
|
|
5087
|
+
/**
|
|
5088
|
+
* El botón final usa el modo `dynamic` del Button (loading → success/error).
|
|
5089
|
+
* Mientras no está en reposo, «Atrás» se deshabilita solo.
|
|
5090
|
+
*/
|
|
5059
5091
|
finishDynamic: boolean;
|
|
5060
5092
|
/** Deshabilita "siguiente" (p. ej. validación del paso pendiente). */
|
|
5061
5093
|
nextDisabled: boolean;
|
|
5062
5094
|
/** Oculta el botón atrás en el primer paso (en vez de deshabilitarlo). */
|
|
5063
5095
|
hideBackOnFirst: boolean;
|
|
5096
|
+
/** Deshabilita «Atrás» a mano (con `finishDynamic` ya lo hace solo durante la espera). */
|
|
5097
|
+
backDisabled: boolean;
|
|
5064
5098
|
/**
|
|
5065
5099
|
* Handler del botón final. Con `finishDynamic` debe devolver una `Promise`
|
|
5066
5100
|
* (su resolución decide success/error del Button).
|
|
@@ -5068,15 +5102,30 @@ declare class WizardNavComponent {
|
|
|
5068
5102
|
finishAction?: () => void | IusButtonActionResult | Promise<IusButtonActionResult | void>;
|
|
5069
5103
|
/** Se dispara al pulsar el botón final (original `onFinish`). */
|
|
5070
5104
|
readonly finish: EventEmitter<void>;
|
|
5105
|
+
/**
|
|
5106
|
+
* Espera del botón final (`finishDynamic`, original `onFinishingChange`):
|
|
5107
|
+
* `true` al entrar en loading y `false` al volver a reposo tras success/error.
|
|
5108
|
+
* Mismo dato que `api.finishing`, para quien arma la api a mano.
|
|
5109
|
+
*/
|
|
5110
|
+
readonly finishingChange: EventEmitter<boolean>;
|
|
5111
|
+
/** Espejo de la fase del Button dinámico: `true` desde loading hasta volver a idle. */
|
|
5112
|
+
protected readonly busy: _angular_core.WritableSignal<boolean>;
|
|
5113
|
+
private timers;
|
|
5114
|
+
private destroyed;
|
|
5071
5115
|
/** `action` para el modo dynamic del Button: emite `finish` y espera el handler. */
|
|
5072
5116
|
protected readonly runFinish: () => Promise<IusButtonActionResult | void>;
|
|
5117
|
+
ngOnDestroy(): void;
|
|
5073
5118
|
/** Click del botón final en modo NO dynamic. */
|
|
5074
5119
|
protected onFinishClick(): void;
|
|
5120
|
+
/** Solo en los cambios reposo ↔ espera: nunca en cada fase intermedia. */
|
|
5121
|
+
private setBusy;
|
|
5122
|
+
private later;
|
|
5075
5123
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<WizardNavComponent, never>;
|
|
5076
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<WizardNavComponent, "ius-wizard-nav", never, { "api": { "alias": "api"; "required": true; }; "backLabel": { "alias": "backLabel"; "required": false; }; "nextLabel": { "alias": "nextLabel"; "required": false; }; "finishLabel": { "alias": "finishLabel"; "required": false; }; "nextIcon": { "alias": "nextIcon"; "required": false; }; "finishDynamic": { "alias": "finishDynamic"; "required": false; }; "nextDisabled": { "alias": "nextDisabled"; "required": false; }; "hideBackOnFirst": { "alias": "hideBackOnFirst"; "required": false; }; "finishAction": { "alias": "finishAction"; "required": false; }; }, { "finish": "finish"; }, never, never, true, never>;
|
|
5124
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<WizardNavComponent, "ius-wizard-nav", never, { "api": { "alias": "api"; "required": true; }; "backLabel": { "alias": "backLabel"; "required": false; }; "nextLabel": { "alias": "nextLabel"; "required": false; }; "finishLabel": { "alias": "finishLabel"; "required": false; }; "nextIcon": { "alias": "nextIcon"; "required": false; }; "finishDynamic": { "alias": "finishDynamic"; "required": false; }; "nextDisabled": { "alias": "nextDisabled"; "required": false; }; "hideBackOnFirst": { "alias": "hideBackOnFirst"; "required": false; }; "backDisabled": { "alias": "backDisabled"; "required": false; }; "finishAction": { "alias": "finishAction"; "required": false; }; }, { "finish": "finish"; "finishingChange": "finishingChange"; }, never, never, true, never>;
|
|
5077
5125
|
static ngAcceptInputType_finishDynamic: unknown;
|
|
5078
5126
|
static ngAcceptInputType_nextDisabled: unknown;
|
|
5079
5127
|
static ngAcceptInputType_hideBackOnFirst: unknown;
|
|
5128
|
+
static ngAcceptInputType_backDisabled: unknown;
|
|
5080
5129
|
}
|
|
5081
5130
|
|
|
5082
5131
|
/** Eje con scroll. */
|
|
@@ -8171,6 +8220,12 @@ declare class PageHeaderComponent {
|
|
|
8171
8220
|
readonly showBack: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
8172
8221
|
/** Texto accesible de la flecha de volver. */
|
|
8173
8222
|
readonly backLabel: _angular_core.InputSignal<string>;
|
|
8223
|
+
/**
|
|
8224
|
+
* Flecha de volver desactivada en su sitio (`ius-icon-button` disabled): no se
|
|
8225
|
+
* mueve ni desaparece y no emite `back`. Caso: asistente cuyo botón final
|
|
8226
|
+
* espera (`api.finishing` / `finishingChange` de `ius-wizard-nav`).
|
|
8227
|
+
*/
|
|
8228
|
+
readonly backDisabled: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
8174
8229
|
/** Separador inferior. */
|
|
8175
8230
|
readonly divider: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
8176
8231
|
/** Fondo blanco + borde + radio. */
|
|
@@ -8194,7 +8249,7 @@ declare class PageHeaderComponent {
|
|
|
8194
8249
|
/** Volver es leading: si hay breadcrumb, encabeza esa fila. */
|
|
8195
8250
|
protected readonly backInBreadcrumb: _angular_core.Signal<boolean>;
|
|
8196
8251
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PageHeaderComponent, never>;
|
|
8197
|
-
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>;
|
|
8252
|
+
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; }; "backDisabled": { "alias": "backDisabled"; "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>;
|
|
8198
8253
|
}
|
|
8199
8254
|
|
|
8200
8255
|
/**
|
|
@@ -8512,6 +8567,12 @@ interface IusBreadcrumbItem {
|
|
|
8512
8567
|
href?: string;
|
|
8513
8568
|
/** Ícono Material Symbols a la izquierda del label (p. ej. `person`, `folder_open`, `gavel`). */
|
|
8514
8569
|
icon?: string;
|
|
8570
|
+
/**
|
|
8571
|
+
* Desactiva el crumb: texto sin enlace (`aria-disabled`, `text-disabled`) que no
|
|
8572
|
+
* emite `navigate`; en el menú "…" la opción queda deshabilitada. Caso: bloquear
|
|
8573
|
+
* la salida de un asistente mientras su botón final espera.
|
|
8574
|
+
*/
|
|
8575
|
+
disabled?: boolean;
|
|
8515
8576
|
}
|
|
8516
8577
|
type IusBreadcrumbSeparator = 'chevron' | 'slash';
|
|
8517
8578
|
type IusBreadcrumbSize = 'small' | 'medium';
|