UNPKG

ionic-angular

Version:

A powerful framework for building mobile and progressive web apps with JavaScript and Angular 2

174 lines 5.5 kB
(function (factory) { if (typeof module === 'object' && typeof module.exports === 'object') { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === 'function' && define.amd) { define(["require", "exports", '@angular/core', '../../navigation/deep-linker', '../../navigation/nav-controller'], factory); } })(function (require, exports) { "use strict"; var core_1 = require('@angular/core'); var deep_linker_1 = require('../../navigation/deep-linker'); var nav_controller_1 = require('../../navigation/nav-controller'); /** * \@name NavPush * \@description * Directive to declaratively push a new page to the current nav * stack. * * \@usage * ```html * <button ion-button [navPush]="pushPage"></button> * ``` * * To specify parameters you can use array syntax or the `navParams` * property: * * ```html * <button ion-button [navPush]="pushPage" [navParams]="params">Go</button> * ``` * * Where `pushPage` and `params` are specified in your component, * and `pushPage` contains a reference to a * component you would like to push: * * ```ts * import { LoginPage } from './login'; * * \@Component({ * template: `<button ion-button [navPush]="pushPage" [navParams]="params">Go</button>` * }) * class MyPage { * constructor(){ * this.pushPage = LoginPage; * this.params = { id: 42 }; * } * } * ``` * * \@demo /docs/v2/demos/src/navigation/ * @see {\@link /docs/v2/components#navigation Navigation Component Docs} * @see {\@link ../NavPop NavPop API Docs} * */ var NavPush = (function () { /** * @param {?} _nav */ function NavPush(_nav) { this._nav = _nav; if (!_nav) { console.error('navPush must be within a NavController'); } } /** * @return {?} */ NavPush.prototype.onClick = function () { if (this._nav && this.navPush) { this._nav.push(this.navPush, this.navParams).catch(function () { (void 0) /* console.debug */; }); return false; } return true; }; NavPush.decorators = [ { type: core_1.Directive, args: [{ selector: '[navPush]' },] }, ]; /** @nocollapse */ NavPush.ctorParameters = function () { return [ { type: nav_controller_1.NavController, decorators: [{ type: core_1.Optional },] }, ]; }; NavPush.propDecorators = { 'navPush': [{ type: core_1.Input },], 'navParams': [{ type: core_1.Input },], 'onClick': [{ type: core_1.HostListener, args: ['click',] },], }; return NavPush; }()); exports.NavPush = NavPush; function NavPush_tsickle_Closure_declarations() { /** @type {?} */ NavPush.decorators; /** * @nocollapse * @type {?} */ NavPush.ctorParameters; /** @type {?} */ NavPush.propDecorators; /** * \@input {Page} The Page to push onto the Nav. * @type {?} */ NavPush.prototype.navPush; /** * \@input {any} Parameters to pass to the page. * @type {?} */ NavPush.prototype.navParams; /** @type {?} */ NavPush.prototype._nav; } var NavPushAnchor = (function () { /** * @param {?} host * @param {?} linker */ function NavPushAnchor(host, linker) { this.host = host; this.linker = linker; } /** * @return {?} */ NavPushAnchor.prototype.updateHref = function () { if (this.host && this.linker) { this._href = this.linker.createUrl(this.host._nav, this.host.navPush, this.host.navParams) || '#'; } else { this._href = '#'; } }; /** * @return {?} */ NavPushAnchor.prototype.ngAfterContentInit = function () { this.updateHref(); }; NavPushAnchor.decorators = [ { type: core_1.Directive, args: [{ selector: 'a[navPush]', host: { '[attr.href]': '_href' } },] }, ]; /** @nocollapse */ NavPushAnchor.ctorParameters = function () { return [ { type: NavPush, decorators: [{ type: core_1.Host },] }, { type: deep_linker_1.DeepLinker, decorators: [{ type: core_1.Optional },] }, ]; }; return NavPushAnchor; }()); exports.NavPushAnchor = NavPushAnchor; function NavPushAnchor_tsickle_Closure_declarations() { /** @type {?} */ NavPushAnchor.decorators; /** * @nocollapse * @type {?} */ NavPushAnchor.ctorParameters; /** @type {?} */ NavPushAnchor.prototype._href; /** @type {?} */ NavPushAnchor.prototype.host; /** @type {?} */ NavPushAnchor.prototype.linker; } }); //# sourceMappingURL=nav-push.js.map