├── .gitignore ├── LICENSE.txt ├── README.md ├── elements-demo ├── pom.xml └── src │ └── main │ ├── java │ └── org │ │ └── vaadin │ │ └── elements │ │ └── demo │ │ ├── AbstractElementsDemo.java │ │ ├── Demo.java │ │ ├── ExistingElementsDemo.java │ │ ├── GoogleMapDemo.java │ │ ├── Html5InputDemo.java │ │ ├── Layout.java │ │ ├── PaperButton.java │ │ ├── PaperElementsDemo.java │ │ └── PaperSlider.java │ └── webapp │ ├── META-INF │ ├── MANIFEST.MF │ └── context.xml │ └── VAADIN │ └── bower_components │ ├── core-a11y-keys │ ├── .bower.json │ ├── README.md │ ├── bower.json │ ├── core-a11y-keys.html │ ├── demo.html │ └── index.html │ ├── core-component-page │ ├── .bower.json │ ├── README.md │ ├── bowager-logo.png │ ├── bower.json │ ├── core-component-page.html │ ├── demo.html │ └── index.html │ ├── core-focusable │ ├── .bower.json │ ├── README.md │ ├── bower.json │ ├── core-focusable.html │ ├── core-focusable.js │ ├── demo.html │ └── polymer-mixin.js │ ├── core-icon │ ├── .bower.json │ ├── README.md │ ├── bower.json │ ├── core-icon.css │ ├── core-icon.html │ ├── demo.html │ ├── index.html │ └── metadata.html │ ├── core-icons │ ├── .bower.json │ ├── README.md │ ├── av-icons.html │ ├── bower.json │ ├── communication-icons.html │ ├── core-icons.html │ ├── demo.html │ ├── device-icons.html │ ├── editor-icons.html │ ├── hardware-icons.html │ ├── image-icons.html │ ├── index.html │ ├── maps-icons.html │ ├── notification-icons.html │ ├── png-icons.html │ └── social-icons.html │ ├── core-iconset-svg │ ├── .bower.json │ ├── README.md │ ├── bower.json │ ├── core-iconset-svg.html │ ├── demo.html │ ├── index.html │ └── svg-sample-icons.html │ ├── core-iconset │ ├── .bower.json │ ├── README.md │ ├── bower.json │ ├── core-iconset.html │ ├── demo.html │ ├── index.html │ ├── my-icons-big.png │ └── my-icons.png │ ├── core-input │ ├── .bower.json │ ├── README.md │ ├── bower.json │ ├── core-input.css │ ├── core-input.html │ ├── demo.html │ ├── index.html │ ├── metadata.html │ └── test │ │ ├── a11y.html │ │ ├── basic.html │ │ └── index.html │ ├── core-meta │ ├── .bower.json │ ├── README.md │ ├── bower.json │ ├── core-meta.html │ ├── demo.html │ └── index.html │ ├── core-range │ ├── .bower.json │ ├── README.md │ ├── bower.json │ ├── core-range.html │ ├── demo.html │ ├── index.html │ └── test │ │ ├── basic.html │ │ └── index.html │ ├── core-shared-lib │ ├── .bower.json │ ├── README.md │ ├── bower.json │ ├── core-shared-lib.html │ ├── demo.html │ ├── index.html │ └── tests │ │ ├── html │ │ └── core-shared-lib.html │ │ ├── js │ │ └── htmltests.js │ │ ├── runner.html │ │ └── tests.json │ ├── core-style │ ├── .bower.json │ ├── README.md │ ├── bower.json │ ├── core-style.html │ ├── demo.html │ ├── elements.html │ ├── index.html │ └── my-theme.html │ ├── font-roboto │ ├── .bower.json │ └── roboto.html │ ├── google-apis │ ├── .bower.json │ ├── LICENSE │ ├── README.md │ ├── bower.json │ ├── demo.html │ ├── google-apis.html │ ├── google-client-api.html │ ├── google-jsapi.html │ ├── google-maps-api.html │ ├── google-plusone-api.html │ ├── google-youtube-api.html │ └── index.html │ ├── google-map │ ├── .bower.json │ ├── LICENSE │ ├── README.md │ ├── bower.json │ ├── demo.html │ ├── google-map-directions.html │ ├── google-map-search.html │ ├── google-map.html │ ├── index.html │ └── metadata.html │ ├── paper-button │ ├── .bower.json │ ├── README.md │ ├── bower.json │ ├── demo.html │ ├── index.html │ ├── metadata.html │ ├── paper-button-base.html │ ├── paper-button.html │ └── test │ │ ├── a11y.html │ │ ├── basic.html │ │ └── index.html │ ├── paper-input │ ├── .bower.json │ ├── .gitignore │ ├── README.md │ ├── bower.json │ ├── demo.html │ ├── index.html │ ├── metadata.html │ ├── paper-autogrow-textarea.html │ ├── paper-input-decorator.css │ ├── paper-input-decorator.html │ ├── paper-input.html │ └── test │ │ ├── a11y.html │ │ ├── autogrow.html │ │ ├── decorator.html │ │ └── index.html │ ├── paper-progress │ ├── .bower.json │ ├── README.md │ ├── bower.json │ ├── demo.html │ ├── index.html │ ├── metadata.html │ ├── paper-progress.css │ └── paper-progress.html │ ├── paper-ripple │ ├── .bower.json │ ├── README.md │ ├── bower.json │ ├── demo.html │ ├── index.html │ ├── metadata.html │ ├── paper-ripple.html │ └── test │ │ ├── index.html │ │ └── position.html │ ├── paper-shadow │ ├── .bower.json │ ├── README.md │ ├── bower.json │ ├── demo.html │ ├── index.html │ ├── metadata.html │ ├── paper-shadow.css │ ├── paper-shadow.html │ └── test │ │ ├── basic.html │ │ └── index.html │ ├── paper-slider │ ├── .bower.json │ ├── README.md │ ├── bower.json │ ├── demo.html │ ├── index.html │ ├── metadata.html │ ├── paper-slider.css │ └── paper-slider.html │ ├── polymer │ ├── .bower.json │ ├── README.md │ ├── bower.json │ ├── build.log │ ├── layout.html │ ├── polymer.html │ ├── polymer.js │ └── polymer.min.js │ └── webcomponentsjs │ ├── .bower.json │ ├── CustomElements.js │ ├── CustomElements.min.js │ ├── HTMLImports.js │ ├── HTMLImports.min.js │ ├── README.md │ ├── ShadowDOM.js │ ├── ShadowDOM.min.js │ ├── bower.json │ ├── build.log │ ├── package.json │ ├── webcomponents-lite.js │ ├── webcomponents-lite.min.js │ ├── webcomponents.js │ └── webcomponents.min.js ├── elements ├── assembly │ ├── MANIFEST.MF │ └── assembly.xml ├── pom.xml └── src │ ├── main │ └── java │ │ └── org │ │ └── vaadin │ │ └── elements │ │ ├── AbstractElementComponent.java │ │ ├── Element.java │ │ ├── ElementIntegration.java │ │ ├── Elements.java │ │ ├── EventParam.java │ │ ├── Node.java │ │ ├── Root.java │ │ ├── Tag.java │ │ ├── TextNode.java │ │ ├── UpdatedBy.java │ │ ├── UpdatedByList.java │ │ ├── abstract-element-component.js │ │ ├── elementui.js │ │ └── impl │ │ ├── Context.java │ │ ├── ElementImpl.java │ │ ├── ElementReflectHelper.java │ │ ├── NodeImpl.java │ │ ├── RootImpl.java │ │ └── TextNodeImpl.java │ └── test │ └── java │ └── org │ └── vaadin │ └── elements │ ├── AttributesTest.java │ ├── ElementInterfaceTest.java │ ├── ElementsTest.java │ ├── RegisterTest.java │ └── RootTest.java └── pom.xml /.gitignore: -------------------------------------------------------------------------------- 1 | /build/ 2 | .settings/ 3 | .project 4 | .classpath 5 | target/ 6 | .DS_Store 7 | *.iml 8 | .idea/ -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | [![Published on Vaadin Directory](https://img.shields.io/badge/Vaadin%20Directory-published-00b4f0.svg)](https://vaadin.com/directory/component/elements-add-on) 2 | [![Stars on Vaadin Directory](https://img.shields.io/vaadin-directory/star/elements-add-on.svg)](https://vaadin.com/directory/component/elements-add-on) 3 | 4 | # Vaadin Elements add-on 5 | 6 | This Vaadin Framework add-on makes it easy to use Web Components or any HTML elements 7 | from Vaadin Framework with a server side Java API. With Elements, your server-side 8 | application can have low-level access to HTML features such as DOM properties and events. 9 | 10 | Releases can be downloaded from https://vaadin.com/directory#!addon/elements-add-on. 11 | -------------------------------------------------------------------------------- /elements-demo/src/main/java/org/vaadin/elements/demo/AbstractElementsDemo.java: -------------------------------------------------------------------------------- 1 | package org.vaadin.elements.demo; 2 | 3 | import com.vaadin.shared.ui.MarginInfo; 4 | import com.vaadin.ui.Component; 5 | import com.vaadin.ui.CustomComponent; 6 | import com.vaadin.ui.Label; 7 | import com.vaadin.ui.VerticalLayout; 8 | 9 | public abstract class AbstractElementsDemo extends CustomComponent { 10 | 11 | private final VerticalLayout layout = new VerticalLayout(); 12 | 13 | public AbstractElementsDemo() { 14 | layout.setMargin(new MarginInfo(false, false, false, true)); 15 | layout.setSpacing(true); 16 | setCompositionRoot(layout); 17 | } 18 | 19 | @Override 20 | public void attach() { 21 | super.attach(); 22 | if (layout.getComponentCount() == 0) { 23 | 24 | Label descriptionLabel = new Label(getDemoDescription()); 25 | descriptionLabel.setWidth("600px"); 26 | layout.addComponent(descriptionLabel); 27 | layout.addComponent(getDemoView()); 28 | } 29 | } 30 | 31 | protected abstract String getDemoDescription(); 32 | 33 | protected abstract Component getDemoView(); 34 | } 35 | -------------------------------------------------------------------------------- /elements-demo/src/main/java/org/vaadin/elements/demo/Demo.java: -------------------------------------------------------------------------------- 1 | package org.vaadin.elements.demo; 2 | 3 | import javax.servlet.annotation.WebServlet; 4 | 5 | import com.vaadin.annotations.JavaScript; 6 | import com.vaadin.annotations.Theme; 7 | import com.vaadin.annotations.VaadinServletConfiguration; 8 | import com.vaadin.server.VaadinRequest; 9 | import com.vaadin.server.VaadinServlet; 10 | import com.vaadin.ui.Label; 11 | import com.vaadin.ui.UI; 12 | import com.vaadin.ui.VerticalLayout; 13 | import com.vaadin.ui.themes.ValoTheme; 14 | 15 | @SuppressWarnings("serial") 16 | @Theme("valo") 17 | @JavaScript("vaadin://bower_components/webcomponentsjs/webcomponents.js") 18 | public class Demo extends UI { 19 | 20 | @WebServlet(value = "/*", asyncSupported = true, loadOnStartup = 1) 21 | @VaadinServletConfiguration(productionMode = false, ui = Demo.class) 22 | public static class Servlet extends VaadinServlet { 23 | } 24 | 25 | @Override 26 | protected void init(VaadinRequest request) { 27 | VerticalLayout layout = new VerticalLayout(); 28 | addDemo(layout, new Html5InputDemo(), "HTML5 inputs"); 29 | // Does not work in Firefox 30 | // tabSheet.addTab(new GoogleMapDemo(), "Web components"); 31 | addDemo(layout, new ExistingElementsDemo(), "Existing elements"); 32 | addDemo(layout, new PaperElementsDemo(), "Paper compoments"); 33 | 34 | layout.setMargin(true); 35 | // layout.setSpacing(true); 36 | setContent(layout); 37 | } 38 | 39 | private void addDemo(VerticalLayout layout, AbstractElementsDemo demo, 40 | String caption) { 41 | Label label = new Label(caption); 42 | label.addStyleName(ValoTheme.LABEL_H1); 43 | // label.addStyleName(ValoTheme.LABEL_NO_MARGIN); 44 | layout.addComponent(label); 45 | 46 | layout.addComponent(demo); 47 | } 48 | } -------------------------------------------------------------------------------- /elements-demo/src/main/java/org/vaadin/elements/demo/ExistingElementsDemo.java: -------------------------------------------------------------------------------- 1 | package org.vaadin.elements.demo; 2 | 3 | import java.util.Optional; 4 | 5 | import org.vaadin.elements.Element; 6 | import org.vaadin.elements.ElementIntegration; 7 | import org.vaadin.elements.Root; 8 | 9 | import com.vaadin.ui.Button; 10 | import com.vaadin.ui.Component; 11 | 12 | public class ExistingElementsDemo extends AbstractElementsDemo { 13 | 14 | @Override 15 | protected String getDemoDescription() { 16 | return "This demo shows how to access elements created by some other source (e.g. a Vaadin component)."; 17 | } 18 | 19 | @Override 20 | protected Component getDemoView() { 21 | Button button = new Button("Click to modify my styles"); 22 | Root root = ElementIntegration.getRoot(button); 23 | 24 | button.addClickListener(e -> { 25 | Optional span = root.querySelector("span.v-button-wrap"); 26 | span.ifPresent(element -> { 27 | if (element.hasAttribute("style")) { 28 | element.removeAttribute("style"); 29 | } else { 30 | element.setAttribute("style", "color: red"); 31 | } 32 | }); 33 | }); 34 | 35 | // Fetch dom so that it's available when clicking the button 36 | root.fetchDom(null); 37 | 38 | return button; 39 | } 40 | 41 | } 42 | -------------------------------------------------------------------------------- /elements-demo/src/main/java/org/vaadin/elements/demo/GoogleMapDemo.java: -------------------------------------------------------------------------------- 1 | package org.vaadin.elements.demo; 2 | 3 | import org.vaadin.elements.Element; 4 | import org.vaadin.elements.ElementIntegration; 5 | import org.vaadin.elements.Elements; 6 | import org.vaadin.elements.Root; 7 | 8 | import com.vaadin.annotations.HtmlImport; 9 | import com.vaadin.ui.Button; 10 | import com.vaadin.ui.Component; 11 | import com.vaadin.ui.CssLayout; 12 | import com.vaadin.ui.HorizontalLayout; 13 | import com.vaadin.ui.VerticalLayout; 14 | 15 | @HtmlImport("vaadin://bower_components/google-map/google-map.html") 16 | public class GoogleMapDemo extends AbstractElementsDemo { 17 | 18 | @Override 19 | protected String getDemoDescription() { 20 | return "Maps!"; 21 | } 22 | 23 | @Override 24 | protected Component getDemoView() { 25 | CssLayout wrapper = new CssLayout(); 26 | Root root = ElementIntegration.getRoot(wrapper); 27 | 28 | final Element googleMap = Elements.create("google-map"); 29 | 30 | googleMap.setAttribute("style", 31 | "height: 500px; width: 500px; display: block"); 32 | googleMap.setAttribute("latitude", "60.45235"); 33 | googleMap.setAttribute("longitude", "22.299727"); 34 | googleMap.setAttribute("zoom", "17"); 35 | 36 | root.appendChild(googleMap); 37 | 38 | HorizontalLayout buttons = new HorizontalLayout( 39 | new Button("GWT.create US", event -> { 40 | googleMap.setAttribute("latitude", "37.414274"); 41 | googleMap.setAttribute("longitude", "-122.077409"); 42 | }), new Button("GWT.create EU", event -> { 43 | googleMap.setAttribute("latitude", "48.152663"); 44 | googleMap.setAttribute("longitude", "11.598418"); 45 | })); 46 | buttons.setSpacing(true); 47 | 48 | VerticalLayout layout = new VerticalLayout(buttons, wrapper); 49 | layout.setSpacing(true); 50 | return layout; 51 | } 52 | 53 | } 54 | -------------------------------------------------------------------------------- /elements-demo/src/main/java/org/vaadin/elements/demo/Html5InputDemo.java: -------------------------------------------------------------------------------- 1 | package org.vaadin.elements.demo; 2 | 3 | import java.util.Arrays; 4 | 5 | import org.vaadin.elements.Element; 6 | import org.vaadin.elements.ElementIntegration; 7 | import org.vaadin.elements.Elements; 8 | import org.vaadin.elements.Root; 9 | 10 | import com.vaadin.ui.Component; 11 | import com.vaadin.ui.CssLayout; 12 | import com.vaadin.ui.HorizontalLayout; 13 | import com.vaadin.ui.NativeSelect; 14 | import com.vaadin.ui.Notification; 15 | 16 | public class Html5InputDemo extends AbstractElementsDemo { 17 | 18 | private final NativeSelect typeSelector = new NativeSelect<>( 19 | "Select input type", 20 | Arrays.asList("text", "search", "email", "url", "tel", "number", 21 | "range", "date", "month", "week", "time", "datetime", 22 | "datetime-local", "color")); 23 | private final Element input = Elements.create("input"); 24 | private final CssLayout playground = new CssLayout(); 25 | 26 | @Override 27 | protected String getDemoDescription() { 28 | return "This demo shows how to create an HTML element," 29 | + " modify its attributes and send attribute values back to the server when an event occurs."; 30 | } 31 | 32 | @Override 33 | protected Component getDemoView() { 34 | input.bindAttribute("value", "change"); 35 | input.addEventListener("change", arguments -> { 36 | Notification 37 | .show("Value changed to " + input.getAttribute("value")); 38 | }); 39 | 40 | typeSelector.setEmptySelectionAllowed(false); 41 | typeSelector.addValueChangeListener(event -> { 42 | String type = String.valueOf(typeSelector.getValue()); 43 | 44 | input.setAttribute("value", ""); 45 | input.setAttribute("type", type); 46 | 47 | playground.setCaption("input type=" + type); 48 | }); 49 | typeSelector.setValue("range"); 50 | 51 | Root root = ElementIntegration.getRoot(playground); 52 | root.appendChild(input); 53 | HorizontalLayout layout = new HorizontalLayout(typeSelector, 54 | playground); 55 | layout.setSpacing(true); 56 | return layout; 57 | } 58 | 59 | } 60 | -------------------------------------------------------------------------------- /elements-demo/src/main/java/org/vaadin/elements/demo/Layout.java: -------------------------------------------------------------------------------- 1 | package org.vaadin.elements.demo; 2 | 3 | import org.vaadin.elements.Element; 4 | import org.vaadin.elements.Elements; 5 | import org.vaadin.elements.Tag; 6 | 7 | @Tag(value = "div", exclusive = false) 8 | public interface Layout extends Element { 9 | 10 | public static Layout vertical() { 11 | Layout layout = Elements.create(Layout.class); 12 | layout.setAttribute("layout", true); 13 | layout.setAttribute("vertical", true); 14 | return layout; 15 | } 16 | 17 | public static Layout horizontal() { 18 | Layout layout = Elements.create(Layout.class); 19 | layout.setAttribute("layout", true); 20 | layout.setAttribute("horizontal", true); 21 | return layout; 22 | } 23 | 24 | public boolean isHorizontal(); 25 | 26 | public boolean isVertical(); 27 | 28 | public void setFlex(boolean flex); 29 | 30 | public boolean isFlex(); 31 | 32 | public void setCenter(boolean center); 33 | 34 | public boolean isCenter(); 35 | 36 | public default void setStart(boolean start) { 37 | if (start) { 38 | removeAttribute("end"); 39 | } 40 | setAttribute("start", start); 41 | } 42 | 43 | public boolean isStart(); 44 | 45 | public default void setEnd(boolean end) { 46 | if (end) { 47 | removeAttribute("start"); 48 | } 49 | setAttribute("end", end); 50 | } 51 | 52 | public default void setJustified(boolean justified) { 53 | if (justified) { 54 | removeAttribute("around-justified"); 55 | } 56 | setAttribute("justified", justified); 57 | } 58 | 59 | public boolean isJustified(); 60 | 61 | public default void setAroundJustified(boolean aroundJustified) { 62 | if (aroundJustified) { 63 | removeAttribute("justified"); 64 | } 65 | setAttribute("around-justified", aroundJustified); 66 | } 67 | 68 | public default boolean isAroundJustified() { 69 | return hasAttribute("around-justified"); 70 | } 71 | 72 | } 73 | -------------------------------------------------------------------------------- /elements-demo/src/main/java/org/vaadin/elements/demo/PaperButton.java: -------------------------------------------------------------------------------- 1 | package org.vaadin.elements.demo; 2 | 3 | import org.vaadin.elements.Element; 4 | import org.vaadin.elements.Elements; 5 | import org.vaadin.elements.Tag; 6 | 7 | @Tag("paper-button") 8 | public interface PaperButton extends Element { 9 | public static PaperButton create() { 10 | return Elements.create(PaperButton.class); 11 | } 12 | 13 | public static PaperButton create(String text) { 14 | PaperButton button = create(); 15 | button.setInnerText(text); 16 | return button; 17 | } 18 | 19 | public void setRaised(boolean raised); 20 | 21 | public boolean isRaised(); 22 | 23 | public void setNoink(boolean noink); 24 | 25 | public boolean isNoink(); 26 | } 27 | -------------------------------------------------------------------------------- /elements-demo/src/main/java/org/vaadin/elements/demo/PaperElementsDemo.java: -------------------------------------------------------------------------------- 1 | package org.vaadin.elements.demo; 2 | 3 | import org.vaadin.elements.ElementIntegration; 4 | import org.vaadin.elements.Root; 5 | 6 | import com.vaadin.annotations.HtmlImport; 7 | import com.vaadin.ui.Component; 8 | import com.vaadin.ui.CssLayout; 9 | import com.vaadin.ui.Notification; 10 | 11 | @HtmlImport("vaadin://bower_components/paper-button/paper-button.html") 12 | @HtmlImport("vaadin://bower_components/paper-slider/paper-slider.html") 13 | public class PaperElementsDemo extends AbstractElementsDemo { 14 | 15 | @Override 16 | protected String getDemoDescription() { 17 | return "This demo shows how to create custom Element types to provide a type-safe API for modifying the element's attributes."; 18 | } 19 | 20 | @Override 21 | protected Component getDemoView() { 22 | PaperButton basicButton = PaperButton.create("Basic button"); 23 | basicButton.setRaised(true); 24 | basicButton.addEventListener("click", args -> { 25 | Notification.show("Clicked"); 26 | }); 27 | 28 | PaperButton notRaisedButton = PaperButton.create("Not raised"); 29 | notRaisedButton.setRaised(false); 30 | 31 | PaperButton noInkButton = PaperButton.create("No ink"); 32 | noInkButton.setRaised(true); 33 | noInkButton.setNoink(true); 34 | 35 | PaperButton disabledButton = PaperButton.create("Disabled"); 36 | disabledButton.setDisabled(true); 37 | 38 | Layout horizontal = Layout.horizontal(); 39 | horizontal.setJustified(true); 40 | horizontal.setAttribute("style", "width: 600px"); 41 | 42 | horizontal.appendChild(basicButton); 43 | horizontal.appendChild(notRaisedButton); 44 | horizontal.appendChild(noInkButton); 45 | horizontal.appendChild(disabledButton); 46 | 47 | PaperSlider slider = PaperSlider.create(); 48 | slider.setValue(50); 49 | slider.addEventListener("change", arguments -> { 50 | Notification.show("Value changed to " + slider.getValue()); 51 | }); 52 | 53 | Layout vertical = Layout.vertical(); 54 | vertical.appendHtml("

Slider

"); 55 | vertical.appendChild(slider); 56 | vertical.appendHtml("

Buttons

"); 57 | vertical.appendChild(horizontal); 58 | 59 | CssLayout wrapper = new CssLayout(); 60 | Root root = ElementIntegration.getRoot(wrapper); 61 | root.appendChild(vertical); 62 | return wrapper; 63 | } 64 | 65 | } 66 | -------------------------------------------------------------------------------- /elements-demo/src/main/java/org/vaadin/elements/demo/PaperSlider.java: -------------------------------------------------------------------------------- 1 | package org.vaadin.elements.demo; 2 | 3 | import org.vaadin.elements.Element; 4 | import org.vaadin.elements.Elements; 5 | import org.vaadin.elements.Tag; 6 | import org.vaadin.elements.UpdatedBy; 7 | 8 | @Tag("paper-slider") 9 | public interface PaperSlider extends Element { 10 | public static PaperSlider create() { 11 | return Elements.create(PaperSlider.class); 12 | } 13 | 14 | public void setValue(double value); 15 | 16 | @UpdatedBy("core-change") 17 | public double getValue(); 18 | 19 | } 20 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/META-INF/MANIFEST.MF: -------------------------------------------------------------------------------- 1 | Manifest-Version: 1.0 2 | Class-Path: 3 | 4 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/META-INF/context.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-a11y-keys/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "core-a11y-keys", 3 | "private": true, 4 | "dependencies": { 5 | "polymer": "Polymer/polymer#^0.5.0" 6 | }, 7 | "devDependencies": { 8 | "web-component-tester": "Polymer/web-component-tester#^1" 9 | }, 10 | "ignore": [ 11 | "**/.*", 12 | "node_modules", 13 | "bower_components", 14 | "test", 15 | "tests" 16 | ], 17 | "version": "0.5.2", 18 | "homepage": "https://github.com/Polymer/core-a11y-keys", 19 | "_release": "0.5.2", 20 | "_resolution": { 21 | "type": "version", 22 | "tag": "0.5.2", 23 | "commit": "10956d7de51d5372011b898e2e1ba8eca13e34ea" 24 | }, 25 | "_source": "git://github.com/Polymer/core-a11y-keys.git", 26 | "_target": "^0.5.0", 27 | "_originalSource": "Polymer/core-a11y-keys" 28 | } -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-a11y-keys/README.md: -------------------------------------------------------------------------------- 1 | core-a11y-keys 2 | ============== 3 | 4 | See the [component page](http://polymer-project.org/docs/elements/core-elements.html#core-a11y-keys) for more information. 5 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-a11y-keys/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "core-a11y-keys", 3 | "private": true, 4 | "dependencies": { 5 | "polymer": "Polymer/polymer#^0.5.0" 6 | }, 7 | "devDependencies": { 8 | "web-component-tester": "Polymer/web-component-tester#^1" 9 | }, 10 | "ignore": [ 11 | "**/.*", 12 | "node_modules", 13 | "bower_components", 14 | "test", 15 | "tests" 16 | ], 17 | "version": "0.5.2" 18 | } -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-a11y-keys/demo.html: -------------------------------------------------------------------------------- 1 | 10 | 11 | 12 | 13 | 14 | Core A11y Keys demo 15 | 16 | 17 | 24 | 25 | 26 | 31 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-a11y-keys/index.html: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-component-page/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "core-component-page", 3 | "private": true, 4 | "dependencies": { 5 | "webcomponentsjs": "Polymer/webcomponentsjs#^0.5.0", 6 | "polymer": "Polymer/polymer#^0.5.0" 7 | }, 8 | "version": "0.5.2", 9 | "homepage": "https://github.com/Polymer/core-component-page", 10 | "_release": "0.5.2", 11 | "_resolution": { 12 | "type": "version", 13 | "tag": "0.5.2", 14 | "commit": "443d8dcbcb1b203ed88c6af64c98f76e6434ba53" 15 | }, 16 | "_source": "git://github.com/Polymer/core-component-page.git", 17 | "_target": "^0.5.0", 18 | "_originalSource": "Polymer/core-component-page" 19 | } -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-component-page/README.md: -------------------------------------------------------------------------------- 1 | core-component-page 2 | =================== 3 | 4 | See the [component page](http://polymer-project.org/docs/elements/core-elements.html#core-component-page) for more information. 5 | 6 | Note: this is the vulcanized version of [`core-component-page-dev`](https://github.com/Polymer/core-component-page-dev) (the source). 7 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-component-page/bowager-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaadin/serverside-elements/d61ac36112bbd5b030ba4c9b0e137a14da9dc97c/elements-demo/src/main/webapp/VAADIN/bower_components/core-component-page/bowager-logo.png -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-component-page/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "core-component-page", 3 | "private": true, 4 | "dependencies": { 5 | "webcomponentsjs": "Polymer/webcomponentsjs#^0.5.0", 6 | "polymer": "Polymer/polymer#^0.5.0" 7 | }, 8 | "version": "0.5.2" 9 | } -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-component-page/demo.html: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-component-page/index.html: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-focusable/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "core-focusable", 3 | "private": false, 4 | "dependencies": { 5 | "polymer": "Polymer/polymer#^0.5.0" 6 | }, 7 | "version": "0.5.2", 8 | "homepage": "https://github.com/Polymer/core-focusable", 9 | "_release": "0.5.2", 10 | "_resolution": { 11 | "type": "version", 12 | "tag": "0.5.2", 13 | "commit": "54fda73ce01c1e68041a3e89d2d0656a8f9f8543" 14 | }, 15 | "_source": "git://github.com/Polymer/core-focusable.git", 16 | "_target": "^0.5.0", 17 | "_originalSource": "Polymer/core-focusable" 18 | } -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-focusable/README.md: -------------------------------------------------------------------------------- 1 | core-focusable 2 | ============== 3 | 4 | owner: @morethanreal 5 | 6 | See the [component page](http://polymer-project.org/docs/elements/core-elements.html#core-focusable) for more information. 7 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-focusable/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "core-focusable", 3 | "private": false, 4 | "dependencies": { 5 | "polymer": "Polymer/polymer#^0.5.0" 6 | }, 7 | "version": "0.5.2" 8 | } -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-focusable/core-focusable.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-focusable/core-focusable.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @group Polymer Mixins 3 | * 4 | * `Polymer.CoreFocusable` is a mixin for elements that the user can interact with. 5 | * Elements using this mixin will receive attributes reflecting the focus, pressed 6 | * and disabled states. 7 | * 8 | * @element Polymer.CoreFocusable 9 | * @status unstable 10 | */ 11 | 12 | Polymer.CoreFocusable = { 13 | 14 | mixinPublish: { 15 | 16 | /** 17 | * If true, the element is currently active either because the 18 | * user is touching it, or the button is a toggle 19 | * and is currently in the active state. 20 | * 21 | * @attribute active 22 | * @type boolean 23 | * @default false 24 | */ 25 | active: {value: false, reflect: true}, 26 | 27 | /** 28 | * If true, the element currently has focus due to keyboard 29 | * navigation. 30 | * 31 | * @attribute focused 32 | * @type boolean 33 | * @default false 34 | */ 35 | focused: {value: false, reflect: true}, 36 | 37 | /** 38 | * If true, the user is currently holding down the button. 39 | * 40 | * @attribute pressed 41 | * @type boolean 42 | * @default false 43 | */ 44 | pressed: {value: false, reflect: true}, 45 | 46 | /** 47 | * If true, the user cannot interact with this element. 48 | * 49 | * @attribute disabled 50 | * @type boolean 51 | * @default false 52 | */ 53 | disabled: {value: false, reflect: true}, 54 | 55 | /** 56 | * If true, the button toggles the active state with each tap. 57 | * Otherwise, the button becomes active when the user is holding 58 | * it down. 59 | * 60 | * @attribute toggle 61 | * @type boolean 62 | * @default false 63 | */ 64 | toggle: false 65 | 66 | }, 67 | 68 | mixinDelegates: { 69 | contextMenu: '_contextMenuAction', 70 | down: '_downAction', 71 | up: '_upAction', 72 | focus: '_focusAction', 73 | blur: '_blurAction' 74 | }, 75 | 76 | mixinObserve: { 77 | disabled: '_disabledChanged' 78 | }, 79 | 80 | _disabledChanged: function() { 81 | if (this.disabled) { 82 | this.style.pointerEvents = 'none'; 83 | this.removeAttribute('tabindex'); 84 | this.setAttribute('aria-disabled', ''); 85 | } else { 86 | this.style.pointerEvents = ''; 87 | this.setAttribute('tabindex', 0); 88 | this.removeAttribute('aria-disabled'); 89 | } 90 | }, 91 | 92 | _downAction: function() { 93 | this.pressed = true; 94 | 95 | if (this.toggle) { 96 | this.active = !this.active; 97 | } else { 98 | this.active = true; 99 | } 100 | }, 101 | 102 | // Pulling up the context menu for an item should focus it; but we need to 103 | // be careful about how we deal with down/up events surrounding context 104 | // menus. The up event typically does not fire until the context menu 105 | // closes: so we focus immediately. 106 | // 107 | // This fires _after_ downAction. 108 | _contextMenuAction: function(e) { 109 | // Note that upAction may fire _again_ on the actual up event. 110 | this._upAction(e); 111 | this._focusAction(); 112 | }, 113 | 114 | _upAction: function() { 115 | this.pressed = false; 116 | 117 | if (!this.toggle) { 118 | this.active = false; 119 | } 120 | }, 121 | 122 | _focusAction: function() { 123 | if (!this.pressed) { 124 | // Only render the "focused" state if the element gains focus due to 125 | // keyboard navigation. 126 | this.focused = true; 127 | } 128 | }, 129 | 130 | _blurAction: function() { 131 | this.focused = false; 132 | } 133 | 134 | } 135 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-focusable/demo.html: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | core-focusable 15 | 16 | 17 | 18 | 19 | 20 | 65 | 66 | 67 | 68 | 69 | 96 | 97 | 98 |
99 | 100 | button 101 | 102 | toggle 103 | 104 | disabled 105 | 106 |
107 | 108 | 109 | 110 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-focusable/polymer-mixin.js: -------------------------------------------------------------------------------- 1 | Polymer.mixin2 = function(prototype, mixin) { 2 | 3 | // adds a single mixin to prototype 4 | 5 | if (mixin.mixinPublish) { 6 | prototype.publish = prototype.publish || {}; 7 | Polymer.mixin(prototype.publish, mixin.mixinPublish); 8 | } 9 | 10 | if (mixin.mixinDelegates) { 11 | prototype.eventDelegates = prototype.eventDelegates || {}; 12 | for (var e in mixin.mixinDelegates) { 13 | if (!prototype.eventDelegates[e]) { 14 | prototype.eventDelegates[e] = mixin.mixinDelegates[e]; 15 | } 16 | } 17 | } 18 | 19 | if (mixin.mixinObserve) { 20 | prototype.observe = prototype.observe || {}; 21 | for (var o in mixin.mixinObserve) { 22 | if (!prototype.observe[o] && !prototype[o + 'Changed']) { 23 | prototype.observe[o] = mixin.mixinObserve[o]; 24 | } 25 | } 26 | } 27 | 28 | Polymer.mixin(prototype, mixin); 29 | 30 | delete prototype.mixinPublish; 31 | delete prototype.mixinDelegates; 32 | delete prototype.mixinObserve; 33 | 34 | return prototype; 35 | }; -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-icon/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "core-icon", 3 | "private": true, 4 | "dependencies": { 5 | "core-iconset": "Polymer/core-iconset#^0.5.0", 6 | "core-icons": "Polymer/core-icons#^0.5.0" 7 | }, 8 | "version": "0.5.2", 9 | "homepage": "https://github.com/Polymer/core-icon", 10 | "_release": "0.5.2", 11 | "_resolution": { 12 | "type": "version", 13 | "tag": "0.5.2", 14 | "commit": "4b6ec20167ad5c176c403ee4ca2387f73dd11532" 15 | }, 16 | "_source": "git://github.com/Polymer/core-icon.git", 17 | "_target": "^0.5.0", 18 | "_originalSource": "Polymer/core-icon" 19 | } -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-icon/README.md: -------------------------------------------------------------------------------- 1 | core-icon 2 | ========= 3 | 4 | See the [component page](http://polymer-project.org/docs/elements/core-elements.html#core-icon) for more information. 5 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-icon/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "core-icon", 3 | "private": true, 4 | "dependencies": { 5 | "core-iconset": "Polymer/core-iconset#^0.5.0", 6 | "core-icons": "Polymer/core-icons#^0.5.0" 7 | }, 8 | "version": "0.5.2" 9 | } -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-icon/core-icon.css: -------------------------------------------------------------------------------- 1 | /* Copyright (c) 2014 The Polymer Project Authors. All rights reserved. 2 | This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt 3 | The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt 4 | The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt 5 | Code distributed by Google as part of the polymer project is also 6 | subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt */ 7 | 8 | html /deep/ core-icon { 9 | display: inline-block; 10 | vertical-align: middle; 11 | background-repeat: no-repeat; 12 | fill: currentcolor; 13 | position: relative; 14 | height: 24px; 15 | width: 24px; 16 | } -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-icon/demo.html: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | core-icon 13 | 14 | 15 | 16 | 17 | 27 | 28 | 29 | 30 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-icon/index.html: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-icon/metadata.html: -------------------------------------------------------------------------------- 1 | 10 | 11 | 12 | 15 | 16 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-icons/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "core-icons", 3 | "private": true, 4 | "dependencies": { 5 | "core-icon": "Polymer/core-icon#^0.5.0", 6 | "core-iconset-svg": "Polymer/core-iconset-svg#^0.5.0", 7 | "polymer": "Polymer/polymer#^0.5.0" 8 | }, 9 | "version": "0.5.2", 10 | "homepage": "https://github.com/Polymer/core-icons", 11 | "_release": "0.5.2", 12 | "_resolution": { 13 | "type": "version", 14 | "tag": "0.5.2", 15 | "commit": "d08341261f7b386fb331b1dd798fcd71727e7c85" 16 | }, 17 | "_source": "git://github.com/Polymer/core-icons.git", 18 | "_target": "^0.5.0", 19 | "_originalSource": "Polymer/core-icons" 20 | } -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-icons/README.md: -------------------------------------------------------------------------------- 1 | core-icons 2 | ========= 3 | 4 | See the [component page](http://polymer-project.org/docs/elements/core-elements.html#core-icons) for more information. 5 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-icons/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "core-icons", 3 | "private": true, 4 | "dependencies": { 5 | "core-icon": "Polymer/core-icon#^0.5.0", 6 | "core-iconset-svg": "Polymer/core-iconset-svg#^0.5.0", 7 | "polymer": "Polymer/polymer#^0.5.0" 8 | }, 9 | "version": "0.5.2" 10 | } -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-icons/demo.html: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 13 | 14 | core-icons 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 76 | 77 | 78 | 79 | 94 | 95 | 96 | 97 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-icons/index.html: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-icons/png-icons.html: -------------------------------------------------------------------------------- 1 | 9 | 10 | 11 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-iconset-svg/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "core-iconset-svg", 3 | "private": true, 4 | "dependencies": { 5 | "polymer": "Polymer/polymer#^0.5.0", 6 | "core-iconset": "Polymer/core-iconset#^0.5.0" 7 | }, 8 | "version": "0.5.2", 9 | "homepage": "https://github.com/Polymer/core-iconset-svg", 10 | "_release": "0.5.2", 11 | "_resolution": { 12 | "type": "version", 13 | "tag": "0.5.2", 14 | "commit": "998ef1ee71f358cd0e95e6085945c0182d86c224" 15 | }, 16 | "_source": "git://github.com/Polymer/core-iconset-svg.git", 17 | "_target": "^0.5.0", 18 | "_originalSource": "Polymer/core-iconset-svg" 19 | } -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-iconset-svg/README.md: -------------------------------------------------------------------------------- 1 | core-iconset-svg 2 | ========= 3 | 4 | See the [component page](http://polymer-project.org/docs/elements/core-elements.html#core-iconset-svg) for more information. 5 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-iconset-svg/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "core-iconset-svg", 3 | "private": true, 4 | "dependencies": { 5 | "polymer": "Polymer/polymer#^0.5.0", 6 | "core-iconset": "Polymer/core-iconset#^0.5.0" 7 | }, 8 | "version": "0.5.2" 9 | } -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-iconset-svg/demo.html: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 13 | 14 | core-iconset-svg 15 | 16 | 17 | 46 | 47 | 48 | 49 | 57 | 65 | 66 | 67 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-iconset-svg/index.html: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-iconset/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "core-iconset", 3 | "private": true, 4 | "dependencies": { 5 | "polymer": "Polymer/polymer#^0.5.0", 6 | "core-meta": "Polymer/core-meta#^0.5.0", 7 | "core-icon": "Polymer/core-icon#^0.5.0" 8 | }, 9 | "version": "0.5.2", 10 | "homepage": "https://github.com/Polymer/core-iconset", 11 | "_release": "0.5.2", 12 | "_resolution": { 13 | "type": "version", 14 | "tag": "0.5.2", 15 | "commit": "fabcd6967770984f460930ec1059b950b4126828" 16 | }, 17 | "_source": "git://github.com/Polymer/core-iconset.git", 18 | "_target": "^0.5.0", 19 | "_originalSource": "Polymer/core-iconset" 20 | } -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-iconset/README.md: -------------------------------------------------------------------------------- 1 | core-iconset 2 | ============ 3 | 4 | See the [component page](http://polymer-project.org/docs/elements/core-elements.html#core-iconset) for more information. 5 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-iconset/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "core-iconset", 3 | "private": true, 4 | "dependencies": { 5 | "polymer": "Polymer/polymer#^0.5.0", 6 | "core-meta": "Polymer/core-meta#^0.5.0", 7 | "core-icon": "Polymer/core-icon#^0.5.0" 8 | }, 9 | "version": "0.5.2" 10 | } -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-iconset/demo.html: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 13 | 14 | core-iconset 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 26 | 27 | 28 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 |
42 | 43 | 49 | 50 |
51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 |
60 | 61 | 62 | 63 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-iconset/index.html: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-iconset/my-icons-big.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaadin/serverside-elements/d61ac36112bbd5b030ba4c9b0e137a14da9dc97c/elements-demo/src/main/webapp/VAADIN/bower_components/core-iconset/my-icons-big.png -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-iconset/my-icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vaadin/serverside-elements/d61ac36112bbd5b030ba4c9b0e137a14da9dc97c/elements-demo/src/main/webapp/VAADIN/bower_components/core-iconset/my-icons.png -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-input/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "core-input", 3 | "dependencies": { 4 | "polymer": "Polymer/polymer#^0.5.0" 5 | }, 6 | "devDependencies": { 7 | "web-component-tester": "Polymer/web-component-tester#^1.1.4" 8 | }, 9 | "version": "0.5.2", 10 | "homepage": "https://github.com/Polymer/core-input", 11 | "_release": "0.5.2", 12 | "_resolution": { 13 | "type": "version", 14 | "tag": "0.5.2", 15 | "commit": "d6d72e5fc2bef134b937562e13a728c6a0241579" 16 | }, 17 | "_source": "git://github.com/Polymer/core-input.git", 18 | "_target": "^0.5.0", 19 | "_originalSource": "Polymer/core-input" 20 | } -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-input/README.md: -------------------------------------------------------------------------------- 1 | core-input 2 | ========== 3 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-input/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "core-input", 3 | "dependencies": { 4 | "polymer": "Polymer/polymer#^0.5.0" 5 | }, 6 | "devDependencies": { 7 | "web-component-tester": "Polymer/web-component-tester#^1.1.4" 8 | }, 9 | "version": "0.5.2" 10 | } -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-input/core-input.css: -------------------------------------------------------------------------------- 1 | /* 2 | * @license 3 | * Copyright (c) 2014 The Polymer Project Authors. All rights reserved. 4 | * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt 5 | * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt 6 | * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt 7 | * Code distributed by Google as part of the polymer project is also 8 | * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt 9 | */ 10 | 11 | :host { 12 | display: inline-block; 13 | text-align: inherit; 14 | position: relative; 15 | width: 20em; 16 | } 17 | 18 | :host:hover { 19 | cursor: text; 20 | } 21 | 22 | input, 23 | textarea { 24 | font: inherit; 25 | color: inherit; 26 | width: 100%; 27 | margin: 0; 28 | padding: 0; 29 | background-color: transparent; 30 | border: none; 31 | outline: none; 32 | width: 100%; 33 | } 34 | 35 | textarea { 36 | resize: none; 37 | } 38 | 39 | textarea[rows=fit] { 40 | height: 100%; 41 | } -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-input/demo.html: -------------------------------------------------------------------------------- 1 | 10 | 11 | 12 | 13 | 14 | 15 | core-input 16 | 17 | 18 | 19 | 20 | 21 | 41 | 42 | 43 | 44 | 45 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-input/index.html: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-input/metadata.html: -------------------------------------------------------------------------------- 1 | 10 | 11 | 12 | 13 | 14 | 15 | 18 | 19 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-input/test/a11y.html: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 13 | core-input a11y tests 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 53 | 54 | 55 | 56 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-input/test/basic.html: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 13 | core-input basic tests 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 58 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-input/test/index.html: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 13 | 14 | core-input tests 15 | 16 | 17 | 18 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-meta/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "core-meta", 3 | "private": true, 4 | "dependencies": { 5 | "polymer": "Polymer/polymer#^0.5.0" 6 | }, 7 | "version": "0.5.2", 8 | "homepage": "https://github.com/Polymer/core-meta", 9 | "_release": "0.5.2", 10 | "_resolution": { 11 | "type": "version", 12 | "tag": "0.5.2", 13 | "commit": "d16e6c42ed1a4a2b3ada1d978859c85bdcedb79f" 14 | }, 15 | "_source": "git://github.com/Polymer/core-meta.git", 16 | "_target": "^0.5.0", 17 | "_originalSource": "Polymer/core-meta" 18 | } -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-meta/README.md: -------------------------------------------------------------------------------- 1 | core-meta 2 | ========= 3 | 4 | See the [component page](http://polymer-project.org/docs/elements/core-elements.html#core-meta) for more information. 5 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-meta/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "core-meta", 3 | "private": true, 4 | "dependencies": { 5 | "polymer": "Polymer/polymer#^0.5.0" 6 | }, 7 | "version": "0.5.2" 8 | } -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-meta/demo.html: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | core-meta 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 |

meta-data

29 | 30 | 33 | 34 |

meta-data (type: fruit)

35 | 36 | 39 | 40 | 56 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-meta/index.html: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-range/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "core-range", 3 | "private": true, 4 | "dependencies": { 5 | "polymer": "Polymer/polymer#^0.5.0", 6 | "core-input": "Polymer/core-input#^0.5.0" 7 | }, 8 | "version": "0.5.2", 9 | "homepage": "https://github.com/Polymer/core-range", 10 | "_release": "0.5.2", 11 | "_resolution": { 12 | "type": "version", 13 | "tag": "0.5.2", 14 | "commit": "e28dc17a46c09b68b9b0b8fc30c4ea71c5ce3444" 15 | }, 16 | "_source": "git://github.com/Polymer/core-range.git", 17 | "_target": "^0.5.0", 18 | "_originalSource": "Polymer/core-range" 19 | } -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-range/README.md: -------------------------------------------------------------------------------- 1 | core-range 2 | ========== 3 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-range/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "core-range", 3 | "private": true, 4 | "dependencies": { 5 | "polymer": "Polymer/polymer#^0.5.0", 6 | "core-input": "Polymer/core-input#^0.5.0" 7 | }, 8 | "version": "0.5.2" 9 | } -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-range/core-range.html: -------------------------------------------------------------------------------- 1 | 9 | 10 | 25 | 26 | 27 | 28 | 29 | 108 | 109 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-range/demo.html: -------------------------------------------------------------------------------- 1 | 10 | 11 | 12 | 13 | core-range 14 | 15 | 16 | 17 | 18 | 19 | 20 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-range/index.html: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-range/test/basic.html: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 13 | core-range-basic 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 101 | 102 | 103 | 104 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-range/test/index.html: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 13 | 14 | Tests 15 | 16 | 17 | 18 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-shared-lib/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "core-shared-lib", 3 | "private": true, 4 | "dependencies": { 5 | "polymer": "Polymer/polymer#^0.5.0" 6 | }, 7 | "devDependencies": { 8 | "polymer-test-tools": "Polymer/polymer-test-tools#master" 9 | }, 10 | "version": "0.5.2", 11 | "homepage": "https://github.com/Polymer/core-shared-lib", 12 | "_release": "0.5.2", 13 | "_resolution": { 14 | "type": "version", 15 | "tag": "0.5.2", 16 | "commit": "ad480f068028c6091c0d4f8e9dc0c7f38043d851" 17 | }, 18 | "_source": "git://github.com/Polymer/core-shared-lib.git", 19 | "_target": "~0.5.1", 20 | "_originalSource": "Polymer/core-shared-lib" 21 | } -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-shared-lib/README.md: -------------------------------------------------------------------------------- 1 | core-shared-lib 2 | =============== 3 | 4 | See the [component landing page](http://polymer-project.org/docs/elements/core-elements.html#core-shared-lib) for more information. 5 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-shared-lib/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "core-shared-lib", 3 | "private": true, 4 | "dependencies": { 5 | "polymer": "Polymer/polymer#^0.5.0" 6 | }, 7 | "devDependencies": { 8 | "polymer-test-tools": "Polymer/polymer-test-tools#master" 9 | }, 10 | "version": "0.5.2" 11 | } -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-shared-lib/demo.html: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-shared-lib/index.html: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-shared-lib/tests/html/core-shared-lib.html: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | core-shared-lib 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 28 | 29 | 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-shared-lib/tests/js/htmltests.js: -------------------------------------------------------------------------------- 1 | htmlSuite('core-shared-lib', function() { 2 | htmlTest('html/core-shared-lib.html'); 3 | }); -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-shared-lib/tests/runner.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Web Component Test Runner 7 | 8 | 9 | 10 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-shared-lib/tests/tests.json: -------------------------------------------------------------------------------- 1 | { 2 | "tools": ["chai", "mocha-tdd"], 3 | "tests": [ 4 | "js/htmltests.js" 5 | ] 6 | } -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-style/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "core-style", 3 | "private": true, 4 | "dependencies": { 5 | "polymer": "Polymer/polymer#^0.5.0" 6 | }, 7 | "version": "0.5.2", 8 | "homepage": "https://github.com/Polymer/core-style", 9 | "_release": "0.5.2", 10 | "_resolution": { 11 | "type": "version", 12 | "tag": "0.5.2", 13 | "commit": "bc692e4d4670de5378893af9778b2de93245d640" 14 | }, 15 | "_source": "git://github.com/Polymer/core-style.git", 16 | "_target": "^0.5.0", 17 | "_originalSource": "Polymer/core-style" 18 | } -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-style/README.md: -------------------------------------------------------------------------------- 1 | core-style 2 | ========== 3 | 4 | See the [component page](http://polymer-project.org/docs/elements/core-elements.html#core-style) for more information. 5 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-style/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "core-style", 3 | "private": true, 4 | "dependencies": { 5 | "polymer": "Polymer/polymer#^0.5.0" 6 | }, 7 | "version": "0.5.2" 8 | } -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-style/demo.html: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | core-style 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 34 | 35 | 54 | 55 | 56 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-style/elements.html: -------------------------------------------------------------------------------- 1 | 10 | 11 | 12 | 13 | :host { 14 | height: 54px; 15 | font-size: 1.3rem; 16 | background-color: steelblue; 17 | color: white; 18 | } 19 | 20 | polyfill-next-selector { 21 | content: ':host > *'; 22 | } 23 | ::content > * { 24 | margin: 8px; 25 | } 26 | 27 | 28 | 29 | 33 | 34 | 35 | 36 | :host { 37 | display: inline-block; 38 | height: 200px; 39 | width: calc({{ 100 / g.columns }}% - 16px); 40 | font-size: 50px; 41 | background: gray; 42 | margin: 8px; 43 | } 44 | 45 | 46 | 49 | 50 | 51 | 55 | 56 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-style/index.html: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/core-style/my-theme.html: -------------------------------------------------------------------------------- 1 | 10 | 11 | 12 | 20 | 21 | 22 | body { 23 | font-family: sans-serif; 24 | } 25 | 26 | section { 27 | overflow: auto; 28 | } 29 | 30 | button { 31 | border: 1px solid {{g.theme.colorOne | cycle(-50)}}; 32 | border-radius: 4px; 33 | background-color: {{g.theme.colorOne}}; 34 | color: {{g.theme.colorTwo}}; 35 | } 36 | 37 | button:active { 38 | border: 1px solid {{g.theme.colorTwo | cycle(50)}}; 39 | border-radius: 4px; 40 | background-color: {{g.theme.colorTwo}}; 41 | color: {{g.theme.colorOne}}; 42 | } 43 | 44 | 49 | 50 | 51 | 52 | :host { 53 | border-bottom: 8px solid {{g.theme.colorOne}}; 54 | color: {{g.theme.colorOne | cycle(100)}}; 55 | background-color: {{g.theme.colorTwo}}; 56 | } 57 | 58 | 59 | 60 | :host { 61 | box-sizing: border-box; 62 | background-color: {{g.theme.colorOne}}; 63 | border: 8px solid {{g.theme.colorOne | cycle(50)}}; 64 | color: {{g.theme.colorOne | cycle(-100)}}; 65 | } 66 | 67 | :host(:nth-of-type(2n + 1)) { 68 | background-color: {{g.theme.colorTwo}}; 69 | border: 8px solid {{g.theme.colorTwo | cycle(-50)}}; 70 | color: {{g.theme.colorTwo | cycle(100)}} 71 | } 72 | 73 | 74 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/font-roboto/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "font-roboto", 3 | "homepage": "https://github.com/Polymer/font-roboto", 4 | "version": "0.5.2", 5 | "_release": "0.5.2", 6 | "_resolution": { 7 | "type": "version", 8 | "tag": "0.5.2", 9 | "commit": "868680d1e886091e9bc2539659ef6626a8cee5e8" 10 | }, 11 | "_source": "git://github.com/Polymer/font-roboto.git", 12 | "_target": "^0.5.0", 13 | "_originalSource": "Polymer/font-roboto" 14 | } -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/font-roboto/roboto.html: -------------------------------------------------------------------------------- 1 | 9 | 10 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/google-apis/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "google-apis", 3 | "version": "0.4.3", 4 | "homepage": "http://googlewebcomponents.github.io/google-apis", 5 | "description": "Web components to load Google API libraries", 6 | "main": "google-apis.html", 7 | "authors": [ 8 | "Scott Miles ", 9 | "Eric Bidelman " 10 | ], 11 | "license": "Apache2", 12 | "ignore": [ 13 | "**/.*", 14 | "node_modules", 15 | "bower_components", 16 | "test", 17 | "tests", 18 | "../" 19 | ], 20 | "keywords": [ 21 | "web-component", 22 | "web-components", 23 | "polymer", 24 | "google", 25 | "apis" 26 | ], 27 | "dependencies": { 28 | "core-shared-lib": "Polymer/core-shared-lib#~0.5.1" 29 | }, 30 | "_release": "0.4.3", 31 | "_resolution": { 32 | "type": "version", 33 | "tag": "0.4.3", 34 | "commit": "a4f49a94f8364ae2e4271beb859121dfa083ae8b" 35 | }, 36 | "_source": "git://github.com/GoogleWebComponents/google-apis.git", 37 | "_target": "~0.4.2", 38 | "_originalSource": "GoogleWebComponents/google-apis" 39 | } -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/google-apis/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright 2014 Google Inc 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. 14 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/google-apis/README.md: -------------------------------------------------------------------------------- 1 | google-apis 2 | =========== 3 | 4 | See the [component landing page](http://googlewebcomponents.github.io/google-apis) for more information. 5 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/google-apis/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "google-apis", 3 | "version": "0.4.3", 4 | "homepage": "http://googlewebcomponents.github.io/google-apis", 5 | "description": "Web components to load Google API libraries", 6 | "main": "google-apis.html", 7 | "authors": [ 8 | "Scott Miles ", 9 | "Eric Bidelman " 10 | ], 11 | "license": "Apache2", 12 | "ignore": [ 13 | "**/.*", 14 | "node_modules", 15 | "bower_components", 16 | "test", 17 | "tests", 18 | "../" 19 | ], 20 | "keywords": [ 21 | "web-component", 22 | "web-components", 23 | "polymer", 24 | "google", 25 | "apis" 26 | ], 27 | "dependencies": { 28 | "core-shared-lib": "Polymer/core-shared-lib#~0.5.1" 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/google-apis/demo.html: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | google-apis Demo 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/google-apis/google-apis.html: -------------------------------------------------------------------------------- 1 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/google-apis/google-jsapi.html: -------------------------------------------------------------------------------- 1 | 9 | 10 | 11 | 12 | 13 | 23 | 24 | 43 | 44 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/google-apis/google-plusone-api.html: -------------------------------------------------------------------------------- 1 | 9 | 10 | 11 | 12 | 13 | 22 | 23 | 42 | 43 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/google-apis/google-youtube-api.html: -------------------------------------------------------------------------------- 1 | 9 | 10 | 11 | 12 | 13 | 22 | 23 | 44 | 45 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/google-apis/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/google-map/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "google-map", 3 | "version": "0.4.0", 4 | "homepage": "http://googlewebcomponents.github.io/google-map", 5 | "description": "Google Maps web components", 6 | "main": "google-map.html", 7 | "authors": [ 8 | "Frankie Fu ", 9 | "Scott Miles ", 10 | "Eric Bidelman " 11 | ], 12 | "license": "Apache-2", 13 | "ignore": [ 14 | "**/.*", 15 | "node_modules", 16 | "bower_components", 17 | "test", 18 | "tests", 19 | "../" 20 | ], 21 | "keywords": [ 22 | "web-component", 23 | "web-components", 24 | "polymer", 25 | "google", 26 | "apis", 27 | "maps" 28 | ], 29 | "dependencies": { 30 | "google-apis": "GoogleWebComponents/google-apis#~0.4.2" 31 | }, 32 | "devDependencies": { 33 | "web-component-tester": "Polymer/web-component-tester#^1.1.2" 34 | }, 35 | "_release": "0.4.0", 36 | "_resolution": { 37 | "type": "version", 38 | "tag": "0.4.0", 39 | "commit": "754ff8c58e0f4ffec74b5e8602984911977e0319" 40 | }, 41 | "_source": "git://github.com/GoogleWebComponents/google-map.git", 42 | "_target": "~0.4.0", 43 | "_originalSource": "GoogleWebComponents/google-map", 44 | "_direct": true 45 | } -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/google-map/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright 2014 Google Inc 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. 14 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/google-map/README.md: -------------------------------------------------------------------------------- 1 | google-map 2 | ========== 3 | 4 | See the [component page](http://googlewebcomponents.github.io/google-map) for more information. 5 | 6 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/google-map/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "google-map", 3 | "version": "0.4.0", 4 | "homepage": "http://googlewebcomponents.github.io/google-map", 5 | "description": "Google Maps web components", 6 | "main": "google-map.html", 7 | "authors": [ 8 | "Frankie Fu ", 9 | "Scott Miles ", 10 | "Eric Bidelman " 11 | ], 12 | "license": "Apache-2", 13 | "ignore": [ 14 | "**/.*", 15 | "node_modules", 16 | "bower_components", 17 | "test", 18 | "tests", 19 | "../" 20 | ], 21 | "keywords": [ 22 | "web-component", 23 | "web-components", 24 | "polymer", 25 | "google", 26 | "apis", 27 | "maps" 28 | ], 29 | "dependencies": { 30 | "google-apis": "GoogleWebComponents/google-apis#~0.4.2" 31 | }, 32 | "devDependencies": { 33 | "web-component-tester": "Polymer/web-component-tester#^1.1.2" 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/google-map/demo.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Google Map demo 7 | 8 | 9 | 10 | 17 | 18 | 19 | 20 | 21 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/google-map/google-map-search.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 28 | 29 | 38 | 39 | 94 | 95 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/google-map/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 15 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/google-map/metadata.html: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | 9 | 10 | 11 | 12 | 15 | 16 | 17 | 20 | 21 | 22 | 23 | 26 | 27 | 28 | 31 | 32 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/paper-button/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "paper-button", 3 | "private": true, 4 | "dependencies": { 5 | "polymer": "Polymer/polymer#^0.5.0", 6 | "core-focusable": "Polymer/core-focusable#^0.5.0", 7 | "core-icon": "Polymer/core-icon#^0.5.0", 8 | "paper-ripple": "Polymer/paper-ripple#^0.5.0", 9 | "paper-shadow": "Polymer/paper-shadow#^0.5.0" 10 | }, 11 | "devDependencies": { 12 | "web-component-tester": "Polymer/web-component-tester#^1.1.4" 13 | }, 14 | "version": "0.5.2", 15 | "homepage": "https://github.com/Polymer/paper-button", 16 | "_release": "0.5.2", 17 | "_resolution": { 18 | "type": "version", 19 | "tag": "0.5.2", 20 | "commit": "8fc1b68fcf590bc867434ad0683b2971ecd5fe53" 21 | }, 22 | "_source": "git://github.com/Polymer/paper-button.git", 23 | "_target": "~0.5.2", 24 | "_originalSource": "Polymer/paper-button", 25 | "_direct": true 26 | } -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/paper-button/README.md: -------------------------------------------------------------------------------- 1 | paper-button 2 | =================== 3 | 4 | See the [component page](http://www.polymer-project.org/docs/elements/paper-elements.html#paper-button) for more information. 5 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/paper-button/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "paper-button", 3 | "private": true, 4 | "dependencies": { 5 | "polymer": "Polymer/polymer#^0.5.0", 6 | "core-focusable": "Polymer/core-focusable#^0.5.0", 7 | "core-icon": "Polymer/core-icon#^0.5.0", 8 | "paper-ripple": "Polymer/paper-ripple#^0.5.0", 9 | "paper-shadow": "Polymer/paper-shadow#^0.5.0" 10 | }, 11 | "devDependencies": { 12 | "web-component-tester": "Polymer/web-component-tester#^1.1.4" 13 | }, 14 | "version": "0.5.2" 15 | } -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/paper-button/demo.html: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | paper-button 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 64 | 65 | 66 | 67 |
68 | 69 |
Flat buttons
70 | 71 | button 72 | colored 73 | disabled 74 | noink 75 | 76 |
77 | 78 |
79 | 80 |
81 | 82 |
Raised buttons
83 | 84 | button 85 | colored 86 | disabled 87 | noink 88 | 89 |
90 | 91 |
92 | 93 |
Custom button content
94 | 95 | 96 | 97 | ok 98 | 99 | 100 | 101 | cancel 102 | 103 |
104 | 105 | link 106 | 107 | 108 |
109 | 110 |
111 | 112 |
Styling options
113 | 114 | hover 115 | custom ripple 116 | 117 |
118 | 119 | 133 | 134 | 135 | 136 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/paper-button/index.html: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/paper-button/metadata.html: -------------------------------------------------------------------------------- 1 | 10 | 11 | 14 | 17 | 18 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/paper-button/test/a11y.html: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 13 | paper-button a11y tests 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | button 25 | 26 | 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/paper-button/test/basic.html: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 13 | paper-button basic tests 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | button 25 | 26 | 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/paper-button/test/index.html: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 13 | 14 | paper-button tests 15 | 16 | 17 | 18 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/paper-input/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "paper-input", 3 | "private": true, 4 | "dependencies": { 5 | "polymer": "Polymer/polymer#^0.5.0", 6 | "core-icon": "Polymer/core-icon#^0.5.0", 7 | "core-icons": "Polymer/core-icons#^0.5.0", 8 | "core-input": "Polymer/core-input#^0.5.0", 9 | "core-style": "Polymer/core-style#^0.5.0" 10 | }, 11 | "devDependencies": { 12 | "web-component-tester": "Polymer/web-component-tester#^1.0.0" 13 | }, 14 | "version": "0.5.2", 15 | "homepage": "https://github.com/Polymer/paper-input", 16 | "_release": "0.5.2", 17 | "_resolution": { 18 | "type": "version", 19 | "tag": "0.5.2", 20 | "commit": "8739c6e94d7c35c5c5e9509986c5f90c5f177ce4" 21 | }, 22 | "_source": "git://github.com/Polymer/paper-input.git", 23 | "_target": "^0.5.0", 24 | "_originalSource": "Polymer/paper-input" 25 | } -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/paper-input/.gitignore: -------------------------------------------------------------------------------- 1 | vulcanized.html 2 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/paper-input/README.md: -------------------------------------------------------------------------------- 1 | paper-input 2 | =================== 3 | 4 | See the [component page](http://www.polymer-project.org/docs/elements/paper-elements.html#paper-input) for more information. 5 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/paper-input/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "paper-input", 3 | "private": true, 4 | "dependencies": { 5 | "polymer": "Polymer/polymer#^0.5.0", 6 | "core-icon": "Polymer/core-icon#^0.5.0", 7 | "core-icons": "Polymer/core-icons#^0.5.0", 8 | "core-input": "Polymer/core-input#^0.5.0", 9 | "core-style": "Polymer/core-style#^0.5.0" 10 | }, 11 | "devDependencies": { 12 | "web-component-tester": "Polymer/web-component-tester#^1.0.0" 13 | }, 14 | "version": "0.5.2" 15 | } -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/paper-input/index.html: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/paper-input/metadata.html: -------------------------------------------------------------------------------- 1 | 10 | 11 | 12 | 15 | 16 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/paper-input/paper-input-decorator.css: -------------------------------------------------------------------------------- 1 | /* 2 | * @license 3 | * Copyright (c) 2014 The Polymer Project Authors. All rights reserved. 4 | * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt 5 | * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt 6 | * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt 7 | * Code distributed by Google as part of the polymer project is also 8 | * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt 9 | */ 10 | 11 | :host { 12 | display: inline-block; 13 | outline: none; 14 | text-align: inherit; 15 | padding: 0.75em 0; 16 | } 17 | 18 | polyfill-next-selector { 19 | content: '.input-body > :not(.label)'; 20 | } 21 | ::content > *, 22 | ::content > input[is="core-input"] { 23 | padding: 0; 24 | margin: 0.5em 0 0.25em; 25 | width: 100%; 26 | } 27 | 28 | polyfill-next-selector { 29 | content: 'input, textarea'; 30 | } 31 | ::content input, 32 | ::content input[is=core-input], 33 | ::content textarea { 34 | font: inherit; 35 | color: inherit; 36 | background-color: transparent; 37 | border: none; 38 | outline: none; 39 | } 40 | 41 | polyfill-next-selector { 42 | content: ':invalid'; 43 | } 44 | ::content input:invalid, 45 | ::content textarea:invalid { 46 | box-shadow: none; 47 | } 48 | 49 | polyfill-next-selector { 50 | content: 'textarea'; 51 | } 52 | ::content textarea { 53 | resize: none; 54 | } 55 | 56 | [invisible] { 57 | visibility: hidden; 58 | } 59 | 60 | [animated] { 61 | visibility: visible !important; 62 | -webkit-transition: -webkit-transform 0.2s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1); 63 | transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1); 64 | } 65 | 66 | .floated-label { 67 | font-size: 0.75em; 68 | background: transparent; 69 | white-space: nowrap; 70 | } 71 | 72 | .mirror-text { 73 | padding: 0.5em 0 0.25em; 74 | max-width: 100%; 75 | white-space: nowrap; 76 | } 77 | 78 | :host([multiline]) .mirror-text { 79 | white-space: pre-wrap; 80 | word-wrap: break-word; 81 | } 82 | 83 | .label { 84 | padding: 0.5em 0 0.25em; 85 | background: transparent; 86 | pointer-events: none; 87 | } 88 | 89 | .label-text { 90 | overflow: hidden; 91 | text-overflow: ellipsis; 92 | white-space: nowrap; 93 | display: inline-block; 94 | max-width: 100%; 95 | -moz-transform-origin: 0% 0%; 96 | -webkit-transform-origin: 0% 0%; 97 | transform-origin: 0% 0%; 98 | } 99 | 100 | .underline { 101 | height: 0px; 102 | overflow: visible; 103 | } 104 | 105 | :host([disabled]) .underline { 106 | border-bottom: 1px dashed #757575; 107 | } 108 | 109 | .unfocused-underline { 110 | height: 1px; 111 | } 112 | 113 | .focused-underline { 114 | height: 2px; 115 | -webkit-transform: none; 116 | transform: none; 117 | } 118 | 119 | .focused-underline[invisible] { 120 | -webkit-transform: scale3d(0,1,1); 121 | transform: scale3d(0,1,1); 122 | } 123 | 124 | .error-text { 125 | font-size: 0.75em; 126 | padding: 0.5em 0; 127 | } 128 | 129 | .error-icon { 130 | height: 20px; 131 | width: 20px; 132 | } 133 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/paper-input/test/a11y.html: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 13 | paper-input a11y tests 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 |
38 | 39 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/paper-input/test/index.html: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 13 | 14 | Tests 15 | 16 | 17 | 18 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/paper-progress/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "paper-progress", 3 | "private": true, 4 | "dependencies": { 5 | "core-range": "Polymer/core-range#^0.5.0", 6 | "paper-button": "Polymer/paper-button#^0.5.0" 7 | }, 8 | "version": "0.5.2", 9 | "homepage": "https://github.com/Polymer/paper-progress", 10 | "_release": "0.5.2", 11 | "_resolution": { 12 | "type": "version", 13 | "tag": "0.5.2", 14 | "commit": "3dfcacf0695a23f8ab56c95f2dfa2597fc5595ab" 15 | }, 16 | "_source": "git://github.com/Polymer/paper-progress.git", 17 | "_target": "^0.5.0", 18 | "_originalSource": "Polymer/paper-progress" 19 | } -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/paper-progress/README.md: -------------------------------------------------------------------------------- 1 | paper-progress 2 | =================== 3 | 4 | See the [component page](http://www.polymer-project.org/docs/elements/paper-elements.html#paper-progress) for more information. 5 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/paper-progress/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "paper-progress", 3 | "private": true, 4 | "dependencies": { 5 | "core-range": "Polymer/core-range#^0.5.0", 6 | "paper-button": "Polymer/paper-button#^0.5.0" 7 | }, 8 | "version": "0.5.2" 9 | } -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/paper-progress/demo.html: -------------------------------------------------------------------------------- 1 | 10 | 11 | 12 | 13 | paper-progress 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | Start 54 | 55 |


56 | 57 |
58 | 59 |
60 | 61 |
62 | 63 |
64 | 65 |
66 | 67 |
68 | 69 |
70 | 71 |
72 | 73 |
74 | 75 | 111 | 112 | 113 | 114 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/paper-progress/index.html: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/paper-progress/metadata.html: -------------------------------------------------------------------------------- 1 | 10 | 11 | 14 | 17 | 18 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/paper-progress/paper-progress.css: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2014 The Polymer Project Authors. All rights reserved. 3 | This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt 4 | The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt 5 | The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt 6 | Code distributed by Google as part of the polymer project is also 7 | subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt 8 | */ 9 | 10 | :host { 11 | display: inline-block; 12 | width: 200px; 13 | height: 4px; 14 | } 15 | 16 | #progressContainer { 17 | position: relative; 18 | height: 100%; 19 | background-color: #c8c8c8; 20 | overflow: hidden; 21 | } 22 | 23 | #activeProgress, 24 | #secondaryProgress { 25 | -webkit-transform-origin: left center; 26 | transform-origin: left center; 27 | -webkit-transform: scaleX(0); 28 | transform: scaleX(0); 29 | } 30 | 31 | #activeProgress { 32 | background-color: #0f9d58; 33 | } 34 | 35 | #secondaryProgress { 36 | background-color: #87ceac; 37 | } 38 | 39 | #activeProgress.indeterminate { 40 | -webkit-transform-origin: center center; 41 | transform-origin: center center; 42 | -webkit-animation: indeterminate-bar 1s linear infinite; 43 | animation: indeterminate-bar 1s linear infinite; 44 | } 45 | 46 | @-webkit-keyframes indeterminate-bar { 47 | 0% { 48 | -webkit-transform: translate(-50%) scaleX(0); 49 | } 50 | 50% { 51 | -webkit-transform: translate(0%) scaleX(0.3); 52 | } 53 | 100% { 54 | -webkit-transform: translate(50%) scaleX(0); 55 | } 56 | } 57 | 58 | @keyframes indeterminate-bar { 59 | 0% { 60 | transform: translate(-50%) scaleX(0); 61 | } 62 | 50% { 63 | transform: translate(0%) scaleX(0.3); 64 | } 65 | 100% { 66 | transform: translate(50%) scaleX(0); 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/paper-ripple/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "paper-ripple", 3 | "private": true, 4 | "dependencies": { 5 | "core-icon": "Polymer/core-icon#^0.5.0", 6 | "core-icons": "Polymer/core-icons#^0.5.0", 7 | "font-roboto": "Polymer/font-roboto#^0.5.0" 8 | }, 9 | "devDependencies": { 10 | "web-component-tester": "Polymer/web-component-tester#^1.0.0" 11 | }, 12 | "version": "0.5.2", 13 | "homepage": "https://github.com/Polymer/paper-ripple", 14 | "_release": "0.5.2", 15 | "_resolution": { 16 | "type": "version", 17 | "tag": "0.5.2", 18 | "commit": "0f2d08a81d6ec91924772b9b990937c6f1da58b4" 19 | }, 20 | "_source": "git://github.com/Polymer/paper-ripple.git", 21 | "_target": "^0.5.0", 22 | "_originalSource": "Polymer/paper-ripple" 23 | } -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/paper-ripple/README.md: -------------------------------------------------------------------------------- 1 | paper-ripple 2 | ============ 3 | 4 | See the [component page](http://www.polymer-project.org/docs/elements/paper-elements.html#paper-ripple) for more information. 5 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/paper-ripple/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "paper-ripple", 3 | "private": true, 4 | "dependencies": { 5 | "core-icon": "Polymer/core-icon#^0.5.0", 6 | "core-icons": "Polymer/core-icons#^0.5.0", 7 | "font-roboto": "Polymer/font-roboto#^0.5.0" 8 | }, 9 | "devDependencies": { 10 | "web-component-tester": "Polymer/web-component-tester#^1.0.0" 11 | }, 12 | "version": "0.5.2" 13 | } -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/paper-ripple/index.html: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/paper-ripple/metadata.html: -------------------------------------------------------------------------------- 1 | 10 | 11 | 12 | 15 | 16 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/paper-ripple/test/index.html: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 13 | 14 | Tests 15 | 16 | 17 | 18 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/paper-ripple/test/position.html: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 13 | 14 | paper-ripple position tests 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 57 | 58 | 59 | 60 | 61 |
62 | 63 | tap here 64 |
65 | 66 |
67 | 68 | tap here 69 |
70 | 71 | 107 | 108 | 109 | 110 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/paper-shadow/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "paper-shadow", 3 | "private": true, 4 | "dependencies": { 5 | "polymer": "Polymer/polymer#^0.5.0" 6 | }, 7 | "devDependencies": { 8 | "web-component-tester": "Polymer/web-component-tester#^1.1.4" 9 | }, 10 | "version": "0.5.2", 11 | "homepage": "https://github.com/Polymer/paper-shadow", 12 | "_release": "0.5.2", 13 | "_resolution": { 14 | "type": "version", 15 | "tag": "0.5.2", 16 | "commit": "93d17c572223383944db8ac5c117d492add4651c" 17 | }, 18 | "_source": "git://github.com/Polymer/paper-shadow.git", 19 | "_target": "^0.5.0", 20 | "_originalSource": "Polymer/paper-shadow" 21 | } -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/paper-shadow/README.md: -------------------------------------------------------------------------------- 1 | paper-shadow 2 | ============ 3 | 4 | See the [component page](http://polymer-project.org/docs/elements/paper-elements.html#paper-shadow) for more information. 5 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/paper-shadow/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "paper-shadow", 3 | "private": true, 4 | "dependencies": { 5 | "polymer": "Polymer/polymer#^0.5.0" 6 | }, 7 | "devDependencies": { 8 | "web-component-tester": "Polymer/web-component-tester#^1.1.4" 9 | }, 10 | "version": "0.5.2" 11 | } -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/paper-shadow/demo.html: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | paper-shadow 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 61 | 62 | 63 | 64 | 111 | 112 | 132 | 133 | 134 | 135 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/paper-shadow/index.html: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/paper-shadow/metadata.html: -------------------------------------------------------------------------------- 1 | 10 | 11 | 14 | 17 | 18 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/paper-shadow/paper-shadow.css: -------------------------------------------------------------------------------- 1 | /* 2 | * @license 3 | * Copyright (c) 2014 The Polymer Project Authors. All rights reserved. 4 | * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt 5 | * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt 6 | * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt 7 | * Code distributed by Google as part of the polymer project is also 8 | * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt 9 | */ 10 | 11 | html /deep/ paper-shadow, 12 | html /deep/ paper-animated-shadow { 13 | display: block; 14 | position: relative; 15 | } 16 | 17 | html /deep/ paper-shadow::shadow #shadow-bottom, 18 | html /deep/ paper-shadow::shadow #shadow-top { 19 | border-radius: inherit; 20 | pointer-events: none; 21 | } 22 | 23 | html /deep/ paper-shadow::shadow #shadow-bottom[animated], 24 | html /deep/ paper-shadow::shadow #shadow-top[animated] { 25 | transition: box-shadow 0.28s cubic-bezier(0.4, 0, 0.2, 1); 26 | } 27 | 28 | html /deep/ .paper-shadow-top-z-1 { 29 | box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.16); 30 | } 31 | 32 | html /deep/ .paper-shadow-bottom-z-1 { 33 | box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.26); 34 | } 35 | 36 | html /deep/ .paper-shadow-top-z-2 { 37 | box-shadow: 0 6px 20px 0 rgba(0, 0, 0, 0.19); 38 | } 39 | 40 | html /deep/ .paper-shadow-bottom-z-2 { 41 | box-shadow: 0 8px 17px 0 rgba(0, 0, 0, 0.2); 42 | } 43 | 44 | html /deep/ .paper-shadow-top-z-3 { 45 | box-shadow: 0 17px 50px 0 rgba(0, 0, 0, 0.19); 46 | } 47 | 48 | html /deep/ .paper-shadow-bottom-z-3 { 49 | box-shadow: 0 12px 15px 0 rgba(0, 0, 0, 0.24); 50 | } 51 | 52 | html /deep/ .paper-shadow-top-z-4 { 53 | box-shadow: 0 25px 55px 0 rgba(0, 0, 0, 0.21); 54 | } 55 | 56 | html /deep/ .paper-shadow-bottom-z-4 { 57 | box-shadow: 0 16px 28px 0 rgba(0, 0, 0, 0.22); 58 | } 59 | 60 | html /deep/ .paper-shadow-top-z-5 { 61 | box-shadow: 0 40px 77px 0 rgba(0, 0, 0, 0.22); 62 | } 63 | 64 | html /deep/ .paper-shadow-bottom-z-5 { 65 | box-shadow: 0 27px 24px 0 rgba(0, 0, 0, 0.2); 66 | } -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/paper-shadow/paper-shadow.html: -------------------------------------------------------------------------------- 1 | 9 | 10 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 39 | 40 | 86 | 87 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/paper-shadow/test/basic.html: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 13 | paper-shadow basic tests 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 |
hi!
36 |
37 | 38 | 60 | 61 | 62 | 63 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/paper-shadow/test/index.html: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 13 | 14 | paper-shadow tests 15 | 16 | 17 | 18 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/paper-slider/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "paper-slider", 3 | "private": true, 4 | "dependencies": { 5 | "font-roboto": "Polymer/font-roboto#^0.5.0", 6 | "paper-input": "Polymer/paper-input#^0.5.0", 7 | "paper-progress": "Polymer/paper-progress#^0.5.0", 8 | "core-a11y-keys": "Polymer/core-a11y-keys#^0.5.0" 9 | }, 10 | "version": "0.5.2", 11 | "homepage": "https://github.com/Polymer/paper-slider", 12 | "_release": "0.5.2", 13 | "_resolution": { 14 | "type": "version", 15 | "tag": "0.5.2", 16 | "commit": "e08291c22765ce2e5794e8f5b1ea2ea4620ac61e" 17 | }, 18 | "_source": "git://github.com/Polymer/paper-slider.git", 19 | "_target": "~0.5.2", 20 | "_originalSource": "Polymer/paper-slider", 21 | "_direct": true 22 | } -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/paper-slider/README.md: -------------------------------------------------------------------------------- 1 | paper-slider 2 | ============ 3 | 4 | See the [component page](http://www.polymer-project.org/docs/elements/paper-elements.html#paper-slider) for more information. 5 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/paper-slider/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "paper-slider", 3 | "private": true, 4 | "dependencies": { 5 | "font-roboto": "Polymer/font-roboto#^0.5.0", 6 | "paper-input": "Polymer/paper-input#^0.5.0", 7 | "paper-progress": "Polymer/paper-progress#^0.5.0", 8 | "core-a11y-keys": "Polymer/core-a11y-keys#^0.5.0" 9 | }, 10 | "version": "0.5.2" 11 | } -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/paper-slider/index.html: -------------------------------------------------------------------------------- 1 | 2 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/paper-slider/metadata.html: -------------------------------------------------------------------------------- 1 | 10 | 11 | 12 | 15 | 16 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/polymer/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "polymer", 3 | "description": "Polymer is a new type of library for the web, built on top of Web Components, and designed to leverage the evolving web platform on modern browsers.", 4 | "homepage": "http://www.polymer-project.org/", 5 | "keywords": [ 6 | "util", 7 | "client", 8 | "browser", 9 | "web components", 10 | "web-components" 11 | ], 12 | "author": "Polymer Authors ", 13 | "private": true, 14 | "dependencies": { 15 | "core-component-page": "Polymer/core-component-page#^0.5.0", 16 | "webcomponentsjs": "Polymer/webcomponentsjs#^0.5.0" 17 | }, 18 | "devDependencies": { 19 | "tools": "Polymer/tools#master", 20 | "web-component-tester": "Polymer/web-component-tester#^1.4.2" 21 | }, 22 | "version": "0.5.2", 23 | "_release": "0.5.2", 24 | "_resolution": { 25 | "type": "version", 26 | "tag": "0.5.2", 27 | "commit": "2a9ca53fa79ca09907e818f1adf806765409ec9c" 28 | }, 29 | "_source": "git://github.com/Polymer/polymer.git", 30 | "_target": "^0.5.0", 31 | "_originalSource": "Polymer/polymer" 32 | } -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/polymer/README.md: -------------------------------------------------------------------------------- 1 | # Polymer 2 | 3 | [![Polymer build status](http://www.polymer-project.org/build/polymer-dev/status.png "Polymer build status")](http://build.chromium.org/p/client.polymer/waterfall) 4 | 5 | ## Brief Overview 6 | 7 | For more detailed info goto [http://polymer-project.org/](http://polymer-project.org/). 8 | 9 | Polymer is a new type of library for the web, designed to leverage the existing browser infrastructure to provide the encapsulation and extendability currently only available in JS libraries. 10 | 11 | Polymer is based on a set of future technologies, including [Shadow DOM](http://w3c.github.io/webcomponents/spec/shadow/), [Custom Elements](http://w3c.github.io/webcomponents/spec/custom/) and Model Driven Views. Currently these technologies are implemented as polyfills or shims, but as browsers adopt these features natively, the platform code that drives Polymer evacipates, leaving only the value-adds. 12 | 13 | ## Tools & Testing 14 | 15 | For running tests or building minified files, consult the [tooling information](https://www.polymer-project.org/resources/tooling-strategy.html). 16 | 17 | ## Releases 18 | 19 | [Release (tagged) versions](https://github.com/Polymer/polymer/releases) of Polymer include concatenated and minified sources for your convenience. 20 | 21 | [![Analytics](https://ga-beacon.appspot.com/UA-39334307-2/Polymer/polymer/README)](https://github.com/igrigorik/ga-beacon) 22 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/polymer/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "polymer", 3 | "description": "Polymer is a new type of library for the web, built on top of Web Components, and designed to leverage the evolving web platform on modern browsers.", 4 | "homepage": "http://www.polymer-project.org/", 5 | "keywords": [ 6 | "util", 7 | "client", 8 | "browser", 9 | "web components", 10 | "web-components" 11 | ], 12 | "author": "Polymer Authors ", 13 | "private": true, 14 | "dependencies": { 15 | "core-component-page": "Polymer/core-component-page#^0.5.0", 16 | "webcomponentsjs": "Polymer/webcomponentsjs#^0.5.0" 17 | }, 18 | "devDependencies": { 19 | "tools": "Polymer/tools#master", 20 | "web-component-tester": "Polymer/web-component-tester#^1.4.2" 21 | }, 22 | "version": "0.5.2" 23 | } -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/polymer/build.log: -------------------------------------------------------------------------------- 1 | BUILD LOG 2 | --------- 3 | Build Time: 2014-12-11T12:46:30 4 | 5 | NODEJS INFORMATION 6 | ================== 7 | nodejs: v0.10.33 8 | grunt: 0.4.5 9 | grunt-audit: 1.0.0 10 | grunt-contrib-concat: 0.5.0 11 | grunt-contrib-copy: 0.7.0 12 | grunt-contrib-uglify: 0.6.0 13 | grunt-string-replace: 1.0.0 14 | 15 | REPO REVISIONS 16 | ============== 17 | polymer-expressions: 197c3a0150e7a13374cfcc72e7066113723a623d 18 | polymer-gestures: 17a6304916521be39409af292e8adf899bae0ce7 19 | polymer: a74e9f36526361dccb6df91be439ff9c3e043f41 20 | 21 | BUILD HASHES 22 | ============ 23 | dist/polymer.js: b9ad4c86af79c748cf4ea722f6d56671079fadf7 24 | dist/polymer.min.js: 2f2021ba9682b0bb702ee7fb68fb6fbfd288eac2 25 | dist/layout.html: 348d358a91712ecc2f8811efa430fcd954b4590c -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/polymer/polymer.html: -------------------------------------------------------------------------------- 1 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/webcomponentsjs/.bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "webcomponentsjs", 3 | "main": "webcomponents.js", 4 | "version": "0.5.2", 5 | "homepage": "http://webcomponents.org", 6 | "authors": [ 7 | "The Polymer Authors" 8 | ], 9 | "keywords": [ 10 | "webcomponents" 11 | ], 12 | "license": "BSD", 13 | "ignore": [], 14 | "_release": "0.5.2", 15 | "_resolution": { 16 | "type": "version", 17 | "tag": "0.5.2", 18 | "commit": "4f469f65d3fa3c03a44326d138331003fa340337" 19 | }, 20 | "_source": "git://github.com/Polymer/webcomponentsjs.git", 21 | "_target": "^0.5.0", 22 | "_originalSource": "Polymer/webcomponentsjs" 23 | } -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/webcomponentsjs/README.md: -------------------------------------------------------------------------------- 1 | webcomponents.js 2 | ================ 3 | 4 | A suite of polyfills supporting the [Web Components](http://webcomponents.org) specs: 5 | 6 | **Custom Elements**: allows authors to define their own custom tags ([spec](https://w3c.github.io/webcomponents/spec/custom/)). 7 | 8 | **HTML Imports**: a way to include and reuse HTML documents via other HTML documents ([spec](https://w3c.github.io/webcomponents/spec/imports/)). 9 | 10 | **Shadow DOM**: provides encapsulation by hiding DOM subtrees under shadow roots ([spec](https://w3c.github.io/webcomponents/spec/shadow/)). 11 | 12 | This also folds in polyfills for `MutationObserver` and `WeakMap`. 13 | 14 | 15 | ## Releases 16 | 17 | Pre-built (concatenated & minified) versions of the polyfills are maintained in the [tagged versions](https://github.com/webcomponents/webcomponentsjs/releases) of this repo. There are two variants: 18 | 19 | `webcomponents.js` includes all of the polyfills. 20 | 21 | `webcomponents-lite.js` includes all polyfills except for shadow DOM. 22 | 23 | 24 | ### Manually Building 25 | 26 | If you wish to build the polyfills yourself, you'll need `node` and `gulp` on your system: 27 | 28 | * install [node.js](http://nodejs.org/) using the instructions on their website 29 | * use `npm` to install [gulp.js](http://gulpjs.com/): `npm install -g gulp` 30 | 31 | Now you are ready to build the polyfills with: 32 | 33 | # install dependencies 34 | npm install 35 | # build 36 | gulp build 37 | 38 | The builds will be placed into the `dist/` directory. 39 | 40 | ## Contribute 41 | 42 | See the [contributing guide](CONTRIBUTING.md) 43 | 44 | 45 | -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/webcomponentsjs/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "webcomponentsjs", 3 | "main": "webcomponents.js", 4 | "version": "0.5.2", 5 | "homepage": "http://webcomponents.org", 6 | "authors": [ 7 | "The Polymer Authors" 8 | ], 9 | "keywords": [ 10 | "webcomponents" 11 | ], 12 | "license": "BSD", 13 | "ignore": [] 14 | } -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/webcomponentsjs/build.log: -------------------------------------------------------------------------------- 1 | BUILD LOG 2 | --------- 3 | Build Time: 2014-12-11T12:45:39-0800 4 | 5 | NODEJS INFORMATION 6 | ================== 7 | nodejs: v0.10.33 8 | gulp: 3.8.10 9 | gulp-audit: 1.0.0 10 | gulp-concat: 2.4.2 11 | gulp-header: 1.2.2 12 | gulp-uglify: 1.0.2 13 | run-sequence: 1.0.2 14 | web-component-tester: 2.0.1 15 | 16 | REPO REVISIONS 17 | ============== 18 | webcomponentsjs: d83cc676df65dc61db22bca47d33da679391f5a0 19 | 20 | BUILD HASHES 21 | ============ 22 | CustomElements.js: b221f7741515b570df70fd1c50b398bb8f731b81 23 | CustomElements.min.js: 6a55999d9f4895525d35c5248e2f409f176162a6 24 | HTMLImports.js: 72dd4ea891dc3c5256c569992288eca9f5c5e450 25 | HTMLImports.min.js: 1677819e83722c7d163a571598d8d36cdc8ae690 26 | ShadowDOM.js: a1cce2304031d5acb440978761b346b98d06e1a4 27 | ShadowDOM.min.js: 9371908d889872eb7e8e320e8877c394eb906732 28 | webcomponents-lite.js: 7b6c8fbd7f67a2bd04b797a72e808b16ab54518f 29 | webcomponents-lite.min.js: 41b033fa7e52bf612686f222d5a496d48bd2909c 30 | webcomponents.js: 523f45c65c94d71543729f7e3d32ec4b7a48ae5b 31 | webcomponents.min.js: 645b22d4c22bf6eaf470bc03d819d396661ac439 -------------------------------------------------------------------------------- /elements-demo/src/main/webapp/VAADIN/bower_components/webcomponentsjs/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "webcomponents.js", 3 | "version": "0.5.1-1", 4 | "description": "webcomponents.js", 5 | "main": "gulpfile.js", 6 | "directories": { 7 | "test": "tests" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "https://github.com/webcomponents/webcomponentsjs.git" 12 | }, 13 | "author": "The Polymer Authors", 14 | "license": { 15 | "type": "BSD-3-Clause", 16 | "url": "http://polymer.github.io/LICENSE.txt" 17 | }, 18 | "bugs": { 19 | "url": "https://github.com/webcomponents/webcomponentsjs/issues" 20 | }, 21 | "homepage": "http://webcomponents.org", 22 | "devDependencies": { 23 | "gulp": "^3.8.8", 24 | "gulp-audit": "^1.0.0", 25 | "gulp-concat": "^2.4.1", 26 | "gulp-header": "^1.1.1", 27 | "gulp-uglify": "^1.0.1", 28 | "run-sequence": "^1.0.1", 29 | "web-component-tester": "*" 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /elements/assembly/MANIFEST.MF: -------------------------------------------------------------------------------- 1 | Manifest-Version: 1.0 2 | Vaadin-Package-Version: 1 3 | Vaadin-Addon: ${Vaadin-Addon} 4 | Vaadin-License-Title: ${Vaadin-License-Title} 5 | Implementation-Vendor: ${Implementation-Vendor} 6 | Implementation-Title: ${Implementation-Title} 7 | Implementation-Version: ${Implementation-Version} 8 | -------------------------------------------------------------------------------- /elements/assembly/assembly.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | addon 7 | 8 | 10 | 11 | 12 | zip 13 | 14 | 15 | 16 | false 17 | 18 | 19 | 20 | .. 21 | 22 | LICENSE.txt 23 | README.md 24 | 25 | 26 | 27 | target 28 | 29 | 30 | *.jar 31 | *.pdf 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | assembly/MANIFEST.MF 40 | META-INF 41 | true 42 | 43 | 44 | 45 | -------------------------------------------------------------------------------- /elements/src/main/java/org/vaadin/elements/AbstractElementComponent.java: -------------------------------------------------------------------------------- 1 | package org.vaadin.elements; 2 | 3 | import com.vaadin.annotations.JavaScript; 4 | import com.vaadin.ui.AbstractJavaScriptComponent; 5 | 6 | /** 7 | * A minimal implementation of AbstractJavaScriptComponent for easy wrapping of 8 | * HTML elements into UI components. 9 | */ 10 | @JavaScript("abstract-element-component.js") 11 | public class AbstractElementComponent extends AbstractJavaScriptComponent { } 12 | -------------------------------------------------------------------------------- /elements/src/main/java/org/vaadin/elements/Element.java: -------------------------------------------------------------------------------- 1 | package org.vaadin.elements; 2 | 3 | import java.util.Collection; 4 | import java.util.EventListener; 5 | import java.util.List; 6 | import java.util.Optional; 7 | 8 | import com.vaadin.shared.communication.ServerRpc; 9 | import com.vaadin.ui.JavaScriptFunction; 10 | 11 | public interface Element extends Node { 12 | 13 | public String getTag(); 14 | 15 | public void appendChild(Node child); 16 | 17 | public void appendHtml(String html); 18 | 19 | public void setAttribute(String name, String value); 20 | 21 | public void setAttribute(String name, boolean value); 22 | 23 | public Collection getAttributeNames(); 24 | 25 | public String getAttribute(String name); 26 | 27 | public boolean hasAttribute(String name); 28 | 29 | public void removeAttribute(String name); 30 | 31 | public void setInnerText(String text); 32 | 33 | public void setInnerHtml(String html); 34 | 35 | public void eval(String script, Object... arguments); 36 | 37 | public void bindAttribute(String attributeName, String eventName); 38 | 39 | public void addEventListener(String eventName, JavaScriptFunction listener, 40 | String... arguments); 41 | 42 | public void addEventListener(EventListener listener); 43 | 44 | public void addEventListener(ServerRpc rpc); 45 | 46 | Optional querySelector(String query); 47 | 48 | List querySelectorAll(String query); 49 | 50 | public void setDisabled(boolean disabled); 51 | 52 | public boolean isDisabled(); 53 | } -------------------------------------------------------------------------------- /elements/src/main/java/org/vaadin/elements/ElementIntegration.java: -------------------------------------------------------------------------------- 1 | package org.vaadin.elements; 2 | 3 | import java.util.Optional; 4 | 5 | import org.vaadin.elements.impl.RootImpl; 6 | 7 | import com.vaadin.annotations.JavaScript; 8 | import com.vaadin.server.AbstractJavaScriptExtension; 9 | import com.vaadin.server.Extension; 10 | import com.vaadin.ui.AbstractComponent; 11 | 12 | import elemental.json.JsonArray; 13 | import elemental.json.JsonValue; 14 | import elemental.json.impl.JsonUtil; 15 | 16 | @JavaScript("elementui.js") 17 | public class ElementIntegration extends AbstractJavaScriptExtension { 18 | private final RootImpl root = new RootImpl(this); 19 | 20 | private ElementIntegration(AbstractComponent target) { 21 | super.extend(target); 22 | 23 | addFunction("callback", arguments -> root.handleCallback(arguments)); 24 | addFunction("getDom", this::getDom); 25 | } 26 | 27 | private void getDom(JsonArray arguments) { 28 | int id = (int) arguments.getNumber(0); 29 | JsonArray hierarchy = arguments.getArray(1); 30 | 31 | root.synchronize(id, hierarchy); 32 | } 33 | 34 | public Element getRoot() { 35 | return root; 36 | } 37 | 38 | @Override 39 | public void beforeClientResponse(boolean initial) { 40 | JsonValue payload = root.flushPendingCommands(); 41 | 42 | String query = getUI().getPage().getLocation().getQuery(); 43 | if (query != null && query.contains("debug")) { 44 | System.out.println(JsonUtil.stringify(payload)); 45 | System.out.println(root.asHtml()); 46 | } 47 | 48 | callFunction("run", payload); 49 | 50 | super.beforeClientResponse(initial); 51 | } 52 | 53 | public static Root getRoot(AbstractComponent target) { 54 | Optional existing = target.getExtensions().stream() 55 | .filter(e -> e.getClass() == ElementIntegration.class) 56 | .findFirst(); 57 | ElementIntegration integration = existing.isPresent() ? (ElementIntegration) existing 58 | .get() : new ElementIntegration(target); 59 | 60 | return integration.root; 61 | } 62 | 63 | } 64 | -------------------------------------------------------------------------------- /elements/src/main/java/org/vaadin/elements/Elements.java: -------------------------------------------------------------------------------- 1 | package org.vaadin.elements; 2 | 3 | import java.util.Map; 4 | import java.util.concurrent.ConcurrentHashMap; 5 | 6 | import org.vaadin.elements.impl.ElementReflectHelper; 7 | 8 | public class Elements { 9 | 10 | private static final Map> registeredElements = new ConcurrentHashMap<>(); 11 | 12 | static void clearRegistration() { 13 | // For testing 14 | registeredElements.clear(); 15 | } 16 | 17 | public static void registerElement(Class type) { 18 | String elementTag = getElementTag(type, true); 19 | if (elementTag != null) { 20 | registeredElements.put(elementTag, type); 21 | } 22 | } 23 | 24 | public static Class getRegisteredClass(String name) { 25 | return registeredElements.get(name); 26 | } 27 | 28 | public static Element create(String tag) { 29 | org.jsoup.nodes.Element soupElement = createSoupElement(tag); 30 | return (Element) ElementReflectHelper.wrap(soupElement); 31 | } 32 | 33 | private static org.jsoup.nodes.Element createSoupElement(String tag) { 34 | return new org.jsoup.nodes.Element(org.jsoup.parser.Tag.valueOf(tag), 35 | ""); 36 | } 37 | 38 | public static T create(final Class type) { 39 | String tagName = getElementTag(type, false); 40 | registerElement(type); 41 | org.jsoup.nodes.Element soupElement = createSoupElement(tagName); 42 | return type.cast(ElementReflectHelper.wrap(soupElement, type)); 43 | } 44 | 45 | private static String getElementTag(final Class type, 46 | boolean onlyExclusive) { 47 | Tag tag = type.getAnnotation(Tag.class); 48 | if (onlyExclusive && !tag.exclusive()) { 49 | return null; 50 | } 51 | String value = tag.value(); 52 | return value; 53 | } 54 | 55 | public static TextNode createText(String text) { 56 | return (TextNode) ElementReflectHelper 57 | .wrap(new org.jsoup.nodes.TextNode(text, "")); 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /elements/src/main/java/org/vaadin/elements/EventParam.java: -------------------------------------------------------------------------------- 1 | package org.vaadin.elements; 2 | 3 | import java.lang.annotation.Documented; 4 | import java.lang.annotation.ElementType; 5 | import java.lang.annotation.Retention; 6 | import java.lang.annotation.RetentionPolicy; 7 | import java.lang.annotation.Target; 8 | 9 | @Documented 10 | @Target(ElementType.PARAMETER) 11 | @Retention(RetentionPolicy.RUNTIME) 12 | public @interface EventParam { 13 | 14 | String value(); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /elements/src/main/java/org/vaadin/elements/Node.java: -------------------------------------------------------------------------------- 1 | package org.vaadin.elements; 2 | 3 | import java.util.List; 4 | 5 | public interface Node { 6 | 7 | public Node getParent(); 8 | 9 | public List getChildren(); 10 | 11 | public void removeAllChildren(); 12 | 13 | public void remove(); 14 | 15 | public Root getRoot(); 16 | 17 | public String asHtml(); 18 | } -------------------------------------------------------------------------------- /elements/src/main/java/org/vaadin/elements/Root.java: -------------------------------------------------------------------------------- 1 | package org.vaadin.elements; 2 | 3 | import com.vaadin.ui.Component; 4 | 5 | public interface Root extends Element { 6 | 7 | void fetchDom(Runnable runnable, Component... connectorsToInlcude); 8 | 9 | } 10 | -------------------------------------------------------------------------------- /elements/src/main/java/org/vaadin/elements/Tag.java: -------------------------------------------------------------------------------- 1 | package org.vaadin.elements; 2 | 3 | import java.lang.annotation.Documented; 4 | import java.lang.annotation.ElementType; 5 | import java.lang.annotation.Retention; 6 | import java.lang.annotation.RetentionPolicy; 7 | import java.lang.annotation.Target; 8 | 9 | @Retention(RetentionPolicy.RUNTIME) 10 | @Target(ElementType.TYPE) 11 | @Documented 12 | public @interface Tag { 13 | public String value(); 14 | 15 | public boolean exclusive() default true; 16 | } 17 | -------------------------------------------------------------------------------- /elements/src/main/java/org/vaadin/elements/TextNode.java: -------------------------------------------------------------------------------- 1 | package org.vaadin.elements; 2 | 3 | public interface TextNode extends Node { 4 | 5 | public String getText(); 6 | 7 | public void setText(String text); 8 | 9 | } -------------------------------------------------------------------------------- /elements/src/main/java/org/vaadin/elements/UpdatedBy.java: -------------------------------------------------------------------------------- 1 | package org.vaadin.elements; 2 | 3 | import java.lang.annotation.Documented; 4 | import java.lang.annotation.ElementType; 5 | import java.lang.annotation.Repeatable; 6 | import java.lang.annotation.Retention; 7 | import java.lang.annotation.RetentionPolicy; 8 | import java.lang.annotation.Target; 9 | 10 | @Retention(RetentionPolicy.RUNTIME) 11 | @Target(ElementType.METHOD) 12 | @Documented 13 | @Repeatable(UpdatedByList.class) 14 | public @interface UpdatedBy { 15 | public String value(); 16 | } 17 | -------------------------------------------------------------------------------- /elements/src/main/java/org/vaadin/elements/UpdatedByList.java: -------------------------------------------------------------------------------- 1 | package org.vaadin.elements; 2 | 3 | import java.lang.annotation.Documented; 4 | import java.lang.annotation.ElementType; 5 | import java.lang.annotation.Retention; 6 | import java.lang.annotation.RetentionPolicy; 7 | import java.lang.annotation.Target; 8 | 9 | @Retention(RetentionPolicy.RUNTIME) 10 | @Target(ElementType.METHOD) 11 | @Documented 12 | public @interface UpdatedByList { 13 | public UpdatedBy[] value(); 14 | } 15 | -------------------------------------------------------------------------------- /elements/src/main/java/org/vaadin/elements/abstract-element-component.js: -------------------------------------------------------------------------------- 1 | window.org_vaadin_elements_AbstractElementComponent = function() { } -------------------------------------------------------------------------------- /elements/src/main/java/org/vaadin/elements/impl/Context.java: -------------------------------------------------------------------------------- 1 | package org.vaadin.elements.impl; 2 | 3 | import java.util.ArrayList; 4 | import java.util.Deque; 5 | import java.util.IdentityHashMap; 6 | import java.util.LinkedList; 7 | import java.util.List; 8 | import java.util.Map; 9 | import java.util.Queue; 10 | 11 | import org.jsoup.nodes.Node; 12 | 13 | public class Context { 14 | private Map fromJsoup = new IdentityHashMap<>(); 15 | 16 | public Context() { 17 | } 18 | 19 | public NodeImpl resolve(org.jsoup.nodes.Node soupNode) { 20 | if (soupNode == null) { 21 | return null; 22 | } 23 | 24 | NodeImpl node = fromJsoup.get(soupNode); 25 | 26 | if (node == null) { 27 | throw new IllegalStateException(); 28 | } 29 | 30 | return node; 31 | } 32 | 33 | public void wrapChildren(NodeImpl node) { 34 | assert node.context == this; 35 | 36 | Queue queue = new LinkedList<>(node.node.childNodes()); 37 | 38 | while (!queue.isEmpty()) { 39 | Node soupChild = queue.poll(); 40 | // Only relevant for newer JSoup versions 41 | if (soupChild.childNodeSize() > 0) { 42 | queue.addAll(soupChild.childNodes()); 43 | } 44 | 45 | NodeImpl child = ElementReflectHelper.wrap(soupChild); 46 | adopt(child); 47 | } 48 | } 49 | 50 | protected void adopt(NodeImpl node) { 51 | if (node.context != null) { 52 | node.context.remove(node); 53 | } 54 | 55 | fromJsoup.put(node.node, node); 56 | node.context = this; 57 | } 58 | 59 | public RootImpl getRoot() { 60 | return null; 61 | } 62 | 63 | public void adoptAll(NodeImpl child) { 64 | Deque queue = new LinkedList<>(); 65 | queue.add(child); 66 | 67 | while (!queue.isEmpty()) { 68 | NodeImpl node = queue.removeFirst(); 69 | // Find child nodes with old context 70 | queue.addAll(node.getChildren()); 71 | 72 | adopt(node); 73 | } 74 | } 75 | 76 | protected void remove(NodeImpl node) { 77 | fromJsoup.remove(node.node); 78 | } 79 | } 80 | -------------------------------------------------------------------------------- /elements/src/main/java/org/vaadin/elements/impl/NodeImpl.java: -------------------------------------------------------------------------------- 1 | package org.vaadin.elements.impl; 2 | 3 | import java.util.AbstractList; 4 | import java.util.ArrayList; 5 | import java.util.List; 6 | 7 | import org.vaadin.elements.Node; 8 | 9 | public abstract class NodeImpl implements Node { 10 | 11 | protected final org.jsoup.nodes.Node node; 12 | protected Context context; 13 | 14 | protected NodeImpl(org.jsoup.nodes.Node node) { 15 | this.node = node; 16 | this.context = new Context(); 17 | context.adopt(this); 18 | } 19 | 20 | @Override 21 | public Node getParent() { 22 | return context.resolve(node.parent()); 23 | } 24 | 25 | @Override 26 | public List getChildren() { 27 | return new AbstractList() { 28 | @Override 29 | public NodeImpl get(int index) { 30 | return context.resolve(node.childNode(index)); 31 | } 32 | 33 | @Override 34 | public int size() { 35 | return node.childNodeSize(); 36 | } 37 | }; 38 | } 39 | 40 | @Override 41 | public void removeAllChildren() { 42 | // TODO send all as one job to the client instead of individually 43 | new ArrayList<>(getChildren()).forEach(Node::remove); 44 | } 45 | 46 | @Override 47 | public void remove() { 48 | NodeImpl parent = (NodeImpl) getParent(); 49 | if (parent == null) { 50 | return; 51 | } 52 | 53 | // For this node and all descendants: find children using old context, 54 | // then move to new context 55 | Context newContext = new Context(); 56 | Context oldContext = context; 57 | 58 | ArrayList stack = new ArrayList<>(); 59 | stack.add(this); 60 | 61 | while (!stack.isEmpty()) { 62 | NodeImpl node = stack.remove(stack.size() - 1); 63 | stack.addAll(node.getChildren()); 64 | 65 | newContext.adopt(node); 66 | } 67 | 68 | // Remove all nodes from the old context 69 | // oldContext.removeAll(newContext); 70 | 71 | node.remove(); 72 | } 73 | 74 | @Override 75 | public RootImpl getRoot() { 76 | return context.getRoot(); 77 | } 78 | 79 | protected Context getContext() { 80 | return context; 81 | } 82 | 83 | @Override 84 | public String asHtml() { 85 | return node.outerHtml(); 86 | } 87 | } -------------------------------------------------------------------------------- /elements/src/main/java/org/vaadin/elements/impl/TextNodeImpl.java: -------------------------------------------------------------------------------- 1 | package org.vaadin.elements.impl; 2 | 3 | import org.vaadin.elements.TextNode; 4 | 5 | public class TextNodeImpl extends NodeImpl implements TextNode { 6 | 7 | TextNodeImpl(org.jsoup.nodes.TextNode soupNode) { 8 | super(soupNode); 9 | } 10 | 11 | @Override 12 | public String getText() { 13 | return getNode().text(); 14 | } 15 | 16 | private org.jsoup.nodes.TextNode getNode() { 17 | return (org.jsoup.nodes.TextNode) node; 18 | } 19 | 20 | @Override 21 | public void setText(String text) { 22 | assert text != null; 23 | getNode().text(text); 24 | 25 | RootImpl document = getRoot(); 26 | if (document != null) { 27 | document.setTextChange(this, text); 28 | } 29 | 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /elements/src/test/java/org/vaadin/elements/AttributesTest.java: -------------------------------------------------------------------------------- 1 | package org.vaadin.elements; 2 | 3 | import elemental.json.Json; 4 | import elemental.json.JsonArray; 5 | import elemental.json.JsonObject; 6 | import org.junit.Assert; 7 | import org.junit.Test; 8 | 9 | import java.util.Arrays; 10 | 11 | public class AttributesTest { 12 | @Test 13 | public void testSetAttribute() { 14 | Element element = Elements.create("div"); 15 | element.setAttribute("name", "value"); 16 | element.setAttribute("blank", ""); 17 | 18 | Assert.assertEquals("value", element.getAttribute("name")); 19 | Assert.assertEquals("", element.getAttribute("blank")); 20 | Assert.assertNull(element.getAttribute("notThere")); 21 | } 22 | 23 | @Test 24 | public void testBooleanAttributes() { 25 | Element element = Elements.create("div"); 26 | element.setAttribute("true", true); 27 | element.setAttribute("false", false); 28 | 29 | Assert.assertEquals("", element.getAttribute("true")); 30 | Assert.assertNull(element.getAttribute("false")); 31 | } 32 | 33 | @Test 34 | public void testArrayAttribute() { 35 | Element element = Elements.create("div"); 36 | 37 | String[] items = {"A", "B", "C"}; 38 | JsonArray jsonArray = Json.createArray(); 39 | 40 | for (int i = 0; i < items.length; i++) { 41 | JsonObject object = Json.createObject(); 42 | object.put("id", i); 43 | object.put("name", items[i]); 44 | 45 | jsonArray.set(i, object); 46 | } 47 | 48 | String jsonArrayString = jsonArray.toString(); 49 | element.setAttribute("items", jsonArrayString); 50 | 51 | Assert.assertEquals(jsonArrayString, element.getAttribute("items")); 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /elements/src/test/java/org/vaadin/elements/ElementInterfaceTest.java: -------------------------------------------------------------------------------- 1 | package org.vaadin.elements; 2 | 3 | import org.junit.Test; 4 | 5 | import junit.framework.Assert; 6 | 7 | public class ElementInterfaceTest { 8 | @Tag("form") 9 | public interface MyElement extends Element { 10 | void setAcceptCharset(String acceptCharset); 11 | 12 | String getAcceptCharset(); 13 | } 14 | 15 | @Test 16 | public void testFormCharset() { 17 | MyElement element = Elements.create(MyElement.class); 18 | 19 | Assert.assertEquals("form", element.getTag()); 20 | 21 | element.setAcceptCharset("fooBar"); 22 | Assert.assertEquals("fooBar", element.getAttribute("accept-charset")); 23 | Assert.assertEquals("fooBar", element.getAcceptCharset()); 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /elements/src/test/java/org/vaadin/elements/ElementsTest.java: -------------------------------------------------------------------------------- 1 | package org.vaadin.elements; 2 | 3 | import static org.junit.Assert.*; 4 | 5 | import java.util.List; 6 | 7 | import org.junit.Before; 8 | import org.junit.Test; 9 | 10 | public class ElementsTest { 11 | private Element root; 12 | private Element child; 13 | 14 | @Before 15 | public void init() { 16 | root = Elements.create("div"); 17 | child = Elements.create("div"); 18 | } 19 | 20 | @Test 21 | public void testAddNode() { 22 | root.appendChild(child); 23 | 24 | List children = root.getChildren(); 25 | 26 | assertSame(root, child.getParent()); 27 | assertEquals(1, children.size()); 28 | assertSame(child, children.get(0)); 29 | } 30 | 31 | @Test 32 | public void testRemoveNode() { 33 | root.appendChild(child); 34 | 35 | child.remove(); 36 | 37 | List children = root.getChildren(); 38 | 39 | assertEquals(0, children.size()); 40 | assertNull(child.getParent()); 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /elements/src/test/java/org/vaadin/elements/RegisterTest.java: -------------------------------------------------------------------------------- 1 | package org.vaadin.elements; 2 | 3 | import org.junit.Assert; 4 | import org.junit.Before; 5 | import org.junit.Test; 6 | 7 | public class RegisterTest { 8 | @Tag("exclusive") 9 | public static interface ExclusiveElement extends Element { 10 | 11 | } 12 | 13 | @Tag(value = "non-exclusive", exclusive = false) 14 | public static interface NonExclusiveElement extends Element { 15 | 16 | } 17 | 18 | @Before 19 | public void init() { 20 | Elements.clearRegistration(); 21 | } 22 | 23 | @Test 24 | public void testRegisterExlusive() { 25 | Elements.registerElement(ExclusiveElement.class); 26 | Element element = Elements.create("exclusive"); 27 | Assert.assertTrue(element instanceof ExclusiveElement); 28 | } 29 | 30 | @Test 31 | public void testWithoutRegister() { 32 | Element element = Elements.create("exclusive"); 33 | Assert.assertFalse(element instanceof ExclusiveElement); 34 | } 35 | 36 | @Test 37 | public void testImplicitRegister() { 38 | Element element = Elements.create(ExclusiveElement.class); 39 | Assert.assertTrue(element instanceof ExclusiveElement); 40 | } 41 | 42 | @Test 43 | public void testNonExclusiveCreation() { 44 | Element element = Elements.create(NonExclusiveElement.class); 45 | Assert.assertTrue(element instanceof NonExclusiveElement); 46 | } 47 | 48 | @Test 49 | public void testNonExclusive_notRegistered() { 50 | Element element = Elements.create(NonExclusiveElement.class); 51 | 52 | element = Elements.create(element.getTag()); 53 | 54 | Assert.assertFalse(element instanceof NonExclusiveElement); 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /elements/src/test/java/org/vaadin/elements/RootTest.java: -------------------------------------------------------------------------------- 1 | package org.vaadin.elements; 2 | 3 | import com.vaadin.icons.VaadinIcons; 4 | import com.vaadin.shared.ui.ContentMode; 5 | import org.junit.Assert; 6 | import org.junit.Before; 7 | import org.junit.Test; 8 | import org.vaadin.elements.impl.RootImpl; 9 | 10 | import com.vaadin.ui.Label; 11 | 12 | import elemental.json.JsonArray; 13 | 14 | public class RootTest { 15 | 16 | private RootImpl root; 17 | private Element child; 18 | 19 | @Before 20 | public void init() { 21 | child = Elements.create("div"); 22 | root = (RootImpl) ElementIntegration.getRoot(new Label()); 23 | } 24 | 25 | @Test 26 | public void testAppendChild() { 27 | root.appendChild(child); 28 | 29 | JsonArray pendingCommands = root.flushPendingCommands(); 30 | 31 | Assert.assertEquals( 32 | "[[\"createElement\",2,\"div\"],[\"appendChild\",0,2]]", 33 | pendingCommands.toJson()); 34 | } 35 | 36 | @Test 37 | public void testAppendChildOrder() { 38 | child.appendChild(Elements.create("first")); 39 | child.appendChild(Elements.create("second")); 40 | 41 | root.appendChild(child); 42 | 43 | JsonArray pendingCommands = root.flushPendingCommands(); 44 | 45 | Assert.assertEquals( 46 | "[[\"createElement\",2,\"div\"],[\"appendChild\",0,2]," 47 | + "[\"createElement\",4,\"first\"],[\"appendChild\",2,4]," 48 | + "[\"createElement\",6,\"second\"],[\"appendChild\",2,6]]", 49 | pendingCommands.toJson()); 50 | 51 | } 52 | 53 | @Test 54 | public void testRemoveChild() { 55 | root.appendChild(child); 56 | root.flushPendingCommands(); 57 | 58 | child.remove(); 59 | 60 | JsonArray pendingCommands = root.flushPendingCommands(); 61 | 62 | Assert.assertEquals("[[\"remove\",2]]", pendingCommands.toJson()); 63 | } 64 | 65 | @Test 66 | public void innerHtmlElementOrder() { 67 | root.setInnerHtml("
"); 68 | JsonArray pendingCommands = root.flushPendingCommands(); 69 | 70 | Assert.assertEquals( 71 | "[[\"createElement\",2,\"div\"],[\"appendChild\",0,2],[\"createElement\",4,\"span\"],[\"appendChild\",0,4]]", 72 | pendingCommands.toJson()); 73 | } 74 | 75 | @Test 76 | public void fetchDOMWithLeafsWithoutAttributes() { 77 | // set a callback for the synchronize 78 | root.fetchDom(() -> { 79 | Assert.assertEquals("
", root.asHtml()); 80 | }); 81 | JsonArray pendingCommands = root.flushPendingCommands(); 82 | 83 | // synchronize structure with no children and no attributes 84 | root.synchronize(0, pendingCommands); 85 | } 86 | 87 | @Test 88 | public void addLeafToRootNode() { 89 | // Only relevant for newer JSoup versions 90 | root.setInnerHtml("Text-Leaf"); 91 | } 92 | } 93 | -------------------------------------------------------------------------------- /pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 4.0.0 5 | org.vaadin 6 | elements-root 7 | pom 8 | 0.2.1-SNAPSHOT 9 | Elements Add-on Root Project 10 | 11 | 12 | elements 13 | elements-demo 14 | 15 | 16 | 17 | --------------------------------------------------------------------------------