ionic-angular
Version:
A powerful framework for building mobile and progressive web apps with JavaScript and Angular
89 lines • 2.78 kB
JavaScript
import { AlertCmp } from './alert-component';
import { AlertMdPopIn, AlertMdPopOut, AlertPopIn, AlertPopOut, AlertWpPopIn, AlertWpPopOut } from './alert-transitions';
import { isPresent } from '../../util/util';
import { ViewController } from '../../navigation/view-controller';
/**
* @hidden
*/
export class Alert extends ViewController {
constructor(app, opts = {}, config) {
opts.inputs = opts.inputs || [];
opts.buttons = opts.buttons || [];
opts.enableBackdropDismiss = isPresent(opts.enableBackdropDismiss) ? !!opts.enableBackdropDismiss : true;
super(AlertCmp, opts, null);
this._app = app;
this.isOverlay = true;
config.setTransition('alert-pop-in', AlertPopIn);
config.setTransition('alert-pop-out', AlertPopOut);
config.setTransition('alert-md-pop-in', AlertMdPopIn);
config.setTransition('alert-md-pop-out', AlertMdPopOut);
config.setTransition('alert-wp-pop-in', AlertWpPopIn);
config.setTransition('alert-wp-pop-out', AlertWpPopOut);
}
/**
* @hidden
*/
getTransitionName(direction) {
let key = (direction === 'back' ? 'alertLeave' : 'alertEnter');
return this._nav && this._nav.config.get(key);
}
/**
* @param {string} title Alert title
*/
setTitle(title) {
this.data.title = title;
return this;
}
/**
* @param {string} subTitle Alert subtitle
*/
setSubTitle(subTitle) {
this.data.subTitle = subTitle;
return this;
}
/**
* @param {string} message Alert message content
*/
setMessage(message) {
this.data.message = message;
return this;
}
/**
* @param {object} input Alert input
*/
addInput(input) {
this.data.inputs.push(input);
return this;
}
/**
* @param {any} button Alert button
*/
addButton(button) {
this.data.buttons.push(button);
return this;
}
/**
* @param {string} cssClass Set the CSS class names on the alert's outer wrapper.
*/
setCssClass(cssClass) {
this.data.cssClass = cssClass;
return this;
}
/**
* @param {string} mode Set the mode of the alert (ios, md, wp).
*/
setMode(mode) {
this.data.mode = mode;
}
/**
* Present the alert instance.
*
* @param {NavOptions} [navOptions={}] Nav options to go with this transition.
* @returns {Promise} Returns a promise which is resolved when the transition has completed.
*/
present(navOptions = {}) {
navOptions.minClickBlockDuration = navOptions.minClickBlockDuration || 400;
return this._app.present(this, navOptions);
}
}
//# sourceMappingURL=alert.js.map