nodejs with express server, leapmotion for movement control, and threejs for 3d render

This commit is contained in:
idoctnef
2016-05-30 18:14:08 +02:00
parent e2aeac1bae
commit 52b63ee33a
893 changed files with 127726 additions and 0 deletions

15
node_modules/toastr-master/.gitattributes generated vendored Normal file
View File

@@ -0,0 +1,15 @@
# Set default behaviour, in case users don't have core.autocrlf set.
* text=auto
# Explicitly declare text files we want to always be normalized and converted
# to native line endings on checkout.
*.c text
*.h text
# Declare files that will always have CRLF line endings on checkout.
*.sln text eol=crlf
*.csproj text eol=crlf
# Denote all files that are truly binary and should not be modified.
*.png binary
*.jpg binary

58
node_modules/toastr-master/.gitignore generated vendored Normal file
View File

@@ -0,0 +1,58 @@
node_modules
bower_components
# Ignore Visual Studio Project #
###################
*.config
*.user
*.csproj
*.gpState
*.sln
*.suo
/bin
/obj
/packages
/Properties
/Scripts
/report
/tests/coverage
# Compiled source #
###################
*.com
*.class
*.dll
*.exe
*.o
*.so
# Packages #
############
# it's better to unpack these files and commit the raw source
# git has its own built in compression methods
*.7z
*.dmg
*.gz
*.iso
*.jar
*.rar
*.tar
*.zip
# Logs and databases #
######################
*.log
*.sql
*.sqlite
# OS generated files #
######################
.DS_Store*
ehthumbs.db
Icon?
Thumbs.db
# WebStorm #
######################
.idea/

90
node_modules/toastr-master/.jscsrc generated vendored Normal file
View File

@@ -0,0 +1,90 @@
{
"excludeFiles": ["node_modules/**", "bower_components/**"],
"requireCurlyBraces": [
"if",
"else",
"for",
"while",
"do",
"try",
"catch"
],
"requireOperatorBeforeLineBreak": true,
"requireCamelCaseOrUpperCaseIdentifiers": true,
"maximumLineLength": {
"value": 80,
"allowComments": true,
"allowRegex": true
},
"validateIndentation": 2,
"validateQuoteMarks": "'",
"disallowMultipleLineStrings": true,
"disallowMixedSpacesAndTabs": true,
"disallowTrailingWhitespace": true,
"disallowSpaceAfterPrefixUnaryOperators": true,
"disallowMultipleVarDecl": null,
"requireSpaceAfterKeywords": [
"if",
"else",
"for",
"while",
"do",
"switch",
"return",
"try",
"catch"
],
"requireSpaceBeforeBinaryOperators": [
"=", "+=", "-=", "*=", "/=", "%=", "<<=", ">>=", ">>>=",
"&=", "|=", "^=", "+=",
"+", "-", "*", "/", "%", "<<", ">>", ">>>", "&",
"|", "^", "&&", "||", "===", "==", ">=",
"<=", "<", ">", "!=", "!=="
],
"requireSpaceAfterBinaryOperators": true,
"requireSpacesInConditionalExpression": true,
"requireSpaceBeforeBlockStatements": true,
"requireLineFeedAtFileEnd": true,
"disallowSpacesInsideObjectBrackets": "all",
"disallowSpacesInsideArrayBrackets": "all",
"disallowSpacesInsideParentheses": true,
"validateJSDoc": {
"checkParamNames": true,
"requireParamTypes": true
},
"disallowMultipleLineBreaks": true,
"requireLineFeedAtFileEnd": null,
"disallowCommaBeforeLineBreak": null,
"disallowDanglingUnderscores": null,
"disallowEmptyBlocks": null,
"disallowMixedSpacesAndTabs": null,
"disallowMultipleLineStrings": null,
"disallowTrailingComma": null,
"disallowTrailingWhitespace": null,
"maximumLineLength": null,
"requireCamelCaseOrUpperCaseIdentifiers": null,
"requireCapitalizedConstructors": null,
"requireCommaBeforeLineBreak": null,
"requireCurlyBraces": null,
"requireDotNotation": null,
"requireMultipleVarDecl": null,
"requireOperatorBeforeLineBreak": null,
"requireParenthesesAroundIIFE": true,
"validateIndentation": 4,
"validateQuoteMarks": null
}

63
node_modules/toastr-master/.jshintrc generated vendored Normal file
View File

@@ -0,0 +1,63 @@
{
"bitwise": true,
"camelcase": true,
"curly": true,
"eqeqeq": true,
"es3": false,
"forin": true,
"freeze": true,
"immed": true,
"indent": 4,
"latedef": "nofunc",
"newcap": true,
"noarg": true,
"noempty": true,
"nonbsp": true,
"nonew": true,
"plusplus": false,
"quotmark": "single",
"undef": true,
"unused": false,
"strict": false,
"maxparams": 10,
"maxdepth": 5,
"maxstatements": 40,
"maxcomplexity": 8,
"maxlen": 120,
"asi": false,
"boss": false,
"debug": false,
"eqnull": true,
"esnext": false,
"evil": false,
"expr": false,
"funcscope": false,
"globalstrict": false,
"iterator": false,
"lastsemic": false,
"laxbreak": false,
"laxcomma": false,
"loopfunc": true,
"maxerr": false,
"moz": false,
"multistr": false,
"notypeof": false,
"proto": false,
"scripturl": false,
"shadow": false,
"sub": true,
"supernew": false,
"validthis": false,
"noyield": false,
"browser": true,
"node": true,
"globals": {
"angular": false,
"$": false,
"module": false,
"require": false
}
}

19
node_modules/toastr-master/.travis.yml generated vendored Normal file
View File

@@ -0,0 +1,19 @@
language: node_js
node_js:
- "0.10"
install:
- npm install -g gulp karma-cli
- npm install
script:
- npm test
cache:
directories:
- node_modules
branches:
only:
- develop
- master

138
node_modules/toastr-master/CHANGELOG.md generated vendored Normal file
View File

@@ -0,0 +1,138 @@
# 2.1.2 (2015-08-06)
## New Features
- Added HTML escaping (use toastr.options.escapeHTML)
- Added more options for overriding animations, specifically to closing a toast
- Events are now passed into the onClick handler of the toast
## Bug Fixes
- Resolved issue with centered toasts that would override top and bottom margins
## Dev Ops
- Removed `module` and `require` from the `.jshintrc` file
- Cleaned up the readme
- Builds moved to the `builds` folder
- Made href calls relative to the transport in the demo
- CSS is now built by the included LESS file as part of a `gulp` call
- Removed un-used deps
# 2.1.1 (2015-02-19)
## New Features
- Support for explicitly clearing a toast [jstawski](https://github.com/jstawski) | [PR 226](https://github.com/CodeSeven/toastr/pull/226)
## Dev Ops
- Refactor to use gulp
# 2.1.0 (2014-10-15)
## New Features
- Prevent duplicate sequential toasts [SBero](https://github.com/sbero) | [aa083d8](https://github.com/CodeSeven/toastr/commit/ccb377b6015d557dbb987df74750b97b3aa083d8)
- Add support for top-center and bottom-center toasts [showwin](https://github.com/showwin) | [86a4798](https://github.com/CodeSeven/toastr/commit/86a4798e76c7d8516521780b7bd085d6bb4c371b)
- Add feature allowing progress bars to be shown for toasts [TravisTX](https://github.com/TravisTX) | [PR 189](https://github.com/CodeSeven/toastr/pull/189)
`toastr.options.preventDuplicates = true;`
`toastr.options.progressBar = true;`
## Bug Fixes
- None
## Breaking Changes
- None
## Dev Ops
- Add karma test runner
- Added Travis CI hooks
# 2.0.3 (2014-05-17)
## New Features
- None
## Bug Fixes
- positionClass changes were not being honored due to 2.0.2 release changes. Refactored getContainer to only get the container, unless a 2nd boolean parameter is passed in in which case it will also create it if the container did not exist [871c2a6](https://github.com/CodeSeven/toastr/commit/871c2a6e438bb6b996cfb80286720604a4cf00fd)
## Breaking Changes
- None
# 2.0.2 (2014-04-29)
## New Features
- Added simple ARIA reader support ([45c6362](https://github.com/CodeSeven/toastr/commit/45c63628476f6b085a6579dc681f4fe61ba5820c))
- Added SASS support (direct port of CSS for now) ([b4c8b34](https://github.com/CodeSeven/toastr/commit/b4c8b3460efb8aa51c730dd38c35ef6b025db2cc))
## Bug Fixes
- Added sourcemap for the min file ([1da4bd1](https://github.com/CodeSeven/toastr/commit/1da4bd1dad21bcfc7fcfe73da1abb185cf2c3f9f))
- IE 8 does not support stopPropagation on the event ([6989573](https://github.com/CodeSeven/toastr/commit/698957325a8e7bf63990f71ee409b911d69bc8ec))
- Media query width fixes ([ea2f5db](https://github.com/CodeSeven/toastr/commit/ea2f5db6e5314dcfe48eb34176583849c177c00e))
- Fix of onHidden firing twice when clicking on it then moving mouse out of toast ([ad613b9](https://github.com/CodeSeven/toastr/commit/ad613b9f18feeec630497590b85ca75c52141ea3) , [#105](https://github.com/CodeSeven/toastr/issues/105))
- Clear all toasts followed by a new toast now displays correctly ([3126a53](https://github.com/CodeSeven/toastr/commit/3126a533e0ab12ec3ff374e155a37fd38bd23bb6) , [#149](https://github.com/CodeSeven/toastr/issues/149) , [#118](https://github.com/CodeSeven/toastr/issues/118))
## Breaking Changes
- None
# 2.0.1 (2013-09-01)
## New Features
### Close Button
Optionally enable a close button
toastr.options.closeButton = true;
Optionally override the close button's HTML.
toastr.options.closeHtml = '<button><i class="icon-off"></i></button>';
You can also override the CSS/LESS for `#toast-container .toast-close-button`
### Callbacks
// Define a callback for when the toast is shown/hidden
toastr.options.onShown = function() { console.log('hello'); }
toastr.options.onHidden = function() { console.log('goodbye'); }
### 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.
toastr.options.showEasing = 'swing';
toastr.options.hideEasing = 'linear';
Using the jQuery Easing plugin (http://www.gsgd.co.uk/sandbox/jquery/easing/)
toastr.options.showEasing = 'easeOutBounce';
toastr.options.hideEasing = '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.
toastr.options.showMethod = 'slideDown';
toastr.options.hideMethod = 'slideUp';
###Timeouts
Control how toastr interacts with users by setting timeouts appropriately.
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
## Breaking Changes
###Animation Changes
The following animations options have been deprecated and should be replaced:
- Replace `options.fadeIn` with `options.showDuration`
- Replace `options.onFadeIn` with `options.onShown`
- Replace `options.fadeOut` with `options.hideDuration`
- Replace `options.onFadeOut` with `options.onHidden`
# Version 1.3.1
## Display Sequence
Show newest toast at bottom (top is default)
toastr.options.newestOnTop = false;

220
node_modules/toastr-master/README.md generated vendored Normal file
View File

@@ -0,0 +1,220 @@
# toastr
**toastr** is a Javascript library for non-blocking notifications. jQuery is required. The goal is to create a simple core library that can be customized and extended.
[![Build Status](https://travis-ci.org/CodeSeven/toastr.svg)](https://travis-ci.org/CodeSeven/toastr)
## Current Version
2.1.2
## Demo
- Demo can be found at http://codeseven.github.io/toastr/demo.html
- [Demo using FontAwesome icons with toastr](http://plnkr.co/edit/6W9URNyyp2ItO4aUWzBB?p=preview)
## [CDNjs](https://cdnjs.com/libraries/toastr.js)
Toastr is hosted at CDN JS
#### Debug
- [//cdnjs.cloudflare.com/ajax/libs/toastr.js/latest/js/toastr.js](//cdnjs.cloudflare.com/ajax/libs/toastr.js/latest/js/toastr.js)
- [//cdnjs.cloudflare.com/ajax/libs/toastr.js/latest/css/toastr.css](//cdnjs.cloudflare.com/ajax/libs/toastr.js/latest/css/toastr.css)
#### Minified
- [//cdnjs.cloudflare.com/ajax/libs/toastr.js/latest/js/toastr.min.js](//cdnjs.cloudflare.com/ajax/libs/toastr.js/latest/js/toastr.min.js)
- [//cdnjs.cloudflare.com/ajax/libs/toastr.js/latest/css/toastr.min.css](//cdnjs.cloudflare.com/ajax/libs/toastr.js/latest/css/toastr.min.css)
## Install
#### [NuGet Gallery](http://nuget.org/packages/toastr)
```
Install-Package toastr
```
#### [Bower](http://bower.io/search/?q=toastr)
```
bower install toastr
```
#### [npm](https://www.npmjs.com/package/toastr)
```
npm install --save toastr
```
## Wiki and Change Log
[Wiki including Change Log](https://github.com/CodeSeven/toastr/wiki)
## Breaking Changes
####Animation Changes
The following animations options have been deprecated and should be replaced:
- Replace `options.fadeIn` with `options.showDuration`
- Replace `options.onFadeIn` with `options.onShown`
- Replace `options.fadeOut` with `options.hideDuration`
- Replace `options.onFadeOut` with `options.onHidden`
## Quick Start
### 3 Easy Steps
For other API calls, see the [demo](http://codeseven.github.io/toastr/demo.html).
1. Link to toastr.css `<link href="toastr.css" rel="stylesheet"/>`
2. Link to toastr.js `<script src="toastr.js"></script>`
3. use toastr to display a toast for info, success, warning or error
```js
// Display an info toast with no title
toastr.info('Are you the 6 fingered man?')
```
### Other Options
```js
// Display a warning toast, with no title
toastr.warning('My name is Inigo Montoya. You killed my father, prepare to die!')
// Display a success toast, with a title
toastr.success('Have fun storming the castle!', 'Miracle Max Says')
// Display an error toast, with a title
toastr.error('I do not think that word means what you think it means.', 'Inconceivable!')
// Immediately remove current toasts without using animation
toastr.remove()
// Remove current toasts using animation
toastr.clear()
// Override global options
toastr.success('We do have the Kapua suite available.', 'Turtle Bay Resort', {timeOut: 5000})
```
### Escape HTML characters
In case you want to escape HTML charaters in title and message
toastr.options.escapeHtml = true;
### Close Button
Optionally enable a close button
```js
toastr.options.closeButton = true;
````
Optionally override the close button's HTML.
```js
toastr.options.closeHtml = '<button><i class="icon-off"></i></button>';
```
You can also override the CSS/LESS for `#toast-container .toast-close-button`
Optionally override the hide animation when the close button is clicked (falls back to hide configuration).
```js
toastr.options.closeMethod = 'fadeOut';
toastr.options.closeDuration = 300;
toastr.options.closeEasing = 'swing';
```
### Display Sequence
Show newest toast at bottom (top is default)
```js
toastr.options.newestOnTop = false;
```
### Callbacks
```js
// Define a callback for when the toast is shown/hidden
toastr.options.onShown = function() { console.log('hello'); }
toastr.options.onHidden = function() { console.log('goodbye'); }
```
### 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. Timeouts can be disabled by setting them to 0.
```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
```
###Progress Bar
Visually indicate how long before a toast expires.
```js
toastr.options.progressBar = 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

200
node_modules/toastr-master/build/toastr.css generated vendored Normal file
View File

@@ -0,0 +1,200 @@
.toast-title {
font-weight: bold;
}
.toast-message {
-ms-word-wrap: break-word;
word-wrap: break-word;
}
.toast-message a,
.toast-message label {
color: #ffffff;
}
.toast-message a:hover {
color: #cccccc;
text-decoration: none;
}
.toast-close-button {
position: relative;
right: -0.3em;
top: -0.3em;
float: right;
font-size: 20px;
font-weight: bold;
color: #ffffff;
-webkit-text-shadow: 0 1px 0 #ffffff;
text-shadow: 0 1px 0 #ffffff;
opacity: 0.8;
-ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80);
filter: alpha(opacity=80);
}
.toast-close-button:hover,
.toast-close-button:focus {
color: #000000;
text-decoration: none;
cursor: pointer;
opacity: 0.4;
-ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=40);
filter: alpha(opacity=40);
}
/*Additional properties for button version
iOS requires the button element instead of an anchor tag.
If you want the anchor version, it requires `href="#"`.*/
button.toast-close-button {
padding: 0;
cursor: pointer;
background: transparent;
border: 0;
-webkit-appearance: none;
}
.toast-top-center {
top: 0;
right: 0;
width: 100%;
}
.toast-bottom-center {
bottom: 0;
right: 0;
width: 100%;
}
.toast-top-full-width {
top: 0;
right: 0;
width: 100%;
}
.toast-bottom-full-width {
bottom: 0;
right: 0;
width: 100%;
}
.toast-top-left {
top: 12px;
left: 12px;
}
.toast-top-right {
top: 12px;
right: 12px;
}
.toast-bottom-right {
right: 12px;
bottom: 12px;
}
.toast-bottom-left {
bottom: 12px;
left: 12px;
}
#toast-container {
position: fixed;
z-index: 999999;
pointer-events: none;
/*overrides*/
}
#toast-container * {
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
#toast-container > div {
position: relative;
pointer-events: auto;
overflow: hidden;
margin: 0 0 6px;
padding: 15px 15px 15px 50px;
width: 300px;
-moz-border-radius: 3px 3px 3px 3px;
-webkit-border-radius: 3px 3px 3px 3px;
border-radius: 3px 3px 3px 3px;
background-position: 15px center;
background-repeat: no-repeat;
-moz-box-shadow: 0 0 12px #999999;
-webkit-box-shadow: 0 0 12px #999999;
box-shadow: 0 0 12px #999999;
color: #ffffff;
opacity: 0.8;
-ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80);
filter: alpha(opacity=80);
}
#toast-container > :hover {
-moz-box-shadow: 0 0 12px #000000;
-webkit-box-shadow: 0 0 12px #000000;
box-shadow: 0 0 12px #000000;
opacity: 1;
-ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
filter: alpha(opacity=100);
cursor: pointer;
}
#toast-container > .toast-info {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=") !important;
}
#toast-container > .toast-error {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=") !important;
}
#toast-container > .toast-success {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==") !important;
}
#toast-container > .toast-warning {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=") !important;
}
#toast-container.toast-top-center > div,
#toast-container.toast-bottom-center > div {
width: 300px;
margin-left: auto;
margin-right: auto;
}
#toast-container.toast-top-full-width > div,
#toast-container.toast-bottom-full-width > div {
width: 96%;
margin-left: auto;
margin-right: auto;
}
.toast {
background-color: #030303;
}
.toast-success {
background-color: #51a351;
}
.toast-error {
background-color: #bd362f;
}
.toast-info {
background-color: #2f96b4;
}
.toast-warning {
background-color: #f89406;
}
.toast-progress {
position: absolute;
left: 0;
bottom: 0;
height: 4px;
background-color: #000000;
opacity: 0.4;
-ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=40);
filter: alpha(opacity=40);
}
/*Responsive Design*/
@media all and (max-width: 240px) {
#toast-container > div {
padding: 8px 8px 8px 50px;
width: 11em;
}
#toast-container .toast-close-button {
right: -0.2em;
top: -0.2em;
}
}
@media all and (min-width: 241px) and (max-width: 480px) {
#toast-container > div {
padding: 8px 8px 8px 50px;
width: 18em;
}
#toast-container .toast-close-button {
right: -0.2em;
top: -0.2em;
}
}
@media all and (min-width: 481px) and (max-width: 768px) {
#toast-container > div {
padding: 15px 15px 15px 50px;
width: 25em;
}
}

1
node_modules/toastr-master/build/toastr.js.map generated vendored Normal file

File diff suppressed because one or more lines are too long

1
node_modules/toastr-master/build/toastr.min.css generated vendored Normal file

File diff suppressed because one or more lines are too long

2
node_modules/toastr-master/build/toastr.min.js generated vendored Normal file
View File

@@ -0,0 +1,2 @@
!function(e){e(["jquery"],function(e){return function(){function t(e,t,n){return g({type:O.error,iconClass:m().iconClasses.error,message:e,optionsOverride:n,title:t})}function n(t,n){return t||(t=m()),v=e("#"+t.containerId),v.length?v:(n&&(v=u(t)),v)}function i(e,t,n){return g({type:O.info,iconClass:m().iconClasses.info,message:e,optionsOverride:n,title:t})}function o(e){w=e}function s(e,t,n){return g({type:O.success,iconClass:m().iconClasses.success,message:e,optionsOverride:n,title:t})}function a(e,t,n){return g({type:O.warning,iconClass:m().iconClasses.warning,message:e,optionsOverride:n,title:t})}function r(e,t){var i=m();v||n(i),l(e,i,t)||d(i)}function c(t){var i=m();return v||n(i),t&&0===e(":focus",t).length?void h(t):void(v.children().length&&v.remove())}function d(t){for(var n=v.children(),i=n.length-1;i>=0;i--)l(e(n[i]),t)}function l(t,n,i){var o=i&&i.force?i.force:!1;return t&&(o||0===e(":focus",t).length)?(t[n.hideMethod]({duration:n.hideDuration,easing:n.hideEasing,complete:function(){h(t)}}),!0):!1}function u(t){return v=e("<div/>").attr("id",t.containerId).addClass(t.positionClass).attr("aria-live","polite").attr("role","alert"),v.appendTo(e(t.target)),v}function p(){return{tapToDismiss:!0,toastClass:"toast",containerId:"toast-container",debug:!1,showMethod:"fadeIn",showDuration:300,showEasing:"swing",onShown:void 0,hideMethod:"fadeOut",hideDuration:1e3,hideEasing:"swing",onHidden:void 0,closeMethod:!1,closeDuration:!1,closeEasing:!1,extendedTimeOut:1e3,iconClasses:{error:"toast-error",info:"toast-info",success:"toast-success",warning:"toast-warning"},iconClass:"toast-info",positionClass:"toast-top-right",timeOut:5e3,titleClass:"toast-title",messageClass:"toast-message",escapeHtml:!1,target:"body",closeHtml:'<button type="button">&times;</button>',newestOnTop:!0,preventDuplicates:!1,progressBar:!1}}function f(e){w&&w(e)}function g(t){function i(e){return null==e&&(e=""),new String(e).replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&#39;").replace(/</g,"&lt;").replace(/>/g,"&gt;")}function o(){r(),d(),l(),u(),p(),c()}function s(){y.hover(b,O),!x.onclick&&x.tapToDismiss&&y.click(w),x.closeButton&&k&&k.click(function(e){e.stopPropagation?e.stopPropagation():void 0!==e.cancelBubble&&e.cancelBubble!==!0&&(e.cancelBubble=!0),w(!0)}),x.onclick&&y.click(function(e){x.onclick(e),w()})}function a(){y.hide(),y[x.showMethod]({duration:x.showDuration,easing:x.showEasing,complete:x.onShown}),x.timeOut>0&&(H=setTimeout(w,x.timeOut),q.maxHideTime=parseFloat(x.timeOut),q.hideEta=(new Date).getTime()+q.maxHideTime,x.progressBar&&(q.intervalId=setInterval(D,10)))}function r(){t.iconClass&&y.addClass(x.toastClass).addClass(E)}function c(){x.newestOnTop?v.prepend(y):v.append(y)}function d(){t.title&&(I.append(x.escapeHtml?i(t.title):t.title).addClass(x.titleClass),y.append(I))}function l(){t.message&&(M.append(x.escapeHtml?i(t.message):t.message).addClass(x.messageClass),y.append(M))}function u(){x.closeButton&&(k.addClass("toast-close-button").attr("role","button"),y.prepend(k))}function p(){x.progressBar&&(B.addClass("toast-progress"),y.prepend(B))}function g(e,t){if(e.preventDuplicates){if(t.message===C)return!0;C=t.message}return!1}function w(t){var n=t&&x.closeMethod!==!1?x.closeMethod:x.hideMethod,i=t&&x.closeDuration!==!1?x.closeDuration:x.hideDuration,o=t&&x.closeEasing!==!1?x.closeEasing:x.hideEasing;return!e(":focus",y).length||t?(clearTimeout(q.intervalId),y[n]({duration:i,easing:o,complete:function(){h(y),x.onHidden&&"hidden"!==j.state&&x.onHidden(),j.state="hidden",j.endTime=new Date,f(j)}})):void 0}function O(){(x.timeOut>0||x.extendedTimeOut>0)&&(H=setTimeout(w,x.extendedTimeOut),q.maxHideTime=parseFloat(x.extendedTimeOut),q.hideEta=(new Date).getTime()+q.maxHideTime)}function b(){clearTimeout(H),q.hideEta=0,y.stop(!0,!0)[x.showMethod]({duration:x.showDuration,easing:x.showEasing})}function D(){var e=(q.hideEta-(new Date).getTime())/q.maxHideTime*100;B.width(e+"%")}var x=m(),E=t.iconClass||x.iconClass;if("undefined"!=typeof t.optionsOverride&&(x=e.extend(x,t.optionsOverride),E=t.optionsOverride.iconClass||E),!g(x,t)){T++,v=n(x,!0);var H=null,y=e("<div/>"),I=e("<div/>"),M=e("<div/>"),B=e("<div/>"),k=e(x.closeHtml),q={intervalId:null,hideEta:null,maxHideTime:null},j={toastId:T,state:"visible",startTime:new Date,options:x,map:t};return o(),a(),s(),f(j),x.debug&&console&&console.log(j),y}}function m(){return e.extend({},p(),b.options)}function h(e){v||(v=n()),e.is(":visible")||(e.remove(),e=null,0===v.children().length&&(v.remove(),C=void 0))}var v,w,C,T=0,O={error:"error",info:"info",success:"success",warning:"warning"},b={clear:r,remove:c,error:t,getContainer:n,info:i,options:{},subscribe:o,success:s,version:"2.1.2",warning:a};return b}()})}("function"==typeof define&&define.amd?define:function(e,t){"undefined"!=typeof module&&module.exports?module.exports=t(require("jquery")):window.toastr=t(window.jQuery)});
//# sourceMappingURL=toastr.js.map

325
node_modules/toastr-master/demo.html generated vendored Normal file
View File

@@ -0,0 +1,325 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>toastr examples</title>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<link href="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.1/css/bootstrap-combined.min.css" rel="stylesheet">
<link href="build/toastr.css" rel="stylesheet" type="text/css" />
<style>
.row {
margin-left: 0;
}
</style>
</head>
<body class="container">
<section class="row">
<h1>toastr</h1>
<div class="well row">
<div class="row">
<div class="span4">
<div class="control-group">
<div class="controls">
<label class="control-label" for="title">Title</label>
<input id="title" type="text" class="input-large" placeholder="Enter a title ..." />
<label class="control-label" for="message">Message</label>
<textarea class="input-large" id="message" rows="3" placeholder="Enter a message ..."></textarea>
</div>
</div>
<div class="control-group">
<div class="controls">
<label class="checkbox" for="closeButton">
<input id="closeButton" type="checkbox" value="checked" class="input-mini" />Close Button
</label>
</div>
<div class="controls">
<label class="checkbox" for="addBehaviorOnToastClick">
<input id="addBehaviorOnToastClick" type="checkbox" value="checked" class="input-mini" />Add behavior on toast click
</label>
</div>
<div class="controls">
<label class="checkbox" for="debugInfo">
<input id="debugInfo" type="checkbox" value="checked" class="input-mini" />Debug
</label>
</div>
<div class="controls">
<label class="checkbox" for="progressBar">
<input id="progressBar" type="checkbox" value="checked" class="input-mini" />Progress Bar
</label>
</div>
<div class="controls">
<label class="checkbox" for="preventDuplicates">
<input id="preventDuplicates" type="checkbox" value="checked" class="input-mini" />Prevent Duplicates
</label>
</div>
<div class="controls">
<label class="checkbox" for="addClear">
<input id="addClear" type="checkbox" value="checked" class="input-mini" />Add button to force clearing a toast, ignoring focus
</label>
</div>
<div class="controls">
<label class="checkbox" for="newestOnTop">
<input id="newestOnTop" type="checkbox" value="checked" class="input-mini" />Newest on top
</label>
</div>
</div>
</div>
<div class="span2">
<div class="control-group" id="toastTypeGroup">
<div class="controls">
<label>Toast Type</label>
<label class="radio">
<input type="radio" name="toasts" value="success" checked />Success
</label>
<label class="radio">
<input type="radio" name="toasts" value="info" />Info
</label>
<label class="radio">
<input type="radio" name="toasts" value="warning" />Warning
</label>
<label class="radio">
<input type="radio" name="toasts" value="error" />Error
</label>
</div>
</div>
<div class="control-group" id="positionGroup">
<div class="controls">
<label>Position</label>
<label class="radio">
<input type="radio" name="positions" value="toast-top-right" checked />Top Right
</label>
<label class="radio">
<input type="radio" name="positions" value="toast-bottom-right" />Bottom Right
</label>
<label class="radio">
<input type="radio" name="positions" value="toast-bottom-left" />Bottom Left
</label>
<label class="radio">
<input type="radio" name="positions" value="toast-top-left" />Top Left
</label>
<label class="radio">
<input type="radio" name="positions" value="toast-top-full-width" />Top Full Width
</label>
<label class="radio">
<input type="radio" name="positions" value="toast-bottom-full-width" />Bottom Full Width
</label>
<label class="radio">
<input type="radio" name="positions" value="toast-top-center" />Top Center
</label>
<label class="radio">
<input type="radio" name="positions" value="toast-bottom-center" />Bottom Center
</label>
</div>
</div>
</div>
<div class="span2">
<div class="control-group">
<div class="controls">
<label class="control-label" for="showEasing">Show Easing</label>
<input id="showEasing" type="text" placeholder="swing, linear" class="input-mini" value="swing" />
<label class="control-label" for="hideEasing">Hide Easing</label>
<input id="hideEasing" type="text" placeholder="swing, linear" class="input-mini" value="linear" />
<label class="control-label" for="showMethod">Show Method</label>
<input id="showMethod" type="text" placeholder="show, fadeIn, slideDown" class="input-mini" value="fadeIn" />
<label class="control-label" for="hideMethod">Hide Method</label>
<input id="hideMethod" type="text" placeholder="hide, fadeOut, slideUp" class="input-mini" value="fadeOut" />
</div>
</div>
</div>
<div class="span3">
<div class="control-group">
<div class="controls">
<label class="control-label" for="showDuration">Show Duration</label>
<input id="showDuration" type="text" placeholder="ms" class="input-mini" value="300" />
<label class="control-label" for="hideDuration">Hide Duration</label>
<input id="hideDuration" type="text" placeholder="ms" class="input-mini" value="1000" />
<label class="control-label" for="timeOut">Time out</label>
<input id="timeOut" type="text" placeholder="ms" class="input-mini" value="5000" />
<label class="control-label" for="extendedTimeOut">Extended time out</label>
<input id="extendedTimeOut" type="text" placeholder="ms" class="input-mini" value="1000" />
</div>
</div>
</div>
</div>
<div class="row">
<button type="button" class="btn btn-primary" id="showtoast">Show Toast</button>
<button type="button" class="btn btn-danger" id="cleartoasts">Clear Toasts</button>
<button type="button" class="btn btn-danger" id="clearlasttoast">Clear Last Toast</button>
</div>
<div class="row" style='margin-top: 25px;'>
<pre id='toastrOptions'></pre>
</div>
</div>
</section>
<footer class="row">
<h2>Links</h2>
<ul>
<li><a href="http://nuget.org/packages/toastr">NuGet</a></li>
<li><a href="https://github.com/CodeSeven/toastr">GitHub</a></li>
</ul>
</footer>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="toastr.js"></script>
<script type="text/javascript">
$(function () {
var i = -1;
var toastCount = 0;
var $toastlast;
var getMessage = function () {
var msgs = ['My name is Inigo Montoya. You killed my father. Prepare to die!',
'<div><input class="input-small" value="textbox"/>&nbsp;<a href="http://johnpapa.net" target="_blank">This is a hyperlink</a></div><div><button type="button" id="okBtn" class="btn btn-primary">Close me</button><button type="button" id="surpriseBtn" class="btn" style="margin: 0 8px 0 8px">Surprise me</button></div>',
'Are you the six fingered man?',
'Inconceivable!',
'I do not think that means what you think it means.',
'Have fun storming the castle!'
];
i++;
if (i === msgs.length) {
i = 0;
}
return msgs[i];
};
var getMessageWithClearButton = function (msg) {
msg = msg ? msg : 'Clear itself?';
msg += '<br /><br /><button type="button" class="btn clear">Yes</button>';
return msg;
};
$('#showtoast').click(function () {
var shortCutFunction = $("#toastTypeGroup input:radio:checked").val();
var msg = $('#message').val();
var title = $('#title').val() || '';
var $showDuration = $('#showDuration');
var $hideDuration = $('#hideDuration');
var $timeOut = $('#timeOut');
var $extendedTimeOut = $('#extendedTimeOut');
var $showEasing = $('#showEasing');
var $hideEasing = $('#hideEasing');
var $showMethod = $('#showMethod');
var $hideMethod = $('#hideMethod');
var toastIndex = toastCount++;
var addClear = $('#addClear').prop('checked');
toastr.options = {
closeButton: $('#closeButton').prop('checked'),
debug: $('#debugInfo').prop('checked'),
newestOnTop: $('#newestOnTop').prop('checked'),
progressBar: $('#progressBar').prop('checked'),
positionClass: $('#positionGroup input:radio:checked').val() || 'toast-top-right',
preventDuplicates: $('#preventDuplicates').prop('checked'),
onclick: null
};
if ($('#addBehaviorOnToastClick').prop('checked')) {
toastr.options.onclick = function () {
alert('You can perform some custom action after a toast goes away');
};
}
if ($showDuration.val().length) {
toastr.options.showDuration = $showDuration.val();
}
if ($hideDuration.val().length) {
toastr.options.hideDuration = $hideDuration.val();
}
if ($timeOut.val().length) {
toastr.options.timeOut = addClear ? 0 : $timeOut.val();
}
if ($extendedTimeOut.val().length) {
toastr.options.extendedTimeOut = addClear ? 0 : $extendedTimeOut.val();
}
if ($showEasing.val().length) {
toastr.options.showEasing = $showEasing.val();
}
if ($hideEasing.val().length) {
toastr.options.hideEasing = $hideEasing.val();
}
if ($showMethod.val().length) {
toastr.options.showMethod = $showMethod.val();
}
if ($hideMethod.val().length) {
toastr.options.hideMethod = $hideMethod.val();
}
if (addClear) {
msg = getMessageWithClearButton(msg);
toastr.options.tapToDismiss = false;
}
if (!msg) {
msg = getMessage();
}
$('#toastrOptions').text('Command: toastr["'
+ shortCutFunction
+ '"]("'
+ msg
+ (title ? '", "' + title : '')
+ '")\n\ntoastr.options = '
+ JSON.stringify(toastr.options, null, 2)
);
var $toast = toastr[shortCutFunction](msg, title); // Wire up an event handler to a button in the toast, if it exists
$toastlast = $toast;
if(typeof $toast === 'undefined'){
return;
}
if ($toast.find('#okBtn').length) {
$toast.delegate('#okBtn', 'click', function () {
alert('you clicked me. i was toast #' + toastIndex + '. goodbye!');
$toast.remove();
});
}
if ($toast.find('#surpriseBtn').length) {
$toast.delegate('#surpriseBtn', 'click', function () {
alert('Surprise! you clicked me. i was toast #' + toastIndex + '. You could perform an action here.');
});
}
if ($toast.find('.clear').length) {
$toast.delegate('.clear', 'click', function () {
toastr.clear($toast, { force: true });
});
}
});
function getLastToast(){
return $toastlast;
}
$('#clearlasttoast').click(function () {
toastr.clear(getLastToast());
});
$('#cleartoasts').click(function () {
toastr.clear();
});
})
</script>
</body>
</html>

200
node_modules/toastr-master/gulpfile.js generated vendored Normal file
View File

@@ -0,0 +1,200 @@
/* jshint node:true, camelcase:false */
var gulp = require('gulp');
var del = require('del');
var glob = require('glob');
var karma = require('karma').server;
var merge = require('merge-stream');
var plato = require('plato');
var plug = require('gulp-load-plugins')();
var paths = {
js: './toastr.js',
less: './toastr.less',
report: './report',
build: './build'
};
var colors = plug.util.colors;
var log = plug.util.log;
/**
* List the available gulp tasks
*/
gulp.task('help', plug.taskListing);
/**
* Lint the code, create coverage report, and a visualizer
* @return {Stream}
*/
gulp.task('analyze', function() {
log('Analyzing source with JSHint, JSCS, and Plato');
var jshint = analyzejshint([paths.js]);
var jscs = analyzejscs([paths.js]);
startPlatoVisualizer();
return merge(jshint, jscs);
});
/**
* Minify and bundle the app's JavaScript
* @return {Stream}
*/
gulp.task('js', function() {
log('Bundling, minifying, and copying the app\'s JavaScript');
return gulp
.src(paths.js)
.pipe(plug.sourcemaps.init())
.pipe(plug.bytediff.start())
.pipe(plug.uglify({}))
.pipe(plug.bytediff.stop(bytediffFormatter))
.pipe(plug.sourcemaps.write('.'))
.pipe(plug.rename(function(path) {
if (path.extname === '.js') {
path.basename += '.min';
}
}))
.pipe(gulp.dest(paths.build));
});
/**
* Minify and bundle the CSS
* @return {Stream}
*/
gulp.task('css', function() {
log('Bundling, minifying, and copying the app\'s CSS');
return gulp.src(paths.less)
.pipe(plug.less())
// .pipe(plug.autoprefixer('last 2 version', '> 5%'))
.pipe(gulp.dest(paths.build))
.pipe(plug.bytediff.start())
.pipe(plug.minifyCss({}))
.pipe(plug.bytediff.stop(bytediffFormatter))
.pipe(plug.rename('toastr.min.css'))
.pipe(gulp.dest(paths.build));
});
/**
* Build js and css
*/
gulp.task('default', ['js', 'css'], function() {
log('Analyze, Build CSS and JS');
});
/**
* Remove all files from the build folder
* One way to run clean before all tasks is to run
* from the cmd line: gulp clean && gulp build
* @return {Stream}
*/
gulp.task('clean', function(cb) {
log('Cleaning: ' + plug.util.colors.blue(paths.report));
log('Cleaning: ' + plug.util.colors.blue(paths.build));
var delPaths = [paths.build, paths.report];
del(delPaths, cb);
});
/**
* Run specs once and exit
* To start servers and run midway specs as well:
* gulp test --startServers
* @return {Stream}
*/
gulp.task('test', function(done) {
startTests(true /*singleRun*/ , done);
});
////////////////
/**
* Execute JSHint on given source files
* @param {Array} sources
* @param {String} overrideRcFile
* @return {Stream}
*/
function analyzejshint(sources, overrideRcFile) {
var jshintrcFile = overrideRcFile || './.jshintrc';
log('Running JSHint');
return gulp
.src(sources)
.pipe(plug.jshint(jshintrcFile))
.pipe(plug.jshint.reporter('jshint-stylish'));
}
/**
* Execute JSCS on given source files
* @param {Array} sources
* @return {Stream}
*/
function analyzejscs(sources) {
log('Running JSCS');
return gulp
.src(sources)
.pipe(plug.jscs('./.jscsrc'));
}
/**
* Start Plato inspector and visualizer
*/
function startPlatoVisualizer() {
log('Running Plato');
var files = glob.sync('toastr.js');
var options = {
title: 'Plato Inspections Report'
};
var outputDir = './report/plato';
plato.inspect(files, outputDir, options, platoCompleted);
function platoCompleted(report) {
var overview = plato.getOverviewReport(report);
log(overview.summary);
}
}
/**
* Start the tests using karma.
* @param {boolean} singleRun - True means run once and end (CI), or keep running (dev)
* @param {Function} done - Callback to fire when karma is done
* @return {undefined}
*/
function startTests(singleRun, done) {
karma.start({
configFile: __dirname + '/karma.conf.js',
singleRun: !!singleRun
}, karmaCompleted);
////////////////
function karmaCompleted() {
done();
}
}
/**
* Formatter for bytediff to display the size changes after processing
* @param {Object} data - byte data
* @return {String} Difference in bytes, formatted
*/
function bytediffFormatter(data) {
var difference = (data.savings > 0) ? ' smaller.' : ' larger.';
return data.fileName + ' went from ' +
(data.startSize / 1000).toFixed(2) + ' kB to ' + (data.endSize / 1000).toFixed(2) + ' kB' +
' and is ' + formatPercent(1 - data.percent, 2) + '%' + difference;
}
/**
* Format a number as a percentage
* @param {Number} num Number to format as a percent
* @param {Number} precision Precision of the decimal
* @return {Number} Formatted perentage
*/
function formatPercent(num, precision) {
return (num * 100).toFixed(precision);
}

79
node_modules/toastr-master/karma.conf.js generated vendored Normal file
View File

@@ -0,0 +1,79 @@
// Karma configuration
// Generated on Thu Sep 04 2014 07:41:43 GMT-0400 (EDT)
module.exports = function(config) {
config.set({
// base path that will be used to resolve all patterns (eg. files, exclude)
basePath: '',
// frameworks to use
// available frameworks: https://npmjs.org/browse/keyword/karma-adapter
frameworks: ['qunit'],
// plugins: ['karma-qunit', 'karma-coverage', 'phantomjs', 'karma-phantomjs-launcher'],
// list of files / patterns to load in the browser
files: [
// 'http://code.jquery.com/jquery.js',
'node_modules/jquery/dist/jquery.min.js',
'build/toastr.css',
'toastr.js',
'node_modules/qunitjs/qunit/qunit.js',
'tests/unit/qunit-helper.js',
//'tests/unit/x.js'
'tests/unit/toastr-tests.js'
],
// list of files to exclude
exclude: [
],
// preprocess matching files before serving them to the browser
// available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor
preprocessors: {
'toastr.js': 'coverage'
},
// test results reporter to use
// possible values: 'dots', 'progress'
// available reporters: https://npmjs.org/browse/keyword/karma-reporter
reporters: ['progress', 'coverage'],
coverageReporter: {
type: 'lcov',
dir: 'tests/coverage'
},
// web server port
port: 9876,
// enable / disable colors in the output (reporters and logs)
colors: true,
// level of logging
// possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG
logLevel: config.LOG_INFO,
// enable / disable watching file and executing tests whenever any file changes
autoWatch: false,
// start these browsers
// available browser launchers: https://npmjs.org/browse/keyword/karma-launcher
browsers: ['PhantomJS'],
// Continuous Integration mode
// if true, Karma captures browsers, runs the tests and exits
singleRun: true
});
};

View File

@@ -0,0 +1,180 @@
/*
* Toastr
* Copyright 2012-2014 John Papa and Hans Fjällemark.
* All Rights Reserved.
* Use, reproduction, distribution, and modification of this code is subject to the terms and
* conditions of the MIT license, available at http://www.opensource.org/licenses/mit-license.php
*
* Author: John Papa and Hans Fjällemark
* Project: https://github.com/CodeSeven/toastr
*/
.toast-title {
font-weight: bold;
}
.toast-message {
-ms-word-wrap: break-word;
word-wrap: break-word;
}
.toast-message a,
.toast-message label {
color: #ffffff;
}
.toast-message a:hover {
color: #cccccc;
text-decoration: none;
}
.toast-close-button {
position: relative;
right: -0.3em;
top: -0.3em;
float: right;
font-size: 20px;
font-weight: bold;
color: #ffffff;
-webkit-text-shadow: 0 1px 0 #ffffff;
text-shadow: 0 1px 0 #ffffff;
opacity: 0.8;
-ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80);
filter: alpha(opacity=80);
}
.toast-close-button:hover,
.toast-close-button:focus {
color: #000000;
text-decoration: none;
cursor: pointer;
opacity: 0.4;
-ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=40);
filter: alpha(opacity=40);
}
/*Additional properties for button version
iOS requires the button element instead of an anchor tag.
If you want the anchor version, it requires `href="#"`.*/
button.toast-close-button {
padding: 0;
cursor: pointer;
background: transparent;
border: 0;
-webkit-appearance: none;
}
.toast-top-full-width {
top: 0;
right: 0;
width: 100%;
}
.toast-bottom-full-width {
bottom: 0;
right: 0;
width: 100%;
}
.toast-top-left {
top: 12px;
left: 12px;
}
.toast-top-right {
top: 12px;
right: 12px;
}
.toast-bottom-right {
right: 12px;
bottom: 12px;
}
.toast-bottom-left {
bottom: 12px;
left: 12px;
}
#toast-container {
position: fixed;
z-index: 999999;
/*overrides*/
}
#toast-container * {
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
#toast-container > div {
margin: 0 0 6px;
padding: 15px 15px 15px 50px;
width: 300px;
-moz-border-radius: 3px 3px 3px 3px;
-webkit-border-radius: 3px 3px 3px 3px;
border-radius: 3px 3px 3px 3px;
background-position: 15px center;
background-repeat: no-repeat;
-moz-box-shadow: 0 0 12px #999999;
-webkit-box-shadow: 0 0 12px #999999;
box-shadow: 0 0 12px #999999;
color: #ffffff;
opacity: 0.8;
-ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80);
filter: alpha(opacity=80);
}
#toast-container > :hover {
-moz-box-shadow: 0 0 12px #000000;
-webkit-box-shadow: 0 0 12px #000000;
box-shadow: 0 0 12px #000000;
opacity: 1;
-ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
filter: alpha(opacity=100);
cursor: pointer;
}
#toast-container > .toast-info {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=") !important;
}
#toast-container > .toast-error {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=") !important;
}
#toast-container > .toast-success {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==") !important;
}
#toast-container > .toast-warning {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=") !important;
}
#toast-container.toast-top-full-width > div,
#toast-container.toast-bottom-full-width > div {
width: 96%;
margin: auto;
}
.toast {
background-color: #030303;
}
.toast-success {
background-color: #51a351;
}
.toast-error {
background-color: #bd362f;
}
.toast-info {
background-color: #2f96b4;
}
.toast-warning {
background-color: #f89406;
}
/*Responsive Design*/
@media all and (max-width: 240px) {
#toast-container > div {
padding: 8px 8px 8px 50px;
width: 11em;
}
#toast-container .toast-close-button {
right: -0.2em;
top: -0.2em;
}
}
@media all and (min-width: 241px) and (max-width: 480px) {
#toast-container > div {
padding: 8px 8px 8px 50px;
width: 18em;
}
#toast-container .toast-close-button {
right: -0.2em;
top: -0.2em;
}
}
@media all and (min-width: 481px) and (max-width: 768px) {
#toast-container > div {
padding: 15px 15px 15px 50px;
width: 25em;
}
}

View File

@@ -0,0 +1,232 @@
// Mix-ins
.borderRadius(@radius) {
-moz-border-radius: @radius;
-webkit-border-radius: @radius;
border-radius: @radius;
}
.boxShadow(@boxShadow) {
-moz-box-shadow: @boxShadow;
-webkit-box-shadow: @boxShadow;
box-shadow: @boxShadow;
}
.opacity(@opacity) {
@opacityPercent: @opacity * 100;
opacity: @opacity;
-ms-filter: ~"progid:DXImageTransform.Microsoft.Alpha(Opacity=@{opacityPercent})";
filter: ~"alpha(opacity=@{opacityPercent})";
}
.wordWrap(@wordWrap: break-word) {
-ms-word-wrap: @wordWrap;
word-wrap: @wordWrap;
}
// Variables
@black: #000000;
@grey: #999999;
@light-grey: #CCCCCC;
@white: #FFFFFF;
@near-black: #030303;
@green: #51A351;
@red: #BD362F;
@blue: #2F96B4;
@orange: #F89406;
// Styles
.toast-title {
font-weight: bold;
}
.toast-message {
.wordWrap();
a,
label {
color: @white;
}
a:hover {
color: @light-grey;
text-decoration: none;
}
}
.toast-close-button {
position: relative;
right: -0.3em;
top: -0.3em;
float: right;
font-size: 20px;
font-weight: bold;
color: @white;
-webkit-text-shadow: 0 1px 0 rgba(255,255,255,1);
text-shadow: 0 1px 0 rgba(255,255,255,1);
.opacity(0.8);
&:hover,
&:focus {
color: @black;
text-decoration: none;
cursor: pointer;
.opacity(0.4);
}
}
/*Additional properties for button version
iOS requires the button element instead of an anchor tag.
If you want the anchor version, it requires `href="#"`.*/
button.toast-close-button {
padding: 0;
cursor: pointer;
background: transparent;
border: 0;
-webkit-appearance: none;
}
//#endregion
.toast-top-full-width {
top: 0;
right: 0;
width: 100%;
}
.toast-bottom-full-width {
bottom: 0;
right: 0;
width: 100%;
}
.toast-top-left {
top: 12px;
left: 12px;
}
.toast-top-right {
top: 12px;
right: 12px;
}
.toast-bottom-right {
right: 12px;
bottom: 12px;
}
.toast-bottom-left {
bottom: 12px;
left: 12px;
}
#toast-container {
position: fixed;
z-index: 999999;
* {
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
> div {
margin: 0 0 6px;
padding: 15px 15px 15px 50px;
width: 300px;
.borderRadius(3px 3px 3px 3px);
background-position: 15px center;
background-repeat: no-repeat;
.boxShadow(0 0 12px @grey);
color: @white;
.opacity(0.8);
}
> :hover {
.boxShadow(0 0 12px @black);
.opacity(1);
cursor: pointer;
}
> .toast-info {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=") !important;
}
> .toast-error {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=") !important;
}
> .toast-success {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==") !important;
}
> .toast-warning {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=") !important;
}
/*overrides*/
&.toast-top-full-width > div,
&.toast-bottom-full-width > div {
width: 96%;
margin: auto;
}
}
.toast {
background-color: @near-black;
}
.toast-success {
background-color: @green;
}
.toast-error {
background-color: @red;
}
.toast-info {
background-color: @blue;
}
.toast-warning {
background-color: @orange;
}
/*Responsive Design*/
@media all and (max-width: 240px) {
#toast-container {
> div {
padding: 8px 8px 8px 50px;
width: 11em;
}
& .toast-close-button {
right: -0.2em;
top: -0.2em;
}
}
}
@media all and (min-width: 241px) and (max-width: 480px) {
#toast-container {
> div {
padding: 8px 8px 8px 50px;
width: 18em;
}
& .toast-close-button {
right: -0.2em;
top: -0.2em;
}
}
}
@media all and (min-width: 481px) and (max-width: 768px) {
#toast-container {
> div {
padding: 15px 15px 15px 50px;
width: 25em;
}
}
}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,183 @@
/*
* Toastr
* Version 2.0.1
* Copyright 2012 John Papa and Hans Fjällemark.
* All Rights Reserved.
* Use, reproduction, distribution, and modification of this code is subject to the terms and
* conditions of the MIT license, available at http://www.opensource.org/licenses/mit-license.php
*
* Author: John Papa and Hans Fjällemark
* Project: https://github.com/CodeSeven/toastr
*/
.toast-title {
font-weight: bold;
}
.toast-message {
-ms-word-wrap: break-word;
word-wrap: break-word;
}
.toast-message a,
.toast-message label {
color: #ffffff;
}
.toast-message a:hover {
color: #cccccc;
text-decoration: none;
}
.toast-close-button {
position: relative;
right: -0.3em;
top: -0.3em;
float: right;
font-size: 20px;
font-weight: bold;
color: #ffffff;
-webkit-text-shadow: 0 1px 0 #ffffff;
text-shadow: 0 1px 0 #ffffff;
opacity: 0.8;
-ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80);
filter: alpha(opacity=80);
}
.toast-close-button:hover,
.toast-close-button:focus {
color: #000000;
text-decoration: none;
cursor: pointer;
opacity: 0.4;
-ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=40);
filter: alpha(opacity=40);
}
/*Additional properties for button version
iOS requires the button element instead of an anchor tag.
If you want the anchor version, it requires `href="#"`.*/
button.toast-close-button {
padding: 0;
cursor: pointer;
background: transparent;
border: 0;
-webkit-appearance: none;
}
.toast-top-full-width {
top: 0;
right: 0;
width: 100%;
}
.toast-bottom-full-width {
bottom: 0;
right: 0;
width: 100%;
}
.toast-top-left {
top: 12px;
left: 12px;
}
.toast-top-right {
top: 12px;
right: 12px;
}
.toast-bottom-right {
right: 12px;
bottom: 12px;
}
.toast-bottom-left {
bottom: 12px;
left: 12px;
}
#toast-container {
position: fixed;
z-index: 999999;
/*overrides*/
}
#toast-container * {
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
#toast-container > div {
margin: 0 0 6px;
padding: 15px 15px 15px 50px;
width: 300px;
-moz-border-radius: 3px 3px 3px 3px;
-webkit-border-radius: 3px 3px 3px 3px;
border-radius: 3px 3px 3px 3px;
background-position: 15px center;
background-repeat: no-repeat;
-moz-box-shadow: 0 0 12px #999999;
-webkit-box-shadow: 0 0 12px #999999;
box-shadow: 0 0 12px #999999;
color: #ffffff;
opacity: 0.8;
-ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80);
filter: alpha(opacity=80);
}
#toast-container > :hover {
-moz-box-shadow: 0 0 12px #000000;
-webkit-box-shadow: 0 0 12px #000000;
box-shadow: 0 0 12px #000000;
opacity: 1;
-ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
filter: alpha(opacity=100);
cursor: pointer;
}
#toast-container > .toast-info {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=") !important;
}
#toast-container > .toast-error {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=") !important;
}
#toast-container > .toast-success {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==") !important;
}
#toast-container > .toast-warning {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=") !important;
}
#toast-container.toast-top-full-width > div,
#toast-container.toast-bottom-full-width > div {
width: 96%;
margin: auto;
}
.toast {
background-color: #030303;
}
.toast-success {
background-color: #51a351;
}
.toast-error {
background-color: #bd362f;
}
.toast-info {
background-color: #2f96b4;
}
.toast-warning {
background-color: #f89406;
}
/*Responsive Design*/
@media all and (max-width: 239px) {
#toast-container > div {
padding: 8px 8px 8px 50px;
width: 11em;
}
#toast-container .toast-close-button {
right: -0.2em;
top: -0.2em;
}
}
@media all and (min-width: 240px) and (max-width: 479px) {
#toast-container > div {
padding: 8px 8px 8px 50px;
width: 18em;
}
#toast-container .toast-close-button {
right: -0.2em;
top: -0.2em;
}
}
@media all and (min-width: 480px) and (max-width: 767px) {
#toast-container > div {
padding: 15px 15px 15px 50px;
width: 25em;
}
}

View File

@@ -0,0 +1,338 @@
/*
* Toastr
* Copyright 2012-2014 John Papa and Hans Fjällemark.
* All Rights Reserved.
* Use, reproduction, distribution, and modification of this code is subject to the terms and
* conditions of the MIT license, available at http://www.opensource.org/licenses/mit-license.php
*
* Author: John Papa and Hans Fjällemark
* ARIA Support: Greta Krafsig
* Project: https://github.com/CodeSeven/toastr
*/
; (function (define) {
define(['jquery'], function ($) {
return (function () {
var $container;
var listener;
var toastId = 0;
var toastType = {
error: 'error',
info: 'info',
success: 'success',
warning: 'warning'
};
var toastr = {
clear: clear,
remove: remove,
error: error,
getContainer: getContainer,
info: info,
options: {},
subscribe: subscribe,
success: success,
version: '2.0.3',
warning: warning
};
return toastr;
//#region Accessible Methods
function error(message, title, optionsOverride) {
return notify({
type: toastType.error,
iconClass: getOptions().iconClasses.error,
message: message,
optionsOverride: optionsOverride,
title: title
});
}
function getContainer(options, create) {
if (!options) { options = getOptions(); }
$container = $('#' + options.containerId);
if ($container.length) {
return $container;
}
if(create) {
$container = createContainer(options);
}
return $container;
}
function info(message, title, optionsOverride) {
return notify({
type: toastType.info,
iconClass: getOptions().iconClasses.info,
message: message,
optionsOverride: optionsOverride,
title: title
});
}
function subscribe(callback) {
listener = callback;
}
function success(message, title, optionsOverride) {
return notify({
type: toastType.success,
iconClass: getOptions().iconClasses.success,
message: message,
optionsOverride: optionsOverride,
title: title
});
}
function warning(message, title, optionsOverride) {
return notify({
type: toastType.warning,
iconClass: getOptions().iconClasses.warning,
message: message,
optionsOverride: optionsOverride,
title: title
});
}
function clear($toastElement) {
var options = getOptions();
if (!$container) { getContainer(options); }
if (!clearToast($toastElement, options)) {
clearContainer(options);
}
}
function remove($toastElement) {
var options = getOptions();
if (!$container) { getContainer(options); }
if ($toastElement && $(':focus', $toastElement).length === 0) {
removeToast($toastElement);
return;
}
if ($container.children().length) {
$container.remove();
}
}
//#endregion
//#region Internal Methods
function clearContainer(options){
var toastsToClear = $container.children();
for (var i = toastsToClear.length - 1; i >= 0; i--) {
clearToast($(toastsToClear[i]), options);
};
}
function clearToast($toastElement, options){
if ($toastElement && $(':focus', $toastElement).length === 0) {
$toastElement[options.hideMethod]({
duration: options.hideDuration,
easing: options.hideEasing,
complete: function () { removeToast($toastElement); }
});
return true;
}
return false;
}
function createContainer(options) {
$container = $('<div/>')
.attr('id', options.containerId)
.addClass(options.positionClass)
.attr('aria-live', 'polite')
.attr('role', 'alert');
$container.appendTo($(options.target));
return $container;
}
function getDefaults() {
return {
tapToDismiss: true,
toastClass: 'toast',
containerId: 'toast-container',
debug: false,
showMethod: 'fadeIn', //fadeIn, slideDown, and show are built into jQuery
showDuration: 300,
showEasing: 'swing', //swing and linear are built into jQuery
onShown: undefined,
hideMethod: 'fadeOut',
hideDuration: 1000,
hideEasing: 'swing',
onHidden: undefined,
extendedTimeOut: 1000,
iconClasses: {
error: 'toast-error',
info: 'toast-info',
success: 'toast-success',
warning: 'toast-warning'
},
iconClass: 'toast-info',
positionClass: 'toast-top-right',
timeOut: 5000, // Set timeOut and extendedTimeout to 0 to make it sticky
titleClass: 'toast-title',
messageClass: 'toast-message',
target: 'body',
closeHtml: '<button>&times;</button>',
newestOnTop: true
};
}
function publish(args) {
if (!listener) { return; }
listener(args);
}
function notify(map) {
var options = getOptions(),
iconClass = map.iconClass || options.iconClass;
if (typeof (map.optionsOverride) !== 'undefined') {
options = $.extend(options, map.optionsOverride);
iconClass = map.optionsOverride.iconClass || iconClass;
}
toastId++;
$container = getContainer(options, true);
var intervalId = null,
$toastElement = $('<div/>'),
$titleElement = $('<div/>'),
$messageElement = $('<div/>'),
$closeElement = $(options.closeHtml),
response = {
toastId: toastId,
state: 'visible',
startTime: new Date(),
options: options,
map: map
};
if (map.iconClass) {
$toastElement.addClass(options.toastClass).addClass(iconClass);
}
if (map.title) {
$titleElement.append(map.title).addClass(options.titleClass);
$toastElement.append($titleElement);
}
if (map.message) {
$messageElement.append(map.message).addClass(options.messageClass);
$toastElement.append($messageElement);
}
if (options.closeButton) {
$closeElement.addClass('toast-close-button').attr("role", "button");
$toastElement.prepend($closeElement);
}
$toastElement.hide();
if (options.newestOnTop) {
$container.prepend($toastElement);
} else {
$container.append($toastElement);
}
$toastElement[options.showMethod](
{ duration: options.showDuration, easing: options.showEasing, complete: options.onShown }
);
if (options.timeOut > 0) {
intervalId = setTimeout(hideToast, options.timeOut);
}
$toastElement.hover(stickAround, delayedHideToast);
if (!options.onclick && options.tapToDismiss) {
$toastElement.click(hideToast);
}
if (options.closeButton && $closeElement) {
$closeElement.click(function (event) {
if( event.stopPropagation ) {
event.stopPropagation();
} else if( event.cancelBubble !== undefined && event.cancelBubble !== true ) {
event.cancelBubble = true;
}
hideToast(true);
});
}
if (options.onclick) {
$toastElement.click(function () {
options.onclick();
hideToast();
});
}
publish(response);
if (options.debug && console) {
console.log(response);
}
return $toastElement;
function hideToast(override) {
if ($(':focus', $toastElement).length && !override) {
return;
}
return $toastElement[options.hideMethod]({
duration: options.hideDuration,
easing: options.hideEasing,
complete: function () {
removeToast($toastElement);
if (options.onHidden && response.state !== 'hidden') {
options.onHidden();
}
response.state = 'hidden';
response.endTime = new Date();
publish(response);
}
});
}
function delayedHideToast() {
if (options.timeOut > 0 || options.extendedTimeOut > 0) {
intervalId = setTimeout(hideToast, options.extendedTimeOut);
}
}
function stickAround() {
clearTimeout(intervalId);
$toastElement.stop(true, true)[options.showMethod](
{ duration: options.showDuration, easing: options.showEasing }
);
}
}
function getOptions() {
return $.extend({}, getDefaults(), toastr.options);
}
function removeToast($toastElement) {
if (!$container) { $container = getContainer(); }
if ($toastElement.is(':visible')) {
return;
}
$toastElement.remove();
$toastElement = null;
if ($container.children().length === 0) {
$container.remove();
}
}
//#endregion
})();
});
}(typeof define === 'function' && define.amd ? define : function (deps, factory) {
if (typeof module !== 'undefined' && module.exports) { //Node
module.exports = factory(require('jquery'));
} else {
window['toastr'] = factory(window['jQuery']);
}
}));

View File

@@ -0,0 +1 @@
!function(a){a(["jquery"],function(a){return function(){function b(a,b,c){return o({type:u.error,iconClass:p().iconClasses.error,message:a,optionsOverride:c,title:b})}function c(b,c){return b||(b=p()),r=a("#"+b.containerId),r.length?r:(c&&(r=l(b)),r)}function d(a,b,c){return o({type:u.info,iconClass:p().iconClasses.info,message:a,optionsOverride:c,title:b})}function e(a){s=a}function f(a,b,c){return o({type:u.success,iconClass:p().iconClasses.success,message:a,optionsOverride:c,title:b})}function g(a,b,c){return o({type:u.warning,iconClass:p().iconClasses.warning,message:a,optionsOverride:c,title:b})}function h(a){var b=p();r||c(b),k(a,b)||j(b)}function i(b){var d=p();return r||c(d),b&&0===a(":focus",b).length?void q(b):void(r.children().length&&r.remove())}function j(b){for(var c=r.children(),d=c.length-1;d>=0;d--)k(a(c[d]),b)}function k(b,c){return b&&0===a(":focus",b).length?(b[c.hideMethod]({duration:c.hideDuration,easing:c.hideEasing,complete:function(){q(b)}}),!0):!1}function l(b){return r=a("<div/>").attr("id",b.containerId).addClass(b.positionClass).attr("aria-live","polite").attr("role","alert"),r.appendTo(a(b.target)),r}function m(){return{tapToDismiss:!0,toastClass:"toast",containerId:"toast-container",debug:!1,showMethod:"fadeIn",showDuration:300,showEasing:"swing",onShown:void 0,hideMethod:"fadeOut",hideDuration:1e3,hideEasing:"swing",onHidden:void 0,extendedTimeOut:1e3,iconClasses:{error:"toast-error",info:"toast-info",success:"toast-success",warning:"toast-warning"},iconClass:"toast-info",positionClass:"toast-top-right",timeOut:5e3,titleClass:"toast-title",messageClass:"toast-message",target:"body",closeHtml:"<button>&times;</button>",newestOnTop:!0}}function n(a){s&&s(a)}function o(b){function d(b){return!a(":focus",j).length||b?j[g.hideMethod]({duration:g.hideDuration,easing:g.hideEasing,complete:function(){q(j),g.onHidden&&"hidden"!==o.state&&g.onHidden(),o.state="hidden",o.endTime=new Date,n(o)}}):void 0}function e(){(g.timeOut>0||g.extendedTimeOut>0)&&(i=setTimeout(d,g.extendedTimeOut))}function f(){clearTimeout(i),j.stop(!0,!0)[g.showMethod]({duration:g.showDuration,easing:g.showEasing})}var g=p(),h=b.iconClass||g.iconClass;"undefined"!=typeof b.optionsOverride&&(g=a.extend(g,b.optionsOverride),h=b.optionsOverride.iconClass||h),t++,r=c(g,!0);var i=null,j=a("<div/>"),k=a("<div/>"),l=a("<div/>"),m=a(g.closeHtml),o={toastId:t,state:"visible",startTime:new Date,options:g,map:b};return b.iconClass&&j.addClass(g.toastClass).addClass(h),b.title&&(k.append(b.title).addClass(g.titleClass),j.append(k)),b.message&&(l.append(b.message).addClass(g.messageClass),j.append(l)),g.closeButton&&(m.addClass("toast-close-button").attr("role","button"),j.prepend(m)),j.hide(),g.newestOnTop?r.prepend(j):r.append(j),j[g.showMethod]({duration:g.showDuration,easing:g.showEasing,complete:g.onShown}),g.timeOut>0&&(i=setTimeout(d,g.timeOut)),j.hover(f,e),!g.onclick&&g.tapToDismiss&&j.click(d),g.closeButton&&m&&m.click(function(a){a.stopPropagation?a.stopPropagation():void 0!==a.cancelBubble&&a.cancelBubble!==!0&&(a.cancelBubble=!0),d(!0)}),g.onclick&&j.click(function(){g.onclick(),d()}),n(o),g.debug&&console&&console.log(o),j}function p(){return a.extend({},m(),v.options)}function q(a){r||(r=c()),a.is(":visible")||(a.remove(),a=null,0===r.children().length&&r.remove())}var r,s,t=0,u={error:"error",info:"info",success:"success",warning:"warning"},v={clear:h,remove:i,error:b,getContainer:c,info:d,options:{},subscribe:e,success:f,version:"2.0.3",warning:g};return v}()})}("function"==typeof define&&define.amd?define:function(a,b){"undefined"!=typeof module&&module.exports?module.exports=b(require("jquery")):window.toastr=b(window.jQuery)});

File diff suppressed because one or more lines are too long

BIN
node_modules/toastr-master/nuget/toastr.1.0.0.nupkg generated vendored Normal file

Binary file not shown.

35
node_modules/toastr-master/nuget/toastr.1.0.0.nuspec generated vendored Normal file
View File

@@ -0,0 +1,35 @@
<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
<metadata>
<version>1.0.0</version>
<authors>John Papa,Hans Fjällemark</authors>
<owners>John Papa,Hans Fjällemark</owners>
<licenseUrl>http://www.opensource.org/licenses/mit-license.php</licenseUrl>
<projectUrl>https://github.com/CodeSeven/toastr</projectUrl>
<dependencies>
<dependency id="jQuery" version="1.7.2" />
</dependencies>
<id>toastr</id>
<title>toastr</title>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>3 Easy Steps:
1) Link to toastr.css and toastr-responsive.css
2) Link to toastr.js
3) Use toastr to display a toast for info, success, warning or error
// Display an info toast with no title
toastr.info('Are you the 6 fingered man?')
*** For other API calls, see the demo</description>
<summary>toastr is a Javascript library for Gnome / Growl type non-blocking notifications. jQuery is required. The goal is to create a simple core library that can be customized and extended.</summary>
<copyright>Copyright © 2012 Hans Fjällemark &amp; John Papa.</copyright>
<language>en-US</language>
<tags>toastr, toast, notification, dialog, jquery</tags>
</metadata>
<files>
<file src="content\content\toastr-responsive.css" target="content\content\toastr-responsive.css" />
<file src="content\content\toastr.css" target="content\content\toastr.css" />
<file src="content\scripts\toastr.js" target="content\scripts\toastr.js" />
</files>
</package>

BIN
node_modules/toastr-master/nuget/toastr.1.0.1.nupkg generated vendored Normal file

Binary file not shown.

BIN
node_modules/toastr-master/nuget/toastr.1.0.1.nuspec generated vendored Normal file

Binary file not shown.

BIN
node_modules/toastr-master/nuget/toastr.1.0.2.nupkg generated vendored Normal file

Binary file not shown.

BIN
node_modules/toastr-master/nuget/toastr.1.0.2.nuspec generated vendored Normal file

Binary file not shown.

BIN
node_modules/toastr-master/nuget/toastr.1.0.3.nupkg generated vendored Normal file

Binary file not shown.

38
node_modules/toastr-master/nuget/toastr.1.0.3.nuspec generated vendored Normal file
View File

@@ -0,0 +1,38 @@
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
<metadata>
<id>toastr</id>
<version>1.0.2</version>
<title>toastr</title>
<authors>John Papa,Hans Fjällemark</authors>
<owners>John Papa,Hans Fjällemark</owners>
<licenseUrl>http://www.opensource.org/licenses/mit-license.php</licenseUrl>
<projectUrl>https://github.com/CodeSeven/toastr</projectUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>3 Easy Steps:
1) Link to toastr.css and toastr-responsive.css
2) Link to toastr.js
3) Use toastr to display a toast for info, success, warning or error
// Display an info toast with no title
toastr.info('Are you the 6 fingered man?')
*** For other API calls, see the demo</description>
<summary>toastr is a Javascript library for Gnome / Growl type non-blocking notifications. jQuery is required. The goal is to create a simple core library that can be customized and extended.</summary>
<releaseNotes>Minor updates for long unbroken string going outside toast and new feature to keep the toast around after hover-off for an extended timeout.
Set extendedTimeOut and timeOut to 0 to avoid toastr from fading away.</releaseNotes>
<copyright>Copyright © 2012 Hans Fjällemark &amp; John Papa.</copyright>
<language>en-US</language>
<tags>toastr, toast, notification, dialog, jquery</tags>
<dependencies>
<dependency id="jQuery" version="1.7.2" />
</dependencies>
</metadata>
<files>
<file src="content\content\toastr-responsive.css" target="content\content\toastr-responsive.css" />
<file src="content\content\toastr.css" target="content\content\toastr.css" />
<file src="content\scripts\toastr.js" target="content\scripts\toastr.js" />
</files>
</package>

BIN
node_modules/toastr-master/nuget/toastr.1.1.0.nupkg generated vendored Normal file

Binary file not shown.

35
node_modules/toastr-master/nuget/toastr.1.1.0.nuspec generated vendored Normal file
View File

@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
<metadata>
<id>toastr</id>
<version>1.1.0</version>
<title>toastr</title>
<authors>John Papa,Hans Fjällemark</authors>
<owners>John Papa,Hans Fjällemark</owners>
<licenseUrl>http://www.opensource.org/licenses/mit-license.php</licenseUrl>
<projectUrl>https://github.com/CodeSeven/toastr</projectUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>3 Easy Steps:
(1) Link to toastr.css
(2) Link to toastr.js
(3) Use toastr to display a toast for info, success, warning or error
// Display an info toast with no title
toastr.info('Are you the 6 fingered man?')
*** For other API calls, see the demo</description>
<summary>toastr is a Javascript library for Gnome / Growl type non-blocking notifications. jQuery is required. The goal is to create a simple core library that can be customized and extended.</summary>
<releaseNotes>Added AMD support (and backwards compat with non AMD), toastr.clear() method, optionsOverride API to be able to override options for each toast, added onclick callback option which fires when a user clicks the toast. Also cleaned CSS, merged CSS files into 1 file, and reduced jQuery dependency to v1.6.3</releaseNotes>
<copyright>Copyright © 2012 Hans Fjällemark &amp; John Papa.</copyright>
<language>en-US</language>
<tags>toastr, toast, notification, dialog, jquery</tags>
<dependencies>
<dependency id="jQuery" version="1.6.3" />
</dependencies>
</metadata>
<files>
<file src="content\content\toastr.css" target="content\content\toastr.css" />
<file src="content\scripts\toastr.js" target="content\scripts\toastr.js" />
</files>
</package>

BIN
node_modules/toastr-master/nuget/toastr.1.1.1.nupkg generated vendored Normal file

Binary file not shown.

35
node_modules/toastr-master/nuget/toastr.1.1.1.nuspec generated vendored Normal file
View File

@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
<metadata>
<id>toastr</id>
<version>1.1.1</version>
<title>toastr</title>
<authors>John Papa,Hans Fjällemark</authors>
<owners>John Papa,Hans Fjällemark</owners>
<licenseUrl>http://www.opensource.org/licenses/mit-license.php</licenseUrl>
<projectUrl>https://github.com/CodeSeven/toastr</projectUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>3 Easy Steps:
(1) Link to toastr.css
(2) Link to toastr.js
(3) Use toastr to display a toast for info, success, warning or error
// Display an info toast with no title
toastr.info('Are you the 6 fingered man?')
*** For other API calls, see the demo</description>
<summary>toastr is a Javascript library for Gnome / Growl type non-blocking notifications. jQuery is required. The goal is to create a simple core library that can be customized and extended.</summary>
<releaseNotes>Added AMD support (and backwards compat with non AMD), toastr.clear() method, optionsOverride API to be able to override options for each toast, added onclick callback option which fires when a user clicks the toast. Also cleaned CSS, merged CSS files into 1 file, and reduced jQuery dependency to v1.6.3</releaseNotes>
<copyright>Copyright © 2012 Hans Fjällemark &amp; John Papa.</copyright>
<language>en-US</language>
<tags>toastr, toast, notification, dialog, jquery</tags>
<dependencies>
<dependency id="jQuery" version="1.6.3" />
</dependencies>
</metadata>
<files>
<file src="content\content\toastr.css" target="content\content\toastr.css" />
<file src="content\scripts\toastr.js" target="content\scripts\toastr.js" />
</files>
</package>

BIN
node_modules/toastr-master/nuget/toastr.1.1.2.nupkg generated vendored Normal file

Binary file not shown.

35
node_modules/toastr-master/nuget/toastr.1.1.2.nuspec generated vendored Normal file
View File

@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
<metadata>
<id>toastr</id>
<version>1.1.2</version>
<title>toastr</title>
<authors>John Papa,Hans Fjällemark</authors>
<owners>John Papa,Hans Fjällemark</owners>
<licenseUrl>http://www.opensource.org/licenses/mit-license.php</licenseUrl>
<projectUrl>https://github.com/CodeSeven/toastr</projectUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>3 Easy Steps:
(1) Link to toastr.css
(2) Link to toastr.js
(3) Use toastr to display a toast for info, success, warning or error
// Display an info toast with no title
toastr.info('Are you the 6 fingered man?')
*** For other API calls, see the demo</description>
<summary>toastr is a Javascript library for Gnome / Growl type non-blocking notifications. jQuery is required. The goal is to create a simple core library that can be customized and extended.</summary>
<releaseNotes>Added AMD support (and backwards compat with non AMD), toastr.clear() method clears 1 or all toasts, optionsOverride API to be able to override options for each toast, added onclick callback option which fires when a user clicks the toast. Also cleaned CSS, merged CSS files into 1 file, and reduced jQuery dependency to v1.6.3</releaseNotes>
<copyright>Copyright © 2012 Hans Fjällemark &amp; John Papa.</copyright>
<language>en-US</language>
<tags>toastr, toast, notification, dialog, jquery</tags>
<dependencies>
<dependency id="jQuery" version="1.6.3" />
</dependencies>
</metadata>
<files>
<file src="content\content\toastr.css" target="content\content\toastr.css" />
<file src="content\scripts\toastr.js" target="content\scripts\toastr.js" />
</files>
</package>

BIN
node_modules/toastr-master/nuget/toastr.1.1.3.nupkg generated vendored Normal file

Binary file not shown.

BIN
node_modules/toastr-master/nuget/toastr.1.1.4.1.nupkg generated vendored Normal file

Binary file not shown.

40
node_modules/toastr-master/nuget/toastr.1.1.4.1.nuspec generated vendored Normal file
View File

@@ -0,0 +1,40 @@
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
<metadata>
<id>toastr</id>
<version>1.1.4.1</version>
<title>toastr</title>
<authors>John Papa,Hans Fjällemark</authors>
<owners>John Papa,Hans Fjällemark</owners>
<licenseUrl>http://www.opensource.org/licenses/mit-license.php</licenseUrl>
<projectUrl>https://github.com/CodeSeven/toastr</projectUrl>
<iconUrl>http://johnpapa.net/wp-content/images/toastr-icon.png</iconUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>3 Easy Steps:
(1) Link to toastr.css
(2) Link to toastr.js
(3) Use toastr to display a toast for info, success, warning or error
// Display an info toast with no title
toastr.info('Are you the 6 fingered man?')
*** For other API calls, see the demo</description>
<summary>toastr is a Javascript library for Gnome / Growl type non-blocking notifications. jQuery is required. The goal is to create a simple core library that can be customized and extended.</summary>
<releaseNotes>Added AMD support (and backwards compat with non AMD), toastr.clear() method clears 1 or all toasts, optionsOverride API to be able to override options for each toast, added onclick callback option which fires when a user clicks the toast. Also cleaned CSS, merged CSS files into 1 file, and reduced jQuery dependency to v1.6.3
Fix to the toastr.min.js file</releaseNotes>
<copyright>Copyright © 2012 Hans Fjällemark &amp; John Papa.</copyright>
<language>en-US</language>
<tags>toastr, toast, notification, dialog, jquery</tags>
<dependencies>
<dependency id="jQuery" version="1.6.3" />
</dependencies>
</metadata>
<files>
<file src="content\content\toastr.css" target="content\content\toastr.css" />
<file src="content\content\toastr.min.css" target="content\content\toastr.min.css" />
<file src="content\scripts\toastr.js" target="content\scripts\toastr.js" />
<file src="content\scripts\toastr.min.js" target="content\scripts\toastr.min.js" />
</files>
</package>

BIN
node_modules/toastr-master/nuget/toastr.1.1.4.2.nupkg generated vendored Normal file

Binary file not shown.

40
node_modules/toastr-master/nuget/toastr.1.1.4.2.nuspec generated vendored Normal file
View File

@@ -0,0 +1,40 @@
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
<metadata>
<id>toastr</id>
<version>1.1.4.2</version>
<title>toastr</title>
<authors>John Papa,Hans Fjällemark</authors>
<owners>John Papa,Hans Fjällemark</owners>
<licenseUrl>http://www.opensource.org/licenses/mit-license.php</licenseUrl>
<projectUrl>https://github.com/CodeSeven/toastr</projectUrl>
<iconUrl>http://johnpapa.net/wp-content/images/toastr-icon.png</iconUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>3 Easy Steps:
(1) Link to toastr.css
(2) Link to toastr.js
(3) Use toastr to display a toast for info, success, warning or error
// Display an info toast with no title
toastr.info('Are you the 6 fingered man?')
*** For other API calls, see the demo</description>
<summary>toastr is a Javascript library for Gnome / Growl type non-blocking notifications. jQuery is required. The goal is to create a simple core library that can be customized and extended.</summary>
<releaseNotes>Added AMD support (and backwards compat with non AMD), toastr.clear() method clears 1 or all toasts, optionsOverride API to be able to override options for each toast, added onclick callback option which fires when a user clicks the toast. Also cleaned CSS, merged CSS files into 1 file, and reduced jQuery dependency to v1.6.3
Fix to the toastr.min.js file</releaseNotes>
<copyright>Copyright © 2012 Hans Fjällemark &amp; John Papa.</copyright>
<language>en-US</language>
<tags>toastr, toast, notification, dialog, jquery</tags>
<dependencies>
<dependency id="jQuery" version="1.6.3" />
</dependencies>
</metadata>
<files>
<file src="content\content\toastr.css" target="content\content\toastr.css" />
<file src="content\content\toastr.min.css" target="content\content\toastr.min.css" />
<file src="..\..\..\..\_github\CodeSeven\toastr\master\toastr.js" target="content\scripts\toastr.js" />
<file src="..\..\..\..\_github\CodeSeven\toastr\master\toastr.min.js" target="content\scripts\toastr.min.js" />
</files>
</package>

BIN
node_modules/toastr-master/nuget/toastr.1.1.4.nupkg generated vendored Normal file

Binary file not shown.

40
node_modules/toastr-master/nuget/toastr.1.1.4.nuspec generated vendored Normal file
View File

@@ -0,0 +1,40 @@
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
<metadata>
<id>toastr</id>
<version>1.1.4</version>
<title>toastr</title>
<authors>John Papa,Hans Fjällemark</authors>
<owners>John Papa,Hans Fjällemark</owners>
<licenseUrl>http://www.opensource.org/licenses/mit-license.php</licenseUrl>
<projectUrl>https://github.com/CodeSeven/toastr</projectUrl>
<iconUrl>http://johnpapa.net/wp-content/images/toastr-icon.png</iconUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>3 Easy Steps:
(1) Link to toastr.css
(2) Link to toastr.js
(3) Use toastr to display a toast for info, success, warning or error
// Display an info toast with no title
toastr.info('Are you the 6 fingered man?')
*** For other API calls, see the demo</description>
<summary>toastr is a Javascript library for Gnome / Growl type non-blocking notifications. jQuery is required. The goal is to create a simple core library that can be customized and extended.</summary>
<releaseNotes>Added AMD support (and backwards compat with non AMD), toastr.clear() method clears 1 or all toasts, optionsOverride API to be able to override options for each toast, added onclick callback option which fires when a user clicks the toast. Also cleaned CSS, merged CSS files into 1 file, and reduced jQuery dependency to v1.6.3
Fix to the toastr.min.js file</releaseNotes>
<copyright>Copyright © 2012 Hans Fjällemark &amp; John Papa.</copyright>
<language>en-US</language>
<tags>toastr, toast, notification, dialog, jquery</tags>
<dependencies>
<dependency id="jQuery" version="1.6.3" />
</dependencies>
</metadata>
<files>
<file src="content\content\toastr.css" target="content\content\toastr.css" />
<file src="content\content\toastr.min.css" target="content\content\toastr.min.css" />
<file src="content\scripts\toastr.js" target="content\scripts\toastr.js" />
<file src="content\scripts\toastr.min.js" target="content\scripts\toastr.min.js" />
</files>
</package>

BIN
node_modules/toastr-master/nuget/toastr.1.1.5.nupkg generated vendored Normal file

Binary file not shown.

38
node_modules/toastr-master/nuget/toastr.1.1.5.nuspec generated vendored Normal file
View File

@@ -0,0 +1,38 @@
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
<metadata>
<id>toastr</id>
<version>1.1.5</version>
<title>toastr</title>
<authors>John Papa,Hans Fjällemark</authors>
<owners>John Papa,Hans Fjällemark</owners>
<licenseUrl>http://www.opensource.org/licenses/mit-license.php</licenseUrl>
<projectUrl>https://github.com/CodeSeven/toastr</projectUrl>
<iconUrl>http://johnpapa.net/wp-content/images/toastr-icon.png</iconUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>3 Easy Steps:
(1) Link to toastr.css
(2) Link to toastr.js
(3) Use toastr to display a toast for info, success, warning or error
// Display an info toast with no title
toastr.info('Are you the 6 fingered man?')
*** For other API calls, see the demo</description>
<summary>toastr is a Javascript library for Gnome / Growl type non-blocking notifications. jQuery is required. The goal is to create a simple core library that can be customized and extended.</summary>
<releaseNotes>Now using SemVer for JavaScript files.</releaseNotes>
<copyright>Copyright © 2012 Hans Fjällemark &amp; John Papa.</copyright>
<language>en-US</language>
<tags>toastr, toast, notification, dialog, jquery</tags>
<dependencies>
<dependency id="jQuery" version="1.6.3" />
</dependencies>
</metadata>
<files>
<file src="content\content\toastr.css" target="content\content\toastr.css" />
<file src="content\content\toastr.min.css" target="content\content\toastr.min.css" />
<file src="content\scripts\toastr-1.1.5.js" target="content\scripts\toastr-1.1.5.js" />
<file src="content\scripts\toastr-1.1.5.min.js" target="content\scripts\toastr-1.1.5.min.js" />
</files>
</package>

BIN
node_modules/toastr-master/nuget/toastr.1.2.0.nupkg generated vendored Normal file

Binary file not shown.

40
node_modules/toastr-master/nuget/toastr.1.2.0.nuspec generated vendored Normal file
View File

@@ -0,0 +1,40 @@
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
<metadata>
<id>toastr</id>
<version>1.2.0</version>
<title>toastr</title>
<authors>John Papa,Hans Fjällemark</authors>
<owners>John Papa,Hans Fjällemark</owners>
<licenseUrl>http://www.opensource.org/licenses/mit-license.php</licenseUrl>
<projectUrl>https://github.com/CodeSeven/toastr</projectUrl>
<iconUrl>http://johnpapa.net/wp-content/images/toastr-icon.png</iconUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>3 Easy Steps:
(1) Link to toastr.css
(2) Link to toastr.js
(3) Use toastr to display a toast for info, success, warning or error
// Display an info toast with no title
toastr.info('Are you the 6 fingered man?')
*** For other API calls, see the demo</description>
<summary>toastr is a Javascript library for Gnome / Growl type non-blocking notifications. jQuery is required. The goal is to create a simple core library that can be customized and extended.</summary>
<releaseNotes>Added getContainer().
Fixed clear() bug.
Removed semver from file name.</releaseNotes>
<copyright>Copyright © 2012 Hans Fjällemark &amp; John Papa.</copyright>
<language>en-US</language>
<tags>toastr, toast, notification, dialog, jquery</tags>
<dependencies>
<dependency id="jQuery" version="1.6.3" />
</dependencies>
</metadata>
<files>
<file src="content\content\toastr.css" target="content\content\toastr.css" />
<file src="content\content\toastr.min.css" target="content\content\toastr.min.css" />
<file src="content\scripts\toastr.js" target="content\scripts\toastr.js" />
<file src="content\scripts\toastr.min.js" target="content\scripts\toastr.min.js" />
</files>
</package>

BIN
node_modules/toastr-master/nuget/toastr.1.2.1.nupkg generated vendored Normal file

Binary file not shown.

40
node_modules/toastr-master/nuget/toastr.1.2.1.nuspec generated vendored Normal file
View File

@@ -0,0 +1,40 @@
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
<metadata>
<id>toastr</id>
<version>1.2.1</version>
<title>toastr</title>
<authors>John Papa,Hans Fjällemark</authors>
<owners>John Papa,Hans Fjällemark</owners>
<licenseUrl>http://www.opensource.org/licenses/mit-license.php</licenseUrl>
<projectUrl>https://github.com/CodeSeven/toastr</projectUrl>
<iconUrl>http://johnpapa.net/wp-content/images/toastr-icon.png</iconUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>3 Easy Steps:
(1) Link to toastr.css
(2) Link to toastr.js
(3) Use toastr to display a toast for info, success, warning or error
// Display an info toast with no title
toastr.info('Are you the 6 fingered man?')
*** For other API calls, see the demo</description>
<summary>toastr is a Javascript library for Gnome / Growl type non-blocking notifications. jQuery is required. The goal is to create a simple core library that can be customized and extended.</summary>
<releaseNotes>Added getContainer().
Fixed clear() bug.
Removed semver from file name.</releaseNotes>
<copyright>Copyright © 2012 Hans Fjällemark &amp; John Papa.</copyright>
<language>en-US</language>
<tags>toastr, toast, notification, dialog, jquery</tags>
<dependencies>
<dependency id="jQuery" version="1.6.3" />
</dependencies>
</metadata>
<files>
<file src="content\content\toastr.css" target="content\content\toastr.css" />
<file src="content\content\toastr.min.css" target="content\content\toastr.min.css" />
<file src="content\scripts\toastr.js" target="content\scripts\toastr.js" />
<file src="content\scripts\toastr.min.js" target="content\scripts\toastr.min.js" />
</files>
</package>

BIN
node_modules/toastr-master/nuget/toastr.1.2.2.nupkg generated vendored Normal file

Binary file not shown.

40
node_modules/toastr-master/nuget/toastr.1.2.2.nuspec generated vendored Normal file
View File

@@ -0,0 +1,40 @@
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
<metadata>
<id>toastr</id>
<version>1.2.2</version>
<title>toastr</title>
<authors>John Papa,Hans Fjällemark</authors>
<owners>John Papa,Hans Fjällemark</owners>
<licenseUrl>http://www.opensource.org/licenses/mit-license.php</licenseUrl>
<projectUrl>https://github.com/CodeSeven/toastr</projectUrl>
<iconUrl>http://johnpapa.net/wp-content/images/toastr-icon.png</iconUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>3 Easy Steps:
(1) Link to toastr.css
(2) Link to toastr.js
(3) Use toastr to display a toast for info, success, warning or error
// Display an info toast with no title
toastr.info('Are you the 6 fingered man?')
*** For other API calls, see the demo</description>
<summary>toastr is a Javascript library for Gnome / Growl type non-blocking notifications. jQuery is required. The goal is to create a simple core library that can be customized and extended.</summary>
<releaseNotes>Added getContainer().
Fixed clear() bug.
Removed semver from file name.</releaseNotes>
<copyright>Copyright © 2012 Hans Fjällemark &amp; John Papa.</copyright>
<language>en-US</language>
<tags>toastr, toast, notification, dialog, jquery</tags>
<dependencies>
<dependency id="jQuery" version="1.6.3" />
</dependencies>
</metadata>
<files>
<file src="content\content\toastr.css" target="content\content\toastr.css" />
<file src="content\content\toastr.min.css" target="content\content\toastr.min.css" />
<file src="content\scripts\toastr.js" target="content\scripts\toastr.js" />
<file src="content\scripts\toastr.min.js" target="content\scripts\toastr.min.js" />
</files>
</package>

BIN
node_modules/toastr-master/nuget/toastr.1.3.0.nupkg generated vendored Normal file

Binary file not shown.

48
node_modules/toastr-master/nuget/toastr.1.3.0.nuspec generated vendored Normal file
View File

@@ -0,0 +1,48 @@
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
<metadata>
<id>toastr</id>
<version>1.3.0</version>
<title>toastr</title>
<authors>John Papa,Hans Fjällemark</authors>
<owners>John Papa,Hans Fjällemark</owners>
<licenseUrl>http://www.opensource.org/licenses/mit-license.php</licenseUrl>
<projectUrl>https://github.com/CodeSeven/toastr</projectUrl>
<iconUrl>http://johnpapa.net/wp-content/images/toastr-icon.png</iconUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>3 Easy Steps:
(1) Link to toastr.css
(2) Link to toastr.js
(3) Use toastr to display a toast for info, success, warning or error
// Display an info toast with no title
toastr.info('Are you the 6 fingered man?')
*** For other API calls, see the demo</description>
<summary>toastr is a Javascript library for Gnome / Growl type non-blocking notifications. jQuery is required. The goal is to create a simple core library that can be customized and extended.</summary>
<releaseNotes>Added onFadeIn and onFadeOut callbacks.
toastr.options.onFadeIn = function() { console.log('hello'); }
Added option &lt;code&gt;newestOnTop&lt;/code&gt; to show toasts in oldest or newest first order.
toastr.options.newestOnTop = false;
Fixed margins on full width toasts
Added LESS file.
Added min file for JS and CSS
Added missing vendor prefixes in CSS.
Various minor bug fixes.
Added unit tests for new features.</releaseNotes>
<copyright>Copyright © 2012 Hans Fjällemark &amp; John Papa.</copyright>
<language>en-US</language>
<tags>toastr, toast, notification, dialog, jquery</tags>
<dependencies>
<dependency id="jQuery" version="1.6.3" />
</dependencies>
</metadata>
<files>
<file src="content\content\toastr.css" target="content\content\toastr.css" />
<file src="content\content\toastr.less" target="content\content\toastr.less" />
<file src="content\content\toastr.min.css" target="content\content\toastr.min.css" />
<file src="content\scripts\toastr.js" target="content\scripts\toastr.js" />
<file src="content\scripts\toastr.min.js" target="content\scripts\toastr.min.js" />
</files>
</package>

BIN
node_modules/toastr-master/nuget/toastr.1.3.1.nupkg generated vendored Normal file

Binary file not shown.

63
node_modules/toastr-master/nuget/toastr.1.3.1.nuspec generated vendored Normal file
View File

@@ -0,0 +1,63 @@
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
<metadata>
<id>toastr</id>
<version>1.3.1</version>
<title>toastr</title>
<authors>John Papa,Hans Fjällemark</authors>
<owners>John Papa,Hans Fjällemark</owners>
<licenseUrl>http://www.opensource.org/licenses/mit-license.php</licenseUrl>
<projectUrl>https://github.com/CodeSeven/toastr</projectUrl>
<iconUrl>http://johnpapa.net/wp-content/images/toastr-icon.png</iconUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>3 Easy Steps:
(1) Link to toastr.css
(2) Link to toastr.js
(3) Use toastr to display a toast for info, success, warning or error
// Display an info toast with no title
toastr.info('Are you the 6 fingered man?')
*** For other API calls, see the demo</description>
<summary>toastr is a Javascript library for Gnome / Growl type non-blocking notifications. jQuery is required. The goal is to create a simple core library that can be customized and extended.</summary>
<releaseNotes>v.1.3.1
Added new API for toastr.subscribe so you can be alerted when toasts appear and disappear.
toastr.subscribe(function (args) {
// args contains the toast options and data
}
Added support for glimpse.toastr.js plugin. https://github.com/johnpapa/glimpse.toastr
Added toastId, state (visible/hidden), startTime and endTime to the toastr info response (available in the coneol, glimpse.toastr plugin, or via the subscribe callback).
Fixed bug with stacking toasts when clear all toasts occurs first.
v1.2.2
Added onFadeIn and onFadeOut callbacks.
toastr.options.onFadeIn = function() { console.log('hello'); }
Added option &lt;code&gt;newestOnTop&lt;/code&gt; to show toasts in oldest or newest first order.
toastr.options.newestOnTop = false;
Fixed margins on full width toasts
Added LESS file.
Added min file for JS and CSS
Added missing vendor prefixes in CSS.
Various minor bug fixes.
Added unit tests for new features.</releaseNotes>
<copyright>Copyright © 2012 Hans Fjällemark &amp; John Papa.</copyright>
<language>en-US</language>
<tags>toastr, toast, notification, dialog, jquery</tags>
<dependencies>
<dependency id="jQuery" version="1.6.3" />
</dependencies>
</metadata>
<files>
<file src="content\content\toastr.css" target="content\content\toastr.css" />
<file src="content\content\toastr.less" target="content\content\toastr.less" />
<file src="content\content\toastr.min.css" target="content\content\toastr.min.css" />
<file src="content\scripts\toastr.js" target="content\scripts\toastr.js" />
<file src="content\scripts\toastr.min.js" target="content\scripts\toastr.min.js" />
</files>
</package>

BIN
node_modules/toastr-master/nuget/toastr.2.0.0-rc1.nupkg generated vendored Normal file

Binary file not shown.

View File

@@ -0,0 +1,49 @@
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2011/10/nuspec.xsd">
<metadata>
<id>toastr</id>
<version>2.0.0-rc1</version>
<title>toastr</title>
<authors>John Papa,Hans Fjällemark</authors>
<owners>John Papa,Hans Fjällemark</owners>
<licenseUrl>http://www.opensource.org/licenses/mit-license.php</licenseUrl>
<projectUrl>http://toastrjs.com/</projectUrl>
<iconUrl>http://johnpapa.net/wp-content/images/toastr-icon.png</iconUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>3 Easy Steps:
(1) Link to toastr.css
(2) Link to toastr.js
(3) Use toastr to display a toast for info, success, warning or error
// Display an info toast with no title
toastr.info('Are you the 6 fingered man?')
*** For other API calls, see the demo</description>
<summary>Toastr is a JavaScript library for non-blocking notifications. jQuery is required. The goal is to create a simple core library that can be customized and extended.</summary>
<releaseNotes>The following animations options have been deprecated and should be replaced:
Replace options.fadeIn with options.showDuration
Replace options.onFadeIn with options.onShown
Replace options.fadeOut with options.hideDuration
Replace options.onFadeOut with options.onHidden
Optional 'close' button, bug fixes, and improved responsive design.
For other changes, see http://toastrjs.com</releaseNotes>
<copyright>Copyright © 2012 Hans Fjällemark &amp; John Papa.</copyright>
<language>en-US</language>
<tags>toastr, toast, notification, dialog, jquery</tags>
<dependencies>
<dependency id="jQuery" version="1.6.3" />
</dependencies>
</metadata>
<files>
<file src="content\content\toastr.css" target="content\content\toastr.css" />
<file src="content\content\toastr.less" target="content\content\toastr.less" />
<file src="content\content\toastr.min.css" target="content\content\toastr.min.css" />
<file src="content\scripts\toastr.js" target="content\scripts\toastr.js" />
<file src="content\scripts\toastr.min.js" target="content\scripts\toastr.min.js" />
<file src="content\scripts\toastr.min.js.map" target="content\scripts\toastr.min.js.map" />
</files>
</package>

BIN
node_modules/toastr-master/nuget/toastr.2.0.1.nupkg generated vendored Normal file

Binary file not shown.

49
node_modules/toastr-master/nuget/toastr.2.0.1.nuspec generated vendored Normal file
View File

@@ -0,0 +1,49 @@
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
<metadata>
<id>toastr</id>
<version>2.0.1</version>
<title>toastr</title>
<authors>John Papa,Hans Fjällemark</authors>
<owners>John Papa,Hans Fjällemark</owners>
<licenseUrl>http://www.opensource.org/licenses/mit-license.php</licenseUrl>
<projectUrl>http://toastrjs.com/</projectUrl>
<iconUrl>http://johnpapa.net/wp-content/images/toastr-icon.png</iconUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>3 Easy Steps:
(1) Link to toastr.css
(2) Link to toastr.js
(3) Use toastr to display a toast for info, success, warning or error
// Display an info toast with no title
toastr.info('Are you the 6 fingered man?')
*** For other API calls, see the demo</description>
<summary>Toastr is a JavaScript library for non-blocking notifications. jQuery is required. The goal is to create a simple core library that can be customized and extended.</summary>
<releaseNotes>The following animations options have been deprecated and should be replaced:
Replace options.fadeIn with options.showDuration
Replace options.onFadeIn with options.onShown
Replace options.fadeOut with options.hideDuration
Replace options.onFadeOut with options.onHidden
Optional 'close' button, bug fixes, and improved responsive design.
For other changes, see http://toastrjs.com</releaseNotes>
<copyright>Copyright © 2012 Hans Fjällemark &amp; John Papa.</copyright>
<language>en-US</language>
<tags>toastr, toast, notification, dialog, jquery</tags>
<dependencies>
<dependency id="jQuery" version="1.6.3" />
</dependencies>
</metadata>
<files>
<file src="content\content\toastr.css" target="content\content\toastr.css" />
<file src="content\content\toastr.less" target="content\content\toastr.less" />
<file src="content\content\toastr.min.css" target="content\content\toastr.min.css" />
<file src="content\scripts\toastr.js" target="content\scripts\toastr.js" />
<file src="content\scripts\toastr.min.js" target="content\scripts\toastr.min.js" />
<file src="content\scripts\toastr.min.js.map" target="content\scripts\toastr.min.js.map" />
</files>
</package>

BIN
node_modules/toastr-master/nuget/toastr.2.0.2.nupkg generated vendored Normal file

Binary file not shown.

41
node_modules/toastr-master/nuget/toastr.2.0.2.nuspec generated vendored Normal file
View File

@@ -0,0 +1,41 @@
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
<metadata>
<id>toastr</id>
<version>2.0.2</version>
<title>toastr</title>
<authors>John Papa,Hans Fjällemark</authors>
<owners>John Papa,Hans Fjällemark</owners>
<licenseUrl>http://www.opensource.org/licenses/mit-license.php</licenseUrl>
<projectUrl>http://toastrjs.com/</projectUrl>
<iconUrl>http://johnpapa.net/wp-content/images/toastr-icon.png</iconUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>3 Easy Steps:
(1) Link to toastr.css
(2) Link to toastr.js
(3) Use toastr to display a toast for info, success, warning or error
// Display an info toast with no title
toastr.info('Are you the 6 fingered man?')
*** For other API calls, see the demo</description>
<summary>Toastr is a JavaScript library for non-blocking notifications. jQuery is required. The goal is to create a simple core library that can be customized and extended.</summary>
<releaseNotes>Change log: https://github.com/CodeSeven/toastr/blob/master/CHANGELOG.md</releaseNotes>
<copyright>Copyright © 2012-2014 Hans Fjällemark &amp; John Papa.</copyright>
<language>en-US</language>
<tags>toastr, toast, notification, dialog, jquery</tags>
<dependencies>
<dependency id="jQuery" version="1.6.3" />
</dependencies>
</metadata>
<files>
<file src="content\content\toastr.css" target="content\content\toastr.css" />
<file src="content\content\toastr.less" target="content\content\toastr.less" />
<file src="content\content\toastr.min.css" target="content\content\toastr.min.css" />
<file src="content\content\toastr.scss" target="content\content\toastr.scss" />
<file src="content\scripts\toastr.js" target="content\scripts\toastr.js" />
<file src="content\scripts\toastr.min.js" target="content\scripts\toastr.min.js" />
<file src="content\scripts\toastr.min.js.map" target="content\scripts\toastr.min.js.map" />
</files>
</package>

BIN
node_modules/toastr-master/nuget/toastr.2.0.3.nupkg generated vendored Normal file

Binary file not shown.

41
node_modules/toastr-master/nuget/toastr.2.0.3.nuspec generated vendored Normal file
View File

@@ -0,0 +1,41 @@
<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
<metadata>
<id>toastr</id>
<version>2.0.3</version>
<title>toastr</title>
<authors>John Papa,Hans Fjällemark</authors>
<owners>John Papa,Hans Fjällemark</owners>
<licenseUrl>http://www.opensource.org/licenses/mit-license.php</licenseUrl>
<projectUrl>http://toastrjs.com/</projectUrl>
<iconUrl>http://johnpapa.net/wp-content/images/toastr-icon.png</iconUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>3 Easy Steps:
(1) Link to toastr.css
(2) Link to toastr.js
(3) Use toastr to display a toast for info, success, warning or error
// Display an info toast with no title
toastr.info('Are you the 6 fingered man?')
*** For other API calls, see the demo</description>
<summary>Toastr is a JavaScript library for non-blocking notifications. jQuery is required. The goal is to create a simple core library that can be customized and extended.</summary>
<releaseNotes>Change log: https://github.com/CodeSeven/toastr/blob/master/CHANGELOG.md</releaseNotes>
<copyright>Copyright © 2012-2014 Hans Fjällemark &amp; John Papa.</copyright>
<language>en-US</language>
<tags>toastr, toast, notification, dialog, jquery</tags>
<dependencies>
<dependency id="jQuery" version="1.6.3" />
</dependencies>
</metadata>
<files>
<file src="content\content\toastr.css" target="content\content\toastr.css" />
<file src="content\content\toastr.less" target="content\content\toastr.less" />
<file src="content\content\toastr.min.css" target="content\content\toastr.min.css" />
<file src="content\content\toastr.scss" target="content\content\toastr.scss" />
<file src="content\scripts\toastr.js" target="content\scripts\toastr.js" />
<file src="content\scripts\toastr.min.js" target="content\scripts\toastr.min.js" />
<file src="content\scripts\toastr.min.js.map" target="content\scripts\toastr.min.js.map" />
</files>
</package>

67
node_modules/toastr-master/package.json generated vendored Normal file
View File

@@ -0,0 +1,67 @@
{
"name": "toastr",
"filename": "build/toastr.min.js",
"main": "toastr.js",
"style": "build/toastr.min.css",
"version": "2.1.2",
"description": "ToastrJS is a JavaScript library for Gnome / Growl type non-blocking notifications. jQuery is required. The goal is to create a simple core library that can be customized and extended.",
"homepage": "http://www.toastrjs.com",
"keywords": [
"Toastr",
"ToastrJS",
"toastr.js"
],
"maintainers": [
{
"name": "John Papa",
"web": "http://www.johnpapa.net",
"twitter": "@john_papa"
},
{
"name": "Tim Ferrell",
"web": "https://twitter.com/ferrell_tim",
"twitter": "@ferrell_tim"
}
],
"repository": {
"type": "git",
"url": "git://github.com/CodeSeven/toastr.git"
},
"bugs": "http://stackoverflow.com/questions/tagged/toastr",
"licenses": [
{
"type": "MIT",
"url": "http://www.opensource.org/licenses/mit-license.php"
}
],
"devDependencies": {
"del": "^0.1.3",
"glob": "^4.0.6",
"gulp": "^3.8.10",
"gulp-bytediff": "^0.2.0",
"gulp-jscs": "^1.3.0",
"gulp-jshint": "^1.9.0",
"gulp-less": "^3.0.3",
"gulp-load-plugins": "^0.7.1",
"gulp-load-utils": "0.0.4",
"gulp-minify-css": "^0.3.11",
"gulp-rename": "^1.2.0",
"gulp-sourcemaps": "^1.2.8",
"gulp-task-listing": "^0.3.0",
"gulp-uglify": "^1.0.1",
"gulp-util": "^3.0.1",
"jquery": "^2.1.1",
"jshint-stylish": "^1.0.0",
"karma": "^0.12.25",
"karma-coverage": "^0.2.6",
"karma-phantomjs-launcher": "^0.1.4",
"karma-qunit": "^0.1.3",
"merge-stream": "^0.1.6",
"phantomjs": "^1.9.7-15",
"plato": "^1.2.2",
"qunitjs": "~1.14.0"
},
"scripts": {
"test": "gulp test"
}
}

32
node_modules/toastr-master/release checklist.md generated vendored Normal file
View File

@@ -0,0 +1,32 @@
Toastr Release Checklist
1. Update Toastr Version
* toastr.js
* bower.json (toastr-bower repo)
* package.json
* nuget versions and dependency versions
* readme file for github repo
* Consider HotTowel VSIX
2. Gulp
* run main demo
* `gulp analyze`
* `gulp test`
* `gulp`
3. Nuget
* Copy new files in
* Build
* Test
4. CDNJS
* Update CDNJS
5. Update Website with New Downloads
6. Publish Bower
* Include License and Readme
* Test Locally
* Update Github repo toastr-bower
* Github tag
* Register with Bower
7. Publish Nugets
8. Release on Github
* Tag with semver
* Attach all artifacts
9. Blog post

244
node_modules/toastr-master/tests/qunit/qunit.css generated vendored Normal file
View File

@@ -0,0 +1,244 @@
/**
* QUnit v1.12.0 - A JavaScript Unit Testing Framework
*
* http://qunitjs.com
*
* Copyright 2012 jQuery Foundation and other contributors
* Released under the MIT license.
* http://jquery.org/license
*/
/** Font Family and Sizes */
#qunit-tests, #qunit-header, #qunit-banner, #qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult {
font-family: "Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif;
}
#qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult, #qunit-tests li { font-size: small; }
#qunit-tests { font-size: smaller; }
/** Resets */
#qunit-tests, #qunit-header, #qunit-banner, #qunit-userAgent, #qunit-testresult, #qunit-modulefilter {
margin: 0;
padding: 0;
}
/** Header */
#qunit-header {
padding: 0.5em 0 0.5em 1em;
color: #8699a4;
background-color: #0d3349;
font-size: 1.5em;
line-height: 1em;
font-weight: normal;
border-radius: 5px 5px 0 0;
-moz-border-radius: 5px 5px 0 0;
-webkit-border-top-right-radius: 5px;
-webkit-border-top-left-radius: 5px;
}
#qunit-header a {
text-decoration: none;
color: #c2ccd1;
}
#qunit-header a:hover,
#qunit-header a:focus {
color: #fff;
}
#qunit-testrunner-toolbar label {
display: inline-block;
padding: 0 .5em 0 .1em;
}
#qunit-banner {
height: 5px;
}
#qunit-testrunner-toolbar {
padding: 0.5em 0 0.5em 2em;
color: #5E740B;
background-color: #eee;
overflow: hidden;
}
#qunit-userAgent {
padding: 0.5em 0 0.5em 2.5em;
background-color: #2b81af;
color: #fff;
text-shadow: rgba(0, 0, 0, 0.5) 2px 2px 1px;
}
#qunit-modulefilter-container {
float: right;
}
/** Tests: Pass/Fail */
#qunit-tests {
list-style-position: inside;
}
#qunit-tests li {
padding: 0.4em 0.5em 0.4em 2.5em;
border-bottom: 1px solid #fff;
list-style-position: inside;
}
#qunit-tests.hidepass li.pass, #qunit-tests.hidepass li.running {
display: none;
}
#qunit-tests li strong {
cursor: pointer;
}
#qunit-tests li a {
padding: 0.5em;
color: #c2ccd1;
text-decoration: none;
}
#qunit-tests li a:hover,
#qunit-tests li a:focus {
color: #000;
}
#qunit-tests li .runtime {
float: right;
font-size: smaller;
}
.qunit-assert-list {
margin-top: 0.5em;
padding: 0.5em;
background-color: #fff;
border-radius: 5px;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
}
.qunit-collapsed {
display: none;
}
#qunit-tests table {
border-collapse: collapse;
margin-top: .2em;
}
#qunit-tests th {
text-align: right;
vertical-align: top;
padding: 0 .5em 0 0;
}
#qunit-tests td {
vertical-align: top;
}
#qunit-tests pre {
margin: 0;
white-space: pre-wrap;
word-wrap: break-word;
}
#qunit-tests del {
background-color: #e0f2be;
color: #374e0c;
text-decoration: none;
}
#qunit-tests ins {
background-color: #ffcaca;
color: #500;
text-decoration: none;
}
/*** Test Counts */
#qunit-tests b.counts { color: black; }
#qunit-tests b.passed { color: #5E740B; }
#qunit-tests b.failed { color: #710909; }
#qunit-tests li li {
padding: 5px;
background-color: #fff;
border-bottom: none;
list-style-position: inside;
}
/*** Passing Styles */
#qunit-tests li li.pass {
color: #3c510c;
background-color: #fff;
border-left: 10px solid #C6E746;
}
#qunit-tests .pass { color: #528CE0; background-color: #D2E0E6; }
#qunit-tests .pass .test-name { color: #366097; }
#qunit-tests .pass .test-actual,
#qunit-tests .pass .test-expected { color: #999999; }
#qunit-banner.qunit-pass { background-color: #C6E746; }
/*** Failing Styles */
#qunit-tests li li.fail {
color: #710909;
background-color: #fff;
border-left: 10px solid #EE5757;
white-space: pre;
}
#qunit-tests > li:last-child {
border-radius: 0 0 5px 5px;
-moz-border-radius: 0 0 5px 5px;
-webkit-border-bottom-right-radius: 5px;
-webkit-border-bottom-left-radius: 5px;
}
#qunit-tests .fail { color: #000000; background-color: #EE5757; }
#qunit-tests .fail .test-name,
#qunit-tests .fail .module-name { color: #000000; }
#qunit-tests .fail .test-actual { color: #EE5757; }
#qunit-tests .fail .test-expected { color: green; }
#qunit-banner.qunit-fail { background-color: #EE5757; }
/** Result */
#qunit-testresult {
padding: 0.5em 0.5em 0.5em 2.5em;
color: #2b81af;
background-color: #D2E0E6;
border-bottom: 1px solid white;
}
#qunit-testresult .module-name {
font-weight: bold;
}
/** Fixture */
#qunit-fixture {
position: absolute;
top: -10000px;
left: -10000px;
width: 1000px;
height: 1000px;
}

2212
node_modules/toastr-master/tests/qunit/qunit.js generated vendored Normal file

File diff suppressed because it is too large Load Diff

21
node_modules/toastr-master/tests/toastr-tests.html generated vendored Normal file
View File

@@ -0,0 +1,21 @@
<!DOCTYPE html>
<html>
<head>
<title>toastr QUnit Tests</title>
<link href="../toastr.css" rel="stylesheet" type="text/css" />
<link href="qunit/qunit.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="result"></div>
<h1 id="qunit-header">toastr QUnit Tests</h1>
<h2 id="qunit-banner"></h2>
<div id="qunit-testrunner-toolbar"></div>
<h2 id="qunit-userAgent"></h2>
<ol id="qunit-tests"></ol>
<div id="qunit-fixture">test markup, will be hidden</div>
<script src="http://code.jquery.com/jquery.js" type="text/javascript"></script>
<script src="../toastr.js" type="text/javascript"></script>
<script src="qunit/qunit.js" type="text/javascript"></script>
<script src="unit/toastr-tests.js" type="text/javascript"></script>
</body>
</html>

13
node_modules/toastr-master/tests/unit/qunit-helper.js generated vendored Normal file
View File

@@ -0,0 +1,13 @@
/**
* Hack to expose spec count from QUnit to Karma
*/
var testCount = 0;
var qunitTest = QUnit.test;
QUnit.test = window.test = function () {
testCount += 1;
qunitTest.apply(this, arguments);
};
QUnit.begin(function (args) {
args.totalTests = testCount;
});

698
node_modules/toastr-master/tests/unit/toastr-tests.js generated vendored Normal file
View File

@@ -0,0 +1,698 @@
/// <reference path="../../../toastr.js" />
/// <reference path="../qunit/qunit.js" />
(function () {
var iconClasses = {
error: 'toast-error',
info: 'toast-info',
success: 'toast-success',
warning: 'toast-warning'
};
var positionClasses = {
topRight: 'toast-top-right',
bottomRight: 'toast-bottom-right',
bottomLeft: 'toast-bottom-left',
topLeft: 'toast-top-left',
topCenter: 'toast-top-center',
bottomCenter: 'toast-bottom-center'
};
var sampleMsg = 'I don\'t think they really exist';
var sampleTitle = 'ROUS';
var selectors = {
container: 'div#toast-container',
toastInfo: 'div#toast-container > div.toast-info',
toastWarning: 'div#toast-container > div.toast-success',
toastError: 'div#toast-container > div.toast-error',
toastSuccess: 'div#toast-container > div.toast-success'
};
toastr.options = {
timeOut: 2000,
extendedTimeOut: 0,
fadeOut: 0,
fadeIn: 0,
showDuration: 0,
hideDuration: 0,
debug: false
};
var delay = toastr.options.timeOut + 500;
// 'Clears' must go first
module('clear');
asyncTest('clear - show 3 toasts, clear the 2nd', 1, function () {
//Arrange
var $toast = [];
$toast[0] = toastr.info(sampleMsg, sampleTitle + '-1');
$toast[1] = toastr.info(sampleMsg, sampleTitle + '-2');
$toast[2] = toastr.info(sampleMsg, sampleTitle + '-3');
var $container = toastr.getContainer();
//Act
toastr.clear($toast[1]);
//Assert
setTimeout(function () {
//debugger;
//console.log($container.children().length);
ok($container && $container.children().length === 2);
//Teardown
resetContainer();
start();
}, 1000);
});
asyncTest('clear - show 3 toasts, clear all 3, 0 left', 1, function () {
//Arrange
var $toast = [];
$toast[0] = toastr.info(sampleMsg, sampleTitle + '-1');
$toast[1] = toastr.info(sampleMsg, sampleTitle + '-2');
$toast[2] = toastr.info(sampleMsg, sampleTitle + '-3');
var $container = toastr.getContainer();
//Act
toastr.clear();
//Assert
setTimeout(function () {
ok($container && $container.children().length === 0);
//Teardown
resetContainer();
start();
}, delay);
});
test('clear - after clear with force option toast with focus disappears', 1, function () {
//Arrange
var $toast;
var msg = sampleMsg + '<br/><br/><button type="button">Clear</button>';
//Act
$toast = toastr.info(msg, sampleTitle + '-1');
$toast.find('button').focus();
toastr.clear($toast, { force: true });
var $container = toastr.getContainer();
//Assert
ok($container && $container.children().length === 0, 'Focused toast after a clear with force is not visible');
//Teardown
resetContainer();
});
asyncTest('clear and show - show 2 toasts, clear both, then show 1 more', 2, function () {
//Arrange
var $toast = [];
$toast[0] = toastr.info(sampleMsg, sampleTitle + '-1');
$toast[1] = toastr.info(sampleMsg, sampleTitle + '-2');
var $container = toastr.getContainer();
toastr.clear();
//Act
setTimeout(function () {
$toast[2] = toastr.info(sampleMsg, sampleTitle + '-3-Visible');
//Assert
equal($toast[2].find('div.toast-title').html(), sampleTitle + '-3-Visible', 'Finds toast after a clear');
ok($toast[2].is(':visible'), 'Toast after a clear is visible');
//Teardown
resetContainer();
start();
}, delay);
});
asyncTest('clear and show - clear removes toast container', 2, function () {
//Arrange
var $toast = [];
$toast[0] = toastr.info(sampleMsg, sampleTitle + '-1');
$toast[1] = toastr.info(sampleMsg, sampleTitle + '-2');
var $container = toastr.getContainer();
toastr.clear();
//Act
setTimeout(function () {
//Assert
equal($(selectors.container).length, 0, 'Toast container does not exist');
ok(!$toast[1].is(':visible'), 'Toast after a clear is visible');
//Teardown
resetContainer();
start();
}, delay);
});
asyncTest('clear and show - after clear new toast creates container', 1, function () {
//Arrange
var $toast = [];
$toast[0] = toastr.info(sampleMsg, sampleTitle + '-1');
$toast[1] = toastr.info(sampleMsg, sampleTitle + '-2');
var $container = toastr.getContainer();
toastr.clear();
//Act
setTimeout(function () {
$toast[2] = toastr.info(sampleMsg, sampleTitle + '-3-Visible');
//Assert
equal($(selectors.container).find('div.toast-title').html(), sampleTitle + '-3-Visible', 'Finds toast after a clear'); //Teardown
resetContainer();
start();
}, delay);
});
test('clear and show - after clear all toasts new toast still appears', 1, function () {
//Arrange
var $toast = [];
//Act
$toast[0] = toastr.info(sampleMsg, sampleTitle + '-1');
$toast[1] = toastr.info(sampleMsg, sampleTitle + '-2');
toastr.clear();
$toast[2] = toastr.info(sampleMsg, sampleTitle + '-3-Visible');
//Assert
ok($toast[2].is(':visible'), 'Toast after a clear is visible');
//Teardown
resetContainer();
});
module('info');
test('info - pass title and message', 3, function () {
//Arrange
//Act
var $toast = toastr.info(sampleMsg, sampleTitle);
//Assert
equal($toast.find('div.toast-title').html(), sampleTitle, 'Sets title');
equal($toast.find('div.toast-message').html(), sampleMsg, 'Sets message');
ok($toast.hasClass(iconClasses.info), 'Sets info icon');
//Teardown
$toast.remove();
clearContainerChildren();
});
test('info - pass message, but no title', 3, function () {
//Arrange
//Act
var $toast = toastr.info(sampleMsg);
//Assert
equal($toast.find('div.toast-title').length, 0, 'Sets null title');
equal($toast.find('div.toast-message').html(), sampleMsg, 'Sets message');
ok($toast.hasClass(iconClasses.info), 'Sets info icon');
//Teardown
$toast.remove();
clearContainerChildren();
});
test('info - pass no message nor title', 3, function () {
//Arrange
//Act
var $toast = toastr.info(); //Assert
equal($toast.find('div.toast-title').length, 0, 'Sets null title');
equal($toast.find('div.toast-message').html(), null, 'Sets message');
ok($toast.hasClass(iconClasses.info), 'Sets info icon');
//Teardown
$toast.remove();
clearContainerChildren();
});
module('warning');
test('warning - pass message and title', 3, function () {
//Arrange
//Act
var $toast = toastr.warning(sampleMsg, sampleTitle);
//Assert
equal($toast.find('div.toast-title').html(), sampleTitle, 'Sets title');
equal($toast.find('div.toast-message').html(), sampleMsg, 'Sets message');
ok($toast.hasClass(iconClasses.warning), 'Sets warning icon');
//Teardown
$toast.remove();
clearContainerChildren();
});
test('warning - pass message, but no title', 3, function () {
//Arrange
//Act
var $toast = toastr.warning(sampleMsg);
//Assert
equal($toast.find('div.toast-title').length, 0, 'Sets empty title');
equal($toast.find('div.toast-message').html(), sampleMsg, 'Sets message');
ok($toast.hasClass(iconClasses.warning), 'Sets warning icon');
//Teardown
$toast.remove();
clearContainerChildren();
});
test('warning - no message nor title', 3, function () {
//Arrange
//Act
var $toast = toastr.warning('');
//Assert
equal($toast.find('div.toast-title').length, 0, 'Sets null title');
equal($toast.find('div.toast-message').length, 0, 'Sets empty message');
ok($toast.hasClass(iconClasses.warning), 'Sets warning icon');
//Teardown
$toast.remove();
clearContainerChildren();
});
module('error');
test('error - pass message and title', 3, function () {
//Arrange
//Act
var $toast = toastr.error(sampleMsg, sampleTitle);
//Assert
equal($toast.find('div.toast-title').html(), sampleTitle, 'Sets title');
equal($toast.find('div.toast-message').html(), sampleMsg, 'Sets message');
ok($toast.hasClass(iconClasses.error), 'Sets error icon');
//Teardown
$toast.remove();
clearContainerChildren();
});
test('error - pass message, but no title', 3, function () {
//Arrange
//Act
var $toast = toastr.error(sampleMsg); //Assert
equal($toast.find('div.toast-title').length, 0, 'Sets empty title');
equal($toast.find('div.toast-message').html(), sampleMsg, 'Sets message');
ok($toast.hasClass(iconClasses.error), 'Sets error icon');
//Teardown
$toast.remove();
clearContainerChildren();
});
test('error - no message nor title', 3, function () {
//Arrange
//Act
var $toast = toastr.error('');
//Assert
equal($toast.find('div.toast-title').length, 0, 'Sets empty title');
equal($toast.find('div.toast-message').length, 0, 'Sets empty message');
ok($toast.hasClass(iconClasses.error), 'Sets error icon');
//Teardown
$toast.remove();
clearContainerChildren();
});
module('success');
test('success - pass message and title', 3, function () {
//Arrange
//Act
var $toast = toastr.success(sampleMsg, sampleTitle);
//Assert
equal($toast.find('div.toast-title').html(), sampleTitle, 'Sets title');
equal($toast.find('div.toast-message').html(), sampleMsg, 'Sets message');
ok($toast.hasClass(iconClasses.success), 'Sets success icon');
//Teardown
$toast.remove();
clearContainerChildren();
});
test('success - pass message, but no title', 3, function () {
//Arrange
//Act
var $toast = toastr.success(sampleMsg);
//Assert
equal($toast.find('div.toast-title').length, 0, 'Sets empty title');
equal($toast.find('div.toast-message').html(), sampleMsg, 'Sets message');
ok($toast.hasClass(iconClasses.success), 'Sets success icon');
//Teardown
$toast.remove();
clearContainerChildren();
});
test('success - no message nor title', 3, function () {
//Arrange
//Act
var $toast = toastr.success('');
//Assert
equal($toast.find('div.toast-title').length, 0, 'Sets null title');
equal($toast.find('div.toast-message').length, 0, 'Sets empty message');
ok($toast.hasClass(iconClasses.success), 'Sets success icon'); //Teardown
$toast.remove();
clearContainerChildren();
});
module('escape html', {
teardown: function () {
toastr.options.escapeHtml = false;
}
});
test('info - escape html', 2, function () {
//Arrange
toastr.options.escapeHtml = true;
//Act
var $toast = toastr.info('html <strong>message</strong>', 'html <u>title</u>');
//Assert
equal($toast.find('div.toast-title').html(), 'html &lt;u&gt;title&lt;/u&gt;', 'Title is escaped');
equal($toast.find('div.toast-message').html(), 'html &lt;strong&gt;message&lt;/strong&gt;', 'Message is escaped');
//Teardown
$toast.remove();
clearContainerChildren();
});
test('warning - escape html', 2, function () {
//Arrange
toastr.options.escapeHtml = true;
//Act
var $toast = toastr.warning('html <strong>message</strong>', 'html <u>title</u>');
//Assert
equal($toast.find('div.toast-title').html(), 'html &lt;u&gt;title&lt;/u&gt;', 'Title is escaped');
equal($toast.find('div.toast-message').html(), 'html &lt;strong&gt;message&lt;/strong&gt;', 'Message is escaped');
//Teardown
$toast.remove();
clearContainerChildren();
});
test('error - escape html', 2, function () {
//Arrange
toastr.options.escapeHtml = true;
//Act
var $toast = toastr.error('html <strong>message</strong>', 'html <u>title</u>');
//Assert
equal($toast.find('div.toast-title').html(), 'html &lt;u&gt;title&lt;/u&gt;', 'Title is escaped');
equal($toast.find('div.toast-message').html(), 'html &lt;strong&gt;message&lt;/strong&gt;', 'Message is escaped');
//Teardown
$toast.remove();
clearContainerChildren();
});
test('success - escape html', 2, function () {
//Arrange
toastr.options.escapeHtml = true;
//Act
var $toast = toastr.success('html <strong>message</strong>', 'html <u>title</u>');
//Assert
equal($toast.find('div.toast-title').html(), 'html &lt;u&gt;title&lt;/u&gt;', 'Title is escaped');
equal($toast.find('div.toast-message').html(), 'html &lt;strong&gt;message&lt;/strong&gt;', 'Message is escaped');
//Teardown
$toast.remove();
clearContainerChildren();
});
module('closeButton', {
teardown: function () {
toastr.options.closeButton = false;
}
});
test('close button disabled', 1, function () {
//Arrange
toastr.options.closeButton = false;
//Act
var $toast = toastr.success('');
//Assert
equal($toast.find('button.toast-close-button').length, 0, 'close button should not exist with closeButton=false');
//Teardown
$toast.remove();
clearContainerChildren();
});
test('close button enabled', 1, function () {
//Arrange
toastr.options.closeButton = true;
//Act
var $toast = toastr.success('');
//Assert
equal($toast.find('button.toast-close-button').length, 1, 'close button should exist with closeButton=true');
//Teardown
$toast.remove();
clearContainerChildren();
});
test('close button has type=button', 1, function () {
//Arrange
toastr.options.closeButton = true;
//Act
var $toast = toastr.success('');
//Assert
equal($toast.find('button[type="button"].toast-close-button').length, 1, 'close button should have type=button');
//Teardown
$toast.remove();
clearContainerChildren();
});
asyncTest('close button duration', 1, function () {
//Arrange
toastr.options.closeButton = true;
toastr.options.closeDuration = 0;
toastr.options.hideDuration = 2000;
var $container = toastr.getContainer();
//Act
var $toast = toastr.success('');
$toast.find('button.toast-close-button').click();
setTimeout(function () {
//Assert
ok($container && $container.children().length === 0, 'close button should support own hide animation');
//Teardown
toastr.options.hideDuration = 0;
resetContainer();
start();
}, 500);
});
module('progressBar', {
teardown: function () {
toastr.options.progressBar = false;
}
});
test('progress bar disabled', 1, function () {
//Arrange
toastr.options.progressBar = false;
//Act
var $toast = toastr.success('');
//Assert
equal($toast.find('div.toast-progress').length, 0, 'progress bar should not exist with progressBar=false');
//Teardown
$toast.remove();
clearContainerChildren();
});
test('progress bar enabled', 1, function () {
//Arrange
toastr.options.progressBar = true;
//Act
var $toast = toastr.success('');
//Assert
equal($toast.find('div.toast-progress').length, 1, 'progress bar should exist with progressBar=true');
//Teardown
$toast.remove();
clearContainerChildren();
});
module('event');
asyncTest('event - onShown is executed', 1, function () {
// Arrange
var run = false;
var onShown = function () { run = true; };
toastr.options.onShown = onShown;
// Act
var $toast = toastr.success(sampleMsg, sampleTitle);
setTimeout(function () {
// Assert
ok(run);
//Teardown
$toast.remove();
clearContainerChildren();
start();
}, delay);
});
asyncTest('event - onHidden is executed', 1, function () {
//Arrange
var run = false;
var onHidden = function () { run = true; };
toastr.options.onHidden = onHidden;
toastr.options.timeOut = 1;
//Act
var $toast = toastr.success(sampleMsg, sampleTitle);
setTimeout(function () {
// Assert
ok(run); //Teardown
$toast.remove();
clearContainerChildren();
start();
}, delay);
});
asyncTest('event - onShown and onHidden are both executed', 2, function () {
//Arrange
var onShowRun = false;
var onHideRun = false;
var onShow = function () { onShowRun = true; };
var onHide = function () { onHideRun = true; };
toastr.options.onShown = onShow;
toastr.options.onHidden = onHide;
toastr.options.timeOut = 1;
//Act
var $toast = toastr.success(sampleMsg, sampleTitle);
setTimeout(function () {
// Assert
ok(onShowRun);
ok(onHideRun);
//Teardown
$toast.remove();
clearContainerChildren();
start();
}, delay);
});
test('event - message appears when no show or hide method functions provided', 1, function () {
//Arrange
//Act
var $toast = toastr.success(sampleMsg, sampleTitle);
//Assert
ok($toast.hasClass(iconClasses.success), 'Sets success icon');
//Teardown
$toast.remove();
clearContainerChildren();
});
test('event - prevent duplicate sequential toasts.', 1, function(){
toastr.options.preventDuplicates = true;
var $toast = [];
$toast[0] = toastr.info(sampleMsg, sampleTitle);
$toast[1] = toastr.info(sampleMsg, sampleTitle);
$toast[2] = toastr.info(sampleMsg + " 1", sampleTitle);
$toast[3] = toastr.info(sampleMsg, sampleTitle);
var $container = toastr.getContainer();
ok($container && $container.children().length === 3);
clearContainerChildren();
});
test('event - prevent duplicate sequential toasts, but allow previous after clear.', 1, function(){
toastr.options.preventDuplicates = true;
var $toast = [];
$toast[0] = toastr.info(sampleMsg, sampleTitle);
$toast[1] = toastr.info(sampleMsg, sampleTitle);
clearContainerChildren();
$toast[3] = toastr.info(sampleMsg, sampleTitle);
var $container = toastr.getContainer();
ok($container && $container.children().length === 1);
clearContainerChildren();
});
test('event - allow duplicate sequential toasts.', 1, function(){
toastr.options.preventDuplicates = false;
var $toast = [];
$toast[0] = toastr.info(sampleMsg, sampleTitle);
$toast[1] = toastr.info(sampleMsg, sampleTitle);
$toast[1] = toastr.info(sampleMsg, sampleTitle);
var $container = toastr.getContainer();
ok($container && $container.children().length === 3);
clearContainerChildren();
});
test('event - allow preventDuplicates option to be overridden.', 1, function() {
var $toast = [];
$toast[0] = toastr.info(sampleMsg, sampleTitle, {
preventDuplicates: true
});
$toast[1] = toastr.info(sampleMsg, sampleTitle, {
preventDuplicates: true
});
$toast[2] = toastr.info(sampleMsg, sampleTitle);
var $container = toastr.getContainer();
ok($container && $container.children().length === 2);
clearContainerChildren();
});
module('order of appearance');
test('Newest toast on top', 1, function () {
//Arrange
resetContainer();
toastr.options.newestOnTop = true;
//Act
var $first = toastr.success("First toast");
var $second = toastr.success("Second toast");
//Assert
var containerHtml = toastr.getContainer().html();
ok(containerHtml.indexOf("First toast") > containerHtml.indexOf("Second toast"), 'Newest toast is on top');
//Teardown
$first.remove();
$second.remove();
resetContainer();
});
test('Oldest toast on top', 1, function () {
//Arrange
resetContainer();
toastr.options.newestOnTop = false;
//Act
var $first = toastr.success("First toast");
var $second = toastr.success("Second toast");
//Assert
var containerHtml = toastr.getContainer().html();
ok(containerHtml.indexOf("First toast") < containerHtml.indexOf("Second toast"), 'Oldest toast is on top');
//Teardown
$first.remove();
$second.remove();
resetContainer();
});
// These must go last
module('positioning');
test('Container - position top-right', 1, function () {
//Arrange
resetContainer();
toastr.options.positionClass = positionClasses.topRight;
//Act
var $toast = toastr.success(sampleMsg);
var $container = toastr.getContainer();
//Assert
ok($container.hasClass(positionClasses.topRight), 'Has position top right');
//Teardown
$toast.remove();
resetContainer();
});
test('Container - position bottom-right', 1, function () {
//Arrange
resetContainer();
toastr.options.positionClass = positionClasses.bottomRight;
//Act
var $toast = toastr.success(sampleMsg);
var $container = toastr.getContainer();
//Assert
ok($container.hasClass(positionClasses.bottomRight), 'Has position bottom right');
//Teardown
$toast.remove();
resetContainer();
});
test('Container - position bottom-left', 1, function () {
//Arrange
resetContainer();
//$(selectors.container).remove()
toastr.options.positionClass = positionClasses.bottomLeft;
//Act
var $toast = toastr.success(sampleMsg);
var $container = toastr.getContainer();
//Assert
ok($container.hasClass(positionClasses.bottomLeft), 'Has position bottom left');
//Teardown
$toast.remove();
resetContainer();
});
test('Container - position top-left', 1, function () {
//Arrange
resetContainer();
toastr.options.positionClass = positionClasses.topLeft;
//Act
var $toast = toastr.success(sampleMsg);
var $container = toastr.getContainer();
//Assert
ok($container.hasClass(positionClasses.topLeft), 'Has position top left');
//Teardown
$toast.remove();
resetContainer();
});
test('Container - position top-center', 1, function () {
//Arrange
resetContainer();
toastr.options.positionClass = positionClasses.topCenter;
//Act
var $toast = toastr.success(sampleMsg);
var $container = toastr.getContainer();
//Assert
ok($container.hasClass(positionClasses.topCenter), 'Has position top center');
//Teardown
$toast.remove();
resetContainer();
});
test('Container - position bottom-center', 1, function () {
//Arrange
resetContainer();
toastr.options.positionClass = positionClasses.bottomCenter;
//Act
var $toast = toastr.success(sampleMsg);
var $container = toastr.getContainer();
//Assert
ok($container.hasClass(positionClasses.bottomCenter), 'Has position bottom center');
//Teardown
$toast.remove();
resetContainer();
});
function resetContainer() {
var $container = toastr.getContainer();
if ($container) {
$container.remove();
}
$(selectors.container).remove();
clearContainerChildren();
}
function clearContainerChildren() {
toastr.clear();
}
})();

3
node_modules/toastr-master/tests/unit/x.js generated vendored Normal file
View File

@@ -0,0 +1,3 @@
test('test test', 1, function () {
ok(1 === 1, '1 equals 1');
});

BIN
node_modules/toastr-master/toastr-icon.png generated vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

435
node_modules/toastr-master/toastr.js generated vendored Normal file
View File

@@ -0,0 +1,435 @@
/*
* Toastr
* Copyright 2012-2015
* Authors: John Papa, Hans Fjällemark, and Tim Ferrell.
* All Rights Reserved.
* Use, reproduction, distribution, and modification of this code is subject to the terms and
* conditions of the MIT license, available at http://www.opensource.org/licenses/mit-license.php
*
* ARIA Support: Greta Krafsig
*
* Project: https://github.com/CodeSeven/toastr
*/
/* global define */
(function (define) {
define(['jquery'], function ($) {
return (function () {
var $container;
var listener;
var toastId = 0;
var toastType = {
error: 'error',
info: 'info',
success: 'success',
warning: 'warning'
};
var toastr = {
clear: clear,
remove: remove,
error: error,
getContainer: getContainer,
info: info,
options: {},
subscribe: subscribe,
success: success,
version: '2.1.2',
warning: warning
};
var previousToast;
return toastr;
////////////////
function error(message, title, optionsOverride) {
return notify({
type: toastType.error,
iconClass: getOptions().iconClasses.error,
message: message,
optionsOverride: optionsOverride,
title: title
});
}
function getContainer(options, create) {
if (!options) { options = getOptions(); }
$container = $('#' + options.containerId);
if ($container.length) {
return $container;
}
if (create) {
$container = createContainer(options);
}
return $container;
}
function info(message, title, optionsOverride) {
return notify({
type: toastType.info,
iconClass: getOptions().iconClasses.info,
message: message,
optionsOverride: optionsOverride,
title: title
});
}
function subscribe(callback) {
listener = callback;
}
function success(message, title, optionsOverride) {
return notify({
type: toastType.success,
iconClass: getOptions().iconClasses.success,
message: message,
optionsOverride: optionsOverride,
title: title
});
}
function warning(message, title, optionsOverride) {
return notify({
type: toastType.warning,
iconClass: getOptions().iconClasses.warning,
message: message,
optionsOverride: optionsOverride,
title: title
});
}
function clear($toastElement, clearOptions) {
var options = getOptions();
if (!$container) { getContainer(options); }
if (!clearToast($toastElement, options, clearOptions)) {
clearContainer(options);
}
}
function remove($toastElement) {
var options = getOptions();
if (!$container) { getContainer(options); }
if ($toastElement && $(':focus', $toastElement).length === 0) {
removeToast($toastElement);
return;
}
if ($container.children().length) {
$container.remove();
}
}
// internal functions
function clearContainer (options) {
var toastsToClear = $container.children();
for (var i = toastsToClear.length - 1; i >= 0; i--) {
clearToast($(toastsToClear[i]), options);
}
}
function clearToast ($toastElement, options, clearOptions) {
var force = clearOptions && clearOptions.force ? clearOptions.force : false;
if ($toastElement && (force || $(':focus', $toastElement).length === 0)) {
$toastElement[options.hideMethod]({
duration: options.hideDuration,
easing: options.hideEasing,
complete: function () { removeToast($toastElement); }
});
return true;
}
return false;
}
function createContainer(options) {
$container = $('<div/>')
.attr('id', options.containerId)
.addClass(options.positionClass)
.attr('aria-live', 'polite')
.attr('role', 'alert');
$container.appendTo($(options.target));
return $container;
}
function getDefaults() {
return {
tapToDismiss: true,
toastClass: 'toast',
containerId: 'toast-container',
debug: false,
showMethod: 'fadeIn', //fadeIn, slideDown, and show are built into jQuery
showDuration: 300,
showEasing: 'swing', //swing and linear are built into jQuery
onShown: undefined,
hideMethod: 'fadeOut',
hideDuration: 1000,
hideEasing: 'swing',
onHidden: undefined,
closeMethod: false,
closeDuration: false,
closeEasing: false,
extendedTimeOut: 1000,
iconClasses: {
error: 'toast-error',
info: 'toast-info',
success: 'toast-success',
warning: 'toast-warning'
},
iconClass: 'toast-info',
positionClass: 'toast-top-right',
timeOut: 5000, // Set timeOut and extendedTimeOut to 0 to make it sticky
titleClass: 'toast-title',
messageClass: 'toast-message',
escapeHtml: false,
target: 'body',
closeHtml: '<button type="button">&times;</button>',
newestOnTop: true,
preventDuplicates: false,
progressBar: false
};
}
function publish(args) {
if (!listener) { return; }
listener(args);
}
function notify(map) {
var options = getOptions();
var iconClass = map.iconClass || options.iconClass;
if (typeof (map.optionsOverride) !== 'undefined') {
options = $.extend(options, map.optionsOverride);
iconClass = map.optionsOverride.iconClass || iconClass;
}
if (shouldExit(options, map)) { return; }
toastId++;
$container = getContainer(options, true);
var intervalId = null;
var $toastElement = $('<div/>');
var $titleElement = $('<div/>');
var $messageElement = $('<div/>');
var $progressElement = $('<div/>');
var $closeElement = $(options.closeHtml);
var progressBar = {
intervalId: null,
hideEta: null,
maxHideTime: null
};
var response = {
toastId: toastId,
state: 'visible',
startTime: new Date(),
options: options,
map: map
};
personalizeToast();
displayToast();
handleEvents();
publish(response);
if (options.debug && console) {
console.log(response);
}
return $toastElement;
function escapeHtml(source) {
if (source == null)
source = "";
return new String(source)
.replace(/&/g, '&amp;')
.replace(/"/g, '&quot;')
.replace(/'/g, '&#39;')
.replace(/</g, '&lt;')
.replace(/>/g, '&gt;');
}
function personalizeToast() {
setIcon();
setTitle();
setMessage();
setCloseButton();
setProgressBar();
setSequence();
}
function handleEvents() {
$toastElement.hover(stickAround, delayedHideToast);
if (!options.onclick && options.tapToDismiss) {
$toastElement.click(hideToast);
}
if (options.closeButton && $closeElement) {
$closeElement.click(function (event) {
if (event.stopPropagation) {
event.stopPropagation();
} else if (event.cancelBubble !== undefined && event.cancelBubble !== true) {
event.cancelBubble = true;
}
hideToast(true);
});
}
if (options.onclick) {
$toastElement.click(function (event) {
options.onclick(event);
hideToast();
});
}
}
function displayToast() {
$toastElement.hide();
$toastElement[options.showMethod](
{duration: options.showDuration, easing: options.showEasing, complete: options.onShown}
);
if (options.timeOut > 0) {
intervalId = setTimeout(hideToast, options.timeOut);
progressBar.maxHideTime = parseFloat(options.timeOut);
progressBar.hideEta = new Date().getTime() + progressBar.maxHideTime;
if (options.progressBar) {
progressBar.intervalId = setInterval(updateProgress, 10);
}
}
}
function setIcon() {
if (map.iconClass) {
$toastElement.addClass(options.toastClass).addClass(iconClass);
}
}
function setSequence() {
if (options.newestOnTop) {
$container.prepend($toastElement);
} else {
$container.append($toastElement);
}
}
function setTitle() {
if (map.title) {
$titleElement.append(!options.escapeHtml ? map.title : escapeHtml(map.title)).addClass(options.titleClass);
$toastElement.append($titleElement);
}
}
function setMessage() {
if (map.message) {
$messageElement.append(!options.escapeHtml ? map.message : escapeHtml(map.message)).addClass(options.messageClass);
$toastElement.append($messageElement);
}
}
function setCloseButton() {
if (options.closeButton) {
$closeElement.addClass('toast-close-button').attr('role', 'button');
$toastElement.prepend($closeElement);
}
}
function setProgressBar() {
if (options.progressBar) {
$progressElement.addClass('toast-progress');
$toastElement.prepend($progressElement);
}
}
function shouldExit(options, map) {
if (options.preventDuplicates) {
if (map.message === previousToast) {
return true;
} else {
previousToast = map.message;
}
}
return false;
}
function hideToast(override) {
var method = override && options.closeMethod !== false ? options.closeMethod : options.hideMethod;
var duration = override && options.closeDuration !== false ?
options.closeDuration : options.hideDuration;
var easing = override && options.closeEasing !== false ? options.closeEasing : options.hideEasing;
if ($(':focus', $toastElement).length && !override) {
return;
}
clearTimeout(progressBar.intervalId);
return $toastElement[method]({
duration: duration,
easing: easing,
complete: function () {
removeToast($toastElement);
if (options.onHidden && response.state !== 'hidden') {
options.onHidden();
}
response.state = 'hidden';
response.endTime = new Date();
publish(response);
}
});
}
function delayedHideToast() {
if (options.timeOut > 0 || options.extendedTimeOut > 0) {
intervalId = setTimeout(hideToast, options.extendedTimeOut);
progressBar.maxHideTime = parseFloat(options.extendedTimeOut);
progressBar.hideEta = new Date().getTime() + progressBar.maxHideTime;
}
}
function stickAround() {
clearTimeout(intervalId);
progressBar.hideEta = 0;
$toastElement.stop(true, true)[options.showMethod](
{duration: options.showDuration, easing: options.showEasing}
);
}
function updateProgress() {
var percentage = ((progressBar.hideEta - (new Date().getTime())) / progressBar.maxHideTime) * 100;
$progressElement.width(percentage + '%');
}
}
function getOptions() {
return $.extend({}, getDefaults(), toastr.options);
}
function removeToast($toastElement) {
if (!$container) { $container = getContainer(); }
if ($toastElement.is(':visible')) {
return;
}
$toastElement.remove();
$toastElement = null;
if ($container.children().length === 0) {
$container.remove();
previousToast = undefined;
}
}
})();
});
}(typeof define === 'function' && define.amd ? define : function (deps, factory) {
if (typeof module !== 'undefined' && module.exports) { //Node
module.exports = factory(require('jquery'));
} else {
window.toastr = factory(window.jQuery);
}
}));

267
node_modules/toastr-master/toastr.less generated vendored Normal file
View File

@@ -0,0 +1,267 @@
// Mix-ins
.borderRadius(@radius) {
-moz-border-radius: @radius;
-webkit-border-radius: @radius;
border-radius: @radius;
}
.boxShadow(@boxShadow) {
-moz-box-shadow: @boxShadow;
-webkit-box-shadow: @boxShadow;
box-shadow: @boxShadow;
}
.opacity(@opacity) {
@opacityPercent: @opacity * 100;
opacity: @opacity;
-ms-filter: ~"progid:DXImageTransform.Microsoft.Alpha(Opacity=@{opacityPercent})";
filter: ~"alpha(opacity=@{opacityPercent})";
}
.wordWrap(@wordWrap: break-word) {
-ms-word-wrap: @wordWrap;
word-wrap: @wordWrap;
}
// Variables
@black: #000000;
@grey: #999999;
@light-grey: #CCCCCC;
@white: #FFFFFF;
@near-black: #030303;
@green: #51A351;
@red: #BD362F;
@blue: #2F96B4;
@orange: #F89406;
@default-container-opacity: .8;
// Styles
.toast-title {
font-weight: bold;
}
.toast-message {
.wordWrap();
a,
label {
color: @white;
}
a:hover {
color: @light-grey;
text-decoration: none;
}
}
.toast-close-button {
position: relative;
right: -0.3em;
top: -0.3em;
float: right;
font-size: 20px;
font-weight: bold;
color: @white;
-webkit-text-shadow: 0 1px 0 rgba(255,255,255,1);
text-shadow: 0 1px 0 rgba(255,255,255,1);
.opacity(0.8);
&:hover,
&:focus {
color: @black;
text-decoration: none;
cursor: pointer;
.opacity(0.4);
}
}
/*Additional properties for button version
iOS requires the button element instead of an anchor tag.
If you want the anchor version, it requires `href="#"`.*/
button.toast-close-button {
padding: 0;
cursor: pointer;
background: transparent;
border: 0;
-webkit-appearance: none;
}
//#endregion
.toast-top-center {
top: 0;
right: 0;
width: 100%;
}
.toast-bottom-center {
bottom: 0;
right: 0;
width: 100%;
}
.toast-top-full-width {
top: 0;
right: 0;
width: 100%;
}
.toast-bottom-full-width {
bottom: 0;
right: 0;
width: 100%;
}
.toast-top-left {
top: 12px;
left: 12px;
}
.toast-top-right {
top: 12px;
right: 12px;
}
.toast-bottom-right {
right: 12px;
bottom: 12px;
}
.toast-bottom-left {
bottom: 12px;
left: 12px;
}
#toast-container {
position: fixed;
z-index: 999999;
// The container should not be clickable.
pointer-events: none;
* {
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
> div {
position: relative;
// The toast itself should be clickable.
pointer-events: auto;
overflow: hidden;
margin: 0 0 6px;
padding: 15px 15px 15px 50px;
width: 300px;
.borderRadius(3px 3px 3px 3px);
background-position: 15px center;
background-repeat: no-repeat;
.boxShadow(0 0 12px @grey);
color: @white;
.opacity(@default-container-opacity);
}
> :hover {
.boxShadow(0 0 12px @black);
.opacity(1);
cursor: pointer;
}
> .toast-info {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=") !important;
}
> .toast-error {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=") !important;
}
> .toast-success {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==") !important;
}
> .toast-warning {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=") !important;
}
/*overrides*/
&.toast-top-center > div,
&.toast-bottom-center > div {
width: 300px;
margin-left: auto;
margin-right: auto;
}
&.toast-top-full-width > div,
&.toast-bottom-full-width > div {
width: 96%;
margin-left: auto;
margin-right: auto;
}
}
.toast {
background-color: @near-black;
}
.toast-success {
background-color: @green;
}
.toast-error {
background-color: @red;
}
.toast-info {
background-color: @blue;
}
.toast-warning {
background-color: @orange;
}
.toast-progress {
position: absolute;
left: 0;
bottom: 0;
height: 4px;
background-color: @black;
.opacity(0.4);
}
/*Responsive Design*/
@media all and (max-width: 240px) {
#toast-container {
> div {
padding: 8px 8px 8px 50px;
width: 11em;
}
& .toast-close-button {
right: -0.2em;
top: -0.2em;
}
}
}
@media all and (min-width: 241px) and (max-width: 480px) {
#toast-container {
> div {
padding: 8px 8px 8px 50px;
width: 18em;
}
& .toast-close-button {
right: -0.2em;
top: -0.2em;
}
}
}
@media all and (min-width: 481px) and (max-width: 768px) {
#toast-container {
> div {
padding: 15px 15px 15px 50px;
width: 25em;
}
}
}

199
node_modules/toastr-master/toastr.scss generated vendored Normal file
View File

@@ -0,0 +1,199 @@
.toast-title {
font-weight: bold;
}
.toast-message {
-ms-word-wrap: break-word;
word-wrap: break-word;
}
.toast-message a,
.toast-message label {
color: #ffffff;
}
.toast-message a:hover {
color: #cccccc;
text-decoration: none;
}
.toast-close-button {
position: relative;
right: -0.3em;
top: -0.3em;
float: right;
font-size: 20px;
font-weight: bold;
color: #ffffff;
-webkit-text-shadow: 0 1px 0 #ffffff;
text-shadow: 0 1px 0 #ffffff;
opacity: 0.8;
-ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80);
filter: alpha(opacity=80);
}
.toast-close-button:hover,
.toast-close-button:focus {
color: #000000;
text-decoration: none;
cursor: pointer;
opacity: 0.4;
-ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=40);
filter: alpha(opacity=40);
}
/*Additional properties for button version
iOS requires the button element instead of an anchor tag.
If you want the anchor version, it requires `href="#"`.*/
button.toast-close-button {
padding: 0;
cursor: pointer;
background: transparent;
border: 0;
-webkit-appearance: none;
}
.toast-top-center {
top: 0;
right: 0;
width: 100%;
}
.toast-bottom-center {
bottom: 0;
right: 0;
width: 100%;
}
.toast-top-full-width {
top: 0;
right: 0;
width: 100%;
}
.toast-bottom-full-width {
bottom: 0;
right: 0;
width: 100%;
}
.toast-top-left {
top: 12px;
left: 12px;
}
.toast-top-right {
top: 12px;
right: 12px;
}
.toast-bottom-right {
right: 12px;
bottom: 12px;
}
.toast-bottom-left {
bottom: 12px;
left: 12px;
}
#toast-container {
position: fixed;
z-index: 999999;
/*overrides*/
}
#toast-container * {
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
box-sizing: border-box;
}
#toast-container > div {
position: relative;
overflow: hidden;
margin: 0 0 6px;
padding: 15px 15px 15px 50px;
width: 300px;
-moz-border-radius: 3px 3px 3px 3px;
-webkit-border-radius: 3px 3px 3px 3px;
border-radius: 3px 3px 3px 3px;
background-position: 15px center;
background-repeat: no-repeat;
-moz-box-shadow: 0 0 12px #999999;
-webkit-box-shadow: 0 0 12px #999999;
box-shadow: 0 0 12px #999999;
color: #ffffff;
opacity: 0.8;
-ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=80);
filter: alpha(opacity=80);
}
#toast-container > :hover {
-moz-box-shadow: 0 0 12px #000000;
-webkit-box-shadow: 0 0 12px #000000;
box-shadow: 0 0 12px #000000;
opacity: 1;
-ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=100);
filter: alpha(opacity=100);
cursor: pointer;
}
#toast-container > .toast-info {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=") !important;
}
#toast-container > .toast-error {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=") !important;
}
#toast-container > .toast-success {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==") !important;
}
#toast-container > .toast-warning {
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=") !important;
}
#toast-container.toast-top-center > div,
#toast-container.toast-bottom-center > div {
width: 300px;
margin: auto;
}
#toast-container.toast-top-full-width > div,
#toast-container.toast-bottom-full-width > div {
width: 96%;
margin: auto;
}
.toast {
background-color: #030303;
}
.toast-success {
background-color: #51a351;
}
.toast-error {
background-color: #bd362f;
}
.toast-info {
background-color: #2f96b4;
}
.toast-warning {
background-color: #f89406;
}
.toast-progress {
position: absolute;
left: 0;
bottom: 0;
height: 4px;
background-color: #000000;
opacity: 0.4;
-ms-filter: progid:DXImageTransform.Microsoft.Alpha(Opacity=40);
filter: alpha(opacity=40);
}
/*Responsive Design*/
@media all and (max-width: 240px) {
#toast-container > div {
padding: 8px 8px 8px 50px;
width: 11em;
}
#toast-container .toast-close-button {
right: -0.2em;
top: -0.2em;
}
}
@media all and (min-width: 241px) and (max-width: 480px) {
#toast-container > div {
padding: 8px 8px 8px 50px;
width: 18em;
}
#toast-container .toast-close-button {
right: -0.2em;
top: -0.2em;
}
}
@media all and (min-width: 481px) and (max-width: 768px) {
#toast-container > div {
padding: 15px 15px 15px 50px;
width: 25em;
}
}