UNPKG

chrome-devtools-frontend

Version:
56 lines (51 loc) 1.77 kB
/** * @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 */ interface MaybePolyfilledCe extends CustomElementRegistry { readonly polyfillWrapFlushCallback?: object; } /** * True if the custom elements polyfill is in use. */ export const isCEPolyfill = typeof window !== 'undefined' && window.customElements != null && (window.customElements as MaybePolyfilledCe).polyfillWrapFlushCallback !== undefined; /** * Reparents nodes, starting from `start` (inclusive) to `end` (exclusive), * into another container (could be the same container), before `before`. If * `before` is null, it appends the nodes to the container. */ export const reparentNodes = (container: Node, start: Node|null, end: Node|null = null, before: Node|null = null): void => { while (start !== end) { const n = start!.nextSibling; container.insertBefore(start!, before); start = n; } }; /** * Removes nodes, starting from `start` (inclusive) to `end` (exclusive), from * `container`. */ export const removeNodes = (container: Node, start: Node|null, end: Node|null = null): void => { while (start !== end) { const n = start!.nextSibling; container.removeChild(start!); start = n; } };