details.js 540 Bytes
"use strict";
const { firstChildWithLocalName } = require("./traversal");
const { HTML_NS } = require("./namespaces");

// https://html.spec.whatwg.org/multipage/interactive-elements.html#summary-for-its-parent-details
exports.isSummaryForParentDetails = summaryElement => {
  const parent = summaryElement.parentNode;
  if (parent === null) {
    return false;
  }
  if (parent._localName !== "details" || parent._namespaceURI !== HTML_NS) {
    return false;
  }
  return firstChildWithLocalName(parent, "summary") === summaryElement;
};