UNPKG

@polymer/polymer

Version:

The Polymer library makes it easy to create your own web components. Give your element some markup and properties, and then use it on a site. Polymer provides features like dynamic templates and data binding to reduce the amount of boilerplate you need to

258 lines (226 loc) 6.28 kB
/** * @fileoverview Externs for Polymer Pass and external Polymer API * @externs * * @license * Copyright (c) 2017 The Polymer Project Authors. All rights reserved. * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt * Code distributed by Google as part of the polymer project is also * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt */ /* eslint-disable */ /** * @typedef {{ * type: !Function, * value: (* | undefined), * readOnly: (boolean | undefined), * computed: (string | undefined), * reflectToAttribute: (boolean | undefined), * notify: (boolean | undefined), * observer: (string | function(this:?, ?, ?) | undefined) * }} */ let PolymerElementPropertiesMeta; /** * @typedef {Object<string, !Function|!PolymerElementPropertiesMeta>} */ let PolymerElementProperties; /** @record */ let PolymerInit = function() {}; /** @type {string} */ PolymerInit.prototype.is; /** @type {(string | undefined)} */ PolymerInit.prototype.extends; /** @type {(!PolymerElementProperties | undefined)} */ PolymerInit.prototype.properties; /** @type {(!Array<string> | undefined)} */ PolymerInit.prototype.observers; /** @type {(!HTMLTemplateElement | string | undefined | null)} */ PolymerInit.prototype.template; /** @type {(!Object<string, *> | undefined)} */ PolymerInit.prototype.hostAttributes; /** @type {(!Object<string, string> | undefined)} */ PolymerInit.prototype.listeners; /** @type {(!Object| !Array<!Object> | undefined)} */ PolymerInit.prototype.behaviors; /** @record */ let PolymerElementConstructor = function () {}; /** @type {(string | undefined)} */ PolymerElementConstructor.is; /** @type {(string | undefined)} */ PolymerElementConstructor.extends; /** @type {(!PolymerElementProperties | undefined)} */ PolymerElementConstructor.properties; /** @type {(!Array<string> | undefined)} */ PolymerElementConstructor.observers; /** @type {(!HTMLTemplateElement | string | undefined | null)} */ PolymerElementConstructor.template; /** @interface */ let PropertiesMixinConstructor = function () {}; /** @type {(!PolymerElementProperties | undefined)} */ PropertiesMixinConstructor.prototype.properties; /** @return {void} */ PropertiesMixinConstructor.prototype.finalize = function() {}; /** * @param {!PolymerInit} init * @return {!function(new:HTMLElement)} */ function Polymer(init){} /** * @type {(function(*,string,string,Node):*)|undefined} */ Polymer.sanitizeDOMValue; /** * @type {boolean} */ Polymer.passiveTouchGestures; /** * @type {boolean} */ Polymer.strictTemplatePolicy; /** * @type {boolean} */ Polymer.allowTemplateFromDomModule; /** * @type {string} */ Polymer.rootPath; /** * @param {string} string * @param {Object} obj * @return {string} */ function JSCompiler_renameProperty(string, obj) {} /** @record */ function PolymerTelemetry() {} /** @type {number} */ PolymerTelemetry.instanceCount; /** @type {function():void} */ PolymerTelemetry.incrementInstanceCount; /** @type {Array<HTMLElement>} */ PolymerTelemetry.registrations; /** @type {function(HTMLElement)} */ PolymerTelemetry._regLog; /** @type {function(HTMLElement)} */ PolymerTelemetry.register; /** @type {function(HTMLElement)} */ PolymerTelemetry.dumpRegistrations; /** @type {PolymerTelemetry} */ Polymer.telemetry; /** @type {string} */ Polymer.version; /** @type {boolean} */ Polymer.legacyOptimizations; /** @type {boolean} */ Polymer.syncInitialRender; /** @type {boolean} */ Polymer.legacyUndefined; /** @type {boolean} */ Polymer.legacyWarnings; /** @type {boolean} */ Polymer.orderedComputed; /** @type {boolean} */ Polymer.fastDomIf; /** @type {boolean} */ Polymer.removeNestedTemplates; /** @type {boolean} */ Polymer.suppressTemplateNotifications; // nb. This is explicitly 'var', as Closure Compiler checks that this is the case. /** * @constructor * @extends {HTMLElement} * @implements {Polymer_LegacyElementMixin} */ var PolymerElement = function() {}; /** * The tag name of the cutom element type. * @type {string|undefined} */ PolymerElement.is; /** * The template to stamp when creating this element type. * @type {!HTMLTemplateElement|undefined|null} */ PolymerElement.template; /** * The properties of the cutom element type. * @type {!PolymerElementProperties|undefined} */ PolymerElement.properties; /** * The observers of this custom element type. * @type {!Array<string>|undefined} */ PolymerElement.observers; /** @type {!PolymerInit|undefined} */ PolymerElement.generatedFrom; /** * On create callback. * @override */ PolymerElement.prototype.created = function() {}; /** * On ready callback. * @override */ PolymerElement.prototype.ready = function() {}; /** On before register callback. */ PolymerElement.prototype.beforeRegister = function() {}; /** On registered callback. */ PolymerElement.prototype.registered = function() {}; /** * On attached to the DOM callback. * @override */ PolymerElement.prototype.attached = function() {}; /** * On detached from the DOM callback. * @override */ PolymerElement.prototype.detached = function() {}; /** * @typedef {{ * index: number, * removed: !Array, * addedCount: number, * object: !Array, * type: string, * }} */ var PolymerSplice; /** * @typedef {{ * indexSplices: ?Array<!PolymerSplice>, * }} */ var PolymerSpliceChange; /** * The type of the object received by an observer function when deep * sub-property observation is enabled. See: * https://www.polymer-project.org/2.0/docs/devguide/observers#deep-observation * * @typedef {{ * path: string, * value: (?Object|undefined), * base: (?Object|undefined) * }} */ var PolymerDeepPropertyChange; /** * Event object for events dispatched by children of a dom-repeat template. * @see https://www.polymer-project.org/2.0/docs/devguide/templates#handling-events * @extends {Event} * @constructor * @template T */ var DomRepeatEvent = function() {}; /** * @type {{ * index: number, * item: T * }} */ DomRepeatEvent.prototype.model;