This commit is contained in:
2021-11-29 21:18:18 +03:00
parent 7c096e52d3
commit 8be41809a5
6 changed files with 71 additions and 32 deletions
+46 -7
View File
@@ -90,7 +90,12 @@ __PluginManager__.register('support', function(module, exports, require, global)
function isElement(value) {
return value instanceof Element;
}
function isNodeList(value) {
return value instanceof NodeList;
}
function isDomObject(o) {
return isNode(o) || isElement(o) || isNodeList(o);
}
/**
* @param selector
* @return Element
@@ -99,7 +104,7 @@ __PluginManager__.register('support', function(module, exports, require, global)
if(isString(selector) && selector !== '') {
return document.querySelector(selector);
}
if(isNode(selector) || isElement(selector)) {
if(isNode(selector)) {
return selector;
}
return null;
@@ -123,18 +128,29 @@ __PluginManager__.register('support', function(module, exports, require, global)
return null!=c&&"undefined"!=typeof Symbol&&c[Symbol.hasInstance]?!!c[Symbol.hasInstance](o):o instanceof c
}
function makeNode(html = '') {
if(isNode(html)) {
return html;
}
var nodeWrap = document.createElement('div');
nodeWrap.innerHTML = html;
var r = nodeWrap.firstElementChild;
r.remove();
return r;
}
function setKit(node, key, value) {
function makeNodeList(html = '') {
if(isNodeList(html)) {
return html;
}
var nodeWrap = document.createElement('div');
nodeWrap.innerHTML = html;
return nodeWrap.childNodes;
}
function setNodeData(node, key, value) {
if(!isElement(node)) return false;
node.kit = node.kit || {};
node.kit[key] = value;
}
function getKit(node, key) {
function getNodeData(node, key) {
if(!isElement(node)) return null;
if(node.hasOwnProperty('kit') && node.kit.hasOwnProperty(key)) {
return node.kit[key];
@@ -155,6 +171,27 @@ __PluginManager__.register('support', function(module, exports, require, global)
}
return args;
}
function innerHtml(wrap, content) {
var wrapNode = getNode(wrap);
if(!isElement(wrapNode)) {
return false;
}
while (wrapNode.firstChild) {
wrapNode.removeChild(wrapNode.firstChild);
}
if(isNode(content)) {
wrapNode.append(content);
} else if(isNodeList(content)) {
content.forEach(function(node){
wrapNode.append(node);
});
} else {
wrapNode.innerHTML = content;
}
return true;
}
/**
* @memberOf kit
*/
@@ -177,11 +214,13 @@ __PluginManager__.register('support', function(module, exports, require, global)
extend,
isA,
makeNode,
setKit,
getKit,
setNodeData,
getNodeData,
toNumber,
definePropertyGet,
args2array
args2array,
innerHtml,
makeNodeList
};
return module.exports = support;