/**
/**
* @namespace
*/
var elements = {};
// trick jsdoc
var Element = require('./element.js');
//var ElementsArray = require('./elements_array.js');
elements = function(element) {
return element.$elt || new Element(element);
};
module.exports = elements;
/**
* Create an element wrapper (or return the existing one)
*
* @method
* @param {HTMLElement} element
* @return {Element}
*/
elements.wrap = elements;
var _regexpSingleTag = /^<(\w+)\s*\/?>(?:<\/\1>|)$/;
/**
* Parse a html string
*
* @param {String} string
* @param {Document} context
* @return {HTMLElement} html fragment
*/
elements.parse = function(string, context) {
context = context || document;
var parsed = _regexpSingleTag.exec(string);
if (parsed) {
return context.createElement(parsed[1]);
}
var node, fragment = context.createDocumentFragment();
var tmp = fragment.appendChild( context.createElement("div") );
tmp.innerHTML = string;
while (node = tmp.firstChild) {
fragment.appendChild(node);
}
fragment.removeChild(tmp);
return fragment;
};
require('./elements/dom.js');
require('./elements/dom_manipulation.js');
require('./elements/dom_visibility.js');