Repository URL to install this package:
|
Version:
1.0.7 ▾
|
!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var f;"undefined"!=typeof window?f=window:"undefined"!=typeof global?f=global:"undefined"!=typeof self&&(f=self),f.domutil=e()}}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
if (typeof window.DOMTokenList === 'undefined') {
// Constants from jQuery
var rclass = /[\t\r\n]/g;
var core_rnotwhite = /\S+/g;
// from jQuery
exports.hasClass = function(ele, className) {
className = " " + className + " ";
return (" " + ele.className + " ").replace(rclass, " ").indexOf(className) >= 0;
}
exports.addClass = function(ele, value) {
var classes = (value || "").match(core_rnotwhite) || [],
cur = ele.className ? (" " + ele.className + " ").replace(rclass, " ") : " ";
if (cur) {
var j = 0, clazz;
while ((clazz = classes[j++])) {
if (cur.indexOf(" " + clazz + " ") < 0) {
cur += clazz + " ";
}
}
ele.className = cur.trim();
}
}
exports.removeClass = function(ele, value) {
var classes = (value || "").match(core_rnotwhite) || [],
cur = ele.className ? (" " + ele.className + " ").replace(rclass, " ") : " ";
if (cur) {
var j = 0, clazz;
while ((clazz = classes[j++])) {
while (cur.indexOf(" " + clazz + " ") >= 0) {
cur = cur.replace(" " + clazz + " ", " ");
}
ele.className = value ? cur.trim() : "";
}
}
}
exports.toggleClass = function(ele, value) {
var classes = (value || "").match(core_rnotwhite) || [],
cur = ele.className ? (" " + ele.className + " ").replace(rclass, " ") : " ";
if (cur) {
var j = 0, clazz;
while ((clazz = classes[j++])) {
var removeCount = 0;
while (cur.indexOf(" " + clazz + " ") >= 0) {
cur = cur.replace(" " + clazz + " ", " ");
removeCount++;
}
if (removeCount === 0) {
cur += clazz + " ";
}
ele.className = cur.trim();
}
}
}
} else {
exports.hasClass = function(el, className) {
return el.classList.contains(className);
}
exports.addClass = function(el, classes) {
if (classes.indexOf(' ') >= 0) {
classes.split(/\s+/).forEach(function(c) {
el.classList.add(c);
});
} else {
el.classList.add(classes);
}
}
exports.removeClass = function(el, classes) {
if (classes.indexOf(' ') >= 0) {
classes.split(/\s+/).forEach(function(c) {
el.classList.remove(c);
});
} else {
el.classList.remove(classes);
}
}
exports.toggleClass = function(el, classes) {
if (classes.indexOf(' ') >= 0) {
classes.split(/\s+/).forEach(function(c) {
el.classList.toggle(c);
});
} else {
el.classList.toggle(classes);
}
}
}
exports.removeMatchingClasses = function(el, regex) {
var out = '';
el.className.split(/\s+/).forEach(function(cn) {
if (!cn.match(regex)) {
if (out.length) {
out += ' ';
}
out += cn;
}
});
el.className = out;
}
},{}],2:[function(require,module,exports){
var matchesSelector = require('./matches_selector').matchesSelector;
var bind = null, unbind = null;
if (typeof window.addEventListener === 'function') {
bind = function(el, evtType, cb, useCapture) {
el.addEventListener(evtType, cb, useCapture || false);
return cb;
}
unbind = function(el, evtType, cb, useCapture) {
el.removeEventListener(evtType, cb, useCapture || false);
return cb;
}
} else if (typeof window.attachEvent === 'function') {
bind = function(el, evtType, cb, useCapture) {
function handler(evt) {
evt = evt || window.event;
if (!evt.preventDefault) {
evt.preventDefault = function() { evt.returnValue = false; }
}
if (!evt.stopPropagation) {
evt.stopPropagation = function() { evt.cancelBubble = true; }
}
cb.call(el, evt);
}
el.attachEvent('on' + evtType, handler);
return handler;
}
unbind = function(el, evtType, cb, useCapture) {
el.detachEvent('on' + evtType, cb);
return cb;
}
}
function delegate(el, evtType, selector, cb, useCapture) {
return bind(el, evtType, function(evt) {
var currTarget = evt.target;
while (currTarget && currTarget !== el) {
if (matchesSelector(selector, currTarget)) {
evt.delegateTarget = currTarget;
cb.call(el, evt);
break;
}
currTarget = currTarget.parentNode;
}
}, useCapture);
}
function bind_c(el, evtType, cb, useCapture) {
cb = bind(el, evtType, cb, useCapture);
var removed = false;
return function() {
if (removed) return;
removed = true;
unbind(el, evtType, cb, useCapture);
el = cb = null;
}
}
function delegate_c(el, evtType, selector, cb, useCapture) {
cb = delegate(el, evtType, selector, cb, useCapture);
var removed = false;
return function() {
if (removed) return;
removed = true;
unbind(el, evtType, cb, useCapture);
el = cb = null;
}
}
function stop(evt) {
evt.preventDefault();
evt.stopPropagation();
}
exports.bind = bind;
exports.unbind = unbind;
exports.delegate = delegate;
exports.bind_c = bind_c;
exports.delegate_c = delegate_c;
exports.stop = stop;
},{"./matches_selector":4}],3:[function(require,module,exports){
exports.setRect = function(el, x, y, width, height) {
el.style.left = x + 'px';
el.style.top = y + 'px';
el.style.width = width + 'px';
el.style.height = height + 'px';
}
exports.setPosition = function(el, x, y) {
el.style.left = x + 'px';
el.style.top = y + 'px';
}
exports.setSize = function(el, width, height) {
el.style.width = width + 'px';
el.style.height = height + 'px';
}
exports.isHidden = function(el) {
return el.offsetWidth <= 0 || el.offsetHeight <= 0;
}
exports.isVisible = function(el) {
return !(el.offsetWidth <= 0 || el.offsetHeight <= 0);
}
},{}],4:[function(require,module,exports){
var proto = window.Element.prototype;
var nativeMatch = proto.webkitMatchesSelector
|| proto.mozMatchesSelector
|| proto.msMatchesSelector
|| proto.oMatchesSelector;
if (nativeMatch) {
exports.matchesSelector = function(selector, el) {
return nativeMatch.call(el, selector);
}
} else {
console.warn("Warning: using slow matchesSelector()");
var indexOf = Array.prototype.indexOf;
exports.matchesSelector = function(selector, el) {
return indexOf.call(document.querySelectorAll(selector), el) >= 0;
}
}
},{}],5:[function(require,module,exports){
exports.append = append;
function append(el, content) {
if (Array.isArray(content)) {
for (var i = 0, l = content.length; i < l; ++i) {
append(el, content[i]);
}
} else if (typeof content === 'string') {
if (content.charAt(0) === '<') {
el.innerHTML += content;
} else {
el.appendChild(document.createTextNode(content));
}
} else {
el.appendChild(content);
}
}
exports.clear = clear;
function clear(el) {
el.innerHTML = '';
}
exports.isElement = function(el) {
return el && el.nodeType === 1;
}
exports.replace = function(oldEl, newEl) {
oldEl.parentNode.replaceChild(newEl, oldEl);
}
exports.content = function(el, content) {
if (typeof content === 'string') {
el.innerHTML = content;
} else{
clear(el);
append(el, content);
}
}
},{}],6:[function(require,module,exports){
function v(val) {
if (typeof val === 'number') {
return val + 'px';
} else {
return val;
}
}
exports.style = function(el, attribute, value) {
if (typeof attribute === 'string') {
el.style[attribute] = v(value);
} else {
for (var k in attribute) {
el.style[k] = v(attribute[k]);
}
}
}
exports.removeStyle = function(el, attribute) {
el.style[attribute] = '';
}
},{}],7:[function(require,module,exports){
if ('textContent' in document.createElement('span')) {
exports.getText = function(el) {
return el.textContent;
}
exports.text = function(el, text) {
el.textContent = text;
}
} else {
exports.getText = function(el) {
return el.innerText;
}
exports.text = function(el, text) {
el.innerText = text;
}
}
},{}],8:[function(require,module,exports){
// http://stackoverflow.com/questions/1248081/get-the-browser-viewport-dimensions-with-javascript
exports.viewportSize = function() {
return {
width: Math.max(document.documentElement.clientWidth, window.innerWidth || 0),
height: Math.max(document.documentElement.clientHeight, window.innerHeight || 0)
};
}
},{}],9:[function(require,module,exports){
var du = module.exports = {};
extend(require('./impl/classes'));
extend(require('./impl/events'));
extend(require('./impl/layout'));
extend(require('./impl/matches_selector'));
extend(require('./impl/node'));
extend(require('./impl/style'));
extend(require('./impl/text'));
extend(require('./impl/viewport'));
function extend(things) {
for (var k in things) {
du[k] = things[k];
}
}
},{"./impl/classes":1,"./impl/events":2,"./impl/layout":3,"./impl/matches_selector":4,"./impl/node":5,"./impl/style":6,"./impl/text":7,"./impl/viewport":8}]},{},[9])(9)
});