chromium/third_party/closure_compiler/externs/pending_polymer.js

// Copyright 2019 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

/**
 * @fileoverview Externs for Polymer not added to the polymer-1.0.js file.
 * @externs
 */

/**
 * @see
 * https://www.polymer-project.org/2.0/docs/api/namespaces/Polymer.RenderStatus
 * Queue a function call to be run before the next render.
 * @param {!Element} element The element on which the function call is made.
 * @param {!function()} fn The function called on next render.
 * @param {...*} args The function arguments.
 * TODO(rbpotter): Remove this once it is added to Closure Compiler itself.
 */
Polymer.RenderStatus.beforeNextRender = function(element, fn, args) {};

/**
 * @see
 * https://polymer-library.polymer-project.org/2.0/api/namespaces/Polymer.Templatize
 * @constructor
 * TODO(rbpotter): Remove this once it is added to Closure Compiler itself.
 */
Polymer.Templatize = function() {};

/**
 * @param {!HTMLTemplateElement} template
 * @param {Object=} owner
 * @param {Object=} options
 * @return {!Function}
 * TODO(rbpotter): Remove this once it is added to Closure Compiler itself.
 */
Polymer.Templatize.templatize = function(template, owner, options) {};

/**
 * @see
 * https://polymer-library.polymer-project.org/2.0/api/namespaces/Polymer.Templatize
 * @constructor
 * TODO(rbpotter): Remove this once it is added to Closure Compiler itself.
 */
let TemplateInstanceBase = function() {};

/**
 * @see
 * https://polymer-library.polymer-project.org/2.0/api/elements/Polymer.DomIf
 * @constructor
 */
Polymer.DomIf = function() {};

/**
 * @param {!HTMLTemplateElement} template
 * @return {!HTMLElement}
 * TODO(dpapad): Figure out if there is a better way to type-check Polymer2
 * while still using legacy Polymer1 syntax.
 */
Polymer.DomIf._contentForTemplate = function(template) {};

/**
 * From:
 * https://github.com/Polymer/polymer/blob/2.x/lib/mixins/property-effects.html
 *
 * @param {Object} props Bag of one or more key-value pairs whose key is
 *   a property and value is the new value to set for that property.
 * @param {boolean=} setReadOnly When true, any private values set in
 *   `props` will be set. By default, `setProperties` will not set
 *   `readOnly: true` root properties.
 * @return {void}
 * @public
 */
PolymerElement.prototype.setProperties = function(props, setReadOnly) {};