1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124 |
- /*
- @package NOTY - Dependency-free notification library
- @version version: 3.2.0-beta
- @contributors https://github.com/needim/noty/graphs/contributors
- @documentation Examples and Documentation - https://ned.im/noty
- @license Licensed under the MIT licenses: http://www.opensource.org/licenses/mit-license.php
- */
- (function webpackUniversalModuleDefinition(root, factory) {
- if(typeof exports === 'object' && typeof module === 'object')
- module.exports = factory();
- else if(typeof define === 'function' && define.amd)
- define("Noty", [], factory);
- else if(typeof exports === 'object')
- exports["Noty"] = factory();
- else
- root["Noty"] = factory();
- })(this, function() {
- return /******/ (function(modules) { // webpackBootstrap
- /******/ // The module cache
- /******/ var installedModules = {};
- /******/
- /******/ // The require function
- /******/ function __webpack_require__(moduleId) {
- /******/
- /******/ // Check if module is in cache
- /******/ if(installedModules[moduleId]) {
- /******/ return installedModules[moduleId].exports;
- /******/ }
- /******/ // Create a new module (and put it into the cache)
- /******/ var module = installedModules[moduleId] = {
- /******/ i: moduleId,
- /******/ l: false,
- /******/ exports: {}
- /******/ };
- /******/
- /******/ // Execute the module function
- /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
- /******/
- /******/ // Flag the module as loaded
- /******/ module.l = true;
- /******/
- /******/ // Return the exports of the module
- /******/ return module.exports;
- /******/ }
- /******/
- /******/
- /******/ // expose the modules object (__webpack_modules__)
- /******/ __webpack_require__.m = modules;
- /******/
- /******/ // expose the module cache
- /******/ __webpack_require__.c = installedModules;
- /******/
- /******/ // identity function for calling harmony imports with the correct context
- /******/ __webpack_require__.i = function(value) { return value; };
- /******/
- /******/ // define getter function for harmony exports
- /******/ __webpack_require__.d = function(exports, name, getter) {
- /******/ if(!__webpack_require__.o(exports, name)) {
- /******/ Object.defineProperty(exports, name, {
- /******/ configurable: false,
- /******/ enumerable: true,
- /******/ get: getter
- /******/ });
- /******/ }
- /******/ };
- /******/
- /******/ // getDefaultExport function for compatibility with non-harmony modules
- /******/ __webpack_require__.n = function(module) {
- /******/ var getter = module && module.__esModule ?
- /******/ function getDefault() { return module['default']; } :
- /******/ function getModuleExports() { return module; };
- /******/ __webpack_require__.d(getter, 'a', getter);
- /******/ return getter;
- /******/ };
- /******/
- /******/ // Object.prototype.hasOwnProperty.call
- /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
- /******/
- /******/ // __webpack_public_path__
- /******/ __webpack_require__.p = "";
- /******/
- /******/ // Load entry module and return exports
- /******/ return __webpack_require__(__webpack_require__.s = 6);
- /******/ })
- /************************************************************************/
- /******/ ([
- /* 0 */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.css = exports.deepExtend = exports.animationEndEvents = undefined;
- var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
- exports.inArray = inArray;
- exports.stopPropagation = stopPropagation;
- exports.generateID = generateID;
- exports.outerHeight = outerHeight;
- exports.addListener = addListener;
- exports.hasClass = hasClass;
- exports.addClass = addClass;
- exports.removeClass = removeClass;
- exports.remove = remove;
- exports.classList = classList;
- exports.visibilityChangeFlow = visibilityChangeFlow;
- exports.createAudioElements = createAudioElements;
- var _api = __webpack_require__(1);
- var API = _interopRequireWildcard(_api);
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
- var animationEndEvents = exports.animationEndEvents = 'webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend';
- function inArray(needle, haystack, argStrict) {
- var key = void 0;
- var strict = !!argStrict;
- if (strict) {
- for (key in haystack) {
- if (haystack.hasOwnProperty(key) && haystack[key] === needle) {
- return true;
- }
- }
- } else {
- for (key in haystack) {
- if (haystack.hasOwnProperty(key) && haystack[key] === needle) {
- return true;
- }
- }
- }
- return false;
- }
- function stopPropagation(evt) {
- evt = evt || window.event;
- if (typeof evt.stopPropagation !== 'undefined') {
- evt.stopPropagation();
- } else {
- evt.cancelBubble = true;
- }
- }
- var deepExtend = exports.deepExtend = function deepExtend(out) {
- out = out || {};
- for (var i = 1; i < arguments.length; i++) {
- var obj = arguments[i];
- if (!obj) continue;
- for (var key in obj) {
- if (obj.hasOwnProperty(key)) {
- if (Array.isArray(obj[key])) {
- out[key] = obj[key];
- } else if (_typeof(obj[key]) === 'object' && obj[key] !== null) {
- out[key] = deepExtend(out[key], obj[key]);
- } else {
- out[key] = obj[key];
- }
- }
- }
- }
- return out;
- };
- function generateID() {
- var prefix = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
- var id = 'noty_' + prefix + '_';
- id += 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
- var r = Math.random() * 16 | 0;
- var v = c === 'x' ? r : r & 0x3 | 0x8;
- return v.toString(16);
- });
- return id;
- }
- function outerHeight(el) {
- var height = el.offsetHeight;
- var style = window.getComputedStyle(el);
- height += parseInt(style.marginTop) + parseInt(style.marginBottom);
- return height;
- }
- var css = exports.css = function () {
- var cssPrefixes = ['Webkit', 'O', 'Moz', 'ms'];
- var cssProps = {};
- function camelCase(string) {
- return string.replace(/^-ms-/, 'ms-').replace(/-([\da-z])/gi, function (match, letter) {
- return letter.toUpperCase();
- });
- }
- function getVendorProp(name) {
- var style = document.body.style;
- if (name in style) return name;
- var i = cssPrefixes.length;
- var capName = name.charAt(0).toUpperCase() + name.slice(1);
- var vendorName = void 0;
- while (i--) {
- vendorName = cssPrefixes[i] + capName;
- if (vendorName in style) return vendorName;
- }
- return name;
- }
- function getStyleProp(name) {
- name = camelCase(name);
- return cssProps[name] || (cssProps[name] = getVendorProp(name));
- }
- function applyCss(element, prop, value) {
- prop = getStyleProp(prop);
- element.style[prop] = value;
- }
- return function (element, properties) {
- var args = arguments;
- var prop = void 0;
- var value = void 0;
- if (args.length === 2) {
- for (prop in properties) {
- if (properties.hasOwnProperty(prop)) {
- value = properties[prop];
- if (value !== undefined && properties.hasOwnProperty(prop)) {
- applyCss(element, prop, value);
- }
- }
- }
- } else {
- applyCss(element, args[1], args[2]);
- }
- };
- }();
- function addListener(el, events, cb) {
- var useCapture = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
- events = events.split(' ');
- for (var i = 0; i < events.length; i++) {
- if (document.addEventListener) {
- el.addEventListener(events[i], cb, useCapture);
- } else if (document.attachEvent) {
- el.attachEvent('on' + events[i], cb);
- }
- }
- }
- function hasClass(element, name) {
- var list = typeof element === 'string' ? element : classList(element);
- return list.indexOf(' ' + name + ' ') >= 0;
- }
- function addClass(element, name) {
- var oldList = classList(element);
- var newList = oldList + name;
- if (hasClass(oldList, name)) return;
- // Trim the opening space.
- element.className = newList.substring(1);
- }
- function removeClass(element, name) {
- var oldList = classList(element);
- var newList = void 0;
- if (!hasClass(element, name)) return;
- // Replace the class name.
- newList = oldList.replace(' ' + name + ' ', ' ');
- // Trim the opening and closing spaces.
- element.className = newList.substring(1, newList.length - 1);
- }
- function remove(element) {
- if (element.parentNode) {
- element.parentNode.removeChild(element);
- }
- }
- function classList(element) {
- return (' ' + (element && element.className || '') + ' ').replace(/\s+/gi, ' ');
- }
- function visibilityChangeFlow() {
- var hidden = void 0;
- var visibilityChange = void 0;
- if (typeof document.hidden !== 'undefined') {
- // Opera 12.10 and Firefox 18 and later support
- hidden = 'hidden';
- visibilityChange = 'visibilitychange';
- } else if (typeof document.msHidden !== 'undefined') {
- hidden = 'msHidden';
- visibilityChange = 'msvisibilitychange';
- } else if (typeof document.webkitHidden !== 'undefined') {
- hidden = 'webkitHidden';
- visibilityChange = 'webkitvisibilitychange';
- }
- function onVisibilityChange() {
- API.PageHidden = document[hidden];
- handleVisibilityChange();
- }
- function onBlur() {
- API.PageHidden = true;
- handleVisibilityChange();
- }
- function onFocus() {
- API.PageHidden = false;
- handleVisibilityChange();
- }
- function handleVisibilityChange() {
- if (API.PageHidden) stopAll();else resumeAll();
- }
- function stopAll() {
- setTimeout(function () {
- Object.keys(API.Store).forEach(function (id) {
- if (API.Store.hasOwnProperty(id)) {
- if (API.Store[id].options.visibilityControl) {
- API.Store[id].stop();
- }
- }
- });
- }, 100);
- }
- function resumeAll() {
- setTimeout(function () {
- Object.keys(API.Store).forEach(function (id) {
- if (API.Store.hasOwnProperty(id)) {
- if (API.Store[id].options.visibilityControl) {
- API.Store[id].resume();
- }
- }
- });
- API.queueRenderAll();
- }, 100);
- }
- if (visibilityChange) {
- addListener(document, visibilityChange, onVisibilityChange);
- }
- addListener(window, 'blur', onBlur);
- addListener(window, 'focus', onFocus);
- }
- function createAudioElements(ref) {
- if (ref.hasSound) {
- var audioElement = document.createElement('audio');
- ref.options.sounds.sources.forEach(function (s) {
- var source = document.createElement('source');
- source.src = s;
- source.type = 'audio/' + getExtension(s);
- audioElement.appendChild(source);
- });
- if (ref.barDom) {
- ref.barDom.appendChild(audioElement);
- } else {
- document.querySelector('body').appendChild(audioElement);
- }
- audioElement.volume = ref.options.sounds.volume;
- if (!ref.soundPlayed) {
- audioElement.play();
- ref.soundPlayed = true;
- }
- audioElement.onended = function () {
- remove(audioElement);
- };
- }
- }
- function getExtension(fileName) {
- return fileName.match(/\.([^.]+)$/)[1];
- }
- /***/ }),
- /* 1 */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.Defaults = exports.Store = exports.Queues = exports.DefaultMaxVisible = exports.docTitle = exports.DocModalCount = exports.PageHidden = undefined;
- exports.getQueueCounts = getQueueCounts;
- exports.addToQueue = addToQueue;
- exports.removeFromQueue = removeFromQueue;
- exports.queueRender = queueRender;
- exports.queueRenderAll = queueRenderAll;
- exports.ghostFix = ghostFix;
- exports.build = build;
- exports.hasButtons = hasButtons;
- exports.handleModal = handleModal;
- exports.handleModalClose = handleModalClose;
- exports.queueClose = queueClose;
- exports.dequeueClose = dequeueClose;
- exports.fire = fire;
- exports.openFlow = openFlow;
- exports.closeFlow = closeFlow;
- var _utils = __webpack_require__(0);
- var Utils = _interopRequireWildcard(_utils);
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
- var PageHidden = exports.PageHidden = false;
- var DocModalCount = exports.DocModalCount = 0;
- var DocTitleProps = {
- originalTitle: null,
- count: 0,
- changed: false,
- timer: -1
- };
- var docTitle = exports.docTitle = {
- increment: function increment() {
- DocTitleProps.count++;
- docTitle._update();
- },
- decrement: function decrement() {
- DocTitleProps.count--;
- if (DocTitleProps.count <= 0) {
- docTitle._clear();
- return;
- }
- docTitle._update();
- },
- _update: function _update() {
- var title = document.title;
- if (!DocTitleProps.changed) {
- DocTitleProps.originalTitle = title;
- document.title = '(' + DocTitleProps.count + ') ' + title;
- DocTitleProps.changed = true;
- } else {
- document.title = '(' + DocTitleProps.count + ') ' + DocTitleProps.originalTitle;
- }
- },
- _clear: function _clear() {
- if (DocTitleProps.changed) {
- DocTitleProps.count = 0;
- document.title = DocTitleProps.originalTitle;
- DocTitleProps.changed = false;
- }
- }
- };
- var DefaultMaxVisible = exports.DefaultMaxVisible = 5;
- var Queues = exports.Queues = {
- global: {
- maxVisible: DefaultMaxVisible,
- queue: []
- }
- };
- var Store = exports.Store = {};
- var Defaults = exports.Defaults = {
- type: 'alert',
- layout: 'topRight',
- theme: 'mint',
- text: '',
- timeout: false,
- progressBar: true,
- closeWith: ['click'],
- animation: {
- open: 'noty_effects_open',
- close: 'noty_effects_close'
- },
- id: false,
- force: false,
- killer: false,
- queue: 'global',
- container: false,
- buttons: [],
- callbacks: {
- beforeShow: null,
- onShow: null,
- afterShow: null,
- onClose: null,
- afterClose: null,
- onClick: null,
- onHover: null,
- onTemplate: null
- },
- sounds: {
- sources: [],
- volume: 1,
- conditions: []
- },
- titleCount: {
- conditions: []
- },
- modal: false,
- visibilityControl: false
- /**
- * @param {string} queueName
- * @return {object}
- */
- };function getQueueCounts() {
- var queueName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'global';
- var count = 0;
- var max = DefaultMaxVisible;
- if (Queues.hasOwnProperty(queueName)) {
- max = Queues[queueName].maxVisible;
- Object.keys(Store).forEach(function (i) {
- if (Store[i].options.queue === queueName && !Store[i].closed) count++;
- });
- }
- return {
- current: count,
- maxVisible: max
- };
- }
- /**
- * @param {Noty} ref
- * @return {void}
- */
- function addToQueue(ref) {
- if (!Queues.hasOwnProperty(ref.options.queue)) {
- Queues[ref.options.queue] = { maxVisible: DefaultMaxVisible, queue: [] };
- }
- Queues[ref.options.queue].queue.push(ref);
- }
- /**
- * @param {Noty} ref
- * @return {void}
- */
- function removeFromQueue(ref) {
- if (Queues.hasOwnProperty(ref.options.queue)) {
- var queue = [];
- Object.keys(Queues[ref.options.queue].queue).forEach(function (i) {
- if (Queues[ref.options.queue].queue[i].id !== ref.id) {
- queue.push(Queues[ref.options.queue].queue[i]);
- }
- });
- Queues[ref.options.queue].queue = queue;
- }
- }
- /**
- * @param {string} queueName
- * @return {void}
- */
- function queueRender() {
- var queueName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'global';
- if (Queues.hasOwnProperty(queueName)) {
- var noty = Queues[queueName].queue.shift();
- if (noty) noty.show();
- }
- }
- /**
- * @return {void}
- */
- function queueRenderAll() {
- Object.keys(Queues).forEach(function (queueName) {
- queueRender(queueName);
- });
- }
- /**
- * @param {Noty} ref
- * @return {void}
- */
- function ghostFix(ref) {
- var ghostID = Utils.generateID('ghost');
- var ghost = document.createElement('div');
- ghost.setAttribute('id', ghostID);
- Utils.css(ghost, {
- height: Utils.outerHeight(ref.barDom) + 'px'
- });
- ref.barDom.insertAdjacentHTML('afterend', ghost.outerHTML);
- Utils.remove(ref.barDom);
- ghost = document.getElementById(ghostID);
- Utils.addClass(ghost, 'noty_fix_effects_height');
- Utils.addListener(ghost, Utils.animationEndEvents, function () {
- Utils.remove(ghost);
- });
- }
- /**
- * @param {Noty} ref
- * @return {void}
- */
- function build(ref) {
- findOrCreateContainer(ref);
- var markup = '<div class="noty_body">' + ref.options.text + '</div>' + buildButtons(ref) + '<div class="noty_progressbar"></div>';
- ref.barDom = document.createElement('div');
- ref.barDom.setAttribute('id', ref.id);
- Utils.addClass(ref.barDom, 'noty_bar noty_type__' + ref.options.type + ' noty_theme__' + ref.options.theme);
- ref.barDom.innerHTML = markup;
- fire(ref, 'onTemplate');
- }
- /**
- * @param {Noty} ref
- * @return {boolean}
- */
- function hasButtons(ref) {
- return !!(ref.options.buttons && Object.keys(ref.options.buttons).length);
- }
- /**
- * @param {Noty} ref
- * @return {string}
- */
- function buildButtons(ref) {
- if (hasButtons(ref)) {
- var buttons = document.createElement('div');
- Utils.addClass(buttons, 'noty_buttons');
- Object.keys(ref.options.buttons).forEach(function (key) {
- buttons.appendChild(ref.options.buttons[key].dom);
- });
- ref.options.buttons.forEach(function (btn) {
- buttons.appendChild(btn.dom);
- });
- return buttons.outerHTML;
- }
- return '';
- }
- /**
- * @param {Noty} ref
- * @return {void}
- */
- function handleModal(ref) {
- if (ref.options.modal) {
- if (DocModalCount === 0) {
- createModal(ref);
- }
- exports.DocModalCount = DocModalCount += 1;
- }
- }
- /**
- * @param {Noty} ref
- * @return {void}
- */
- function handleModalClose(ref) {
- if (ref.options.modal && DocModalCount > 0) {
- exports.DocModalCount = DocModalCount -= 1;
- if (DocModalCount <= 0) {
- var modal = document.querySelector('.noty_modal');
- if (modal) {
- Utils.removeClass(modal, 'noty_modal_open');
- Utils.addClass(modal, 'noty_modal_close');
- Utils.addListener(modal, Utils.animationEndEvents, function () {
- Utils.remove(modal);
- });
- }
- }
- }
- }
- /**
- * @return {void}
- */
- function createModal() {
- var body = document.querySelector('body');
- var modal = document.createElement('div');
- Utils.addClass(modal, 'noty_modal');
- body.insertBefore(modal, body.firstChild);
- Utils.addClass(modal, 'noty_modal_open');
- Utils.addListener(modal, Utils.animationEndEvents, function () {
- Utils.removeClass(modal, 'noty_modal_open');
- });
- }
- /**
- * @param {Noty} ref
- * @return {void}
- */
- function findOrCreateContainer(ref) {
- if (ref.options.container) {
- ref.layoutDom = document.querySelector(ref.options.container);
- return;
- }
- var layoutID = 'noty_layout__' + ref.options.layout;
- ref.layoutDom = document.querySelector('div#' + layoutID);
- if (!ref.layoutDom) {
- ref.layoutDom = document.createElement('div');
- ref.layoutDom.setAttribute('id', layoutID);
- ref.layoutDom.setAttribute('role', 'alert');
- ref.layoutDom.setAttribute('aria-live', 'polite');
- Utils.addClass(ref.layoutDom, 'noty_layout');
- document.querySelector('body').appendChild(ref.layoutDom);
- }
- }
- /**
- * @param {Noty} ref
- * @return {void}
- */
- function queueClose(ref) {
- if (ref.options.timeout) {
- if (ref.options.progressBar && ref.progressDom) {
- Utils.css(ref.progressDom, {
- transition: 'width ' + ref.options.timeout + 'ms linear',
- width: '0%'
- });
- }
- clearTimeout(ref.closeTimer);
- ref.closeTimer = setTimeout(function () {
- ref.close();
- }, ref.options.timeout);
- }
- }
- /**
- * @param {Noty} ref
- * @return {void}
- */
- function dequeueClose(ref) {
- if (ref.options.timeout && ref.closeTimer) {
- clearTimeout(ref.closeTimer);
- ref.closeTimer = -1;
- if (ref.options.progressBar && ref.progressDom) {
- Utils.css(ref.progressDom, {
- transition: 'width 0ms linear',
- width: '100%'
- });
- }
- }
- }
- /**
- * @param {Noty} ref
- * @param {string} eventName
- * @return {void}
- */
- function fire(ref, eventName) {
- if (ref.listeners.hasOwnProperty(eventName)) {
- ref.listeners[eventName].forEach(function (cb) {
- if (typeof cb === 'function') {
- cb.apply(ref);
- }
- });
- }
- }
- /**
- * @param {Noty} ref
- * @return {void}
- */
- function openFlow(ref) {
- fire(ref, 'afterShow');
- queueClose(ref);
- Utils.addListener(ref.barDom, 'mouseenter', function () {
- dequeueClose(ref);
- });
- Utils.addListener(ref.barDom, 'mouseleave', function () {
- queueClose(ref);
- });
- }
- /**
- * @param {Noty} ref
- * @return {void}
- */
- function closeFlow(ref) {
- delete Store[ref.id];
- ref.closing = false;
- fire(ref, 'afterClose');
- Utils.remove(ref.barDom);
- if (ref.layoutDom.querySelectorAll('.noty_bar').length === 0 && !ref.options.container) {
- Utils.remove(ref.layoutDom);
- }
- if (Utils.inArray('docVisible', ref.options.titleCount.conditions) || Utils.inArray('docHidden', ref.options.titleCount.conditions)) {
- docTitle.decrement();
- }
- queueRender(ref.options.queue);
- }
- /***/ }),
- /* 2 */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.NotyButton = undefined;
- var _utils = __webpack_require__(0);
- var Utils = _interopRequireWildcard(_utils);
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- var NotyButton = exports.NotyButton = function NotyButton(html, classes, cb) {
- var _this = this;
- var attributes = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
- _classCallCheck(this, NotyButton);
- this.dom = document.createElement('button');
- this.dom.innerHTML = html;
- this.id = attributes.id = attributes.id || Utils.generateID('button');
- this.cb = cb;
- Object.keys(attributes).forEach(function (propertyName) {
- _this.dom.setAttribute(propertyName, attributes[propertyName]);
- });
- Utils.addClass(this.dom, classes || 'noty_btn');
- return this;
- };
- /***/ }),
- /* 3 */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- var Push = exports.Push = function () {
- function Push() {
- var workerPath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '/service-worker.js';
- _classCallCheck(this, Push);
- this.subData = {};
- this.workerPath = workerPath;
- this.listeners = {
- onPermissionGranted: [],
- onPermissionDenied: [],
- onSubscriptionSuccess: [],
- onSubscriptionCancel: [],
- onWorkerError: [],
- onWorkerSuccess: [],
- onWorkerNotSupported: []
- };
- return this;
- }
- /**
- * @param {string} eventName
- * @param {function} cb
- * @return {Push}
- */
- _createClass(Push, [{
- key: 'on',
- value: function on(eventName) {
- var cb = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {};
- if (typeof cb === 'function' && this.listeners.hasOwnProperty(eventName)) {
- this.listeners[eventName].push(cb);
- }
- return this;
- }
- }, {
- key: 'fire',
- value: function fire(eventName) {
- var _this = this;
- var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
- if (this.listeners.hasOwnProperty(eventName)) {
- this.listeners[eventName].forEach(function (cb) {
- if (typeof cb === 'function') {
- cb.apply(_this, params);
- }
- });
- }
- }
- }, {
- key: 'create',
- value: function create() {
- console.log('NOT IMPLEMENTED YET');
- }
- /**
- * @return {boolean}
- */
- }, {
- key: 'isSupported',
- value: function isSupported() {
- var result = false;
- try {
- result = window.Notification || window.webkitNotifications || navigator.mozNotification || window.external && window.external.msIsSiteMode() !== undefined;
- } catch (e) {}
- return result;
- }
- /**
- * @return {string}
- */
- }, {
- key: 'getPermissionStatus',
- value: function getPermissionStatus() {
- var perm = 'default';
- if (window.Notification && window.Notification.permissionLevel) {
- perm = window.Notification.permissionLevel;
- } else if (window.webkitNotifications && window.webkitNotifications.checkPermission) {
- switch (window.webkitNotifications.checkPermission()) {
- case 1:
- perm = 'default';
- break;
- case 0:
- perm = 'granted';
- break;
- default:
- perm = 'denied';
- }
- } else if (window.Notification && window.Notification.permission) {
- perm = window.Notification.permission;
- } else if (navigator.mozNotification) {
- perm = 'granted';
- } else if (window.external && window.external.msIsSiteMode() !== undefined) {
- perm = window.external.msIsSiteMode() ? 'granted' : 'default';
- }
- return perm.toString().toLowerCase();
- }
- /**
- * @return {string}
- */
- }, {
- key: 'getEndpoint',
- value: function getEndpoint(subscription) {
- var endpoint = subscription.endpoint;
- var subscriptionId = subscription.subscriptionId;
- // fix for Chrome < 45
- if (subscriptionId && endpoint.indexOf(subscriptionId) === -1) {
- endpoint += '/' + subscriptionId;
- }
- return endpoint;
- }
- /**
- * @return {boolean}
- */
- }, {
- key: 'isSWRegistered',
- value: function isSWRegistered() {
- try {
- return navigator.serviceWorker.controller.state === 'activated';
- } catch (e) {
- return false;
- }
- }
- /**
- * @return {void}
- */
- }, {
- key: 'unregisterWorker',
- value: function unregisterWorker() {
- var self = this;
- if ('serviceWorker' in navigator) {
- navigator.serviceWorker.getRegistrations().then(function (registrations) {
- var _iteratorNormalCompletion = true;
- var _didIteratorError = false;
- var _iteratorError = undefined;
- try {
- for (var _iterator = registrations[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
- var registration = _step.value;
- registration.unregister();
- self.fire('onSubscriptionCancel');
- }
- } catch (err) {
- _didIteratorError = true;
- _iteratorError = err;
- } finally {
- try {
- if (!_iteratorNormalCompletion && _iterator.return) {
- _iterator.return();
- }
- } finally {
- if (_didIteratorError) {
- throw _iteratorError;
- }
- }
- }
- });
- }
- }
- /**
- * @return {void}
- */
- }, {
- key: 'requestSubscription',
- value: function requestSubscription() {
- var _this2 = this;
- var userVisibleOnly = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
- var self = this;
- var current = this.getPermissionStatus();
- var cb = function cb(result) {
- if (result === 'granted') {
- _this2.fire('onPermissionGranted');
- if ('serviceWorker' in navigator) {
- navigator.serviceWorker.register(_this2.workerPath).then(function () {
- navigator.serviceWorker.ready.then(function (serviceWorkerRegistration) {
- self.fire('onWorkerSuccess');
- serviceWorkerRegistration.pushManager.subscribe({
- userVisibleOnly: userVisibleOnly
- }).then(function (subscription) {
- var key = subscription.getKey('p256dh');
- var token = subscription.getKey('auth');
- self.subData = {
- endpoint: self.getEndpoint(subscription),
- p256dh: key ? window.btoa(String.fromCharCode.apply(null, new Uint8Array(key))) : null,
- auth: token ? window.btoa(String.fromCharCode.apply(null, new Uint8Array(token))) : null
- };
- self.fire('onSubscriptionSuccess', [self.subData]);
- }).catch(function (err) {
- self.fire('onWorkerError', [err]);
- });
- });
- });
- } else {
- self.fire('onWorkerNotSupported');
- }
- } else if (result === 'denied') {
- _this2.fire('onPermissionDenied');
- _this2.unregisterWorker();
- }
- };
- if (current === 'default') {
- if (window.Notification && window.Notification.requestPermission) {
- window.Notification.requestPermission(cb);
- } else if (window.webkitNotifications && window.webkitNotifications.checkPermission) {
- window.webkitNotifications.requestPermission(cb);
- }
- } else {
- cb(current);
- }
- }
- }]);
- return Push;
- }();
- /***/ }),
- /* 4 */
- /***/ (function(module, exports, __webpack_require__) {
- /* WEBPACK VAR INJECTION */(function(process, global) {var require;/*!
- * @overview es6-promise - a tiny implementation of Promises/A+.
- * @copyright Copyright (c) 2014 Yehuda Katz, Tom Dale, Stefan Penner and contributors (Conversion to ES6 API by Jake Archibald)
- * @license Licensed under MIT license
- * See https://raw.githubusercontent.com/stefanpenner/es6-promise/master/LICENSE
- * @version 4.1.1
- */
- (function (global, factory) {
- true ? module.exports = factory() :
- typeof define === 'function' && define.amd ? define(factory) :
- (global.ES6Promise = factory());
- }(this, (function () { 'use strict';
- function objectOrFunction(x) {
- var type = typeof x;
- return x !== null && (type === 'object' || type === 'function');
- }
- function isFunction(x) {
- return typeof x === 'function';
- }
- var _isArray = undefined;
- if (Array.isArray) {
- _isArray = Array.isArray;
- } else {
- _isArray = function (x) {
- return Object.prototype.toString.call(x) === '[object Array]';
- };
- }
- var isArray = _isArray;
- var len = 0;
- var vertxNext = undefined;
- var customSchedulerFn = undefined;
- var asap = function asap(callback, arg) {
- queue[len] = callback;
- queue[len + 1] = arg;
- len += 2;
- if (len === 2) {
- // If len is 2, that means that we need to schedule an async flush.
- // If additional callbacks are queued before the queue is flushed, they
- // will be processed by this flush that we are scheduling.
- if (customSchedulerFn) {
- customSchedulerFn(flush);
- } else {
- scheduleFlush();
- }
- }
- };
- function setScheduler(scheduleFn) {
- customSchedulerFn = scheduleFn;
- }
- function setAsap(asapFn) {
- asap = asapFn;
- }
- var browserWindow = typeof window !== 'undefined' ? window : undefined;
- var browserGlobal = browserWindow || {};
- var BrowserMutationObserver = browserGlobal.MutationObserver || browserGlobal.WebKitMutationObserver;
- var isNode = typeof self === 'undefined' && typeof process !== 'undefined' && ({}).toString.call(process) === '[object process]';
- // test for web worker but not in IE10
- var isWorker = typeof Uint8ClampedArray !== 'undefined' && typeof importScripts !== 'undefined' && typeof MessageChannel !== 'undefined';
- // node
- function useNextTick() {
- // node version 0.10.x displays a deprecation warning when nextTick is used recursively
- // see https://github.com/cujojs/when/issues/410 for details
- return function () {
- return process.nextTick(flush);
- };
- }
- // vertx
- function useVertxTimer() {
- if (typeof vertxNext !== 'undefined') {
- return function () {
- vertxNext(flush);
- };
- }
- return useSetTimeout();
- }
- function useMutationObserver() {
- var iterations = 0;
- var observer = new BrowserMutationObserver(flush);
- var node = document.createTextNode('');
- observer.observe(node, { characterData: true });
- return function () {
- node.data = iterations = ++iterations % 2;
- };
- }
- // web worker
- function useMessageChannel() {
- var channel = new MessageChannel();
- channel.port1.onmessage = flush;
- return function () {
- return channel.port2.postMessage(0);
- };
- }
- function useSetTimeout() {
- // Store setTimeout reference so es6-promise will be unaffected by
- // other code modifying setTimeout (like sinon.useFakeTimers())
- var globalSetTimeout = setTimeout;
- return function () {
- return globalSetTimeout(flush, 1);
- };
- }
- var queue = new Array(1000);
- function flush() {
- for (var i = 0; i < len; i += 2) {
- var callback = queue[i];
- var arg = queue[i + 1];
- callback(arg);
- queue[i] = undefined;
- queue[i + 1] = undefined;
- }
- len = 0;
- }
- function attemptVertx() {
- try {
- var r = require;
- var vertx = __webpack_require__(9);
- vertxNext = vertx.runOnLoop || vertx.runOnContext;
- return useVertxTimer();
- } catch (e) {
- return useSetTimeout();
- }
- }
- var scheduleFlush = undefined;
- // Decide what async method to use to triggering processing of queued callbacks:
- if (isNode) {
- scheduleFlush = useNextTick();
- } else if (BrowserMutationObserver) {
- scheduleFlush = useMutationObserver();
- } else if (isWorker) {
- scheduleFlush = useMessageChannel();
- } else if (browserWindow === undefined && "function" === 'function') {
- scheduleFlush = attemptVertx();
- } else {
- scheduleFlush = useSetTimeout();
- }
- function then(onFulfillment, onRejection) {
- var _arguments = arguments;
- var parent = this;
- var child = new this.constructor(noop);
- if (child[PROMISE_ID] === undefined) {
- makePromise(child);
- }
- var _state = parent._state;
- if (_state) {
- (function () {
- var callback = _arguments[_state - 1];
- asap(function () {
- return invokeCallback(_state, child, callback, parent._result);
- });
- })();
- } else {
- subscribe(parent, child, onFulfillment, onRejection);
- }
- return child;
- }
- /**
- `Promise.resolve` returns a promise that will become resolved with the
- passed `value`. It is shorthand for the following:
- ```javascript
- let promise = new Promise(function(resolve, reject){
- resolve(1);
- });
- promise.then(function(value){
- // value === 1
- });
- ```
- Instead of writing the above, your code now simply becomes the following:
- ```javascript
- let promise = Promise.resolve(1);
- promise.then(function(value){
- // value === 1
- });
- ```
- @method resolve
- @static
- @param {Any} value value that the returned promise will be resolved with
- Useful for tooling.
- @return {Promise} a promise that will become fulfilled with the given
- `value`
- */
- function resolve$1(object) {
- /*jshint validthis:true */
- var Constructor = this;
- if (object && typeof object === 'object' && object.constructor === Constructor) {
- return object;
- }
- var promise = new Constructor(noop);
- resolve(promise, object);
- return promise;
- }
- var PROMISE_ID = Math.random().toString(36).substring(16);
- function noop() {}
- var PENDING = void 0;
- var FULFILLED = 1;
- var REJECTED = 2;
- var GET_THEN_ERROR = new ErrorObject();
- function selfFulfillment() {
- return new TypeError("You cannot resolve a promise with itself");
- }
- function cannotReturnOwn() {
- return new TypeError('A promises callback cannot return that same promise.');
- }
- function getThen(promise) {
- try {
- return promise.then;
- } catch (error) {
- GET_THEN_ERROR.error = error;
- return GET_THEN_ERROR;
- }
- }
- function tryThen(then$$1, value, fulfillmentHandler, rejectionHandler) {
- try {
- then$$1.call(value, fulfillmentHandler, rejectionHandler);
- } catch (e) {
- return e;
- }
- }
- function handleForeignThenable(promise, thenable, then$$1) {
- asap(function (promise) {
- var sealed = false;
- var error = tryThen(then$$1, thenable, function (value) {
- if (sealed) {
- return;
- }
- sealed = true;
- if (thenable !== value) {
- resolve(promise, value);
- } else {
- fulfill(promise, value);
- }
- }, function (reason) {
- if (sealed) {
- return;
- }
- sealed = true;
- reject(promise, reason);
- }, 'Settle: ' + (promise._label || ' unknown promise'));
- if (!sealed && error) {
- sealed = true;
- reject(promise, error);
- }
- }, promise);
- }
- function handleOwnThenable(promise, thenable) {
- if (thenable._state === FULFILLED) {
- fulfill(promise, thenable._result);
- } else if (thenable._state === REJECTED) {
- reject(promise, thenable._result);
- } else {
- subscribe(thenable, undefined, function (value) {
- return resolve(promise, value);
- }, function (reason) {
- return reject(promise, reason);
- });
- }
- }
- function handleMaybeThenable(promise, maybeThenable, then$$1) {
- if (maybeThenable.constructor === promise.constructor && then$$1 === then && maybeThenable.constructor.resolve === resolve$1) {
- handleOwnThenable(promise, maybeThenable);
- } else {
- if (then$$1 === GET_THEN_ERROR) {
- reject(promise, GET_THEN_ERROR.error);
- GET_THEN_ERROR.error = null;
- } else if (then$$1 === undefined) {
- fulfill(promise, maybeThenable);
- } else if (isFunction(then$$1)) {
- handleForeignThenable(promise, maybeThenable, then$$1);
- } else {
- fulfill(promise, maybeThenable);
- }
- }
- }
- function resolve(promise, value) {
- if (promise === value) {
- reject(promise, selfFulfillment());
- } else if (objectOrFunction(value)) {
- handleMaybeThenable(promise, value, getThen(value));
- } else {
- fulfill(promise, value);
- }
- }
- function publishRejection(promise) {
- if (promise._onerror) {
- promise._onerror(promise._result);
- }
- publish(promise);
- }
- function fulfill(promise, value) {
- if (promise._state !== PENDING) {
- return;
- }
- promise._result = value;
- promise._state = FULFILLED;
- if (promise._subscribers.length !== 0) {
- asap(publish, promise);
- }
- }
- function reject(promise, reason) {
- if (promise._state !== PENDING) {
- return;
- }
- promise._state = REJECTED;
- promise._result = reason;
- asap(publishRejection, promise);
- }
- function subscribe(parent, child, onFulfillment, onRejection) {
- var _subscribers = parent._subscribers;
- var length = _subscribers.length;
- parent._onerror = null;
- _subscribers[length] = child;
- _subscribers[length + FULFILLED] = onFulfillment;
- _subscribers[length + REJECTED] = onRejection;
- if (length === 0 && parent._state) {
- asap(publish, parent);
- }
- }
- function publish(promise) {
- var subscribers = promise._subscribers;
- var settled = promise._state;
- if (subscribers.length === 0) {
- return;
- }
- var child = undefined,
- callback = undefined,
- detail = promise._result;
- for (var i = 0; i < subscribers.length; i += 3) {
- child = subscribers[i];
- callback = subscribers[i + settled];
- if (child) {
- invokeCallback(settled, child, callback, detail);
- } else {
- callback(detail);
- }
- }
- promise._subscribers.length = 0;
- }
- function ErrorObject() {
- this.error = null;
- }
- var TRY_CATCH_ERROR = new ErrorObject();
- function tryCatch(callback, detail) {
- try {
- return callback(detail);
- } catch (e) {
- TRY_CATCH_ERROR.error = e;
- return TRY_CATCH_ERROR;
- }
- }
- function invokeCallback(settled, promise, callback, detail) {
- var hasCallback = isFunction(callback),
- value = undefined,
- error = undefined,
- succeeded = undefined,
- failed = undefined;
- if (hasCallback) {
- value = tryCatch(callback, detail);
- if (value === TRY_CATCH_ERROR) {
- failed = true;
- error = value.error;
- value.error = null;
- } else {
- succeeded = true;
- }
- if (promise === value) {
- reject(promise, cannotReturnOwn());
- return;
- }
- } else {
- value = detail;
- succeeded = true;
- }
- if (promise._state !== PENDING) {
- // noop
- } else if (hasCallback && succeeded) {
- resolve(promise, value);
- } else if (failed) {
- reject(promise, error);
- } else if (settled === FULFILLED) {
- fulfill(promise, value);
- } else if (settled === REJECTED) {
- reject(promise, value);
- }
- }
- function initializePromise(promise, resolver) {
- try {
- resolver(function resolvePromise(value) {
- resolve(promise, value);
- }, function rejectPromise(reason) {
- reject(promise, reason);
- });
- } catch (e) {
- reject(promise, e);
- }
- }
- var id = 0;
- function nextId() {
- return id++;
- }
- function makePromise(promise) {
- promise[PROMISE_ID] = id++;
- promise._state = undefined;
- promise._result = undefined;
- promise._subscribers = [];
- }
- function Enumerator$1(Constructor, input) {
- this._instanceConstructor = Constructor;
- this.promise = new Constructor(noop);
- if (!this.promise[PROMISE_ID]) {
- makePromise(this.promise);
- }
- if (isArray(input)) {
- this.length = input.length;
- this._remaining = input.length;
- this._result = new Array(this.length);
- if (this.length === 0) {
- fulfill(this.promise, this._result);
- } else {
- this.length = this.length || 0;
- this._enumerate(input);
- if (this._remaining === 0) {
- fulfill(this.promise, this._result);
- }
- }
- } else {
- reject(this.promise, validationError());
- }
- }
- function validationError() {
- return new Error('Array Methods must be provided an Array');
- }
- Enumerator$1.prototype._enumerate = function (input) {
- for (var i = 0; this._state === PENDING && i < input.length; i++) {
- this._eachEntry(input[i], i);
- }
- };
- Enumerator$1.prototype._eachEntry = function (entry, i) {
- var c = this._instanceConstructor;
- var resolve$$1 = c.resolve;
- if (resolve$$1 === resolve$1) {
- var _then = getThen(entry);
- if (_then === then && entry._state !== PENDING) {
- this._settledAt(entry._state, i, entry._result);
- } else if (typeof _then !== 'function') {
- this._remaining--;
- this._result[i] = entry;
- } else if (c === Promise$2) {
- var promise = new c(noop);
- handleMaybeThenable(promise, entry, _then);
- this._willSettleAt(promise, i);
- } else {
- this._willSettleAt(new c(function (resolve$$1) {
- return resolve$$1(entry);
- }), i);
- }
- } else {
- this._willSettleAt(resolve$$1(entry), i);
- }
- };
- Enumerator$1.prototype._settledAt = function (state, i, value) {
- var promise = this.promise;
- if (promise._state === PENDING) {
- this._remaining--;
- if (state === REJECTED) {
- reject(promise, value);
- } else {
- this._result[i] = value;
- }
- }
- if (this._remaining === 0) {
- fulfill(promise, this._result);
- }
- };
- Enumerator$1.prototype._willSettleAt = function (promise, i) {
- var enumerator = this;
- subscribe(promise, undefined, function (value) {
- return enumerator._settledAt(FULFILLED, i, value);
- }, function (reason) {
- return enumerator._settledAt(REJECTED, i, reason);
- });
- };
- /**
- `Promise.all` accepts an array of promises, and returns a new promise which
- is fulfilled with an array of fulfillment values for the passed promises, or
- rejected with the reason of the first passed promise to be rejected. It casts all
- elements of the passed iterable to promises as it runs this algorithm.
- Example:
- ```javascript
- let promise1 = resolve(1);
- let promise2 = resolve(2);
- let promise3 = resolve(3);
- let promises = [ promise1, promise2, promise3 ];
- Promise.all(promises).then(function(array){
- // The array here would be [ 1, 2, 3 ];
- });
- ```
- If any of the `promises` given to `all` are rejected, the first promise
- that is rejected will be given as an argument to the returned promises's
- rejection handler. For example:
- Example:
- ```javascript
- let promise1 = resolve(1);
- let promise2 = reject(new Error("2"));
- let promise3 = reject(new Error("3"));
- let promises = [ promise1, promise2, promise3 ];
- Promise.all(promises).then(function(array){
- // Code here never runs because there are rejected promises!
- }, function(error) {
- // error.message === "2"
- });
- ```
- @method all
- @static
- @param {Array} entries array of promises
- @param {String} label optional string for labeling the promise.
- Useful for tooling.
- @return {Promise} promise that is fulfilled when all `promises` have been
- fulfilled, or rejected if any of them become rejected.
- @static
- */
- function all$1(entries) {
- return new Enumerator$1(this, entries).promise;
- }
- /**
- `Promise.race` returns a new promise which is settled in the same way as the
- first passed promise to settle.
- Example:
- ```javascript
- let promise1 = new Promise(function(resolve, reject){
- setTimeout(function(){
- resolve('promise 1');
- }, 200);
- });
- let promise2 = new Promise(function(resolve, reject){
- setTimeout(function(){
- resolve('promise 2');
- }, 100);
- });
- Promise.race([promise1, promise2]).then(function(result){
- // result === 'promise 2' because it was resolved before promise1
- // was resolved.
- });
- ```
- `Promise.race` is deterministic in that only the state of the first
- settled promise matters. For example, even if other promises given to the
- `promises` array argument are resolved, but the first settled promise has
- become rejected before the other promises became fulfilled, the returned
- promise will become rejected:
- ```javascript
- let promise1 = new Promise(function(resolve, reject){
- setTimeout(function(){
- resolve('promise 1');
- }, 200);
- });
- let promise2 = new Promise(function(resolve, reject){
- setTimeout(function(){
- reject(new Error('promise 2'));
- }, 100);
- });
- Promise.race([promise1, promise2]).then(function(result){
- // Code here never runs
- }, function(reason){
- // reason.message === 'promise 2' because promise 2 became rejected before
- // promise 1 became fulfilled
- });
- ```
- An example real-world use case is implementing timeouts:
- ```javascript
- Promise.race([ajax('foo.json'), timeout(5000)])
- ```
- @method race
- @static
- @param {Array} promises array of promises to observe
- Useful for tooling.
- @return {Promise} a promise which settles in the same way as the first passed
- promise to settle.
- */
- function race$1(entries) {
- /*jshint validthis:true */
- var Constructor = this;
- if (!isArray(entries)) {
- return new Constructor(function (_, reject) {
- return reject(new TypeError('You must pass an array to race.'));
- });
- } else {
- return new Constructor(function (resolve, reject) {
- var length = entries.length;
- for (var i = 0; i < length; i++) {
- Constructor.resolve(entries[i]).then(resolve, reject);
- }
- });
- }
- }
- /**
- `Promise.reject` returns a promise rejected with the passed `reason`.
- It is shorthand for the following:
- ```javascript
- let promise = new Promise(function(resolve, reject){
- reject(new Error('WHOOPS'));
- });
- promise.then(function(value){
- // Code here doesn't run because the promise is rejected!
- }, function(reason){
- // reason.message === 'WHOOPS'
- });
- ```
- Instead of writing the above, your code now simply becomes the following:
- ```javascript
- let promise = Promise.reject(new Error('WHOOPS'));
- promise.then(function(value){
- // Code here doesn't run because the promise is rejected!
- }, function(reason){
- // reason.message === 'WHOOPS'
- });
- ```
- @method reject
- @static
- @param {Any} reason value that the returned promise will be rejected with.
- Useful for tooling.
- @return {Promise} a promise rejected with the given `reason`.
- */
- function reject$1(reason) {
- /*jshint validthis:true */
- var Constructor = this;
- var promise = new Constructor(noop);
- reject(promise, reason);
- return promise;
- }
- function needsResolver() {
- throw new TypeError('You must pass a resolver function as the first argument to the promise constructor');
- }
- function needsNew() {
- throw new TypeError("Failed to construct 'Promise': Please use the 'new' operator, this object constructor cannot be called as a function.");
- }
- /**
- Promise objects represent the eventual result of an asynchronous operation. The
- primary way of interacting with a promise is through its `then` method, which
- registers callbacks to receive either a promise's eventual value or the reason
- why the promise cannot be fulfilled.
- Terminology
- -----------
- - `promise` is an object or function with a `then` method whose behavior conforms to this specification.
- - `thenable` is an object or function that defines a `then` method.
- - `value` is any legal JavaScript value (including undefined, a thenable, or a promise).
- - `exception` is a value that is thrown using the throw statement.
- - `reason` is a value that indicates why a promise was rejected.
- - `settled` the final resting state of a promise, fulfilled or rejected.
- A promise can be in one of three states: pending, fulfilled, or rejected.
- Promises that are fulfilled have a fulfillment value and are in the fulfilled
- state. Promises that are rejected have a rejection reason and are in the
- rejected state. A fulfillment value is never a thenable.
- Promises can also be said to *resolve* a value. If this value is also a
- promise, then the original promise's settled state will match the value's
- settled state. So a promise that *resolves* a promise that rejects will
- itself reject, and a promise that *resolves* a promise that fulfills will
- itself fulfill.
- Basic Usage:
- ------------
- ```js
- let promise = new Promise(function(resolve, reject) {
- // on success
- resolve(value);
- // on failure
- reject(reason);
- });
- promise.then(function(value) {
- // on fulfillment
- }, function(reason) {
- // on rejection
- });
- ```
- Advanced Usage:
- ---------------
- Promises shine when abstracting away asynchronous interactions such as
- `XMLHttpRequest`s.
- ```js
- function getJSON(url) {
- return new Promise(function(resolve, reject){
- let xhr = new XMLHttpRequest();
- xhr.open('GET', url);
- xhr.onreadystatechange = handler;
- xhr.responseType = 'json';
- xhr.setRequestHeader('Accept', 'application/json');
- xhr.send();
- function handler() {
- if (this.readyState === this.DONE) {
- if (this.status === 200) {
- resolve(this.response);
- } else {
- reject(new Error('getJSON: `' + url + '` failed with status: [' + this.status + ']'));
- }
- }
- };
- });
- }
- getJSON('/posts.json').then(function(json) {
- // on fulfillment
- }, function(reason) {
- // on rejection
- });
- ```
- Unlike callbacks, promises are great composable primitives.
- ```js
- Promise.all([
- getJSON('/posts'),
- getJSON('/comments')
- ]).then(function(values){
- values[0] // => postsJSON
- values[1] // => commentsJSON
- return values;
- });
- ```
- @class Promise
- @param {function} resolver
- Useful for tooling.
- @constructor
- */
- function Promise$2(resolver) {
- this[PROMISE_ID] = nextId();
- this._result = this._state = undefined;
- this._subscribers = [];
- if (noop !== resolver) {
- typeof resolver !== 'function' && needsResolver();
- this instanceof Promise$2 ? initializePromise(this, resolver) : needsNew();
- }
- }
- Promise$2.all = all$1;
- Promise$2.race = race$1;
- Promise$2.resolve = resolve$1;
- Promise$2.reject = reject$1;
- Promise$2._setScheduler = setScheduler;
- Promise$2._setAsap = setAsap;
- Promise$2._asap = asap;
- Promise$2.prototype = {
- constructor: Promise$2,
- /**
- The primary way of interacting with a promise is through its `then` method,
- which registers callbacks to receive either a promise's eventual value or the
- reason why the promise cannot be fulfilled.
-
- ```js
- findUser().then(function(user){
- // user is available
- }, function(reason){
- // user is unavailable, and you are given the reason why
- });
- ```
-
- Chaining
- --------
-
- The return value of `then` is itself a promise. This second, 'downstream'
- promise is resolved with the return value of the first promise's fulfillment
- or rejection handler, or rejected if the handler throws an exception.
-
- ```js
- findUser().then(function (user) {
- return user.name;
- }, function (reason) {
- return 'default name';
- }).then(function (userName) {
- // If `findUser` fulfilled, `userName` will be the user's name, otherwise it
- // will be `'default name'`
- });
-
- findUser().then(function (user) {
- throw new Error('Found user, but still unhappy');
- }, function (reason) {
- throw new Error('`findUser` rejected and we're unhappy');
- }).then(function (value) {
- // never reached
- }, function (reason) {
- // if `findUser` fulfilled, `reason` will be 'Found user, but still unhappy'.
- // If `findUser` rejected, `reason` will be '`findUser` rejected and we're unhappy'.
- });
- ```
- If the downstream promise does not specify a rejection handler, rejection reasons will be propagated further downstream.
-
- ```js
- findUser().then(function (user) {
- throw new PedagogicalException('Upstream error');
- }).then(function (value) {
- // never reached
- }).then(function (value) {
- // never reached
- }, function (reason) {
- // The `PedgagocialException` is propagated all the way down to here
- });
- ```
-
- Assimilation
- ------------
-
- Sometimes the value you want to propagate to a downstream promise can only be
- retrieved asynchronously. This can be achieved by returning a promise in the
- fulfillment or rejection handler. The downstream promise will then be pending
- until the returned promise is settled. This is called *assimilation*.
-
- ```js
- findUser().then(function (user) {
- return findCommentsByAuthor(user);
- }).then(function (comments) {
- // The user's comments are now available
- });
- ```
-
- If the assimliated promise rejects, then the downstream promise will also reject.
-
- ```js
- findUser().then(function (user) {
- return findCommentsByAuthor(user);
- }).then(function (comments) {
- // If `findCommentsByAuthor` fulfills, we'll have the value here
- }, function (reason) {
- // If `findCommentsByAuthor` rejects, we'll have the reason here
- });
- ```
-
- Simple Example
- --------------
-
- Synchronous Example
-
- ```javascript
- let result;
-
- try {
- result = findResult();
- // success
- } catch(reason) {
- // failure
- }
- ```
-
- Errback Example
-
- ```js
- findResult(function(result, err){
- if (err) {
- // failure
- } else {
- // success
- }
- });
- ```
-
- Promise Example;
-
- ```javascript
- findResult().then(function(result){
- // success
- }, function(reason){
- // failure
- });
- ```
-
- Advanced Example
- --------------
-
- Synchronous Example
-
- ```javascript
- let author, books;
-
- try {
- author = findAuthor();
- books = findBooksByAuthor(author);
- // success
- } catch(reason) {
- // failure
- }
- ```
-
- Errback Example
-
- ```js
-
- function foundBooks(books) {
-
- }
-
- function failure(reason) {
-
- }
-
- findAuthor(function(author, err){
- if (err) {
- failure(err);
- // failure
- } else {
- try {
- findBoooksByAuthor(author, function(books, err) {
- if (err) {
- failure(err);
- } else {
- try {
- foundBooks(books);
- } catch(reason) {
- failure(reason);
- }
- }
- });
- } catch(error) {
- failure(err);
- }
- // success
- }
- });
- ```
-
- Promise Example;
-
- ```javascript
- findAuthor().
- then(findBooksByAuthor).
- then(function(books){
- // found books
- }).catch(function(reason){
- // something went wrong
- });
- ```
-
- @method then
- @param {Function} onFulfilled
- @param {Function} onRejected
- Useful for tooling.
- @return {Promise}
- */
- then: then,
- /**
- `catch` is simply sugar for `then(undefined, onRejection)` which makes it the same
- as the catch block of a try/catch statement.
-
- ```js
- function findAuthor(){
- throw new Error('couldn't find that author');
- }
-
- // synchronous
- try {
- findAuthor();
- } catch(reason) {
- // something went wrong
- }
-
- // async with promises
- findAuthor().catch(function(reason){
- // something went wrong
- });
- ```
-
- @method catch
- @param {Function} onRejection
- Useful for tooling.
- @return {Promise}
- */
- 'catch': function _catch(onRejection) {
- return this.then(null, onRejection);
- }
- };
- /*global self*/
- function polyfill$1() {
- var local = undefined;
- if (typeof global !== 'undefined') {
- local = global;
- } else if (typeof self !== 'undefined') {
- local = self;
- } else {
- try {
- local = Function('return this')();
- } catch (e) {
- throw new Error('polyfill failed because global object is unavailable in this environment');
- }
- }
- var P = local.Promise;
- if (P) {
- var promiseToString = null;
- try {
- promiseToString = Object.prototype.toString.call(P.resolve());
- } catch (e) {
- // silently ignored
- }
- if (promiseToString === '[object Promise]' && !P.cast) {
- return;
- }
- }
- local.Promise = Promise$2;
- }
- // Strange compat..
- Promise$2.polyfill = polyfill$1;
- Promise$2.Promise = Promise$2;
- return Promise$2;
- })));
- //# sourceMappingURL=es6-promise.map
- /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(7), __webpack_require__(8)))
- /***/ }),
- /* 5 */
- /***/ (function(module, exports) {
- // removed by extract-text-webpack-plugin
- /***/ }),
- /* 6 */
- /***/ (function(module, exports, __webpack_require__) {
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); /* global VERSION */
- __webpack_require__(5);
- var _es6Promise = __webpack_require__(4);
- var _es6Promise2 = _interopRequireDefault(_es6Promise);
- var _utils = __webpack_require__(0);
- var Utils = _interopRequireWildcard(_utils);
- var _api = __webpack_require__(1);
- var API = _interopRequireWildcard(_api);
- var _button = __webpack_require__(2);
- var _push = __webpack_require__(3);
- function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
- var Noty = function () {
- /**
- * @param {object} options
- * @return {Noty}
- */
- function Noty() {
- var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
- _classCallCheck(this, Noty);
- this.options = Utils.deepExtend({}, API.Defaults, options);
- if (API.Store[this.options.id]) {
- return API.Store[this.options.id];
- }
- this.id = this.options.id || Utils.generateID('bar');
- this.closeTimer = -1;
- this.barDom = null;
- this.layoutDom = null;
- this.progressDom = null;
- this.showing = false;
- this.shown = false;
- this.closed = false;
- this.closing = false;
- this.killable = this.options.timeout || this.options.closeWith.length > 0;
- this.hasSound = this.options.sounds.sources.length > 0;
- this.soundPlayed = false;
- this.listeners = {
- beforeShow: [],
- onShow: [],
- afterShow: [],
- onClose: [],
- afterClose: [],
- onClick: [],
- onHover: [],
- onTemplate: []
- };
- this.promises = {
- show: null,
- close: null
- };
- this.on('beforeShow', this.options.callbacks.beforeShow);
- this.on('onShow', this.options.callbacks.onShow);
- this.on('afterShow', this.options.callbacks.afterShow);
- this.on('onClose', this.options.callbacks.onClose);
- this.on('afterClose', this.options.callbacks.afterClose);
- this.on('onClick', this.options.callbacks.onClick);
- this.on('onHover', this.options.callbacks.onHover);
- this.on('onTemplate', this.options.callbacks.onTemplate);
- return this;
- }
- /**
- * @param {string} eventName
- * @param {function} cb
- * @return {Noty}
- */
- _createClass(Noty, [{
- key: 'on',
- value: function on(eventName) {
- var cb = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : function () {};
- if (typeof cb === 'function' && this.listeners.hasOwnProperty(eventName)) {
- this.listeners[eventName].push(cb);
- }
- return this;
- }
- /**
- * @return {Noty}
- */
- }, {
- key: 'show',
- value: function show() {
- var _this = this;
- if (this.showing || this.shown) {
- return this; // preventing multiple show
- }
- if (this.options.killer === true) {
- Noty.closeAll();
- } else if (typeof this.options.killer === 'string') {
- Noty.closeAll(this.options.killer);
- }
- var queueCounts = API.getQueueCounts(this.options.queue);
- if (queueCounts.current >= queueCounts.maxVisible || API.PageHidden && this.options.visibilityControl) {
- API.addToQueue(this);
- if (API.PageHidden && this.hasSound && Utils.inArray('docHidden', this.options.sounds.conditions)) {
- Utils.createAudioElements(this);
- }
- if (API.PageHidden && Utils.inArray('docHidden', this.options.titleCount.conditions)) {
- API.docTitle.increment();
- }
- return this;
- }
- API.Store[this.id] = this;
- API.fire(this, 'beforeShow');
- this.showing = true;
- if (this.closing) {
- this.showing = false;
- return this;
- }
- API.build(this);
- API.handleModal(this);
- if (this.options.force) {
- this.layoutDom.insertBefore(this.barDom, this.layoutDom.firstChild);
- } else {
- this.layoutDom.appendChild(this.barDom);
- }
- if (this.hasSound && !this.soundPlayed && Utils.inArray('docVisible', this.options.sounds.conditions)) {
- Utils.createAudioElements(this);
- }
- if (Utils.inArray('docVisible', this.options.titleCount.conditions)) {
- API.docTitle.increment();
- }
- this.shown = true;
- this.closed = false;
- // bind button events if any
- if (API.hasButtons(this)) {
- Object.keys(this.options.buttons).forEach(function (key) {
- var btn = _this.barDom.querySelector('#' + _this.options.buttons[key].id);
- Utils.addListener(btn, 'click', function (e) {
- Utils.stopPropagation(e);
- _this.options.buttons[key].cb(_this);
- });
- });
- }
- this.progressDom = this.barDom.querySelector('.noty_progressbar');
- if (Utils.inArray('click', this.options.closeWith)) {
- Utils.addClass(this.barDom, 'noty_close_with_click');
- Utils.addListener(this.barDom, 'click', function (e) {
- Utils.stopPropagation(e);
- API.fire(_this, 'onClick');
- _this.close();
- }, false);
- }
- Utils.addListener(this.barDom, 'mouseenter', function () {
- API.fire(_this, 'onHover');
- }, false);
- if (this.options.timeout) Utils.addClass(this.barDom, 'noty_has_timeout');
- if (this.options.progressBar) {
- Utils.addClass(this.barDom, 'noty_has_progressbar');
- }
- if (Utils.inArray('button', this.options.closeWith)) {
- Utils.addClass(this.barDom, 'noty_close_with_button');
- var closeButton = document.createElement('div');
- Utils.addClass(closeButton, 'noty_close_button');
- closeButton.innerHTML = '×';
- this.barDom.appendChild(closeButton);
- Utils.addListener(closeButton, 'click', function (e) {
- Utils.stopPropagation(e);
- _this.close();
- }, false);
- }
- API.fire(this, 'onShow');
- if (this.options.animation.open === null) {
- this.promises.show = new _es6Promise2.default(function (resolve) {
- resolve();
- });
- } else if (typeof this.options.animation.open === 'function') {
- this.promises.show = new _es6Promise2.default(this.options.animation.open.bind(this));
- } else {
- Utils.addClass(this.barDom, this.options.animation.open);
- this.promises.show = new _es6Promise2.default(function (resolve) {
- Utils.addListener(_this.barDom, Utils.animationEndEvents, function () {
- Utils.removeClass(_this.barDom, _this.options.animation.open);
- resolve();
- });
- });
- }
- this.promises.show.then(function () {
- var _t = _this;
- setTimeout(function () {
- API.openFlow(_t);
- }, 100);
- });
- return this;
- }
- /**
- * @return {Noty}
- */
- }, {
- key: 'stop',
- value: function stop() {
- API.dequeueClose(this);
- return this;
- }
- /**
- * @return {Noty}
- */
- }, {
- key: 'resume',
- value: function resume() {
- API.queueClose(this);
- return this;
- }
- /**
- * @param {int|boolean} ms
- * @return {Noty}
- */
- }, {
- key: 'setTimeout',
- value: function (_setTimeout) {
- function setTimeout(_x) {
- return _setTimeout.apply(this, arguments);
- }
- setTimeout.toString = function () {
- return _setTimeout.toString();
- };
- return setTimeout;
- }(function (ms) {
- this.stop();
- this.options.timeout = ms;
- if (this.barDom) {
- if (this.options.timeout) {
- Utils.addClass(this.barDom, 'noty_has_timeout');
- } else {
- Utils.removeClass(this.barDom, 'noty_has_timeout');
- }
- var _t = this;
- setTimeout(function () {
- // ugly fix for progressbar display bug
- _t.resume();
- }, 100);
- }
- return this;
- })
- /**
- * @param {string} html
- * @param {boolean} optionsOverride
- * @return {Noty}
- */
- }, {
- key: 'setText',
- value: function setText(html) {
- var optionsOverride = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
- if (this.barDom) {
- this.barDom.querySelector('.noty_body').innerHTML = html;
- }
- if (optionsOverride) this.options.text = html;
- return this;
- }
- /**
- * @param {string} type
- * @param {boolean} optionsOverride
- * @return {Noty}
- */
- }, {
- key: 'setType',
- value: function setType(type) {
- var _this2 = this;
- var optionsOverride = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
- if (this.barDom) {
- var classList = Utils.classList(this.barDom).split(' ');
- classList.forEach(function (c) {
- if (c.substring(0, 11) === 'noty_type__') {
- Utils.removeClass(_this2.barDom, c);
- }
- });
- Utils.addClass(this.barDom, 'noty_type__' + type);
- }
- if (optionsOverride) this.options.type = type;
- return this;
- }
- /**
- * @param {string} theme
- * @param {boolean} optionsOverride
- * @return {Noty}
- */
- }, {
- key: 'setTheme',
- value: function setTheme(theme) {
- var _this3 = this;
- var optionsOverride = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
- if (this.barDom) {
- var classList = Utils.classList(this.barDom).split(' ');
- classList.forEach(function (c) {
- if (c.substring(0, 12) === 'noty_theme__') {
- Utils.removeClass(_this3.barDom, c);
- }
- });
- Utils.addClass(this.barDom, 'noty_theme__' + theme);
- }
- if (optionsOverride) this.options.theme = theme;
- return this;
- }
- /**
- * @return {Noty}
- */
- }, {
- key: 'close',
- value: function close() {
- var _this4 = this;
- if (this.closed) return this;
- if (!this.shown) {
- // it's in the queue
- API.removeFromQueue(this);
- return this;
- }
- API.fire(this, 'onClose');
- this.closing = true;
- if (this.options.animation.close === null || this.options.animation.close === false) {
- this.promises.close = new _es6Promise2.default(function (resolve) {
- resolve();
- });
- } else if (typeof this.options.animation.close === 'function') {
- this.promises.close = new _es6Promise2.default(this.options.animation.close.bind(this));
- } else {
- Utils.addClass(this.barDom, this.options.animation.close);
- this.promises.close = new _es6Promise2.default(function (resolve) {
- Utils.addListener(_this4.barDom, Utils.animationEndEvents, function () {
- if (_this4.options.force) {
- Utils.remove(_this4.barDom);
- } else {
- API.ghostFix(_this4);
- }
- resolve();
- });
- });
- }
- this.promises.close.then(function () {
- API.closeFlow(_this4);
- API.handleModalClose(_this4);
- });
- this.closed = true;
- return this;
- }
- // API functions
- /**
- * @param {boolean|string} queueName
- * @return {Noty}
- */
- }], [{
- key: 'closeAll',
- value: function closeAll() {
- var queueName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
- Object.keys(API.Store).forEach(function (id) {
- if (queueName) {
- if (API.Store[id].options.queue === queueName && API.Store[id].killable) {
- API.Store[id].close();
- }
- } else if (API.Store[id].killable) {
- API.Store[id].close();
- }
- });
- return this;
- }
- /**
- * @param {string} queueName
- * @return {Noty}
- */
- }, {
- key: 'clearQueue',
- value: function clearQueue() {
- var queueName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'global';
- if (API.Queues.hasOwnProperty(queueName)) {
- API.Queues[queueName].queue = [];
- }
- return this;
- }
- /**
- * @return {API.Queues}
- */
- }, {
- key: 'overrideDefaults',
- /**
- * @param {Object} obj
- * @return {Noty}
- */
- value: function overrideDefaults(obj) {
- API.Defaults = Utils.deepExtend({}, API.Defaults, obj);
- return this;
- }
- /**
- * @param {int} amount
- * @param {string} queueName
- * @return {Noty}
- */
- }, {
- key: 'setMaxVisible',
- value: function setMaxVisible() {
- var amount = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : API.DefaultMaxVisible;
- var queueName = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'global';
- if (!API.Queues.hasOwnProperty(queueName)) {
- API.Queues[queueName] = { maxVisible: amount, queue: [] };
- }
- API.Queues[queueName].maxVisible = amount;
- return this;
- }
- /**
- * @param {string} innerHtml
- * @param {String} classes
- * @param {Function} cb
- * @param {Object} attributes
- * @return {NotyButton}
- */
- }, {
- key: 'button',
- value: function button(innerHtml) {
- var classes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
- var cb = arguments[2];
- var attributes = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
- return new _button.NotyButton(innerHtml, classes, cb, attributes);
- }
- /**
- * @return {string}
- */
- }, {
- key: 'version',
- value: function version() {
- return "3.2.0-beta";
- }
- /**
- * @param {String} workerPath
- * @return {Push}
- */
- }, {
- key: 'Push',
- value: function Push(workerPath) {
- return new _push.Push(workerPath);
- }
- }, {
- key: 'Queues',
- get: function get() {
- return API.Queues;
- }
- /**
- * @return {API.PageHidden}
- */
- }, {
- key: 'PageHidden',
- get: function get() {
- return API.PageHidden;
- }
- }]);
- return Noty;
- }();
- // Document visibility change controller
- exports.default = Noty;
- if (typeof window !== 'undefined') {
- Utils.visibilityChangeFlow();
- }
- module.exports = exports['default'];
- /***/ }),
- /* 7 */
- /***/ (function(module, exports) {
- // shim for using process in browser
- var process = module.exports = {};
- // cached from whatever global is present so that test runners that stub it
- // don't break things. But we need to wrap it in a try catch in case it is
- // wrapped in strict mode code which doesn't define any globals. It's inside a
- // function because try/catches deoptimize in certain engines.
- var cachedSetTimeout;
- var cachedClearTimeout;
- function defaultSetTimout() {
- throw new Error('setTimeout has not been defined');
- }
- function defaultClearTimeout () {
- throw new Error('clearTimeout has not been defined');
- }
- (function () {
- try {
- if (typeof setTimeout === 'function') {
- cachedSetTimeout = setTimeout;
- } else {
- cachedSetTimeout = defaultSetTimout;
- }
- } catch (e) {
- cachedSetTimeout = defaultSetTimout;
- }
- try {
- if (typeof clearTimeout === 'function') {
- cachedClearTimeout = clearTimeout;
- } else {
- cachedClearTimeout = defaultClearTimeout;
- }
- } catch (e) {
- cachedClearTimeout = defaultClearTimeout;
- }
- } ())
- function runTimeout(fun) {
- if (cachedSetTimeout === setTimeout) {
- //normal enviroments in sane situations
- return setTimeout(fun, 0);
- }
- // if setTimeout wasn't available but was latter defined
- if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
- cachedSetTimeout = setTimeout;
- return setTimeout(fun, 0);
- }
- try {
- // when when somebody has screwed with setTimeout but no I.E. maddness
- return cachedSetTimeout(fun, 0);
- } catch(e){
- try {
- // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
- return cachedSetTimeout.call(null, fun, 0);
- } catch(e){
- // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error
- return cachedSetTimeout.call(this, fun, 0);
- }
- }
- }
- function runClearTimeout(marker) {
- if (cachedClearTimeout === clearTimeout) {
- //normal enviroments in sane situations
- return clearTimeout(marker);
- }
- // if clearTimeout wasn't available but was latter defined
- if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
- cachedClearTimeout = clearTimeout;
- return clearTimeout(marker);
- }
- try {
- // when when somebody has screwed with setTimeout but no I.E. maddness
- return cachedClearTimeout(marker);
- } catch (e){
- try {
- // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
- return cachedClearTimeout.call(null, marker);
- } catch (e){
- // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.
- // Some versions of I.E. have different rules for clearTimeout vs setTimeout
- return cachedClearTimeout.call(this, marker);
- }
- }
- }
- var queue = [];
- var draining = false;
- var currentQueue;
- var queueIndex = -1;
- function cleanUpNextTick() {
- if (!draining || !currentQueue) {
- return;
- }
- draining = false;
- if (currentQueue.length) {
- queue = currentQueue.concat(queue);
- } else {
- queueIndex = -1;
- }
- if (queue.length) {
- drainQueue();
- }
- }
- function drainQueue() {
- if (draining) {
- return;
- }
- var timeout = runTimeout(cleanUpNextTick);
- draining = true;
- var len = queue.length;
- while(len) {
- currentQueue = queue;
- queue = [];
- while (++queueIndex < len) {
- if (currentQueue) {
- currentQueue[queueIndex].run();
- }
- }
- queueIndex = -1;
- len = queue.length;
- }
- currentQueue = null;
- draining = false;
- runClearTimeout(timeout);
- }
- process.nextTick = function (fun) {
- var args = new Array(arguments.length - 1);
- if (arguments.length > 1) {
- for (var i = 1; i < arguments.length; i++) {
- args[i - 1] = arguments[i];
- }
- }
- queue.push(new Item(fun, args));
- if (queue.length === 1 && !draining) {
- runTimeout(drainQueue);
- }
- };
- // v8 likes predictible objects
- function Item(fun, array) {
- this.fun = fun;
- this.array = array;
- }
- Item.prototype.run = function () {
- this.fun.apply(null, this.array);
- };
- process.title = 'browser';
- process.browser = true;
- process.env = {};
- process.argv = [];
- process.version = ''; // empty string to avoid regexp issues
- process.versions = {};
- function noop() {}
- process.on = noop;
- process.addListener = noop;
- process.once = noop;
- process.off = noop;
- process.removeListener = noop;
- process.removeAllListeners = noop;
- process.emit = noop;
- process.prependListener = noop;
- process.prependOnceListener = noop;
- process.listeners = function (name) { return [] }
- process.binding = function (name) {
- throw new Error('process.binding is not supported');
- };
- process.cwd = function () { return '/' };
- process.chdir = function (dir) {
- throw new Error('process.chdir is not supported');
- };
- process.umask = function() { return 0; };
- /***/ }),
- /* 8 */
- /***/ (function(module, exports) {
- var g;
- // This works in non-strict mode
- g = (function() {
- return this;
- })();
- try {
- // This works if eval is allowed (see CSP)
- g = g || Function("return this")() || (1,eval)("this");
- } catch(e) {
- // This works if the window reference is available
- if(typeof window === "object")
- g = window;
- }
- // g can still be undefined, but nothing to do about it...
- // We return undefined, instead of nothing here, so it's
- // easier to handle this case. if(!global) { ...}
- module.exports = g;
- /***/ }),
- /* 9 */
- /***/ (function(module, exports) {
- /* (ignored) */
- /***/ })
- /******/ ]);
- });
- //# sourceMappingURL=noty.js.map
|