Socket
Socket
Sign inDemoInstall

@github/details-menu-element

Package Overview
Dependencies
Maintainers
13
Versions
33
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@github/details-menu-element - npm Package Compare versions

Comparing version 0.2.0 to 0.3.0

57

dist/index.esm.js

@@ -50,2 +50,3 @@ var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();

details.addEventListener('toggle', closeCurrentMenu);
details.addEventListener('toggle', focusInput.bind(null, details));

@@ -66,2 +67,36 @@ }

function closeCurrentMenu(event) {
var el = event.currentTarget;
if (!(el instanceof Element)) return;
if (!el.hasAttribute('open')) return;
var _iteratorNormalCompletion = true;
var _didIteratorError = false;
var _iteratorError = undefined;
try {
for (var _iterator = document.querySelectorAll('details[open] > details-menu')[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
var menu = _step.value;
var opened = menu.closest('details');
if (opened && opened !== el && !opened.contains(el)) {
opened.removeAttribute('open');
}
}
} catch (err) {
_didIteratorError = true;
_iteratorError = err;
} finally {
try {
if (!_iteratorNormalCompletion && _iterator.return) {
_iterator.return();
}
} finally {
if (_didIteratorError) {
throw _iteratorError;
}
}
}
}
function focusInput(details) {

@@ -109,9 +144,9 @@ if (!details.open) return;

if (selected.getAttribute('role') === 'menuitemradio') {
var _iteratorNormalCompletion = true;
var _didIteratorError = false;
var _iteratorError = undefined;
var _iteratorNormalCompletion2 = true;
var _didIteratorError2 = false;
var _iteratorError2 = undefined;
try {
for (var _iterator = details.querySelectorAll('[role="menuitemradio"]')[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
var el = _step.value;
for (var _iterator2 = details.querySelectorAll('[role="menuitemradio"]')[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
var el = _step2.value;

@@ -121,12 +156,12 @@ el.setAttribute('aria-checked', 'false');

} catch (err) {
_didIteratorError = true;
_iteratorError = err;
_didIteratorError2 = true;
_iteratorError2 = err;
} finally {
try {
if (!_iteratorNormalCompletion && _iterator.return) {
_iterator.return();
if (!_iteratorNormalCompletion2 && _iterator2.return) {
_iterator2.return();
}
} finally {
if (_didIteratorError) {
throw _iteratorError;
if (_didIteratorError2) {
throw _iteratorError2;
}

@@ -133,0 +168,0 @@ }

@@ -109,2 +109,3 @@ (function (global, factory) {

details.addEventListener('toggle', closeCurrentMenu);
details.addEventListener('toggle', focusInput.bind(null, details));

@@ -125,2 +126,36 @@ }

function closeCurrentMenu(event) {
var el = event.currentTarget;
if (!(el instanceof Element)) return;
if (!el.hasAttribute('open')) return;
var _iteratorNormalCompletion = true;
var _didIteratorError = false;
var _iteratorError = undefined;
try {
for (var _iterator = document.querySelectorAll('details[open] > details-menu')[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
var menu = _step.value;
var opened = menu.closest('details');
if (opened && opened !== el && !opened.contains(el)) {
opened.removeAttribute('open');
}
}
} catch (err) {
_didIteratorError = true;
_iteratorError = err;
} finally {
try {
if (!_iteratorNormalCompletion && _iterator.return) {
_iterator.return();
}
} finally {
if (_didIteratorError) {
throw _iteratorError;
}
}
}
}
function focusInput(details) {

@@ -168,9 +203,9 @@ if (!details.open) return;

if (selected.getAttribute('role') === 'menuitemradio') {
var _iteratorNormalCompletion = true;
var _didIteratorError = false;
var _iteratorError = undefined;
var _iteratorNormalCompletion2 = true;
var _didIteratorError2 = false;
var _iteratorError2 = undefined;
try {
for (var _iterator = details.querySelectorAll('[role="menuitemradio"]')[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
var el = _step.value;
for (var _iterator2 = details.querySelectorAll('[role="menuitemradio"]')[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
var el = _step2.value;

@@ -180,12 +215,12 @@ el.setAttribute('aria-checked', 'false');

} catch (err) {
_didIteratorError = true;
_iteratorError = err;
_didIteratorError2 = true;
_iteratorError2 = err;
} finally {
try {
if (!_iteratorNormalCompletion && _iterator.return) {
_iterator.return();
if (!_iteratorNormalCompletion2 && _iterator2.return) {
_iterator2.return();
}
} finally {
if (_didIteratorError) {
throw _iteratorError;
if (_didIteratorError2) {
throw _iteratorError2;
}

@@ -192,0 +227,0 @@ }

6

package.json
{
"name": "@github/details-menu-element",
"version": "0.2.0",
"version": "0.3.0",
"description": "A menu opened with a <details> button.",

@@ -33,5 +33,5 @@ "main": "dist/index.umd.js",

"chai": "^4.1.2",
"eslint": "^5.0.1",
"eslint": "^5.1.0",
"eslint-plugin-github": "^1.1.3",
"flow-bin": "^0.75.0",
"flow-bin": "^0.76.0",
"karma": "^2.0.0",

@@ -38,0 +38,0 @@ "karma-chai": "^0.1.0",

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