?ClientRect} rect * @return {?DOMRect} */ function ensureDOMRect(rect) { // A `DOMRect` object has `x` and `y` fields. if (!rect ClientRect} parentIntersectionRect The parent's own intersection rect. * @return {ClientRect} The local root bounding rect for the parent's children. */ function convertFromParentRect(parentBoundingRect, parentIntersectionRect) { var top = seafoodplus.info - seafoodplus.info; var left = seafoodplus.info - seafoodplus.info; return { top: top, left: left, height: seafoodplus.info, width: seafoodplus.info, bottom: top + seafoodplus.info, right: left + seafoodplus.info }; } /** * Checks to see if a parent element contains a child element (including inside * shadow DOM). * @param {Node} parent The parent element. * @param {Node} child The child element. * @return {boolean} True if the parent node contains the child node. */ function containsDeep(parent, child) { var node = child; while (node) { if (node == parent) return true; node = getParentNode(node); } return false; } /** * Gets the parent node of an element or its host element if the parent node * is a shadow root. * @param {Node} node The node whose parent to get. * @return {Node
nest...