diff options
Diffstat (limited to 'catapult/third_party/polymer/components/shadycss/tests/module/make-element.js')
-rw-r--r-- | catapult/third_party/polymer/components/shadycss/tests/module/make-element.js | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/catapult/third_party/polymer/components/shadycss/tests/module/make-element.js b/catapult/third_party/polymer/components/shadycss/tests/module/make-element.js new file mode 100644 index 00000000..45eb3b3e --- /dev/null +++ b/catapult/third_party/polymer/components/shadycss/tests/module/make-element.js @@ -0,0 +1,35 @@ +/** +@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); + } + } + }); +}; |