UNPKG

@y3krulez/angular-archwizard

Version:

The port of angular-archwizard, supporting IVY and thus being compatible with Angular16+

80 lines 8.68 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(changes) { this.wizard.navigation = this.getNavigationMode(); } getNavigationMode() { if (this.awNavigationMode) { return this.awNavigationMode; } return new ConfigurableNavigationMode(this.navigateBackward, this.navigateForward); } } NavigationModeDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NavigationModeDirective, deps: [{ token: i1.WizardComponent }], target: i0.ɵɵFactoryTarget.Directive }); NavigationModeDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.10", type: NavigationModeDirective, selector: "[awNavigationMode]", inputs: { awNavigationMode: "awNavigationMode", navigateBackward: "navigateBackward", navigateForward: "navigateForward" }, usesOnChanges: true, ngImport: i0 }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: NavigationModeDirective, decorators: [{ type: Directive, args: [{ selector: '[awNavigationMode]', }] }], ctorParameters: function () { return [{ type: i1.WizardComponent }]; }, propDecorators: { awNavigationMode: [{ type: Input }], navigateBackward: [{ type: Input }], navigateForward: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1tb2RlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvZGlyZWN0aXZlcy9uYXZpZ2F0aW9uLW1vZGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUEyQixNQUFNLGVBQWUsQ0FBQztBQUd6RSxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSw0Q0FBNEMsQ0FBQzs7O0FBSXRGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBOENHO0FBSUgsTUFBTSxPQUFPLHVCQUF1QjtJQTJCbEMsWUFBb0IsTUFBdUI7UUFBdkIsV0FBTSxHQUFOLE1BQU0sQ0FBaUI7SUFBSSxDQUFDO0lBRXpDLFdBQVcsQ0FBQyxPQUFzQjtRQUN2QyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUNwRCxDQUFDO0lBRU8saUJBQWlCO1FBQ3ZCLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3pCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO1NBQzlCO1FBQ0QsT0FBTyxJQUFJLDBCQUEwQixDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDckYsQ0FBQzs7cUhBdENVLHVCQUF1Qjt5R0FBdkIsdUJBQXVCOzRGQUF2Qix1QkFBdUI7a0JBSG5DLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtpQkFDL0I7c0dBT1EsZ0JBQWdCO3NCQUR0QixLQUFLO2dCQVVDLGdCQUFnQjtzQkFEdEIsS0FBSztnQkFXQyxlQUFlO3NCQURyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIElucHV0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXN9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHtOYXZpZ2F0aW9uTW9kZX0gZnJvbSAnLi4vbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLW1vZGUuaW50ZXJmYWNlJztcclxuaW1wb3J0IHtDb25maWd1cmFibGVOYXZpZ2F0aW9uTW9kZX0gZnJvbSAnLi4vbmF2aWdhdGlvbi9jb25maWd1cmFibGUtbmF2aWdhdGlvbi1tb2RlJztcclxuaW1wb3J0IHtXaXphcmRDb21wb25lbnR9IGZyb20gJy4uL2NvbXBvbmVudHMvd2l6YXJkLmNvbXBvbmVudCc7XHJcblxyXG5cclxuLyoqXHJcbiAqIFRoZSBbW2F3TmF2aWdhdGlvbk1vZGVdXSBkaXJlY3RpdmUgY2FuIGJlIHVzZWQgdG8gY3VzdG9taXplIHdpemFyZCdkIG5hdmlnYXRpb24gbW9kZS5cclxuICpcclxuICogVGhlcmUgYXJlIHNldmVyYWwgdXNhZ2Ugb3B0aW9uczpcclxuICpcclxuICogIyMjIE9wdGlvbiAxLiBDdXN0b21pemUgdGhlIGRlZmF1bHQgbmF2aWdhdGlvbiBtb2RlIHdpdGggW1tuYXZpZ2F0ZUJhY2t3YXJkXV0gYW5kL29yIFtbbmF2aWdhdGVGb3J3YXJkXV0gaW5wdXRzLlxyXG4gKlxyXG4gKiBgYGBodG1sXHJcbiAqIDxhdy13aXphcmQgW2F3TmF2aWdhdGlvbk1vZGVdIG5hdmlnYXRlQmFja3dhcmQ9XCJkZW55XCIgbmF2aWdhdGVGb3J3YXJkPVwiYWxsb3dcIj4uLi48L2F3LXdpemFyZD5cclxuICogYGBgXHJcbiAqXHJcbiAqICMjIyBPcHRpb24gMi4gUGFzcyBpbiBhIGN1c3RvbSBuYXZpZ2F0aW9uIG1vZGVcclxuICpcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBpbXBvcnQgeyBCYXNlTmF2aWdhdGlvbk1vZGUgfSBmcm9tICdhbmd1bGFyLWFyY2h3aXphcmQnXHJcbiAqXHJcbiAqIGNsYXNzIEN1c3RvbU5hdmlnYXRpb25Nb2RlIGV4dGVuZHMgQmFzZU5hdmlnYXRpb25Nb2RlIHtcclxuICpcclxuICogICAvLyAuLi5cclxuICogfVxyXG4gKiBgYGBcclxuICpcclxuICogYGBgdHlwZXNjcmlwdFxyXG4gKiBAQ29tcG9uZW50KHtcclxuICogICAvLyAuLi5cclxuICogfSlcclxuICogY2xhc3MgTXlDb21wb25lbnQge1xyXG4gKlxyXG4gKiAgIG5hdmlnYXRpb25Nb2RlID0gbmV3IEN1c3RvbU5hdmlnYXRpb25Nb2RlKCk7XHJcbiAqIH1cclxuICogYGBgXHJcbiAqXHJcbiAqIGBgYGh0bWxcclxuICogPGF3LXdpemFyZCBbYXdOYXZpZ2F0aW9uTW9kZV09XCJuYXZpZ2F0aW9uTW9kZVwiPi4uLjwvYXctd2l6YXJkPlxyXG4gKiBgYGBcclxuICpcclxuICogIyMjIEFkZGl0aW9uYWwgTm90ZXNcclxuICpcclxuICogLSBTcGVjaWZ5aW5nIGEgY3VzdG9tIG5hdmlnYXRpb24gbW9kZSB0YWtlcyBwcmlvcml0eSBvdmVyIFtbbmF2aWdhdGVCYWNrd2FyZF1dIGFuZCBbW25hdmlnYXRlRm9yd2FyZF1dIGlucHV0c1xyXG4gKlxyXG4gKiAtIE9taXR0aW5nIHRoZSBbW2F3TmF2aWdhdGlvbk1vZGVdXSBkaXJlY3RpdmUgb3IsIGVxdWFsbHksIHNwZWNpZnlpbmcganVzdCBbW2F3TmF2aWdhdGlvbk1vZGVdXSB3aXRob3V0XHJcbiAqICAgYW55IGlucHV0cyBvciBwYXJhbWV0ZXJzIGNhdXNlcyB0aGUgd2l6YXJkIHRvIHVzZSB0aGUgZGVmYXVsdCBcInN0cmljdFwiIG5hdmlnYXRpb24gbW9kZSBlcXVpdmFsZW50IHRvXHJcbiAqXHJcbiAqIGBgYGh0bWxcclxuICogPGF3LXdpemFyZCBbYXdOYXZpZ2F0aW9uTW9kZV0gbmF2aWdhdGVCYWNrd2FyZD1cImRlbnlcIiBuYXZpZ2F0ZUZvcndhcmQ9XCJhbGxvd1wiPi4uLjwvYXctd2l6YXJkPlxyXG4gKiBgYGBgXHJcbiAqL1xyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1thd05hdmlnYXRpb25Nb2RlXScsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBOYXZpZ2F0aW9uTW9kZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcblxyXG4gIC8qKlxyXG4gICAqIEN1c3RvbSBuYXZpZ2F0aW9uIG1vZGUgaW5zdGFuY2UgKG9wdGlvbmFsKS5cclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBhd05hdmlnYXRpb25Nb2RlOiBOYXZpZ2F0aW9uTW9kZXxudWxsO1xyXG5cclxuICAvKipcclxuICAgKiBBIHBhcmFtZXRlciBmb3IgdGhlIGRlZmF1bHQgbmF2aWdhdGlvbiBtb2RlLiAgQ29udHJvbHMgd2hldGhlciB3aXphcmQgc3RlcHMgYmVmb3JlIHRoZSBjdXJyZW50IHN0ZXAgYXJlIG5hdmlnYWJsZTpcclxuICAgKlxyXG4gICAqIC0gYG5hdmlnYXRlQmFja3dhcmQ9XCJkZW55XCJgIC0tIHRoZSBzdGVwcyBhcmUgbm90IG5hdmlnYWJsZVxyXG4gICAqIC0gYG5hdmlnYXRlQmFja3dhcmQ9XCJhbGxvd1wiYCAtLSB0aGUgc3RlcHMgYXJlIG5hdmlnYWJsZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIG5hdmlnYXRlQmFja3dhcmQ6ICdhbGxvdyd8J2RlbnknfG51bGw7XHJcblxyXG4gIC8qKlxyXG4gICAqIEEgcGFyYW1ldGVyIGZvciB0aGUgZGVmYXVsdCBuYXZpZ2F0aW9uIG1vZGUuICBDb250cm9scyB3aGV0aGVyIHdpemFyZCBzdGVwcyBhZnRlciB0aGUgY3VycmVudCBzdGVwIGFyZSBuYXZpZ2FibGU6XHJcbiAgICpcclxuICAgKiAtIGBuYXZpZ2F0ZUZvcndhcmQ9XCJkZW55XCJgIC0tIHRoZSBzdGVwcyBhcmUgbm90IG5hdmlnYWJsZVxyXG4gICAqIC0gYG5hdmlnYXRlRm9yd2FyZD1cImFsbG93XCJgIC0tIHRoZSBzdGVwcyBhcmUgbmF2aWdhYmxlXHJcbiAgICogLSBgbmF2aWdhdGVGb3J3YXJkPVwidmlzaXRlZFwiYCAtLSBhIHN0ZXAgaXMgbmF2aWdhYmxlIGlmZiBpdCB3YXMgYWxyZWFkeSB2aXNpdGVkIGJlZm9yZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIG5hdmlnYXRlRm9yd2FyZDogJ2FsbG93J3wnZGVueSd8J3Zpc2l0ZWQnfG51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgd2l6YXJkOiBXaXphcmRDb21wb25lbnQpIHsgfVxyXG5cclxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgdGhpcy53aXphcmQubmF2aWdhdGlvbiA9IHRoaXMuZ2V0TmF2aWdhdGlvbk1vZGUoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0TmF2aWdhdGlvbk1vZGUoKTogTmF2aWdhdGlvbk1vZGUge1xyXG4gICAgaWYgKHRoaXMuYXdOYXZpZ2F0aW9uTW9kZSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5hd05hdmlnYXRpb25Nb2RlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG5ldyBDb25maWd1cmFibGVOYXZpZ2F0aW9uTW9kZSh0aGlzLm5hdmlnYXRlQmFja3dhcmQsIHRoaXMubmF2aWdhdGVGb3J3YXJkKTtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==