UNPKG

@rg-software/angular-archwizard

Version:
80 lines 8.24 kB
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=