polymer-paper-rails 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/components/core-animation/README.md +4 -0
- data/app/assets/components/core-animation/bower.json +8 -0
- data/app/assets/components/core-animation/core-animation-group.html +169 -0
- data/app/assets/components/core-animation/core-animation.html +524 -0
- data/app/assets/components/core-animation/demo.html +149 -0
- data/app/assets/components/core-animation/index.html +22 -0
- data/app/assets/components/core-animation/web-animations.html +10 -0
- data/app/assets/components/core-collapse/README.md +4 -0
- data/app/assets/components/core-collapse/bower.json +7 -0
- data/app/assets/components/core-collapse/core-collapse.css +16 -0
- data/app/assets/components/core-collapse/core-collapse.html +262 -0
- data/app/assets/components/core-collapse/demo.html +93 -0
- data/app/assets/components/core-collapse/index.html +22 -0
- data/app/assets/components/core-component-page/README.md +6 -0
- data/app/assets/components/core-component-page/bowager-logo.png +0 -0
- data/app/assets/components/core-component-page/bower.json +8 -0
- data/app/assets/components/core-component-page/core-component-page.html +37 -0
- data/app/assets/components/core-component-page/demo.html +23 -0
- data/app/assets/components/core-component-page/index.html +22 -0
- data/app/assets/components/core-drawer-panel/README.md +4 -0
- data/app/assets/components/core-drawer-panel/bower.json +8 -0
- data/app/assets/components/core-drawer-panel/core-drawer-panel.css +147 -0
- data/app/assets/components/core-drawer-panel/core-drawer-panel.html +339 -0
- data/app/assets/components/core-drawer-panel/demo.html +73 -0
- data/app/assets/components/core-drawer-panel/index.html +22 -0
- data/app/assets/components/core-drawer-panel/metadata.html +37 -0
- data/app/assets/components/core-elements/README.md +4 -0
- data/app/assets/components/core-elements/bower.json +29 -0
- data/app/assets/components/core-elements/demo.html +105 -0
- data/app/assets/components/core-elements/demos/core-toolbar.html +98 -0
- data/app/assets/components/core-elements/metadata.html +23 -0
- data/app/assets/components/core-elements/paper-elements.html +37 -0
- data/app/assets/components/core-field/README.md +4 -0
- data/app/assets/components/core-field/bower.json +7 -0
- data/app/assets/components/core-field/core-field.css +38 -0
- data/app/assets/components/core-field/core-field.html +35 -0
- data/app/assets/components/core-field/demo.html +67 -0
- data/app/assets/components/core-field/index.html +22 -0
- data/app/assets/components/core-field/metadata.html +26 -0
- data/app/assets/components/core-header-panel/README.md +4 -0
- data/app/assets/components/core-header-panel/bower.json +7 -0
- data/app/assets/components/core-header-panel/core-header-panel.css +75 -0
- data/app/assets/components/core-header-panel/core-header-panel.html +225 -0
- data/app/assets/components/core-header-panel/demo.html +100 -0
- data/app/assets/components/core-header-panel/index.html +23 -0
- data/app/assets/components/core-header-panel/metadata.html +37 -0
- data/app/assets/components/core-icon/README.md +4 -0
- data/app/assets/components/core-icon/bower.json +8 -0
- data/app/assets/components/{core/icon → core-icon}/core-icon.css +3 -12
- data/app/assets/components/core-icon/core-icon.html +189 -0
- data/app/assets/components/core-icon/demo.html +44 -0
- data/app/assets/components/core-icon/index.html +22 -0
- data/app/assets/components/core-icon/metadata.html +21 -0
- data/app/assets/components/core-icon-button/README.md +4 -0
- data/app/assets/components/core-icon-button/bower.json +7 -0
- data/app/assets/components/core-icon-button/core-icon-button.css +75 -0
- data/app/assets/components/core-icon-button/core-icon-button.html +81 -0
- data/app/assets/components/core-icon-button/demo.html +35 -0
- data/app/assets/components/core-icon-button/index.html +22 -0
- data/app/assets/components/core-icon-button/metadata.html +20 -0
- data/app/assets/components/core-icons/README.md +4 -0
- data/app/assets/components/core-icons/av-icons.html +46 -0
- data/app/assets/components/core-icons/bower.json +9 -0
- data/app/assets/components/core-icons/communication-icons.html +59 -0
- data/app/assets/components/core-icons/core-icons.html +278 -0
- data/app/assets/components/core-icons/demo.html +96 -0
- data/app/assets/components/core-icons/device-icons.html +59 -0
- data/app/assets/components/core-icons/editor-icons.html +67 -0
- data/app/assets/components/core-icons/hardware-icons.html +58 -0
- data/app/assets/components/core-icons/image-icons.html +146 -0
- data/app/assets/components/core-icons/index.html +22 -0
- data/app/assets/components/core-icons/maps-icons.html +69 -0
- data/app/assets/components/core-icons/notification-icons.html +50 -0
- data/app/assets/components/core-icons/png-icons.html +19 -0
- data/app/assets/components/core-icons/social-icons.html +52 -0
- data/app/assets/components/core-iconset/README.md +4 -0
- data/app/assets/components/core-iconset/bower.json +9 -0
- data/app/assets/components/{core/iconset/core-iconset.html.erb → core-iconset/core-iconset.html} +29 -24
- data/app/assets/components/core-iconset/demo.html +62 -0
- data/app/assets/components/core-iconset/index.html +22 -0
- data/app/assets/components/core-iconset/my-icons-big.png +0 -0
- data/app/assets/components/core-iconset/my-icons.png +0 -0
- data/app/assets/components/core-iconset-svg/README.md +4 -0
- data/app/assets/components/core-iconset-svg/bower.json +8 -0
- data/app/assets/components/core-iconset-svg/core-iconset-svg.html +168 -0
- data/app/assets/components/core-iconset-svg/demo.html +66 -0
- data/app/assets/components/core-iconset-svg/index.html +22 -0
- data/app/assets/components/core-iconset-svg/svg-sample-icons.html +68 -0
- data/app/assets/components/core-input/README.md +2 -0
- data/app/assets/components/core-input/bower.json +6 -0
- data/app/assets/components/core-input/core-input.css +45 -0
- data/app/assets/components/{core/input/core-input.html.erb → core-input/core-input.html} +164 -95
- data/app/assets/components/core-input/demo.html +142 -0
- data/app/assets/components/core-input/index.html +22 -0
- data/app/assets/components/core-input/metadata.html +20 -0
- data/app/assets/components/core-item/README.md +4 -0
- data/app/assets/components/core-item/bower.json +8 -0
- data/app/assets/components/core-item/core-item.css +44 -0
- data/app/assets/components/core-item/core-item.html +74 -0
- data/app/assets/components/core-item/demo.html +92 -0
- data/app/assets/components/core-item/index.html +22 -0
- data/app/assets/components/core-item/metadata.html +24 -0
- data/app/assets/components/core-media-query/README.md +4 -0
- data/app/assets/components/core-media-query/bower.json +7 -0
- data/app/assets/components/{core/media-query → core-media-query}/core-media-query.html +1 -0
- data/app/assets/components/core-media-query/demo.html +44 -0
- data/app/assets/components/core-media-query/index.html +22 -0
- data/app/assets/components/core-menu/README.md +4 -0
- data/app/assets/components/core-menu/bower.json +9 -0
- data/app/assets/components/{core/menu → core-menu}/core-menu.css +0 -0
- data/app/assets/components/{core/menu/core-menu.html.erb → core-menu/core-menu.html} +3 -3
- data/app/assets/components/{core/menu → core-menu}/core-submenu.css +0 -0
- data/app/assets/components/{core/menu/core-submenu.html.erb → core-menu/core-submenu.html} +10 -10
- data/app/assets/components/core-menu/demo.html +101 -0
- data/app/assets/components/core-menu/index.html +22 -0
- data/app/assets/components/core-menu/metadata.html +62 -0
- data/app/assets/components/core-meta/README.md +4 -0
- data/app/assets/components/core-meta/bower.json +7 -0
- data/app/assets/components/{core/meta → core-meta}/core-meta.html +24 -22
- data/app/assets/components/core-meta/demo.html +58 -0
- data/app/assets/components/core-meta/index.html +22 -0
- data/app/assets/components/core-overlay/README.md +4 -0
- data/app/assets/components/core-overlay/bower.json +8 -0
- data/app/assets/components/{core/overlay → core-overlay}/core-key-helper.html +2 -0
- data/app/assets/components/{core/overlay → core-overlay}/core-overlay-layer.html +112 -112
- data/app/assets/components/{core/overlay/core-overlay.html.erb → core-overlay/core-overlay.html} +77 -51
- data/app/assets/components/core-overlay/demo.html +155 -0
- data/app/assets/components/core-overlay/index.html +22 -0
- data/app/assets/components/core-popup-menu/README.md +6 -0
- data/app/assets/components/core-popup-menu/bower.json +13 -0
- data/app/assets/components/core-popup-menu/core-popup-menu.css +28 -0
- data/app/assets/components/core-popup-menu/core-popup-menu.html +198 -0
- data/app/assets/components/core-popup-menu/core-popup-overlay.html +111 -0
- data/app/assets/components/core-popup-menu/demo.html +542 -0
- data/app/assets/components/core-popup-menu/index.html +22 -0
- data/app/assets/components/core-popup-menu/metadata.html +62 -0
- data/app/assets/components/core-range/README.md +2 -0
- data/app/assets/components/core-range/bower.json +7 -0
- data/app/assets/components/{core/range → core-range}/core-range.html +17 -15
- data/app/assets/components/core-range/demo.html +64 -0
- data/app/assets/components/core-range/index.html +22 -0
- data/app/assets/components/core-scroll-header-panel/README.md +4 -0
- data/app/assets/components/core-scroll-header-panel/bower.json +11 -0
- data/app/assets/components/core-scroll-header-panel/core-scroll-header-panel.css +58 -0
- data/app/assets/components/core-scroll-header-panel/core-scroll-header-panel.html +313 -0
- data/app/assets/components/core-scroll-header-panel/demo.html +111 -0
- data/app/assets/components/core-scroll-header-panel/demos/demo1.html +80 -0
- data/app/assets/components/core-scroll-header-panel/demos/demo2.html +82 -0
- data/app/assets/components/core-scroll-header-panel/demos/demo3.html +81 -0
- data/app/assets/components/core-scroll-header-panel/demos/demo4.html +109 -0
- data/app/assets/components/core-scroll-header-panel/demos/demo5.html +109 -0
- data/app/assets/components/core-scroll-header-panel/demos/demo6.html +113 -0
- data/app/assets/components/core-scroll-header-panel/demos/demo7.html +120 -0
- data/app/assets/components/core-scroll-header-panel/demos/demo8.html +122 -0
- data/app/assets/components/core-scroll-header-panel/demos/demo9.html +100 -0
- data/app/assets/components/core-scroll-header-panel/demos/images/bg2.jpg +0 -0
- data/app/assets/components/core-scroll-header-panel/demos/images/bg3.jpg +0 -0
- data/app/assets/components/core-scroll-header-panel/demos/images/bg5.jpg +0 -0
- data/app/assets/components/core-scroll-header-panel/demos/images/bg6.jpg +0 -0
- data/app/assets/components/core-scroll-header-panel/demos/images/bg9.jpg +0 -0
- data/app/assets/components/core-scroll-header-panel/demos/lorem-ipsum.html +42 -0
- data/app/assets/components/core-scroll-header-panel/index.html +22 -0
- data/app/assets/components/core-scroll-header-panel/metadata.html +41 -0
- data/app/assets/components/core-selection/README.md +4 -0
- data/app/assets/components/core-selection/bower.json +7 -0
- data/app/assets/components/{core/selection → core-selection}/core-selection.html +6 -5
- data/app/assets/components/core-selection/demo.html +59 -0
- data/app/assets/components/core-selection/index.html +22 -0
- data/app/assets/components/core-selector/README.md +4 -0
- data/app/assets/components/core-selector/bower.json +8 -0
- data/app/assets/components/{core/selector/core-selector.html.erb → core-selector/core-selector.html} +53 -16
- data/app/assets/components/core-selector/demo.html +106 -0
- data/app/assets/components/core-selector/index.html +22 -0
- data/app/assets/components/core-selector/metadata.html +20 -0
- data/app/assets/components/core-style/README.md +4 -0
- data/app/assets/components/core-style/bower.json +7 -0
- data/app/assets/components/{core/style → core-style}/core-style.html +387 -386
- data/app/assets/components/core-style/demo.html +58 -0
- data/app/assets/components/core-style/elements.html +55 -0
- data/app/assets/components/core-style/index.html +22 -0
- data/app/assets/components/core-style/my-theme.html +73 -0
- data/app/assets/components/core-toolbar/README.md +4 -0
- data/app/assets/components/core-toolbar/bower.json +7 -0
- data/app/assets/components/core-toolbar/core-toolbar.css +110 -0
- data/app/assets/components/core-toolbar/core-toolbar.html +74 -0
- data/app/assets/components/core-toolbar/demo.html +107 -0
- data/app/assets/components/core-toolbar/index.html +22 -0
- data/app/assets/components/core-toolbar/metadata.html +28 -0
- data/app/assets/components/core-transition/README.md +2 -0
- data/app/assets/components/core-transition/bower.json +8 -0
- data/app/assets/components/core-transition/core-transition-css.html +221 -0
- data/app/assets/components/{core/transition → core-transition}/core-transition-overlay.css +1 -1
- data/app/assets/components/core-transition/core-transition.html +140 -0
- data/app/assets/components/core-transition/demo.html +87 -0
- data/app/assets/components/core-transition/index.html +22 -0
- data/app/assets/components/font-roboto/roboto.html +9 -0
- data/app/assets/components/paper-button/README.md +4 -0
- data/app/assets/components/paper-button/bower.json +11 -0
- data/app/assets/components/paper-button/demo.html +99 -0
- data/app/assets/components/paper-button/demo2.html +136 -0
- data/app/assets/components/paper-button/index.html +22 -0
- data/app/assets/components/paper-button/metadata.html +17 -0
- data/app/assets/components/paper-button/paper-button.css +11 -1
- data/app/assets/components/paper-button/{paper-button.html.erb → paper-button.html} +9 -8
- data/app/assets/components/paper-checkbox/README.md +4 -0
- data/app/assets/components/paper-checkbox/bower.json +8 -0
- data/app/assets/components/paper-checkbox/demo.html +113 -0
- data/app/assets/components/paper-checkbox/index.html +22 -0
- data/app/assets/components/paper-checkbox/metadata.html +17 -0
- data/app/assets/components/paper-checkbox/paper-checkbox.css +49 -48
- data/app/assets/components/paper-checkbox/{paper-checkbox.html.erb → paper-checkbox.html} +110 -104
- data/app/assets/components/paper-dialog/README.md +4 -0
- data/app/assets/components/paper-dialog/bower.json +10 -0
- data/app/assets/components/paper-dialog/demo.html +85 -0
- data/app/assets/components/paper-dialog/index.html +22 -0
- data/app/assets/components/paper-dialog/{paper-dialog-transition.html.erb → paper-dialog-transition.html} +3 -3
- data/app/assets/components/paper-dialog/paper-dialog.css +52 -0
- data/app/assets/components/paper-dialog/{paper-dialog.html.erb → paper-dialog.html} +7 -7
- data/app/assets/components/paper-dropdown/README.md +9 -0
- data/app/assets/components/paper-dropdown/bower.json +12 -0
- data/app/assets/components/paper-dropdown/demo.html +345 -0
- data/app/assets/components/paper-dropdown/index.html +22 -0
- data/app/assets/components/paper-dropdown/paper-dropdown.css +48 -0
- data/app/assets/components/paper-dropdown/paper-dropdown.html +191 -0
- data/app/assets/components/paper-fab/README.md +4 -0
- data/app/assets/components/paper-fab/bower.json +8 -0
- data/app/assets/components/paper-fab/demo.html +72 -0
- data/app/assets/components/paper-fab/demo2.html +103 -0
- data/app/assets/components/paper-fab/index.html +22 -0
- data/app/assets/components/paper-fab/metadata.html +36 -0
- data/app/assets/components/paper-fab/paper-fab.css +11 -2
- data/app/assets/components/paper-fab/{paper-fab.html.erb → paper-fab.html} +3 -2
- data/app/assets/components/paper-focusable/README.md +4 -0
- data/app/assets/components/paper-focusable/bower.json +7 -0
- data/app/assets/components/paper-focusable/demo.html +155 -0
- data/app/assets/components/paper-focusable/paper-focusable.html +2 -0
- data/app/assets/components/paper-icon-button/README.md +4 -0
- data/app/assets/components/paper-icon-button/bower.json +9 -0
- data/app/assets/components/paper-icon-button/demo.html +102 -0
- data/app/assets/components/paper-icon-button/index.html +22 -0
- data/app/assets/components/paper-icon-button/metadata.html +21 -0
- data/app/assets/components/paper-icon-button/paper-icon-button.css +1 -1
- data/app/assets/components/paper-icon-button/{paper-icon-button.html.erb → paper-icon-button.html} +7 -7
- data/app/assets/components/paper-icon-button/pulse-ink.css +20 -0
- data/app/assets/components/paper-input/README.md +4 -0
- data/app/assets/components/paper-input/bower.json +11 -0
- data/app/assets/components/paper-input/demo.html +124 -0
- data/app/assets/components/paper-input/index.html +22 -0
- data/app/assets/components/paper-input/metadata.html +23 -0
- data/app/assets/components/paper-input/paper-input.css +152 -0
- data/app/assets/components/paper-input/paper-input.html +314 -0
- data/app/assets/components/paper-item/README.md +4 -0
- data/app/assets/components/paper-item/bower.json +9 -0
- data/app/assets/components/paper-item/demo.html +39 -0
- data/app/assets/components/paper-item/index.html +22 -0
- data/app/assets/components/paper-item/metadata.html +23 -0
- data/app/assets/components/paper-item/paper-item.css +15 -2
- data/app/assets/components/paper-item/{paper-item.html.erb → paper-item.html} +7 -6
- data/app/assets/components/paper-menu-button/README.md +4 -0
- data/app/assets/components/paper-menu-button/bower.json +16 -0
- data/app/assets/components/paper-menu-button/demo.html +95 -0
- data/app/assets/components/paper-menu-button/index.html +22 -0
- data/app/assets/components/paper-menu-button/metadata.html +21 -0
- data/app/assets/components/paper-menu-button/{paper-menu-button-transition.html.erb → paper-menu-button-transition.html} +31 -26
- data/app/assets/components/paper-menu-button/paper-menu-button.css +5 -9
- data/app/assets/components/paper-menu-button/{paper-menu-button.html.erb → paper-menu-button.html} +52 -20
- data/app/assets/components/paper-progress/README.md +4 -0
- data/app/assets/components/paper-progress/bower.json +8 -0
- data/app/assets/components/paper-progress/demo.html +107 -0
- data/app/assets/components/paper-progress/index.html +22 -0
- data/app/assets/components/paper-progress/metadata.html +17 -0
- data/app/assets/components/paper-progress/paper-progress.css +1 -1
- data/app/assets/components/paper-progress/{paper-progress.html.erb → paper-progress.html} +23 -23
- data/app/assets/components/paper-radio-button/README.md +4 -0
- data/app/assets/components/paper-radio-button/bower.json +7 -0
- data/app/assets/components/paper-radio-button/demo.html +75 -0
- data/app/assets/components/paper-radio-button/index.html +22 -0
- data/app/assets/components/paper-radio-button/metadata.html +17 -0
- data/app/assets/components/paper-radio-button/paper-radio-button.css +14 -8
- data/app/assets/components/paper-radio-button/{paper-radio-button.html.erb → paper-radio-button.html} +38 -29
- data/app/assets/components/paper-radio-group/README.md +4 -0
- data/app/assets/components/paper-radio-group/bower.json +9 -0
- data/app/assets/components/paper-radio-group/demo.html +82 -0
- data/app/assets/components/paper-radio-group/index.html +22 -0
- data/app/assets/components/paper-radio-group/metadata.html +22 -0
- data/app/assets/components/paper-radio-group/{paper-radio-group.html.erb → paper-radio-group.html} +16 -16
- data/app/assets/components/paper-ripple/README.md +4 -0
- data/app/assets/components/paper-ripple/bower.json +9 -0
- data/app/assets/components/paper-ripple/demo.html +418 -0
- data/app/assets/components/paper-ripple/index.html +22 -0
- data/app/assets/components/paper-ripple/metadata.html +20 -0
- data/app/assets/components/paper-ripple/paper-ripple.html +3 -2
- data/app/assets/components/paper-ripple/raw.html +799 -0
- data/app/assets/components/paper-shadow/README.md +4 -0
- data/app/assets/components/paper-shadow/bower.json +7 -0
- data/app/assets/components/paper-shadow/demo.html +252 -0
- data/app/assets/components/paper-shadow/index.html +22 -0
- data/app/assets/components/paper-shadow/metadata.html +17 -0
- data/app/assets/components/paper-shadow/paper-shadow.css +11 -1
- data/app/assets/components/paper-shadow/{paper-shadow.html.erb → paper-shadow.html} +11 -4
- data/app/assets/components/paper-slider/README.md +4 -0
- data/app/assets/components/paper-slider/bower.json +9 -0
- data/app/assets/components/paper-slider/demo.html +151 -0
- data/app/assets/components/paper-slider/index.html +22 -0
- data/app/assets/components/paper-slider/metadata.html +20 -0
- data/app/assets/components/paper-slider/paper-slider.css +58 -26
- data/app/assets/components/paper-slider/{paper-slider.html.erb → paper-slider.html} +72 -75
- data/app/assets/components/paper-tabs/README.md +4 -0
- data/app/assets/components/paper-tabs/bower.json +12 -0
- data/app/assets/components/paper-tabs/demo.html +166 -0
- data/app/assets/components/paper-tabs/index.html +22 -0
- data/app/assets/components/paper-tabs/metadata.html +58 -0
- data/app/assets/components/paper-tabs/{paper-tab.html.erb → paper-tab.html} +10 -10
- data/app/assets/components/paper-tabs/paper-tabs.css +1 -1
- data/app/assets/components/paper-tabs/{paper-tabs.html.erb → paper-tabs.html} +29 -25
- data/app/assets/components/paper-toast/README.md +4 -0
- data/app/assets/components/paper-toast/bower.json +10 -0
- data/app/assets/components/paper-toast/demo.html +67 -0
- data/app/assets/components/paper-toast/index.html +22 -0
- data/app/assets/components/paper-toast/metadata.html +20 -0
- data/app/assets/components/paper-toast/paper-toast.css +80 -0
- data/app/assets/components/paper-toast/{paper-toast.html.erb → paper-toast.html} +39 -39
- data/app/assets/components/paper-toggle-button/README.md +4 -0
- data/app/assets/components/paper-toggle-button/bower.json +8 -0
- data/app/assets/components/paper-toggle-button/demo.html +77 -0
- data/app/assets/components/paper-toggle-button/index.html +22 -0
- data/app/assets/components/paper-toggle-button/metadata.html +17 -0
- data/app/assets/components/paper-toggle-button/paper-toggle-button.css +1 -1
- data/app/assets/components/paper-toggle-button/{paper-toggle-button.html.erb → paper-toggle-button.html} +39 -20
- data/app/assets/components/platform/README.md +6 -0
- data/app/assets/components/platform/bower.json +16 -0
- data/app/assets/components/platform/build.log +35 -0
- data/app/assets/components/platform/platform.js +16 -0
- data/app/assets/components/platform/platform.js.map +1 -0
- data/app/assets/components/polymer/README.md +17 -0
- data/app/assets/components/polymer/bower.json +8 -0
- data/app/assets/components/polymer/build.log +35 -0
- data/app/assets/components/polymer/layout.html +286 -0
- data/app/assets/components/polymer/polymer.html +13 -0
- data/app/assets/components/polymer/polymer.js +14 -0
- data/app/assets/components/polymer/polymer.js.map +1 -0
- data/app/assets/components/sampler-scaffold/README.md +4 -0
- data/app/assets/components/sampler-scaffold/bower.json +12 -0
- data/app/assets/components/sampler-scaffold/demo.html +54 -0
- data/app/assets/components/sampler-scaffold/demos/checkbox.html +20 -0
- data/app/assets/components/sampler-scaffold/demos/color.html +20 -0
- data/app/assets/components/sampler-scaffold/demos/radio.html +20 -0
- data/app/assets/components/sampler-scaffold/demos/range.html +20 -0
- data/app/assets/components/sampler-scaffold/demos/string.html +20 -0
- data/app/assets/components/sampler-scaffold/index.html +22 -0
- data/app/assets/components/sampler-scaffold/sampler-scaffold.css +157 -0
- data/app/assets/components/sampler-scaffold/sampler-scaffold.html +224 -0
- data/app/assets/components/web-animations-js/COPYING +202 -0
- data/app/assets/components/web-animations-js/README.md +237 -0
- data/app/assets/components/web-animations-js/run-lint.sh +19 -0
- data/app/assets/components/web-animations-js/run-tests-android.sh +25 -0
- data/app/assets/components/web-animations-js/run-tests.sh +15 -0
- data/app/assets/components/web-animations-js/test/bootstrap.js +1266 -0
- data/app/assets/components/web-animations-js/test/img/error.png +0 -0
- data/app/assets/components/web-animations-js/test/img/success.png +0 -0
- data/app/assets/components/web-animations-js/test/img/unknown.png +0 -0
- data/app/assets/components/web-animations-js/test/perf/balls-add-compositing.html +147 -0
- data/app/assets/components/web-animations-js/test/perf/balls-replace-compositing.html +144 -0
- data/app/assets/components/web-animations-js/test/perf/perf.js +158 -0
- data/app/assets/components/web-animations-js/test/perf/updating-inline-style-during-animation.html +165 -0
- data/app/assets/components/web-animations-js/test/test-generator.html +240 -0
- data/app/assets/components/web-animations-js/test/test-results-post.html +3 -0
- data/app/assets/components/web-animations-js/test/test-runner.html +810 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-box-shadow-checks.js +42 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-box-shadow.html +40 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-calc-checks.js +41 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-calc.html +156 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-change-playback-rate-checks.js +23 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-circular-path-checks.js +65 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-circular-path.html +83 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-color-checks.js +101 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-color-names-checks.js +431 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-color-names.html +204 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-color.html +117 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-composite-transforms-checks.js +45 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-composite-transforms.html +97 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-compositor-checks.js +26 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-compositor.html +68 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-delay-checks.js +92 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-delay.html +39 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-element-animate-checks.js +8 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-element-animate.html +30 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-fill-values-checks.js +266 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-fill-values.html +114 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-font-weight-checks.js +26 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-font-weight.html +43 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-initial-checks.js +74 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-initial.html +242 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-inline-style-checks.js +17 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-inline-style-fallback-checks.js +17 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-inline-style-fallback.html +78 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-inline-style-methods-checks.js +17 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-inline-style-methods.html +70 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-inline-style.html +69 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-integer-checks.js +38 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-integer.html +52 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-iteration-start-checks.js +506 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-iteration-start.html +160 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-iterations-alternate-checks.js +44 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-iterations-alternate-holes-checks.js +41 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-iterations-alternate-holes.html +48 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-iterations-alternate.html +50 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-iterations-basic-checks.js +162 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-iterations-basic.html +116 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-iterations-fill-checks.js +602 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-iterations-fill.html +167 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-keyframe-creation-checks.js +67 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-keyframe-creation.html +109 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-keyframe-easing-checks.js +65 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-keyframe-easing.html +64 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-length-units-checks.js +342 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-length-units.html +103 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-matrix-transforms-checks.js +56 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-matrix-transforms.html +90 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-motion-path-checks.js +110 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-motion-path.html +133 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-non-numeric-checks.js +26 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-non-numeric.html +42 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-parent-checks.js +38 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-parent.html +52 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-partial-keyframes-checks.js +27 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-partial-keyframes.html +43 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-path-checks.js +20 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-path.html +41 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-pause-checks.js +79 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-pause.html +82 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-perspective-checks.js +37 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-perspective-origin-checks.js +61 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-perspective-origin.html +94 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-perspective.html +79 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-playback-rate-checks.js +146 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-playback-rate.html +128 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-position-list-type-checks.js +73 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-rectangle-checks.js +23 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-rectangle.html +57 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-reparent-checks.js +95 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-reparent.html +60 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-seq-speed-checks.js +69 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-seq-speed.html +86 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-shorthand-checks.js +197 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-shorthand.html +115 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-start-time-checks.js +58 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-start-time-iterations-checks.js +92 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-start-time-iterations.html +107 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-start-time.html +90 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-svg-anim-checks.js +23 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-svg-anim.html +39 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-svg-circle-checks.js +23 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-svg-circle.html +38 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-svg-color-checks.js +20 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-svg-color.html +36 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-text-shadow-checks.js +20 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-text-shadow.html +37 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-timing-functions-checks.js +89 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-timing-functions.html +77 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-to-animation-checks.js +58 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-to-animation.html +83 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-transform-3d-checks.js +134 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-transform-3d.html +123 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-transform-functions-checks.js +160 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-transform-functions.html +158 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-transform-origin-checks.js +37 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-transform-origin.html +80 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-transform-primitives-checks.js +292 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-transform-primitives.html +97 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-transform-units-checks.js +202 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-transform-units.html +98 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-visibility-checks.js +54 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-visibility.html +80 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-wrapping-bug-checks.js +58 -0
- data/app/assets/components/web-animations-js/test/testcases/auto-test-wrapping-bug.html +60 -0
- data/app/assets/components/web-animations-js/test/testcases/background.png +0 -0
- data/app/assets/components/web-animations-js/test/testcases/disabled-auto-test-change-playback-rate.html +65 -0
- data/app/assets/components/web-animations-js/test/testcases/disabled-auto-test-position-list-type.html +103 -0
- data/app/assets/components/web-animations-js/test/testcases/disabled-media.html +439 -0
- data/app/assets/components/web-animations-js/test/testcases/disabled-test-compositing-order.html +112 -0
- data/app/assets/components/web-animations-js/test/testcases/impl-test-deprecation.html +85 -0
- data/app/assets/components/web-animations-js/test/testcases/impl-test-from-css-value.html +219 -0
- data/app/assets/components/web-animations-js/test/testcases/impl-test-paced-timing-function.html +83 -0
- data/app/assets/components/web-animations-js/test/testcases/impl-test-totimelinetime.html +37 -0
- data/app/assets/components/web-animations-js/test/testcases/impl-unit-test-position-type.html +256 -0
- data/app/assets/components/web-animations-js/test/testcases/manual-test-add-player-onend.html +57 -0
- data/app/assets/components/web-animations-js/test/testcases/manual-test-preset-timings.html +71 -0
- data/app/assets/components/web-animations-js/test/testcases/manual-test-step.html +88 -0
- data/app/assets/components/web-animations-js/test/testcases/small.mp4 +0 -0
- data/app/assets/components/web-animations-js/test/testcases/small.webm +0 -0
- data/app/assets/components/web-animations-js/test/testcases/test-bounds.html +69 -0
- data/app/assets/components/web-animations-js/test/testcases/test-document-timeline.html +53 -0
- data/app/assets/components/web-animations-js/test/testcases/test-dynamic-load.html +65 -0
- data/app/assets/components/web-animations-js/test/testcases/test-fill-auto.html +78 -0
- data/app/assets/components/web-animations-js/test/testcases/test-getcurrent.html +324 -0
- data/app/assets/components/web-animations-js/test/testcases/test-keyframe-animation-effect.html +248 -0
- data/app/assets/components/web-animations-js/test/testcases/test-keyframe-composite-operation.html +182 -0
- data/app/assets/components/web-animations-js/test/testcases/test-null-target.html +66 -0
- data/app/assets/components/web-animations-js/test/testcases/test-pause-for-testing.html +52 -0
- data/app/assets/components/web-animations-js/test/testcases/test-player-addeventlistener.html +161 -0
- data/app/assets/components/web-animations-js/test/testcases/test-player-cleanup.html +79 -0
- data/app/assets/components/web-animations-js/test/testcases/test-player-finish-event.html +101 -0
- data/app/assets/components/web-animations-js/test/testcases/test-player-sort.html +48 -0
- data/app/assets/components/web-animations-js/test/testcases/test-player.html +786 -0
- data/app/assets/components/web-animations-js/test/testcases/test-pseudo-element-reference.html +38 -0
- data/app/assets/components/web-animations-js/test/testcases/test-repeated-pause.html +54 -0
- data/app/assets/components/web-animations-js/test/testcases/test-restart.html +115 -0
- data/app/assets/components/web-animations-js/test/testcases/test-reversed-player-active-phase.html +28 -0
- data/app/assets/components/web-animations-js/test/testcases/test-rotation-not-reversed.html +55 -0
- data/app/assets/components/web-animations-js/test/testcases/test-update-state.html +113 -0
- data/app/assets/components/web-animations-js/test/testcases/unit-test-clone.html +80 -0
- data/app/assets/components/web-animations-js/test/testcases/unit-test-delay.html +66 -0
- data/app/assets/components/web-animations-js/test/testcases/unit-test-dom-operations.html +164 -0
- data/app/assets/components/web-animations-js/test/testcases/unit-test-duration.html +66 -0
- data/app/assets/components/web-animations-js/test/testcases/unit-test-get-siblings.html +112 -0
- data/app/assets/components/web-animations-js/test/testcases/unit-test-modify-timing-params.html +105 -0
- data/app/assets/components/web-animations-js/test/testcases/unit-test-null-effect.html +43 -0
- data/app/assets/components/web-animations-js/test/testcases/unit-test-set-parent.html +111 -0
- data/app/assets/components/web-animations-js/test/testcases/unit-test-testharness-failure.html +54 -0
- data/app/assets/components/web-animations-js/test/testcases/unit-test-testharness.html +248 -0
- data/app/assets/components/web-animations-js/test/testcases/unit-test-unpause.html +68 -0
- data/app/assets/components/web-animations-js/test/testcases.js +93 -0
- data/app/assets/components/web-animations-js/test/testharness_timing.css +75 -0
- data/app/assets/components/web-animations-js/test/update-testcases.py +63 -0
- data/app/assets/components/web-animations-js/tools/android/config.sh +8 -0
- data/app/assets/components/web-animations-js/tools/android/setup.sh +152 -0
- data/app/assets/components/web-animations-js/tools/android/stop.sh +20 -0
- data/app/assets/components/web-animations-js/tools/python/requirements.txt +12 -0
- data/app/assets/components/web-animations-js/tools/python/run-tests.py +813 -0
- data/app/assets/components/web-animations-js/tools/python/setup.sh +60 -0
- data/app/assets/components/web-animations-js/tutorial/basic-animations/basic-animation-exercise-1.html +62 -0
- data/app/assets/components/web-animations-js/tutorial/basic-animations/basic-animation.html +120 -0
- data/app/assets/components/web-animations-js/tutorial/iframe-contents.html +29 -0
- data/app/assets/components/web-animations-js/tutorial/jquery.js +9555 -0
- data/app/assets/components/web-animations-js/tutorial/page-load.js +114 -0
- data/app/assets/components/web-animations-js/tutorial/parallel/parallel-exercise-1.html +58 -0
- data/app/assets/components/web-animations-js/tutorial/parallel/parallel.html +101 -0
- data/app/assets/components/web-animations-js/tutorial/sample-tutorial.html +44 -0
- data/app/assets/components/web-animations-js/tutorial/try-it-yourself.js +216 -0
- data/app/assets/components/web-animations-js/tutorial/tutorial-style.css +344 -0
- data/app/assets/components/web-animations-js/tutorial/tutorial-testing.js +84 -0
- data/app/assets/components/{core/animation → web-animations-js}/web-animations.js +77 -214
- data/lib/polymer-paper-rails/version.rb +1 -1
- metadata +540 -61
- data/app/assets/components/core/animation/web-animations.html.erb +0 -1
- data/app/assets/components/core/icon/core-icon.html.erb +0 -126
- data/app/assets/components/core/input/core-input.css +0 -35
- data/app/assets/components/core/list/core-list.css +0 -20
- data/app/assets/components/core/list/core-list.html.erb +0 -403
- data/app/assets/components/core/transition/core-transition-css.html.erb +0 -76
- data/app/assets/components/core/transition/core-transition.html.erb +0 -44
- data/app/assets/components/paper-input/error-100.png +0 -0
- data/app/assets/components/paper-input/error-200.png +0 -0
- data/app/assets/components/paper-input/paper-input.html.erb +0 -398
- data/app/assets/components/paper-input/paper-input.scss +0 -203
- data/app/assets/components/paper-menu-button/paper-menu-button-overlay.html.erb +0 -86
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,147 @@
|
|
1
|
+
<!--
|
2
|
+
Copyright 2013 Google Inc. All Rights Reserved.
|
3
|
+
|
4
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
you may not use this file except in compliance with the License.
|
6
|
+
You may obtain a copy of the License at
|
7
|
+
|
8
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
|
10
|
+
Unless required by applicable law or agreed to in writing, software
|
11
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
See the License for the specific language governing permissions and
|
14
|
+
limitations under the License.
|
15
|
+
|
16
|
+
This test is based on code written by Cameron Adams and imported from
|
17
|
+
http://themaninblue.com/experiment/AnimationBenchmark/html
|
18
|
+
-->
|
19
|
+
<!doctype html>
|
20
|
+
<head>
|
21
|
+
<style>
|
22
|
+
.ball {
|
23
|
+
position: absolute;
|
24
|
+
width: 12px;
|
25
|
+
height: 12px;
|
26
|
+
border-radius: 100%;
|
27
|
+
}
|
28
|
+
</style>
|
29
|
+
</head>
|
30
|
+
<script src="perf.js"></script>
|
31
|
+
<script src="../../web-animations.js"></script>
|
32
|
+
<script>
|
33
|
+
'use strict';
|
34
|
+
|
35
|
+
var stageWidth = 600;
|
36
|
+
var stageHeight = 600;
|
37
|
+
var particleCount = 2500;
|
38
|
+
var minVelocity = 50;
|
39
|
+
var maxVelocity = 500;
|
40
|
+
var particleRadius = 6;
|
41
|
+
var colors = ['#cc0000', '#ffcc00', '#aaff00', '#0099cc', '#194c99', '#661999'];
|
42
|
+
var animationDuration = 10;
|
43
|
+
|
44
|
+
var particles = [];
|
45
|
+
var player;
|
46
|
+
|
47
|
+
var Particle = function() {
|
48
|
+
this.element = document.createElement('div');
|
49
|
+
this.element.className = 'ball';
|
50
|
+
this.element.style.backgroundColor = colors[Math.floor(Perf.random() * colors.length)];
|
51
|
+
this.element.style.left = (stageWidth / 2 - particleRadius) + 'px';
|
52
|
+
this.element.style.top = (stageHeight / 2 - particleRadius) + 'px';
|
53
|
+
document.body.appendChild(this.element);
|
54
|
+
};
|
55
|
+
|
56
|
+
Particle.prototype.generateAnimation = function(duration) {
|
57
|
+
var keyframes = [];
|
58
|
+
|
59
|
+
var angle = Math.PI * 2 * Perf.random();
|
60
|
+
var velocity = minVelocity + ((maxVelocity - minVelocity) * Perf.random());
|
61
|
+
var x = 0;
|
62
|
+
var y = 0;
|
63
|
+
var dx = Math.cos(angle) * velocity;
|
64
|
+
var dy = Math.sin(angle) * velocity;
|
65
|
+
|
66
|
+
var nextCollision = function(lineX, normalX, lineY, normalY) {
|
67
|
+
var dtx = Infinity;
|
68
|
+
var dty = Infinity;
|
69
|
+
if (dx * normalX < 0)
|
70
|
+
dtx = (lineX - x) / dx;
|
71
|
+
if (dy * normalY < 0)
|
72
|
+
dty = (lineY - y) / dy;
|
73
|
+
var dt = Math.min(dtx, dty);
|
74
|
+
var hitX = (dtx < dty);
|
75
|
+
return {
|
76
|
+
dt: dt,
|
77
|
+
x: hitX ? lineX : x + (dx * dt),
|
78
|
+
y: hitX ? y + (dy * dt) : lineY,
|
79
|
+
dx: hitX ? -dx : dx,
|
80
|
+
dy: hitX ? dy : -dy,
|
81
|
+
};
|
82
|
+
};
|
83
|
+
|
84
|
+
var t = 0;
|
85
|
+
keyframes.push(this.createKeyframe(0, x, y));
|
86
|
+
while (t < duration) {
|
87
|
+
var collisionA = nextCollision(-stageWidth / 2, 1, -stageHeight / 2, 1);
|
88
|
+
var collisionB = nextCollision(stageWidth / 2, -1, stageHeight / 2, -1);
|
89
|
+
var collision = collisionA.dt < collisionB.dt ? collisionA : collisionB;
|
90
|
+
if (t + collision.dt > duration) {
|
91
|
+
var dt = duration - t;
|
92
|
+
t = duration;
|
93
|
+
x += dx * dt;
|
94
|
+
y += dy * dt;
|
95
|
+
} else {
|
96
|
+
t += collision.dt;
|
97
|
+
x = collision.x;
|
98
|
+
y = collision.y;
|
99
|
+
dx = collision.dx;
|
100
|
+
dy = collision.dy;
|
101
|
+
}
|
102
|
+
keyframes.push(this.createKeyframe(t / duration, x, y));
|
103
|
+
}
|
104
|
+
|
105
|
+
return new Animation(this.element, keyframes, duration);
|
106
|
+
};
|
107
|
+
|
108
|
+
Particle.prototype.createKeyframe = function(offset, x, y) {
|
109
|
+
return {
|
110
|
+
composite: 'add',
|
111
|
+
offset: offset,
|
112
|
+
left: x + 'px',
|
113
|
+
top: y + 'px',
|
114
|
+
};
|
115
|
+
};
|
116
|
+
|
117
|
+
Particle.prototype.destroy = function() {
|
118
|
+
document.body.removeChild(this.element);
|
119
|
+
};
|
120
|
+
|
121
|
+
function cleanUp() {
|
122
|
+
player.source = null;
|
123
|
+
for (var i = 0; i < particles.length; i++) {
|
124
|
+
particles[i].destroy();
|
125
|
+
}
|
126
|
+
particles = [];
|
127
|
+
}
|
128
|
+
|
129
|
+
window.addEventListener('load', function () {
|
130
|
+
var spacing = document.createElement('div');
|
131
|
+
spacing.style.display = 'inline-block';
|
132
|
+
spacing.style.width = '600px';
|
133
|
+
document.body.appendChild(spacing);
|
134
|
+
|
135
|
+
var animationGroup = new AnimationGroup([], {iterations: Infinity, direction: 'alternate'});
|
136
|
+
for (var i = 0; i < particleCount; i++) {
|
137
|
+
var particle = new Particle();
|
138
|
+
animationGroup.append(particle.generateAnimation(animationDuration));
|
139
|
+
particles.push(particle);
|
140
|
+
}
|
141
|
+
player = document.timeline.play(animationGroup);
|
142
|
+
|
143
|
+
Perf.oncomplete = cleanUp;
|
144
|
+
Perf.start();
|
145
|
+
});
|
146
|
+
|
147
|
+
</script>
|
@@ -0,0 +1,144 @@
|
|
1
|
+
<!--
|
2
|
+
Copyright 2013 Google Inc. All Rights Reserved.
|
3
|
+
|
4
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
you may not use this file except in compliance with the License.
|
6
|
+
You may obtain a copy of the License at
|
7
|
+
|
8
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
|
10
|
+
Unless required by applicable law or agreed to in writing, software
|
11
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
See the License for the specific language governing permissions and
|
14
|
+
limitations under the License.
|
15
|
+
|
16
|
+
This test is based on code written by Cameron Adams and imported from
|
17
|
+
http://themaninblue.com/experiment/AnimationBenchmark/html
|
18
|
+
-->
|
19
|
+
<!doctype html>
|
20
|
+
<head>
|
21
|
+
<style>
|
22
|
+
.ball {
|
23
|
+
position: absolute;
|
24
|
+
width: 12px;
|
25
|
+
height: 12px;
|
26
|
+
border-radius: 100%;
|
27
|
+
}
|
28
|
+
</style>
|
29
|
+
</head>
|
30
|
+
<script src="perf.js"></script>
|
31
|
+
<script src="../../web-animations.js"></script>
|
32
|
+
<script>
|
33
|
+
'use strict';
|
34
|
+
|
35
|
+
var stageWidth = 600;
|
36
|
+
var stageHeight = 600;
|
37
|
+
var particleCount = 2500;
|
38
|
+
var minVelocity = 50;
|
39
|
+
var maxVelocity = 500;
|
40
|
+
var particleRadius = 6;
|
41
|
+
var colors = ['#cc0000', '#ffcc00', '#aaff00', '#0099cc', '#194c99', '#661999'];
|
42
|
+
var animationDuration = 10;
|
43
|
+
|
44
|
+
var particles = [];
|
45
|
+
var player;
|
46
|
+
|
47
|
+
var Particle = function() {
|
48
|
+
this.element = document.createElement('div');
|
49
|
+
this.element.className = 'ball';
|
50
|
+
this.element.style.backgroundColor = colors[Math.floor(Perf.random() * colors.length)];
|
51
|
+
document.body.appendChild(this.element);
|
52
|
+
};
|
53
|
+
|
54
|
+
Particle.prototype.generateAnimation = function(duration) {
|
55
|
+
var keyframes = [];
|
56
|
+
|
57
|
+
var angle = Math.PI * 2 * Perf.random();
|
58
|
+
var velocity = minVelocity + ((maxVelocity - minVelocity) * Perf.random());
|
59
|
+
var x = stageWidth / 2 - particleRadius;
|
60
|
+
var y = stageHeight / 2 - particleRadius;
|
61
|
+
var dx = Math.cos(angle) * velocity;
|
62
|
+
var dy = Math.sin(angle) * velocity;
|
63
|
+
|
64
|
+
var nextCollision = function(lineX, normalX, lineY, normalY) {
|
65
|
+
var dtx = Infinity;
|
66
|
+
var dty = Infinity;
|
67
|
+
if (dx * normalX < 0)
|
68
|
+
dtx = (lineX - x) / dx;
|
69
|
+
if (dy * normalY < 0)
|
70
|
+
dty = (lineY - y) / dy;
|
71
|
+
var dt = Math.min(dtx, dty);
|
72
|
+
var hitX = (dtx < dty);
|
73
|
+
return {
|
74
|
+
dt: dt,
|
75
|
+
x: hitX ? lineX : x + (dx * dt),
|
76
|
+
y: hitX ? y + (dy * dt) : lineY,
|
77
|
+
dx: hitX ? -dx : dx,
|
78
|
+
dy: hitX ? dy : -dy,
|
79
|
+
};
|
80
|
+
};
|
81
|
+
|
82
|
+
var t = 0;
|
83
|
+
keyframes.push(this.createKeyframe(0, x, y));
|
84
|
+
while (t < duration) {
|
85
|
+
var collisionA = nextCollision(0, 1, 0, 1);
|
86
|
+
var collisionB = nextCollision(stageWidth, -1, stageHeight, -1);
|
87
|
+
var collision = collisionA.dt < collisionB.dt ? collisionA : collisionB;
|
88
|
+
if (t + collision.dt > duration) {
|
89
|
+
var dt = duration - t;
|
90
|
+
t = duration;
|
91
|
+
x += dx * dt;
|
92
|
+
y += dy * dt;
|
93
|
+
} else {
|
94
|
+
t += collision.dt;
|
95
|
+
x = collision.x;
|
96
|
+
y = collision.y;
|
97
|
+
dx = collision.dx;
|
98
|
+
dy = collision.dy;
|
99
|
+
}
|
100
|
+
keyframes.push(this.createKeyframe(t / duration, x, y));
|
101
|
+
}
|
102
|
+
|
103
|
+
return new Animation(this.element, keyframes, duration);
|
104
|
+
};
|
105
|
+
|
106
|
+
Particle.prototype.createKeyframe = function(offset, x, y) {
|
107
|
+
return {
|
108
|
+
offset: offset,
|
109
|
+
left: x + 'px',
|
110
|
+
top: y + 'px',
|
111
|
+
};
|
112
|
+
};
|
113
|
+
|
114
|
+
Particle.prototype.destroy = function() {
|
115
|
+
document.body.removeChild(this.element);
|
116
|
+
};
|
117
|
+
|
118
|
+
function cleanUp() {
|
119
|
+
player.source = null;
|
120
|
+
for (var i = 0; i < particles.length; i++) {
|
121
|
+
particles[i].destroy();
|
122
|
+
}
|
123
|
+
particles = [];
|
124
|
+
}
|
125
|
+
|
126
|
+
window.addEventListener('load', function () {
|
127
|
+
var spacing = document.createElement('div');
|
128
|
+
spacing.style.display = 'inline-block';
|
129
|
+
spacing.style.width = '600px';
|
130
|
+
document.body.appendChild(spacing);
|
131
|
+
|
132
|
+
var animationGroup = new AnimationGroup([], {iterations: Infinity, direction: 'alternate'});
|
133
|
+
for (var i = 0; i < particleCount; i++) {
|
134
|
+
var particle = new Particle();
|
135
|
+
animationGroup.append(particle.generateAnimation(animationDuration));
|
136
|
+
particles.push(particle);
|
137
|
+
}
|
138
|
+
player = document.timeline.play(animationGroup);
|
139
|
+
|
140
|
+
Perf.oncomplete = cleanUp;
|
141
|
+
Perf.start();
|
142
|
+
});
|
143
|
+
|
144
|
+
</script>
|
@@ -0,0 +1,158 @@
|
|
1
|
+
/**
|
2
|
+
* Copyright 2013 Google Inc. All Rights Reserved.
|
3
|
+
*
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
* you may not use this file except in compliance with the License.
|
6
|
+
* You may obtain a copy of the License at
|
7
|
+
*
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
*
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
* See the License for the specific language governing permissions and
|
14
|
+
* limitations under the License.
|
15
|
+
*/
|
16
|
+
|
17
|
+
(function(){
|
18
|
+
'use strict';
|
19
|
+
|
20
|
+
var disregardFramesCount = 10;
|
21
|
+
var framesPerTimeReading = 10;
|
22
|
+
var maxTimeReadings = 60;
|
23
|
+
var maxFPSReadings = 31;
|
24
|
+
|
25
|
+
var frameCount = 0;
|
26
|
+
var timeReadings = [];
|
27
|
+
var fpsReadings = [];
|
28
|
+
var onCompleteHandler;
|
29
|
+
var outputElement;
|
30
|
+
var running = false;
|
31
|
+
var visibilityLost = false;
|
32
|
+
|
33
|
+
var getTime = (typeof window.performance === 'object' &&
|
34
|
+
typeof window.performance.now === 'function') ?
|
35
|
+
function() { return window.performance.now(); } :
|
36
|
+
function() { return Date.now(); };
|
37
|
+
|
38
|
+
var raf = window.requestAnimationFrame ||
|
39
|
+
window.webkitRequestAnimationFrame ||
|
40
|
+
window.mozRequestAnimationFrame ||
|
41
|
+
function(callback) { setTimeout(callback, 1000 / 60); };
|
42
|
+
|
43
|
+
var visibilityChangeEvent = null;
|
44
|
+
var hidden = null;
|
45
|
+
if (typeof document.hidden !== 'undefined') {
|
46
|
+
visibilityChangeEvent = 'visibilitychange';
|
47
|
+
hidden = 'hidden';
|
48
|
+
} else if (typeof document.mozHidden !== 'undefined') {
|
49
|
+
visibilityChangeEvent = 'mozvisibilitychange';
|
50
|
+
hidden = 'mozHidden';
|
51
|
+
} else if (typeof document.msHidden !== 'undefined') {
|
52
|
+
visibilityChangeEvent = 'msvisibilitychange';
|
53
|
+
hidden = 'msHidden';
|
54
|
+
} else if (typeof document.webkitHidden !== 'undefined') {
|
55
|
+
visibilityChangeEvent = 'webkitvisibilitychange';
|
56
|
+
hidden = 'webkitHidden';
|
57
|
+
}
|
58
|
+
if (visibilityChangeEvent) {
|
59
|
+
document.addEventListener(visibilityChangeEvent, function() {
|
60
|
+
if (running && document[hidden]) {
|
61
|
+
visibilityLost = true;
|
62
|
+
}
|
63
|
+
});
|
64
|
+
}
|
65
|
+
|
66
|
+
var randomSeed = 3384413;
|
67
|
+
function random() {
|
68
|
+
var temp = randomSeed;
|
69
|
+
// Robert Jenkins' 32 bit integer hash function.
|
70
|
+
temp = ((temp + 0x7ed55d16) + (temp << 12)) & 0xffffffff;
|
71
|
+
temp = ((temp ^ 0xc761c23c) ^ (temp >>> 19)) & 0xffffffff;
|
72
|
+
temp = ((temp + 0x165667b1) + (temp << 5)) & 0xffffffff;
|
73
|
+
temp = ((temp + 0xd3a2646c) ^ (temp << 9)) & 0xffffffff;
|
74
|
+
temp = ((temp + 0xfd7046c5) + (temp << 3)) & 0xffffffff;
|
75
|
+
temp = ((temp ^ 0xb55a4f09) ^ (temp >>> 16)) & 0xffffffff;
|
76
|
+
randomSeed = temp;
|
77
|
+
return (randomSeed & 0xfffffff) / 0x10000000;
|
78
|
+
}
|
79
|
+
|
80
|
+
function disregardFrames() {
|
81
|
+
raf((frameCount++ < disregardFramesCount) ? disregardFrames : trackFrameRate);
|
82
|
+
}
|
83
|
+
|
84
|
+
function trackFrameRate()
|
85
|
+
{
|
86
|
+
frameCount++;
|
87
|
+
if (frameCount % framesPerTimeReading === 0) {
|
88
|
+
timeReadings.unshift(getTime());
|
89
|
+
if (timeReadings.length > maxTimeReadings) {
|
90
|
+
timeReadings.pop();
|
91
|
+
}
|
92
|
+
if (timeReadings.length > 1) {
|
93
|
+
var fpsReading = 1000 * (timeReadings.length - 1) * framesPerTimeReading /
|
94
|
+
(timeReadings[0] - timeReadings[timeReadings.length - 1]);
|
95
|
+
fpsReadings.push(fpsReading);
|
96
|
+
output(fpsReading + ' FPS\n');
|
97
|
+
if (fpsReadings.length >= maxFPSReadings) {
|
98
|
+
outputSummary();
|
99
|
+
running = false;
|
100
|
+
if (typeof onCompleteHandler === 'function') {
|
101
|
+
onCompleteHandler();
|
102
|
+
}
|
103
|
+
return;
|
104
|
+
}
|
105
|
+
}
|
106
|
+
}
|
107
|
+
raf(trackFrameRate);
|
108
|
+
}
|
109
|
+
|
110
|
+
function output(text) {
|
111
|
+
outputElement.value += text;
|
112
|
+
}
|
113
|
+
|
114
|
+
function outputSummary() {
|
115
|
+
if (visibilityLost) {
|
116
|
+
output('Warning: Document lost visibility during test, ' +
|
117
|
+
'results may be inaccurate.\n');
|
118
|
+
}
|
119
|
+
var total = 0;
|
120
|
+
fpsReadings.forEach(function(fpsReading) { total += fpsReading; });
|
121
|
+
var average = total / maxFPSReadings;
|
122
|
+
output('Average: ' + average + ' FPS\n');
|
123
|
+
var temp = 0;
|
124
|
+
fpsReadings.forEach(function(fpsReading) {
|
125
|
+
temp += (fpsReading - average) * (fpsReading - average);
|
126
|
+
});
|
127
|
+
output('Stddev: ' + Math.sqrt(temp / fpsReadings.length) + ' FPS\n');
|
128
|
+
fpsReadings.sort();
|
129
|
+
output('Min: ' + fpsReadings[0] + ' FPS\n');
|
130
|
+
output('Max: ' + fpsReadings[fpsReadings.length - 1] + ' FPS\n');
|
131
|
+
var median = fpsReadings[fpsReadings.length >> 1];
|
132
|
+
if (fpsReadings.length % 2 !== 0) {
|
133
|
+
median = (median + fpsReadings[(fpsReadings.length >> 1) + 1]) / 2;
|
134
|
+
}
|
135
|
+
output('Median: ' + median + ' FPS\n');
|
136
|
+
}
|
137
|
+
|
138
|
+
var start = function() {
|
139
|
+
outputElement = document.createElement('textarea');
|
140
|
+
outputElement.setAttribute('rows', maxFPSReadings + 6);
|
141
|
+
outputElement.setAttribute('cols', 32);
|
142
|
+
document.body.appendChild(outputElement);
|
143
|
+
|
144
|
+
output('Disregarding initial ' + disregardFramesCount + ' frames.\n')
|
145
|
+
raf(disregardFrames);
|
146
|
+
|
147
|
+
running = true;
|
148
|
+
};
|
149
|
+
|
150
|
+
window.Perf = {
|
151
|
+
set oncomplete(callback) {
|
152
|
+
onCompleteHandler = callback;
|
153
|
+
},
|
154
|
+
start: start,
|
155
|
+
random: random,
|
156
|
+
};
|
157
|
+
|
158
|
+
})();
|