| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 |
- var config = require('../config')
- /**
- * Check if a node is in the document.
- *
- * @param {Node} node
- * @return {Boolean}
- */
- var doc =
- typeof document !== 'undefined' &&
- document.documentElement
- exports.inDoc = function (node) {
- return doc && doc.contains(node)
- }
- /**
- * Extract an attribute from a node.
- *
- * @param {Node} node
- * @param {String} attr
- */
- exports.attr = function (node, attr) {
- attr = config.prefix + attr
- var val = node.getAttribute(attr)
- if (val !== null) {
- node.removeAttribute(attr)
- }
- return val
- }
- /**
- * Insert el before target
- *
- * @param {Element} el
- * @param {Element} target
- */
- exports.before = function (el, target) {
- target.parentNode.insertBefore(el, target)
- }
- /**
- * Insert el after target
- *
- * @param {Element} el
- * @param {Element} target
- */
- exports.after = function (el, target) {
- if (target.nextSibling) {
- exports.before(el, target.nextSibling)
- } else {
- target.parentNode.appendChild(el)
- }
- }
- /**
- * Remove el from DOM
- *
- * @param {Element} el
- */
- exports.remove = function (el) {
- el.parentNode.removeChild(el)
- }
- /**
- * Prepend el to target
- *
- * @param {Element} el
- * @param {Element} target
- */
- exports.prepend = function (el, target) {
- if (target.firstChild) {
- exports.before(el, target.firstChild)
- } else {
- target.appendChild(el)
- }
- }
- /**
- * Replace target with el
- *
- * @param {Element} target
- * @param {Element} el
- */
- exports.replace = function (target, el) {
- var parent = target.parentNode
- parent.insertBefore(el, target)
- parent.removeChild(target)
- }
- /**
- * Copy attributes from one element to another.
- *
- * @param {Element} from
- * @param {Element} to
- */
- exports.copyAttributes = function (from, to) {
- if (from.hasAttributes()) {
- var attrs = from.attributes
- for (var i = 0, l = attrs.length; i < l; i++) {
- var attr = attrs[i]
- to.setAttribute(attr.name, attr.value)
- }
- }
- }
- /**
- * Add event listener shorthand.
- *
- * @param {Element} el
- * @param {String} event
- * @param {Function} cb
- */
- exports.on = function (el, event, cb) {
- el.addEventListener(event, cb)
- }
- /**
- * Remove event listener shorthand.
- *
- * @param {Element} el
- * @param {String} event
- * @param {Function} cb
- */
- exports.off = function (el, event, cb) {
- el.removeEventListener(event, cb)
- }
|