jekyll-polymer-magazine 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/LICENSE.txt +21 -0
- data/README.md +45 -0
- data/_includes/disqus.html +24 -0
- data/_includes/head.html +21 -0
- data/_includes/javascripts.html +9 -0
- data/_layouts/default.html +4 -0
- data/_layouts/page.html +17 -0
- data/_layouts/post.html +95 -0
- data/assets/bower.json +29 -0
- data/assets/bower_components/app-layout/.bower.json +55 -0
- data/assets/bower_components/app-layout/.github/ISSUE_TEMPLATE.md +33 -0
- data/assets/bower_components/app-layout/.gitignore +1 -0
- data/assets/bower_components/app-layout/.travis.yml +23 -0
- data/assets/bower_components/app-layout/CONTRIBUTING.md +77 -0
- data/assets/bower_components/app-layout/README.md +106 -0
- data/assets/bower_components/app-layout/app-box/README.md +69 -0
- data/assets/bower_components/app-layout/app-box/app-box.html +238 -0
- data/assets/bower_components/app-layout/app-box/demo/document-scroll.html +216 -0
- data/assets/bower_components/app-layout/app-box/demo/index.html +40 -0
- data/assets/bower_components/app-layout/app-box/demo/scrolling-region.html +230 -0
- data/assets/bower_components/app-layout/app-drawer-layout/README.md +93 -0
- data/assets/bower_components/app-layout/app-drawer-layout/app-drawer-layout.html +277 -0
- data/assets/bower_components/app-layout/app-drawer-layout/demo/index.html +40 -0
- data/assets/bower_components/app-layout/app-drawer-layout/demo/simple-drawer.html +67 -0
- data/assets/bower_components/app-layout/app-drawer-layout/demo/two-drawers.html +70 -0
- data/assets/bower_components/app-layout/app-drawer-layout/test/app-drawer-layout.html +234 -0
- data/assets/bower_components/app-layout/app-drawer-layout/test/index.html +25 -0
- data/assets/bower_components/app-layout/app-drawer/README.md +37 -0
- data/assets/bower_components/app-layout/app-drawer/app-drawer.html +690 -0
- data/assets/bower_components/app-layout/app-drawer/demo/index.html +40 -0
- data/assets/bower_components/app-layout/app-drawer/demo/left-drawer.html +70 -0
- data/assets/bower_components/app-layout/app-drawer/demo/right-drawer.html +94 -0
- data/assets/bower_components/app-layout/app-drawer/test/app-drawer.html +794 -0
- data/assets/bower_components/app-layout/app-drawer/test/index.html +25 -0
- data/assets/bower_components/app-layout/app-grid/README.md +124 -0
- data/assets/bower_components/app-layout/app-grid/app-grid-style.html +196 -0
- data/assets/bower_components/app-layout/app-grid/demo/aspect-ratio.html +113 -0
- data/assets/bower_components/app-layout/app-grid/demo/flickr-grid-layout.html +264 -0
- data/assets/bower_components/app-layout/app-grid/demo/index.html +41 -0
- data/assets/bower_components/app-layout/app-grid/demo/md-grid-layout.html +159 -0
- data/assets/bower_components/app-layout/app-grid/demo/simple-responsive-grid.html +124 -0
- data/assets/bower_components/app-layout/app-grid/test/app-grid-1.html +154 -0
- data/assets/bower_components/app-layout/app-grid/test/app-grid-2.html +157 -0
- data/assets/bower_components/app-layout/app-grid/test/app-grid-3.html +159 -0
- data/assets/bower_components/app-layout/app-grid/test/index.html +29 -0
- data/assets/bower_components/app-layout/app-header-layout/README.md +42 -0
- data/assets/bower_components/app-layout/app-header-layout/app-header-layout.html +228 -0
- data/assets/bower_components/app-layout/app-header-layout/demo/footer.html +90 -0
- data/assets/bower_components/app-layout/app-header-layout/demo/index.html +42 -0
- data/assets/bower_components/app-layout/app-header-layout/demo/music.html +239 -0
- data/assets/bower_components/app-layout/app-header-layout/demo/scrolling-region.html +87 -0
- data/assets/bower_components/app-layout/app-header-layout/demo/simple.html +74 -0
- data/assets/bower_components/app-layout/app-header-layout/test/app-header-layout.html +152 -0
- data/assets/bower_components/app-layout/app-header-layout/test/index.html +25 -0
- data/assets/bower_components/app-layout/app-header/README.md +199 -0
- data/assets/bower_components/app-layout/app-header/app-header.html +715 -0
- data/assets/bower_components/app-layout/app-header/demo/blend-background-1.html +109 -0
- data/assets/bower_components/app-layout/app-header/demo/blend-background-2.html +113 -0
- data/assets/bower_components/app-layout/app-header/demo/blend-background-3.html +110 -0
- data/assets/bower_components/app-layout/app-header/demo/contacts.html +124 -0
- data/assets/bower_components/app-layout/app-header/demo/custom-sticky-element-1.html +82 -0
- data/assets/bower_components/app-layout/app-header/demo/custom-sticky-element-2.html +89 -0
- data/assets/bower_components/app-layout/app-header/demo/give.html +115 -0
- data/assets/bower_components/app-layout/app-header/demo/index.html +48 -0
- data/assets/bower_components/app-layout/app-header/demo/music.html +235 -0
- data/assets/bower_components/app-layout/app-header/demo/no-effects.html +64 -0
- data/assets/bower_components/app-layout/app-header/demo/notes.html +174 -0
- data/assets/bower_components/app-layout/app-header/test/app-header.html +512 -0
- data/assets/bower_components/app-layout/app-header/test/index.html +25 -0
- data/assets/bower_components/app-layout/app-layout.html +19 -0
- data/assets/bower_components/app-layout/app-scroll-effects/README.md +84 -0
- data/assets/bower_components/app-layout/app-scroll-effects/app-scroll-effects-behavior.html +392 -0
- data/assets/bower_components/app-layout/app-scroll-effects/app-scroll-effects.html +17 -0
- data/assets/bower_components/app-layout/app-scroll-effects/effects/blend-background.html +42 -0
- data/assets/bower_components/app-layout/app-scroll-effects/effects/fade-background.html +53 -0
- data/assets/bower_components/app-layout/app-scroll-effects/effects/material.html +30 -0
- data/assets/bower_components/app-layout/app-scroll-effects/effects/parallax-background.html +55 -0
- data/assets/bower_components/app-layout/app-scroll-effects/effects/resize-snapped-title.html +64 -0
- data/assets/bower_components/app-layout/app-scroll-effects/effects/resize-title.html +85 -0
- data/assets/bower_components/app-layout/app-scroll-effects/effects/waterfall.html +26 -0
- data/assets/bower_components/app-layout/app-scroll-effects/test/app-scroll-effects-behavior.html +217 -0
- data/assets/bower_components/app-layout/app-scroll-effects/test/blend-background.html +90 -0
- data/assets/bower_components/app-layout/app-scroll-effects/test/fade-background.html +99 -0
- data/assets/bower_components/app-layout/app-scroll-effects/test/index.html +37 -0
- data/assets/bower_components/app-layout/app-scroll-effects/test/parallax-background.html +85 -0
- data/assets/bower_components/app-layout/app-scroll-effects/test/resize-snapped-title.html +93 -0
- data/assets/bower_components/app-layout/app-scroll-effects/test/resize-title.html +100 -0
- data/assets/bower_components/app-layout/app-scroll-effects/test/utils.html +43 -0
- data/assets/bower_components/app-layout/app-scroll-effects/test/waterfall.html +87 -0
- data/assets/bower_components/app-layout/app-scroll-effects/test/x-container.html +100 -0
- data/assets/bower_components/app-layout/app-scrollpos-control/README.md +35 -0
- data/assets/bower_components/app-layout/app-scrollpos-control/app-scrollpos-control.html +107 -0
- data/assets/bower_components/app-layout/app-scrollpos-control/demo/index.html +82 -0
- data/assets/bower_components/app-layout/app-scrollpos-control/test/app-scrollpos-control.html +69 -0
- data/assets/bower_components/app-layout/app-scrollpos-control/test/index.html +25 -0
- data/assets/bower_components/app-layout/app-toolbar/README.md +43 -0
- data/assets/bower_components/app-layout/app-toolbar/app-toolbar.html +117 -0
- data/assets/bower_components/app-layout/app-toolbar/demo/index.html +97 -0
- data/assets/bower_components/app-layout/app-toolbar/test/app-toolbar.html +88 -0
- data/assets/bower_components/app-layout/app-toolbar/test/index.html +25 -0
- data/assets/bower_components/app-layout/bower.json +45 -0
- data/assets/bower_components/app-layout/build.sh +22 -0
- data/assets/bower_components/app-layout/demo/contacts.json +11002 -0
- data/assets/bower_components/app-layout/demo/demo1.html +109 -0
- data/assets/bower_components/app-layout/demo/demo2.html +76 -0
- data/assets/bower_components/app-layout/demo/demo3.html +79 -0
- data/assets/bower_components/app-layout/demo/demo4.html +173 -0
- data/assets/bower_components/app-layout/demo/demo5.html +126 -0
- data/assets/bower_components/app-layout/demo/demo6.html +126 -0
- data/assets/bower_components/app-layout/demo/demo7.html +76 -0
- data/assets/bower_components/app-layout/demo/sample-content.html +102 -0
- data/assets/bower_components/app-layout/docs.html +30 -0
- data/assets/bower_components/app-layout/helpers/helpers.html +130 -0
- data/assets/bower_components/app-layout/helpers/test/index.html +27 -0
- data/assets/bower_components/app-layout/helpers/test/register-effect.html +49 -0
- data/assets/bower_components/app-layout/helpers/test/scroll.html +114 -0
- data/assets/bower_components/app-layout/index.html +428 -0
- data/assets/bower_components/app-layout/patterns/expand-card/index.html +73 -0
- data/assets/bower_components/app-layout/patterns/transform-navigation/index.html +39 -0
- data/assets/bower_components/app-layout/patterns/transform-navigation/x-app.html +132 -0
- data/assets/bower_components/app-layout/site/device-viewer/device-layout-viewer.html +196 -0
- data/assets/bower_components/app-layout/site/device-viewer/device-view.html +194 -0
- data/assets/bower_components/app-layout/site/device-viewer/index.html +42 -0
- data/assets/bower_components/app-layout/site/images/cds2015.png +0 -0
- data/assets/bower_components/app-layout/site/images/getting-started.png +0 -0
- data/assets/bower_components/app-layout/site/images/io2016.png +0 -0
- data/assets/bower_components/app-layout/site/images/landing-page.png +0 -0
- data/assets/bower_components/app-layout/site/images/pesto.png +0 -0
- data/assets/bower_components/app-layout/site/images/pica.png +0 -0
- data/assets/bower_components/app-layout/site/images/polymer-summit.png +0 -0
- data/assets/bower_components/app-layout/site/images/polymer.svg +46 -0
- data/assets/bower_components/app-layout/site/images/publishing.png +0 -0
- data/assets/bower_components/app-layout/site/images/shrine.png +0 -0
- data/assets/bower_components/app-layout/site/images/test-drive.png +0 -0
- data/assets/bower_components/app-layout/site/resources.json +76 -0
- data/assets/bower_components/app-layout/templates/getting-started/bower.json +13 -0
- data/assets/bower_components/app-layout/templates/getting-started/index.html +39 -0
- data/assets/bower_components/app-layout/templates/getting-started/x-app.html +75 -0
- data/assets/bower_components/app-layout/templates/landing-page/bower.json +14 -0
- data/assets/bower_components/app-layout/templates/landing-page/index.html +39 -0
- data/assets/bower_components/app-layout/templates/landing-page/x-app.html +186 -0
- data/assets/bower_components/app-layout/templates/pesto/bower.json +24 -0
- data/assets/bower_components/app-layout/templates/pesto/data/recipes.json +402 -0
- data/assets/bower_components/app-layout/templates/pesto/index.html +55 -0
- data/assets/bower_components/app-layout/templates/pesto/manifest.json +15 -0
- data/assets/bower_components/app-layout/templates/pesto/src/app-icons.html +27 -0
- data/assets/bower_components/app-layout/templates/pesto/src/recipe-app.html +210 -0
- data/assets/bower_components/app-layout/templates/pesto/src/recipe-detail.html +224 -0
- data/assets/bower_components/app-layout/templates/pesto/src/recipe-list.html +190 -0
- data/assets/bower_components/app-layout/templates/publishing/bower.json +23 -0
- data/assets/bower_components/app-layout/templates/publishing/data/articles.json +111 -0
- data/assets/bower_components/app-layout/templates/publishing/index.html +49 -0
- data/assets/bower_components/app-layout/templates/publishing/manifest.json +21 -0
- data/assets/bower_components/app-layout/templates/publishing/src/app-icons.html +20 -0
- data/assets/bower_components/app-layout/templates/publishing/src/article-detail.html +119 -0
- data/assets/bower_components/app-layout/templates/publishing/src/article-headline.html +69 -0
- data/assets/bower_components/app-layout/templates/publishing/src/blog-app.html +331 -0
- data/assets/bower_components/app-layout/templates/publishing/src/two-columns-grid.html +142 -0
- data/assets/bower_components/app-layout/templates/shrine/bower.json +21 -0
- data/assets/bower_components/app-layout/templates/shrine/data/featured.json +72 -0
- data/assets/bower_components/app-layout/templates/shrine/data/items.json +192 -0
- data/assets/bower_components/app-layout/templates/shrine/index.html +48 -0
- data/assets/bower_components/app-layout/templates/shrine/manifest.json +22 -0
- data/assets/bower_components/app-layout/templates/shrine/src/shrine-app.html +397 -0
- data/assets/bower_components/app-layout/templates/shrine/src/shrine-detail.html +297 -0
- data/assets/bower_components/app-layout/templates/shrine/src/shrine-featured-item.html +210 -0
- data/assets/bower_components/app-layout/templates/shrine/src/shrine-item.html +136 -0
- data/assets/bower_components/app-layout/templates/shrine/src/shrine-list.html +127 -0
- data/assets/bower_components/app-layout/templates/shrine/src/shrine-simple-item.html +82 -0
- data/assets/bower_components/app-layout/templates/test-drive/bower.json +14 -0
- data/assets/bower_components/app-layout/templates/test-drive/index.html +40 -0
- data/assets/bower_components/app-layout/templates/test-drive/test-app.html +233 -0
- data/assets/bower_components/app-layout/test/index.html +33 -0
- data/assets/bower_components/font-roboto/.bower.json +31 -0
- data/assets/bower_components/font-roboto/README.md +1 -0
- data/assets/bower_components/font-roboto/bower.json +22 -0
- data/assets/bower_components/font-roboto/roboto.html +11 -0
- data/assets/bower_components/iron-a11y-announcer/.bower.json +43 -0
- data/assets/bower_components/iron-a11y-announcer/.github/ISSUE_TEMPLATE.md +33 -0
- data/assets/bower_components/iron-a11y-announcer/.gitignore +1 -0
- data/assets/bower_components/iron-a11y-announcer/.travis.yml +23 -0
- data/assets/bower_components/iron-a11y-announcer/CONTRIBUTING.md +77 -0
- data/assets/bower_components/iron-a11y-announcer/README.md +55 -0
- data/assets/bower_components/iron-a11y-announcer/bower.json +33 -0
- data/assets/bower_components/iron-a11y-announcer/demo/index.html +38 -0
- data/assets/bower_components/iron-a11y-announcer/demo/x-announces.html +60 -0
- data/assets/bower_components/iron-a11y-announcer/index.html +28 -0
- data/assets/bower_components/iron-a11y-announcer/iron-a11y-announcer.html +124 -0
- data/assets/bower_components/iron-a11y-announcer/test/index.html +24 -0
- data/assets/bower_components/iron-a11y-announcer/test/iron-a11y-announcer.html +56 -0
- data/assets/bower_components/iron-a11y-keys-behavior/.bower.json +43 -0
- data/assets/bower_components/iron-a11y-keys-behavior/.github/ISSUE_TEMPLATE.md +33 -0
- data/assets/bower_components/iron-a11y-keys-behavior/.gitignore +1 -0
- data/assets/bower_components/iron-a11y-keys-behavior/.travis.yml +25 -0
- data/assets/bower_components/iron-a11y-keys-behavior/CONTRIBUTING.md +77 -0
- data/assets/bower_components/iron-a11y-keys-behavior/README.md +58 -0
- data/assets/bower_components/iron-a11y-keys-behavior/bower.json +33 -0
- data/assets/bower_components/iron-a11y-keys-behavior/demo/index.html +24 -0
- data/assets/bower_components/iron-a11y-keys-behavior/demo/x-key-aware.html +105 -0
- data/assets/bower_components/iron-a11y-keys-behavior/index.html +24 -0
- data/assets/bower_components/iron-a11y-keys-behavior/iron-a11y-keys-behavior.html +496 -0
- data/assets/bower_components/iron-a11y-keys-behavior/test/basic-test.html +445 -0
- data/assets/bower_components/iron-a11y-keys-behavior/test/index.html +28 -0
- data/assets/bower_components/iron-autogrow-textarea/.bower.json +48 -0
- data/assets/bower_components/iron-autogrow-textarea/.github/ISSUE_TEMPLATE.md +33 -0
- data/assets/bower_components/iron-autogrow-textarea/.gitignore +1 -0
- data/assets/bower_components/iron-autogrow-textarea/.travis.yml +23 -0
- data/assets/bower_components/iron-autogrow-textarea/CONTRIBUTING.md +77 -0
- data/assets/bower_components/iron-autogrow-textarea/README.md +41 -0
- data/assets/bower_components/iron-autogrow-textarea/bower.json +39 -0
- data/assets/bower_components/iron-autogrow-textarea/demo/index.html +111 -0
- data/assets/bower_components/iron-autogrow-textarea/hero.svg +33 -0
- data/assets/bower_components/iron-autogrow-textarea/index.html +30 -0
- data/assets/bower_components/iron-autogrow-textarea/iron-autogrow-textarea.html +361 -0
- data/assets/bower_components/iron-autogrow-textarea/test/basic.html +190 -0
- data/assets/bower_components/iron-autogrow-textarea/test/index.html +24 -0
- data/assets/bower_components/iron-behaviors/.bower.json +42 -0
- data/assets/bower_components/iron-behaviors/.github/ISSUE_TEMPLATE.md +33 -0
- data/assets/bower_components/iron-behaviors/.gitignore +1 -0
- data/assets/bower_components/iron-behaviors/.travis.yml +23 -0
- data/assets/bower_components/iron-behaviors/CONTRIBUTING.md +77 -0
- data/assets/bower_components/iron-behaviors/README.md +22 -0
- data/assets/bower_components/iron-behaviors/bower.json +32 -0
- data/assets/bower_components/iron-behaviors/demo/index.html +48 -0
- data/assets/bower_components/iron-behaviors/demo/simple-button.html +66 -0
- data/assets/bower_components/iron-behaviors/index.html +27 -0
- data/assets/bower_components/iron-behaviors/iron-button-state.html +228 -0
- data/assets/bower_components/iron-behaviors/iron-control-state.html +110 -0
- data/assets/bower_components/iron-behaviors/test/active-state.html +280 -0
- data/assets/bower_components/iron-behaviors/test/disabled-state.html +82 -0
- data/assets/bower_components/iron-behaviors/test/focused-state.html +161 -0
- data/assets/bower_components/iron-behaviors/test/index.html +27 -0
- data/assets/bower_components/iron-behaviors/test/test-elements.html +91 -0
- data/assets/bower_components/iron-checked-element-behavior/.bower.json +43 -0
- data/assets/bower_components/iron-checked-element-behavior/.github/ISSUE_TEMPLATE.md +33 -0
- data/assets/bower_components/iron-checked-element-behavior/.gitignore +1 -0
- data/assets/bower_components/iron-checked-element-behavior/.travis.yml +23 -0
- data/assets/bower_components/iron-checked-element-behavior/CONTRIBUTING.md +77 -0
- data/assets/bower_components/iron-checked-element-behavior/README.md +27 -0
- data/assets/bower_components/iron-checked-element-behavior/bower.json +34 -0
- data/assets/bower_components/iron-checked-element-behavior/demo/index.html +39 -0
- data/assets/bower_components/iron-checked-element-behavior/demo/simple-checkbox.html +65 -0
- data/assets/bower_components/iron-checked-element-behavior/index.html +30 -0
- data/assets/bower_components/iron-checked-element-behavior/iron-checked-element-behavior.html +120 -0
- data/assets/bower_components/iron-checked-element-behavior/test/basic.html +152 -0
- data/assets/bower_components/iron-checked-element-behavior/test/index.html +31 -0
- data/assets/bower_components/iron-checked-element-behavior/test/simple-checkbox.html +26 -0
- data/assets/bower_components/iron-collapse/.bower.json +43 -0
- data/assets/bower_components/iron-collapse/.github/ISSUE_TEMPLATE.md +33 -0
- data/assets/bower_components/iron-collapse/.gitignore +1 -0
- data/assets/bower_components/iron-collapse/.travis.yml +24 -0
- data/assets/bower_components/iron-collapse/CONTRIBUTING.md +77 -0
- data/assets/bower_components/iron-collapse/README.md +66 -0
- data/assets/bower_components/iron-collapse/bower.json +34 -0
- data/assets/bower_components/iron-collapse/demo/index.html +104 -0
- data/assets/bower_components/iron-collapse/hero.svg +23 -0
- data/assets/bower_components/iron-collapse/index.html +31 -0
- data/assets/bower_components/iron-collapse/iron-collapse.html +302 -0
- data/assets/bower_components/iron-collapse/test/a11y.html +74 -0
- data/assets/bower_components/iron-collapse/test/basic.html +199 -0
- data/assets/bower_components/iron-collapse/test/flex.html +152 -0
- data/assets/bower_components/iron-collapse/test/horizontal.html +97 -0
- data/assets/bower_components/iron-collapse/test/index.html +35 -0
- data/assets/bower_components/iron-collapse/test/nested.html +131 -0
- data/assets/bower_components/iron-dropdown/.bower.json +47 -0
- data/assets/bower_components/iron-dropdown/.github/ISSUE_TEMPLATE.md +33 -0
- data/assets/bower_components/iron-dropdown/.gitignore +1 -0
- data/assets/bower_components/iron-dropdown/.travis.yml +23 -0
- data/assets/bower_components/iron-dropdown/CONTRIBUTING.md +77 -0
- data/assets/bower_components/iron-dropdown/README.md +46 -0
- data/assets/bower_components/iron-dropdown/bower.json +38 -0
- data/assets/bower_components/iron-dropdown/demo/grow-height-animation.html +36 -0
- data/assets/bower_components/iron-dropdown/demo/index.html +160 -0
- data/assets/bower_components/iron-dropdown/demo/x-select.html +80 -0
- data/assets/bower_components/iron-dropdown/index.html +24 -0
- data/assets/bower_components/iron-dropdown/iron-dropdown-scroll-manager.html +350 -0
- data/assets/bower_components/iron-dropdown/iron-dropdown.html +347 -0
- data/assets/bower_components/iron-dropdown/test/index.html +28 -0
- data/assets/bower_components/iron-dropdown/test/iron-dropdown-scroll-manager.html +187 -0
- data/assets/bower_components/iron-dropdown/test/iron-dropdown.html +519 -0
- data/assets/bower_components/iron-dropdown/test/x-scrollable-element.html +53 -0
- data/assets/bower_components/iron-fit-behavior/.bower.json +41 -0
- data/assets/bower_components/iron-fit-behavior/.github/ISSUE_TEMPLATE.md +33 -0
- data/assets/bower_components/iron-fit-behavior/.gitignore +1 -0
- data/assets/bower_components/iron-fit-behavior/.travis.yml +23 -0
- data/assets/bower_components/iron-fit-behavior/CONTRIBUTING.md +77 -0
- data/assets/bower_components/iron-fit-behavior/README.md +57 -0
- data/assets/bower_components/iron-fit-behavior/bower.json +31 -0
- data/assets/bower_components/iron-fit-behavior/demo/index.html +166 -0
- data/assets/bower_components/iron-fit-behavior/demo/simple-fit.html +41 -0
- data/assets/bower_components/iron-fit-behavior/index.html +30 -0
- data/assets/bower_components/iron-fit-behavior/iron-fit-behavior.html +598 -0
- data/assets/bower_components/iron-fit-behavior/test/index.html +31 -0
- data/assets/bower_components/iron-fit-behavior/test/iron-fit-behavior.html +949 -0
- data/assets/bower_components/iron-fit-behavior/test/test-fit.html +41 -0
- data/assets/bower_components/iron-flex-layout/.bower.json +41 -0
- data/assets/bower_components/iron-flex-layout/.gitignore +2 -0
- data/assets/bower_components/iron-flex-layout/.travis.yml +25 -0
- data/assets/bower_components/iron-flex-layout/CONTRIBUTING.md +77 -0
- data/assets/bower_components/iron-flex-layout/README.md +55 -0
- data/assets/bower_components/iron-flex-layout/bower.json +31 -0
- data/assets/bower_components/iron-flex-layout/classes/iron-flex-layout.html +311 -0
- data/assets/bower_components/iron-flex-layout/classes/iron-shadow-flex-layout.html +307 -0
- data/assets/bower_components/iron-flex-layout/demo/index.html +396 -0
- data/assets/bower_components/iron-flex-layout/index.html +24 -0
- data/assets/bower_components/iron-flex-layout/iron-flex-layout-classes.html +431 -0
- data/assets/bower_components/iron-flex-layout/iron-flex-layout.html +399 -0
- data/assets/bower_components/iron-flex-layout/test/index.html +31 -0
- data/assets/bower_components/iron-flex-layout/test/iron-flex-layout-classes.html +412 -0
- data/assets/bower_components/iron-flex-layout/test/iron-flex-layout.html +434 -0
- data/assets/bower_components/iron-form-element-behavior/.bower.json +41 -0
- data/assets/bower_components/iron-form-element-behavior/.gitignore +1 -0
- data/assets/bower_components/iron-form-element-behavior/.travis.yml +22 -0
- data/assets/bower_components/iron-form-element-behavior/CONTRIBUTING.md +72 -0
- data/assets/bower_components/iron-form-element-behavior/README.md +23 -0
- data/assets/bower_components/iron-form-element-behavior/bower.json +31 -0
- data/assets/bower_components/iron-form-element-behavior/demo/index.html +67 -0
- data/assets/bower_components/iron-form-element-behavior/demo/simple-element.html +27 -0
- data/assets/bower_components/iron-form-element-behavior/demo/simple-form.html +53 -0
- data/assets/bower_components/iron-form-element-behavior/index.html +30 -0
- data/assets/bower_components/iron-form-element-behavior/iron-form-element-behavior.html +86 -0
- data/assets/bower_components/iron-form-element-behavior/test/basic.html +71 -0
- data/assets/bower_components/iron-form-element-behavior/test/index.html +24 -0
- data/assets/bower_components/iron-form-element-behavior/test/simple-element.html +23 -0
- data/assets/bower_components/iron-form-element-behavior/test/simple-form.html +19 -0
- data/assets/bower_components/iron-icon/.bower.json +45 -0
- data/assets/bower_components/iron-icon/.github/ISSUE_TEMPLATE.md +33 -0
- data/assets/bower_components/iron-icon/.gitignore +1 -0
- data/assets/bower_components/iron-icon/.travis.yml +23 -0
- data/assets/bower_components/iron-icon/CONTRIBUTING.md +77 -0
- data/assets/bower_components/iron-icon/README.md +22 -0
- data/assets/bower_components/iron-icon/bower.json +35 -0
- data/assets/bower_components/iron-icon/demo/async.html +62 -0
- data/assets/bower_components/iron-icon/demo/index.html +48 -0
- data/assets/bower_components/iron-icon/demo/location.png +0 -0
- data/assets/bower_components/iron-icon/hero.svg +19 -0
- data/assets/bower_components/iron-icon/index.html +26 -0
- data/assets/bower_components/iron-icon/iron-icon.html +210 -0
- data/assets/bower_components/iron-icon/test/index.html +27 -0
- data/assets/bower_components/iron-icon/test/iron-icon.html +246 -0
- data/assets/bower_components/iron-icons/.bower.json +48 -0
- data/assets/bower_components/iron-icons/.github/ISSUE_TEMPLATE.md +33 -0
- data/assets/bower_components/iron-icons/.gitignore +3 -0
- data/assets/bower_components/iron-icons/.travis.yml +24 -0
- data/assets/bower_components/iron-icons/CONTRIBUTING.md +77 -0
- data/assets/bower_components/iron-icons/README.md +49 -0
- data/assets/bower_components/iron-icons/av-icons.html +96 -0
- data/assets/bower_components/iron-icons/bower.json +38 -0
- data/assets/bower_components/iron-icons/communication-icons.html +66 -0
- data/assets/bower_components/iron-icons/demo/index.html +116 -0
- data/assets/bower_components/iron-icons/device-icons.html +95 -0
- data/assets/bower_components/iron-icons/editor-icons.html +84 -0
- data/assets/bower_components/iron-icons/hardware-icons.html +64 -0
- data/assets/bower_components/iron-icons/hero.svg +35 -0
- data/assets/bower_components/iron-icons/image-icons.html +171 -0
- data/assets/bower_components/iron-icons/index.html +26 -0
- data/assets/bower_components/iron-icons/iron-icons.html +353 -0
- data/assets/bower_components/iron-icons/maps-icons.html +84 -0
- data/assets/bower_components/iron-icons/notification-icons.html +70 -0
- data/assets/bower_components/iron-icons/places-icons.html +35 -0
- data/assets/bower_components/iron-icons/social-icons.html +46 -0
- data/assets/bower_components/iron-iconset-svg/.bower.json +44 -0
- data/assets/bower_components/iron-iconset-svg/.github/ISSUE_TEMPLATE.md +33 -0
- data/assets/bower_components/iron-iconset-svg/.gitignore +1 -0
- data/assets/bower_components/iron-iconset-svg/.travis.yml +23 -0
- data/assets/bower_components/iron-iconset-svg/CONTRIBUTING.md +77 -0
- data/assets/bower_components/iron-iconset-svg/README.md +56 -0
- data/assets/bower_components/iron-iconset-svg/bower.json +34 -0
- data/assets/bower_components/iron-iconset-svg/demo/index.html +70 -0
- data/assets/bower_components/iron-iconset-svg/demo/svg-sample-icons.html +81 -0
- data/assets/bower_components/iron-iconset-svg/index.html +26 -0
- data/assets/bower_components/iron-iconset-svg/iron-iconset-svg.html +241 -0
- data/assets/bower_components/iron-iconset-svg/test/index.html +27 -0
- data/assets/bower_components/iron-iconset-svg/test/iron-iconset-svg.html +233 -0
- data/assets/bower_components/iron-image/.bower.json +43 -0
- data/assets/bower_components/iron-image/.github/ISSUE_TEMPLATE.md +33 -0
- data/assets/bower_components/iron-image/.gitignore +1 -0
- data/assets/bower_components/iron-image/.travis.yml +23 -0
- data/assets/bower_components/iron-image/CONTRIBUTING.md +77 -0
- data/assets/bower_components/iron-image/README.md +86 -0
- data/assets/bower_components/iron-image/bower.json +33 -0
- data/assets/bower_components/iron-image/demo/index.html +266 -0
- data/assets/bower_components/iron-image/demo/loading.png +0 -0
- data/assets/bower_components/iron-image/demo/polymer.svg +175 -0
- data/assets/bower_components/iron-image/index.html +24 -0
- data/assets/bower_components/iron-image/iron-image.html +404 -0
- data/assets/bower_components/iron-image/test/index.html +23 -0
- data/assets/bower_components/iron-image/test/iron-image.html +338 -0
- data/assets/bower_components/iron-input/.bower.json +44 -0
- data/assets/bower_components/iron-input/.github/ISSUE_TEMPLATE.md +33 -0
- data/assets/bower_components/iron-input/.gitignore +1 -0
- data/assets/bower_components/iron-input/.travis.yml +23 -0
- data/assets/bower_components/iron-input/CONTRIBUTING.md +77 -0
- data/assets/bower_components/iron-input/README.md +59 -0
- data/assets/bower_components/iron-input/bower.json +35 -0
- data/assets/bower_components/iron-input/demo/index.html +87 -0
- data/assets/bower_components/iron-input/hero.svg +19 -0
- data/assets/bower_components/iron-input/index.html +30 -0
- data/assets/bower_components/iron-input/iron-input.html +306 -0
- data/assets/bower_components/iron-input/test/disabled-input.html +32 -0
- data/assets/bower_components/iron-input/test/index.html +24 -0
- data/assets/bower_components/iron-input/test/iron-input.html +281 -0
- data/assets/bower_components/iron-input/test/letters-only.html +30 -0
- data/assets/bower_components/iron-media-query/.bower.json +41 -0
- data/assets/bower_components/iron-media-query/.gitignore +1 -0
- data/assets/bower_components/iron-media-query/.travis.yml +22 -0
- data/assets/bower_components/iron-media-query/CONTRIBUTING.md +72 -0
- data/assets/bower_components/iron-media-query/README.md +28 -0
- data/assets/bower_components/iron-media-query/bower.json +32 -0
- data/assets/bower_components/iron-media-query/demo/index.html +93 -0
- data/assets/bower_components/iron-media-query/hero.svg +29 -0
- data/assets/bower_components/iron-media-query/index.html +29 -0
- data/assets/bower_components/iron-media-query/iron-media-query.html +121 -0
- data/assets/bower_components/iron-media-query/test/basic.html +118 -0
- data/assets/bower_components/iron-media-query/test/index.html +26 -0
- data/assets/bower_components/iron-menu-behavior/.bower.json +46 -0
- data/assets/bower_components/iron-menu-behavior/.github/ISSUE_TEMPLATE.md +33 -0
- data/assets/bower_components/iron-menu-behavior/.gitignore +1 -0
- data/assets/bower_components/iron-menu-behavior/.travis.yml +23 -0
- data/assets/bower_components/iron-menu-behavior/CONTRIBUTING.md +77 -0
- data/assets/bower_components/iron-menu-behavior/README.md +30 -0
- data/assets/bower_components/iron-menu-behavior/bower.json +37 -0
- data/assets/bower_components/iron-menu-behavior/demo/index.html +118 -0
- data/assets/bower_components/iron-menu-behavior/demo/simple-menu.html +48 -0
- data/assets/bower_components/iron-menu-behavior/demo/simple-menubar.html +52 -0
- data/assets/bower_components/iron-menu-behavior/index.html +30 -0
- data/assets/bower_components/iron-menu-behavior/iron-menu-behavior.html +376 -0
- data/assets/bower_components/iron-menu-behavior/iron-menubar-behavior.html +81 -0
- data/assets/bower_components/iron-menu-behavior/test/index.html +33 -0
- data/assets/bower_components/iron-menu-behavior/test/iron-menu-behavior.html +559 -0
- data/assets/bower_components/iron-menu-behavior/test/iron-menubar-behavior.html +162 -0
- data/assets/bower_components/iron-menu-behavior/test/test-menu.html +46 -0
- data/assets/bower_components/iron-menu-behavior/test/test-menubar.html +46 -0
- data/assets/bower_components/iron-menu-behavior/test/test-nested-menu.html +44 -0
- data/assets/bower_components/iron-meta/.bower.json +40 -0
- data/assets/bower_components/iron-meta/.github/ISSUE_TEMPLATE.md +33 -0
- data/assets/bower_components/iron-meta/.gitignore +1 -0
- data/assets/bower_components/iron-meta/.travis.yml +23 -0
- data/assets/bower_components/iron-meta/CONTRIBUTING.md +77 -0
- data/assets/bower_components/iron-meta/README.md +110 -0
- data/assets/bower_components/iron-meta/bower.json +30 -0
- data/assets/bower_components/iron-meta/demo/index.html +76 -0
- data/assets/bower_components/iron-meta/hero.svg +33 -0
- data/assets/bower_components/iron-meta/index.html +27 -0
- data/assets/bower_components/iron-meta/iron-meta.html +333 -0
- data/assets/bower_components/iron-meta/test/basic.html +48 -0
- data/assets/bower_components/iron-meta/test/index.html +29 -0
- data/assets/bower_components/iron-meta/test/iron-meta.html +195 -0
- data/assets/bower_components/iron-overlay-behavior/.bower.json +47 -0
- data/assets/bower_components/iron-overlay-behavior/.github/ISSUE_TEMPLATE.md +33 -0
- data/assets/bower_components/iron-overlay-behavior/.gitignore +1 -0
- data/assets/bower_components/iron-overlay-behavior/.travis.yml +23 -0
- data/assets/bower_components/iron-overlay-behavior/CONTRIBUTING.md +77 -0
- data/assets/bower_components/iron-overlay-behavior/README.md +78 -0
- data/assets/bower_components/iron-overlay-behavior/bower.json +37 -0
- data/assets/bower_components/iron-overlay-behavior/demo/index.html +188 -0
- data/assets/bower_components/iron-overlay-behavior/demo/simple-overlay.html +46 -0
- data/assets/bower_components/iron-overlay-behavior/index.html +30 -0
- data/assets/bower_components/iron-overlay-behavior/iron-focusables-helper.html +220 -0
- data/assets/bower_components/iron-overlay-behavior/iron-overlay-backdrop.html +168 -0
- data/assets/bower_components/iron-overlay-behavior/iron-overlay-behavior.html +638 -0
- data/assets/bower_components/iron-overlay-behavior/iron-overlay-manager.html +362 -0
- data/assets/bower_components/iron-overlay-behavior/test/index.html +33 -0
- data/assets/bower_components/iron-overlay-behavior/test/iron-focusables-helper.html +182 -0
- data/assets/bower_components/iron-overlay-behavior/test/iron-overlay-backdrop.html +85 -0
- data/assets/bower_components/iron-overlay-behavior/test/iron-overlay-behavior.html +1250 -0
- data/assets/bower_components/iron-overlay-behavior/test/test-buttons-wrapper.html +39 -0
- data/assets/bower_components/iron-overlay-behavior/test/test-buttons.html +34 -0
- data/assets/bower_components/iron-overlay-behavior/test/test-menu-button.html +38 -0
- data/assets/bower_components/iron-overlay-behavior/test/test-overlay.html +101 -0
- data/assets/bower_components/iron-overlay-behavior/test/test-overlay2.html +52 -0
- data/assets/bower_components/iron-range-behavior/.bower.json +39 -0
- data/assets/bower_components/iron-range-behavior/.github/ISSUE_TEMPLATE.md +33 -0
- data/assets/bower_components/iron-range-behavior/.gitignore +1 -0
- data/assets/bower_components/iron-range-behavior/.travis.yml +23 -0
- data/assets/bower_components/iron-range-behavior/CONTRIBUTING.md +77 -0
- data/assets/bower_components/iron-range-behavior/README.md +24 -0
- data/assets/bower_components/iron-range-behavior/bower.json +29 -0
- data/assets/bower_components/iron-range-behavior/demo/index.html +80 -0
- data/assets/bower_components/iron-range-behavior/index.html +24 -0
- data/assets/bower_components/iron-range-behavior/iron-range-behavior.html +121 -0
- data/assets/bower_components/iron-range-behavior/test/basic.html +180 -0
- data/assets/bower_components/iron-range-behavior/test/index.html +24 -0
- data/assets/bower_components/iron-range-behavior/test/x-progressbar.html +19 -0
- data/assets/bower_components/iron-resizable-behavior/.bower.json +41 -0
- data/assets/bower_components/iron-resizable-behavior/.github/ISSUE_TEMPLATE.md +33 -0
- data/assets/bower_components/iron-resizable-behavior/.gitignore +1 -0
- data/assets/bower_components/iron-resizable-behavior/.travis.yml +23 -0
- data/assets/bower_components/iron-resizable-behavior/CONTRIBUTING.md +77 -0
- data/assets/bower_components/iron-resizable-behavior/README.md +36 -0
- data/assets/bower_components/iron-resizable-behavior/bower.json +31 -0
- data/assets/bower_components/iron-resizable-behavior/demo/index.html +29 -0
- data/assets/bower_components/iron-resizable-behavior/demo/src/x-app.html +105 -0
- data/assets/bower_components/iron-resizable-behavior/index.html +25 -0
- data/assets/bower_components/iron-resizable-behavior/iron-resizable-behavior.html +195 -0
- data/assets/bower_components/iron-resizable-behavior/test/basic.html +223 -0
- data/assets/bower_components/iron-resizable-behavior/test/index.html +29 -0
- data/assets/bower_components/iron-resizable-behavior/test/iron-resizable-behavior.html +88 -0
- data/assets/bower_components/iron-resizable-behavior/test/test-elements.html +193 -0
- data/assets/bower_components/iron-scroll-target-behavior/.bower.json +40 -0
- data/assets/bower_components/iron-scroll-target-behavior/.github/ISSUE_TEMPLATE.md +33 -0
- data/assets/bower_components/iron-scroll-target-behavior/.gitignore +2 -0
- data/assets/bower_components/iron-scroll-target-behavior/.travis.yml +23 -0
- data/assets/bower_components/iron-scroll-target-behavior/CONTRIBUTING.md +77 -0
- data/assets/bower_components/iron-scroll-target-behavior/README.md +28 -0
- data/assets/bower_components/iron-scroll-target-behavior/bower.json +31 -0
- data/assets/bower_components/iron-scroll-target-behavior/demo/document.html +39 -0
- data/assets/bower_components/iron-scroll-target-behavior/demo/scrolling-region.html +51 -0
- data/assets/bower_components/iron-scroll-target-behavior/demo/x-scrollable.html +101 -0
- data/assets/bower_components/iron-scroll-target-behavior/index.html +28 -0
- data/assets/bower_components/iron-scroll-target-behavior/iron-scroll-target-behavior.html +260 -0
- data/assets/bower_components/iron-scroll-target-behavior/test/basic.html +317 -0
- data/assets/bower_components/iron-scroll-target-behavior/test/index.html +32 -0
- data/assets/bower_components/iron-scroll-target-behavior/test/x-nested-scrollable.html +39 -0
- data/assets/bower_components/iron-scroll-target-behavior/test/x-scrollable.html +65 -0
- data/assets/bower_components/iron-selector/.bower.json +42 -0
- data/assets/bower_components/iron-selector/.github/ISSUE_TEMPLATE.md +33 -0
- data/assets/bower_components/iron-selector/.gitignore +2 -0
- data/assets/bower_components/iron-selector/.travis.yml +23 -0
- data/assets/bower_components/iron-selector/CONTRIBUTING.md +77 -0
- data/assets/bower_components/iron-selector/README.md +91 -0
- data/assets/bower_components/iron-selector/bower.json +33 -0
- data/assets/bower_components/iron-selector/demo/index.html +101 -0
- data/assets/bower_components/iron-selector/index.html +28 -0
- data/assets/bower_components/iron-selector/iron-multi-selectable.html +154 -0
- data/assets/bower_components/iron-selector/iron-selectable.html +388 -0
- data/assets/bower_components/iron-selector/iron-selection.html +119 -0
- data/assets/bower_components/iron-selector/iron-selector.html +87 -0
- data/assets/bower_components/iron-selector/test/activate-event.html +150 -0
- data/assets/bower_components/iron-selector/test/attr-for-selected-elements.html +30 -0
- data/assets/bower_components/iron-selector/test/attr-for-selected.html +229 -0
- data/assets/bower_components/iron-selector/test/basic.html +263 -0
- data/assets/bower_components/iron-selector/test/content-element.html +44 -0
- data/assets/bower_components/iron-selector/test/content.html +169 -0
- data/assets/bower_components/iron-selector/test/excluded-local-names.html +96 -0
- data/assets/bower_components/iron-selector/test/index.html +43 -0
- data/assets/bower_components/iron-selector/test/multi.html +375 -0
- data/assets/bower_components/iron-selector/test/next-previous.html +135 -0
- data/assets/bower_components/iron-selector/test/numeric-ids.html +73 -0
- data/assets/bower_components/iron-selector/test/selected-attribute.html +129 -0
- data/assets/bower_components/iron-selector/test/template-repeat.html +104 -0
- data/assets/bower_components/iron-validatable-behavior/.bower.json +42 -0
- data/assets/bower_components/iron-validatable-behavior/.github/ISSUE_TEMPLATE.md +33 -0
- data/assets/bower_components/iron-validatable-behavior/.gitignore +1 -0
- data/assets/bower_components/iron-validatable-behavior/.travis.yml +23 -0
- data/assets/bower_components/iron-validatable-behavior/CONTRIBUTING.md +77 -0
- data/assets/bower_components/iron-validatable-behavior/README.md +42 -0
- data/assets/bower_components/iron-validatable-behavior/bower.json +33 -0
- data/assets/bower_components/iron-validatable-behavior/demo/cats-only.html +46 -0
- data/assets/bower_components/iron-validatable-behavior/demo/index.html +71 -0
- data/assets/bower_components/iron-validatable-behavior/demo/validatable-input.html +46 -0
- data/assets/bower_components/iron-validatable-behavior/index.html +30 -0
- data/assets/bower_components/iron-validatable-behavior/iron-validatable-behavior.html +149 -0
- data/assets/bower_components/iron-validatable-behavior/test/cats-only.html +30 -0
- data/assets/bower_components/iron-validatable-behavior/test/dogs-only.html +30 -0
- data/assets/bower_components/iron-validatable-behavior/test/index.html +32 -0
- data/assets/bower_components/iron-validatable-behavior/test/iron-validatable-behavior.html +88 -0
- data/assets/bower_components/iron-validatable-behavior/test/test-validatable.html +29 -0
- data/assets/bower_components/neon-animation/.bower.json +61 -0
- data/assets/bower_components/neon-animation/.github/ISSUE_TEMPLATE.md +33 -0
- data/assets/bower_components/neon-animation/.gitignore +1 -0
- data/assets/bower_components/neon-animation/.travis.yml +23 -0
- data/assets/bower_components/neon-animation/CONTRIBUTING.md +77 -0
- data/assets/bower_components/neon-animation/README.md +306 -0
- data/assets/bower_components/neon-animation/animations/cascaded-animation.html +95 -0
- data/assets/bower_components/neon-animation/animations/fade-in-animation.html +49 -0
- data/assets/bower_components/neon-animation/animations/fade-out-animation.html +49 -0
- data/assets/bower_components/neon-animation/animations/hero-animation.html +83 -0
- data/assets/bower_components/neon-animation/animations/opaque-animation.html +46 -0
- data/assets/bower_components/neon-animation/animations/reverse-ripple-animation.html +87 -0
- data/assets/bower_components/neon-animation/animations/ripple-animation.html +93 -0
- data/assets/bower_components/neon-animation/animations/scale-down-animation.html +65 -0
- data/assets/bower_components/neon-animation/animations/scale-up-animation.html +65 -0
- data/assets/bower_components/neon-animation/animations/slide-down-animation.html +59 -0
- data/assets/bower_components/neon-animation/animations/slide-from-bottom-animation.html +59 -0
- data/assets/bower_components/neon-animation/animations/slide-from-left-animation.html +60 -0
- data/assets/bower_components/neon-animation/animations/slide-from-right-animation.html +60 -0
- data/assets/bower_components/neon-animation/animations/slide-from-top-animation.html +59 -0
- data/assets/bower_components/neon-animation/animations/slide-left-animation.html +59 -0
- data/assets/bower_components/neon-animation/animations/slide-right-animation.html +59 -0
- data/assets/bower_components/neon-animation/animations/slide-up-animation.html +59 -0
- data/assets/bower_components/neon-animation/animations/transform-animation.html +70 -0
- data/assets/bower_components/neon-animation/bower.json +52 -0
- data/assets/bower_components/neon-animation/demo/card/index.html +166 -0
- data/assets/bower_components/neon-animation/demo/card/x-card.html +94 -0
- data/assets/bower_components/neon-animation/demo/card/x-cards-list.html +75 -0
- data/assets/bower_components/neon-animation/demo/declarative/index.html +132 -0
- data/assets/bower_components/neon-animation/demo/doc/index.html +70 -0
- data/assets/bower_components/neon-animation/demo/doc/my-animatable.html +68 -0
- data/assets/bower_components/neon-animation/demo/doc/my-dialog.html +94 -0
- data/assets/bower_components/neon-animation/demo/dropdown/animated-dropdown.html +90 -0
- data/assets/bower_components/neon-animation/demo/dropdown/index.html +54 -0
- data/assets/bower_components/neon-animation/demo/grid/animated-grid.html +164 -0
- data/assets/bower_components/neon-animation/demo/grid/fullsize-page-with-card.html +122 -0
- data/assets/bower_components/neon-animation/demo/grid/index.html +64 -0
- data/assets/bower_components/neon-animation/demo/index.html +45 -0
- data/assets/bower_components/neon-animation/demo/list/full-view.html +118 -0
- data/assets/bower_components/neon-animation/demo/list/index.html +35 -0
- data/assets/bower_components/neon-animation/demo/list/list-demo.html +102 -0
- data/assets/bower_components/neon-animation/demo/list/list-view.html +124 -0
- data/assets/bower_components/neon-animation/demo/load/animated-grid.html +146 -0
- data/assets/bower_components/neon-animation/demo/load/full-page.html +82 -0
- data/assets/bower_components/neon-animation/demo/load/index.html +48 -0
- data/assets/bower_components/neon-animation/demo/reprojection/animated-grid.html +167 -0
- data/assets/bower_components/neon-animation/demo/reprojection/fullsize-page-with-card.html +120 -0
- data/assets/bower_components/neon-animation/demo/reprojection/index.html +63 -0
- data/assets/bower_components/neon-animation/demo/reprojection/reprojected-pages.html +45 -0
- data/assets/bower_components/neon-animation/demo/shared-styles.html +47 -0
- data/assets/bower_components/neon-animation/demo/tiles/circles-page.html +107 -0
- data/assets/bower_components/neon-animation/demo/tiles/index.html +70 -0
- data/assets/bower_components/neon-animation/demo/tiles/squares-page.html +100 -0
- data/assets/bower_components/neon-animation/guides/neon-animation.md +314 -0
- data/assets/bower_components/neon-animation/index.html +30 -0
- data/assets/bower_components/neon-animation/neon-animatable-behavior.html +150 -0
- data/assets/bower_components/neon-animation/neon-animatable.html +54 -0
- data/assets/bower_components/neon-animation/neon-animated-pages.html +220 -0
- data/assets/bower_components/neon-animation/neon-animation-behavior.html +86 -0
- data/assets/bower_components/neon-animation/neon-animation-runner-behavior.html +129 -0
- data/assets/bower_components/neon-animation/neon-animation.html +18 -0
- data/assets/bower_components/neon-animation/neon-animations.html +29 -0
- data/assets/bower_components/neon-animation/neon-shared-element-animatable-behavior.html +43 -0
- data/assets/bower_components/neon-animation/neon-shared-element-animation-behavior.html +72 -0
- data/assets/bower_components/neon-animation/test/index.html +28 -0
- data/assets/bower_components/neon-animation/test/neon-animated-pages-descendant-selection.html +118 -0
- data/assets/bower_components/neon-animation/test/neon-animated-pages-lazy.html +73 -0
- data/assets/bower_components/neon-animation/test/neon-animated-pages.html +101 -0
- data/assets/bower_components/neon-animation/test/test-resizable-pages.html +58 -0
- data/assets/bower_components/neon-animation/web-animations.html +11 -0
- data/assets/bower_components/paper-badge/.bower.json +46 -0
- data/assets/bower_components/paper-badge/.github/ISSUE_TEMPLATE.md +33 -0
- data/assets/bower_components/paper-badge/.gitignore +1 -0
- data/assets/bower_components/paper-badge/.travis.yml +23 -0
- data/assets/bower_components/paper-badge/CONTRIBUTING.md +77 -0
- data/assets/bower_components/paper-badge/README.md +67 -0
- data/assets/bower_components/paper-badge/bower.json +37 -0
- data/assets/bower_components/paper-badge/demo/index.html +112 -0
- data/assets/bower_components/paper-badge/demo/test-button.html +44 -0
- data/assets/bower_components/paper-badge/index.html +28 -0
- data/assets/bower_components/paper-badge/paper-badge.html +240 -0
- data/assets/bower_components/paper-badge/test/basic.html +278 -0
- data/assets/bower_components/paper-badge/test/index.html +24 -0
- data/assets/bower_components/paper-badge/test/test-button.html +36 -0
- data/assets/bower_components/paper-behaviors/.bower.json +51 -0
- data/assets/bower_components/paper-behaviors/.github/ISSUE_TEMPLATE.md +33 -0
- data/assets/bower_components/paper-behaviors/.gitignore +1 -0
- data/assets/bower_components/paper-behaviors/.travis.yml +23 -0
- data/assets/bower_components/paper-behaviors/CONTRIBUTING.md +77 -0
- data/assets/bower_components/paper-behaviors/README.md +44 -0
- data/assets/bower_components/paper-behaviors/bower.json +42 -0
- data/assets/bower_components/paper-behaviors/demo/index.html +45 -0
- data/assets/bower_components/paper-behaviors/demo/paper-button.html +64 -0
- data/assets/bower_components/paper-behaviors/demo/paper-radio-button.html +112 -0
- data/assets/bower_components/paper-behaviors/index.html +26 -0
- data/assets/bower_components/paper-behaviors/paper-button-behavior.html +97 -0
- data/assets/bower_components/paper-behaviors/paper-checked-element-behavior.html +57 -0
- data/assets/bower_components/paper-behaviors/paper-inky-focus-behavior.html +51 -0
- data/assets/bower_components/paper-behaviors/paper-ripple-behavior.html +126 -0
- data/assets/bower_components/paper-behaviors/test/index.html +29 -0
- data/assets/bower_components/paper-behaviors/test/paper-button-behavior.html +113 -0
- data/assets/bower_components/paper-behaviors/test/paper-checked-element-behavior.html +94 -0
- data/assets/bower_components/paper-behaviors/test/paper-radio-button-behavior.html +58 -0
- data/assets/bower_components/paper-behaviors/test/paper-ripple-behavior.html +335 -0
- data/assets/bower_components/paper-behaviors/test/shadowed-ripple.html +55 -0
- data/assets/bower_components/paper-behaviors/test/test-button.html +34 -0
- data/assets/bower_components/paper-behaviors/test/test-radio-button.html +41 -0
- data/assets/bower_components/paper-button/.bower.json +50 -0
- data/assets/bower_components/paper-button/.github/ISSUE_TEMPLATE.md +33 -0
- data/assets/bower_components/paper-button/.gitignore +1 -0
- data/assets/bower_components/paper-button/.travis.yml +23 -0
- data/assets/bower_components/paper-button/CONTRIBUTING.md +77 -0
- data/assets/bower_components/paper-button/README.md +73 -0
- data/assets/bower_components/paper-button/bower.json +41 -0
- data/assets/bower_components/paper-button/demo/index.html +138 -0
- data/assets/bower_components/paper-button/index.html +26 -0
- data/assets/bower_components/paper-button/paper-button.html +186 -0
- data/assets/bower_components/paper-button/test/index.html +24 -0
- data/assets/bower_components/paper-button/test/paper-button.html +108 -0
- data/assets/bower_components/paper-card/.bower.json +49 -0
- data/assets/bower_components/paper-card/.github/ISSUE_TEMPLATE.md +33 -0
- data/assets/bower_components/paper-card/.gitignore +1 -0
- data/assets/bower_components/paper-card/.travis.yml +23 -0
- data/assets/bower_components/paper-card/CONTRIBUTING.md +77 -0
- data/assets/bower_components/paper-card/README.md +79 -0
- data/assets/bower_components/paper-card/bower.json +40 -0
- data/assets/bower_components/paper-card/demo/cafe.png +0 -0
- data/assets/bower_components/paper-card/demo/donuts.png +0 -0
- data/assets/bower_components/paper-card/demo/house.png +0 -0
- data/assets/bower_components/paper-card/demo/index.html +323 -0
- data/assets/bower_components/paper-card/demo/travel.png +0 -0
- data/assets/bower_components/paper-card/demo/trip.png +0 -0
- data/assets/bower_components/paper-card/index.html +28 -0
- data/assets/bower_components/paper-card/paper-card.html +254 -0
- data/assets/bower_components/paper-card/test/basic.html +109 -0
- data/assets/bower_components/paper-card/test/index.html +26 -0
- data/assets/bower_components/paper-chip/.bower.json +47 -0
- data/assets/bower_components/paper-chip/LICENSE +20 -0
- data/assets/bower_components/paper-chip/README.md +11 -0
- data/assets/bower_components/paper-chip/bower.json +37 -0
- data/assets/bower_components/paper-chip/demo/avatars.html +29 -0
- data/assets/bower_components/paper-chip/demo/index.html +173 -0
- data/assets/bower_components/paper-chip/gulpfile.js +125 -0
- data/assets/bower_components/paper-chip/index.html +18 -0
- data/assets/bower_components/paper-chip/package.json +43 -0
- data/assets/bower_components/paper-chip/paper-chip.html +459 -0
- data/assets/bower_components/paper-dropdown-menu/.bower.json +57 -0
- data/assets/bower_components/paper-dropdown-menu/.github/ISSUE_TEMPLATE.md +33 -0
- data/assets/bower_components/paper-dropdown-menu/.gitignore +1 -0
- data/assets/bower_components/paper-dropdown-menu/.travis.yml +24 -0
- data/assets/bower_components/paper-dropdown-menu/CONTRIBUTING.md +77 -0
- data/assets/bower_components/paper-dropdown-menu/README.md +44 -0
- data/assets/bower_components/paper-dropdown-menu/bower.json +48 -0
- data/assets/bower_components/paper-dropdown-menu/demo/index.html +295 -0
- data/assets/bower_components/paper-dropdown-menu/index.html +24 -0
- data/assets/bower_components/paper-dropdown-menu/paper-dropdown-menu-icons.html +17 -0
- data/assets/bower_components/paper-dropdown-menu/paper-dropdown-menu-light.html +596 -0
- data/assets/bower_components/paper-dropdown-menu/paper-dropdown-menu-shared-styles.html +78 -0
- data/assets/bower_components/paper-dropdown-menu/paper-dropdown-menu.html +406 -0
- data/assets/bower_components/paper-dropdown-menu/test/index.html +26 -0
- data/assets/bower_components/paper-dropdown-menu/test/paper-dropdown-menu-light.html +219 -0
- data/assets/bower_components/paper-dropdown-menu/test/paper-dropdown-menu.html +220 -0
- data/assets/bower_components/paper-fab/.bower.json +49 -0
- data/assets/bower_components/paper-fab/.github/ISSUE_TEMPLATE.md +33 -0
- data/assets/bower_components/paper-fab/.gitignore +1 -0
- data/assets/bower_components/paper-fab/.travis.yml +23 -0
- data/assets/bower_components/paper-fab/CONTRIBUTING.md +77 -0
- data/assets/bower_components/paper-fab/README.md +53 -0
- data/assets/bower_components/paper-fab/bower.json +39 -0
- data/assets/bower_components/paper-fab/demo/index.html +90 -0
- data/assets/bower_components/paper-fab/index.html +24 -0
- data/assets/bower_components/paper-fab/paper-fab.html +187 -0
- data/assets/bower_components/paper-fab/test/a11y.html +67 -0
- data/assets/bower_components/paper-fab/test/basic.html +141 -0
- data/assets/bower_components/paper-fab/test/index.html +26 -0
- data/assets/bower_components/paper-header-panel/.bower.json +43 -0
- data/assets/bower_components/paper-header-panel/.github/ISSUE_TEMPLATE.md +33 -0
- data/assets/bower_components/paper-header-panel/.gitignore +1 -0
- data/assets/bower_components/paper-header-panel/.travis.yml +23 -0
- data/assets/bower_components/paper-header-panel/CONTRIBUTING.md +77 -0
- data/assets/bower_components/paper-header-panel/README.md +152 -0
- data/assets/bower_components/paper-header-panel/bower.json +33 -0
- data/assets/bower_components/paper-header-panel/demo/index.html +150 -0
- data/assets/bower_components/paper-header-panel/hero.svg +38 -0
- data/assets/bower_components/paper-header-panel/index.html +36 -0
- data/assets/bower_components/paper-header-panel/paper-header-panel.html +512 -0
- data/assets/bower_components/paper-header-panel/test/basic.html +156 -0
- data/assets/bower_components/paper-header-panel/test/index.html +31 -0
- data/assets/bower_components/paper-icon-button/.bower.json +50 -0
- data/assets/bower_components/paper-icon-button/.github/ISSUE_TEMPLATE.md +33 -0
- data/assets/bower_components/paper-icon-button/.gitignore +1 -0
- data/assets/bower_components/paper-icon-button/.travis.yml +23 -0
- data/assets/bower_components/paper-icon-button/CONTRIBUTING.md +77 -0
- data/assets/bower_components/paper-icon-button/README.md +95 -0
- data/assets/bower_components/paper-icon-button/bower.json +40 -0
- data/assets/bower_components/paper-icon-button/demo/index.html +103 -0
- data/assets/bower_components/paper-icon-button/demo/paper-icon-button-light.html +57 -0
- data/assets/bower_components/paper-icon-button/index.html +23 -0
- data/assets/bower_components/paper-icon-button/paper-icon-button-light.html +91 -0
- data/assets/bower_components/paper-icon-button/paper-icon-button.html +176 -0
- data/assets/bower_components/paper-icon-button/test/a11y.html +92 -0
- data/assets/bower_components/paper-icon-button/test/basic.html +75 -0
- data/assets/bower_components/paper-icon-button/test/index.html +26 -0
- data/assets/bower_components/paper-input/.bower.json +61 -0
- data/assets/bower_components/paper-input/.github/ISSUE_TEMPLATE.md +33 -0
- data/assets/bower_components/paper-input/.gitignore +1 -0
- data/assets/bower_components/paper-input/.travis.yml +24 -0
- data/assets/bower_components/paper-input/CONTRIBUTING.md +77 -0
- data/assets/bower_components/paper-input/README.md +38 -0
- data/assets/bower_components/paper-input/all-imports.html +12 -0
- data/assets/bower_components/paper-input/bower.json +51 -0
- data/assets/bower_components/paper-input/demo/index.html +155 -0
- data/assets/bower_components/paper-input/demo/ssn-input.html +96 -0
- data/assets/bower_components/paper-input/demo/ssn-validator.html +27 -0
- data/assets/bower_components/paper-input/hero.svg +19 -0
- data/assets/bower_components/paper-input/index.html +28 -0
- data/assets/bower_components/paper-input/paper-input-addon-behavior.html +47 -0
- data/assets/bower_components/paper-input/paper-input-behavior.html +569 -0
- data/assets/bower_components/paper-input/paper-input-char-counter.html +99 -0
- data/assets/bower_components/paper-input/paper-input-container.html +626 -0
- data/assets/bower_components/paper-input/paper-input-error.html +94 -0
- data/assets/bower_components/paper-input/paper-input.html +170 -0
- data/assets/bower_components/paper-input/paper-textarea.html +144 -0
- data/assets/bower_components/paper-input/test/index.html +32 -0
- data/assets/bower_components/paper-input/test/letters-only.html +30 -0
- data/assets/bower_components/paper-input/test/paper-input-char-counter.html +109 -0
- data/assets/bower_components/paper-input/test/paper-input-container.html +302 -0
- data/assets/bower_components/paper-input/test/paper-input-error.html +68 -0
- data/assets/bower_components/paper-input/test/paper-input.html +398 -0
- data/assets/bower_components/paper-input/test/paper-textarea.html +233 -0
- data/assets/bower_components/paper-item/.bower.json +53 -0
- data/assets/bower_components/paper-item/.github/ISSUE_TEMPLATE.md +33 -0
- data/assets/bower_components/paper-item/.gitignore +1 -0
- data/assets/bower_components/paper-item/.travis.yml +23 -0
- data/assets/bower_components/paper-item/CONTRIBUTING.md +77 -0
- data/assets/bower_components/paper-item/README.md +163 -0
- data/assets/bower_components/paper-item/all-imports.html +13 -0
- data/assets/bower_components/paper-item/bower.json +43 -0
- data/assets/bower_components/paper-item/demo/index.html +191 -0
- data/assets/bower_components/paper-item/index.html +30 -0
- data/assets/bower_components/paper-item/paper-icon-item.html +86 -0
- data/assets/bower_components/paper-item/paper-item-behavior.html +36 -0
- data/assets/bower_components/paper-item/paper-item-body.html +83 -0
- data/assets/bower_components/paper-item/paper-item-shared-styles.html +70 -0
- data/assets/bower_components/paper-item/paper-item.html +111 -0
- data/assets/bower_components/paper-item/test/index.html +31 -0
- data/assets/bower_components/paper-item/test/paper-item.html +218 -0
- data/assets/bower_components/paper-material/.bower.json +44 -0
- data/assets/bower_components/paper-material/.gitignore +1 -0
- data/assets/bower_components/paper-material/.travis.yml +25 -0
- data/assets/bower_components/paper-material/CONTRIBUTING.md +72 -0
- data/assets/bower_components/paper-material/README.md +35 -0
- data/assets/bower_components/paper-material/bower.json +35 -0
- data/assets/bower_components/paper-material/demo/index.html +84 -0
- data/assets/bower_components/paper-material/index.html +30 -0
- data/assets/bower_components/paper-material/paper-material-shared-styles.html +42 -0
- data/assets/bower_components/paper-material/paper-material.html +78 -0
- data/assets/bower_components/paper-material/test/index.html +24 -0
- data/assets/bower_components/paper-material/test/paper-material.html +88 -0
- data/assets/bower_components/paper-menu-button/.bower.json +56 -0
- data/assets/bower_components/paper-menu-button/.github/ISSUE_TEMPLATE.md +33 -0
- data/assets/bower_components/paper-menu-button/.gitignore +1 -0
- data/assets/bower_components/paper-menu-button/.travis.yml +23 -0
- data/assets/bower_components/paper-menu-button/CONTRIBUTING.md +77 -0
- data/assets/bower_components/paper-menu-button/README.md +69 -0
- data/assets/bower_components/paper-menu-button/bower.json +47 -0
- data/assets/bower_components/paper-menu-button/demo/index.html +203 -0
- data/assets/bower_components/paper-menu-button/hero.svg +39 -0
- data/assets/bower_components/paper-menu-button/index.html +24 -0
- data/assets/bower_components/paper-menu-button/paper-menu-button-animations.html +109 -0
- data/assets/bower_components/paper-menu-button/paper-menu-button.html +479 -0
- data/assets/bower_components/paper-menu-button/test/index.html +24 -0
- data/assets/bower_components/paper-menu-button/test/paper-menu-button.html +199 -0
- data/assets/bower_components/paper-menu/.bower.json +49 -0
- data/assets/bower_components/paper-menu/.gitignore +1 -0
- data/assets/bower_components/paper-menu/.travis.yml +25 -0
- data/assets/bower_components/paper-menu/CONTRIBUTING.md +72 -0
- data/assets/bower_components/paper-menu/README.md +113 -0
- data/assets/bower_components/paper-menu/bower.json +39 -0
- data/assets/bower_components/paper-menu/demo/index.html +150 -0
- data/assets/bower_components/paper-menu/hero.svg +35 -0
- data/assets/bower_components/paper-menu/index.html +30 -0
- data/assets/bower_components/paper-menu/paper-menu-shared-styles.html +47 -0
- data/assets/bower_components/paper-menu/paper-menu.html +102 -0
- data/assets/bower_components/paper-menu/paper-submenu.html +231 -0
- data/assets/bower_components/paper-menu/test/index.html +37 -0
- data/assets/bower_components/paper-menu/test/paper-menu.html +64 -0
- data/assets/bower_components/paper-menu/test/paper-submenu.html +203 -0
- data/assets/bower_components/paper-progress/.bower.json +43 -0
- data/assets/bower_components/paper-progress/.github/ISSUE_TEMPLATE.md +33 -0
- data/assets/bower_components/paper-progress/.gitignore +1 -0
- data/assets/bower_components/paper-progress/.travis.yml +23 -0
- data/assets/bower_components/paper-progress/CONTRIBUTING.md +77 -0
- data/assets/bower_components/paper-progress/README.md +49 -0
- data/assets/bower_components/paper-progress/bower.json +33 -0
- data/assets/bower_components/paper-progress/demo/index.html +127 -0
- data/assets/bower_components/paper-progress/hero.svg +21 -0
- data/assets/bower_components/paper-progress/index.html +28 -0
- data/assets/bower_components/paper-progress/paper-progress.html +354 -0
- data/assets/bower_components/paper-progress/test/basic.html +148 -0
- data/assets/bower_components/paper-progress/test/index.html +24 -0
- data/assets/bower_components/paper-ripple/.bower.json +45 -0
- data/assets/bower_components/paper-ripple/.github/ISSUE_TEMPLATE.md +33 -0
- data/assets/bower_components/paper-ripple/.gitignore +1 -0
- data/assets/bower_components/paper-ripple/.travis.yml +23 -0
- data/assets/bower_components/paper-ripple/CONTRIBUTING.md +77 -0
- data/assets/bower_components/paper-ripple/README.md +40 -0
- data/assets/bower_components/paper-ripple/bower.json +35 -0
- data/assets/bower_components/paper-ripple/demo/index.html +415 -0
- data/assets/bower_components/paper-ripple/hero.svg +30 -0
- data/assets/bower_components/paper-ripple/index.html +27 -0
- data/assets/bower_components/paper-ripple/paper-ripple.html +763 -0
- data/assets/bower_components/paper-ripple/test/index.html +24 -0
- data/assets/bower_components/paper-ripple/test/paper-ripple.html +253 -0
- data/assets/bower_components/paper-spinner/.bower.json +47 -0
- data/assets/bower_components/paper-spinner/.github/ISSUE_TEMPLATE.md +33 -0
- data/assets/bower_components/paper-spinner/.gitignore +1 -0
- data/assets/bower_components/paper-spinner/.travis.yml +23 -0
- data/assets/bower_components/paper-spinner/CONTRIBUTING.md +77 -0
- data/assets/bower_components/paper-spinner/README.md +49 -0
- data/assets/bower_components/paper-spinner/bower.json +38 -0
- data/assets/bower_components/paper-spinner/demo/index.html +97 -0
- data/assets/bower_components/paper-spinner/hero.svg +27 -0
- data/assets/bower_components/paper-spinner/index.html +30 -0
- data/assets/bower_components/paper-spinner/paper-spinner-behavior.html +87 -0
- data/assets/bower_components/paper-spinner/paper-spinner-lite.html +71 -0
- data/assets/bower_components/paper-spinner/paper-spinner-styles.html +341 -0
- data/assets/bower_components/paper-spinner/paper-spinner.html +91 -0
- data/assets/bower_components/paper-spinner/test/index.html +31 -0
- data/assets/bower_components/paper-spinner/test/paper-spinner.html +86 -0
- data/assets/bower_components/paper-styles/.bower.json +42 -0
- data/assets/bower_components/paper-styles/CONTRIBUTING.md +77 -0
- data/assets/bower_components/paper-styles/README.md +49 -0
- data/assets/bower_components/paper-styles/bower.json +33 -0
- data/assets/bower_components/paper-styles/classes/global.html +96 -0
- data/assets/bower_components/paper-styles/classes/shadow-layout.html +307 -0
- data/assets/bower_components/paper-styles/classes/shadow.html +52 -0
- data/assets/bower_components/paper-styles/classes/typography.html +169 -0
- data/assets/bower_components/paper-styles/color.html +333 -0
- data/assets/bower_components/paper-styles/default-theme.html +72 -0
- data/assets/bower_components/paper-styles/demo-pages.html +72 -0
- data/assets/bower_components/paper-styles/demo.css +25 -0
- data/assets/bower_components/paper-styles/demo/index.html +339 -0
- data/assets/bower_components/paper-styles/index.html +24 -0
- data/assets/bower_components/paper-styles/paper-styles-classes.html +14 -0
- data/assets/bower_components/paper-styles/paper-styles.html +44 -0
- data/assets/bower_components/paper-styles/shadow.html +76 -0
- data/assets/bower_components/paper-styles/typography.html +169 -0
- data/assets/bower_components/paper-tabs/.bower.json +54 -0
- data/assets/bower_components/paper-tabs/.github/ISSUE_TEMPLATE.md +33 -0
- data/assets/bower_components/paper-tabs/.gitignore +1 -0
- data/assets/bower_components/paper-tabs/.travis.yml +24 -0
- data/assets/bower_components/paper-tabs/CONTRIBUTING.md +77 -0
- data/assets/bower_components/paper-tabs/README.md +46 -0
- data/assets/bower_components/paper-tabs/bower.json +44 -0
- data/assets/bower_components/paper-tabs/demo/index.html +338 -0
- data/assets/bower_components/paper-tabs/hero.svg +23 -0
- data/assets/bower_components/paper-tabs/index.html +25 -0
- data/assets/bower_components/paper-tabs/paper-tab.html +176 -0
- data/assets/bower_components/paper-tabs/paper-tabs-icons.html +18 -0
- data/assets/bower_components/paper-tabs/paper-tabs.html +661 -0
- data/assets/bower_components/paper-tabs/test/attr-for-selected.html +82 -0
- data/assets/bower_components/paper-tabs/test/basic.html +394 -0
- data/assets/bower_components/paper-tabs/test/index.html +31 -0
- data/assets/bower_components/paper-tabs/test/links.html +163 -0
- data/assets/bower_components/paper-toolbar/.bower.json +47 -0
- data/assets/bower_components/paper-toolbar/.github/ISSUE_TEMPLATE.md +33 -0
- data/assets/bower_components/paper-toolbar/.gitignore +1 -0
- data/assets/bower_components/paper-toolbar/.travis.yml +23 -0
- data/assets/bower_components/paper-toolbar/CONTRIBUTING.md +77 -0
- data/assets/bower_components/paper-toolbar/README.md +107 -0
- data/assets/bower_components/paper-toolbar/bower.json +37 -0
- data/assets/bower_components/paper-toolbar/demo/index.html +186 -0
- data/assets/bower_components/paper-toolbar/index.html +38 -0
- data/assets/bower_components/paper-toolbar/paper-toolbar.html +383 -0
- data/assets/bower_components/paper-toolbar/test/index.html +24 -0
- data/assets/bower_components/paper-toolbar/test/paper-toolbar.html +148 -0
- data/assets/bower_components/paper-tooltip/.bower.json +45 -0
- data/assets/bower_components/paper-tooltip/.github/ISSUE_TEMPLATE.md +33 -0
- data/assets/bower_components/paper-tooltip/.gitignore +1 -0
- data/assets/bower_components/paper-tooltip/.travis.yml +23 -0
- data/assets/bower_components/paper-tooltip/CONTRIBUTING.md +77 -0
- data/assets/bower_components/paper-tooltip/README.md +62 -0
- data/assets/bower_components/paper-tooltip/bower.json +36 -0
- data/assets/bower_components/paper-tooltip/demo/index.html +133 -0
- data/assets/bower_components/paper-tooltip/demo/test-button.html +37 -0
- data/assets/bower_components/paper-tooltip/index.html +28 -0
- data/assets/bower_components/paper-tooltip/paper-tooltip.html +395 -0
- data/assets/bower_components/paper-tooltip/test/basic.html +501 -0
- data/assets/bower_components/paper-tooltip/test/index.html +24 -0
- data/assets/bower_components/paper-tooltip/test/test-button.html +43 -0
- data/assets/bower_components/paper-ui-elements/.bower.json +35 -0
- data/assets/bower_components/paper-ui-elements/README.md +2 -0
- data/assets/bower_components/paper-ui-elements/bower.json +24 -0
- data/assets/bower_components/polymer/.bower.json +45 -0
- data/assets/bower_components/polymer/LICENSE.txt +27 -0
- data/assets/bower_components/polymer/bower.json +35 -0
- data/assets/bower_components/polymer/build.log +626 -0
- data/assets/bower_components/polymer/polymer-micro.html +732 -0
- data/assets/bower_components/polymer/polymer-mini.html +2164 -0
- data/assets/bower_components/polymer/polymer.html +5414 -0
- data/assets/bower_components/web-animations-js/.bower.json +41 -0
- data/assets/bower_components/web-animations-js/CONTRIBUTING.md +105 -0
- data/assets/bower_components/web-animations-js/COPYING +202 -0
- data/assets/bower_components/web-animations-js/History.md +227 -0
- data/assets/bower_components/web-animations-js/README.md +172 -0
- data/assets/bower_components/web-animations-js/bower.json +31 -0
- data/assets/bower_components/web-animations-js/web-animations-next-lite.min.js +17 -0
- data/assets/bower_components/web-animations-js/web-animations-next-lite.min.js.map +1 -0
- data/assets/bower_components/web-animations-js/web-animations-next.min.js +17 -0
- data/assets/bower_components/web-animations-js/web-animations-next.min.js.map +1 -0
- data/assets/bower_components/web-animations-js/web-animations.html +50 -0
- data/assets/bower_components/web-animations-js/web-animations.min.js +17 -0
- data/assets/bower_components/web-animations-js/web-animations.min.js.map +1 -0
- data/assets/bower_components/webcomponentsjs/.bower.json +30 -0
- data/assets/bower_components/webcomponentsjs/CustomElements.js +1029 -0
- data/assets/bower_components/webcomponentsjs/CustomElements.min.js +11 -0
- data/assets/bower_components/webcomponentsjs/HTMLImports.js +1157 -0
- data/assets/bower_components/webcomponentsjs/HTMLImports.min.js +11 -0
- data/assets/bower_components/webcomponentsjs/MutationObserver.js +350 -0
- data/assets/bower_components/webcomponentsjs/MutationObserver.min.js +11 -0
- data/assets/bower_components/webcomponentsjs/README.md +155 -0
- data/assets/bower_components/webcomponentsjs/ShadowDOM.js +4496 -0
- data/assets/bower_components/webcomponentsjs/ShadowDOM.min.js +13 -0
- data/assets/bower_components/webcomponentsjs/bower.json +21 -0
- data/assets/bower_components/webcomponentsjs/build.log +527 -0
- data/assets/bower_components/webcomponentsjs/package.json +31 -0
- data/assets/bower_components/webcomponentsjs/webcomponents-lite.js +2505 -0
- data/assets/bower_components/webcomponentsjs/webcomponents-lite.min.js +12 -0
- data/assets/bower_components/webcomponentsjs/webcomponents.js +7209 -0
- data/assets/bower_components/webcomponentsjs/webcomponents.min.js +14 -0
- data/assets/css/highlighter.css +80 -0
- data/assets/css/simplegrid.css +287 -0
- data/assets/css/style.css +45 -0
- metadata +1078 -0
@@ -0,0 +1,85 @@
|
|
1
|
+
<!doctype html>
|
2
|
+
<!--
|
3
|
+
@license
|
4
|
+
Copyright (c) 2016 The Polymer Project Authors. All rights reserved.
|
5
|
+
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
|
6
|
+
The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
|
7
|
+
The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
|
8
|
+
Code distributed by Google as part of the polymer project is also
|
9
|
+
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
|
10
|
+
-->
|
11
|
+
<html>
|
12
|
+
|
13
|
+
<head>
|
14
|
+
|
15
|
+
<title>iron-overlay-backdrop tests</title>
|
16
|
+
|
17
|
+
<meta charset="utf-8">
|
18
|
+
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
19
|
+
<meta name="viewport" content="width=device-width, minimum-scale=1.0, initial-scale=1, user-scalable=yes">
|
20
|
+
|
21
|
+
<script src="../../webcomponentsjs/webcomponents-lite.js"></script>
|
22
|
+
|
23
|
+
<script src="../../web-component-tester/browser.js"></script>
|
24
|
+
<link rel="import" href="../../iron-test-helpers/iron-test-helpers.html">
|
25
|
+
<link rel="import" href="test-overlay.html">
|
26
|
+
|
27
|
+
<style>
|
28
|
+
html,
|
29
|
+
body {
|
30
|
+
margin: 0;
|
31
|
+
width: 100%;
|
32
|
+
height: 100%;
|
33
|
+
min-width: 0;
|
34
|
+
}
|
35
|
+
.sizer {
|
36
|
+
width: 4000px;
|
37
|
+
height: 5000px;
|
38
|
+
}
|
39
|
+
</style>
|
40
|
+
|
41
|
+
</head>
|
42
|
+
|
43
|
+
<body>
|
44
|
+
|
45
|
+
<div class="sizer"></div>
|
46
|
+
|
47
|
+
<test-fixture id="backdrop">
|
48
|
+
<template>
|
49
|
+
<test-overlay with-backdrop>
|
50
|
+
Overlay with backdrop
|
51
|
+
</test-overlay>
|
52
|
+
</template>
|
53
|
+
</test-fixture>
|
54
|
+
|
55
|
+
<script>
|
56
|
+
function runAfterOpen(overlay, callback) {
|
57
|
+
overlay.addEventListener('iron-overlay-opened', callback);
|
58
|
+
overlay.open();
|
59
|
+
}
|
60
|
+
|
61
|
+
suite('overlay with backdrop', function() {
|
62
|
+
var overlay;
|
63
|
+
|
64
|
+
setup(function() {
|
65
|
+
overlay = fixture('backdrop');
|
66
|
+
});
|
67
|
+
|
68
|
+
test('backdrop size matches parent size', function(done) {
|
69
|
+
runAfterOpen(overlay, function() {
|
70
|
+
// Flush so we are sure backdrop is added in the DOM.
|
71
|
+
Polymer.dom.flush();
|
72
|
+
var backdrop = overlay.backdropElement;
|
73
|
+
var parent = backdrop.parentElement;
|
74
|
+
assert.strictEqual(backdrop.offsetWidth, parent.clientWidth, 'backdrop width matches parent width');
|
75
|
+
assert.strictEqual(backdrop.offsetHeight, parent.clientHeight, 'backdrop height matches parent height');
|
76
|
+
done();
|
77
|
+
});
|
78
|
+
});
|
79
|
+
|
80
|
+
});
|
81
|
+
</script>
|
82
|
+
|
83
|
+
</body>
|
84
|
+
|
85
|
+
</html>
|
@@ -0,0 +1,1250 @@
|
|
1
|
+
<!doctype html>
|
2
|
+
<!--
|
3
|
+
@license
|
4
|
+
Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
|
5
|
+
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
|
6
|
+
The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
|
7
|
+
The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
|
8
|
+
Code distributed by Google as part of the polymer project is also
|
9
|
+
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
|
10
|
+
-->
|
11
|
+
<html>
|
12
|
+
|
13
|
+
<head>
|
14
|
+
|
15
|
+
<title>iron-overlay-behavior tests</title>
|
16
|
+
|
17
|
+
<meta charset="utf-8">
|
18
|
+
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
19
|
+
<meta name="viewport" content="width=device-width, minimum-scale=1.0, initial-scale=1, user-scalable=yes">
|
20
|
+
|
21
|
+
<script src="../../webcomponentsjs/webcomponents-lite.js"></script>
|
22
|
+
|
23
|
+
<script src="../../web-component-tester/browser.js"></script>
|
24
|
+
<link rel="import" href="../../iron-test-helpers/iron-test-helpers.html">
|
25
|
+
<link rel="import" href="test-overlay.html">
|
26
|
+
<link rel="import" href="test-overlay2.html">
|
27
|
+
<link rel="import" href="test-buttons.html">
|
28
|
+
<link rel="import" href="test-menu-button.html">
|
29
|
+
|
30
|
+
<style is="custom-style">
|
31
|
+
iron-overlay-backdrop {
|
32
|
+
/* For quicker tests */
|
33
|
+
--iron-overlay-backdrop: {
|
34
|
+
transition: none;
|
35
|
+
}
|
36
|
+
}
|
37
|
+
</style>
|
38
|
+
|
39
|
+
</head>
|
40
|
+
|
41
|
+
<body>
|
42
|
+
|
43
|
+
<test-fixture id="basic">
|
44
|
+
<template>
|
45
|
+
<test-overlay>
|
46
|
+
Basic Overlay
|
47
|
+
</test-overlay>
|
48
|
+
</template>
|
49
|
+
</test-fixture>
|
50
|
+
|
51
|
+
<test-fixture id="opened">
|
52
|
+
<template>
|
53
|
+
<test-overlay opened>
|
54
|
+
Basic Overlay
|
55
|
+
</test-overlay>
|
56
|
+
</template>
|
57
|
+
</test-fixture>
|
58
|
+
|
59
|
+
<test-fixture id="autofocus">
|
60
|
+
<template>
|
61
|
+
<test-overlay>
|
62
|
+
Autofocus
|
63
|
+
<button autofocus>button</button>
|
64
|
+
</test-overlay>
|
65
|
+
</template>
|
66
|
+
</test-fixture>
|
67
|
+
|
68
|
+
<test-fixture id="focusables">
|
69
|
+
<template>
|
70
|
+
<test-overlay tabindex="-1">
|
71
|
+
<h2>Focusables (no tabindex)</h2>
|
72
|
+
<div>
|
73
|
+
<input class="focusable1" placeholder="1 (nested)">
|
74
|
+
</div>
|
75
|
+
<button class="focusable2">1</button>
|
76
|
+
<button disabled> disabled button</button>
|
77
|
+
<div tabindex="-1">not focusable</div>
|
78
|
+
<button class="focusable3">2</button>
|
79
|
+
</test-overlay>
|
80
|
+
<test-overlay tabindex="-1">
|
81
|
+
<h2>Focusables (with tabindex)</h2>
|
82
|
+
<div tabindex="-1">not focusable</div>
|
83
|
+
<div tabindex="3" class="focusable3">3</div>
|
84
|
+
<div tabindex="4" class="focusable4">4</div>
|
85
|
+
<div tabindex="5" class="focusable5">5</div>
|
86
|
+
<div>
|
87
|
+
<div tabindex="1" class="focusable1">1 (nested)</div>
|
88
|
+
<div tabindex="6" class="focusable6">6 (nested)</div>
|
89
|
+
</div>
|
90
|
+
<div tabindex="2" class="focusable2">2</div>
|
91
|
+
</test-overlay>
|
92
|
+
<test-overlay2>
|
93
|
+
Overlay with optimized focusableNodes getter
|
94
|
+
<button class="focusable1">1</button>
|
95
|
+
</test-overlay2>
|
96
|
+
</template>
|
97
|
+
</test-fixture>
|
98
|
+
|
99
|
+
<test-fixture id="backdrop">
|
100
|
+
<template>
|
101
|
+
<test-overlay with-backdrop>
|
102
|
+
Overlay with backdrop
|
103
|
+
</test-overlay>
|
104
|
+
</template>
|
105
|
+
</test-fixture>
|
106
|
+
|
107
|
+
<test-fixture id="multiple">
|
108
|
+
<template>
|
109
|
+
<test-overlay class="overlay-1">
|
110
|
+
Test overlay 1
|
111
|
+
</test-overlay>
|
112
|
+
<test-overlay class="overlay-2">
|
113
|
+
Test overlay 2
|
114
|
+
<button>Click</button>
|
115
|
+
</test-overlay>
|
116
|
+
<test-overlay2 class="overlay-3">
|
117
|
+
Other overlay 3
|
118
|
+
</test-overlay2>
|
119
|
+
</template>
|
120
|
+
</test-fixture>
|
121
|
+
|
122
|
+
<test-fixture id="composed">
|
123
|
+
<template>
|
124
|
+
<test-menu-button></test-menu-button>
|
125
|
+
</template>
|
126
|
+
</test-fixture>
|
127
|
+
|
128
|
+
<test-buttons id="buttons"></test-buttons>
|
129
|
+
<input id="focusInput" placeholder="focus input">
|
130
|
+
|
131
|
+
<script>
|
132
|
+
|
133
|
+
function runAfterOpen(overlay, callback) {
|
134
|
+
overlay.addEventListener('iron-overlay-opened', callback);
|
135
|
+
overlay.open();
|
136
|
+
}
|
137
|
+
|
138
|
+
function runAfterClose(overlay, callback) {
|
139
|
+
overlay.addEventListener('iron-overlay-closed', callback);
|
140
|
+
overlay.close();
|
141
|
+
}
|
142
|
+
|
143
|
+
suite('basic overlay', function() {
|
144
|
+
var overlay;
|
145
|
+
|
146
|
+
setup(function() {
|
147
|
+
overlay = fixture('basic');
|
148
|
+
});
|
149
|
+
|
150
|
+
test('overlay starts hidden', function() {
|
151
|
+
assert.isFalse(overlay.opened, 'overlay starts closed');
|
152
|
+
assert.equal(getComputedStyle(overlay).display, 'none', 'overlay starts hidden');
|
153
|
+
});
|
154
|
+
|
155
|
+
test('_renderOpened called only after is attached', function(done) {
|
156
|
+
var overlay = document.createElement('test-overlay');
|
157
|
+
// The overlay is ready at this point, but not yet attached.
|
158
|
+
var spy = sinon.spy(overlay, '_renderOpened');
|
159
|
+
// This triggers _openedChanged.
|
160
|
+
overlay.opened = true;
|
161
|
+
// Wait long enough for requestAnimationFrame callback.
|
162
|
+
overlay.async(function() {
|
163
|
+
assert.isFalse(spy.called, '_renderOpened not called');
|
164
|
+
// Because not attached yet, overlay should not be the current overlay!
|
165
|
+
assert.isNotOk(overlay._manager.currentOverlay(), 'currentOverlay not set');
|
166
|
+
done();
|
167
|
+
}, 100);
|
168
|
+
});
|
169
|
+
|
170
|
+
test('overlay open/close events', function(done) {
|
171
|
+
var nevents = 0;
|
172
|
+
|
173
|
+
overlay.addEventListener('iron-overlay-opened', function() {
|
174
|
+
nevents += 1;
|
175
|
+
overlay.opened = false;
|
176
|
+
});
|
177
|
+
|
178
|
+
overlay.addEventListener('iron-overlay-closed', function() {
|
179
|
+
nevents += 1;
|
180
|
+
assert.equal(nevents, 2, 'opened and closed events fired');
|
181
|
+
done();
|
182
|
+
});
|
183
|
+
|
184
|
+
overlay.opened = true;
|
185
|
+
});
|
186
|
+
|
187
|
+
test('open() refits overlay only once', function(done) {
|
188
|
+
var spy = sinon.spy(overlay, 'refit');
|
189
|
+
runAfterOpen(overlay, function() {
|
190
|
+
assert.equal(spy.callCount, 1, 'overlay did refit only once');
|
191
|
+
done();
|
192
|
+
});
|
193
|
+
});
|
194
|
+
|
195
|
+
test('open overlay refits on iron-resize', function(done) {
|
196
|
+
runAfterOpen(overlay, function() {
|
197
|
+
var spy = sinon.spy(overlay, 'refit');
|
198
|
+
overlay.fire('iron-resize');
|
199
|
+
Polymer.dom.flush();
|
200
|
+
requestAnimationFrame(function() {
|
201
|
+
assert.isTrue(spy.called, 'overlay did refit');
|
202
|
+
done();
|
203
|
+
});
|
204
|
+
});
|
205
|
+
});
|
206
|
+
|
207
|
+
test('closed overlay does not refit on iron-resize', function(done) {
|
208
|
+
var spy = sinon.spy(overlay, 'refit');
|
209
|
+
overlay.fire('iron-resize');
|
210
|
+
Polymer.dom.flush();
|
211
|
+
requestAnimationFrame(function() {
|
212
|
+
assert.isFalse(spy.called, 'overlay should not refit');
|
213
|
+
done();
|
214
|
+
});
|
215
|
+
});
|
216
|
+
|
217
|
+
test('open() triggers iron-resize', function(done) {
|
218
|
+
var callCount = 0;
|
219
|
+
// Ignore iron-resize triggered by window resize.
|
220
|
+
window.addEventListener('resize', function() { callCount--; }, true);
|
221
|
+
overlay.addEventListener('iron-resize', function() { callCount++; });
|
222
|
+
runAfterOpen(overlay, function() {
|
223
|
+
assert.equal(callCount, 1, 'iron-resize called once before iron-overlay-opened');
|
224
|
+
done();
|
225
|
+
});
|
226
|
+
});
|
227
|
+
|
228
|
+
test('close() triggers iron-resize', function(done) {
|
229
|
+
runAfterOpen(overlay, function() {
|
230
|
+
var spy = sinon.stub();
|
231
|
+
overlay.addEventListener('iron-resize', spy);
|
232
|
+
runAfterClose(overlay, function() {
|
233
|
+
assert.equal(spy.callCount, 1, 'iron-resize called once before iron-overlay-closed');
|
234
|
+
done();
|
235
|
+
});
|
236
|
+
});
|
237
|
+
});
|
238
|
+
|
239
|
+
test('closed overlay does not trigger iron-resize when its content changes', function() {
|
240
|
+
// Ignore iron-resize triggered by window resize.
|
241
|
+
var callCount = 0;
|
242
|
+
window.addEventListener('resize', function() { callCount--; }, true);
|
243
|
+
overlay.addEventListener('iron-resize', function() { callCount++; });
|
244
|
+
Polymer.dom(overlay).appendChild(document.createElement('div'));
|
245
|
+
Polymer.dom.flush();
|
246
|
+
assert.equal(callCount, 0, 'iron-resize should not be called');
|
247
|
+
});
|
248
|
+
|
249
|
+
test('open overlay triggers iron-resize when its content changes', function(done) {
|
250
|
+
runAfterOpen(overlay, function() {
|
251
|
+
var spy = sinon.stub();
|
252
|
+
overlay.addEventListener('iron-resize', spy);
|
253
|
+
Polymer.dom(overlay).appendChild(document.createElement('div'));
|
254
|
+
Polymer.dom.flush();
|
255
|
+
assert.equal(spy.callCount, 1, 'iron-resize should be called once');
|
256
|
+
done();
|
257
|
+
});
|
258
|
+
});
|
259
|
+
|
260
|
+
test('close an overlay quickly after open', function(done) {
|
261
|
+
// first, open the overlay
|
262
|
+
overlay.open();
|
263
|
+
overlay.async(function() {
|
264
|
+
// during the opening transition, close the overlay
|
265
|
+
this.close();
|
266
|
+
// wait for any exceptions to be thrown until the transition is done
|
267
|
+
this.async(function() {
|
268
|
+
done();
|
269
|
+
}, 300);
|
270
|
+
});
|
271
|
+
});
|
272
|
+
|
273
|
+
test('clicking an overlay does not close it', function(done) {
|
274
|
+
runAfterOpen(overlay, function() {
|
275
|
+
var spy = sinon.stub();
|
276
|
+
overlay.addEventListener('iron-overlay-closed', spy);
|
277
|
+
MockInteractions.tap(overlay);
|
278
|
+
overlay.async(function() {
|
279
|
+
assert.isFalse(spy.called, 'iron-overlay-closed should not fire');
|
280
|
+
done();
|
281
|
+
}, 10);
|
282
|
+
});
|
283
|
+
});
|
284
|
+
|
285
|
+
test('open overlay on mousedown does not close it', function(done) {
|
286
|
+
var btn = document.createElement('button');
|
287
|
+
btn.addEventListener('mousedown', overlay.open.bind(overlay));
|
288
|
+
document.body.appendChild(btn);
|
289
|
+
// It triggers mousedown, mouseup, and click.
|
290
|
+
MockInteractions.tap(btn);
|
291
|
+
document.body.removeChild(btn);
|
292
|
+
|
293
|
+
assert.isTrue(overlay.opened, 'overlay opened');
|
294
|
+
overlay.async(function() {
|
295
|
+
assert.isTrue(overlay.opened, 'overlay is still open');
|
296
|
+
done();
|
297
|
+
}, 10);
|
298
|
+
});
|
299
|
+
|
300
|
+
test('clicking outside fires iron-overlay-canceled', function(done) {
|
301
|
+
runAfterOpen(overlay, function() {
|
302
|
+
overlay.addEventListener('iron-overlay-canceled', function(event) {
|
303
|
+
assert.equal(event.detail.target, document.body, 'detail contains original click event');
|
304
|
+
done();
|
305
|
+
});
|
306
|
+
MockInteractions.tap(document.body);
|
307
|
+
});
|
308
|
+
});
|
309
|
+
|
310
|
+
test('clicking outside closes the overlay', function(done) {
|
311
|
+
runAfterOpen(overlay, function() {
|
312
|
+
overlay.addEventListener('iron-overlay-closed', function(event) {
|
313
|
+
assert.isTrue(event.detail.canceled, 'overlay is canceled');
|
314
|
+
done();
|
315
|
+
});
|
316
|
+
MockInteractions.tap(document.body);
|
317
|
+
});
|
318
|
+
});
|
319
|
+
|
320
|
+
test('iron-overlay-canceled event can be prevented', function(done) {
|
321
|
+
runAfterOpen(overlay, function() {
|
322
|
+
overlay.addEventListener('iron-overlay-canceled', function(event) {
|
323
|
+
event.preventDefault();
|
324
|
+
});
|
325
|
+
var spy = sinon.stub();
|
326
|
+
overlay.addEventListener('iron-overlay-closed', spy);
|
327
|
+
MockInteractions.tap(document.body);
|
328
|
+
Polymer.Base.async(function() {
|
329
|
+
assert.isTrue(overlay.opened, 'overlay is still open');
|
330
|
+
assert.isFalse(spy.called, 'iron-overlay-closed not fired');
|
331
|
+
done();
|
332
|
+
}, 10);
|
333
|
+
});
|
334
|
+
});
|
335
|
+
|
336
|
+
test('cancel an overlay with esc key', function(done) {
|
337
|
+
runAfterOpen(overlay, function() {
|
338
|
+
overlay.addEventListener('iron-overlay-canceled', function(event) {
|
339
|
+
assert.equal(event.detail.type, 'keydown');
|
340
|
+
done();
|
341
|
+
});
|
342
|
+
MockInteractions.pressAndReleaseKeyOn(document, 27);
|
343
|
+
});
|
344
|
+
});
|
345
|
+
|
346
|
+
test('close an overlay with esc key', function(done) {
|
347
|
+
runAfterOpen(overlay, function() {
|
348
|
+
overlay.addEventListener('iron-overlay-closed', function(event) {
|
349
|
+
assert.isTrue(event.detail.canceled, 'overlay is canceled');
|
350
|
+
done();
|
351
|
+
});
|
352
|
+
MockInteractions.pressAndReleaseKeyOn(document, 27);
|
353
|
+
});
|
354
|
+
});
|
355
|
+
|
356
|
+
test('no-cancel-on-outside-click property', function(done) {
|
357
|
+
overlay.noCancelOnOutsideClick = true;
|
358
|
+
runAfterOpen(overlay, function() {
|
359
|
+
var spy = sinon.stub();
|
360
|
+
overlay.addEventListener('iron-overlay-closed', spy);
|
361
|
+
MockInteractions.tap(document.body);
|
362
|
+
Polymer.Base.async(function() {
|
363
|
+
assert.isFalse(spy.called, 'iron-overlay-closed should not fire');
|
364
|
+
done();
|
365
|
+
}, 10);
|
366
|
+
});
|
367
|
+
});
|
368
|
+
|
369
|
+
test('no-cancel-on-esc-key property', function(done) {
|
370
|
+
overlay.noCancelOnEscKey = true;
|
371
|
+
runAfterOpen(overlay, function() {
|
372
|
+
var spy = sinon.stub();
|
373
|
+
overlay.addEventListener('iron-overlay-closed', spy);
|
374
|
+
MockInteractions.pressAndReleaseKeyOn(document, 27);
|
375
|
+
Polymer.Base.async(function() {
|
376
|
+
assert.isFalse(spy.called, 'iron-overlay-cancel should not fire');
|
377
|
+
done();
|
378
|
+
}, 10);
|
379
|
+
});
|
380
|
+
});
|
381
|
+
|
382
|
+
test('with-backdrop sets tabindex=-1 and removes it', function() {
|
383
|
+
overlay.withBackdrop = true;
|
384
|
+
assert.equal(overlay.getAttribute('tabindex'), '-1', 'tabindex is -1');
|
385
|
+
overlay.withBackdrop = false;
|
386
|
+
assert.isFalse(overlay.hasAttribute('tabindex'), 'tabindex removed');
|
387
|
+
});
|
388
|
+
|
389
|
+
test('with-backdrop does not override tabindex if already set', function() {
|
390
|
+
overlay.setAttribute('tabindex', '1');
|
391
|
+
overlay.withBackdrop = true;
|
392
|
+
assert.equal(overlay.getAttribute('tabindex'), '1', 'tabindex is 1');
|
393
|
+
overlay.withBackdrop = false;
|
394
|
+
assert.equal(overlay.getAttribute('tabindex'), '1', 'tabindex is still 1');
|
395
|
+
});
|
396
|
+
|
397
|
+
});
|
398
|
+
|
399
|
+
suite('keyboard event listener', function() {
|
400
|
+
var overlay;
|
401
|
+
|
402
|
+
var preventKeyDown = function(event) {
|
403
|
+
event.preventDefault();
|
404
|
+
event.stopPropagation();
|
405
|
+
}
|
406
|
+
|
407
|
+
suiteSetup(function() {
|
408
|
+
// Worst case scenario: listener with useCapture = true that prevents & stops propagation
|
409
|
+
// added before the overlay is initialized.
|
410
|
+
document.addEventListener('keydown', preventKeyDown, true);
|
411
|
+
});
|
412
|
+
|
413
|
+
setup(function() {
|
414
|
+
overlay = fixture('basic');
|
415
|
+
});
|
416
|
+
|
417
|
+
suiteTeardown(function() {
|
418
|
+
document.removeEventListener('keydown', preventKeyDown, true);
|
419
|
+
});
|
420
|
+
|
421
|
+
test('cancel an overlay with esc key even if event is prevented by other listeners', function(done) {
|
422
|
+
runAfterOpen(overlay, function() {
|
423
|
+
overlay.addEventListener('iron-overlay-canceled', function(event) {
|
424
|
+
done();
|
425
|
+
});
|
426
|
+
MockInteractions.pressAndReleaseKeyOn(document, 27);
|
427
|
+
});
|
428
|
+
});
|
429
|
+
});
|
430
|
+
|
431
|
+
suite('opened overlay', function() {
|
432
|
+
var overlay;
|
433
|
+
|
434
|
+
setup(function() {
|
435
|
+
overlay = fixture('opened');
|
436
|
+
});
|
437
|
+
|
438
|
+
test('overlay open by default', function(done) {
|
439
|
+
overlay.addEventListener('iron-overlay-opened', function() {
|
440
|
+
assert.isTrue(overlay.opened, 'overlay starts opened');
|
441
|
+
assert.notEqual(getComputedStyle(overlay).display, 'none', 'overlay starts showing');
|
442
|
+
done();
|
443
|
+
});
|
444
|
+
});
|
445
|
+
|
446
|
+
test('overlay positioned & sized properly', function(done) {
|
447
|
+
overlay.addEventListener('iron-overlay-opened', function() {
|
448
|
+
var s = getComputedStyle(overlay);
|
449
|
+
assert.closeTo(parseFloat(s.left), (window.innerWidth - overlay.offsetWidth) / 2, 1, 'centered horizontally');
|
450
|
+
assert.closeTo(parseFloat(s.top), (window.innerHeight - overlay.offsetHeight) / 2, 1, 'centered vertically');
|
451
|
+
done();
|
452
|
+
});
|
453
|
+
});
|
454
|
+
});
|
455
|
+
|
456
|
+
suite('focus handling', function() {
|
457
|
+
var overlay;
|
458
|
+
|
459
|
+
setup(function() {
|
460
|
+
// Ensure focus is set to document.body
|
461
|
+
document.body.focus();
|
462
|
+
overlay = fixture('autofocus');
|
463
|
+
});
|
464
|
+
|
465
|
+
test('node with autofocus is focused', function(done) {
|
466
|
+
runAfterOpen(overlay, function() {
|
467
|
+
assert.equal(Polymer.dom(overlay).querySelector('[autofocus]'), document.activeElement, '<button autofocus> is focused');
|
468
|
+
done();
|
469
|
+
});
|
470
|
+
});
|
471
|
+
|
472
|
+
test('no-auto-focus will not focus node with autofocus', function(done) {
|
473
|
+
overlay.noAutoFocus = true;
|
474
|
+
runAfterOpen(overlay, function() {
|
475
|
+
assert.notEqual(Polymer.dom(overlay).querySelector('[autofocus]'), document.activeElement, '<button autofocus> not focused after opened');
|
476
|
+
done();
|
477
|
+
});
|
478
|
+
// In Safari the element with autofocus will immediately receive focus when displayed for the first time http://jsbin.com/woroci/2/
|
479
|
+
// Ensure this is not the case for overlay.
|
480
|
+
assert.notEqual(Polymer.dom(overlay).querySelector('[autofocus]'), document.activeElement, '<button autofocus> not immediately focused');
|
481
|
+
});
|
482
|
+
|
483
|
+
test('no-cancel-on-outside-click property; focus stays on overlay when click outside', function(done) {
|
484
|
+
overlay.noCancelOnOutsideClick = true;
|
485
|
+
runAfterOpen(overlay, function() {
|
486
|
+
MockInteractions.tap(document.body);
|
487
|
+
Polymer.Base.async(function() {
|
488
|
+
assert.equal(Polymer.dom(overlay).querySelector('[autofocus]'), document.activeElement, '<button autofocus> is focused');
|
489
|
+
done();
|
490
|
+
}, 10);
|
491
|
+
});
|
492
|
+
});
|
493
|
+
|
494
|
+
test('with-backdrop traps the focus within the overlay', function(done) {
|
495
|
+
var focusSpy = sinon.stub();
|
496
|
+
var button = document.createElement('button');
|
497
|
+
document.body.appendChild(button);
|
498
|
+
button.addEventListener('focus', focusSpy, true);
|
499
|
+
|
500
|
+
overlay.withBackdrop = true;
|
501
|
+
runAfterOpen(overlay, function() {
|
502
|
+
// Try to steal the focus
|
503
|
+
MockInteractions.focus(button);
|
504
|
+
assert.equal(Polymer.dom(overlay).querySelector('[autofocus]'), document.activeElement, '<button autofocus> is focused');
|
505
|
+
assert.equal(focusSpy.callCount, 0, 'button in body did not get the focus');
|
506
|
+
document.body.removeChild(button);
|
507
|
+
done();
|
508
|
+
});
|
509
|
+
});
|
510
|
+
|
511
|
+
test('overlay with-backdrop and 1 focusable: prevent TAB and trap the focus', function(done) {
|
512
|
+
overlay.withBackdrop = true;
|
513
|
+
runAfterOpen(overlay, function() {
|
514
|
+
// 1ms timeout needed by IE10 to have proper focus switching.
|
515
|
+
Polymer.Base.async(function() {
|
516
|
+
// Spy keydown.
|
517
|
+
var tabSpy = sinon.spy();
|
518
|
+
document.addEventListener('keydown', tabSpy);
|
519
|
+
// Simulate TAB.
|
520
|
+
MockInteractions.pressAndReleaseKeyOn(document, 9);
|
521
|
+
assert.equal(Polymer.dom(overlay).querySelector('[autofocus]'), document.activeElement, 'focus stays on button');
|
522
|
+
assert.isTrue(tabSpy.calledOnce, 'keydown spy called');
|
523
|
+
assert.isTrue(tabSpy.getCall(0).args[0].defaultPrevented, 'keydown default prevented');
|
524
|
+
// Cleanup.
|
525
|
+
document.removeEventListener('keydown', tabSpy);
|
526
|
+
done();
|
527
|
+
}, 1);
|
528
|
+
});
|
529
|
+
});
|
530
|
+
|
531
|
+
test('empty overlay with-backdrop: prevent TAB and trap the focus', function(done) {
|
532
|
+
overlay = fixture('basic');
|
533
|
+
overlay.withBackdrop = true;
|
534
|
+
runAfterOpen(overlay, function() {
|
535
|
+
// 1ms timeout needed by IE10 to have proper focus switching.
|
536
|
+
Polymer.Base.async(function() {
|
537
|
+
// Spy keydown.
|
538
|
+
var tabSpy = sinon.spy();
|
539
|
+
document.addEventListener('keydown', tabSpy);
|
540
|
+
// Simulate TAB.
|
541
|
+
MockInteractions.pressAndReleaseKeyOn(document, 9);
|
542
|
+
assert.equal(overlay, document.activeElement, 'focus stays on overlay');
|
543
|
+
assert.isTrue(tabSpy.calledOnce, 'keydown spy called');
|
544
|
+
assert.isTrue(tabSpy.getCall(0).args[0].defaultPrevented, 'keydown default prevented');
|
545
|
+
// Cleanup.
|
546
|
+
document.removeEventListener('keydown', tabSpy);
|
547
|
+
done();
|
548
|
+
}, 1);
|
549
|
+
});
|
550
|
+
});
|
551
|
+
|
552
|
+
});
|
553
|
+
|
554
|
+
suite('focusable nodes', function() {
|
555
|
+
var overlay, overlayWithTabIndex, overlayFocusableNodes;
|
556
|
+
|
557
|
+
setup(function() {
|
558
|
+
var f = fixture('focusables');
|
559
|
+
overlay = f[0];
|
560
|
+
overlayWithTabIndex = f[1];
|
561
|
+
overlayFocusableNodes = f[2];
|
562
|
+
});
|
563
|
+
|
564
|
+
test('_focusableNodes returns nodes that are focusable', function(done) {
|
565
|
+
runAfterOpen(overlay, function() {
|
566
|
+
var focusableNodes = overlay._focusableNodes;
|
567
|
+
assert.equal(focusableNodes.length, 3, '3 nodes are focusable');
|
568
|
+
assert.equal(focusableNodes[0], Polymer.dom(overlay).querySelector('.focusable1'));
|
569
|
+
assert.equal(focusableNodes[1], Polymer.dom(overlay).querySelector('.focusable2'));
|
570
|
+
assert.equal(focusableNodes[2], Polymer.dom(overlay).querySelector('.focusable3'));
|
571
|
+
done();
|
572
|
+
});
|
573
|
+
});
|
574
|
+
|
575
|
+
test('_focusableNodes includes overlay if it has a valid tabindex', function(done) {
|
576
|
+
runAfterOpen(overlay, function() {
|
577
|
+
overlay.setAttribute('tabindex', '0');
|
578
|
+
var focusableNodes = overlay._focusableNodes;
|
579
|
+
assert.equal(focusableNodes.length, 4, '4 focusable nodes');
|
580
|
+
assert.notEqual(focusableNodes.indexOf(overlay), -1, 'overlay is included');
|
581
|
+
done();
|
582
|
+
});
|
583
|
+
});
|
584
|
+
|
585
|
+
test('_focusableNodes respects the tabindex order', function(done) {
|
586
|
+
runAfterOpen(overlayWithTabIndex, function() {
|
587
|
+
var focusableNodes = overlayWithTabIndex._focusableNodes;
|
588
|
+
assert.equal(focusableNodes.length, 6, '6 nodes are focusable');
|
589
|
+
assert.equal(focusableNodes[0], Polymer.dom(overlayWithTabIndex).querySelector('.focusable1'));
|
590
|
+
assert.equal(focusableNodes[1], Polymer.dom(overlayWithTabIndex).querySelector('.focusable2'));
|
591
|
+
assert.equal(focusableNodes[2], Polymer.dom(overlayWithTabIndex).querySelector('.focusable3'));
|
592
|
+
assert.equal(focusableNodes[3], Polymer.dom(overlayWithTabIndex).querySelector('.focusable4'));
|
593
|
+
assert.equal(focusableNodes[4], Polymer.dom(overlayWithTabIndex).querySelector('.focusable5'));
|
594
|
+
assert.equal(focusableNodes[5], Polymer.dom(overlayWithTabIndex).querySelector('.focusable6'));
|
595
|
+
done();
|
596
|
+
});
|
597
|
+
});
|
598
|
+
|
599
|
+
test('_focusableNodes can be overridden', function(done) {
|
600
|
+
runAfterOpen(overlayFocusableNodes, function() {
|
601
|
+
// It has 1 focusable in the light dom, and 2 in the shadow dom.
|
602
|
+
var focusableNodes = overlayFocusableNodes._focusableNodes;
|
603
|
+
assert.equal(focusableNodes.length, 2, 'length ok');
|
604
|
+
assert.equal(focusableNodes[0], overlayFocusableNodes.$.first, 'first ok');
|
605
|
+
assert.equal(focusableNodes[1], overlayFocusableNodes.$.last, 'last ok');
|
606
|
+
done();
|
607
|
+
});
|
608
|
+
});
|
609
|
+
|
610
|
+
test('with-backdrop: TAB & Shift+TAB wrap focus', function(done) {
|
611
|
+
overlay.withBackdrop = true;
|
612
|
+
runAfterOpen(overlay, function() {
|
613
|
+
var focusableNodes = overlay._focusableNodes;
|
614
|
+
// 1ms timeout needed by IE10 to have proper focus switching.
|
615
|
+
Polymer.Base.async(function() {
|
616
|
+
// Go to last element.
|
617
|
+
focusableNodes[focusableNodes.length-1].focus();
|
618
|
+
// Spy keydown.
|
619
|
+
var tabSpy = sinon.spy();
|
620
|
+
document.addEventListener('keydown', tabSpy);
|
621
|
+
// Simulate TAB.
|
622
|
+
MockInteractions.pressAndReleaseKeyOn(document, 9);
|
623
|
+
assert.equal(focusableNodes[0], document.activeElement, 'focus wrapped to first focusable');
|
624
|
+
assert.isTrue(tabSpy.calledOnce, 'keydown spy called');
|
625
|
+
assert.isTrue(tabSpy.getCall(0).args[0].defaultPrevented, 'keydown default prevented');
|
626
|
+
// Simulate Shift+TAB.
|
627
|
+
MockInteractions.pressAndReleaseKeyOn(document, 9, ['shift']);
|
628
|
+
assert.equal(focusableNodes[focusableNodes.length-1], document.activeElement, 'focus wrapped to last focusable');
|
629
|
+
assert.isTrue(tabSpy.calledTwice, 'keydown spy called again');
|
630
|
+
assert.isTrue(tabSpy.getCall(1).args[0].defaultPrevented, 'keydown default prevented again');
|
631
|
+
// Cleanup.
|
632
|
+
document.removeEventListener('keydown', tabSpy);
|
633
|
+
done();
|
634
|
+
}, 1);
|
635
|
+
});
|
636
|
+
});
|
637
|
+
|
638
|
+
test('with-backdrop: TAB & Shift+TAB wrap focus respecting tabindex', function(done) {
|
639
|
+
overlayWithTabIndex.withBackdrop = true;
|
640
|
+
runAfterOpen(overlayWithTabIndex, function() {
|
641
|
+
var focusableNodes = overlayWithTabIndex._focusableNodes;
|
642
|
+
// 1ms timeout needed by IE10 to have proper focus switching.
|
643
|
+
Polymer.Base.async(function() {
|
644
|
+
// Go to last element.
|
645
|
+
focusableNodes[focusableNodes.length-1].focus();
|
646
|
+
// Simulate TAB.
|
647
|
+
MockInteractions.pressAndReleaseKeyOn(document, 9);
|
648
|
+
assert.equal(focusableNodes[0], document.activeElement, 'focus wrapped to first focusable');
|
649
|
+
// Simulate Shift+TAB.
|
650
|
+
MockInteractions.pressAndReleaseKeyOn(document, 9, ['shift']);
|
651
|
+
assert.equal(focusableNodes[focusableNodes.length-1], document.activeElement, 'focus wrapped to last focusable');
|
652
|
+
done();
|
653
|
+
}, 1);
|
654
|
+
});
|
655
|
+
});
|
656
|
+
|
657
|
+
test('with-backdrop: Shift+TAB after open wrap focus', function(done) {
|
658
|
+
overlay.withBackdrop = true;
|
659
|
+
runAfterOpen(overlay, function() {
|
660
|
+
var focusableNodes = overlay._focusableNodes;
|
661
|
+
// 1ms timeout needed by IE10 to have proper focus switching.
|
662
|
+
Polymer.Base.async(function() {
|
663
|
+
// Spy keydown.
|
664
|
+
var tabSpy = sinon.spy();
|
665
|
+
document.addEventListener('keydown', tabSpy);
|
666
|
+
// Simulate Shift+TAB.
|
667
|
+
MockInteractions.pressAndReleaseKeyOn(document, 9, ['shift']);
|
668
|
+
assert.equal(focusableNodes[focusableNodes.length-1], document.activeElement, 'focus wrapped to last focusable');
|
669
|
+
assert.isTrue(tabSpy.calledOnce, 'keydown spy called');
|
670
|
+
assert.isTrue(tabSpy.getCall(0).args[0].defaultPrevented, 'keydown default prevented');
|
671
|
+
// Cleanup.
|
672
|
+
document.removeEventListener('keydown', tabSpy);
|
673
|
+
done();
|
674
|
+
}, 1);
|
675
|
+
});
|
676
|
+
});
|
677
|
+
|
678
|
+
test('with-backdrop: after open, update last focusable node and then Shift+TAB', function(done) {
|
679
|
+
overlay.withBackdrop = true;
|
680
|
+
runAfterOpen(overlay, function() {
|
681
|
+
var focusableNodes = overlay._focusableNodes;
|
682
|
+
// 1ms timeout needed by IE10 to have proper focus switching.
|
683
|
+
Polymer.Base.async(function() {
|
684
|
+
// Before tabbing, make lastFocusable non-tabbable. This will make
|
685
|
+
// the one before it (focusableNodes.length - 2), the new last focusable node.
|
686
|
+
focusableNodes[focusableNodes.length-1].setAttribute('tabindex', '-1');
|
687
|
+
overlay.invalidateTabbables();
|
688
|
+
// Simulate Shift+TAB.
|
689
|
+
MockInteractions.pressAndReleaseKeyOn(document, 9, ['shift']);
|
690
|
+
assert.equal(focusableNodes[focusableNodes.length-2], document.activeElement, 'focus wrapped correctly');
|
691
|
+
done();
|
692
|
+
}, 1);
|
693
|
+
});
|
694
|
+
});
|
695
|
+
|
696
|
+
test('with-backdrop: Shift+TAB wrap focus in shadowDOM', function(done) {
|
697
|
+
overlayFocusableNodes.withBackdrop = true;
|
698
|
+
runAfterOpen(overlayFocusableNodes, function() {
|
699
|
+
// 1ms timeout needed by IE10 to have proper focus switching.
|
700
|
+
Polymer.Base.async(function() {
|
701
|
+
// Spy keydown.
|
702
|
+
var tabSpy = sinon.spy();
|
703
|
+
document.addEventListener('keydown', tabSpy);
|
704
|
+
// Simulate Shift+TAB.
|
705
|
+
MockInteractions.pressAndReleaseKeyOn(document, 9, ['shift']);
|
706
|
+
assert.equal(overlayFocusableNodes.$.last, Polymer.IronOverlayManager.deepActiveElement, 'focus wrapped to last focusable in the shadowDOM');
|
707
|
+
assert.isTrue(tabSpy.calledOnce, 'keydown spy called');
|
708
|
+
assert.isTrue(tabSpy.getCall(0).args[0].defaultPrevented, 'keydown default prevented');
|
709
|
+
// Cleanup.
|
710
|
+
document.removeEventListener('keydown', tabSpy);
|
711
|
+
done();
|
712
|
+
}, 1);
|
713
|
+
});
|
714
|
+
});
|
715
|
+
|
716
|
+
});
|
717
|
+
|
718
|
+
suite('Polymer.IronOverlayManager.deepActiveElement', function() {
|
719
|
+
|
720
|
+
test('handles document.body', function () {
|
721
|
+
document.body.focus();
|
722
|
+
assert.equal(Polymer.IronOverlayManager.deepActiveElement, document.body);
|
723
|
+
});
|
724
|
+
|
725
|
+
test('handles light dom', function () {
|
726
|
+
var focusable = document.getElementById('focusInput');
|
727
|
+
focusable.focus();
|
728
|
+
assert.equal(Polymer.IronOverlayManager.deepActiveElement, focusable, 'input is handled');
|
729
|
+
focusable.blur();
|
730
|
+
});
|
731
|
+
|
732
|
+
test('handles shadow dom', function () {
|
733
|
+
var focusable = document.getElementById('buttons').$.button0;
|
734
|
+
focusable.focus();
|
735
|
+
assert.equal(Polymer.IronOverlayManager.deepActiveElement, focusable);
|
736
|
+
focusable.blur();
|
737
|
+
});
|
738
|
+
|
739
|
+
});
|
740
|
+
|
741
|
+
suite('restore-focus-on-close', function() {
|
742
|
+
|
743
|
+
var overlay;
|
744
|
+
setup(function () {
|
745
|
+
overlay = fixture('autofocus');
|
746
|
+
overlay.restoreFocusOnClose = true;
|
747
|
+
});
|
748
|
+
|
749
|
+
teardown(function () {
|
750
|
+
// No matter what, return the focus to body!
|
751
|
+
document.body.focus();
|
752
|
+
});
|
753
|
+
|
754
|
+
test('does not return focus on close by default (restore-focus-on-close=false)', function(done) {
|
755
|
+
overlay.restoreFocusOnClose = false;
|
756
|
+
var focusable = document.getElementById('focusInput');
|
757
|
+
focusable.focus();
|
758
|
+
runAfterOpen(overlay, function() {
|
759
|
+
runAfterClose(overlay, function() {
|
760
|
+
assert.notEqual(Polymer.IronOverlayManager.deepActiveElement, focusable, 'focus is not restored to focusable');
|
761
|
+
done();
|
762
|
+
});
|
763
|
+
});
|
764
|
+
});
|
765
|
+
|
766
|
+
test('overlay returns focus on close', function(done) {
|
767
|
+
var focusable = document.getElementById('focusInput');
|
768
|
+
focusable.focus();
|
769
|
+
runAfterOpen(overlay, function() {
|
770
|
+
runAfterClose(overlay, function() {
|
771
|
+
assert.equal(Polymer.IronOverlayManager.deepActiveElement, focusable, 'focus restored to focusable');
|
772
|
+
done();
|
773
|
+
});
|
774
|
+
});
|
775
|
+
});
|
776
|
+
|
777
|
+
test('overlay returns focus on close (ShadowDOM)', function(done) {
|
778
|
+
var focusable = document.getElementById('buttons').$.button0;
|
779
|
+
focusable.focus();
|
780
|
+
runAfterOpen(overlay, function() {
|
781
|
+
runAfterClose(overlay, function() {
|
782
|
+
assert.equal(Polymer.IronOverlayManager.deepActiveElement, focusable, 'focus restored to focusable');
|
783
|
+
done();
|
784
|
+
});
|
785
|
+
});
|
786
|
+
});
|
787
|
+
|
788
|
+
});
|
789
|
+
|
790
|
+
suite('overlay with backdrop', function() {
|
791
|
+
var overlay;
|
792
|
+
|
793
|
+
setup(function() {
|
794
|
+
overlay = fixture('backdrop');
|
795
|
+
});
|
796
|
+
|
797
|
+
test('backdrop is opened when overlay is opened', function(done) {
|
798
|
+
assert.isOk(overlay.backdropElement, 'backdrop is defined');
|
799
|
+
runAfterOpen(overlay, function() {
|
800
|
+
assert.isTrue(overlay.backdropElement.opened, 'backdrop is opened');
|
801
|
+
assert.isOk(overlay.backdropElement.parentNode, 'backdrop is inserted in the DOM');
|
802
|
+
done();
|
803
|
+
});
|
804
|
+
});
|
805
|
+
|
806
|
+
test('backdrop appears behind the overlay', function(done) {
|
807
|
+
runAfterOpen(overlay, function() {
|
808
|
+
styleZ = parseInt(window.getComputedStyle(overlay).zIndex, 10);
|
809
|
+
backdropStyleZ = parseInt(window.getComputedStyle(overlay.backdropElement).zIndex, 10);
|
810
|
+
assert.isTrue(styleZ > backdropStyleZ, 'overlay has higher z-index than backdrop');
|
811
|
+
done();
|
812
|
+
});
|
813
|
+
});
|
814
|
+
|
815
|
+
test('backdrop is removed when overlay is closed', function(done) {
|
816
|
+
runAfterOpen(overlay, function() {
|
817
|
+
runAfterClose(overlay, function() {
|
818
|
+
assert.isFalse(overlay.backdropElement.opened, 'backdrop is closed');
|
819
|
+
assert.isNotOk(overlay.backdropElement.parentNode, 'backdrop is removed from the DOM');
|
820
|
+
assert.lengthOf(document.querySelectorAll('iron-overlay-backdrop'), 0, 'no backdrop elements on body');
|
821
|
+
done();
|
822
|
+
});
|
823
|
+
});
|
824
|
+
});
|
825
|
+
|
826
|
+
test('backdrop is removed when the element is removed from DOM', function(done) {
|
827
|
+
runAfterOpen(overlay, function() {
|
828
|
+
Polymer.dom(overlay).parentNode.removeChild(overlay);
|
829
|
+
// Ensure detached is executed.
|
830
|
+
Polymer.dom.flush();
|
831
|
+
assert.isFalse(overlay.backdropElement.opened, 'backdrop is closed');
|
832
|
+
assert.isNotOk(overlay.backdropElement.parentNode, 'backdrop is removed from the DOM');
|
833
|
+
assert.lengthOf(document.querySelectorAll('iron-overlay-backdrop'), 0, 'no backdrop elements on body');
|
834
|
+
assert.isNotOk(overlay._manager.currentOverlay(), 'currentOverlay ok');
|
835
|
+
done();
|
836
|
+
});
|
837
|
+
});
|
838
|
+
|
839
|
+
test('manager.getBackdrops() updated on opened changes', function(done) {
|
840
|
+
runAfterOpen(overlay, function() {
|
841
|
+
assert.equal(Polymer.IronOverlayManager.getBackdrops().length, 1, 'overlay added to manager backdrops');
|
842
|
+
runAfterClose(overlay, function() {
|
843
|
+
assert.equal(Polymer.IronOverlayManager.getBackdrops().length, 0, 'overlay removed from manager backdrops');
|
844
|
+
done();
|
845
|
+
});
|
846
|
+
});
|
847
|
+
});
|
848
|
+
|
849
|
+
test('updating with-backdrop to false closes backdrop', function(done) {
|
850
|
+
runAfterOpen(overlay, function() {
|
851
|
+
overlay.withBackdrop = false;
|
852
|
+
assert.isFalse(overlay.backdropElement.opened, 'backdrop is closed');
|
853
|
+
assert.isNotObject(overlay.backdropElement.parentNode, 'backdrop is removed from document');
|
854
|
+
done();
|
855
|
+
});
|
856
|
+
});
|
857
|
+
|
858
|
+
test('backdrop is removed when toggling overlay opened', function(done) {
|
859
|
+
overlay.open();
|
860
|
+
runAfterClose(overlay, function() {
|
861
|
+
assert.isFalse(overlay.backdropElement.opened, 'backdrop is closed');
|
862
|
+
assert.isNotOk(overlay.backdropElement.parentNode, 'backdrop is removed from document');
|
863
|
+
done();
|
864
|
+
});
|
865
|
+
});
|
866
|
+
|
867
|
+
test('withBackdrop = false does not prevent click outside event', function(done) {
|
868
|
+
overlay.withBackdrop = false;
|
869
|
+
runAfterOpen(overlay, function() {
|
870
|
+
overlay.addEventListener('iron-overlay-canceled', function(event) {
|
871
|
+
assert.isFalse(event.detail.defaultPrevented, 'click event not prevented');
|
872
|
+
done();
|
873
|
+
});
|
874
|
+
MockInteractions.tap(document.body);
|
875
|
+
});
|
876
|
+
});
|
877
|
+
});
|
878
|
+
|
879
|
+
suite('multiple overlays', function() {
|
880
|
+
var overlay1, overlay2;
|
881
|
+
|
882
|
+
setup(function() {
|
883
|
+
var f = fixture('multiple');
|
884
|
+
overlay1 = f[0];
|
885
|
+
overlay2 = f[1];
|
886
|
+
});
|
887
|
+
|
888
|
+
test('new overlays appear on top', function(done) {
|
889
|
+
runAfterOpen(overlay1, function() {
|
890
|
+
runAfterOpen(overlay2, function() {
|
891
|
+
var styleZ = parseInt(window.getComputedStyle(overlay1).zIndex, 10);
|
892
|
+
var styleZ1 = parseInt(window.getComputedStyle(overlay2).zIndex, 10);
|
893
|
+
assert.isTrue(styleZ1 > styleZ, 'overlay2 has higher z-index than overlay1');
|
894
|
+
done();
|
895
|
+
});
|
896
|
+
});
|
897
|
+
});
|
898
|
+
|
899
|
+
test('ESC closes only the top overlay', function(done) {
|
900
|
+
runAfterOpen(overlay1, function() {
|
901
|
+
runAfterOpen(overlay2, function() {
|
902
|
+
MockInteractions.pressAndReleaseKeyOn(document, 27);
|
903
|
+
assert.isFalse(overlay2.opened, 'overlay2 was closed');
|
904
|
+
assert.isTrue(overlay1.opened, 'overlay1 is still opened');
|
905
|
+
done();
|
906
|
+
});
|
907
|
+
});
|
908
|
+
});
|
909
|
+
|
910
|
+
test('close an overlay in proximity to another overlay', function(done) {
|
911
|
+
// Open and close a separate overlay.
|
912
|
+
overlay1.open();
|
913
|
+
overlay1.close();
|
914
|
+
|
915
|
+
// Open the overlay we care about.
|
916
|
+
overlay2.open();
|
917
|
+
|
918
|
+
// Immediately close the first overlay.
|
919
|
+
// Wait for infinite recursion, otherwise we win.
|
920
|
+
runAfterClose(overlay2, function() {
|
921
|
+
done();
|
922
|
+
})
|
923
|
+
});
|
924
|
+
|
925
|
+
});
|
926
|
+
|
927
|
+
suite('Manager overlays in sync', function() {
|
928
|
+
var overlay1, overlay2;
|
929
|
+
var overlays;
|
930
|
+
|
931
|
+
setup(function() {
|
932
|
+
var f = fixture('multiple');
|
933
|
+
overlay1 = f[0];
|
934
|
+
overlay2 = f[1];
|
935
|
+
overlays = Polymer.IronOverlayManager._overlays;
|
936
|
+
});
|
937
|
+
|
938
|
+
test('no duplicates after attached', function(done) {
|
939
|
+
overlay1 = document.createElement('test-overlay');
|
940
|
+
runAfterOpen(overlay1, function() {
|
941
|
+
assert.equal(overlays.length, 1, 'correct count after open and attached');
|
942
|
+
document.body.removeChild(overlay1);
|
943
|
+
done();
|
944
|
+
});
|
945
|
+
document.body.appendChild(overlay1);
|
946
|
+
});
|
947
|
+
|
948
|
+
test('call open multiple times handled', function(done) {
|
949
|
+
overlay1.open();
|
950
|
+
overlay1.open();
|
951
|
+
runAfterOpen(overlay1, function() {
|
952
|
+
assert.equal(overlays.length, 1, '1 overlay after open');
|
953
|
+
done();
|
954
|
+
})
|
955
|
+
});
|
956
|
+
|
957
|
+
test('close handled', function(done) {
|
958
|
+
runAfterOpen(overlay1, function() {
|
959
|
+
runAfterClose(overlay1, function() {
|
960
|
+
assert.equal(overlays.length, 0, '0 overlays after close');
|
961
|
+
done();
|
962
|
+
});
|
963
|
+
});
|
964
|
+
});
|
965
|
+
|
966
|
+
test('open/close brings overlay on top', function(done) {
|
967
|
+
overlay1.open();
|
968
|
+
runAfterOpen(overlay2, function() {
|
969
|
+
assert.equal(overlays.indexOf(overlay1), 0, 'overlay1 at index 0');
|
970
|
+
assert.equal(overlays.indexOf(overlay2), 1, 'overlay2 at index 1');
|
971
|
+
overlay1.close();
|
972
|
+
runAfterOpen(overlay1, function() {
|
973
|
+
assert.equal(overlays.indexOf(overlay1), 1, 'overlay1 moved at index 1');
|
974
|
+
assert.isAbove(parseInt(overlay1.style.zIndex), parseInt(overlay2.style.zIndex), 'overlay1 on top of overlay2');
|
975
|
+
done();
|
976
|
+
});
|
977
|
+
});
|
978
|
+
});
|
979
|
+
});
|
980
|
+
|
981
|
+
suite('z-ordering', function() {
|
982
|
+
|
983
|
+
var originalMinimumZ;
|
984
|
+
var overlay1, overlay2;
|
985
|
+
|
986
|
+
setup(function() {
|
987
|
+
var f = fixture('multiple');
|
988
|
+
overlay1 = f[0];
|
989
|
+
overlay2 = f[1];
|
990
|
+
originalMinimumZ = Polymer.IronOverlayManager._minimumZ;
|
991
|
+
});
|
992
|
+
|
993
|
+
teardown(function() {
|
994
|
+
Polymer.IronOverlayManager._minimumZ = originalMinimumZ;
|
995
|
+
});
|
996
|
+
|
997
|
+
// for iframes
|
998
|
+
test('default z-index is greater than 100', function(done) {
|
999
|
+
runAfterOpen(overlay1, function() {
|
1000
|
+
var styleZ = parseInt(window.getComputedStyle(overlay1).zIndex, 10);
|
1001
|
+
assert.isTrue(styleZ > 100, 'overlay1 z-index is <= 100');
|
1002
|
+
done();
|
1003
|
+
});
|
1004
|
+
});
|
1005
|
+
|
1006
|
+
test('ensureMinimumZ() effects z-index', function(done) {
|
1007
|
+
Polymer.IronOverlayManager.ensureMinimumZ(1000);
|
1008
|
+
|
1009
|
+
runAfterOpen(overlay1, function() {
|
1010
|
+
var styleZ = parseInt(window.getComputedStyle(overlay1).zIndex, 10);
|
1011
|
+
assert.isTrue(styleZ > 1000, 'overlay1 z-index is <= 1000');
|
1012
|
+
done();
|
1013
|
+
});
|
1014
|
+
});
|
1015
|
+
|
1016
|
+
test('ensureMinimumZ() never decreases the minimum z-index', function(done) {
|
1017
|
+
Polymer.IronOverlayManager.ensureMinimumZ(1000);
|
1018
|
+
Polymer.IronOverlayManager.ensureMinimumZ(500);
|
1019
|
+
|
1020
|
+
runAfterOpen(overlay1, function() {
|
1021
|
+
var styleZ = parseInt(window.getComputedStyle(overlay1).zIndex, 10);
|
1022
|
+
assert.isTrue(styleZ > 1000, 'overlay1 z-index is <= 1000');
|
1023
|
+
done();
|
1024
|
+
});
|
1025
|
+
});
|
1026
|
+
|
1027
|
+
});
|
1028
|
+
|
1029
|
+
suite('multiple overlays with backdrop', function() {
|
1030
|
+
var overlay1, overlay2, overlay3;
|
1031
|
+
|
1032
|
+
setup(function() {
|
1033
|
+
var f = fixture('multiple');
|
1034
|
+
overlay1 = f[0];
|
1035
|
+
overlay2 = f[1];
|
1036
|
+
overlay3 = f[2];
|
1037
|
+
overlay1.withBackdrop = overlay2.withBackdrop = overlay3.withBackdrop = true;
|
1038
|
+
});
|
1039
|
+
|
1040
|
+
test('multiple overlays share the same backdrop', function() {
|
1041
|
+
assert.isTrue(overlay1.backdropElement === overlay2.backdropElement, 'overlay1 and overlay2 have the same backdrop element');
|
1042
|
+
assert.isTrue(overlay1.backdropElement === overlay3.backdropElement, 'overlay1 and overlay3 have the same backdrop element');
|
1043
|
+
});
|
1044
|
+
|
1045
|
+
test('only one iron-overlay-backdrop in the DOM', function(done) {
|
1046
|
+
// Open them all.
|
1047
|
+
overlay1.opened = true;
|
1048
|
+
overlay2.opened = true;
|
1049
|
+
runAfterOpen(overlay3, function() {
|
1050
|
+
assert.lengthOf(document.querySelectorAll('iron-overlay-backdrop'), 1, 'only one backdrop element in the DOM');
|
1051
|
+
done();
|
1052
|
+
});
|
1053
|
+
});
|
1054
|
+
|
1055
|
+
test('iron-overlay-backdrop is removed from the DOM when all overlays with backdrop are closed', function(done) {
|
1056
|
+
// Open & close them all.
|
1057
|
+
overlay1.opened = true;
|
1058
|
+
overlay2.opened = true;
|
1059
|
+
runAfterOpen(overlay3, function() {
|
1060
|
+
overlay1.opened = overlay2.opened = false;
|
1061
|
+
runAfterClose(overlay3, function() {
|
1062
|
+
assert.lengthOf(document.querySelectorAll('iron-overlay-backdrop'), 0, 'backdrop element removed from the DOM');
|
1063
|
+
done();
|
1064
|
+
});
|
1065
|
+
});
|
1066
|
+
});
|
1067
|
+
|
1068
|
+
test('newest overlay appear on top', function(done) {
|
1069
|
+
runAfterOpen(overlay1, function() {
|
1070
|
+
runAfterOpen(overlay2, function() {
|
1071
|
+
var styleZ = parseInt(window.getComputedStyle(overlay1).zIndex, 10);
|
1072
|
+
var style1Z = parseInt(window.getComputedStyle(overlay2).zIndex, 10);
|
1073
|
+
var bgStyleZ = parseInt(window.getComputedStyle(overlay1.backdropElement).zIndex, 10);
|
1074
|
+
assert.isTrue(style1Z > styleZ, 'overlay2 has higher z-index than overlay1');
|
1075
|
+
assert.isTrue(styleZ > bgStyleZ, 'overlay1 has higher z-index than backdrop');
|
1076
|
+
done();
|
1077
|
+
});
|
1078
|
+
});
|
1079
|
+
});
|
1080
|
+
|
1081
|
+
var clickEvents = ['click', 'tap'];
|
1082
|
+
for (var i = 0; i < clickEvents.length; i++) {
|
1083
|
+
var eventName = clickEvents[i];
|
1084
|
+
test(eventName + ' event handled only by top overlay', function(done) {
|
1085
|
+
runAfterOpen(overlay1, function() {
|
1086
|
+
runAfterOpen(overlay2, function() {
|
1087
|
+
var btn = Polymer.dom(overlay2).querySelector('button');
|
1088
|
+
btn.addEventListener(eventName, overlay2.close.bind(overlay2));
|
1089
|
+
MockInteractions.tap(btn);
|
1090
|
+
assert.isFalse(overlay2.opened, 'overlay2 closed');
|
1091
|
+
assert.isTrue(overlay1.opened, 'overlay1 opened');
|
1092
|
+
overlay2.addEventListener('iron-overlay-closed', function() {
|
1093
|
+
assert.isTrue(overlay1.opened, 'overlay1 still opened');
|
1094
|
+
done();
|
1095
|
+
});
|
1096
|
+
});
|
1097
|
+
});
|
1098
|
+
});
|
1099
|
+
}
|
1100
|
+
|
1101
|
+
test('updating with-backdrop updates z-index', function(done) {
|
1102
|
+
runAfterOpen(overlay1, function() {
|
1103
|
+
runAfterOpen(overlay2, function() {
|
1104
|
+
overlay1.withBackdrop = false;
|
1105
|
+
var styleZ = parseInt(window.getComputedStyle(overlay1).zIndex, 10);
|
1106
|
+
var style1Z = parseInt(window.getComputedStyle(overlay2).zIndex, 10);
|
1107
|
+
var bgStyleZ = parseInt(window.getComputedStyle(overlay1.backdropElement).zIndex, 10);
|
1108
|
+
assert.isTrue(style1Z > bgStyleZ, 'overlay2 has higher z-index than backdrop');
|
1109
|
+
assert.isTrue(styleZ < bgStyleZ, 'overlay1 has lower z-index than backdrop');
|
1110
|
+
done();
|
1111
|
+
});
|
1112
|
+
});
|
1113
|
+
});
|
1114
|
+
|
1115
|
+
});
|
1116
|
+
|
1117
|
+
suite('overlay in composed tree', function() {
|
1118
|
+
var composed, overlay, trigger;
|
1119
|
+
setup(function(done) {
|
1120
|
+
composed = fixture('composed');
|
1121
|
+
overlay = composed.$.overlay;
|
1122
|
+
trigger = composed.$.trigger;
|
1123
|
+
overlay.withBackdrop = true;
|
1124
|
+
overlay.addEventListener('iron-overlay-opened', function() {
|
1125
|
+
done();
|
1126
|
+
});
|
1127
|
+
// Opens the overlay.
|
1128
|
+
MockInteractions.tap(trigger);
|
1129
|
+
});
|
1130
|
+
|
1131
|
+
test('click on overlay content does not close it', function(done) {
|
1132
|
+
// Tap on button inside overlay.
|
1133
|
+
MockInteractions.tap(Polymer.dom(overlay).querySelector('button'));
|
1134
|
+
Polymer.Base.async(function(){
|
1135
|
+
assert.isTrue(overlay.opened, 'overlay still opened');
|
1136
|
+
done();
|
1137
|
+
}, 1);
|
1138
|
+
});
|
1139
|
+
|
1140
|
+
test('with-backdrop wraps the focus within the overlay', function(done) {
|
1141
|
+
// 1ms timeout needed by IE10 to have proper focus switching.
|
1142
|
+
Polymer.Base.async(function(){
|
1143
|
+
var buttons = Polymer.dom(overlay).querySelectorAll('button');
|
1144
|
+
// Go to last element.
|
1145
|
+
buttons[buttons.length-1].focus();
|
1146
|
+
// Spy keydown.
|
1147
|
+
var tabSpy = sinon.spy();
|
1148
|
+
document.addEventListener('keydown', tabSpy);
|
1149
|
+
// Simulate TAB.
|
1150
|
+
MockInteractions.pressAndReleaseKeyOn(document, 9);
|
1151
|
+
assert.equal(buttons[0], Polymer.IronOverlayManager.deepActiveElement, 'focus wrapped to first focusable');
|
1152
|
+
assert.isTrue(tabSpy.calledOnce, 'keydown spy called');
|
1153
|
+
assert.isTrue(tabSpy.getCall(0).args[0].defaultPrevented, 'keydown default prevented');
|
1154
|
+
// Simulate Shift+TAB.
|
1155
|
+
MockInteractions.pressAndReleaseKeyOn(document, 9, ['shift']);
|
1156
|
+
assert.equal(buttons[buttons.length-1], Polymer.IronOverlayManager.deepActiveElement, 'focus wrapped to last focusable');
|
1157
|
+
assert.isTrue(tabSpy.calledTwice, 'keydown spy called again');
|
1158
|
+
assert.isTrue(tabSpy.getCall(1).args[0].defaultPrevented, 'keydown default prevented again');
|
1159
|
+
// Cleanup.
|
1160
|
+
document.removeEventListener('keydown', tabSpy);
|
1161
|
+
done();
|
1162
|
+
}, 1);
|
1163
|
+
});
|
1164
|
+
|
1165
|
+
});
|
1166
|
+
|
1167
|
+
suite('always-on-top', function() {
|
1168
|
+
var overlay1, overlay2;
|
1169
|
+
|
1170
|
+
setup(function() {
|
1171
|
+
var f = fixture('multiple');
|
1172
|
+
overlay1 = f[0];
|
1173
|
+
overlay2 = f[1];
|
1174
|
+
overlay1.alwaysOnTop = true;
|
1175
|
+
});
|
1176
|
+
|
1177
|
+
test('stays on top', function(done) {
|
1178
|
+
runAfterOpen(overlay1, function() {
|
1179
|
+
runAfterOpen(overlay2, function() {
|
1180
|
+
var zIndex1 = parseInt(window.getComputedStyle(overlay1).zIndex, 10);
|
1181
|
+
var zIndex2 = parseInt(window.getComputedStyle(overlay2).zIndex, 10);
|
1182
|
+
assert.isAbove(zIndex1, zIndex2, 'overlay1 on top');
|
1183
|
+
assert.equal(Polymer.IronOverlayManager.currentOverlay(), overlay1, 'currentOverlay ok');
|
1184
|
+
done();
|
1185
|
+
});
|
1186
|
+
});
|
1187
|
+
});
|
1188
|
+
|
1189
|
+
test('stays on top also if another overlay is with-backdrop', function(done) {
|
1190
|
+
overlay2.withBackdrop = true;
|
1191
|
+
runAfterOpen(overlay1, function() {
|
1192
|
+
runAfterOpen(overlay2, function() {
|
1193
|
+
var zIndex1 = parseInt(window.getComputedStyle(overlay1).zIndex, 10);
|
1194
|
+
var zIndex2 = parseInt(window.getComputedStyle(overlay2).zIndex, 10);
|
1195
|
+
assert.isAbove(zIndex1, zIndex2, 'overlay1 on top');
|
1196
|
+
assert.equal(Polymer.IronOverlayManager.currentOverlay(), overlay1, 'currentOverlay ok');
|
1197
|
+
done();
|
1198
|
+
});
|
1199
|
+
});
|
1200
|
+
});
|
1201
|
+
|
1202
|
+
test('last overlay with always-on-top wins', function(done) {
|
1203
|
+
overlay2.alwaysOnTop = true;
|
1204
|
+
runAfterOpen(overlay1, function() {
|
1205
|
+
runAfterOpen(overlay2, function() {
|
1206
|
+
var zIndex1 = parseInt(window.getComputedStyle(overlay1).zIndex, 10);
|
1207
|
+
var zIndex2 = parseInt(window.getComputedStyle(overlay2).zIndex, 10);
|
1208
|
+
assert.isAbove(zIndex2, zIndex1, 'overlay2 on top');
|
1209
|
+
assert.equal(Polymer.IronOverlayManager.currentOverlay(), overlay2, 'currentOverlay ok');
|
1210
|
+
done();
|
1211
|
+
});
|
1212
|
+
});
|
1213
|
+
});
|
1214
|
+
|
1215
|
+
});
|
1216
|
+
|
1217
|
+
suite('animations', function() {
|
1218
|
+
|
1219
|
+
test('overlay animations correctly triggered', function(done) {
|
1220
|
+
var overlay = fixture('basic');
|
1221
|
+
overlay.animated = true;
|
1222
|
+
overlay.open();
|
1223
|
+
overlay.addEventListener('simple-overlay-open-animation-start', function() {
|
1224
|
+
// Since animated overlay will transition center + 300px to center,
|
1225
|
+
// we should not find the element at the center when the open animation starts.
|
1226
|
+
var centerElement = document.elementFromPoint(window.innerWidth/2, window.innerHeight/2);
|
1227
|
+
assert.notEqual(centerElement, overlay, 'overlay should not be centered already');
|
1228
|
+
done();
|
1229
|
+
});
|
1230
|
+
});
|
1231
|
+
|
1232
|
+
});
|
1233
|
+
|
1234
|
+
suite('a11y', function() {
|
1235
|
+
|
1236
|
+
test('overlay has aria-hidden=true when opened', function() {
|
1237
|
+
var overlay = fixture('basic');
|
1238
|
+
assert.equal(overlay.getAttribute('aria-hidden'), 'true', 'overlay has aria-hidden="true"');
|
1239
|
+
overlay.open();
|
1240
|
+
assert.isFalse(overlay.hasAttribute('aria-hidden'), 'overlay does not have aria-hidden attribute');
|
1241
|
+
overlay.close();
|
1242
|
+
assert.equal(overlay.getAttribute('aria-hidden'), 'true', 'overlay has aria-hidden="true"');
|
1243
|
+
});
|
1244
|
+
|
1245
|
+
});
|
1246
|
+
</script>
|
1247
|
+
|
1248
|
+
</body>
|
1249
|
+
|
1250
|
+
</html>
|