lTt<ͳgGq<FY	Ϋ4%"rMEoP\|<wL*Zy+ß9ss~+U=\x'<m^7ן>`<c
ZNN@읨 DVǉr[owq:2n'ВpJD``H=Z5
ŶR@EnҖ9nysU*md}V^eW@{m7>N1$7Zݰa`y#SUm~6*[nO	Lqǒ=MQ:3A̡SاKք8g\qva{-.Âc~Q(jQt^ eKs+цL@eJ耖;<+48aO=o[3l9d#`$>#/nIn/ryHF37$BP_Z4x'(v gN7@mؔ^[WJg/pO2rzsy~prFr%|о)C;B5{b%ZvԐ&yY)\(	ĄM>N?E&6
9寫A*a,F%予{/T0fߝZx@YM*]{&V]Yvy|U0kʫN4QRb	(O%Ȳ4lr(=lEp
cF3w}
r%&+ (dzG+<}c"u*D!*O3\G#fU@ӿd_7[|dsr2U҇*{|VbhѯwPۇfȬȸ&auB^&1·t7[|dsr2U҇*{|VbhѯwPۇfp_)oj`'Udj w}:NbU@&OùlhΡc
3V/GlX=>PGXX>j6e1Qi`;ڐp<?Uͥ0{bQ:TuwA	mV&u3|tsO1~KBl[⬟e$G.φzlÙ?B'm|	Djdu"/za7`fʄj|造{i!0?i90zqA7 7Brv}q CP>lw_e9\G92k]BpE r1
>2@Rڗg΋<ʴθC\.^s(`=RJ_es.~SC?SQVN98AoZkOH򬜂1-Kp9ү?ʙ[hL[zB=/'jv*.Dgۿ@C(qD>/n8_2x̷wNPF
<W#6Lb	ń1;$uT=S5UF%Br]Lr)VjiRu"smbݲD+m䫱5ub%S܆*֎p)D%v)bI,x
b|`{or\Iol1ӽϘn6<j퇮qZ	 􌷟TWg.WhI.RTDV]%Q'Sԛ(\ִ{Z 7Es;=3V{P<|p4GVUӱTAsAïda]/g_Ip#c9Ɣ@y$]3e>NsNzEqD\-yȇ˵DB<"/3qO2Y,o<ڨi 6*դN>ѵ:mq6dk*Ԗ= {>ԑFĳ;F: 54`aХ/p[{Ϛ4YUU{P4áҔTAgBKM-Hovk7a8 	(<r	]sqƂi+@pQ1\D7vʞ~~XkSEf}:Hk$h2HVk\Q̳9Jgl@`MN'Y5h0DzFeejBMiWh:GZS۩~ٗ1fуO"K ;dLKTA*)C6sՍ
AK㨳eI?cZC}aVQ*l.MmBPaiPk}Z#ML"pVVDޔ;3ICbsa`4]Ͷ9bMѧ[ɹ#99  1QCu{?̚|ܢg'EieP2~n7k:s;7Yv|"ňk񦡗xvdNJfA34F@\bZDsHX*-8)i6*iGE\dMWL8h&7-pha̛lsۋ=!B3`?ǥ{[ K7GjϊwyX؋uS2Qs_964L>Hı57yYsvބqlrݧR݅/Re;a.Xb<Պ` u@Dd%xsrk~'0:UۥȰE-:$NE5r.4h?iUoH2l{em &q2yׅ7gyV5?w$.Pgj᾵FܛO{=@fհ@zv[9uQIFĂ$A5"-ZxB>cMji]]]ě[mң˸~~SX%PXYIDwQ<!W2,!XK*FGȱgW\'2G-ݑ40năw7lU$x0j>$+WLj.>Ħ2(^ysaA5sЩ$"gӽ0).E@KʯK"hG$udּ^@fͅ^VCE_(t,.D2]b[UF4A_kSLCrl
{^sɈ-vFnQr4-pL a*?g[I#u.j)jF^ke3F%q3s-<,mP&_p+cT5wDk]APZ.x0EKe,$3&BTGGsy^NiQ_Ƣɮt?1;Iak+BV"_H%w/=U:h4 X'fư0}2\J9oFeԂ?7-XZ!aF4d_ٸTJh ^+n`ĻjTTz:~fu
MSڿGGsy^N]ւ*N:Q15cOm1g"`;~DG8
[%[Yͪœ[8D)|؏ 3uzÃgαxkA}SS>5?J#BMˡx " B4%؂`<cYOу%!eHݜh,@eޢ\c4m R
'|(ހXrz|AR<vKGx Ŝ*/	
&V<oKmTAۃaZ:G,_
yz-CsaD).ɲXu2jaíkne(ljݍ/)g|XA[S6sis shown/hidden/clicked
toastr.options.onShown = function() { console.log('hello'); }
toastr.options.onHidden = function() { console.log('goodbye'); }
toastr.options.onclick = function() { console.log('clicked'); }
toastr.options.onCloseClick = function() { console.log('close button clicked'); }
```

### Animation Options
Toastr will supply default animations, so you do not have to provide any of these settings. However you have the option to override the animations if you like.

#### Easings
Optionally override the animation easing to show or hide the toasts. Default is swing. swing and linear are built into jQuery.
```js
toastr.options.showEasing = 'swing';
toastr.options.hideEasing = 'linear';
toastr.options.closeEasing = 'linear';
```

Using the jQuery Easing plugin (http://www.gsgd.co.uk/sandbox/jquery/easing/)
```js
toastr.options.showEasing = 'easeOutBounce';
toastr.options.hideEasing = 'easeInBack';
toastr.options.closeEasing = 'easeInBack';
```

#### Animation Method
Use the jQuery show/hide method of your choice. These default to fadeIn/fadeOut. The methods fadeIn/fadeOut, slideDown/slideUp, and show/hide are built into jQuery.
```js
toastr.options.showMethod = 'slideDown';
toastr.options.hideMethod = 'slideUp';
toastr.options.closeMethod = 'slideUp';
```

### Prevent Duplicates
Rather than having identical toasts stack, set the preventDuplicates property to true. Duplicates are matched to the previous toast based on their message content.
```js
toastr.options.preventDuplicates = true;
```

### Timeouts
Control how toastr interacts with users by setting timeouts appropriately.
```js
toastr.options.timeOut = 30; // How long the toast will display without user interaction
toastr.options.extendedTimeOut = 60; // How long the toast will display after a user hovers over it
```

### Prevent from Auto Hiding
To prevent toastr from closing based on the timeouts, set the `timeOut` and `extendedTimeOut` options to `0`. The toastr will persist until selected.

```js
toastr.options.timeOut = 0;
toastr.options.extendedTimeOut = 0;
```

### Progress Bar
Visually indicate how long before a toast expires.
```js
toastr.options.progressBar = true;
```

### rtl
Flip the toastr to be displayed properly for right-to-left languages.
```js
toastr.options.rtl = true;
```

## Building Toastr

To build the minified and css versions of Toastr you will need [node](http://nodejs.org) installed. (Use Homebrew or Chocolatey.)

```
npm install -g gulp karma-cli
npm install
```

At this point the dependencies have been installed and you can build Toastr

- Run the analytics `gulp analyze`
- Run the test `gulp test`
- Run the build `gulp`

## Contributing

For a pull request to be considered it must resolve a bug, or add a feature which is beneficial to a large audience.

Pull requests must pass existing unit tests, CI processes, and add additional tests to indicate successful operation of a new feature, or the resolution of an identified bug.

Requests must be made against the `develop` branch. Pull requests submitted against the `master` branch will not be considered.

All pull requests are subject to approval by the repository owners, who have sole discretion over acceptance or denial.

## Authors
**John Papa**

+ [http://twitter.com/John_Papa](http://twitter.com/John_Papa)

**Tim Ferrell**

+ [http://twitter.com/ferrell_tim](http://twitter.com/ferrell_tim)

**Hans Fjällemark**

+ [http://twitter.com/hfjallemark](http://twitter.com/hfjallemark)

## Credits
Inspired by https://github.com/Srirangan/notifer.js/.

## Copyright
Copyright © 2012-2015

## License
toastr is under MIT license - http://www.opensource.org/licenses/mit-license.php
