dxpr_theme-5.0.1/js/dist/multilevel-mobile-nav/add-breadcrumb.js

js/dist/multilevel-mobile-nav/add-breadcrumb.js
/**
 * Module for adding breadcrumbs in MLMenu.
 */

/**
 * Adds a breadcrumb for the given menu index.
 * @param {Object} context - MLMenu instance.
 * @param {number} idx - Index of the menu.
 */
function addBreadcrumb(context, idx) {
  if (!context.options.breadcrumbsCtrl) {
    return false;
  }

  const bc = document.createElement("a");
  bc.innerHTML = idx
    ? context.menusArr[idx].name
    : context.options.initialBreadcrumb;
  context.breadcrumbsCtrl.appendChild(bc);

  bc.addEventListener("click", (ev) => {
    ev.preventDefault();

    // Do nothing if this breadcrumb is the last one in the list of breadcrumbs
    if (!bc.nextSibling || context.isAnimating) {
      return false;
    }
    context.isAnimating = true;

    // Current menu slides out
    context._menuOut();
    // Next menu slides in
    const nextMenu = context.menusArr[idx].menuEl;
    context._menuIn(nextMenu);

    // Remove breadcrumbs that are ahead
    let siblingNode = bc.nextSibling;
    while (siblingNode) {
      context.breadcrumbsCtrl.removeChild(siblingNode);
      siblingNode = bc.nextSibling;
    }

    context.isAnimating = false; // Reset animating flag
  });
}

module.exports = { addBreadcrumb };

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc