@rg-software/angular-archwizard
Version:
A fork of the Angular Arch Wizard adapted for angular versions 17+.
80 lines • 8.24 kB
JavaScript
import { Directive, Input } from '@angular/core';
import { ConfigurableNavigationMode } from '../navigation/configurable-navigation-mode';
import * as i0 from "@angular/core";
import * as i1 from "../components/wizard.component";
/**
* The [[awNavigationMode]] directive can be used to customize wizard'd navigation mode.
*
* There are several usage options:
*
* ### Option 1. Customize the default navigation mode with [[navigateBackward]] and/or [[navigateForward]] inputs.
*
* ```html
* <aw-wizard [awNavigationMode] navigateBackward="deny" navigateForward="allow">...</aw-wizard>
* ```
*
* ### Option 2. Pass in a custom navigation mode
*
* ```typescript
* import { BaseNavigationMode } from 'angular-archwizard'
*
* class CustomNavigationMode extends BaseNavigationMode {
*
* // ...
* }
* ```
*
* ```typescript
* @Component({
* // ...
* })
* class MyComponent {
*
* navigationMode = new CustomNavigationMode();
* }
* ```
*
* ```html
* <aw-wizard [awNavigationMode]="navigationMode">...</aw-wizard>
* ```
*
* ### Additional Notes
*
* - Specifying a custom navigation mode takes priority over [[navigateBackward]] and [[navigateForward]] inputs
*
* - Omitting the [[awNavigationMode]] directive or, equally, specifying just [[awNavigationMode]] without
* any inputs or parameters causes the wizard to use the default "strict" navigation mode equivalent to
*
* ```html
* <aw-wizard [awNavigationMode] navigateBackward="deny" navigateForward="allow">...</aw-wizard>
* ````
*/
export class NavigationModeDirective {
constructor(wizard) {
this.wizard = wizard;
}
ngOnChanges() {
this.wizard.navigation = this.getNavigationMode();
}
getNavigationMode() {
if (this.awNavigationMode) {
return this.awNavigationMode;
}
return new ConfigurableNavigationMode(this.navigateBackward, this.navigateForward);
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: NavigationModeDirective, deps: [{ token: i1.WizardComponent }], target: i0.ɵɵFactoryTarget.Directive }); }
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.0", type: NavigationModeDirective, selector: "[awNavigationMode]", inputs: { awNavigationMode: "awNavigationMode", navigateBackward: "navigateBackward", navigateForward: "navigateForward" }, usesOnChanges: true, ngImport: i0 }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: NavigationModeDirective, decorators: [{
type: Directive,
args: [{
selector: '[awNavigationMode]',
}]
}], ctorParameters: () => [{ type: i1.WizardComponent }], propDecorators: { awNavigationMode: [{
type: Input
}], navigateBackward: [{
type: Input
}], navigateForward: [{
type: Input
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1tb2RlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZGlyZWN0aXZlcy9uYXZpZ2F0aW9uLW1vZGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBRzFELE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLDRDQUE0QyxDQUFDOzs7QUFJdEY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E4Q0c7QUFJSCxNQUFNLE9BQU8sdUJBQXVCO0lBMkJsQyxZQUFvQixNQUF1QjtRQUF2QixXQUFNLEdBQU4sTUFBTSxDQUFpQjtJQUFJLENBQUM7SUFFekMsV0FBVztRQUNoQixJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUNwRCxDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3pCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO1NBQzlCO1FBQ0QsT0FBTyxJQUFJLDBCQUEwQixDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDckYsQ0FBQzs4R0F0Q1UsdUJBQXVCO2tHQUF2Qix1QkFBdUI7OzJGQUF2Qix1QkFBdUI7a0JBSG5DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtpQkFDL0I7b0ZBT1EsZ0JBQWdCO3NCQUR0QixLQUFLO2dCQVVDLGdCQUFnQjtzQkFEdEIsS0FBSztnQkFXQyxlQUFlO3NCQURyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIElucHV0LCBPbkNoYW5nZXN9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge05hdmlnYXRpb25Nb2RlfSBmcm9tICcuLi9uYXZpZ2F0aW9uL25hdmlnYXRpb24tbW9kZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHtDb25maWd1cmFibGVOYXZpZ2F0aW9uTW9kZX0gZnJvbSAnLi4vbmF2aWdhdGlvbi9jb25maWd1cmFibGUtbmF2aWdhdGlvbi1tb2RlJztcbmltcG9ydCB7V2l6YXJkQ29tcG9uZW50fSBmcm9tICcuLi9jb21wb25lbnRzL3dpemFyZC5jb21wb25lbnQnO1xuXG5cbi8qKlxuICogVGhlIFtbYXdOYXZpZ2F0aW9uTW9kZV1dIGRpcmVjdGl2ZSBjYW4gYmUgdXNlZCB0byBjdXN0b21pemUgd2l6YXJkJ2QgbmF2aWdhdGlvbiBtb2RlLlxuICpcbiAqIFRoZXJlIGFyZSBzZXZlcmFsIHVzYWdlIG9wdGlvbnM6XG4gKlxuICogIyMjIE9wdGlvbiAxLiBDdXN0b21pemUgdGhlIGRlZmF1bHQgbmF2aWdhdGlvbiBtb2RlIHdpdGggW1tuYXZpZ2F0ZUJhY2t3YXJkXV0gYW5kL29yIFtbbmF2aWdhdGVGb3J3YXJkXV0gaW5wdXRzLlxuICpcbiAqIGBgYGh0bWxcbiAqIDxhdy13aXphcmQgW2F3TmF2aWdhdGlvbk1vZGVdIG5hdmlnYXRlQmFja3dhcmQ9XCJkZW55XCIgbmF2aWdhdGVGb3J3YXJkPVwiYWxsb3dcIj4uLi48L2F3LXdpemFyZD5cbiAqIGBgYFxuICpcbiAqICMjIyBPcHRpb24gMi4gUGFzcyBpbiBhIGN1c3RvbSBuYXZpZ2F0aW9uIG1vZGVcbiAqXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBpbXBvcnQgeyBCYXNlTmF2aWdhdGlvbk1vZGUgfSBmcm9tICdhbmd1bGFyLWFyY2h3aXphcmQnXG4gKlxuICogY2xhc3MgQ3VzdG9tTmF2aWdhdGlvbk1vZGUgZXh0ZW5kcyBCYXNlTmF2aWdhdGlvbk1vZGUge1xuICpcbiAqICAgLy8gLi4uXG4gKiB9XG4gKiBgYGBcbiAqXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiBAQ29tcG9uZW50KHtcbiAqICAgLy8gLi4uXG4gKiB9KVxuICogY2xhc3MgTXlDb21wb25lbnQge1xuICpcbiAqICAgbmF2aWdhdGlvbk1vZGUgPSBuZXcgQ3VzdG9tTmF2aWdhdGlvbk1vZGUoKTtcbiAqIH1cbiAqIGBgYFxuICpcbiAqIGBgYGh0bWxcbiAqIDxhdy13aXphcmQgW2F3TmF2aWdhdGlvbk1vZGVdPVwibmF2aWdhdGlvbk1vZGVcIj4uLi48L2F3LXdpemFyZD5cbiAqIGBgYFxuICpcbiAqICMjIyBBZGRpdGlvbmFsIE5vdGVzXG4gKlxuICogLSBTcGVjaWZ5aW5nIGEgY3VzdG9tIG5hdmlnYXRpb24gbW9kZSB0YWtlcyBwcmlvcml0eSBvdmVyIFtbbmF2aWdhdGVCYWNrd2FyZF1dIGFuZCBbW25hdmlnYXRlRm9yd2FyZF1dIGlucHV0c1xuICpcbiAqIC0gT21pdHRpbmcgdGhlIFtbYXdOYXZpZ2F0aW9uTW9kZV1dIGRpcmVjdGl2ZSBvciwgZXF1YWxseSwgc3BlY2lmeWluZyBqdXN0IFtbYXdOYXZpZ2F0aW9uTW9kZV1dIHdpdGhvdXRcbiAqICAgYW55IGlucHV0cyBvciBwYXJhbWV0ZXJzIGNhdXNlcyB0aGUgd2l6YXJkIHRvIHVzZSB0aGUgZGVmYXVsdCBcInN0cmljdFwiIG5hdmlnYXRpb24gbW9kZSBlcXVpdmFsZW50IHRvXG4gKlxuICogYGBgaHRtbFxuICogPGF3LXdpemFyZCBbYXdOYXZpZ2F0aW9uTW9kZV0gbmF2aWdhdGVCYWNrd2FyZD1cImRlbnlcIiBuYXZpZ2F0ZUZvcndhcmQ9XCJhbGxvd1wiPi4uLjwvYXctd2l6YXJkPlxuICogYGBgYFxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYXdOYXZpZ2F0aW9uTW9kZV0nLFxufSlcbmV4cG9ydCBjbGFzcyBOYXZpZ2F0aW9uTW9kZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG5cbiAgLyoqXG4gICAqIEN1c3RvbSBuYXZpZ2F0aW9uIG1vZGUgaW5zdGFuY2UgKG9wdGlvbmFsKS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBhd05hdmlnYXRpb25Nb2RlOiBOYXZpZ2F0aW9uTW9kZXxudWxsO1xuXG4gIC8qKlxuICAgKiBBIHBhcmFtZXRlciBmb3IgdGhlIGRlZmF1bHQgbmF2aWdhdGlvbiBtb2RlLiAgQ29udHJvbHMgd2hldGhlciB3aXphcmQgc3RlcHMgYmVmb3JlIHRoZSBjdXJyZW50IHN0ZXAgYXJlIG5hdmlnYWJsZTpcbiAgICpcbiAgICogLSBgbmF2aWdhdGVCYWNrd2FyZD1cImRlbnlcImAgLS0gdGhlIHN0ZXBzIGFyZSBub3QgbmF2aWdhYmxlXG4gICAqIC0gYG5hdmlnYXRlQmFja3dhcmQ9XCJhbGxvd1wiYCAtLSB0aGUgc3RlcHMgYXJlIG5hdmlnYWJsZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIG5hdmlnYXRlQmFja3dhcmQ6ICdhbGxvdyd8J2RlbnknfG51bGw7XG5cbiAgLyoqXG4gICAqIEEgcGFyYW1ldGVyIGZvciB0aGUgZGVmYXVsdCBuYXZpZ2F0aW9uIG1vZGUuICBDb250cm9scyB3aGV0aGVyIHdpemFyZCBzdGVwcyBhZnRlciB0aGUgY3VycmVudCBzdGVwIGFyZSBuYXZpZ2FibGU6XG4gICAqXG4gICAqIC0gYG5hdmlnYXRlRm9yd2FyZD1cImRlbnlcImAgLS0gdGhlIHN0ZXBzIGFyZSBub3QgbmF2aWdhYmxlXG4gICAqIC0gYG5hdmlnYXRlRm9yd2FyZD1cImFsbG93XCJgIC0tIHRoZSBzdGVwcyBhcmUgbmF2aWdhYmxlXG4gICAqIC0gYG5hdmlnYXRlRm9yd2FyZD1cInZpc2l0ZWRcImAgLS0gYSBzdGVwIGlzIG5hdmlnYWJsZSBpZmYgaXQgd2FzIGFscmVhZHkgdmlzaXRlZCBiZWZvcmVcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBuYXZpZ2F0ZUZvcndhcmQ6ICdhbGxvdyd8J2RlbnknfCd2aXNpdGVkJ3xudWxsO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgd2l6YXJkOiBXaXphcmRDb21wb25lbnQpIHsgfVxuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLndpemFyZC5uYXZpZ2F0aW9uID0gdGhpcy5nZXROYXZpZ2F0aW9uTW9kZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXROYXZpZ2F0aW9uTW9kZSgpOiBOYXZpZ2F0aW9uTW9kZSB7XG4gICAgaWYgKHRoaXMuYXdOYXZpZ2F0aW9uTW9kZSkge1xuICAgICAgcmV0dXJuIHRoaXMuYXdOYXZpZ2F0aW9uTW9kZTtcbiAgICB9XG4gICAgcmV0dXJuIG5ldyBDb25maWd1cmFibGVOYXZpZ2F0aW9uTW9kZSh0aGlzLm5hdmlnYXRlQmFja3dhcmQsIHRoaXMubmF2aWdhdGVGb3J3YXJkKTtcbiAgfVxuXG59XG4iXX0=