JSPM

ng-wizard3

2.0.0
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 10
  • Score
    100M100P100Q50250F

Package Exports

    This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (ng-wizard3) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

    Readme

    ng-wizard

    ng-wizard is a stepper / wizard component that you can use in your Angular applications. You can access the sample demo project by clicking here.

    Screenshots

    Default

    Arrows

    Circles

    Dots

    Dependencies

    Getting started

    Install ng-wizard through npm:

    $ npm install --save ng-wizard

    Include bootstrap CSS file (skip if already imported):

    @import '~bootstrap/dist/css/bootstrap.min.css';

    Include ng-wizard CSS files:

    /* Mandatory */
    @import '~ng-wizard/themes/ng_wizard.min.css';
    
    /* Optional */
    /* If a theme other than default is used, the css file for that theme is required. */
    @import '~ng-wizard/themes/ng_wizard_theme_arrows.min.css';
    @import '~ng-wizard/themes/ng_wizard_theme_circles.min.css';
    @import '~ng-wizard/themes/ng_wizard_theme_dots.min.css';

    Import the ng-wizard module into your apps module:

    import { NgModule } from '@angular/core';
    
    import { NgWizardModule, NgWizardConfig, THEME } from 'ng-wizard';
    
    const ngWizardConfig: NgWizardConfig = {
      theme: THEME.default
    };
    
    @NgModule({
      imports: [
        NgWizardModule.forRoot(ngWizardConfig)
      ]
    })
    export class AppModule { }

    Add an ng-wizard component to the html template of your component:

    <ng-wizard [config]="config" (stepChanged)="stepChanged($event)">
      
      <ng-wizard-step [title]="'Step 1'" [description]="'Step 1 description'"
        [canEnter]="isValidTypeBoolean" [canExit]="isValidFunctionReturnsBoolean.bind(this)">
        <span>Step 1 content</span>
      </ng-wizard-step>
      
      <ng-wizard-step [title]="'Step 2'" [description]="'Step 2 description'" [state]="stepStates.disabled">
        <span>Step 2 content</span>
      </ng-wizard-step>
      
      <ng-wizard-step [title]="'Step 3'" [description]="'Step 3 description'"
        [canEnter]="isValidFunctionReturnsObservable.bind(this)" [canExit]="isValidFunctionReturnsBoolean.bind(this)">
        <span>Step 3 content</span>
      </ng-wizard-step>
    
    <ng-wizard-step [title]="'Step 4'" [description]="'Step 4 description'">
        <span>Step 4 content</span>
      </ng-wizard-step>
    
      <ng-wizard-step [title]="'Step 5'" [description]="'Step 5 description'" [state]="stepStates.hidden">
        <span>Step 5 content</span>
      </ng-wizard-step>
      
      <ng-wizard-step [title]="'Step 6'" [description]="'Step 6 description'" [state]="stepStates.error">
        <span>Step 6 content</span>
      </ng-wizard-step>
      
      <ng-wizard-step [title]="'Step 7'" [description]="'Step 7 description'">
        <span>Step 7 content</span>
      </ng-wizard-step>
    </ng-wizard>

    [config] is an optional parameter for ng-wizard component.

    If you want to override ng-wizard default configuration defined in apps module for a specific component, define [config] parameter in your ***.component.ts file.

    import { Component, OnInit } from '@angular/core';
    import { of } from 'rxjs';
    import { NgWizardConfig, NgWizardService, StepChangedArgs, StepValidationArgs, STEP_STATE, THEME } from 'ng-wizard';
    
    @Component({
      templateUrl: 'app.component.html'
    })
    export class AppComponent implements OnInit {
      stepStates = {
        normal: STEP_STATE.normal,
        disabled: STEP_STATE.disabled,
        error: STEP_STATE.error,
        hidden: STEP_STATE.hidden
      };
    
      config: NgWizardConfig = {
        selected: 0,
        theme: THEME.arrows,
        toolbarSettings: {
          toolbarExtraButtons: [
            { text: 'Finish', class: 'btn btn-info', event: () => { alert("Finished!!!"); } }
          ],
        }
      };
    
      constructor(private ngWizardService: NgWizardService) {
      }
    
      ngOnInit() {
      }
    
      showPreviousStep(event?: Event) {
        this.ngWizardService.previous();
      }
    
      showNextStep(event?: Event) {
        this.ngWizardService.next();
      }
    
      resetWizard(event?: Event) {
        this.ngWizardService.reset();
      }
    
      setTheme(theme: THEME) {
        this.ngWizardService.theme(theme);
      }
    
      stepChanged(args: StepChangedArgs) {
        console.log(args.step);
      }
    
      isValidTypeBoolean: boolean = true;
    
      isValidFunctionReturnsBoolean(args: StepValidationArgs) {
        return true;
      }
    
      isValidFunctionReturnsObservable(args: StepValidationArgs) {
        return of(true);
      }
    }
    

    Configuration

    NgWizardStep parameters:

    Input parameters:

    Name Type Default Value Description
    title string Step title
    description string Step description
    state STEP_STATE STEP_STATE.normal Step State (normal, disabled, error, hidden)
    component Component A component can be defined for step content.
    canExit `boolean ((args: StepValidationArgs) => boolean) ((args: StepValidationArgs) => Observable)`
    canEnter `boolean ((args: StepValidationArgs) => boolean) ((args: StepValidationArgs) => Observable)`

    Output parameters:

    Name Type Default Value Description
    index number Step Index
    status STEP_STATUS Step Status (untouched, done, active)
    initialStatus STEP_STATUS Initial Step Status (untouched, done, active)
    initialState STEP_STATE Step State (normal, disabled, error, hidden)
    componentRef ComponentRef If the component input parameter is given, it is used to access the instance of this component.

    NgWizardConfig properties:

    Name Type Default Value Description
    selected number 0 Initial selected step
    keyNavigation boolean true Enable/Disable keyboard navigation (left and right keys are used if enabled)
    cycleSteps boolean false Allows to cycle the navigation of steps
    lang { next: string, previous: string } { next: 'Next', previous: 'Previous' } Language variables for buttons
    toolbarSettings ToolbarSettings { toolbarPosition: TOOLBAR_POSITION.bottom, toolbarButtonPosition: TOOLBAR_BUTTON_POSITION.end, showNextButton: true, showPreviousButton: true, toolbarExtraButtons: [] } Toolbar settings
    anchorSettings AnchorSettings { anchorClickable: true, enableAllAnchors: false, markDoneStep: true, markAllPreviousStepsAsDone: true, removeDoneStepOnNavigateBack: false, enableAnchorOnDoneStep: true } Anchor settings
    theme THEME THEME.default Wizard theme (default, arrows, circles, dots)

    ToolbarSettings properties:

    Name Type Default Value Description
    toolbarPosition TOOLBAR_POSITION TOOLBAR_POSITION.bottom Toolbar position (none, top, bottom, both)
    toolbarButtonPosition TOOLBAR_BUTTON_POSITION TOOLBAR_BUTTON_POSITION.end Toolbar button position (start, end)
    showNextButton boolean true show/hide Next button
    showPreviousButton boolean true show/hide Previous button
    toolbarExtraButtons ToolbarButton[] [] Extra buttons to show on toolbar, array of input/buttons elements

    AnchorSettings properties:

    Name Type Default Value Description
    anchorClickable boolean true Enable/Disable anchor navigation
    enableAllAnchors boolean false Activates all anchors clickable all times
    markDoneStep boolean true Add done css
    markAllPreviousStepsAsDone boolean true When a step selected, all previous steps are marked done
    removeDoneStepOnNavigateBack boolean false While navigate back done step after active step will be cleared
    enableAnchorOnDoneStep boolean[] true Enable/Disable the done steps navigation

    Thanks

    This component was created by rewriting the jQuery Smart Wizard 4 in Angular. Thanks to TechLaboratory for .Css files.

    License

    MIT License