Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | 1x 2x 2x 2x 1x 1x | import DefineMap from 'can-define/map/map';
import DefineList from 'can-define/list/list';
import Toast from '../sp-toast/ViewModel';
export const ToastList = DefineList.extend('ToastList', {
'#': Toast
});
/**
* A `<sp-toast-container />` component's ViewModel
* @class sp-toast-container.ViewModel ViewModel
* @memberof sp-toast-container
*/
export default DefineMap.extend('ToastContainer', {
/** @lends sp-toast-container.ViewModel.prototype */
/**
* An array of alert toasts
* @type {Array<sp-toast.ViewModel>}
* @memberof sp-toast-container.ViewModel.prototype
*/
toasts: {
Type: ToastList,
Default: ToastList
},
/**
* adds a new toast
* @param {sp-toast.ViewModel} toastProps the toast options or toast object to add
*/
addToast (toastProps) {
this.toasts.push(toastProps);
const newToast = this.toasts[this.toasts.length - 1];
newToast.on('hide', (event, toastItem) => {
this.removeToast(toastItem);
});
},
/**
* Removes a toast
* @param {sp-toast.ViewModel} toast the toast object to remove
*/
removeToast: function (toast) {
var index = this.toasts.indexOf(toast);
this.toasts.splice(index, 1);
}
});
|