in Damage Assessment Visualizer/js/noty.js [408:848]
/***/ (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);
}
/***/ }),