Socket
Socket
Sign inDemoInstall

mmenu-js

Package Overview
Dependencies
Maintainers
1
Versions
65
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

mmenu-js - npm Package Compare versions

Comparing version 8.5.14 to 8.5.15

321

dist/core/oncanvas/mmenu.oncanvas.js

@@ -8,13 +8,5 @@ import * as pack from '../../../package.json';

import * as media from '../../_modules/matchmedia';
import {
type,
extend,
transitionend,
uniqueId,
valueOrFn,
} from '../../_modules/helpers';
import { type, extend, transitionend, uniqueId, valueOrFn, } from '../../_modules/helpers';
// Add the translations.
translate();
/**

@@ -34,3 +26,2 @@ * Class for a mobile menu.

this.conf = extend(configs, Mmenu.configs);
// Methods to expose in the API.

@@ -46,3 +37,2 @@ this._api = [

];
// Storage objects for nodes, variables, hooks and click handlers.

@@ -53,3 +43,2 @@ this.node = {};

this.clck = [];
// Get menu node from string or element.

@@ -99,5 +88,3 @@ this.node.menu =

// Open current and all vertical parent panels.
DOM.parents(panel, '.mm-listitem_vertical').forEach(function (
listitem
) {
DOM.parents(panel, '.mm-listitem_vertical').forEach(function (listitem) {
listitem.classList.add('mm-listitem_opened');

@@ -109,7 +96,3 @@ DOM.children(listitem, '.mm-panel').forEach(function (panel) {

// Open first non-vertical parent panel.
var parents = DOM.parents(panel, '.mm-panel').filter(function (
panel
) {
return !panel.parentElement.matches('.mm-listitem_vertical');
});
var parents = DOM.parents(panel, '.mm-panel').filter(function (panel) { return !panel.parentElement.matches('.mm-listitem_vertical'); });
this.trigger('openPanel:start', [panel]);

@@ -121,16 +104,14 @@ if (parents.length) {

// Open a "horizontal" panel.
} else {
}
else {
if (panel.matches('.mm-panel_opened')) {
return;
}
var panels = DOM.children(this.node.pnls, '.mm-panel'),
current_1 = DOM.children(this.node.pnls, '.mm-panel_opened')[0];
var panels = DOM.children(this.node.pnls, '.mm-panel'), current_1 = DOM.children(this.node.pnls, '.mm-panel_opened')[0];
// Close all child panels.
panels
.filter(function (parent) {
return parent !== panel;
})
.filter(function (parent) { return parent !== panel; })
.forEach(function (parent) {
parent.classList.remove('mm-panel_opened-parent');
});
parent.classList.remove('mm-panel_opened-parent');
});
// Open all parent panels.

@@ -141,5 +122,3 @@ var parent_1 = panel['mmParent'];

if (parent_1) {
if (
!parent_1.parentElement.matches('.mm-listitem_vertical')
) {
if (!parent_1.parentElement.matches('.mm-listitem_vertical')) {
parent_1.classList.add('mm-panel_opened-parent');

@@ -155,11 +134,7 @@ }

panels
.filter(function (hidden) {
return hidden !== current_1;
})
.filter(function (hidden) {
return hidden !== panel;
})
.filter(function (hidden) { return hidden !== current_1; })
.filter(function (hidden) { return hidden !== panel; })
.forEach(function (hidden) {
hidden.classList.add('mm-hidden');
});
hidden.classList.add('mm-hidden');
});
panel.classList.remove('mm-hidden');

@@ -177,3 +152,4 @@ /** Start opening the panel. */

panel.classList.remove('mm-panel_opened-parent');
} else {
}
else {
if (current_1) {

@@ -201,12 +177,9 @@ current_1.classList.add('mm-panel_opened-parent');

// Callback
transitionend(
panel,
function () {
openPanelFinish_1();
},
_this.conf.transitionDuration
);
transitionend(panel, function () {
openPanelFinish_1();
}, _this.conf.transitionDuration);
openPanelStart_1();
}, this.conf.openingInterval);
} else {
}
else {
openPanelStart_1();

@@ -251,4 +224,3 @@ openPanelFinish_1();

// Close all "horizontal" panels.
var panels = DOM.children(this.node.pnls, '.mm-panel'),
opened = panel ? panel : panels[0];
var panels = DOM.children(this.node.pnls, '.mm-panel'), opened = panel ? panel : panels[0];
DOM.children(this.node.pnls, '.mm-panel').forEach(function (panel) {

@@ -275,7 +247,5 @@ if (panel !== opened) {

if (listitem.matches('.mm-listitem_vertical')) {
this[
listitem.matches('.mm-listitem_opened')
? 'closePanel'
: 'openPanel'
](panel);
this[listitem.matches('.mm-listitem_opened')
? 'closePanel'
: 'openPanel'](panel);
}

@@ -291,5 +261,3 @@ };

// First, remove the selected class from all listitems.
DOM.find(this.node.menu, '.mm-listitem_selected').forEach(function (
li
) {
DOM.find(this.node.menu, '.mm-listitem_selected').forEach(function (li) {
li.classList.remove('mm-listitem_selected');

@@ -393,27 +361,19 @@ });

Object.keys(this.opts.extensions).forEach(function (query) {
var classnames = _this.opts.extensions[query].map(function (
extension
) {
return 'mm-menu_' + extension;
});
var classnames = _this.opts.extensions[query].map(function (extension) { return 'mm-menu_' + extension; });
if (classnames.length) {
media.add(
query,
function () {
// IE11:
classnames.forEach(function (classname) {
_this.node.menu.classList.add(classname);
});
// Better browsers:
// this.node.menu.classList.add(...classnames);
},
function () {
// IE11:
classnames.forEach(function (classname) {
_this.node.menu.classList.remove(classname);
});
// Better browsers:
// this.node.menu.classList.remove(...classnames);
}
);
media.add(query, function () {
// IE11:
classnames.forEach(function (classname) {
_this.node.menu.classList.add(classname);
});
// Better browsers:
// this.node.menu.classList.add(...classnames);
}, function () {
// IE11:
classnames.forEach(function (classname) {
_this.node.menu.classList.remove(classname);
});
// Better browsers:
// this.node.menu.classList.remove(...classnames);
});
}

@@ -439,6 +399,4 @@ });

DOM.children(this.node.menu).forEach(function (panel) {
if (
_this.conf.panelNodetype.indexOf(panel.nodeName.toLowerCase()) >
-1
) {
if (_this.conf.panelNodetype.indexOf(panel.nodeName.toLowerCase()) >
-1) {
panels.append(panel);

@@ -469,9 +427,6 @@ }

if (panel && panel.matches('.mm-panel')) {
if (
anchor.parentElement.matches(
'.mm-listitem_vertical'
)
) {
if (anchor.parentElement.matches('.mm-listitem_vertical')) {
_this.togglePanel(panel);
} else {
}
else {
_this.openPanel(panel);

@@ -481,3 +436,4 @@ }

}
} catch (err) {}
}
catch (err) { }
}

@@ -511,17 +467,7 @@ }

// Find panel > panel
children_1.push.apply(
children_1,
DOM.children(panel, '.' + this.conf.classNames.panel)
);
children_1.push.apply(children_1, DOM.children(panel, '.' + this.conf.classNames.panel));
// Find panel listitem > panel
DOM.children(panel, '.mm-listview').forEach(function (
listview
) {
DOM.children(listview, '.mm-listitem').forEach(function (
listitem
) {
children_1.push.apply(
children_1,
DOM.children(listitem, panelNodetype)
);
DOM.children(panel, '.mm-listview').forEach(function (listview) {
DOM.children(listview, '.mm-listitem').forEach(function (listitem) {
children_1.push.apply(children_1, DOM.children(listitem, panelNodetype));
});

@@ -559,4 +505,3 @@ });

// Vertical panel.
var vertical =
panel.matches('.' + this.conf.classNames.vertical) ||
var vertical = panel.matches('.' + this.conf.classNames.vertical) ||
!this.opts.slidingSubmenus;

@@ -585,3 +530,4 @@ panel.classList.remove(this.conf.classNames.vertical);

}
} else {
}
else {
this.node.pnls.append(panel);

@@ -600,5 +546,3 @@ }

/** The open link. */
var button = DOM.create(
'a.mm-btn.mm-btn_next.mm-listitem__btn'
);
var button = DOM.create('a.mm-btn.mm-btn_next.mm-listitem__btn');
button.setAttribute('href', '#' + panel.id);

@@ -610,6 +554,3 @@ // If the item has no link,

button.innerHTML = item.innerHTML;
parent.insertBefore(
button,
item.nextElementSibling
);
parent.insertBefore(button, item.nextElementSibling);
item.remove();

@@ -619,6 +560,3 @@ }

else {
parent.insertBefore(
button,
DOM.children(parent, '.mm-panel')[0]
);
parent.insertBefore(button, DOM.children(parent, '.mm-panel')[0]);
}

@@ -654,6 +592,3 @@ }

if (panel.getAttribute('data-mm-parent')) {
parentPanel = DOM.find(
this.node.pnls,
panel.getAttribute('data-mm-parent')
)[0];
parentPanel = DOM.find(this.node.pnls, panel.getAttribute('data-mm-parent'))[0];
}

@@ -708,5 +643,5 @@ // if (panel.dataset.mmParent) { // IE10 has no dataset

panel.getAttribute('data-mm-title') ||
(opener ? opener.textContent : '') ||
this.i18n(this.opts.navbar.title) ||
this.i18n('Menu');
(opener ? opener.textContent : '') ||
this.i18n(this.opts.navbar.title) ||
this.i18n('Menu');
switch (this.opts.navbar.titleLink) {

@@ -742,7 +677,3 @@ case 'anchor':

listitem.classList.add('mm-listitem');
DOM.reClass(
listitem,
_this.conf.classNames.selected,
'mm-listitem_selected'
);
DOM.reClass(listitem, _this.conf.classNames.selected, 'mm-listitem_selected');
DOM.children(listitem, 'a, span').forEach(function (item) {

@@ -765,5 +696,3 @@ if (!item.matches('.mm-btn')) {

/** The selected listitem(s). */
var listitems = this.node.pnls.querySelectorAll(
'.mm-listitem_selected'
);
var listitems = this.node.pnls.querySelectorAll('.mm-listitem_selected');
/** The last selected listitem. */

@@ -796,78 +725,52 @@ var lastitem = null;

this.trigger('initAnchors:before');
document.addEventListener(
'click',
function (evnt) {
/** The clicked element. */
var target = evnt.target.closest('a[href]');
if (!target) {
return;
}
/** Arguments passed to the bound methods. */
var args = {
inMenu: target.closest('.mm-menu') === _this.node.menu,
inListview: target.matches('.mm-listitem > a'),
toExternal:
target.matches('[rel="external"]') ||
target.matches('[target="_blank"]'),
};
var onClick = {
close: null,
setSelected: null,
preventDefault:
target.getAttribute('href').slice(0, 1) == '#',
};
// Find hooked behavior.
for (var c = 0; c < _this.clck.length; c++) {
var click = _this.clck[c].call(_this, target, args);
if (click) {
if (typeof click == 'boolean') {
evnt.preventDefault();
return;
}
if (type(click) == 'object') {
onClick = extend(click, onClick);
}
}
}
// Default behavior for anchors in lists.
if (args.inMenu && args.inListview && !args.toExternal) {
// Set selected item, Default: true
if (
valueOrFn(
target,
_this.opts.onClick.setSelected,
onClick.setSelected
)
) {
_this.setSelected(target.parentElement);
}
// Prevent default / don't follow link. Default: false.
if (
valueOrFn(
target,
_this.opts.onClick.preventDefault,
onClick.preventDefault
)
) {
document.addEventListener('click', function (evnt) {
/** The clicked element. */
var target = evnt.target.closest('a[href]');
if (!target) {
return;
}
/** Arguments passed to the bound methods. */
var args = {
inMenu: target.closest('.mm-menu') === _this.node.menu,
inListview: target.matches('.mm-listitem > a'),
toExternal: target.matches('[rel="external"]') ||
target.matches('[target="_blank"]'),
};
var onClick = {
close: null,
setSelected: null,
preventDefault: target.getAttribute('href').slice(0, 1) == '#',
};
// Find hooked behavior.
for (var c = 0; c < _this.clck.length; c++) {
var click = _this.clck[c].call(_this, target, args);
if (click) {
if (typeof click == 'boolean') {
evnt.preventDefault();
return;
}
// Close menu. Default: false
if (
valueOrFn(
target,
_this.opts.onClick.close,
onClick.close
)
) {
if (
_this.opts.offCanvas &&
typeof _this.close == 'function'
) {
_this.close();
}
if (type(click) == 'object') {
onClick = extend(click, onClick);
}
}
},
true
);
}
// Default behavior for anchors in lists.
if (args.inMenu && args.inListview && !args.toExternal) {
// Set selected item, Default: true
if (valueOrFn(target, _this.opts.onClick.setSelected, onClick.setSelected)) {
_this.setSelected(target.parentElement);
}
// Prevent default / don't follow link. Default: false.
if (valueOrFn(target, _this.opts.onClick.preventDefault, onClick.preventDefault)) {
evnt.preventDefault();
}
// Close menu. Default: false
if (valueOrFn(target, _this.opts.onClick.close, onClick.close)) {
if (_this.opts.offCanvas &&
typeof _this.close == 'function') {
_this.close();
}
}
}
}, true);
// Invoke "after" hook.

@@ -899,3 +802,3 @@ this.trigger('initAnchors:after');

return Mmenu;
})();
}());
export default Mmenu;

@@ -24,7 +24,7 @@ import * as DOM from '../../_modules/dom';

action: child.getAttribute('action') || null,
method: child.getAttribute('method') || null
method: child.getAttribute('method') || null,
};
_this.conf.searchfield.input = {
name: child.querySelector('input').getAttribute('name') ||
null
null,
};

@@ -69,3 +69,3 @@ _this.conf.searchfield.clear = false;

for (var a = 0; a < attr.length; a++) {
if (typeof anchor.getAttribute(attr[a]) != 'undefined') {
if (anchor.getAttribute(attr[a])) {
link.setAttribute(attr[a], anchor.getAttribute(attr[a]));

@@ -72,0 +72,0 @@ }

{
"name": "mmenu-js",
"version": "8.5.14",
"version": "8.5.15",
"main": "dist/mmenu.js",

@@ -5,0 +5,0 @@ "module": "src/mmenu.js",

import Mmenu from '../../core/oncanvas/mmenu.oncanvas';
import * as DOM from '../../_modules/dom';
export default function(this: Mmenu) {
export default function (this: Mmenu) {
// Create the menu

@@ -18,3 +18,3 @@ if (this.node.menu.matches('.navbar-collapse')) {

DOM.children(this.node.menu).forEach(child => {
DOM.children(this.node.menu).forEach((child) => {
switch (true) {

@@ -32,3 +32,3 @@ case child.matches('.navbar-nav'):

action: child.getAttribute('action') || null,
method: child.getAttribute('method') || null
method: child.getAttribute('method') || null,
};

@@ -38,3 +38,3 @@ this.conf.searchfield.input = {

child.querySelector('input').getAttribute('name') ||
null
null,
};

@@ -72,3 +72,3 @@ this.conf.searchfield.clear = false;

// Open the menu on-click.
toggler.addEventListener('click', evnt => {
toggler.addEventListener('click', (evnt) => {
evnt.preventDefault();

@@ -88,3 +88,3 @@ evnt.stopImmediatePropagation();

for (var a = 0; a < attr.length; a++) {
if (typeof anchor.getAttribute(attr[a]) != 'undefined') {
if (anchor.getAttribute(attr[a])) {
link.setAttribute(attr[a], anchor.getAttribute(attr[a]));

@@ -98,3 +98,3 @@ }

// Remove Screen reader text.
DOM.find(link, '.sr-only').forEach(sro => {
DOM.find(link, '.sr-only').forEach((sro) => {
sro.remove();

@@ -107,3 +107,3 @@ });

var list = DOM.create('ul');
DOM.children(dropdown).forEach(anchor => {
DOM.children(dropdown).forEach((anchor) => {
var item = DOM.create('li');

@@ -123,3 +123,3 @@

DOM.find(nav, '.nav-item').forEach(anchor => {
DOM.find(nav, '.nav-item').forEach((anchor) => {
var item = DOM.create('li');

@@ -126,0 +126,0 @@

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc