mirror of
https://github.com/Polymer/polymer.git
synced 2025-02-25 18:55:30 -06:00
Merge pull request #5413 from Polymer/polymer-dom-externs
Hybrid compatibility for PolymerDomApi and Polymer.Iconset types.
This commit is contained in:
@@ -39,7 +39,7 @@ export const matchesSelector = function(node, selector) {
|
||||
/**
|
||||
* Node API wrapper class returned from `Polymer.dom.(target)` when
|
||||
* `target` is a `Node`.
|
||||
*
|
||||
* @implements {PolymerDomApi}
|
||||
*/
|
||||
export class DomApi {
|
||||
|
||||
@@ -56,7 +56,8 @@ export class DomApi {
|
||||
*
|
||||
* @param {function(this:HTMLElement, { target: !HTMLElement, addedNodes: !Array<!Element>, removedNodes: !Array<!Element> }):void} callback Called when direct or distributed children
|
||||
* of this element changes
|
||||
* @return {!FlattenedNodesObserver} Observer instance
|
||||
* @return {!PolymerDomApi.ObserveHandle} Observer instance
|
||||
* @override
|
||||
*/
|
||||
observeNodes(callback) {
|
||||
return new FlattenedNodesObserver(
|
||||
@@ -66,9 +67,10 @@ export class DomApi {
|
||||
/**
|
||||
* Disconnects an observer previously created via `observeNodes`
|
||||
*
|
||||
* @param {!FlattenedNodesObserver} observerHandle Observer instance
|
||||
* @param {!PolymerDomApi.ObserveHandle} observerHandle Observer instance
|
||||
* to disconnect.
|
||||
* @return {void}
|
||||
* @override
|
||||
*/
|
||||
unobserveNodes(observerHandle) {
|
||||
observerHandle.disconnect();
|
||||
@@ -88,6 +90,7 @@ export class DomApi {
|
||||
* @param {Node} node Node to test
|
||||
* @return {boolean} Returns true if the given `node` is contained within
|
||||
* this element's light or shadow DOM.
|
||||
* @override
|
||||
*/
|
||||
deepContains(node) {
|
||||
if (this.node.contains(node)) {
|
||||
@@ -110,6 +113,7 @@ export class DomApi {
|
||||
* exists. If the node is connected to a document this is either a
|
||||
* shadowRoot or the document; otherwise, it may be the node
|
||||
* itself or a node or document fragment containing it.
|
||||
* @override
|
||||
*/
|
||||
getOwnerRoot() {
|
||||
return this.node.getRootNode();
|
||||
@@ -120,6 +124,7 @@ export class DomApi {
|
||||
* an empty array. It is equivalent to `<slot>.addignedNodes({flatten:true})`.
|
||||
*
|
||||
* @return {!Array<!Node>} Array of assigned nodes
|
||||
* @override
|
||||
*/
|
||||
getDistributedNodes() {
|
||||
return (this.node.localName === 'slot') ?
|
||||
@@ -131,6 +136,7 @@ export class DomApi {
|
||||
* Returns an array of all slots this element was distributed to.
|
||||
*
|
||||
* @return {!Array<!HTMLSlotElement>} Description
|
||||
* @override
|
||||
*/
|
||||
getDestinationInsertionPoints() {
|
||||
let ip$ = [];
|
||||
@@ -159,6 +165,7 @@ export class DomApi {
|
||||
/**
|
||||
* @return {!Array<!Node>} Returns a flattened list of all child nodes and
|
||||
* nodes assigned to child slots.
|
||||
* @override
|
||||
*/
|
||||
getEffectiveChildNodes() {
|
||||
return FlattenedNodesObserver.getFlattenedNodes(
|
||||
@@ -171,6 +178,7 @@ export class DomApi {
|
||||
*
|
||||
* @param {string} selector Selector to filter nodes against
|
||||
* @return {!Array<!HTMLElement>} List of flattened child elements
|
||||
* @override
|
||||
*/
|
||||
queryDistributedElements(selector) {
|
||||
let c$ = this.getEffectiveChildNodes();
|
||||
@@ -189,6 +197,7 @@ export class DomApi {
|
||||
* shadow root.
|
||||
*
|
||||
* @return {Node|undefined} Currently focused element
|
||||
* @override
|
||||
*/
|
||||
get activeElement() {
|
||||
let node = this.node;
|
||||
|
||||
@@ -62,6 +62,7 @@ function isSlot(node) {
|
||||
*
|
||||
* @summary Class that listens for changes (additions or removals) to
|
||||
* "flattened nodes" on a given `node`.
|
||||
* @implements {PolymerDomApi.ObserveHandle}
|
||||
*/
|
||||
export class FlattenedNodesObserver {
|
||||
|
||||
@@ -168,6 +169,7 @@ export class FlattenedNodesObserver {
|
||||
* the observer.
|
||||
*
|
||||
* @return {void}
|
||||
* @override
|
||||
*/
|
||||
disconnect() {
|
||||
if (isSlot(this._target)) {
|
||||
|
||||
Reference in New Issue
Block a user