in web_tool/js/noty.js [2316:2851]
/***/ (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);
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.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.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.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 {Object} obj
* @return {Noty}
*/
}, {
key: 'overrideDefaults',
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.1.4";
}
/**
* @param {String} workerPath
* @return {Push}
*/
}, {
key: 'Push',
value: function Push(workerPath) {
return new _push.Push(workerPath);
}
}]);
return Noty;
}();
// Document visibility change controller
exports.default = Noty;
Utils.visibilityChangeFlow();
module.exports = exports['default'];
/***/ }),