blob: 45eb3b3eb017ead92ffca64539baa21ecc6105f1 [file] [log] [blame]
/**
@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);
}
}
});
};