Descripción general del componente paso a paso de Angular

    El Ignite UI for Angular Stepper es un componente altamente personalizable que visualiza el contenido como un proceso y muestra su progreso dividiendo el contenido en pasos sucesivos. Aparece como una línea vertical u horizontal. Proporcionado por la biblioteca de componentes de Ignite UI para Angular, el componente paso a paso ofrece un flujo de trabajo similar al de un asistente y múltiples funciones como la validación de pasos, el estilo, la orientación y la navegación con el teclado.

    Angular Ejemplo de Stepper

    En este ejemplo de Angular Stepper, puede ver cómo los usuarios tienen la oportunidad de personalizar su tarjeta de crédito y pasan por el proceso en cinco pasos lógicos: seleccionar el tipo de tarjeta, agregar información comercial, completar información personal, proporcionar detalles de envío y confirmación. Tenga en cuenta que el cuarto paso en nuestra demostración de paso a paso Angular se habilita solo si el usuario marca la casilla de verificación en el segundo paso, lo que significa que su dirección postal es diferente de la dirección física de la empresa.

    EXAMPLE
    TS
    HTML
    SCSS

    ¿Te gusta esta muestra? Obtenga acceso a nuestro kit de herramientas de Ignite UI for Angular completo y comience a crear sus propias aplicaciones en minutos. Descárgalo gratis.

    A continuación se muestra un ejemplo que demuestra cómo lograr la funcionalidad anterior utilizando formularios reactivos Angular.

    EXAMPLE
    TS
    HTML
    SCSS

    Primeros pasos con Ignite UI for Angular Stepper

    Para comenzar con el componente Ignite UI for Angular Stepper, primero debe instalar Ignite UI for Angular. En una aplicación Angular existente, escriba el siguiente comando:

    ng add igniteui-angular
    cmd

    Para obtener una introducción completa al Ignite UI for Angular, lea el tema de introducción.

    El siguiente paso es importar IgxStepperModule en su archivo app.module.ts.

    // app.module.ts
    
    ...
    import { IgxStepperModule } from 'igniteui-angular';
    // import { IgxStepperModule } from '@infragistics/igniteui-angular'; for licensed package
    
    @NgModule({
        ...
        imports: [..., IgxStepperModule],
        ...
    })
    export class AppModule {}
    typescript

    Alternativamente, a partir de 16.0.0, puede importar IgxStepperComponent como una dependencia independiente o usar el token IGX_STEPPER_DIRECTIVES para importar el componente y todos sus componentes y directivas de soporte.

    // home.component.ts
    
    import { HammerModule } from '@angular/platform-browser';
    import { FormsModule } from '@angular/forms';
    import { IGX_STEPPER_DIRECTIVES } from 'igniteui-angular';
    // import { IGX_STEPPER_DIRECTIVES } from '@infragistics/igniteui-angular'; for licensed package
    
    @Component({
        selector: 'app-home',
        template: `<igx-stepper>
            <igx-step> 
                <p igxStepTitle>Step 1</p>
            </igx-step>
            <igx-step> 
                <p igxStepTitle>Step 2</p>
            </igx-step>
        </igx-stepper>`,
        styleUrls: ['home.component.scss'],
        standalone: true,
        imports: [IGX_STEPPER_DIRECTIVES, FormsModule, HammerModule]
        /* or imports: [IgxStepperComponent, FormsModule, HammerModule] */
    })
    export class HomeComponent {
        public task: Task;
    }
    typescript

    Ahora que tiene el módulo o las directivas Angular Stepper importados, puede comenzar con una configuración básica de y igx-stepper sus pasos. Ahora que tiene el módulo Angular Stepper o las directivas importadas, puede comenzar con una configuración básica del igx-stepper módulo o sus pasos.

    Uso del Angular paso a paso

    IgxStepComponent es la representación de cada paso que pertenece al IgxStepperComponent. Los pasos proporcionan propiedades isValid, active, opcional, deshabilitado y completado, que le brindan la posibilidad de configurar los estados de los pasos según los requisitos de su negocio.

    Declarar un paso a paso

    Ahora que hemos importado el módulo paso a paso, comencemos con su configuración.

    Los pasos se pueden declarar utilizando uno de los siguientes enfoques.

    • Iterando a través de un conjunto de datos
    <igx-stepper>
        <igx-step *ngFor="let step of stepsData" [disabled]=”step.disabled”>
            <igx-icon igxStepIndicator>
    			{{step.indicator}}
            </igx-icon>
    
            <p igxStepTitle>
    			{{step.title}}
            </p>
        </igx-step>
    </igx-stepper>
    html
    • Creando pasos estáticos
    <igx-stepper>
        <igx-step> 
           <p igxStepTitle>Step 1</p>
        </igx-step>
        <igx-step> 
           <p igxStepTitle>Step 2</p>
        </igx-step>
    </igx-stepper>
    html

    Para cada paso, el usuario tiene la capacidad de configurar el indicador, título, subtítulo y contenido usando las directivas igxStepIndicator, igxStepTitle, igxStepSubtitle e igxStepContent de la siguiente manera:

    <igx-stepper>
        <igx-step>
           <igx-icon igxStepIndicator>home</igx-icon>
           <p igxStepTitle>Home</p>
           <p igxStepSubtitle>Home Sub Title</p>
           <div igxStepContent>
              ...
           </div>
        </igx-step>
    </igx-stepper>
    html

    Cambiar la orientación del paso a paso

    Puede personalizar la orientación del paso a paso a través de la propiedad de orientación expuesta. Se necesita un miembro de la enumeración IgxStepperOrientation: Horizontal ​ ​(valor predeterminado) o Vertical.

    Orientación paso a paso horizontal

    horizontal es el valor predeterminado para el igx-stepper ​ ​orientación propiedad. Cuando el paso a paso está orientado horizontalmente, tiene la oportunidad de determinar si el contenido de los pasos se mostrará encima o debajo de los encabezados de los pasos. Esto podría lograrse estableciendo el Componente IgxStepper ​ ​contenidoarriba propiedad booleana, cuyo valor predeterminado es false. En caso de que esté habilitado, el contenido de los pasos se mostrará encima de los encabezados de los pasos.

    Orientación vertical del paso a paso

    Puede cambiar fácilmente del diseño horizontal al vertical. Para cambiar la orientación predeterminada, debe establecer la propiedad de orientación en vertical.

    <igx-stepper [orientation]="'vertical'">
    	<igx-step></igx-step>
    
    	<igx-step></igx-step>
    </igx-stepper>
    html

    El siguiente ejemplo demuestra cómo se puede cambiar la orientación del paso a paso y la posición de los títulos en tiempo de ejecución.

    EXAMPLE
    TS
    HTML
    SCSS

    Estados de paso

    IgxStepperComponent admite cuatro estados de pasos y cada uno de ellos aplica estilos diferentes de forma predeterminada:

    • activo: determina si el paso es el que se muestra actualmente. Por diseño, si el usuario no establece explícitamente el atributo activo de algún paso en true, el paso activo inicial sería el primer paso no deshabilitado.
    • deshabilitado: determina si se puede interactuar con el paso. De forma predeterminada, el atributo deshabilitado de un paso se establece en false.
    • Opcional: de forma predeterminada, el atributo opcional de un paso se establece en false. Si no se requiere la validez de un paso en el paso a paso lineal, entonces se puede habilitar el atributo opcional para poder avanzar independientemente de la validez del paso.
    • completado: de forma predeterminada, el atributo completado de un paso devuelve false. Sin embargo, el usuario puede anular este comportamiento de finalización predeterminado estableciendo el atributo de finalización según sea necesario. Cuando el paso se marca como completado, no solo se cambia el estilo del encabezado del paso de forma predeterminada, sino también el estilo de la línea de progreso entre el paso completado y el siguiente. Ambos estilos podrían modificarse utilizando las variables CSS expuestas.

    IgxStepperComponent le brinda la oportunidad de configurar la lógica de validación para cada paso a través de la propiedad isValid vinculable bidireccional. En función de su valor, se decide si el usuario tendrá la capacidad de avanzar en el modo paso a paso lineal. De forma predeterminada, la propiedad isValid de un paso se establece en true.

    Paso a paso lineal

    El igx-stepper le brinda la oportunidad de establecer el flujo de sus pasos utilizando la propiedad lineal. De forma predeterminada, lineal se establece en false y el usuario puede seleccionar cualquier paso no deshabilitado en IgxStepperComponent.

    Cuando la propiedad lineal se establece en true, el paso a paso requerirá que el paso no opcional actual sea válido antes de continuar con el siguiente.

    Si el paso no opcional actual no es válido, no podrá avanzar al siguiente paso hasta que valide el actual.

    La validez de los pasos opcionales no se tiene en cuenta para seguir adelante.

    El siguiente ejemplo demuestra cómo configurar un paso a paso lineal:

    EXAMPLE
    TS
    HTML
    SCSS

    Interacciones de paso

    IgxStepperComponent proporciona los siguientes métodos API para interacciones de pasos:

    • navegar a– activa el paso por índice dado.
    • siguiente: activa el siguiente paso no deshabilitado.
    • prev: activa el paso anterior no deshabilitado.
    • restablecer: restablece el paso a paso a su estado inicial.

    El método de reinicio no borrará el contenido del paso. Esto debe hacerse manualmente.

    Personalizando los pasos

    El Ignite UI for Angular Stepper te da la posibilidad de configurar diferentes opciones para títulos, indicadores y mucho más.

    Esto podría lograrse mediante la propiedad stepType de IgxStepperComponent. Se necesita un miembro de la enumeración IgxStepType:

    • Completo (valor predeterminado)
    • Indicador
    • Título

    Lleno

    Si se definen títulos y subtítulos, con esta configuración se representarán tanto los indicadores como los títulos.

    El usuario también tendría la capacidad de definir la posición del título de los pasos, de modo que podría colocarse antes, después, encima o debajo del indicador de paso. El usuario puede configurar la posición del título utilizando la propiedad titlePosition. Ambas propiedades son miembros de la enumeración IgxStepperTitlePosition:

    • fin
    • comenzar
    • abajo
    • arriba

    Cuando el igx-stepper está orientado horizontalmente, el valor predeterminado de la posición del título es bottom.

    Cuando la orientación se establece en diseño vertical, la posición del título por defecto es end.

    La propiedad titlePosition​ ​solo se aplica cuando la propiedad stepType stepper está configurada en full.

    Indicador

    Si desea mostrar solo indicadores para los pasos, configure la opción stepType en indicator.

    El indicador de pasos admite cualquier contenido, pero con la restricción de que su tamaño será siempre de 24 píxeles. Teniendo esto en cuenta, recomendamos utilizar IgxIconComponent o IgxAvatarComponent como indicadores de pasos.

    Título

    Si desea mostrar solo títulos para los pasos, configure la opción stepType en title.

    De esta manera, si se definen subtítulos, también aparecerán debajo del título del paso.

    Este contenedor se puede cambiar de plantilla según sus necesidades sin restricciones de tamaño. Por ejemplo, podría agregar un indicador con un tamaño superior a 24 píxeles en su interior.

    El siguiente ejemplo muestra todos los tipos de pasos expuestos y cómo podrían cambiarse:

    EXAMPLE
    TS
    HTML
    SCSS

    IgxStepperComponent también le permite personalizar los indicadores representados para pasos activos, no válidos y completados. Esto podría lograrse mediante las directivas igxStepActiveIndicator, igxStepInvalidIndicator e igxStepCompletedIndicator:

    <igx-stepper>
        <ng-template igxStepActiveIndicator>
           <igx-icon>edit</igx-icon>
        </ng-template>
    
        <ng-template igxStepInvalidIndicator>
           <igx-icon>error</igx-icon>
        </ng-template>
    
        <ng-template igxStepCompletedIndicator>
           <igx-icon>check</igx-icon>
        </ng-template>
        ...
    </igx-stepper>
    html

    Estas plantillas se aplicarían para todos los pasos con el estado correspondiente.

    Angular Animaciones paso a paso

    Angular animaciones paso a paso brindan a los usuarios finales una hermosa experiencia al interactuar con los pasos definidos. Las opciones de animación disponibles difieren en función de la orientación del paso a paso.

    Cuando el paso a paso está orientado horizontalmente, está configurado para usar la animación slide de forma predeterminada. También admite fade como alternativa. Las animaciones se configuran a través de la entrada horizontalAnimationType.

    En un diseño orientado verticalmente, el tipo de animación se puede definir utilizando la propiedad verticalAnimationType. De forma predeterminada, su valor grow y el usuario también tiene la capacidad de configurarlo para que se fade.

    Establecer none en ambas entradas de tipo de animación deshabilita las animaciones paso a paso.

    IgxStepperComponent le brinda la posibilidad de configurar la duración de la transición entre los pasos. Esto podría lograrse mediante la propiedad AnimationDuration, que toma un número como argumento y es común para ambas orientaciones.

    Navegación por teclado

    Angular Stepper proporciona una amplia variedad de interacciones de teclado para el usuario final. Esta funcionalidad está habilitada de forma predeterminada y permite a los usuarios finales navegar fácilmente por los pasos. La navegación IgxStepperComponent cumple con los estándares de accesibilidad W3 y es cómoda de usar.

    Combinaciones de teclas

    • Tabulador: mueve el foco al siguiente elemento tabulado
    • Shift + Tab: mueve el foco al elemento tabable anterior
    • Flecha hacia abajo: mueve el foco al encabezado del siguiente paso accesible cuando el igx-stepper está orientado verticalmente.
    • Flecha hacia arriba: mueve el foco al encabezado del paso accesible anterior cuando el igx-stepper está orientado verticalmente.
    • Flecha hacia la izquierda: mueve el foco al encabezado del paso accesible anterior en ambas orientaciones.
    • Flecha hacia la derecha: mueve el foco al encabezado del siguiente paso accesible en ambas orientaciones.
    • Inicio: mueve el foco al encabezado del PRIMER paso habilitado en igx-stepper
    • Fin: mueve el foco al encabezado del ÚLTIMO paso habilitado en igx-stepper
    • Intro/Espacio: activa el paso actualmente enfocado

    Por diseño, cuando el usuario presiona la tecla Tab sobre el encabezado del paso, el foco se moverá al contenedor de contenido del paso. En caso de que se deba omitir el contenedor, el desarrollador debe configurar el contenedor de contenido [tabIndex]="-1".

    El componente Stepper también está disponible en el App Builder ™ de low-code, arrastrar y soltar.

    App Builder | CTA Banner

    Angular Estilo paso a paso

    Usando la Ignite UI for Angular Tematización, podemos alterar en gran medida la igx-stepper apariencia.

    Primero, para utilizar las funciones expuestas por el motor de temas, necesitamos importar el archivo index en nuestro archivo de estilo:

    @use "igniteui-angular/theming" as *;
    
    // IMPORTANT: Prior to Ignite UI for Angular version 13 use:
    // @import '~igniteui-angular/lib/core/styles/themes/index';
    scss

    Siguiendo el enfoque más simple, creamos un nuevo tema que extiende el tema paso a paso y pasamos los parámetros que nos gustaría cambiar:

    $custom-stepper-theme: stepper-theme(
      $indicator-background: #fff,
    
      $current-indicator-background: #f6cd28,
      $current-indicator-outline: #351e65,
    
      $current-title-color: #351e65,
      $current-subtitle-color: #5f4691,
    
      $complete-indicator-background: #351e65,
      $complete-indicator-outline: #351e65,
    
      $complete-title-color: red,
      $complete-subtitle-color: #5f4691,
    
      $border-radius-step-header: 16px,
      $border-radius-indicator: 10px 4px 10px 4px,
    
      $step-separator-color: #f6cd28,
      $complete-step-separator-color: #351e65,
    );
    scss

    El último paso es incluir el tema del componente.

    @include css-vars($custom-stepper-theme);
    scss

    Manifestación

    En el ejemplo siguiente se muestra un estilo sencillo aplicado a través de la Ignite UI for Angular Tema.

    EXAMPLE
    TS
    HTML
    SCSS

    Referencia de API

    Recursos adicionales

    Nuestra comunidad es activa y siempre da la bienvenida a nuevas ideas.