![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/cartforge.co/pub/static/frontend/Magento/luma/en_US/mage/backend/ |
/** * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ define([ 'jquery', 'jquery/ui', 'jquery/jstree/jquery.jstree', 'mage/backend/suggest' ], function ($) { 'use strict'; /* jscs:disable requireCamelCaseOrUpperCaseIdentifiers */ var hover_node, dehover_node, select_node, init; $.extend(true, $, { // @TODO: Move method 'treeToList' in file with utility functions mage: { /** * @param {Array} list * @param {Object} nodes * @param {*} level * @param {*} path * @return {*} */ treeToList: function (list, nodes, level, path) { $.each(nodes, function () { if (typeof this === 'object') { list.push({ label: this.label, id: this.id, level: level, item: this, path: path + this.label }); if (this.children) { $.mage.treeToList(list, this.children, level + 1, path + this.label + ' / '); } } }); return list; } } }); hover_node = $.jstree.core.prototype.hover_node; dehover_node = $.jstree.core.prototype.dehover_node; select_node = $.jstree.core.prototype.select_node; init = $.jstree.core.prototype.init; $.extend(true, $.jstree.core.prototype, { /** * @override */ init: function () { this.get_container() .show() .on('keydown', $.proxy(function (e) { var o; if (e.keyCode === $.ui.keyCode.ENTER) { o = this.data.ui.hovered || this.data.ui.last_selected || -1; this.select_node(o, true); } }, this)); init.call(this); }, /** * @override */ hover_node: function (obj) { hover_node.apply(this, arguments); obj = this._get_node(obj); if (!obj.length) { return false; } this.get_container().trigger('hover_node', [{ item: obj.find('a:first') }]); }, /** * @override */ dehover_node: function () { dehover_node.call(this); this.get_container().trigger('dehover_node'); }, /** * @override */ select_node: function (o) { var node; select_node.apply(this, arguments); node = this._get_node(o); (node ? $(node) : this.data.ui.last_selected) .trigger('select_tree_node'); } }); $.widget('mage.treeSuggest', $.mage.suggest, { widgetEventPrefix: 'suggest', options: { template: '<% if (data.items.length) { %>' + '<% if (data.allShown()) { %>' + '<% if (typeof data.nested === "undefined") { %>' + '<div style="display:none;" data-mage-init="{"jstree":{"plugins":["themes","html_data","ui","hotkeys"],"themes":{"theme":"default","dots":false,"icons":false}}}">' + //eslint-disable-line max-len '<% } %>' + '<ul>' + '<% _.each(data.items, function(value) { %>' + '<li class="<% if (data.itemSelected(value)) { %>mage-suggest-selected<% } %>' + ' <% if (value.is_active == 0) { %> mage-suggest-not-active<% } %>">' + '<a href="#" <%= data.optionData(value) %>><%- value.label %></a>' + '<% if (value.children && value.children.length) { %>' + '<%= data.renderTreeLevel(value.children) %>' + '<% } %>' + '</li>' + '<% }); %>' + '</ul>' + '<% if (typeof data.nested === "undefined") { %>' + '</div>' + '<% } %>' + '<% } else { %>' + '<ul data-mage-init="{"menu":[]}">' + '<% _.each(data.items, function(value) { %>' + '<% if (!data.itemSelected(value)) {%>' + '<li <%= data.optionData(value) %>>' + '<a href="#">' + '<span class="category-label"><%- value.label %></span>' + '<span class="category-path"><%- value.path %></span>' + '</a>' + '</li>' + '<% } %>' + '<% }); %>' + '</ul>' + '<% } %>' + '<% } else { %>' + '<span class="mage-suggest-no-records"><%- data.noRecordsText %></span>' + '<% } %>', controls: { selector: ':ui-menu, :mage-menu, .jstree', eventsMap: { focus: ['menufocus', 'hover_node'], blur: ['menublur', 'dehover_node'], select: ['menuselect', 'select_tree_node'] } } }, /** * @override */ _bind: function () { this._super(); this._on({ /** * @param {jQuery.Event} event */ keydown: function (event) { var keyCode = $.ui.keyCode; switch (event.keyCode) { case keyCode.LEFT: case keyCode.RIGHT: if (this.isDropdownShown()) { event.preventDefault(); this._proxyEvents(event); } break; } } }); }, /** * @override */ close: function (e) { var eType = e ? e.type : null; if (eType === 'select_tree_node') { this.element.focus(); } else { this._superApply(arguments); } }, /** * @override */ _filterSelected: function (items, context) { if (context._allShown) { return items; } return this._superApply(arguments); }, /** * @override */ _prepareDropdownContext: function () { var context = this._superApply(arguments), optionData = context.optionData, templates = this.templates, tmplName = this.templateName; /** * @param {Object} item * @return {*|String} */ context.optionData = function (item) { item = $.extend({}, item); delete item.children; return optionData(item); }; return $.extend(context, { /** * @param {*} children * @return {*|jQuery} */ renderTreeLevel: function (children) { var _context = $.extend({}, this, { items: children, nested: true }), tmpl = templates[tmplName]; tmpl = tmpl({ data: _context }); return $('<div>').append($(tmpl)).html(); } }); }, /** * @override */ _processResponse: function (e, items, context) { var control; if (context && !context._allShown) { items = this.filter($.mage.treeToList([], items, 0, ''), this._term); } control = this.dropdown.find(this._control.selector); if (control.length && control.hasClass('jstree')) { control.jstree('destroy'); } this._superApply([e, items, context]); } }); return $.mage.treeSuggest; });