├── .gitignore ├── demo ├── img │ ├── ok-48.png │ ├── clock-48.png │ ├── favicon.ico │ ├── apple-icon.png │ ├── calendar-48.png │ ├── survey-48.png │ ├── favicon-16x16.png │ ├── favicon-32x32.png │ ├── favicon-96x96.png │ ├── ms-icon-70x70.png │ ├── apple-icon-57x57.png │ ├── apple-icon-60x60.png │ ├── apple-icon-72x72.png │ ├── apple-icon-76x76.png │ ├── browser-sprite.png │ ├── high_priority-48.png │ ├── ms-icon-144x144.png │ ├── ms-icon-150x150.png │ ├── ms-icon-310x310.png │ ├── android-icon-36x36.png │ ├── android-icon-48x48.png │ ├── android-icon-72x72.png │ ├── android-icon-96x96.png │ ├── apple-icon-114x114.png │ ├── apple-icon-120x120.png │ ├── apple-icon-144x144.png │ ├── apple-icon-152x152.png │ ├── apple-icon-180x180.png │ ├── medium_priority-48.png │ ├── android-icon-144x144.png │ ├── android-icon-192x192.png │ ├── apple-icon-precomposed.png │ └── manifest.json ├── fonts │ ├── FontAwesome.otf │ ├── fontawesome-webfont.eot │ ├── fontawesome-webfont.ttf │ ├── fontawesome-webfont.woff │ └── fontawesome-webfont.woff2 ├── js │ ├── notifier.min.js │ ├── notifier.js │ ├── highlight │ │ ├── styles │ │ │ └── atelier-cave.light.css │ │ └── highlight.pack.js │ └── page.js ├── css │ ├── notifier.min.css │ ├── notifier.css │ ├── page.css │ └── font-awesome.min.css └── docs │ ├── en │ └── index.html │ └── pt_br │ └── index.html ├── package.json ├── bower.json ├── Gruntfile.js ├── dist ├── js │ └── notifier.js └── css │ └── notifier.css ├── README.md ├── js └── notifier.js ├── css └── notifier.css └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | /node_modules/ 2 | -------------------------------------------------------------------------------- /demo/img/ok-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csilva2810/notifier/HEAD/demo/img/ok-48.png -------------------------------------------------------------------------------- /demo/img/clock-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csilva2810/notifier/HEAD/demo/img/clock-48.png -------------------------------------------------------------------------------- /demo/img/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csilva2810/notifier/HEAD/demo/img/favicon.ico -------------------------------------------------------------------------------- /demo/img/apple-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csilva2810/notifier/HEAD/demo/img/apple-icon.png -------------------------------------------------------------------------------- /demo/img/calendar-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csilva2810/notifier/HEAD/demo/img/calendar-48.png -------------------------------------------------------------------------------- /demo/img/survey-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csilva2810/notifier/HEAD/demo/img/survey-48.png -------------------------------------------------------------------------------- /demo/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csilva2810/notifier/HEAD/demo/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /demo/img/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csilva2810/notifier/HEAD/demo/img/favicon-16x16.png -------------------------------------------------------------------------------- /demo/img/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csilva2810/notifier/HEAD/demo/img/favicon-32x32.png -------------------------------------------------------------------------------- /demo/img/favicon-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csilva2810/notifier/HEAD/demo/img/favicon-96x96.png -------------------------------------------------------------------------------- /demo/img/ms-icon-70x70.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csilva2810/notifier/HEAD/demo/img/ms-icon-70x70.png -------------------------------------------------------------------------------- /demo/img/apple-icon-57x57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csilva2810/notifier/HEAD/demo/img/apple-icon-57x57.png -------------------------------------------------------------------------------- /demo/img/apple-icon-60x60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csilva2810/notifier/HEAD/demo/img/apple-icon-60x60.png -------------------------------------------------------------------------------- /demo/img/apple-icon-72x72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csilva2810/notifier/HEAD/demo/img/apple-icon-72x72.png -------------------------------------------------------------------------------- /demo/img/apple-icon-76x76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csilva2810/notifier/HEAD/demo/img/apple-icon-76x76.png -------------------------------------------------------------------------------- /demo/img/browser-sprite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csilva2810/notifier/HEAD/demo/img/browser-sprite.png -------------------------------------------------------------------------------- /demo/img/high_priority-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csilva2810/notifier/HEAD/demo/img/high_priority-48.png -------------------------------------------------------------------------------- /demo/img/ms-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csilva2810/notifier/HEAD/demo/img/ms-icon-144x144.png -------------------------------------------------------------------------------- /demo/img/ms-icon-150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csilva2810/notifier/HEAD/demo/img/ms-icon-150x150.png -------------------------------------------------------------------------------- /demo/img/ms-icon-310x310.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csilva2810/notifier/HEAD/demo/img/ms-icon-310x310.png -------------------------------------------------------------------------------- /demo/img/android-icon-36x36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csilva2810/notifier/HEAD/demo/img/android-icon-36x36.png -------------------------------------------------------------------------------- /demo/img/android-icon-48x48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csilva2810/notifier/HEAD/demo/img/android-icon-48x48.png -------------------------------------------------------------------------------- /demo/img/android-icon-72x72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csilva2810/notifier/HEAD/demo/img/android-icon-72x72.png -------------------------------------------------------------------------------- /demo/img/android-icon-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csilva2810/notifier/HEAD/demo/img/android-icon-96x96.png -------------------------------------------------------------------------------- /demo/img/apple-icon-114x114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csilva2810/notifier/HEAD/demo/img/apple-icon-114x114.png -------------------------------------------------------------------------------- /demo/img/apple-icon-120x120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csilva2810/notifier/HEAD/demo/img/apple-icon-120x120.png -------------------------------------------------------------------------------- /demo/img/apple-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csilva2810/notifier/HEAD/demo/img/apple-icon-144x144.png -------------------------------------------------------------------------------- /demo/img/apple-icon-152x152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csilva2810/notifier/HEAD/demo/img/apple-icon-152x152.png -------------------------------------------------------------------------------- /demo/img/apple-icon-180x180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csilva2810/notifier/HEAD/demo/img/apple-icon-180x180.png -------------------------------------------------------------------------------- /demo/img/medium_priority-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csilva2810/notifier/HEAD/demo/img/medium_priority-48.png -------------------------------------------------------------------------------- /demo/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csilva2810/notifier/HEAD/demo/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /demo/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csilva2810/notifier/HEAD/demo/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /demo/img/android-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csilva2810/notifier/HEAD/demo/img/android-icon-144x144.png -------------------------------------------------------------------------------- /demo/img/android-icon-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csilva2810/notifier/HEAD/demo/img/android-icon-192x192.png -------------------------------------------------------------------------------- /demo/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csilva2810/notifier/HEAD/demo/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /demo/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csilva2810/notifier/HEAD/demo/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /demo/img/apple-icon-precomposed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/csilva2810/notifier/HEAD/demo/img/apple-icon-precomposed.png -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "notifier-js", 3 | "version": "1.0.0", 4 | "main": "dist/js/notifier.js", 5 | "repository": { 6 | "type": "git", 7 | "url": "git+https://github.com/csilva2810/notifier.git" 8 | }, 9 | "devDependencies": { 10 | "grunt-contrib-uglify": "^0.11.0", 11 | "grunt-contrib-cssmin": "^0.14.0", 12 | "grunt-contrib-jshint": "^0.11.3", 13 | "grunt-contrib-copy": "^0.8.2", 14 | "grunt": "^1.0.1" 15 | }, 16 | "license": "MIT" 17 | } 18 | -------------------------------------------------------------------------------- /bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "notifier JS", 3 | "description": "Javascript plugin to display bealtiful and personalized notifications", 4 | "version": "1.0.0", 5 | "main": "dist/js/notifier.js", 6 | "authors": [ 7 | "Carlos Alberto " 8 | ], 9 | "license": "MIT", 10 | "keywords": [ 11 | "notifier", 12 | "notification", 13 | "javascript", 14 | "plugin" 15 | ], 16 | "homepage": "https://github.com/csilva2810/notifier", 17 | "moduleType": [ 18 | "es6", 19 | "globals", 20 | "node" 21 | ], 22 | "ignore": [ 23 | "**/.*", 24 | "node_modules", 25 | "bower_components", 26 | "test", 27 | "tests" 28 | ] 29 | } 30 | -------------------------------------------------------------------------------- /demo/img/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "App", 3 | "icons": [ 4 | { 5 | "src": "\/android-icon-36x36.png", 6 | "sizes": "36x36", 7 | "type": "image\/png", 8 | "density": "0.75" 9 | }, 10 | { 11 | "src": "\/android-icon-48x48.png", 12 | "sizes": "48x48", 13 | "type": "image\/png", 14 | "density": "1.0" 15 | }, 16 | { 17 | "src": "\/android-icon-72x72.png", 18 | "sizes": "72x72", 19 | "type": "image\/png", 20 | "density": "1.5" 21 | }, 22 | { 23 | "src": "\/android-icon-96x96.png", 24 | "sizes": "96x96", 25 | "type": "image\/png", 26 | "density": "2.0" 27 | }, 28 | { 29 | "src": "\/android-icon-144x144.png", 30 | "sizes": "144x144", 31 | "type": "image\/png", 32 | "density": "3.0" 33 | }, 34 | { 35 | "src": "\/android-icon-192x192.png", 36 | "sizes": "192x192", 37 | "type": "image\/png", 38 | "density": "4.0" 39 | } 40 | ] 41 | } -------------------------------------------------------------------------------- /Gruntfile.js: -------------------------------------------------------------------------------- 1 | module.exports = function(grunt) { 2 | 'use strict'; 3 | 4 | // configuração do projeto 5 | var gruntConfig = { 6 | 7 | pkg: grunt.file.readJSON('package.json'), 8 | 9 | uglify: { 10 | options: { 11 | mangle: false 12 | }, 13 | my_target: { 14 | files: { 15 | 'dist/js/notifier.js': ['js/notifier.js'] 16 | } 17 | } 18 | }, 19 | 20 | cssmin: { 21 | dist: { 22 | src: ['css/notifier.css'], 23 | dest: 'dist/css/notifier.css' 24 | } 25 | }, 26 | 27 | jshint: { 28 | all: ['Gruntfile.js', 'js/notifier.js'] 29 | }, 30 | 31 | copy: { 32 | main: { 33 | files: [ 34 | { flatten: true, src: ['dist/js/notifier.js'], dest: 'demo/js/notifier.js' }, 35 | { flatten: true, src: ['dist/css/notifier.css'], dest: 'demo/css/notifier.css' } 36 | ] 37 | } 38 | } 39 | 40 | }; 41 | 42 | grunt.initConfig(gruntConfig); 43 | 44 | grunt.loadNpmTasks('grunt-contrib-uglify'); 45 | grunt.loadNpmTasks('grunt-contrib-cssmin'); 46 | grunt.loadNpmTasks('grunt-contrib-jshint'); 47 | grunt.loadNpmTasks('grunt-contrib-copy'); 48 | 49 | grunt.registerTask('build', ['uglify', 'cssmin', 'copy']); 50 | grunt.registerTask('test', ['jshint']); 51 | }; 52 | -------------------------------------------------------------------------------- /demo/js/notifier.min.js: -------------------------------------------------------------------------------- 1 | !function(root,factory){"function"==typeof define&&define.amd?define(["notifier"],factory):"object"==typeof exports?module.exports=factory():root.notifier=factory()}(this,function(notifier){var count=0,d=document,myCreateElement=function(elem,attrs){var el=d.createElement(elem);for(var prop in attrs)el.setAttribute(prop,attrs[prop]);return el},createContainer=function(){var container=myCreateElement("div",{"class":"notifier-container",id:"notifier-container"});d.body.appendChild(container)},show=function(title,msg,type,icon,timeout){"number"!=typeof timeout&&(timeout=0);var ntfId="notifier-"+count,container=d.querySelector(".notifier-container"),ntf=myCreateElement("div",{"class":"notifier "+type}),ntfTitle=myCreateElement("h2",{"class":"notifier-title"}),ntfBody=myCreateElement("div",{"class":"notifier-body"}),ntfImg=myCreateElement("div",{"class":"notifier-img"}),img=myCreateElement("img",{"class":"img",src:icon}),ntfClose=myCreateElement("button",{"class":"notifier-close",type:"button"});return ntfTitle.innerHTML=title,ntfBody.innerHTML=msg,ntfClose.innerHTML="×",icon.length>0&&ntfImg.appendChild(img),ntf.appendChild(ntfClose),ntf.appendChild(ntfImg),ntf.appendChild(ntfTitle),ntf.appendChild(ntfBody),container.appendChild(ntf),ntfImg.style.height=ntfImg.parentNode.offsetHeight+"px"||null,setTimeout(function(){ntf.className+=" shown",ntf.setAttribute("id",ntfId)},100),timeout>0&&setTimeout(function(){hide(ntfId)},timeout),ntfClose.addEventListener("click",function(){hide(ntfId)}),count+=1,ntfId},hide=function(notificationId){var notification=document.getElementById(notificationId);return!!notification&&(notification.className=notification.className.replace(" shown",""),setTimeout(function(){notification.parentNode.removeChild(notification)},600),!0)};return createContainer(),{show:show,hide:hide}}); -------------------------------------------------------------------------------- /demo/css/notifier.min.css: -------------------------------------------------------------------------------- 1 | .notifier-container{z-index:999;position:fixed;top:4px;right:4px;padding:4px;width:350px;max-width:98%;font-family:"Segoe UI",Tahoma,Calibri,Verdana,sans-serif;color:#999;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.notifier{position:relative;width:100%;min-height:62px;margin-bottom:12px;padding:8px;background:#fff;border-left:4px solid #95a5a6;border-radius:1px;box-shadow:0 1px 10px 0 rgba(0,0,0,.1),0 2px 15px 0 rgba(0,0,0,.05);opacity:0;-webkit-transform:translateX(100%);-moz-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%);-webkit-transition:all .6s cubic-bezier(.5,-.5,.3,1.4),opacity .6s ease;-moz-transition:all .6s cubic-bezier(.5,-.5,.3,1.4),opacity .6s ease;-ms-transition:all .6s cubic-bezier(.5,-.5,.3,1.4),opacity .6s ease;transition:all .6s cubic-bezier(.5,-.5,.3,1.4),opacity .6s ease}.notifier.shown{opacity:1;-webkit-transform:translateX(0);-moz-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}.notifier.shown:hover{opacity:1}.notifier-close{position:absolute;top:4px;right:4px;width:16px;height:16px;padding:0;text-align:center;text-decoration:none;color:#aaa;font-weight:700;font-size:16px;background:0 0;outline:0;border:none;border-radius:50%;cursor:pointer;opacity:.5;-webkit-transition:.3s ease;-moz-transition:.3s ease;-ms-transition:.3s ease;transition:.3s ease}.notifier-close:focus,.notifier-close:hover{opacity:1;color:#999;background:#eee}.notifier-img{float:left;margin-right:8px;vertical-align:middle}.img{width:48px;height:48px}.notifier-title{margin:0 0 4px;padding:0;font-size:18px;font-weight:400}.notifier-body{font-size:13px}.notifier.info{border-left-color:#3498db}.notifier.success{border-left-color:#1abc9c}.notifier.warning{border-left-color:#f1c40f}.notifier.danger{border-left-color:#e74c3c} -------------------------------------------------------------------------------- /demo/js/notifier.js: -------------------------------------------------------------------------------- 1 | !function(root,factory){"object"==typeof exports&&"object"==typeof module?module.exports=factory():"function"==typeof define&&define.amd?define([],factory):"object"==typeof exports?exports.notifier=factory():root.notifier=factory()}("undefined"!=typeof self?self:this,function(){var count=0,d=document,myCreateElement=function(elem,attrs){var el=d.createElement(elem);for(var prop in attrs)el.setAttribute(prop,attrs[prop]);return el},createContainer=function(){var container=myCreateElement("div",{"class":"notifier-container",id:"notifier-container"});d.body.appendChild(container)},show=function(title,msg,type,icon,timeout){"number"!=typeof timeout&&(timeout=0);var ntfId="notifier-"+count,container=d.querySelector(".notifier-container"),ntf=myCreateElement("div",{"class":"notifier "+type}),ntfTitle=myCreateElement("h2",{"class":"notifier-title"}),ntfBody=myCreateElement("div",{"class":"notifier-body"}),ntfImg=myCreateElement("div",{"class":"notifier-img"}),img=myCreateElement("img",{"class":"img",src:icon}),ntfClose=myCreateElement("button",{"class":"notifier-close",type:"button"});return ntfTitle.innerHTML=title,ntfBody.innerHTML=msg,ntfClose.innerHTML="×",icon.length>0&&ntfImg.appendChild(img),ntf.appendChild(ntfClose),ntf.appendChild(ntfImg),ntf.appendChild(ntfTitle),ntf.appendChild(ntfBody),container.appendChild(ntf),ntfImg.style.height=ntfImg.parentNode.offsetHeight+"px"||null,setTimeout(function(){ntf.className+=" shown",ntf.setAttribute("id",ntfId)},100),timeout>0&&setTimeout(function(){hide(ntfId)},timeout),ntfClose.addEventListener("click",function(){hide(ntfId)}),count+=1,ntfId},hide=function(notificationId){var notification=document.getElementById(notificationId);return!!notification&&(notification.className=notification.className.replace(" shown",""),setTimeout(function(){notification.parentNode.removeChild(notification)},600),!0)};return createContainer(),{show:show,hide:hide}}); -------------------------------------------------------------------------------- /dist/js/notifier.js: -------------------------------------------------------------------------------- 1 | !function(root,factory){"object"==typeof exports&&"object"==typeof module?module.exports=factory():"function"==typeof define&&define.amd?define([],factory):"object"==typeof exports?exports.notifier=factory():root.notifier=factory()}("undefined"!=typeof self?self:this,function(){var count=0,d=document,myCreateElement=function(elem,attrs){var el=d.createElement(elem);for(var prop in attrs)el.setAttribute(prop,attrs[prop]);return el},createContainer=function(){var container=myCreateElement("div",{"class":"notifier-container",id:"notifier-container"});d.body.appendChild(container)},show=function(title,msg,type,icon,timeout){"number"!=typeof timeout&&(timeout=0);var ntfId="notifier-"+count,container=d.querySelector(".notifier-container"),ntf=myCreateElement("div",{"class":"notifier "+type}),ntfTitle=myCreateElement("h2",{"class":"notifier-title"}),ntfBody=myCreateElement("div",{"class":"notifier-body"}),ntfImg=myCreateElement("div",{"class":"notifier-img"}),img=myCreateElement("img",{"class":"img",src:icon}),ntfClose=myCreateElement("button",{"class":"notifier-close",type:"button"});return ntfTitle.innerHTML=title,ntfBody.innerHTML=msg,ntfClose.innerHTML="×",icon.length>0&&ntfImg.appendChild(img),ntf.appendChild(ntfClose),ntf.appendChild(ntfImg),ntf.appendChild(ntfTitle),ntf.appendChild(ntfBody),container.appendChild(ntf),ntfImg.style.height=ntfImg.parentNode.offsetHeight+"px"||null,setTimeout(function(){ntf.className+=" shown",ntf.setAttribute("id",ntfId)},100),timeout>0&&setTimeout(function(){hide(ntfId)},timeout),ntfClose.addEventListener("click",function(){hide(ntfId)}),count+=1,ntfId},hide=function(notificationId){var notification=document.getElementById(notificationId);return!!notification&&(notification.className=notification.className.replace(" shown",""),setTimeout(function(){notification.parentNode.removeChild(notification)},600),!0)};return createContainer(),{show:show,hide:hide}}); -------------------------------------------------------------------------------- /demo/css/notifier.css: -------------------------------------------------------------------------------- 1 | .notifier-container{z-index:999;position:fixed;top:4px;right:4px;padding:4px;width:350px;max-width:98%;font-family:"Segoe UI",Tahoma,Calibri,Verdana,sans-serif;color:#999;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.notifier-container *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.notifier{position:relative;width:100%;min-height:62px;margin-bottom:12px;padding:8px;background:#fff;border-left:4px solid #95a5a6;border-radius:1px;box-shadow:0 1px 10px 0 rgba(0,0,0,.1),0 2px 15px 0 rgba(0,0,0,.05);opacity:0;-webkit-transform:translateX(100%);-moz-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%);-webkit-transition:all .6s cubic-bezier(.5,-.5,.3,1.4),opacity .6s ease;-moz-transition:all .6s cubic-bezier(.5,-.5,.3,1.4),opacity .6s ease;-ms-transition:all .6s cubic-bezier(.5,-.5,.3,1.4),opacity .6s ease;transition:all .6s cubic-bezier(.5,-.5,.3,1.4),opacity .6s ease}.notifier.shown{opacity:1;-webkit-transform:translateX(0);-moz-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}.notifier.shown:hover{opacity:1}.notifier-close{position:absolute;top:4px;right:4px;width:16px;height:16px;padding:0;text-align:center;text-decoration:none;color:#aaa;font-weight:700;font-size:16px;background:0 0;outline:0;border:none;border-radius:50%;cursor:pointer;opacity:.5;-webkit-transition:.3s ease;-moz-transition:.3s ease;-ms-transition:.3s ease;transition:.3s ease}.notifier-close:focus,.notifier-close:hover{opacity:1;color:#999;background:#eee}.notifier-img{float:left;margin-right:8px;vertical-align:middle}.img{width:48px;height:48px}.notifier-title{margin:0 0 4px;padding:0;font-size:18px;font-weight:400}.notifier-body{font-size:13px}.notifier.info{border-left-color:#3498db}.notifier.success{border-left-color:#1abc9c}.notifier.warning{border-left-color:#f1c40f}.notifier.danger{border-left-color:#e74c3c} -------------------------------------------------------------------------------- /dist/css/notifier.css: -------------------------------------------------------------------------------- 1 | .notifier-container{z-index:999;position:fixed;top:4px;right:4px;padding:4px;width:350px;max-width:98%;font-family:"Segoe UI",Tahoma,Calibri,Verdana,sans-serif;color:#999;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.notifier-container *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.notifier{position:relative;width:100%;min-height:62px;margin-bottom:12px;padding:8px;background:#fff;border-left:4px solid #95a5a6;border-radius:1px;box-shadow:0 1px 10px 0 rgba(0,0,0,.1),0 2px 15px 0 rgba(0,0,0,.05);opacity:0;-webkit-transform:translateX(100%);-moz-transform:translateX(100%);-ms-transform:translateX(100%);transform:translateX(100%);-webkit-transition:all .6s cubic-bezier(.5,-.5,.3,1.4),opacity .6s ease;-moz-transition:all .6s cubic-bezier(.5,-.5,.3,1.4),opacity .6s ease;-ms-transition:all .6s cubic-bezier(.5,-.5,.3,1.4),opacity .6s ease;transition:all .6s cubic-bezier(.5,-.5,.3,1.4),opacity .6s ease}.notifier.shown{opacity:1;-webkit-transform:translateX(0);-moz-transform:translateX(0);-ms-transform:translateX(0);transform:translateX(0)}.notifier.shown:hover{opacity:1}.notifier-close{position:absolute;top:4px;right:4px;width:16px;height:16px;padding:0;text-align:center;text-decoration:none;color:#aaa;font-weight:700;font-size:16px;background:0 0;outline:0;border:none;border-radius:50%;cursor:pointer;opacity:.5;-webkit-transition:.3s ease;-moz-transition:.3s ease;-ms-transition:.3s ease;transition:.3s ease}.notifier-close:focus,.notifier-close:hover{opacity:1;color:#999;background:#eee}.notifier-img{float:left;margin-right:8px;vertical-align:middle}.img{width:48px;height:48px}.notifier-title{margin:0 0 4px;padding:0;font-size:18px;font-weight:400}.notifier-body{font-size:13px}.notifier.info{border-left-color:#3498db}.notifier.success{border-left-color:#1abc9c}.notifier.warning{border-left-color:#f1c40f}.notifier.danger{border-left-color:#e74c3c} -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Notifier 2 | Notifications library made with VanillaJS. 3 | 4 | ## Instalation 5 | ```shell 6 | npm install notifier-js 7 | ``` 8 | 9 | ## Usage 10 | 11 | ### Default Notifications 12 | ```javascript 13 | // my-script.js 14 | import notifier from 'notifier-js' 15 | 16 | notifier.show('Hello!' , 'I am a default notification.'); 17 | notifier.show('Reminder!', 'You have a meeting at 10:30 AM.'); 18 | notifier.show('Well Done!', 'You just submit your resume successfuly.'); 19 | notifier.show('Warning!' , 'The data presented here can be change.'); 20 | notifier.show('Sorry!', 'Could not complete your transaction.'); 21 | ``` 22 | 23 | ### Notifications with icons 24 | ```javascript 25 | import notifier from 'notifier-js' 26 | 27 | notifier.show('Default!' , 'I am a default notification.', '', 'img/clock-48.png', 0); 28 | notifier.show('Reminder!', 'You have a meeting at 10:30 AM.', '', 'img/survey-48.png', 0); 29 | notifier.show('Well Done!', 'You just submit your resume successfuly.', '', 'img/ok-48.png', 0); 30 | notifier.show('Warning!' , 'The data presented here can be change.', '', 'img/medium_priority-48.png', 0); 31 | notifier.show('Sorry!', 'Could not complete your transaction.', '', 'img/high_priority-48.png', 0); 32 | ``` 33 | 34 | ### Auto Dismissable Notifications 35 | ```javascript 36 | import notifier from 'notifier-js' 37 | 38 | notifier.show('Default!' , 'I am a default notification.', '', 'img/clock-48.png', 4000); 39 | notifier.show('Reminder!', 'You have a meeting at 10:30 AM.', '', 'img/survey-48.png', 4000); 40 | notifier.show('Well Done!', 'You just submit your resume successfuly.', '', 'img/ok-48.png', 4000); 41 | notifier.show('Warning!' , 'The data presented here can be change.', '', 'img/medium_priority-48.png', 4000); 42 | notifier.show('Sorry!', 'Could not complete your transaction.', '', 'img/high_priority-48.png', 4000); 43 | ``` 44 | 45 | ### Programmatically closing a notification 46 | ```javascript 47 | import notifier from 'notifier-js' 48 | 49 | let notificationId; 50 | const showNotification = function () { 51 | notificationId = notifier.show('Reminder!', 'You have a meeting at 10:30 AM.', '', 'img/survey-48.png', 4000); 52 | }; 53 | const hideNotification = function () { 54 | notifier.hide(notificationId); 55 | }; 56 | 57 | document.querySelector('#show-button').addEventListener('click', showNotification); 58 | document.querySelector('#hide-button').addEventListener('click', hideNotification); 59 | ``` 60 | 61 | Click [here](http://csilva2810.github.io/notifier/docs/en/index.html) to se the complete usage reference. 62 | -------------------------------------------------------------------------------- /demo/js/highlight/styles/atelier-cave.light.css: -------------------------------------------------------------------------------- 1 | /* Base16 Atelier Cave Light - Theme */ 2 | /* by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/cave) */ 3 | /* Original Base16 color scheme by Chris Kempson (https://github.com/chriskempson/base16) */ 4 | 5 | /* Atelier-Cave Comment */ 6 | .hljs-comment { 7 | color: #655f6d; 8 | } 9 | 10 | /* Atelier-Cave Red */ 11 | .hljs-variable, 12 | .hljs-attribute, 13 | .hljs-tag, 14 | .hljs-regexp, 15 | .hljs-name, 16 | .ruby .hljs-constant, 17 | .xml .hljs-tag .hljs-title, 18 | .xml .hljs-pi, 19 | .xml .hljs-doctype, 20 | .html .hljs-doctype, 21 | .css .hljs-id, 22 | .css .hljs-class, 23 | .css .hljs-pseudo { 24 | color: #be4678; 25 | } 26 | 27 | /* Atelier-Cave Orange */ 28 | .hljs-number, 29 | .hljs-preprocessor, 30 | .hljs-built_in, 31 | .hljs-literal, 32 | .hljs-params, 33 | .hljs-constant { 34 | color: #aa573c; 35 | } 36 | 37 | /* Atelier-Cave Yellow */ 38 | .ruby .hljs-class .hljs-title, 39 | .css .hljs-rule .hljs-attribute { 40 | color: #a06e3b; 41 | } 42 | 43 | /* Atelier-Cave Green */ 44 | .hljs-string, 45 | .hljs-value, 46 | .hljs-inheritance, 47 | .hljs-header, 48 | .ruby .hljs-symbol, 49 | .xml .hljs-cdata { 50 | color: #2a9292; 51 | } 52 | 53 | /* Atelier-Cave Aqua */ 54 | .hljs-title, 55 | .css .hljs-hexcolor { 56 | color: #398bc6; 57 | } 58 | 59 | /* Atelier-Cave Blue */ 60 | .hljs-function, 61 | .python .hljs-decorator, 62 | .python .hljs-title, 63 | .ruby .hljs-function .hljs-title, 64 | .ruby .hljs-title .hljs-keyword, 65 | .perl .hljs-sub, 66 | .javascript .hljs-title, 67 | .coffeescript .hljs-title { 68 | color: #576ddb; 69 | } 70 | 71 | /* Atelier-Cave Purple */ 72 | .hljs-keyword, 73 | .javascript .hljs-function { 74 | color: #955ae7; 75 | } 76 | 77 | .diff .hljs-deletion, 78 | .diff .hljs-addition { 79 | color: #19171c; 80 | display: inline-block; 81 | width: 100%; 82 | } 83 | 84 | .diff .hljs-deletion { 85 | background-color: #be4678; 86 | } 87 | 88 | .diff .hljs-addition { 89 | background-color: #2a9292; 90 | } 91 | 92 | .diff .hljs-change { 93 | color: #576ddb; 94 | } 95 | 96 | .hljs { 97 | display: block; 98 | overflow-x: auto; 99 | background: #efecf4; 100 | color: #585260; 101 | padding: 0.5em; 102 | -webkit-text-size-adjust: none; 103 | } 104 | 105 | .coffeescript .javascript, 106 | .javascript .xml, 107 | .tex .hljs-formula, 108 | .xml .javascript, 109 | .xml .vbscript, 110 | .xml .css, 111 | .xml .hljs-cdata { 112 | opacity: 0.5; 113 | } 114 | -------------------------------------------------------------------------------- /js/notifier.js: -------------------------------------------------------------------------------- 1 | ;(function (root, factory) { 2 | if (typeof exports === 'object' && typeof module === 'object') { 3 | module.exports = factory(); 4 | } else if(typeof define === 'function' && define.amd) { 5 | define([], factory); 6 | } else if(typeof exports === 'object') { 7 | exports['notifier'] = factory(); 8 | } else { 9 | root['notifier'] = factory(); 10 | } 11 | }(typeof self !== 'undefined' ? self : this, function () { 12 | var count = 0; 13 | var d = document; 14 | 15 | var myCreateElement = function(elem, attrs) { 16 | var el = d.createElement(elem); 17 | for (var prop in attrs) { 18 | el.setAttribute(prop, attrs[prop]); 19 | } 20 | return el; 21 | }; 22 | 23 | var createContainer = function() { 24 | var container = myCreateElement('div', {class: 'notifier-container', id: 'notifier-container'}); 25 | d.body.appendChild(container); 26 | }; 27 | 28 | var show = function(title, msg, type, icon, timeout) { 29 | 30 | if (typeof timeout != 'number') timeout = 0; 31 | 32 | var ntfId = 'notifier-' + count; 33 | 34 | var container = d.querySelector('.notifier-container'), 35 | ntf = myCreateElement('div', {class: 'notifier ' + type}), 36 | ntfTitle = myCreateElement('h2', {class: 'notifier-title'}), 37 | ntfBody = myCreateElement('div', {class: 'notifier-body'}), 38 | ntfImg = myCreateElement('div', {class: 'notifier-img'}), 39 | img = myCreateElement('img', {class: 'img', src: icon}), 40 | ntfClose = myCreateElement('button',{class: 'notifier-close', type: 'button'}); 41 | 42 | ntfTitle.innerHTML = title; 43 | ntfBody.innerHTML = msg; 44 | ntfClose.innerHTML = '×'; 45 | 46 | if (icon.length > 0) { 47 | ntfImg.appendChild(img); 48 | } 49 | 50 | ntf.appendChild(ntfClose); 51 | ntf.appendChild(ntfImg); 52 | ntf.appendChild(ntfTitle); 53 | ntf.appendChild(ntfBody); 54 | 55 | container.appendChild(ntf); 56 | 57 | ntfImg.style.height = ntfImg.parentNode.offsetHeight + 'px' || null; 58 | 59 | setTimeout(function() { 60 | ntf.className += ' shown'; 61 | ntf.setAttribute('id', ntfId); 62 | }, 100); 63 | 64 | if (timeout > 0) { 65 | 66 | setTimeout(function() { 67 | hide(ntfId); 68 | }, timeout); 69 | 70 | } 71 | 72 | ntfClose.addEventListener('click', function() { 73 | hide(ntfId); 74 | }); 75 | 76 | count += 1; 77 | 78 | return ntfId; 79 | 80 | }; 81 | 82 | var hide = function(notificationId) { 83 | 84 | var notification = document.getElementById(notificationId); 85 | 86 | if (notification) { 87 | 88 | notification.className = notification.className.replace(' shown', ''); 89 | 90 | setTimeout(function() { 91 | notification.parentNode.removeChild(notification); 92 | }, 600); 93 | 94 | return true; 95 | 96 | } else { 97 | return false; 98 | } 99 | }; 100 | 101 | createContainer(); 102 | 103 | return { 104 | show: show, 105 | hide: hide 106 | }; 107 | })); 108 | -------------------------------------------------------------------------------- /css/notifier.css: -------------------------------------------------------------------------------- 1 | .notifier-container { 2 | z-index: 999; 3 | position: fixed; 4 | top: 4px; 5 | right: 4px; 6 | padding: 4px; 7 | width: 350px; 8 | max-width: 98%; 9 | font-family: "Segoe UI", "Tahoma", "Calibri", "Verdana", sans-serif; 10 | color: #999; 11 | 12 | -webkit-box-sizing: border-box; 13 | -moz-box-sizing: border-box; 14 | -ms-box-sizing: border-box; 15 | box-sizing: border-box; 16 | } 17 | .notifier-container * { 18 | -webkit-box-sizing: border-box; 19 | -moz-box-sizing: border-box; 20 | -ms-box-sizing: border-box; 21 | box-sizing: border-box; 22 | } 23 | .notifier { 24 | position: relative; 25 | width: 100%; 26 | min-height: 62px; 27 | margin-bottom: 12px; 28 | padding: 8px; 29 | background: white; 30 | border-left: 4px solid #95a5a6; 31 | border-radius: 1px; 32 | box-shadow: 0 1px 10px 0 rgba(0,0,0,.1), 0 2px 15px 0 rgba(0,0,0,.05); 33 | 34 | opacity: 0; 35 | -webkit-transform: translateX(100%); 36 | -moz-transform: translateX(100%); 37 | -ms-transform: translateX(100%); 38 | transform: translateX(100%); 39 | 40 | -webkit-transition: all .6s cubic-bezier(0.5, -0.5, 0.3, 1.4), 41 | opacity .6s ease; 42 | -moz-transition: all .6s cubic-bezier(0.5, -0.5, 0.3, 1.4), 43 | opacity .6s ease; 44 | -ms-transition: all .6s cubic-bezier(0.5, -0.5, 0.3, 1.4), 45 | opacity .6s ease; 46 | transition: all .6s cubic-bezier(0.5, -0.5, 0.3, 1.4), 47 | opacity .6s ease; 48 | } 49 | .notifier.shown { 50 | opacity: 1; 51 | -webkit-transform: translateX(0); 52 | -moz-transform: translateX(0); 53 | -ms-transform: translateX(0); 54 | transform: translateX(0); 55 | } 56 | .notifier.shown:hover { 57 | opacity: 1; 58 | } 59 | .notifier-close { 60 | position: absolute; 61 | top: 4px; 62 | right: 4px; 63 | width: 16px; 64 | height: 16px; 65 | padding: 0; 66 | text-align: center; 67 | text-decoration: none; 68 | color: #aaa; 69 | font-weight: bold; 70 | font-size: 16px; 71 | background: transparent; 72 | outline: none; 73 | border: none; 74 | border-radius: 50%; 75 | cursor: pointer; 76 | opacity: .5; 77 | -webkit-transition: .3s ease; 78 | -moz-transition: .3s ease; 79 | -ms-transition: .3s ease; 80 | transition: .3s ease; 81 | } 82 | .notifier-close:hover, 83 | .notifier-close:focus { 84 | opacity: 1; 85 | color: #999; 86 | background: #eee; 87 | } 88 | .notifier-img { 89 | float: left; 90 | margin-right: 8px; 91 | vertical-align: middle; 92 | } 93 | .img { 94 | width: 48px; 95 | height: 48px; 96 | } 97 | .notifier-title { 98 | margin: 0; 99 | padding: 0; 100 | margin-bottom: 4px; 101 | font-size: 18px; 102 | font-weight: normal; 103 | } 104 | .notifier-body { 105 | font-size: 13px; 106 | } 107 | .notifier.info { 108 | border-left-color: #3498db; 109 | } 110 | .notifier.success { 111 | border-left-color: #1abc9c; 112 | } 113 | .notifier.warning { 114 | border-left-color: #f1c40f; 115 | } 116 | .notifier.danger { 117 | border-left-color: #e74c3c; 118 | } 119 | -------------------------------------------------------------------------------- /demo/js/page.js: -------------------------------------------------------------------------------- 1 | var textDefault, 2 | titleDefault, 3 | textInfo, 4 | titleInfo, 5 | textSuccess, 6 | titleSuccess, 7 | textWarning, 8 | titleWarning, 9 | textDanger, 10 | titleDanger; 11 | 12 | var idiom = document.querySelector("#idiom").value; 13 | 14 | switch (idiom) { 15 | case 'en': 16 | 17 | textDefault = 'I am a default notification'; 18 | titleDefault = 'Hello!'; 19 | textInfo = 'You have a meeting at 10:30 AM'; 20 | titleInfo = 'Reminder!'; 21 | textSuccess = 'You just submit your resume successfuly.'; 22 | titleSuccess = 'Well Done!'; 23 | textWarning = 'The data presented here can be change.'; 24 | titleWarning = 'Warning!'; 25 | textDanger = 'Could not complete your transaction.'; 26 | titleDanger = 'Sorry!'; 27 | 28 | break; 29 | case 'pt_br': 30 | 31 | textDefault = 'Sou uma notificação Default.'; 32 | titleDefault = 'Default!'; 33 | textInfo = 'Você tem uma reunião agendada às 10:30h.'; 34 | titleInfo = 'Lembrete!'; 35 | textSuccess = 'Você acabou de cadastrar seu currículo com sucesso.'; 36 | titleSuccess = 'Parabéns!'; 37 | textWarning = 'Os dados apresentados nessa tela podem sofrer alterações.'; 38 | titleWarning = 'Atenção!'; 39 | textDanger = 'Ocorreu um erro! Não foi possível salvar o registro.'; 40 | titleDanger = 'Desculpe!'; 41 | 42 | break; 43 | } 44 | 45 | //Selecão de Idioma 46 | document.querySelector('#idiom').addEventListener('change', function () { 47 | 48 | var origin = window.location.origin; 49 | 50 | switch (this.value) { 51 | 52 | case 'en': 53 | window.location = origin + '/notifier/docs/en/index.html'; 54 | break; 55 | case 'pt_br': 56 | window.location = origin + '/notifier/docs/pt_br/index.html'; 57 | break; 58 | 59 | } 60 | 61 | }); 62 | 63 | document.querySelector('#btn-default').addEventListener('click', function () { 64 | notifier.show(titleDefault, textDefault, '', '', 0); 65 | }, false); 66 | 67 | document.querySelector('#btn-info').addEventListener('click', function () { 68 | notifier.show(titleInfo, textInfo, 'info', '', 0); 69 | }, false); 70 | 71 | document.querySelector('#btn-success').addEventListener('click', function () { 72 | notifier.show(titleSuccess, textSuccess, 'success', '', 0); 73 | }, false); 74 | 75 | document.querySelector('#btn-warning').addEventListener('click', function () { 76 | notifier.show(titleWarning, textWarning, 'warning', '', 0); 77 | }, false); 78 | 79 | document.querySelector('#btn-danger').addEventListener('click', function () { 80 | notifier.show(titleDanger, textDanger, 'danger', '', 0); 81 | }, false); 82 | 83 | //com icones 84 | document.querySelector('#btn-default-i').addEventListener('click', function (){ 85 | notifier.show(titleDefault, textDefault, '', '../../img/clock-48.png', 0); 86 | }, false); 87 | 88 | document.querySelector('#btn-info-i').addEventListener('click', function (){ 89 | notifier.show(titleInfo, textInfo, 'info', '../../img/survey-48.png', 0); 90 | }, false); 91 | 92 | document.querySelector('#btn-success-i').addEventListener('click', function (){ 93 | notifier.show(titleSuccess, textSuccess, 'success', '../../img/ok-48.png', 0); 94 | }, false); 95 | 96 | document.querySelector('#btn-warning-i').addEventListener('click', function () { 97 | notifier.show(titleWarning, textWarning, 'warning', '../../img/medium_priority-48.png', 0); 98 | }, false); 99 | 100 | document.querySelector('#btn-danger-i').addEventListener('click', function () { 101 | notifier.show(titleDanger, textDanger, 'danger', '../../img/high_priority-48.png', 0); 102 | }, false); 103 | 104 | //com temporizador 105 | document.querySelector('#btn-default-temp').addEventListener('click', function () { 106 | notifier.show(titleDefault, textDefault, '', '../../img/clock-48.png', 4000); 107 | }, false); 108 | 109 | document.querySelector('#btn-info-temp').addEventListener('click', function () { 110 | notifier.show(titleInfo, textInfo, 'info', '../../img/survey-48.png', 4000); 111 | }, false); 112 | 113 | document.querySelector('#btn-success-temp').addEventListener('click', function () { 114 | notifier.show(titleSuccess, textSuccess, 'success', '../../img/ok-48.png', 4000); 115 | }, false); 116 | 117 | document.querySelector('#btn-warning-temp').addEventListener('click', function () { 118 | notifier.show(titleWarning, textWarning, 'warning', '../../img/medium_priority-48.png', 4000); 119 | }, false); 120 | 121 | document.querySelector('#btn-danger-temp').addEventListener('click', function () { 122 | notifier.show(titleDanger, textDanger, 'danger', '../../img/high_priority-48.png', 4000); 123 | }, false); 124 | 125 | //abrir e fechar 126 | var notificationId; 127 | var showNotification = function () { 128 | notificationId = notifier.show(titleInfo, textInfo, '', '../../img/survey-48.png', 4000); 129 | }; 130 | var hideNotification = function () { 131 | notifier.hide(notificationId); 132 | }; 133 | document.querySelector('#btn-nt-show').addEventListener('click', showNotification); 134 | document.querySelector('#btn-nt-hide').addEventListener('click', hideNotification); -------------------------------------------------------------------------------- /demo/css/page.css: -------------------------------------------------------------------------------- 1 | *, *:before, *:after { 2 | -webkit-box-sizing: border-box; 3 | -moz-box-sizing: border-box; 4 | -ms-box-sizing: border-box; 5 | box-sizing: border-box; 6 | } 7 | html, body { 8 | margin: 0; 9 | padding: 0; 10 | font-family: "Raleway", "Segoe UI", "Calibri", sans-serif; 11 | font-size: 15px; 12 | color: #777; 13 | background-color: #fff; 14 | } 15 | a, 16 | a:visited { 17 | text-decoration: none; 18 | color: #1abc9c; 19 | } 20 | .header, 21 | .footer { 22 | padding: 25px 20%; 23 | background-color: #5af; 24 | background: -webkit-linear-gradient(right, #27c, #5af); 25 | background: linear-gradient(to right, #27c, #5af); 26 | color: white; 27 | text-align: center; 28 | } 29 | .header { 30 | padding-top: 5%; 31 | padding-bottom: 5%; 32 | } 33 | .footer a, 34 | .footer a:visited { 35 | color: white; 36 | text-decoration: underline; 37 | } 38 | .container { 39 | width: 80%; 40 | margin: 0 auto; 41 | padding: 2% 0; 42 | } 43 | @media screen and (max-width: 768px) { 44 | .header, 45 | .footer { 46 | padding: 10% 5%; 47 | } 48 | .container { 49 | width: 95%; 50 | } 51 | .title { 52 | text-align: center; 53 | } 54 | .btn-group { 55 | display: block; 56 | width: 100%; 57 | text-align: center; 58 | } 59 | } 60 | .method { 61 | display: block; 62 | width: 100%; 63 | padding: 8px 4px; 64 | border-radius: 2px; 65 | font-weight: normal; 66 | background-color: #5af; 67 | color: white; 68 | } 69 | .page-title { 70 | width: 100%; 71 | margin: 0 auto; 72 | font-size: 3em; 73 | text-align: center; 74 | } 75 | .page-description { 76 | width: 100%; 77 | margin: 12px auto; 78 | font-weight: normal; 79 | color: #fff; 80 | text-align: center; 81 | } 82 | .page-description-text { 83 | padding: 10px; 84 | background: rgba(0,0,0,.2); 85 | border-radius: 4px; 86 | line-height: 20px; 87 | } 88 | pre { 89 | margin: 0 auto; 90 | } 91 | .code { 92 | display: inline-block; 93 | padding: 2px; 94 | background-color: #eee; 95 | border: 1px solid #ddd; 96 | box-shadow: 0 1px 2px 0 rgba(0,0,0,0.1); 97 | border-radius: 2px; 98 | } 99 | .code-example { 100 | padding: 0 !important; 101 | background: #fafafa !important; 102 | border: 1px solid #eaeaea !important; 103 | border-radius: 4px !important; 104 | text-align: left !important; 105 | font-size: 14px !important; 106 | } 107 | .box { 108 | margin: 0 auto; 109 | padding: 12px; 110 | } 111 | .btn { 112 | display: inline-block; 113 | width: auto; 114 | padding: 6px 12px; 115 | margin-bottom: 6px; 116 | text-align: center; 117 | color: #888; 118 | background: white; 119 | outline: 1px dashed transparent; 120 | border: 1px solid #ddd; 121 | border-radius: 3px; 122 | cursor: pointer; 123 | -webkit-user-select: none; 124 | user-select: none; 125 | 126 | box-shadow: inset 0 1px 0 rgba(255,255,255,0.1); 127 | 128 | -webkit-transition: .3s ease, outline 0s; 129 | -moz-transition: .3s ease, outline 0s; 130 | -ms-transition: .3s ease, outline 0s; 131 | transition: .3s ease, outline 0s; 132 | } 133 | @media screen and (max-width: 400px) { 134 | .btn { 135 | display: block; 136 | width: 100%; 137 | padding-top: 8px; 138 | padding-bottom: 8px; 139 | } 140 | } 141 | .btn:hover, 142 | .btn:focus { 143 | background: #eee; 144 | box-shadow: inset 0 1px 0 rgba(255,255,255,0.1), 145 | 0 3px 8px 0 rgba(0,0,0,.2); 146 | } 147 | .btn.btn-info { 148 | background: #3498db; 149 | border-color: #3498db; 150 | color: white; 151 | } 152 | .btn.btn-info:hover { 153 | background: #44a8eb; 154 | border-color: #44a8eb; 155 | } 156 | .btn.btn-success { 157 | background: #1abc9c; 158 | border-color: #1abc9c; 159 | color: white; 160 | } 161 | .btn.btn-success:hover { 162 | background: #2accac; 163 | border-color: #2accac; 164 | } 165 | .btn.btn-warning { 166 | background: #f1c40f; 167 | border-color: #f1c40f; 168 | color: white; 169 | } 170 | .btn.btn-warning:hover { 171 | background: #f2ca2a; 172 | border-color: #f2ca2a; 173 | } 174 | .btn.btn-danger { 175 | background: #e74c3c; 176 | border-color: #e74c3c; 177 | color: white; 178 | } 179 | .btn.btn-danger:hover { 180 | background: #f75c4c; 181 | border-color: #f75c4c; 182 | } 183 | .btn.btn-outline { 184 | padding: 12px 16px; 185 | font-size: 16px; 186 | background-color: transparent; 187 | border: 1px solid #fff; 188 | color: white; 189 | border-radius: 4px; 190 | box-shadow: none; 191 | } 192 | .btn.btn-outline:hover, 193 | .btn.btn-outline:focus { 194 | box-shadow: none; 195 | background: rgba(255,255,255,0.2); 196 | } 197 | .label { 198 | font-weight: bold; 199 | } 200 | .form-control { 201 | display: inline-block; 202 | width: auto; 203 | height: 36px; 204 | color: #777; 205 | background-color: #fff; 206 | border: 2px solid #e0e3e4; 207 | border-radius: 6px; 208 | outline: none; 209 | transition: .3s; 210 | } 211 | .form-control:hover, 212 | .form-control:focus { 213 | border-color: #e0e3e4; 214 | background-color: #fcfeff; 215 | } 216 | .table { 217 | width: 100%; 218 | margin: 0 auto; 219 | border-collapse: collapse; 220 | border: 1px solid #ddd; 221 | } 222 | .table th, 223 | .table .title { 224 | padding: 6px 4px; 225 | background-color: #eee; 226 | border-bottom: 1px solid #ddd; 227 | font-weight: bold; 228 | } 229 | .table td { 230 | padding: 4px; 231 | border: 1px solid #e5e5e5; 232 | } 233 | .browser-list { 234 | list-style: none; 235 | padding: 0; 236 | display: block; 237 | } 238 | @media screen and (max-width: 768px) { 239 | .browser-list { 240 | margin: 0 auto; 241 | text-align: center; 242 | } 243 | } 244 | .browser-list-item { 245 | display: inline-block; 246 | padding: 8px 12px; 247 | margin-right: 6px; 248 | border-radius: 4px; 249 | text-align: center; 250 | 251 | transition: .3s ease; 252 | } 253 | .browser-list-item:hover { 254 | background: #eee; 255 | box-shadow: 0 2px 5px 0 rgba(0,0,0,0.2); 256 | } 257 | .browser { 258 | display: block; 259 | margin-bottom: 6px; 260 | background-image: url('../img/browser-sprite.png'); 261 | background-repeat: no-repeat; 262 | } 263 | .browser.chrome { 264 | background-position: -3px -4px; 265 | width: 54px; 266 | height: 54px; 267 | } 268 | .browser.firefox { 269 | background-position: -64px -4px; 270 | width: 52px; 271 | height: 54px; 272 | } 273 | .browser.ie { 274 | background-position: -122px -4px; 275 | width: 54px; 276 | height: 54px; 277 | } 278 | .browser.opera { 279 | background-position: -186px -4px; 280 | width: 48px; 281 | height: 54px; 282 | } 283 | .browser.safari { 284 | background-position: -244px -4px; 285 | width: 52px; 286 | height: 54px; 287 | } 288 | .social { 289 | text-align: center; 290 | } 291 | .social-item { 292 | display: inline-block; 293 | width: 50px; 294 | height: 50px; 295 | line-height: 50px; 296 | font-size: 22px; 297 | color: white; 298 | background-color: transparent; 299 | border-radius: 50%; 300 | transition: .3s; 301 | } 302 | .social-item:hover { 303 | background-color: rgba(255,255,255,0.2); 304 | } 305 | hr { 306 | display: block; 307 | margin: 0; 308 | margin-bottom: 24px; 309 | width: 25px; 310 | height: 5px; 311 | background: #ddd; 312 | border: none; 313 | } 314 | .nowrap { 315 | white-space: nowrap; 316 | } 317 | .text-center { 318 | text-align: center; 319 | } 320 | .text-left { 321 | text-align: left; 322 | } 323 | .text-right { 324 | text-align: right; 325 | } 326 | .bold { 327 | font-weight: bold; 328 | } 329 | ::-webkit-scrollbar { width: 8px; height: 8px; } 330 | ::-webkit-scrollbar:hover { width: 8px; } 331 | ::-webkit-scrollbar-track { 332 | background: #fff; 333 | border: 1px solid #ddd; 334 | } 335 | ::-webkit-scrollbar-thumb { 336 | border-radius: 100px; 337 | background: #ddd; 338 | } 339 | ::-webkit-scrollbar-thumb:hover { background: #ccc; } 340 | ::-webkit-scrollbar-thumb:active { background: #bbb; } -------------------------------------------------------------------------------- /demo/js/highlight/highlight.pack.js: -------------------------------------------------------------------------------- 1 | !function(e){"undefined"!=typeof exports?e(exports):(window.hljs=e({}),"function"==typeof define&&define.amd&&define("hljs",[],function(){return window.hljs}))}(function(e){function n(e){return e.replace(/&/gm,"&").replace(//gm,">")}function t(e){return e.nodeName.toLowerCase()}function r(e,n){var t=e&&e.exec(n);return t&&0==t.index}function a(e){return/^(no-?highlight|plain|text)$/i.test(e)}function i(e){var n,t,r,i=e.className+" ";if(i+=e.parentNode?e.parentNode.className:"",t=/\blang(?:uage)?-([\w-]+)\b/i.exec(i))return w(t[1])?t[1]:"no-highlight";for(i=i.split(/\s+/),n=0,r=i.length;r>n;n++)if(w(i[n])||a(i[n]))return i[n]}function o(e,n){var t,r={};for(t in e)r[t]=e[t];if(n)for(t in n)r[t]=n[t];return r}function u(e){var n=[];return function r(e,a){for(var i=e.firstChild;i;i=i.nextSibling)3==i.nodeType?a+=i.nodeValue.length:1==i.nodeType&&(n.push({event:"start",offset:a,node:i}),a=r(i,a),t(i).match(/br|hr|img|input/)||n.push({event:"stop",offset:a,node:i}));return a}(e,0),n}function c(e,r,a){function i(){return e.length&&r.length?e[0].offset!=r[0].offset?e[0].offset"}function u(e){f+=""}function c(e){("start"==e.event?o:u)(e.node)}for(var s=0,f="",l=[];e.length||r.length;){var g=i();if(f+=n(a.substr(s,g[0].offset-s)),s=g[0].offset,g==e){l.reverse().forEach(u);do c(g.splice(0,1)[0]),g=i();while(g==e&&g.length&&g[0].offset==s);l.reverse().forEach(o)}else"start"==g[0].event?l.push(g[0].node):l.pop(),c(g.splice(0,1)[0])}return f+n(a.substr(s))}function s(e){function n(e){return e&&e.source||e}function t(t,r){return new RegExp(n(t),"m"+(e.cI?"i":"")+(r?"g":""))}function r(a,i){if(!a.compiled){if(a.compiled=!0,a.k=a.k||a.bK,a.k){var u={},c=function(n,t){e.cI&&(t=t.toLowerCase()),t.split(" ").forEach(function(e){var t=e.split("|");u[t[0]]=[n,t[1]?Number(t[1]):1]})};"string"==typeof a.k?c("keyword",a.k):Object.keys(a.k).forEach(function(e){c(e,a.k[e])}),a.k=u}a.lR=t(a.l||/\b\w+\b/,!0),i&&(a.bK&&(a.b="\\b("+a.bK.split(" ").join("|")+")\\b"),a.b||(a.b=/\B|\b/),a.bR=t(a.b),a.e||a.eW||(a.e=/\B|\b/),a.e&&(a.eR=t(a.e)),a.tE=n(a.e)||"",a.eW&&i.tE&&(a.tE+=(a.e?"|":"")+i.tE)),a.i&&(a.iR=t(a.i)),void 0===a.r&&(a.r=1),a.c||(a.c=[]);var s=[];a.c.forEach(function(e){e.v?e.v.forEach(function(n){s.push(o(e,n))}):s.push("self"==e?a:e)}),a.c=s,a.c.forEach(function(e){r(e,a)}),a.starts&&r(a.starts,i);var f=a.c.map(function(e){return e.bK?"\\.?("+e.b+")\\.?":e.b}).concat([a.tE,a.i]).map(n).filter(Boolean);a.t=f.length?t(f.join("|"),!0):{exec:function(){return null}}}}r(e)}function f(e,t,a,i){function o(e,n){for(var t=0;t";return i+=e+'">',i+n+o}function p(){if(!L.k)return n(y);var e="",t=0;L.lR.lastIndex=0;for(var r=L.lR.exec(y);r;){e+=n(y.substr(t,r.index-t));var a=g(L,r);a?(B+=a[1],e+=h(a[0],n(r[0]))):e+=n(r[0]),t=L.lR.lastIndex,r=L.lR.exec(y)}return e+n(y.substr(t))}function d(){var e="string"==typeof L.sL;if(e&&!x[L.sL])return n(y);var t=e?f(L.sL,y,!0,M[L.sL]):l(y,L.sL.length?L.sL:void 0);return L.r>0&&(B+=t.r),e&&(M[L.sL]=t.top),h(t.language,t.value,!1,!0)}function b(){return void 0!==L.sL?d():p()}function v(e,t){var r=e.cN?h(e.cN,"",!0):"";e.rB?(k+=r,y=""):e.eB?(k+=n(t)+r,y=""):(k+=r,y=t),L=Object.create(e,{parent:{value:L}})}function m(e,t){if(y+=e,void 0===t)return k+=b(),0;var r=o(t,L);if(r)return k+=b(),v(r,t),r.rB?0:t.length;var a=u(L,t);if(a){var i=L;i.rE||i.eE||(y+=t),k+=b();do L.cN&&(k+=""),B+=L.r,L=L.parent;while(L!=a.parent);return i.eE&&(k+=n(t)),y="",a.starts&&v(a.starts,""),i.rE?0:t.length}if(c(t,L))throw new Error('Illegal lexeme "'+t+'" for mode "'+(L.cN||"")+'"');return y+=t,t.length||1}var N=w(e);if(!N)throw new Error('Unknown language: "'+e+'"');s(N);var R,L=i||N,M={},k="";for(R=L;R!=N;R=R.parent)R.cN&&(k=h(R.cN,"",!0)+k);var y="",B=0;try{for(var C,j,I=0;;){if(L.t.lastIndex=I,C=L.t.exec(t),!C)break;j=m(t.substr(I,C.index-I),C[0]),I=C.index+j}for(m(t.substr(I)),R=L;R.parent;R=R.parent)R.cN&&(k+="");return{r:B,value:k,language:e,top:L}}catch(O){if(-1!=O.message.indexOf("Illegal"))return{r:0,value:n(t)};throw O}}function l(e,t){t=t||E.languages||Object.keys(x);var r={r:0,value:n(e)},a=r;return t.forEach(function(n){if(w(n)){var t=f(n,e,!1);t.language=n,t.r>a.r&&(a=t),t.r>r.r&&(a=r,r=t)}}),a.language&&(r.second_best=a),r}function g(e){return E.tabReplace&&(e=e.replace(/^((<[^>]+>|\t)+)/gm,function(e,n){return n.replace(/\t/g,E.tabReplace)})),E.useBR&&(e=e.replace(/\n/g,"
")),e}function h(e,n,t){var r=n?R[n]:t,a=[e.trim()];return e.match(/\bhljs\b/)||a.push("hljs"),-1===e.indexOf(r)&&a.push(r),a.join(" ").trim()}function p(e){var n=i(e);if(!a(n)){var t;E.useBR?(t=document.createElementNS("http://www.w3.org/1999/xhtml","div"),t.innerHTML=e.innerHTML.replace(/\n/g,"").replace(//g,"\n")):t=e;var r=t.textContent,o=n?f(n,r,!0):l(r),s=u(t);if(s.length){var p=document.createElementNS("http://www.w3.org/1999/xhtml","div");p.innerHTML=o.value,o.value=c(s,u(p),r)}o.value=g(o.value),e.innerHTML=o.value,e.className=h(e.className,n,o.language),e.result={language:o.language,re:o.r},o.second_best&&(e.second_best={language:o.second_best.language,re:o.second_best.r})}}function d(e){E=o(E,e)}function b(){if(!b.called){b.called=!0;var e=document.querySelectorAll("pre code");Array.prototype.forEach.call(e,p)}}function v(){addEventListener("DOMContentLoaded",b,!1),addEventListener("load",b,!1)}function m(n,t){var r=x[n]=t(e);r.aliases&&r.aliases.forEach(function(e){R[e]=n})}function N(){return Object.keys(x)}function w(e){return e=e.toLowerCase(),x[e]||x[R[e]]}var E={classPrefix:"hljs-",tabReplace:null,useBR:!1,languages:void 0},x={},R={};return e.highlight=f,e.highlightAuto=l,e.fixMarkup=g,e.highlightBlock=p,e.configure=d,e.initHighlighting=b,e.initHighlightingOnLoad=v,e.registerLanguage=m,e.listLanguages=N,e.getLanguage=w,e.inherit=o,e.IR="[a-zA-Z]\\w*",e.UIR="[a-zA-Z_]\\w*",e.NR="\\b\\d+(\\.\\d+)?",e.CNR="(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",e.BNR="\\b(0b[01]+)",e.RSR="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~",e.BE={b:"\\\\[\\s\\S]",r:0},e.ASM={cN:"string",b:"'",e:"'",i:"\\n",c:[e.BE]},e.QSM={cN:"string",b:'"',e:'"',i:"\\n",c:[e.BE]},e.PWM={b:/\b(a|an|the|are|I|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such)\b/},e.C=function(n,t,r){var a=e.inherit({cN:"comment",b:n,e:t,c:[]},r||{});return a.c.push(e.PWM),a.c.push({cN:"doctag",b:"(?:TODO|FIXME|NOTE|BUG|XXX):",r:0}),a},e.CLCM=e.C("//","$"),e.CBCM=e.C("/\\*","\\*/"),e.HCM=e.C("#","$"),e.NM={cN:"number",b:e.NR,r:0},e.CNM={cN:"number",b:e.CNR,r:0},e.BNM={cN:"number",b:e.BNR,r:0},e.CSSNM={cN:"number",b:e.NR+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?",r:0},e.RM={cN:"regexp",b:/\//,e:/\/[gimuy]*/,i:/\n/,c:[e.BE,{b:/\[/,e:/\]/,r:0,c:[e.BE]}]},e.TM={cN:"title",b:e.IR,r:0},e.UTM={cN:"title",b:e.UIR,r:0},e});hljs.registerLanguage("css",function(e){var c="[a-zA-Z-][a-zA-Z0-9_-]*",a={cN:"function",b:c+"\\(",rB:!0,eE:!0,e:"\\("},r={cN:"rule",b:/[A-Z\_\.\-]+\s*:/,rB:!0,e:";",eW:!0,c:[{cN:"attribute",b:/\S/,e:":",eE:!0,starts:{cN:"value",eW:!0,eE:!0,c:[a,e.CSSNM,e.QSM,e.ASM,e.CBCM,{cN:"hexcolor",b:"#[0-9A-Fa-f]+"},{cN:"important",b:"!important"}]}}]};return{cI:!0,i:/[=\/|'\$]/,c:[e.CBCM,r,{cN:"id",b:/\#[A-Za-z0-9_-]+/},{cN:"class",b:/\.[A-Za-z0-9_-]+/},{cN:"attr_selector",b:/\[/,e:/\]/,i:"$"},{cN:"pseudo",b:/:(:)?[a-zA-Z0-9\_\-\+\(\)"']+/},{cN:"at_rule",b:"@(font-face|page)",l:"[a-z-]+",k:"font-face page"},{cN:"at_rule",b:"@",e:"[{;]",c:[{cN:"keyword",b:/\S+/},{b:/\s/,eW:!0,eE:!0,r:0,c:[a,e.ASM,e.QSM,e.CSSNM]}]},{cN:"tag",b:c,r:0},{cN:"rules",b:"{",e:"}",i:/\S/,c:[e.CBCM,r]}]}});hljs.registerLanguage("javascript",function(e){return{aliases:["js"],k:{keyword:"in of if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const export super debugger as async await",literal:"true false null undefined NaN Infinity",built_in:"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect Promise"},c:[{cN:"pi",r:10,b:/^\s*['"]use (strict|asm)['"]/},e.ASM,e.QSM,{cN:"string",b:"`",e:"`",c:[e.BE,{cN:"subst",b:"\\$\\{",e:"\\}"}]},e.CLCM,e.CBCM,{cN:"number",v:[{b:"\\b(0[bB][01]+)"},{b:"\\b(0[oO][0-7]+)"},{b:e.CNR}],r:0},{b:"("+e.RSR+"|\\b(case|return|throw)\\b)\\s*",k:"return throw case",c:[e.CLCM,e.CBCM,e.RM,{b:/\s*[);\]]/,r:0,sL:"xml"}],r:0},{cN:"function",bK:"function",e:/\{/,eE:!0,c:[e.inherit(e.TM,{b:/[A-Za-z$_][0-9A-Za-z$_]*/}),{cN:"params",b:/\(/,e:/\)/,eB:!0,eE:!0,c:[e.CLCM,e.CBCM]}],i:/\[|%/},{b:/\$[(.]/},{b:"\\."+e.IR,r:0},{bK:"import",e:"[;$]",k:"import from as",c:[e.ASM,e.QSM]},{cN:"class",bK:"class",e:/[{;=]/,eE:!0,i:/[:"\[\]]/,c:[{bK:"extends"},e.UTM]}],i:/#/}});hljs.registerLanguage("xml",function(t){var s="[A-Za-z0-9\\._:-]+",c={b:/<\?(php)?(?!\w)/,e:/\?>/,sL:"php"},e={eW:!0,i:/]+/}]}]}]};return{aliases:["html","xhtml","rss","atom","xsl","plist"],cI:!0,c:[{cN:"doctype",b:"",r:10,c:[{b:"\\[",e:"\\]"}]},t.C("",{r:10}),{cN:"cdata",b:"<\\!\\[CDATA\\[",e:"\\]\\]>",r:10},{cN:"tag",b:"|$)",e:">",k:{title:"style"},c:[e],starts:{e:"",rE:!0,sL:"css"}},{cN:"tag",b:"|$)",e:">",k:{title:"script"},c:[e],starts:{e:"",rE:!0,sL:["actionscript","javascript","handlebars"]}},c,{cN:"pi",b:/<\?\w+/,e:/\?>/,r:10},{cN:"tag",b:"",c:[{cN:"title",b:/[^ \/><\n\t]+/,r:0},e]}]}}); -------------------------------------------------------------------------------- /demo/docs/en/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Notifier 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 |
42 | 43 |

Notifier

44 |

Bealtiful notifications with CSS and Vanilla JavaScript!

45 | 46 |

47 | Working in a project that needs a solution for display notifications? Good news \o/
48 | Notifier can helps you with this task! Just import it into your project and start to use! 49 |

50 | 51 | 59 | 60 |
61 | 62 |
63 | 64 |
65 | 66 |
67 | 68 | 72 |
73 | 74 |

How to use?

75 |

Very Simple!

76 |
    77 |
  1. Download the project.
  2. 78 |
  3. Export the files.
  4. 79 |
  5. Copy the files "notifier.css" and "notifier.js" into your project.
  6. 80 |
  7. Import the CSS into <header>
  8. 81 |
  9. Import the JS before closing the <body>
  10. 82 |
  11. Enjoy! ;)
  12. 83 |
84 | 85 |

Default Notifications

86 | 87 |
88 | 89 | 90 | 91 | 92 | 93 |
94 | 95 |
 96 |         
 97 |           notifier.show('Hello!' , 'I am a default notification.', '', '', 0);
 98 |           notifier.show('Reminder!', 'You have a meeting at 10:30 AM.', '', '', 0);
 99 |           notifier.show('Well Done!', 'You just submit your resume successfuly.', '', '', 0);
100 |           notifier.show('Warning!' , 'The data presented here can be change.', '', '', 0);
101 |           notifier.show('Sorry!', 'Could not complete your transaction.', '', '', 0);
102 |         
103 |       
104 | 105 |

Notifications With Icons

106 | 107 |
108 | 109 | 110 | 111 | 112 | 113 |
114 | 115 |
116 |         
117 |           notifier.show('Default!' , 'I am a default notification.', '', 'img/clock-48.png', 0);
118 |           notifier.show('Reminder!', 'You have a meeting at 10:30 AM.', '', 'img/survey-48.png', 0);
119 |           notifier.show('Well Done!', 'You just submit your resume successfuly.', '', 'img/ok-48.png', 0);
120 |           notifier.show('Warning!' , 'The data presented here can be change.', '', 'img/medium_priority-48.png', 0);
121 |           notifier.show('Sorry!', 'Could not complete your transaction.', '', 'img/high_priority-48.png', 0);
122 |         
123 |       
124 | 125 |

Auto Close Notifications

126 | 127 |
128 | 129 | 130 | 131 | 132 | 133 |
134 | 135 |
136 |         
137 |           notifier.show('Default!' , 'I am a default notification.', '', 'img/clock-48.png', 4000);
138 |           notifier.show('Reminder!', 'You have a meeting at 10:30 AM.', '', 'img/survey-48.png', 4000);
139 |           notifier.show('Well Done!', 'You just submit your resume successfuly.', '', 'img/ok-48.png', 4000);
140 |           notifier.show('Warning!' , 'The data presented here can be change.', '', 'img/medium_priority-48.png', 4000);
141 |           notifier.show('Sorry!', 'Could not complete your transaction.', '', 'img/high_priority-48.png', 4000);
142 |         
143 |       
144 | 145 |

Using the notification.hide() method

146 | 147 |

148 | The method notification.show() always returns the notification's ID that was openned. We can store this ID in a variable 149 | to call the method notification.hide() passing this ID to shut the notification anywhere we want.
150 | See the example: 151 |

152 | 153 |
154 | 155 | 156 |
157 | 158 |
159 |         
160 |           var notificationId;
161 | 
162 |           var showNotification = function () {
163 |             notificationId = notifier.show('Reminder!', 'You have a meeting at 10:30 AM.', '', 'img/survey-48.png', 4000);
164 |           };
165 | 
166 |           var hideNotification = function () {
167 |             notifier.hide(notificationId);
168 |           };
169 | 
170 |           document.querySelector('#btn-nt-show').addEventListener('click', showNotification);
171 |           document.querySelector('#btn-nt-hide').addEventListener('click', hideNotification);
172 |         
173 |       
174 | 175 |

Methods

176 | 177 |

notifier.show(title, msg, type, icon, timeout);

178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 202 | 203 | 204 | 205 | 209 | 210 | 211 | 212 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 |
ParameterDescription
titleNotification's title.
msgNotification's text.
type 199 | Notification's color.
200 | Possible Values: '', info, success, warning, danger 201 |
icon 206 | Path to the image that will be displayed inside the notification.
207 | For example: 'img/icon.png' 208 |
timeout 213 | Time in miliseconds to close the notification automatically.
214 | Only works if the value passed is greater than zero 215 |
Return: Notification's ID
224 | 225 |

226 | notifier.hide(notificationId);
227 | You can use this method to shut the notification by Javascript 228 |

229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 251 | 252 | 253 |
ParameterDescription
notificationIdNotification's ID
Return: 246 |
    247 |
  • true - If the notification was closed
  • 248 |
  • false - If the notification was not closed
  • 249 |
250 |
254 | 255 |

Supported Browsers

256 | 257 | 284 | 285 |
286 | 287 |
288 | 289 | 309 | 310 | 311 | 312 | 313 | 314 | 315 | -------------------------------------------------------------------------------- /demo/docs/pt_br/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | Notifier 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 |
42 | 43 |

Notifier

44 |

Lindas notificações, com CSS e Javascript puro!

45 | 46 |

47 | Trabalhando em um projeto e precisando de uma solução para notificações? Boa notícia \o/
48 | O notifier pode te ajudar com essa tarefa! Basta importar para o seu projeto e começar a usar! 49 |

50 | 51 | 59 | 60 |
61 | 62 |
63 | 64 |
65 | 66 |
67 | 68 | 72 |
73 | 74 |

Como Usar?

75 |

Muito Simples!

76 |
    77 |
  1. Baixe o projeto.
  2. 78 |
  3. Exporte os arquivos.
  4. 79 |
  5. Copie os arquivos "notifier.css" e "notifier.js" para dentro do seu projeto.
  6. 80 |
  7. Importe o CSS no <header>
  8. 81 |
  9. Importe o JS antes do fechamento do <body>
  10. 82 |
  11. Agora é só ser feliz! ;)
  12. 83 |
84 | 85 |

Notificações Padrão

86 | 87 |
88 | 89 | 90 | 91 | 92 | 93 |
94 | 95 |
 96 |         
 97 |           notifier.show('Default!' , 'Sou uma notificação Default.', '', '', 0);
 98 |           notifier.show('Lembrete!', 'Você tem uma reunião agendada às 10:30h.', '', '', 0);
 99 |           notifier.show('Parabéns!', 'Você acabou de cadastrar seu currículo com sucesso.', '', '', 0);
100 |           notifier.show('Atenção!' , 'Os dados apresentados nessa tela podem sofrer alterações.', '', '', 0);
101 |           notifier.show('Desculpe!', 'Ocorreu um erro! Não foi possível salvar o registro.', '', '', 0);
102 |         
103 |       
104 | 105 |

Notificações com Ícones

106 | 107 |
108 | 109 | 110 | 111 | 112 | 113 |
114 | 115 |
116 |         
117 |           notifier.show('Default!' , 'Sou uma notificação Default.', '', 'img/clock-48.png', 0);
118 |           notifier.show('Lembrete!', 'Você tem uma reunião agendada às 10:30h.', '', 'img/survey-48.png', 0);
119 |           notifier.show('Parabéns!', 'Você acabou de cadastrar seu currículo com sucesso.', '', 'img/ok-48.png', 0);
120 |           notifier.show('Atenção!' , 'Os dados apresentados nessa tela podem sofrer alterações.', '', 'img/medium_priority-48.png', 0);
121 |           notifier.show('Desculpe!', 'Ocorreu um erro! Não foi possível salvar o registro.', '', 'img/high_priority-48.png', 0);
122 |         
123 |       
124 | 125 |

Notificações com Fechamento Automático

126 | 127 |
128 | 129 | 130 | 131 | 132 | 133 |
134 | 135 |
136 |         
137 |           notifier.show('Default!' , 'Sou uma notificação Default.', '', 'img/clock-48.png', 4000);
138 |           notifier.show('Lembrete!', 'Você tem uma reunião agendada às 10:30h.', '', 'img/survey-48.png', 4000);
139 |           notifier.show('Parabéns!', 'Você acabou de cadastrar seu currículo com sucesso.', '', 'img/ok-48.png', 4000);
140 |           notifier.show('Atenção!' , 'Os dados apresentados nessa tela podem sofrer alterações.', '', 'img/medium_priority-48.png', 4000);
141 |           notifier.show('Desculpe!', 'Ocorreu um erro! Não foi possível salvar o registro.', '', 'img/high_priority-48.png', 4000);
142 |         
143 |       
144 | 145 |

Usando o método hide()

146 | 147 |

148 | O método notification.show(); sempre retorna o ID da notificação que foi aberta. Nós podemos armazenar esse ID em uma variável 149 | para chamar o método notification.hide() passando esse ID para fecharmos a notificação de qualquer lugar que desejarmos.
150 | Veja o exemplo: 151 |

152 | 153 |
154 | 155 | 156 |
157 | 158 |
159 |         
160 |           var notificationId;
161 | 
162 |           var showNotification = function () {
163 |             notificationId = notifier.show('Lembrete!', 'Você tem uma reunião agendada às 10:30h.', '', 'img/survey-48.png', 4000);
164 |           };
165 | 
166 |           var hideNotification = function () {
167 |             notifier.hide(notificationId);
168 |           };
169 | 
170 |           document.querySelector('#btn-nt-show').addEventListener('click', showNotification);
171 |           document.querySelector('#btn-nt-hide').addEventListener('click', hideNotification);
172 |         
173 |       
174 | 175 |

Métodos

176 | 177 |

notifier.show(title, msg, type, icon, timeout);

178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 202 | 203 | 204 | 205 | 209 | 210 | 211 | 212 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 |
ParâmetroDescrição
titleTítulo da notifiação.
msgMensagem da notificação.
type 199 | Cor da notifiação.
200 | Valores aceitos: '', info, success, warning, danger 201 |
icon 206 | Caminho para uma imagem que será exibida dentro da notificação.
207 | Por Exemplo: 'img/icon.png' 208 |
timeout 213 | Tempo em milisegundos para o fechamento automático da notificação.
214 | Só funciona se o valor passado for maior do que zero 215 |
Retorno: Id da notificação.
224 | 225 |

226 | notifier.hide(notificationId);
227 | Você pode usar esse método para fechar a notificação via Javascript 228 |

229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 251 | 252 | 253 |
ParâmetroDescrição
notificationIdId da notificação
Retorno: 246 |
    247 |
  • true - Se a notificação foi fechada
  • 248 |
  • false - Se a notificação não foi fechada
  • 249 |
250 |
254 | 255 |

Browsers Suportados

256 | 257 | 284 | 285 |
286 | 287 |
288 | 289 | 309 | 310 | 311 | 312 | 313 | 314 | 315 | -------------------------------------------------------------------------------- /demo/css/font-awesome.min.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome 4.4.0 by @davegandy - http://fontawesome.io - @fontawesome 3 | * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) 4 | */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.4.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.4.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.4.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.4.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.4.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.4.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=1);-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2);-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=3);-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1);-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{filter:progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1);-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"} 5 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | abbrev@1: 6 | version "1.1.1" 7 | resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" 8 | 9 | align-text@^0.1.1, align-text@^0.1.3: 10 | version "0.1.4" 11 | resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" 12 | dependencies: 13 | kind-of "^3.0.2" 14 | longest "^1.0.1" 15 | repeat-string "^1.5.2" 16 | 17 | amdefine@>=0.0.4: 18 | version "1.0.1" 19 | resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" 20 | 21 | ansi-regex@^2.0.0: 22 | version "2.1.1" 23 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" 24 | 25 | ansi-styles@^2.2.1: 26 | version "2.2.1" 27 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" 28 | 29 | argparse@^1.0.2: 30 | version "1.0.10" 31 | resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" 32 | dependencies: 33 | sprintf-js "~1.0.2" 34 | 35 | array-find-index@^1.0.1: 36 | version "1.0.2" 37 | resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" 38 | 39 | async@~0.2.6: 40 | version "0.2.10" 41 | resolved "https://registry.yarnpkg.com/async/-/async-0.2.10.tgz#b6bbe0b0674b9d719708ca38de8c237cb526c3d1" 42 | 43 | async@~1.5.2: 44 | version "1.5.2" 45 | resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" 46 | 47 | balanced-match@^1.0.0: 48 | version "1.0.0" 49 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" 50 | 51 | brace-expansion@^1.0.0, brace-expansion@^1.1.7: 52 | version "1.1.11" 53 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" 54 | dependencies: 55 | balanced-match "^1.0.0" 56 | concat-map "0.0.1" 57 | 58 | browserify-zlib@^0.1.4: 59 | version "0.1.4" 60 | resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.1.4.tgz#bb35f8a519f600e0fa6b8485241c979d0141fb2d" 61 | dependencies: 62 | pako "~0.2.0" 63 | 64 | buffer-from@^1.0.0: 65 | version "1.0.0" 66 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.0.0.tgz#4cb8832d23612589b0406e9e2956c17f06fdf531" 67 | 68 | builtin-modules@^1.0.0: 69 | version "1.1.1" 70 | resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" 71 | 72 | camelcase-keys@^2.0.0: 73 | version "2.1.0" 74 | resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" 75 | dependencies: 76 | camelcase "^2.0.0" 77 | map-obj "^1.0.0" 78 | 79 | camelcase@^1.0.2: 80 | version "1.2.1" 81 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" 82 | 83 | camelcase@^2.0.0: 84 | version "2.1.1" 85 | resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" 86 | 87 | center-align@^0.1.1: 88 | version "0.1.3" 89 | resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" 90 | dependencies: 91 | align-text "^0.1.3" 92 | lazy-cache "^1.0.3" 93 | 94 | chalk@^1.0.0, chalk@^1.1.1, chalk@~1.1.1: 95 | version "1.1.3" 96 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" 97 | dependencies: 98 | ansi-styles "^2.2.1" 99 | escape-string-regexp "^1.0.2" 100 | has-ansi "^2.0.0" 101 | strip-ansi "^3.0.0" 102 | supports-color "^2.0.0" 103 | 104 | clean-css@~3.4.2: 105 | version "3.4.28" 106 | resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-3.4.28.tgz#bf1945e82fc808f55695e6ddeaec01400efd03ff" 107 | dependencies: 108 | commander "2.8.x" 109 | source-map "0.4.x" 110 | 111 | cli@0.6.x: 112 | version "0.6.6" 113 | resolved "https://registry.yarnpkg.com/cli/-/cli-0.6.6.tgz#02ad44a380abf27adac5e6f0cdd7b043d74c53e3" 114 | dependencies: 115 | exit "0.1.2" 116 | glob "~ 3.2.1" 117 | 118 | cliui@^2.1.0: 119 | version "2.1.0" 120 | resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" 121 | dependencies: 122 | center-align "^0.1.1" 123 | right-align "^0.1.1" 124 | wordwrap "0.0.2" 125 | 126 | coffeescript@~1.10.0: 127 | version "1.10.0" 128 | resolved "https://registry.yarnpkg.com/coffeescript/-/coffeescript-1.10.0.tgz#e7aa8301917ef621b35d8a39f348dcdd1db7e33e" 129 | 130 | colors@~1.1.2: 131 | version "1.1.2" 132 | resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" 133 | 134 | commander@2.8.x: 135 | version "2.8.1" 136 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.8.1.tgz#06be367febfda0c330aa1e2a072d3dc9762425d4" 137 | dependencies: 138 | graceful-readlink ">= 1.0.0" 139 | 140 | concat-map@0.0.1: 141 | version "0.0.1" 142 | resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" 143 | 144 | concat-stream@^1.4.1: 145 | version "1.6.2" 146 | resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" 147 | dependencies: 148 | buffer-from "^1.0.0" 149 | inherits "^2.0.3" 150 | readable-stream "^2.2.2" 151 | typedarray "^0.0.6" 152 | 153 | console-browserify@1.1.x: 154 | version "1.1.0" 155 | resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" 156 | dependencies: 157 | date-now "^0.1.4" 158 | 159 | core-util-is@~1.0.0: 160 | version "1.0.2" 161 | resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" 162 | 163 | currently-unhandled@^0.4.1: 164 | version "0.4.1" 165 | resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" 166 | dependencies: 167 | array-find-index "^1.0.1" 168 | 169 | date-now@^0.1.4: 170 | version "0.1.4" 171 | resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" 172 | 173 | dateformat@~1.0.12: 174 | version "1.0.12" 175 | resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-1.0.12.tgz#9f124b67594c937ff706932e4a642cca8dbbfee9" 176 | dependencies: 177 | get-stdin "^4.0.1" 178 | meow "^3.3.0" 179 | 180 | decamelize@^1.0.0, decamelize@^1.1.2: 181 | version "1.2.0" 182 | resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" 183 | 184 | dom-serializer@0: 185 | version "0.1.0" 186 | resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82" 187 | dependencies: 188 | domelementtype "~1.1.1" 189 | entities "~1.1.1" 190 | 191 | domelementtype@1: 192 | version "1.3.0" 193 | resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.0.tgz#b17aed82e8ab59e52dd9c19b1756e0fc187204c2" 194 | 195 | domelementtype@~1.1.1: 196 | version "1.1.3" 197 | resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.1.3.tgz#bd28773e2642881aec51544924299c5cd822185b" 198 | 199 | domhandler@2.3: 200 | version "2.3.0" 201 | resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.3.0.tgz#2de59a0822d5027fabff6f032c2b25a2a8abe738" 202 | dependencies: 203 | domelementtype "1" 204 | 205 | domutils@1.5: 206 | version "1.5.1" 207 | resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" 208 | dependencies: 209 | dom-serializer "0" 210 | domelementtype "1" 211 | 212 | duplexer@^0.1.1: 213 | version "0.1.1" 214 | resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" 215 | 216 | entities@1.0: 217 | version "1.0.0" 218 | resolved "https://registry.yarnpkg.com/entities/-/entities-1.0.0.tgz#b2987aa3821347fcde642b24fdfc9e4fb712bf26" 219 | 220 | entities@~1.1.1: 221 | version "1.1.1" 222 | resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" 223 | 224 | error-ex@^1.2.0: 225 | version "1.3.1" 226 | resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc" 227 | dependencies: 228 | is-arrayish "^0.2.1" 229 | 230 | escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: 231 | version "1.0.5" 232 | resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" 233 | 234 | esprima@^2.6.0: 235 | version "2.7.3" 236 | resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" 237 | 238 | eventemitter2@~0.4.13: 239 | version "0.4.14" 240 | resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-0.4.14.tgz#8f61b75cde012b2e9eb284d4545583b5643b61ab" 241 | 242 | exit@0.1.2, exit@0.1.x, exit@~0.1.1: 243 | version "0.1.2" 244 | resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" 245 | 246 | figures@^1.0.1: 247 | version "1.7.0" 248 | resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" 249 | dependencies: 250 | escape-string-regexp "^1.0.5" 251 | object-assign "^4.1.0" 252 | 253 | file-sync-cmp@^0.1.0: 254 | version "0.1.1" 255 | resolved "https://registry.yarnpkg.com/file-sync-cmp/-/file-sync-cmp-0.1.1.tgz#a5e7a8ffbfa493b43b923bbd4ca89a53b63b612b" 256 | 257 | find-up@^1.0.0: 258 | version "1.1.2" 259 | resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" 260 | dependencies: 261 | path-exists "^2.0.0" 262 | pinkie-promise "^2.0.0" 263 | 264 | findup-sync@~0.3.0: 265 | version "0.3.0" 266 | resolved "https://registry.yarnpkg.com/findup-sync/-/findup-sync-0.3.0.tgz#37930aa5d816b777c03445e1966cc6790a4c0b16" 267 | dependencies: 268 | glob "~5.0.0" 269 | 270 | fs.realpath@^1.0.0: 271 | version "1.0.0" 272 | resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" 273 | 274 | get-stdin@^4.0.1: 275 | version "4.0.1" 276 | resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" 277 | 278 | getobject@~0.1.0: 279 | version "0.1.0" 280 | resolved "https://registry.yarnpkg.com/getobject/-/getobject-0.1.0.tgz#047a449789fa160d018f5486ed91320b6ec7885c" 281 | 282 | "glob@~ 3.2.1": 283 | version "3.2.11" 284 | resolved "https://registry.yarnpkg.com/glob/-/glob-3.2.11.tgz#4a973f635b9190f715d10987d5c00fd2815ebe3d" 285 | dependencies: 286 | inherits "2" 287 | minimatch "0.3" 288 | 289 | glob@~5.0.0: 290 | version "5.0.15" 291 | resolved "https://registry.yarnpkg.com/glob/-/glob-5.0.15.tgz#1bc936b9e02f4a603fcc222ecf7633d30b8b93b1" 292 | dependencies: 293 | inflight "^1.0.4" 294 | inherits "2" 295 | minimatch "2 || 3" 296 | once "^1.3.0" 297 | path-is-absolute "^1.0.0" 298 | 299 | glob@~7.0.0: 300 | version "7.0.6" 301 | resolved "https://registry.yarnpkg.com/glob/-/glob-7.0.6.tgz#211bafaf49e525b8cd93260d14ab136152b3f57a" 302 | dependencies: 303 | fs.realpath "^1.0.0" 304 | inflight "^1.0.4" 305 | inherits "2" 306 | minimatch "^3.0.2" 307 | once "^1.3.0" 308 | path-is-absolute "^1.0.0" 309 | 310 | graceful-fs@^4.1.2: 311 | version "4.1.11" 312 | resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" 313 | 314 | "graceful-readlink@>= 1.0.0": 315 | version "1.0.1" 316 | resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" 317 | 318 | grunt-cli@~1.2.0: 319 | version "1.2.0" 320 | resolved "https://registry.yarnpkg.com/grunt-cli/-/grunt-cli-1.2.0.tgz#562b119ebb069ddb464ace2845501be97b35b6a8" 321 | dependencies: 322 | findup-sync "~0.3.0" 323 | grunt-known-options "~1.1.0" 324 | nopt "~3.0.6" 325 | resolve "~1.1.0" 326 | 327 | grunt-contrib-copy@^0.8.2: 328 | version "0.8.2" 329 | resolved "https://registry.yarnpkg.com/grunt-contrib-copy/-/grunt-contrib-copy-0.8.2.tgz#df31c90ffcc409bc9fafe44ec0dd1e4259916fea" 330 | dependencies: 331 | chalk "^1.1.1" 332 | file-sync-cmp "^0.1.0" 333 | 334 | grunt-contrib-cssmin@^0.14.0: 335 | version "0.14.0" 336 | resolved "https://registry.yarnpkg.com/grunt-contrib-cssmin/-/grunt-contrib-cssmin-0.14.0.tgz#88b0a92536969bb566281c5c61ec5062d833f3b7" 337 | dependencies: 338 | chalk "^1.0.0" 339 | clean-css "~3.4.2" 340 | maxmin "^1.1.0" 341 | 342 | grunt-contrib-jshint@^0.11.3: 343 | version "0.11.3" 344 | resolved "https://registry.yarnpkg.com/grunt-contrib-jshint/-/grunt-contrib-jshint-0.11.3.tgz#80368181dccd551186e5b8385c011cee24d640a0" 345 | dependencies: 346 | hooker "^0.2.3" 347 | jshint "~2.8.0" 348 | 349 | grunt-contrib-uglify@^0.11.0: 350 | version "0.11.1" 351 | resolved "https://registry.yarnpkg.com/grunt-contrib-uglify/-/grunt-contrib-uglify-0.11.1.tgz#5e22a2f676cd11d871fc2a0f08aa9b2973045325" 352 | dependencies: 353 | chalk "^1.0.0" 354 | lodash "^4.0.1" 355 | maxmin "^2.0.0" 356 | uglify-js "~2.6.0" 357 | uri-path "^1.0.0" 358 | 359 | grunt-known-options@~1.1.0: 360 | version "1.1.0" 361 | resolved "https://registry.yarnpkg.com/grunt-known-options/-/grunt-known-options-1.1.0.tgz#a4274eeb32fa765da5a7a3b1712617ce3b144149" 362 | 363 | grunt-legacy-log-utils@~1.0.0: 364 | version "1.0.0" 365 | resolved "https://registry.yarnpkg.com/grunt-legacy-log-utils/-/grunt-legacy-log-utils-1.0.0.tgz#a7b8e2d0fb35b5a50f4af986fc112749ebc96f3d" 366 | dependencies: 367 | chalk "~1.1.1" 368 | lodash "~4.3.0" 369 | 370 | grunt-legacy-log@~1.0.0: 371 | version "1.0.1" 372 | resolved "https://registry.yarnpkg.com/grunt-legacy-log/-/grunt-legacy-log-1.0.1.tgz#c7731b2745f4732aa9950ee4d7ae63c553f68469" 373 | dependencies: 374 | colors "~1.1.2" 375 | grunt-legacy-log-utils "~1.0.0" 376 | hooker "~0.2.3" 377 | lodash "~4.17.5" 378 | underscore.string "~3.3.4" 379 | 380 | grunt-legacy-util@~1.0.0: 381 | version "1.0.0" 382 | resolved "https://registry.yarnpkg.com/grunt-legacy-util/-/grunt-legacy-util-1.0.0.tgz#386aa78dc6ed50986c2b18957265b1b48abb9b86" 383 | dependencies: 384 | async "~1.5.2" 385 | exit "~0.1.1" 386 | getobject "~0.1.0" 387 | hooker "~0.2.3" 388 | lodash "~4.3.0" 389 | underscore.string "~3.2.3" 390 | which "~1.2.1" 391 | 392 | grunt@^1.0.1: 393 | version "1.0.2" 394 | resolved "https://registry.yarnpkg.com/grunt/-/grunt-1.0.2.tgz#4e6a5e695b70472fd5304f5fa9e34236836a73bc" 395 | dependencies: 396 | coffeescript "~1.10.0" 397 | dateformat "~1.0.12" 398 | eventemitter2 "~0.4.13" 399 | exit "~0.1.1" 400 | findup-sync "~0.3.0" 401 | glob "~7.0.0" 402 | grunt-cli "~1.2.0" 403 | grunt-known-options "~1.1.0" 404 | grunt-legacy-log "~1.0.0" 405 | grunt-legacy-util "~1.0.0" 406 | iconv-lite "~0.4.13" 407 | js-yaml "~3.5.2" 408 | minimatch "~3.0.2" 409 | nopt "~3.0.6" 410 | path-is-absolute "~1.0.0" 411 | rimraf "~2.2.8" 412 | 413 | gzip-size@^1.0.0: 414 | version "1.0.0" 415 | resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-1.0.0.tgz#66cf8b101047227b95bace6ea1da0c177ed5c22f" 416 | dependencies: 417 | browserify-zlib "^0.1.4" 418 | concat-stream "^1.4.1" 419 | 420 | gzip-size@^3.0.0: 421 | version "3.0.0" 422 | resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-3.0.0.tgz#546188e9bdc337f673772f81660464b389dce520" 423 | dependencies: 424 | duplexer "^0.1.1" 425 | 426 | has-ansi@^2.0.0: 427 | version "2.0.0" 428 | resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" 429 | dependencies: 430 | ansi-regex "^2.0.0" 431 | 432 | hooker@^0.2.3, hooker@~0.2.3: 433 | version "0.2.3" 434 | resolved "https://registry.yarnpkg.com/hooker/-/hooker-0.2.3.tgz#b834f723cc4a242aa65963459df6d984c5d3d959" 435 | 436 | hosted-git-info@^2.1.4: 437 | version "2.6.0" 438 | resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.6.0.tgz#23235b29ab230c576aab0d4f13fc046b0b038222" 439 | 440 | htmlparser2@3.8.x: 441 | version "3.8.3" 442 | resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.8.3.tgz#996c28b191516a8be86501a7d79757e5c70c1068" 443 | dependencies: 444 | domelementtype "1" 445 | domhandler "2.3" 446 | domutils "1.5" 447 | entities "1.0" 448 | readable-stream "1.1" 449 | 450 | iconv-lite@~0.4.13: 451 | version "0.4.21" 452 | resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.21.tgz#c47f8733d02171189ebc4a400f3218d348094798" 453 | dependencies: 454 | safer-buffer "^2.1.0" 455 | 456 | indent-string@^2.1.0: 457 | version "2.1.0" 458 | resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" 459 | dependencies: 460 | repeating "^2.0.0" 461 | 462 | inflight@^1.0.4: 463 | version "1.0.6" 464 | resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" 465 | dependencies: 466 | once "^1.3.0" 467 | wrappy "1" 468 | 469 | inherits@2, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: 470 | version "2.0.3" 471 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" 472 | 473 | is-arrayish@^0.2.1: 474 | version "0.2.1" 475 | resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" 476 | 477 | is-buffer@^1.1.5: 478 | version "1.1.6" 479 | resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" 480 | 481 | is-builtin-module@^1.0.0: 482 | version "1.0.0" 483 | resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" 484 | dependencies: 485 | builtin-modules "^1.0.0" 486 | 487 | is-finite@^1.0.0: 488 | version "1.0.2" 489 | resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" 490 | dependencies: 491 | number-is-nan "^1.0.0" 492 | 493 | is-utf8@^0.2.0: 494 | version "0.2.1" 495 | resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" 496 | 497 | isarray@0.0.1: 498 | version "0.0.1" 499 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" 500 | 501 | isarray@~1.0.0: 502 | version "1.0.0" 503 | resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" 504 | 505 | isexe@^2.0.0: 506 | version "2.0.0" 507 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 508 | 509 | js-yaml@~3.5.2: 510 | version "3.5.5" 511 | resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.5.5.tgz#0377c38017cabc7322b0d1fbcd25a491641f2fbe" 512 | dependencies: 513 | argparse "^1.0.2" 514 | esprima "^2.6.0" 515 | 516 | jshint@~2.8.0: 517 | version "2.8.0" 518 | resolved "https://registry.yarnpkg.com/jshint/-/jshint-2.8.0.tgz#1d09a3bd913c4cadfa81bf18d582bd85bffe0d44" 519 | dependencies: 520 | cli "0.6.x" 521 | console-browserify "1.1.x" 522 | exit "0.1.x" 523 | htmlparser2 "3.8.x" 524 | lodash "3.7.x" 525 | minimatch "2.0.x" 526 | shelljs "0.3.x" 527 | strip-json-comments "1.0.x" 528 | 529 | kind-of@^3.0.2: 530 | version "3.2.2" 531 | resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" 532 | dependencies: 533 | is-buffer "^1.1.5" 534 | 535 | lazy-cache@^1.0.3: 536 | version "1.0.4" 537 | resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" 538 | 539 | load-json-file@^1.0.0: 540 | version "1.1.0" 541 | resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" 542 | dependencies: 543 | graceful-fs "^4.1.2" 544 | parse-json "^2.2.0" 545 | pify "^2.0.0" 546 | pinkie-promise "^2.0.0" 547 | strip-bom "^2.0.0" 548 | 549 | lodash@3.7.x: 550 | version "3.7.0" 551 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.7.0.tgz#3678bd8ab995057c07ade836ed2ef087da811d45" 552 | 553 | lodash@^4.0.1, lodash@~4.17.5: 554 | version "4.17.5" 555 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.5.tgz#99a92d65c0272debe8c96b6057bc8fbfa3bed511" 556 | 557 | lodash@~4.3.0: 558 | version "4.3.0" 559 | resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.3.0.tgz#efd9c4a6ec53f3b05412429915c3e4824e4d25a4" 560 | 561 | longest@^1.0.1: 562 | version "1.0.1" 563 | resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" 564 | 565 | loud-rejection@^1.0.0: 566 | version "1.6.0" 567 | resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" 568 | dependencies: 569 | currently-unhandled "^0.4.1" 570 | signal-exit "^3.0.0" 571 | 572 | lru-cache@2: 573 | version "2.7.3" 574 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.7.3.tgz#6d4524e8b955f95d4f5b58851ce21dd72fb4e952" 575 | 576 | map-obj@^1.0.0, map-obj@^1.0.1: 577 | version "1.0.1" 578 | resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" 579 | 580 | maxmin@^1.1.0: 581 | version "1.1.0" 582 | resolved "https://registry.yarnpkg.com/maxmin/-/maxmin-1.1.0.tgz#71365e84a99dd8f8b3f7d5fde2f00d1e7f73be61" 583 | dependencies: 584 | chalk "^1.0.0" 585 | figures "^1.0.1" 586 | gzip-size "^1.0.0" 587 | pretty-bytes "^1.0.0" 588 | 589 | maxmin@^2.0.0: 590 | version "2.1.0" 591 | resolved "https://registry.yarnpkg.com/maxmin/-/maxmin-2.1.0.tgz#4d3b220903d95eee7eb7ac7fa864e72dc09a3166" 592 | dependencies: 593 | chalk "^1.0.0" 594 | figures "^1.0.1" 595 | gzip-size "^3.0.0" 596 | pretty-bytes "^3.0.0" 597 | 598 | meow@^3.1.0, meow@^3.3.0: 599 | version "3.7.0" 600 | resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" 601 | dependencies: 602 | camelcase-keys "^2.0.0" 603 | decamelize "^1.1.2" 604 | loud-rejection "^1.0.0" 605 | map-obj "^1.0.1" 606 | minimist "^1.1.3" 607 | normalize-package-data "^2.3.4" 608 | object-assign "^4.0.1" 609 | read-pkg-up "^1.0.1" 610 | redent "^1.0.0" 611 | trim-newlines "^1.0.0" 612 | 613 | minimatch@0.3: 614 | version "0.3.0" 615 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-0.3.0.tgz#275d8edaac4f1bb3326472089e7949c8394699dd" 616 | dependencies: 617 | lru-cache "2" 618 | sigmund "~1.0.0" 619 | 620 | "minimatch@2 || 3", minimatch@^3.0.2, minimatch@~3.0.2: 621 | version "3.0.4" 622 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" 623 | dependencies: 624 | brace-expansion "^1.1.7" 625 | 626 | minimatch@2.0.x: 627 | version "2.0.10" 628 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-2.0.10.tgz#8d087c39c6b38c001b97fca7ce6d0e1e80afbac7" 629 | dependencies: 630 | brace-expansion "^1.0.0" 631 | 632 | minimist@^1.1.3: 633 | version "1.2.0" 634 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" 635 | 636 | nopt@~3.0.6: 637 | version "3.0.6" 638 | resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" 639 | dependencies: 640 | abbrev "1" 641 | 642 | normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: 643 | version "2.4.0" 644 | resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f" 645 | dependencies: 646 | hosted-git-info "^2.1.4" 647 | is-builtin-module "^1.0.0" 648 | semver "2 || 3 || 4 || 5" 649 | validate-npm-package-license "^3.0.1" 650 | 651 | number-is-nan@^1.0.0: 652 | version "1.0.1" 653 | resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" 654 | 655 | object-assign@^4.0.1, object-assign@^4.1.0: 656 | version "4.1.1" 657 | resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" 658 | 659 | once@^1.3.0: 660 | version "1.4.0" 661 | resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" 662 | dependencies: 663 | wrappy "1" 664 | 665 | pako@~0.2.0: 666 | version "0.2.9" 667 | resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" 668 | 669 | parse-json@^2.2.0: 670 | version "2.2.0" 671 | resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" 672 | dependencies: 673 | error-ex "^1.2.0" 674 | 675 | path-exists@^2.0.0: 676 | version "2.1.0" 677 | resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" 678 | dependencies: 679 | pinkie-promise "^2.0.0" 680 | 681 | path-is-absolute@^1.0.0, path-is-absolute@~1.0.0: 682 | version "1.0.1" 683 | resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" 684 | 685 | path-type@^1.0.0: 686 | version "1.1.0" 687 | resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" 688 | dependencies: 689 | graceful-fs "^4.1.2" 690 | pify "^2.0.0" 691 | pinkie-promise "^2.0.0" 692 | 693 | pify@^2.0.0: 694 | version "2.3.0" 695 | resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" 696 | 697 | pinkie-promise@^2.0.0: 698 | version "2.0.1" 699 | resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" 700 | dependencies: 701 | pinkie "^2.0.0" 702 | 703 | pinkie@^2.0.0: 704 | version "2.0.4" 705 | resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" 706 | 707 | pretty-bytes@^1.0.0: 708 | version "1.0.4" 709 | resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-1.0.4.tgz#0a22e8210609ad35542f8c8d5d2159aff0751c84" 710 | dependencies: 711 | get-stdin "^4.0.1" 712 | meow "^3.1.0" 713 | 714 | pretty-bytes@^3.0.0: 715 | version "3.0.1" 716 | resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-3.0.1.tgz#27d0008d778063a0b4811bb35c79f1bd5d5fbccf" 717 | dependencies: 718 | number-is-nan "^1.0.0" 719 | 720 | process-nextick-args@~2.0.0: 721 | version "2.0.0" 722 | resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" 723 | 724 | read-pkg-up@^1.0.1: 725 | version "1.0.1" 726 | resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" 727 | dependencies: 728 | find-up "^1.0.0" 729 | read-pkg "^1.0.0" 730 | 731 | read-pkg@^1.0.0: 732 | version "1.1.0" 733 | resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" 734 | dependencies: 735 | load-json-file "^1.0.0" 736 | normalize-package-data "^2.3.2" 737 | path-type "^1.0.0" 738 | 739 | readable-stream@1.1: 740 | version "1.1.13" 741 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.13.tgz#f6eef764f514c89e2b9e23146a75ba106756d23e" 742 | dependencies: 743 | core-util-is "~1.0.0" 744 | inherits "~2.0.1" 745 | isarray "0.0.1" 746 | string_decoder "~0.10.x" 747 | 748 | readable-stream@^2.2.2: 749 | version "2.3.6" 750 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" 751 | dependencies: 752 | core-util-is "~1.0.0" 753 | inherits "~2.0.3" 754 | isarray "~1.0.0" 755 | process-nextick-args "~2.0.0" 756 | safe-buffer "~5.1.1" 757 | string_decoder "~1.1.1" 758 | util-deprecate "~1.0.1" 759 | 760 | redent@^1.0.0: 761 | version "1.0.0" 762 | resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" 763 | dependencies: 764 | indent-string "^2.1.0" 765 | strip-indent "^1.0.1" 766 | 767 | repeat-string@^1.5.2: 768 | version "1.6.1" 769 | resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" 770 | 771 | repeating@^2.0.0: 772 | version "2.0.1" 773 | resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" 774 | dependencies: 775 | is-finite "^1.0.0" 776 | 777 | resolve@~1.1.0: 778 | version "1.1.7" 779 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" 780 | 781 | right-align@^0.1.1: 782 | version "0.1.3" 783 | resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" 784 | dependencies: 785 | align-text "^0.1.1" 786 | 787 | rimraf@~2.2.8: 788 | version "2.2.8" 789 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.2.8.tgz#e439be2aaee327321952730f99a8929e4fc50582" 790 | 791 | safe-buffer@~5.1.0, safe-buffer@~5.1.1: 792 | version "5.1.1" 793 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" 794 | 795 | safer-buffer@^2.1.0: 796 | version "2.1.2" 797 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 798 | 799 | "semver@2 || 3 || 4 || 5": 800 | version "5.5.0" 801 | resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" 802 | 803 | shelljs@0.3.x: 804 | version "0.3.0" 805 | resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.3.0.tgz#3596e6307a781544f591f37da618360f31db57b1" 806 | 807 | sigmund@~1.0.0: 808 | version "1.0.1" 809 | resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" 810 | 811 | signal-exit@^3.0.0: 812 | version "3.0.2" 813 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" 814 | 815 | source-map@0.4.x: 816 | version "0.4.4" 817 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" 818 | dependencies: 819 | amdefine ">=0.0.4" 820 | 821 | source-map@~0.5.1: 822 | version "0.5.7" 823 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" 824 | 825 | spdx-correct@^3.0.0: 826 | version "3.0.0" 827 | resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.0.0.tgz#05a5b4d7153a195bc92c3c425b69f3b2a9524c82" 828 | dependencies: 829 | spdx-expression-parse "^3.0.0" 830 | spdx-license-ids "^3.0.0" 831 | 832 | spdx-exceptions@^2.1.0: 833 | version "2.1.0" 834 | resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz#2c7ae61056c714a5b9b9b2b2af7d311ef5c78fe9" 835 | 836 | spdx-expression-parse@^3.0.0: 837 | version "3.0.0" 838 | resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" 839 | dependencies: 840 | spdx-exceptions "^2.1.0" 841 | spdx-license-ids "^3.0.0" 842 | 843 | spdx-license-ids@^3.0.0: 844 | version "3.0.0" 845 | resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz#7a7cd28470cc6d3a1cfe6d66886f6bc430d3ac87" 846 | 847 | sprintf-js@^1.0.3: 848 | version "1.1.1" 849 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.1.tgz#36be78320afe5801f6cea3ee78b6e5aab940ea0c" 850 | 851 | sprintf-js@~1.0.2: 852 | version "1.0.3" 853 | resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" 854 | 855 | string_decoder@~0.10.x: 856 | version "0.10.31" 857 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" 858 | 859 | string_decoder@~1.1.1: 860 | version "1.1.1" 861 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" 862 | dependencies: 863 | safe-buffer "~5.1.0" 864 | 865 | strip-ansi@^3.0.0: 866 | version "3.0.1" 867 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" 868 | dependencies: 869 | ansi-regex "^2.0.0" 870 | 871 | strip-bom@^2.0.0: 872 | version "2.0.0" 873 | resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" 874 | dependencies: 875 | is-utf8 "^0.2.0" 876 | 877 | strip-indent@^1.0.1: 878 | version "1.0.1" 879 | resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" 880 | dependencies: 881 | get-stdin "^4.0.1" 882 | 883 | strip-json-comments@1.0.x: 884 | version "1.0.4" 885 | resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-1.0.4.tgz#1e15fbcac97d3ee99bf2d73b4c656b082bbafb91" 886 | 887 | supports-color@^2.0.0: 888 | version "2.0.0" 889 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" 890 | 891 | trim-newlines@^1.0.0: 892 | version "1.0.0" 893 | resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" 894 | 895 | typedarray@^0.0.6: 896 | version "0.0.6" 897 | resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" 898 | 899 | uglify-js@~2.6.0: 900 | version "2.6.4" 901 | resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.6.4.tgz#65ea2fb3059c9394692f15fed87c2b36c16b9adf" 902 | dependencies: 903 | async "~0.2.6" 904 | source-map "~0.5.1" 905 | uglify-to-browserify "~1.0.0" 906 | yargs "~3.10.0" 907 | 908 | uglify-to-browserify@~1.0.0: 909 | version "1.0.2" 910 | resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" 911 | 912 | underscore.string@~3.2.3: 913 | version "3.2.3" 914 | resolved "https://registry.yarnpkg.com/underscore.string/-/underscore.string-3.2.3.tgz#806992633665d5e5fcb4db1fb3a862eb68e9e6da" 915 | 916 | underscore.string@~3.3.4: 917 | version "3.3.4" 918 | resolved "https://registry.yarnpkg.com/underscore.string/-/underscore.string-3.3.4.tgz#2c2a3f9f83e64762fdc45e6ceac65142864213db" 919 | dependencies: 920 | sprintf-js "^1.0.3" 921 | util-deprecate "^1.0.2" 922 | 923 | uri-path@^1.0.0: 924 | version "1.0.0" 925 | resolved "https://registry.yarnpkg.com/uri-path/-/uri-path-1.0.0.tgz#9747f018358933c31de0fccfd82d138e67262e32" 926 | 927 | util-deprecate@^1.0.2, util-deprecate@~1.0.1: 928 | version "1.0.2" 929 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 930 | 931 | validate-npm-package-license@^3.0.1: 932 | version "3.0.3" 933 | resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz#81643bcbef1bdfecd4623793dc4648948ba98338" 934 | dependencies: 935 | spdx-correct "^3.0.0" 936 | spdx-expression-parse "^3.0.0" 937 | 938 | which@~1.2.1: 939 | version "1.2.14" 940 | resolved "https://registry.yarnpkg.com/which/-/which-1.2.14.tgz#9a87c4378f03e827cecaf1acdf56c736c01c14e5" 941 | dependencies: 942 | isexe "^2.0.0" 943 | 944 | window-size@0.1.0: 945 | version "0.1.0" 946 | resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" 947 | 948 | wordwrap@0.0.2: 949 | version "0.0.2" 950 | resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" 951 | 952 | wrappy@1: 953 | version "1.0.2" 954 | resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" 955 | 956 | yargs@~3.10.0: 957 | version "3.10.0" 958 | resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" 959 | dependencies: 960 | camelcase "^1.0.2" 961 | cliui "^2.1.0" 962 | decamelize "^1.0.0" 963 | window-size "0.1.0" 964 | --------------------------------------------------------------------------------