/** @license Copyright (c) 2016 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 */ /* A simple webcomponents helper */ 'use strict'; window.makeElement = (name, connectedCallback) => { let template = document.querySelector(`template#${name}`); if (template && window.ShadyCSS) { window.ShadyCSS.prepareTemplate(template, name); } window.customElements.define(name, class extends window.HTMLElement { connectedCallback() { window.ShadyCSS && window.ShadyCSS.styleElement(this); if (!this.shadowRoot) { this.attachShadow({mode: 'open'}); if (template) { this.shadowRoot.appendChild(template.content.cloneNode(true)); } } if (connectedCallback) { connectedCallback.call(this); } } }); };