%PDF- %PDF-
Direktori : /home/emergentqj/actioncivile/pre-auth/.f81b4c9eb38fd76cdf20462cf2027aa3/static/node_modules/react-modal/lib/helpers/ |
Current File : /home/emergentqj/actioncivile/pre-auth/.f81b4c9eb38fd76cdf20462cf2027aa3/static/node_modules/react-modal/lib/helpers/classList.js |
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.resetState = resetState; exports.log = log; var htmlClassList = {}; var docBodyClassList = {}; /* eslint-disable no-console */ /* istanbul ignore next */ function removeClass(at, cls) { at.classList.remove(cls); } /* istanbul ignore next */ function resetState() { var htmlElement = document.getElementsByTagName("html")[0]; for (var cls in htmlClassList) { removeClass(htmlElement, htmlClassList[cls]); } var body = document.body; for (var _cls in docBodyClassList) { removeClass(body, docBodyClassList[_cls]); } htmlClassList = {}; docBodyClassList = {}; } /* istanbul ignore next */ function log() { if (process.env.NODE_ENV !== "production") { var classes = document.getElementsByTagName("html")[0].className; var buffer = "Show tracked classes:\n\n"; buffer += "<html /> (" + classes + "):\n "; for (var x in htmlClassList) { buffer += " " + x + " " + htmlClassList[x] + "\n "; } classes = document.body.className; buffer += "\n\ndoc.body (" + classes + "):\n "; for (var _x in docBodyClassList) { buffer += " " + _x + " " + docBodyClassList[_x] + "\n "; } buffer += "\n"; console.log(buffer); } } /* eslint-enable no-console */ /** * Track the number of reference of a class. * @param {object} poll The poll to receive the reference. * @param {string} className The class name. * @return {string} */ var incrementReference = function incrementReference(poll, className) { if (!poll[className]) { poll[className] = 0; } poll[className] += 1; return className; }; /** * Drop the reference of a class. * @param {object} poll The poll to receive the reference. * @param {string} className The class name. * @return {string} */ var decrementReference = function decrementReference(poll, className) { if (poll[className]) { poll[className] -= 1; } return className; }; /** * Track a class and add to the given class list. * @param {Object} classListRef A class list of an element. * @param {Object} poll The poll to be used. * @param {Array} classes The list of classes to be tracked. */ var trackClass = function trackClass(classListRef, poll, classes) { classes.forEach(function (className) { incrementReference(poll, className); classListRef.add(className); }); }; /** * Untrack a class and remove from the given class list if the reference * reaches 0. * @param {Object} classListRef A class list of an element. * @param {Object} poll The poll to be used. * @param {Array} classes The list of classes to be untracked. */ var untrackClass = function untrackClass(classListRef, poll, classes) { classes.forEach(function (className) { decrementReference(poll, className); poll[className] === 0 && classListRef.remove(className); }); }; /** * Public inferface to add classes to the document.body. * @param {string} bodyClass The class string to be added. * It may contain more then one class * with ' ' as separator. */ var add = exports.add = function add(element, classString) { return trackClass(element.classList, element.nodeName.toLowerCase() == "html" ? htmlClassList : docBodyClassList, classString.split(" ")); }; /** * Public inferface to remove classes from the document.body. * @param {string} bodyClass The class string to be added. * It may contain more then one class * with ' ' as separator. */ var remove = exports.remove = function remove(element, classString) { return untrackClass(element.classList, element.nodeName.toLowerCase() == "html" ? htmlClassList : docBodyClassList, classString.split(" ")); };