// Copyright 2017 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. /** * @fileoverview Externs for stuff not added to the Closure compiler yet, but * should get added. * @externs */ /** * @see https://drafts.fxtf.org/geometry-1/#domrectreadonly * TODO(scottchen): Remove this once it is added to Closure Compiler itself. */ class DOMRectReadOnly { /** * @param {number} x * @param {number} y * @param {number} width * @param {number} height */ constructor(x, y, width, height) { /** @type {number} */ this.x; /** @type {number} */ this.y; /** @type {number} */ this.width; /** @type {number} */ this.height; /** @type {number} */ this.top; /** @type {number} */ this.right; /** @type {number} */ this.bottom; /** @type {number} */ this.left; } /** * @param {{x: number, y: number, width: number, height: number}=} rectangle * @return {DOMRectReadOnly} */ fromRect(rectangle) {} } /** * @see https://wicg.github.io/ResizeObserver/#resizeobserverentry * @typedef {{contentRect: DOMRectReadOnly, * target: Element}} * TODO(scottchen): Remove this once it is added to Closure Compiler itself. */ let ResizeObserverEntry; /** * @see https://wicg.github.io/ResizeObserver/#api * TODO(scottchen): Remove this once it is added to Closure Compiler itself. */ class ResizeObserver { /** * @param {!function(Array, ResizeObserver)} callback */ constructor(callback) {} disconnect() {} /** @param {Element} target */ observe(target) {} /** @param {Element} target */ unobserve(target) {} }