diff --git a/assets/bsToastService/bsToastService.js b/assets/bsToastService/bsToastService.js index c2ae429..ddf2629 100644 --- a/assets/bsToastService/bsToastService.js +++ b/assets/bsToastService/bsToastService.js @@ -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); diff --git a/assets/loggerService/loggerService.css b/assets/loggerService/loggerService.css index 6f5ccdc..9f96c5f 100644 --- a/assets/loggerService/loggerService.css +++ b/assets/loggerService/loggerService.css @@ -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); diff --git a/assets/menu/menu.js b/assets/menu/menu.js index 5ef48c6..2146f88 100644 --- a/assets/menu/menu.js +++ b/assets/menu/menu.js @@ -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(){ diff --git a/assets/support/support.js b/assets/support/support.js index 9fbf5bd..51b893a 100644 --- a/assets/support/support.js +++ b/assets/support/support.js @@ -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; diff --git a/templates/picture.php b/templates/picture.php index ef06abf..1007e4a 100644 --- a/templates/picture.php +++ b/templates/picture.php @@ -9,19 +9,19 @@ use \Wt\Core\Templater\Tools as TemplaterTools; foreach ((array)$arParams['SRCSET_LIST'] as $srcset) { $webp = new Webp($_SERVER['DOCUMENT_ROOT'] . $srcset['src']); if($webp->make()->isSuccess()) { - ?> media=""> media=""> - media=""> + media=""> make()->isSuccess()) { - ?> - src="" alt="" src="" alt="" title=""ShowHead(); 'LABEL' => 'kit-field--check-mark-material', ]); ?> +
multiple = true; + $inputFile->hint = 'Поле для ввода файлов'; + $inputFile->render(); + ?> +