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
+1 -1
View File
@@ -58,7 +58,7 @@ kit.PluginManager.register('bsToastService', function(module, exports, require,
desc: desc,
date: new Date()
};
support.setKit(toastNode, 'toast', toast);
support.setNodeData(toastNode, 'toast', toast);
this.container.appendChild(toastNode);
toast.show();
this.onShow.eachCall(this, toast, toastNode);
+8
View File
@@ -64,6 +64,7 @@ logger-item__key {
padding-right: 5px;
white-space: nowrap;
color: var(--logger-color-key, #909090);
background-color: var(--logger-color-content-key, transparent);
}
logger-item__key:empty {
display: none;
@@ -75,6 +76,7 @@ logger-item__value {
flex: 1 0 0;
white-space: pre-wrap;
color: var(--logger-color-value, #c1c1c1);
background-color: var(--logger-color-content-value, transparent);
}
logger-item__value * {
font-size: inherit !important;
@@ -84,6 +86,12 @@ logger-item__value * {
}
.kit-logger-row--critical {
--logger-color-key: #fff;
--logger-color-content-key: var(--logger-color-error);
--logger-color-value: #fff;
--logger-color-content-value: var(--logger-color-error);
}
.kit-logger-row--error {
--logger-color-key: var(--logger-color-error);
--logger-color-value: var(--logger-color-error);
+5 -20
View File
@@ -438,8 +438,7 @@ __PluginManager__.register('menu',function(module, exports, require, global) {
this.node = document.createElement('a');
this.node.style.position = 'relative';
this.node.dataset.parentId = this.parentId;
this.node.kit = this.node.kit || {};
this.node.kit.menuItem = this;
support.setNodeData(this.node, 'menuItem', this);
};
/**
@@ -627,23 +626,12 @@ __PluginManager__.register('menu',function(module, exports, require, global) {
};
/**
* @param node HTMLElement
* @param selector HTMLElement | string
* @param content HTMLElement | string
* @param isText boolean
* @return boolean
*/
MenuItem.prototype.setContent = function(node, content, isText = false){
if(!(node instanceof Element)) {
return false;
}
while (node.firstChild) {
node.removeChild(node.firstChild);
}
if((content instanceof Element) || isText) {
node.append(content);
} else {
node.innerHTML = content;
}
MenuItem.prototype.setContent = function(selector, content){
support.innerHtml(selector, content);
return true;
};
@@ -655,10 +643,7 @@ __PluginManager__.register('menu',function(module, exports, require, global) {
if(typeof options === 'string') {
options = document.querySelector(options);
}
if((options instanceof HTMLElement) && options.kit && options.kit.menu) {
return options.kit.menu;
}
return new Menu(options, items);
return support.getNodeData(options, MENU_PLUGIN_NAME) || new Menu(options, items);
};
var getActiveMenuDataList = function(){
+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;