aboutsummaryrefslogtreecommitdiff
path: root/catapult/third_party/polymer/components/shadycss/tests/module/make-element.js
diff options
context:
space:
mode:
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.js35
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);
+ }
+ }
+ });
+};