UNPKG

ionic-angular

Version:

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

132 lines 4.23 kB
import { Component, ElementRef, Renderer } from '@angular/core'; import { Config } from '../../config/config'; import { NavParams } from '../../navigation/nav-params'; import { ViewController } from '../../navigation/view-controller'; export class ToastCmp { /** * @param {?} _viewCtrl * @param {?} _config * @param {?} _elementRef * @param {?} params * @param {?} renderer */ constructor(_viewCtrl, _config, _elementRef, params, renderer) { this._viewCtrl = _viewCtrl; this._config = _config; this._elementRef = _elementRef; this.dismissTimeout = undefined; renderer.setElementClass(_elementRef.nativeElement, `toast-${_config.get('mode')}`, true); this.d = params.data; if (this.d.cssClass) { this.d.cssClass.split(' ').forEach(cssClass => { // Make sure the class isn't whitespace, otherwise it throws exceptions if (cssClass.trim() !== '') renderer.setElementClass(_elementRef.nativeElement, cssClass, true); }); } this.id = (++toastIds); if (this.d.message) { this.hdrId = 'toast-hdr-' + this.id; } } /** * @return {?} */ ngAfterViewInit() { // if there's a `duration` set, automatically dismiss. if (this.d.duration) { this.dismissTimeout = ((setTimeout(() => { this.dismiss('backdrop'); }, this.d.duration))); } this.enabled = true; } /** * @return {?} */ ionViewDidEnter() { const { activeElement } = document; if (activeElement) { activeElement.blur(); } let /** @type {?} */ focusableEle = this._elementRef.nativeElement.querySelector('button'); if (focusableEle) { focusableEle.focus(); } } /** * @return {?} */ cbClick() { if (this.enabled) { this.dismiss('close'); } } /** * @param {?} role * @return {?} */ dismiss(role) { clearTimeout(this.dismissTimeout); this.dismissTimeout = undefined; return this._viewCtrl.dismiss(null, role, { disableApp: false }); } } ToastCmp.decorators = [ { type: Component, args: [{ selector: 'ion-toast', template: '<div class="toast-wrapper" ' + '[class.toast-bottom]="d.position === \'bottom\'" ' + '[class.toast-middle]="d.position === \'middle\'" ' + '[class.toast-top]="d.position === \'top\'"> ' + '<div class="toast-container"> ' + '<div class="toast-message" id="{{hdrId}}" *ngIf="d.message">{{d.message}}</div> ' + '<button ion-button clear class="toast-button" *ngIf="d.showCloseButton" (click)="cbClick()"> ' + '{{ d.closeButtonText || \'Close\' }} ' + '</button> ' + '</div> ' + '</div>', host: { 'role': 'dialog', '[attr.aria-labelledby]': 'hdrId', '[attr.aria-describedby]': 'descId', }, },] }, ]; /** @nocollapse */ ToastCmp.ctorParameters = () => [ { type: ViewController, }, { type: Config, }, { type: ElementRef, }, { type: NavParams, }, { type: Renderer, }, ]; function ToastCmp_tsickle_Closure_declarations() { /** @type {?} */ ToastCmp.decorators; /** * @nocollapse * @type {?} */ ToastCmp.ctorParameters; /** @type {?} */ ToastCmp.prototype.d; /** @type {?} */ ToastCmp.prototype.descId; /** @type {?} */ ToastCmp.prototype.dismissTimeout; /** @type {?} */ ToastCmp.prototype.enabled; /** @type {?} */ ToastCmp.prototype.hdrId; /** @type {?} */ ToastCmp.prototype.id; /** @type {?} */ ToastCmp.prototype._viewCtrl; /** @type {?} */ ToastCmp.prototype._config; /** @type {?} */ ToastCmp.prototype._elementRef; } let /** @type {?} */ toastIds = -1; //# sourceMappingURL=toast-component.js.map