%PDF- %PDF-
Direktori : /var/www/html/higroup/wp-content/plugins/user-registration/assets/js/ur-snackbar/ |
Current File : /var/www/html/higroup/wp-content/plugins/user-registration/assets/js/ur-snackbar/ur-snackbar.js |
/*! * JavaScript Library v1.0.0 * Name: Snackbar * Author: WPEverest * Versoin: 1.0.0 */ var UR_Snackbar = function () { this.offsetY = 30; this.diffY = 15; this.body = document.getElementsByTagName("body")[0]; this.list = {}; }; /** * Add/Create a new snackbar. Following are the options currently supported. * - type: success, failure * - message: Message to display. * - duration: How long the snackbar should stay. Unit is seconds. */ UR_Snackbar.prototype.add = function (options) { var instance = this; var ID = "x" + new Date().getTime().toString(); var container = document.createElement("div"); var icon = document.createElement("span"); var label = document.createElement("label"); var bottom = this.offsetY + this.diffY * Object.keys(this.list).length; if ("object" !== typeof options) { options = {}; } // Prepare configurations. var stay_seconds = options.duration ? parseFloat(options.duration) : 1; var message = options.message ? options.message : ""; var type = options.type ? options.type : "success"; // Create text node for snackbar label. var text = document.createTextNode(message); // Calculate and assign position of the snackbar in Y axis from bottom. Object.values(this.list).forEach(function (snackbar) { if (snackbar.container) { bottom += snackbar.container.clientHeight; } }); container.style.bottom = bottom + "px"; // Some assignments. container.id = ID; container.classList.add("snackbar"); container.classList.add(type); icon.classList.add("icon"); // Initially hide the snackbar by changing position. container.style.right = "-600px"; // Add custom container class. if (options.containerClass) { container.classList.add(options.containerClass); } // Assemble snackbar. container.appendChild(icon); label.appendChild(text); container.appendChild(label); // Add the snackbar to the 'body' tag. this.body.appendChild(container); // Change position to make it visible. setTimeout(function () { container.style.right = "6px"; }, 50); // Set timer to remove the snackbar after the given duration. setTimeout(function () { container.style.right = "-600px"; setTimeout(function () { container.remove(); instance.removeListItem(ID); }, 500); }, stay_seconds * 1000); // Add this snackbar to the list. this.list[ID] = { ID: ID, container: container, icon: icon, text: text, label: label, options: options, }; }; /** * Remove a snackbar from the list. */ UR_Snackbar.prototype.removeListItem = function (ID) { if (this.list[ID]) { delete this.list[ID]; } };