easycomments 1.0.1
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/.gitignore +1 -0
- data/.rspec +2 -0
- data/Gemfile +14 -0
- data/LICENSE +21 -0
- data/README.md +92 -0
- data/Rakefile +49 -0
- data/_config.yml +28 -0
- data/bin/ec +45 -0
- data/config.ru +12 -0
- data/dashboard.rb +57 -0
- data/easycomments.gemspec +22 -0
- data/ec.rb +43 -0
- data/lib/easycomments/ec_configuration.rb +42 -0
- data/lib/easycomments/ec_dashboard_model.rb +70 -0
- data/lib/easycomments/ec_model.rb +47 -0
- data/lib/easycomments.rb +14 -0
- data/public/bower.json +32 -0
- data/public/bower_components/core-a11y-keys/.bower.json +28 -0
- data/public/bower_components/core-a11y-keys/README.md +4 -0
- data/public/bower_components/core-a11y-keys/bower.json +18 -0
- data/public/bower_components/core-a11y-keys/core-a11y-keys.html +335 -0
- data/public/bower_components/core-a11y-keys/demo.html +41 -0
- data/public/bower_components/core-a11y-keys/index.html +22 -0
- data/public/bower_components/core-ajax/.bower.json +22 -0
- data/public/bower_components/core-ajax/README.md +4 -0
- data/public/bower_components/core-ajax/bower.json +11 -0
- data/public/bower_components/core-ajax/core-ajax.html +434 -0
- data/public/bower_components/core-ajax/core-xhr.html +116 -0
- data/public/bower_components/core-ajax/demo-progress.html +65 -0
- data/public/bower_components/core-ajax/demo.html +43 -0
- data/public/bower_components/core-ajax/index.html +22 -0
- data/public/bower_components/core-ajax/metadata.html +23 -0
- data/public/bower_components/core-ajax/test/core-ajax-progress.html +108 -0
- data/public/bower_components/core-ajax/test/core-ajax-race.html +81 -0
- data/public/bower_components/core-ajax/test/core-ajax.html +287 -0
- data/public/bower_components/core-ajax/test/index.html +17 -0
- data/public/bower_components/core-collapse/.bower.json +21 -0
- data/public/bower_components/core-collapse/README.md +4 -0
- data/public/bower_components/core-collapse/bower.json +11 -0
- data/public/bower_components/core-collapse/core-collapse.css +16 -0
- data/public/bower_components/core-collapse/core-collapse.html +298 -0
- data/public/bower_components/core-collapse/demo.html +75 -0
- data/public/bower_components/core-collapse/index.html +22 -0
- data/public/bower_components/core-collapse/test/basic.html +85 -0
- data/public/bower_components/core-collapse/test/index.html +24 -0
- data/public/bower_components/core-component-page/.bower.json +19 -0
- data/public/bower_components/core-component-page/README.md +6 -0
- data/public/bower_components/core-component-page/bowager-logo.png +0 -0
- data/public/bower_components/core-component-page/bower.json +9 -0
- data/public/bower_components/core-component-page/core-component-page.html +37 -0
- data/public/bower_components/core-component-page/demo.html +23 -0
- data/public/bower_components/core-component-page/index.html +22 -0
- data/public/bower_components/core-drawer-panel/.bower.json +19 -0
- data/public/bower_components/core-drawer-panel/README.md +4 -0
- data/public/bower_components/core-drawer-panel/bower.json +9 -0
- data/public/bower_components/core-drawer-panel/core-drawer-panel.css +160 -0
- data/public/bower_components/core-drawer-panel/core-drawer-panel.html +418 -0
- data/public/bower_components/core-drawer-panel/demo.html +68 -0
- data/public/bower_components/core-drawer-panel/index.html +22 -0
- data/public/bower_components/core-drawer-panel/metadata.html +37 -0
- data/public/bower_components/core-focusable/.bower.json +18 -0
- data/public/bower_components/core-focusable/README.md +6 -0
- data/public/bower_components/core-focusable/bower.json +8 -0
- data/public/bower_components/core-focusable/core-focusable.html +4 -0
- data/public/bower_components/core-focusable/core-focusable.js +134 -0
- data/public/bower_components/core-focusable/demo.html +109 -0
- data/public/bower_components/core-focusable/polymer-mixin.js +35 -0
- data/public/bower_components/core-header-panel/.bower.json +18 -0
- data/public/bower_components/core-header-panel/README.md +4 -0
- data/public/bower_components/core-header-panel/bower.json +8 -0
- data/public/bower_components/core-header-panel/core-header-panel.css +78 -0
- data/public/bower_components/core-header-panel/core-header-panel.html +277 -0
- data/public/bower_components/core-header-panel/demo.html +100 -0
- data/public/bower_components/core-header-panel/index.html +23 -0
- data/public/bower_components/core-header-panel/metadata.html +37 -0
- data/public/bower_components/core-icon/.bower.json +19 -0
- data/public/bower_components/core-icon/README.md +4 -0
- data/public/bower_components/core-icon/bower.json +9 -0
- data/public/bower_components/core-icon/core-icon.css +16 -0
- data/public/bower_components/core-icon/core-icon.html +201 -0
- data/public/bower_components/core-icon/demo.html +44 -0
- data/public/bower_components/core-icon/index.html +22 -0
- data/public/bower_components/core-icon/metadata.html +21 -0
- data/public/bower_components/core-icon-button/.bower.json +18 -0
- data/public/bower_components/core-icon-button/README.md +4 -0
- data/public/bower_components/core-icon-button/bower.json +8 -0
- data/public/bower_components/core-icon-button/core-icon-button.css +75 -0
- data/public/bower_components/core-icon-button/core-icon-button.html +81 -0
- data/public/bower_components/core-icon-button/demo.html +35 -0
- data/public/bower_components/core-icon-button/index.html +22 -0
- data/public/bower_components/core-icon-button/metadata.html +20 -0
- data/public/bower_components/core-icons/.bower.json +24 -0
- data/public/bower_components/core-icons/.gitignore +2 -0
- data/public/bower_components/core-icons/README.md +8 -0
- data/public/bower_components/core-icons/av-icons.html +65 -0
- data/public/bower_components/core-icons/bower.json +14 -0
- data/public/bower_components/core-icons/communication-icons.html +54 -0
- data/public/bower_components/core-icons/core-icons.html +278 -0
- data/public/bower_components/core-icons/demo.html +98 -0
- data/public/bower_components/core-icons/device-icons.html +90 -0
- data/public/bower_components/core-icons/editor-icons.html +67 -0
- data/public/bower_components/core-icons/hardware-icons.html +56 -0
- data/public/bower_components/core-icons/image-icons.html +152 -0
- data/public/bower_components/core-icons/index.html +22 -0
- data/public/bower_components/core-icons/maps-icons.html +70 -0
- data/public/bower_components/core-icons/notification-icons.html +49 -0
- data/public/bower_components/core-icons/social-icons.html +39 -0
- data/public/bower_components/core-iconset/.bower.json +20 -0
- data/public/bower_components/core-iconset/README.md +4 -0
- data/public/bower_components/core-iconset/bower.json +10 -0
- data/public/bower_components/core-iconset/core-iconset.html +241 -0
- data/public/bower_components/core-iconset/demo.html +62 -0
- data/public/bower_components/core-iconset/index.html +22 -0
- data/public/bower_components/core-iconset/my-icons-big.png +0 -0
- data/public/bower_components/core-iconset/my-icons.png +0 -0
- data/public/bower_components/core-iconset-svg/.bower.json +19 -0
- data/public/bower_components/core-iconset-svg/README.md +4 -0
- data/public/bower_components/core-iconset-svg/bower.json +9 -0
- data/public/bower_components/core-iconset-svg/core-iconset-svg.html +168 -0
- data/public/bower_components/core-iconset-svg/demo.html +66 -0
- data/public/bower_components/core-iconset-svg/index.html +22 -0
- data/public/bower_components/core-iconset-svg/svg-sample-icons.html +68 -0
- data/public/bower_components/core-input/.bower.json +20 -0
- data/public/bower_components/core-input/README.md +2 -0
- data/public/bower_components/core-input/bower.json +10 -0
- data/public/bower_components/core-input/core-input.css +41 -0
- data/public/bower_components/core-input/core-input.html +148 -0
- data/public/bower_components/core-input/demo.html +62 -0
- data/public/bower_components/core-input/index.html +22 -0
- data/public/bower_components/core-input/metadata.html +23 -0
- data/public/bower_components/core-input/test/a11y.html +55 -0
- data/public/bower_components/core-input/test/basic.html +60 -0
- data/public/bower_components/core-input/test/index.html +25 -0
- data/public/bower_components/core-item/.bower.json +19 -0
- data/public/bower_components/core-item/README.md +4 -0
- data/public/bower_components/core-item/bower.json +9 -0
- data/public/bower_components/core-item/core-item.css +45 -0
- data/public/bower_components/core-item/core-item.html +73 -0
- data/public/bower_components/core-item/demo.html +92 -0
- data/public/bower_components/core-item/index.html +22 -0
- data/public/bower_components/core-item/metadata.html +24 -0
- data/public/bower_components/core-media-query/.bower.json +18 -0
- data/public/bower_components/core-media-query/README.md +4 -0
- data/public/bower_components/core-media-query/bower.json +8 -0
- data/public/bower_components/core-media-query/core-media-query.html +87 -0
- data/public/bower_components/core-media-query/demo.html +44 -0
- data/public/bower_components/core-media-query/index.html +22 -0
- data/public/bower_components/core-menu/.bower.json +22 -0
- data/public/bower_components/core-menu/README.md +4 -0
- data/public/bower_components/core-menu/bower.json +11 -0
- data/public/bower_components/core-menu/core-menu.css +18 -0
- data/public/bower_components/core-menu/core-menu.html +73 -0
- data/public/bower_components/core-menu/core-submenu.css +43 -0
- data/public/bower_components/core-menu/core-submenu.html +126 -0
- data/public/bower_components/core-menu/demo.html +101 -0
- data/public/bower_components/core-menu/index.html +22 -0
- data/public/bower_components/core-menu/metadata.html +62 -0
- data/public/bower_components/core-meta/.bower.json +18 -0
- data/public/bower_components/core-meta/README.md +4 -0
- data/public/bower_components/core-meta/bower.json +8 -0
- data/public/bower_components/core-meta/core-meta.html +145 -0
- data/public/bower_components/core-meta/demo.html +58 -0
- data/public/bower_components/core-meta/index.html +22 -0
- data/public/bower_components/core-overlay/.bower.json +20 -0
- data/public/bower_components/core-overlay/README.md +4 -0
- data/public/bower_components/core-overlay/bower.json +10 -0
- data/public/bower_components/core-overlay/core-key-helper.html +22 -0
- data/public/bower_components/core-overlay/core-overlay-layer.html +116 -0
- data/public/bower_components/core-overlay/core-overlay.html +776 -0
- data/public/bower_components/core-overlay/demo.html +155 -0
- data/public/bower_components/core-overlay/gulpfile.js +2 -0
- data/public/bower_components/core-overlay/index.html +22 -0
- data/public/bower_components/core-overlay/tests/html/core-overlay-basic.html +127 -0
- data/public/bower_components/core-overlay/tests/html/core-overlay-positioning-margin.html +153 -0
- data/public/bower_components/core-overlay/tests/html/core-overlay-positioning.html +167 -0
- data/public/bower_components/core-overlay/tests/html/core-overlay-quick-close.html +45 -0
- data/public/bower_components/core-overlay/tests/html/core-overlay-scroll.html +130 -0
- data/public/bower_components/core-overlay/tests/js/htmltests.js +7 -0
- data/public/bower_components/core-overlay/tests/runner.html +14 -0
- data/public/bower_components/core-overlay/tests/tests.json +6 -0
- data/public/bower_components/core-pages/.bower.json +19 -0
- data/public/bower_components/core-pages/README.md +4 -0
- data/public/bower_components/core-pages/bower.json +8 -0
- data/public/bower_components/core-pages/core-pages.css +30 -0
- data/public/bower_components/core-pages/core-pages.html +44 -0
- data/public/bower_components/core-pages/demo.html +136 -0
- data/public/bower_components/core-pages/index.html +22 -0
- data/public/bower_components/core-pages/metadata.html +25 -0
- data/public/bower_components/core-resizable/.bower.json +18 -0
- data/public/bower_components/core-resizable/README.md +4 -0
- data/public/bower_components/core-resizable/bower.json +8 -0
- data/public/bower_components/core-resizable/core-resizable.html +248 -0
- data/public/bower_components/core-resizable/index.html +22 -0
- data/public/bower_components/core-resizable/test/basic.html +504 -0
- data/public/bower_components/core-resizable/test/index.html +16 -0
- data/public/bower_components/core-resizable/test/test-elements.html +66 -0
- data/public/bower_components/core-scaffold/.bower.json +22 -0
- data/public/bower_components/core-scaffold/README.md +4 -0
- data/public/bower_components/core-scaffold/bower.json +11 -0
- data/public/bower_components/core-scaffold/core-scaffold.html +252 -0
- data/public/bower_components/core-scaffold/demo.html +82 -0
- data/public/bower_components/core-scaffold/index.html +22 -0
- data/public/bower_components/core-scaffold/metadata.html +52 -0
- data/public/bower_components/core-selection/.bower.json +21 -0
- data/public/bower_components/core-selection/README.md +4 -0
- data/public/bower_components/core-selection/bower.json +11 -0
- data/public/bower_components/core-selection/core-selection.html +149 -0
- data/public/bower_components/core-selection/demo.html +59 -0
- data/public/bower_components/core-selection/index.html +22 -0
- data/public/bower_components/core-selection/test/basic.html +62 -0
- data/public/bower_components/core-selection/test/index.html +25 -0
- data/public/bower_components/core-selection/test/multi.html +63 -0
- data/public/bower_components/core-selector/.bower.json +22 -0
- data/public/bower_components/core-selector/.gitignore +2 -0
- data/public/bower_components/core-selector/README.md +4 -0
- data/public/bower_components/core-selector/bower.json +12 -0
- data/public/bower_components/core-selector/core-selector.html +548 -0
- data/public/bower_components/core-selector/demo.html +106 -0
- data/public/bower_components/core-selector/index.html +22 -0
- data/public/bower_components/core-selector/metadata.html +20 -0
- data/public/bower_components/core-selector/test/activate-event.html +63 -0
- data/public/bower_components/core-selector/test/basic.html +126 -0
- data/public/bower_components/core-selector/test/content.html +101 -0
- data/public/bower_components/core-selector/test/index.html +30 -0
- data/public/bower_components/core-selector/test/multi.html +115 -0
- data/public/bower_components/core-selector/test/next-previous.html +113 -0
- data/public/bower_components/core-selector/test/selected-attr-prop.html +62 -0
- data/public/bower_components/core-selector/test/template-repeat.html +63 -0
- data/public/bower_components/core-style/.bower.json +18 -0
- data/public/bower_components/core-style/README.md +4 -0
- data/public/bower_components/core-style/bower.json +8 -0
- data/public/bower_components/core-style/core-style.html +387 -0
- data/public/bower_components/core-style/demo.html +58 -0
- data/public/bower_components/core-style/elements.html +55 -0
- data/public/bower_components/core-style/index.html +22 -0
- data/public/bower_components/core-style/my-theme.html +73 -0
- data/public/bower_components/core-toolbar/.bower.json +19 -0
- data/public/bower_components/core-toolbar/README.md +4 -0
- data/public/bower_components/core-toolbar/bower.json +9 -0
- data/public/bower_components/core-toolbar/core-toolbar.css +117 -0
- data/public/bower_components/core-toolbar/core-toolbar.html +155 -0
- data/public/bower_components/core-toolbar/demo.html +119 -0
- data/public/bower_components/core-toolbar/index.html +22 -0
- data/public/bower_components/core-toolbar/metadata.html +28 -0
- data/public/bower_components/core-toolbar/test/basic.html +86 -0
- data/public/bower_components/core-toolbar/test/index.html +24 -0
- data/public/bower_components/core-transition/.bower.json +19 -0
- data/public/bower_components/core-transition/README.md +2 -0
- data/public/bower_components/core-transition/bower.json +9 -0
- data/public/bower_components/core-transition/core-transition-css.html +220 -0
- data/public/bower_components/core-transition/core-transition-overlay.css +46 -0
- data/public/bower_components/core-transition/core-transition.html +140 -0
- data/public/bower_components/core-transition/demo.html +87 -0
- data/public/bower_components/core-transition/index.html +22 -0
- data/public/bower_components/font-roboto/.bower.json +15 -0
- data/public/bower_components/font-roboto/roboto.html +9 -0
- data/public/bower_components/paper-button/.bower.json +27 -0
- data/public/bower_components/paper-button/README.md +4 -0
- data/public/bower_components/paper-button/bower.json +16 -0
- data/public/bower_components/paper-button/demo.html +157 -0
- data/public/bower_components/paper-button/index.html +22 -0
- data/public/bower_components/paper-button/metadata.html +17 -0
- data/public/bower_components/paper-button/paper-button-base.html +164 -0
- data/public/bower_components/paper-button/paper-button.html +197 -0
- data/public/bower_components/paper-button/test/index.html +24 -0
- data/public/bower_components/paper-button/test/paper-button.html +112 -0
- data/public/bower_components/paper-icon-button/.bower.json +25 -0
- data/public/bower_components/paper-icon-button/README.md +4 -0
- data/public/bower_components/paper-icon-button/bower.json +15 -0
- data/public/bower_components/paper-icon-button/demo.html +150 -0
- data/public/bower_components/paper-icon-button/index.html +22 -0
- data/public/bower_components/paper-icon-button/metadata.html +21 -0
- data/public/bower_components/paper-icon-button/paper-icon-button.html +154 -0
- data/public/bower_components/paper-icon-button/test/a11y.html +68 -0
- data/public/bower_components/paper-icon-button/test/basic.html +50 -0
- data/public/bower_components/paper-icon-button/test/index.html +25 -0
- data/public/bower_components/paper-input/.bower.json +26 -0
- data/public/bower_components/paper-input/.gitignore +1 -0
- data/public/bower_components/paper-input/README.md +4 -0
- data/public/bower_components/paper-input/bower.json +15 -0
- data/public/bower_components/paper-input/demo.html +236 -0
- data/public/bower_components/paper-input/index.html +22 -0
- data/public/bower_components/paper-input/metadata.html +20 -0
- data/public/bower_components/paper-input/paper-autogrow-textarea.html +162 -0
- data/public/bower_components/paper-input/paper-char-counter.html +121 -0
- data/public/bower_components/paper-input/paper-input-decorator.css +132 -0
- data/public/bower_components/paper-input/paper-input-decorator.html +547 -0
- data/public/bower_components/paper-input/paper-input.html +145 -0
- data/public/bower_components/paper-input/test/index.html +26 -0
- data/public/bower_components/paper-input/test/paper-autogrow-textarea.html +146 -0
- data/public/bower_components/paper-input/test/paper-input-decorator.html +240 -0
- data/public/bower_components/paper-input/test/paper-input.html +68 -0
- data/public/bower_components/paper-input/test/util.js +15 -0
- data/public/bower_components/paper-radio-button/.bower.json +22 -0
- data/public/bower_components/paper-radio-button/README.md +4 -0
- data/public/bower_components/paper-radio-button/bower.json +12 -0
- data/public/bower_components/paper-radio-button/demo.html +84 -0
- data/public/bower_components/paper-radio-button/index.html +22 -0
- data/public/bower_components/paper-radio-button/metadata.html +17 -0
- data/public/bower_components/paper-radio-button/paper-radio-button.css +108 -0
- data/public/bower_components/paper-radio-button/paper-radio-button.html +166 -0
- data/public/bower_components/paper-ripple/.bower.json +23 -0
- data/public/bower_components/paper-ripple/README.md +4 -0
- data/public/bower_components/paper-ripple/bower.json +13 -0
- data/public/bower_components/paper-ripple/demo.html +414 -0
- data/public/bower_components/paper-ripple/index.html +22 -0
- data/public/bower_components/paper-ripple/metadata.html +20 -0
- data/public/bower_components/paper-ripple/paper-ripple.html +477 -0
- data/public/bower_components/paper-ripple/test/index.html +24 -0
- data/public/bower_components/paper-ripple/test/position.html +109 -0
- data/public/bower_components/paper-shadow/.bower.json +22 -0
- data/public/bower_components/paper-shadow/README.md +4 -0
- data/public/bower_components/paper-shadow/bower.json +11 -0
- data/public/bower_components/paper-shadow/demo.html +134 -0
- data/public/bower_components/paper-shadow/index.html +22 -0
- data/public/bower_components/paper-shadow/metadata.html +17 -0
- data/public/bower_components/paper-shadow/paper-shadow.css +66 -0
- data/public/bower_components/paper-shadow/paper-shadow.html +86 -0
- data/public/bower_components/paper-shadow/test/basic.html +62 -0
- data/public/bower_components/paper-shadow/test/index.html +24 -0
- data/public/bower_components/paper-tabs/.bower.json +26 -0
- data/public/bower_components/paper-tabs/README.md +4 -0
- data/public/bower_components/paper-tabs/bower.json +15 -0
- data/public/bower_components/paper-tabs/demo.html +242 -0
- data/public/bower_components/paper-tabs/index.html +22 -0
- data/public/bower_components/paper-tabs/metadata.html +58 -0
- data/public/bower_components/paper-tabs/paper-tab.css +59 -0
- data/public/bower_components/paper-tabs/paper-tab.html +82 -0
- data/public/bower_components/paper-tabs/paper-tabs.css +80 -0
- data/public/bower_components/paper-tabs/paper-tabs.html +353 -0
- data/public/bower_components/paper-toast/.bower.json +22 -0
- data/public/bower_components/paper-toast/README.md +4 -0
- data/public/bower_components/paper-toast/bower.json +11 -0
- data/public/bower_components/paper-toast/demo.html +63 -0
- data/public/bower_components/paper-toast/index.html +22 -0
- data/public/bower_components/paper-toast/metadata.html +20 -0
- data/public/bower_components/paper-toast/paper-toast.css +80 -0
- data/public/bower_components/paper-toast/paper-toast.html +296 -0
- data/public/bower_components/paper-toggle-button/.bower.json +20 -0
- data/public/bower_components/paper-toggle-button/README.md +4 -0
- data/public/bower_components/paper-toggle-button/bower.json +9 -0
- data/public/bower_components/paper-toggle-button/demo.html +97 -0
- data/public/bower_components/paper-toggle-button/index.html +22 -0
- data/public/bower_components/paper-toggle-button/metadata.html +17 -0
- data/public/bower_components/paper-toggle-button/paper-toggle-button.css +95 -0
- data/public/bower_components/paper-toggle-button/paper-toggle-button.html +179 -0
- data/public/bower_components/polymer/.bower.json +32 -0
- data/public/bower_components/polymer/README.md +21 -0
- data/public/bower_components/polymer/bower.json +23 -0
- data/public/bower_components/polymer/build.log +26 -0
- data/public/bower_components/polymer/layout.html +286 -0
- data/public/bower_components/polymer/polymer.html +12 -0
- data/public/bower_components/polymer/polymer.js +11859 -0
- data/public/bower_components/polymer/polymer.min.js +14 -0
- data/public/bower_components/webcomponentsjs/.bower.json +23 -0
- data/public/bower_components/webcomponentsjs/CustomElements.js +634 -0
- data/public/bower_components/webcomponentsjs/CustomElements.min.js +11 -0
- data/public/bower_components/webcomponentsjs/HTMLImports.js +764 -0
- data/public/bower_components/webcomponentsjs/HTMLImports.min.js +11 -0
- data/public/bower_components/webcomponentsjs/README.md +73 -0
- data/public/bower_components/webcomponentsjs/ShadowDOM.js +4277 -0
- data/public/bower_components/webcomponentsjs/ShadowDOM.min.js +13 -0
- data/public/bower_components/webcomponentsjs/bower.json +14 -0
- data/public/bower_components/webcomponentsjs/build.log +31 -0
- data/public/bower_components/webcomponentsjs/package.json +31 -0
- data/public/bower_components/webcomponentsjs/webcomponents-lite.js +1728 -0
- data/public/bower_components/webcomponentsjs/webcomponents-lite.min.js +11 -0
- data/public/bower_components/webcomponentsjs/webcomponents.js +6114 -0
- data/public/bower_components/webcomponentsjs/webcomponents.min.js +14 -0
- data/public/css/main.css +41 -0
- data/public/elements/ec-dashboard/ec-dashboard.html +269 -0
- data/public/polymer-loader.html +24 -0
- data/public/polymer-loader.vulcanized.html +19 -0
- data/spec/ec/ec_dashboard_spec.rb +78 -0
- data/spec/ec/ec_spec.rb +78 -0
- data/spec/spec_helper.rb +27 -0
- data/views/index.html +88 -0
- metadata +464 -0
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
@license
|
|
3
|
+
Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
|
|
4
|
+
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
|
|
5
|
+
The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
|
|
6
|
+
The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
|
|
7
|
+
Code distributed by Google as part of the polymer project is also
|
|
8
|
+
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
|
|
9
|
+
-->
|
|
10
|
+
<!doctype html>
|
|
11
|
+
<html>
|
|
12
|
+
<head>
|
|
13
|
+
|
|
14
|
+
<meta name="viewport" content="width=device-width, minimum-scale=1.0, initial-scale=1, user-scalable=yes">
|
|
15
|
+
|
|
16
|
+
<title>paper-input</title>
|
|
17
|
+
|
|
18
|
+
<script src="../webcomponentsjs/webcomponents.js"></script>
|
|
19
|
+
|
|
20
|
+
<link href="../font-roboto/roboto.html" rel="import">
|
|
21
|
+
<link href="paper-autogrow-textarea.html" rel="import">
|
|
22
|
+
<link href="paper-input-decorator.html" rel="import">
|
|
23
|
+
<link href="paper-input.html" rel="import">
|
|
24
|
+
<link href="paper-char-counter.html" rel="import">
|
|
25
|
+
|
|
26
|
+
<style shim-shadowdom>
|
|
27
|
+
|
|
28
|
+
body {
|
|
29
|
+
font-family: RobotoDraft, 'Helvetica Neue', Helvetica, Arial;
|
|
30
|
+
font-size: 14px;
|
|
31
|
+
margin: 0;
|
|
32
|
+
padding: 24px;
|
|
33
|
+
-webkit-tap-highlight-color: rgba(0,0,0,0);
|
|
34
|
+
-webkit-touch-callout: none;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
section {
|
|
38
|
+
padding: 20px 0;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
section > div {
|
|
42
|
+
padding: 14px;
|
|
43
|
+
font-size: 16px;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
paper-input {
|
|
47
|
+
width: 80%;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
paper-input-decorator {
|
|
51
|
+
max-width: 80%;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
@media only screen and (min-width : 320px) {
|
|
55
|
+
paper-input {
|
|
56
|
+
width: 100%;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
paper-input-decorator {
|
|
60
|
+
max-width: 100%;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
paper-input.narrow {
|
|
65
|
+
width: 150px;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.custom /deep/ ::-webkit-input-placeholder {
|
|
69
|
+
color: #f4b400;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
.custom /deep/ ::-moz-placeholder {
|
|
73
|
+
color: #f4b400;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
.custom /deep/ :-ms-input-placeholder {
|
|
77
|
+
color: #f4b400;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.custom /deep/ .label-text,
|
|
81
|
+
.custom /deep/ .error {
|
|
82
|
+
color: #f4b400;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
.custom /deep/ .unfocused-underline {
|
|
86
|
+
background-color: #f4b400;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
.custom[focused] /deep/ .floated-label .label-text {
|
|
90
|
+
color: #0f9d58;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
.custom /deep/ .focused-underline {
|
|
94
|
+
background-color: #0f9d58;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
.custom.invalid /deep/ .floated-label .label-text,
|
|
98
|
+
.custom /deep/ .error {
|
|
99
|
+
color: #f06292;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
.custom.invalid /deep/ .focused-underline {
|
|
103
|
+
background-color: #f06292;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
.custom {
|
|
107
|
+
color: #1a237e;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
</style>
|
|
111
|
+
|
|
112
|
+
</head>
|
|
113
|
+
<body unresolved>
|
|
114
|
+
|
|
115
|
+
<section>
|
|
116
|
+
|
|
117
|
+
<div>Standalone</div>
|
|
118
|
+
|
|
119
|
+
<br>
|
|
120
|
+
|
|
121
|
+
<paper-input label="label"></paper-input>
|
|
122
|
+
|
|
123
|
+
<br>
|
|
124
|
+
|
|
125
|
+
<paper-input label="floating label" floatingLabel></paper-input>
|
|
126
|
+
|
|
127
|
+
<br>
|
|
128
|
+
|
|
129
|
+
<paper-input label="disabled" disabled></paper-input>
|
|
130
|
+
|
|
131
|
+
</section>
|
|
132
|
+
|
|
133
|
+
<section>
|
|
134
|
+
|
|
135
|
+
<div>Decorator</div>
|
|
136
|
+
|
|
137
|
+
<br>
|
|
138
|
+
|
|
139
|
+
<paper-input-decorator label="with core-input">
|
|
140
|
+
<input is="core-input">
|
|
141
|
+
</paper-input-decorator>
|
|
142
|
+
|
|
143
|
+
<br>
|
|
144
|
+
|
|
145
|
+
<paper-input-decorator label="with core-input + floatingLabel" floatingLabel>
|
|
146
|
+
<input is="core-input">
|
|
147
|
+
</paper-input-decorator>
|
|
148
|
+
|
|
149
|
+
<br>
|
|
150
|
+
|
|
151
|
+
<paper-input-decorator label="with autogrowing text area">
|
|
152
|
+
<paper-autogrow-textarea>
|
|
153
|
+
<textarea></textarea>
|
|
154
|
+
</paper-autogrow-textarea>
|
|
155
|
+
</paper-input-decorator>
|
|
156
|
+
|
|
157
|
+
<br>
|
|
158
|
+
|
|
159
|
+
<paper-input-decorator label="with autogrowing text area + floatingLabel" floatingLabel>
|
|
160
|
+
<paper-autogrow-textarea>
|
|
161
|
+
<textarea></textarea>
|
|
162
|
+
</paper-autogrow-textarea>
|
|
163
|
+
</paper-input-decorator>
|
|
164
|
+
|
|
165
|
+
</section>
|
|
166
|
+
|
|
167
|
+
<section>
|
|
168
|
+
|
|
169
|
+
<div>Character counter</div>
|
|
170
|
+
|
|
171
|
+
<paper-input-decorator label="input with visible character counter">
|
|
172
|
+
<input id="i1" is="core-input" maxlength="5">
|
|
173
|
+
<paper-char-counter class="counter" target="i1"></paper-char-counter>
|
|
174
|
+
</paper-input-decorator>
|
|
175
|
+
|
|
176
|
+
<br>
|
|
177
|
+
|
|
178
|
+
<paper-input-decorator label="input with character counter and custom error"
|
|
179
|
+
error="maximum characters exceeded">
|
|
180
|
+
<input id="i2" is="core-input" maxlength="10">
|
|
181
|
+
<paper-char-counter class="counter" target="i2"></paper-char-counter>
|
|
182
|
+
</paper-input-decorator>
|
|
183
|
+
|
|
184
|
+
<br>
|
|
185
|
+
|
|
186
|
+
<paper-input-decorator label="input with hidden character counter"
|
|
187
|
+
error="maximum characters exceeded">
|
|
188
|
+
<input id="i3" is="core-input" maxlength="10">
|
|
189
|
+
<paper-char-counter class="counter" showCounter="false" target="i3"></paper-char-counter>
|
|
190
|
+
</paper-input-decorator>
|
|
191
|
+
|
|
192
|
+
<paper-input-decorator label="autogrowing text area with character counter">
|
|
193
|
+
<paper-autogrow-textarea>
|
|
194
|
+
<textarea id="t1" maxlength="100"></textarea>
|
|
195
|
+
</paper-autogrow-textarea>
|
|
196
|
+
<paper-char-counter class="counter" target="t1"></paper-char-counter>
|
|
197
|
+
</paper-input-decorator>
|
|
198
|
+
|
|
199
|
+
</section>
|
|
200
|
+
|
|
201
|
+
<section>
|
|
202
|
+
|
|
203
|
+
<div>Auto-Validation</div>
|
|
204
|
+
|
|
205
|
+
<paper-input-decorator label="required" floatingLabel error="input is required!" autoValidate>
|
|
206
|
+
<input is="core-input" required>
|
|
207
|
+
</paper-input-decorator>
|
|
208
|
+
|
|
209
|
+
</section>
|
|
210
|
+
|
|
211
|
+
<section>
|
|
212
|
+
|
|
213
|
+
<div>Custom styling</div>
|
|
214
|
+
|
|
215
|
+
<br>
|
|
216
|
+
|
|
217
|
+
<paper-input class="custom" label="paper-input"></paper-input>
|
|
218
|
+
|
|
219
|
+
<br>
|
|
220
|
+
|
|
221
|
+
<paper-input-decorator class="custom" label="decorator">
|
|
222
|
+
<input is="core-input">
|
|
223
|
+
</paper-input-decorator>
|
|
224
|
+
|
|
225
|
+
</section>
|
|
226
|
+
|
|
227
|
+
<script>
|
|
228
|
+
|
|
229
|
+
document.body.addEventListener('change', function(e) {
|
|
230
|
+
console.log('change', e.target);
|
|
231
|
+
});
|
|
232
|
+
|
|
233
|
+
</script>
|
|
234
|
+
|
|
235
|
+
</body>
|
|
236
|
+
</html>
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<!--
|
|
3
|
+
Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
|
|
4
|
+
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE
|
|
5
|
+
The complete set of authors may be found at http://polymer.github.io/AUTHORS
|
|
6
|
+
The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS
|
|
7
|
+
Code distributed by Google as part of the polymer project is also
|
|
8
|
+
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS
|
|
9
|
+
-->
|
|
10
|
+
<html>
|
|
11
|
+
<head>
|
|
12
|
+
|
|
13
|
+
<script src="../webcomponentsjs/webcomponents.js"></script>
|
|
14
|
+
<link rel="import" href="../core-component-page/core-component-page.html">
|
|
15
|
+
|
|
16
|
+
</head>
|
|
17
|
+
<body unresolved>
|
|
18
|
+
|
|
19
|
+
<core-component-page sources='["paper-input.html","paper-input-decorator.html","../core-input/core-input.html"]'></core-component-page>
|
|
20
|
+
|
|
21
|
+
</body>
|
|
22
|
+
</html>
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
@license
|
|
3
|
+
Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
|
|
4
|
+
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
|
|
5
|
+
The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
|
|
6
|
+
The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
|
|
7
|
+
Code distributed by Google as part of the polymer project is also
|
|
8
|
+
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
|
|
9
|
+
-->
|
|
10
|
+
<x-meta id="paper-input" label="Input" group="Paper" isEditor>
|
|
11
|
+
|
|
12
|
+
<template>
|
|
13
|
+
<paper-input label="Type something..."></paper-input>
|
|
14
|
+
</template>
|
|
15
|
+
|
|
16
|
+
<template id="imports">
|
|
17
|
+
<link rel="import" href="paper-input.html">
|
|
18
|
+
</template>
|
|
19
|
+
|
|
20
|
+
</x-meta>
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
|
|
3
|
+
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE
|
|
4
|
+
The complete set of authors may be found at http://polymer.github.io/AUTHORS
|
|
5
|
+
The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS
|
|
6
|
+
Code distributed by Google as part of the polymer project is also
|
|
7
|
+
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS
|
|
8
|
+
-->
|
|
9
|
+
|
|
10
|
+
<!--
|
|
11
|
+
`paper-autogrow-textarea` is an element containing a textarea that grows in height as more
|
|
12
|
+
lines of input are entered. Unless an explicit height or the `maxRows` property is set, it will
|
|
13
|
+
never scroll.
|
|
14
|
+
|
|
15
|
+
Example:
|
|
16
|
+
|
|
17
|
+
<paper-autogrow-textarea id="a1">
|
|
18
|
+
<textarea id="t1"></textarea>
|
|
19
|
+
</paper-autogrow-textarea>
|
|
20
|
+
|
|
21
|
+
Because the `textarea`'s `value` property is not observable, if you set the `value` imperatively
|
|
22
|
+
you must call `update` to notify this element the value has changed.
|
|
23
|
+
|
|
24
|
+
Example:
|
|
25
|
+
|
|
26
|
+
/* using example HTML above */
|
|
27
|
+
t1.value = 'some\ntext';
|
|
28
|
+
a1.update();
|
|
29
|
+
|
|
30
|
+
@group Paper Elements
|
|
31
|
+
@element paper-autogrow-textarea
|
|
32
|
+
@status unstable
|
|
33
|
+
-->
|
|
34
|
+
|
|
35
|
+
<link href="../polymer/polymer.html" rel="import">
|
|
36
|
+
|
|
37
|
+
<polymer-element name="paper-autogrow-textarea" on-input="{{inputAction}}">
|
|
38
|
+
<template>
|
|
39
|
+
|
|
40
|
+
<style>
|
|
41
|
+
:host {
|
|
42
|
+
display: inline-block;
|
|
43
|
+
position: relative;
|
|
44
|
+
width: 400px;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.mirror-text {
|
|
48
|
+
visibility: hidden;
|
|
49
|
+
word-wrap: break-word;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
::content textarea {
|
|
53
|
+
padding: 0;
|
|
54
|
+
margin: 0;
|
|
55
|
+
border: none;
|
|
56
|
+
outline: none;
|
|
57
|
+
resize: none;
|
|
58
|
+
/* see comments in template */
|
|
59
|
+
width: 100%;
|
|
60
|
+
height: 100%;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
::content textarea:invalid {
|
|
64
|
+
box-shadow: none;
|
|
65
|
+
}
|
|
66
|
+
</style>
|
|
67
|
+
|
|
68
|
+
<!-- the mirror sizes the input/textarea so it grows with typing -->
|
|
69
|
+
<div id="mirror" class="mirror-text" aria-hidden="true"> </div>
|
|
70
|
+
|
|
71
|
+
<!-- size the input/textarea with a div, because the textarea has intrinsic size in ff -->
|
|
72
|
+
<div class="textarea-container" fit>
|
|
73
|
+
<content></content>
|
|
74
|
+
</div>
|
|
75
|
+
|
|
76
|
+
</template>
|
|
77
|
+
<script>
|
|
78
|
+
|
|
79
|
+
Polymer({
|
|
80
|
+
|
|
81
|
+
publish: {
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* The textarea that should auto grow.
|
|
85
|
+
*
|
|
86
|
+
* @attribute target
|
|
87
|
+
* @type HTMLTextAreaElement
|
|
88
|
+
* @default null
|
|
89
|
+
*/
|
|
90
|
+
target: null,
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* The initial number of rows.
|
|
94
|
+
*
|
|
95
|
+
* @attribute rows
|
|
96
|
+
* @type number
|
|
97
|
+
* @default 1
|
|
98
|
+
*/
|
|
99
|
+
rows: 1,
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* The maximum number of rows this element can grow to until it
|
|
103
|
+
* scrolls. 0 means no maximum.
|
|
104
|
+
*
|
|
105
|
+
* @attribute maxRows
|
|
106
|
+
* @type number
|
|
107
|
+
* @default 0
|
|
108
|
+
*/
|
|
109
|
+
maxRows: 0
|
|
110
|
+
},
|
|
111
|
+
|
|
112
|
+
tokens: null,
|
|
113
|
+
|
|
114
|
+
observe: {
|
|
115
|
+
rows: 'updateCached',
|
|
116
|
+
maxRows: 'updateCached'
|
|
117
|
+
},
|
|
118
|
+
|
|
119
|
+
constrain: function(tokens) {
|
|
120
|
+
var _tokens;
|
|
121
|
+
tokens = tokens || [''];
|
|
122
|
+
// Enforce the min and max heights for a multiline input to avoid measurement
|
|
123
|
+
if (this.maxRows > 0 && tokens.length > this.maxRows) {
|
|
124
|
+
_tokens = tokens.slice(0, this.maxRows);
|
|
125
|
+
} else {
|
|
126
|
+
_tokens = tokens.slice(0);
|
|
127
|
+
}
|
|
128
|
+
while (this.rows > 0 && _tokens.length < this.rows) {
|
|
129
|
+
_tokens.push('');
|
|
130
|
+
}
|
|
131
|
+
return _tokens.join('<br>') + ' ';
|
|
132
|
+
},
|
|
133
|
+
|
|
134
|
+
valueForMirror: function(input) {
|
|
135
|
+
this.tokens = (input && input.value) ? input.value.replace(/&/gm, '&').replace(/"/gm, '"').replace(/'/gm, ''').replace(/</gm, '<').replace(/>/gm, '>').split('\n') : [''];
|
|
136
|
+
return this.constrain(this.tokens);
|
|
137
|
+
},
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* Sizes this element to fit the input value. This function is automatically called
|
|
141
|
+
* when the user types in new input, but you must call this function if the value
|
|
142
|
+
* is updated imperatively.
|
|
143
|
+
*
|
|
144
|
+
* @method update
|
|
145
|
+
* @param Element The input
|
|
146
|
+
*/
|
|
147
|
+
update: function(input) {
|
|
148
|
+
this.$.mirror.innerHTML = this.valueForMirror(input);
|
|
149
|
+
},
|
|
150
|
+
|
|
151
|
+
updateCached: function() {
|
|
152
|
+
this.$.mirror.innerHTML = this.constrain(this.tokens);
|
|
153
|
+
},
|
|
154
|
+
|
|
155
|
+
inputAction: function(e) {
|
|
156
|
+
this.update(e.target);
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
});
|
|
160
|
+
|
|
161
|
+
</script>
|
|
162
|
+
</polymer-element>
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
|
|
3
|
+
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE
|
|
4
|
+
The complete set of authors may be found at http://polymer.github.io/AUTHORS
|
|
5
|
+
The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS
|
|
6
|
+
Code distributed by Google as part of the polymer project is also
|
|
7
|
+
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS
|
|
8
|
+
-->
|
|
9
|
+
|
|
10
|
+
<!--
|
|
11
|
+
|
|
12
|
+
Material Design: <a href="http://www.google.com/design/spec/components/text-fields.html#text-fields-character-counter">Character counter</a>
|
|
13
|
+
|
|
14
|
+
`paper-char-counter` adds a character counter for paper input fields with a character restriction in place.
|
|
15
|
+
|
|
16
|
+
Example:
|
|
17
|
+
|
|
18
|
+
<paper-input-decorator>
|
|
19
|
+
<input id="input1" is="core-input" maxlength="5">
|
|
20
|
+
<paper-char-counter class="footer" target="input1"></paper-char-counter>
|
|
21
|
+
</paper-input-decorator>
|
|
22
|
+
|
|
23
|
+
Theming
|
|
24
|
+
-------
|
|
25
|
+
|
|
26
|
+
`paper-char-counter` uses `paper-input-decorator`'s error `core-style` for global theming.
|
|
27
|
+
|
|
28
|
+
@group Paper Elements
|
|
29
|
+
@element paper-char-counter
|
|
30
|
+
@homepage github.io
|
|
31
|
+
-->
|
|
32
|
+
<link href="../polymer/polymer.html" rel="import">
|
|
33
|
+
<link href="../core-style/core-style.html" rel="import">
|
|
34
|
+
|
|
35
|
+
<core-style id="paper-char-counter">
|
|
36
|
+
:host(.invalid) {
|
|
37
|
+
color: {{g.paperInput.invalidColor}};
|
|
38
|
+
}
|
|
39
|
+
</core-style>
|
|
40
|
+
|
|
41
|
+
<polymer-element name="paper-char-counter">
|
|
42
|
+
|
|
43
|
+
<template>
|
|
44
|
+
|
|
45
|
+
<style>
|
|
46
|
+
:host {
|
|
47
|
+
display: inline-block;
|
|
48
|
+
float: right;
|
|
49
|
+
color: #757575;
|
|
50
|
+
font-size: 0.75em;
|
|
51
|
+
padding: 0.5em 0 0.5em 0.5em;
|
|
52
|
+
}
|
|
53
|
+
</style>
|
|
54
|
+
|
|
55
|
+
<core-style ref="paper-char-counter"></core-style>
|
|
56
|
+
|
|
57
|
+
<div class="counter-text" aria-hidden="true" hidden?="{{!showCounter || !_maxChars}}">
|
|
58
|
+
<span>{{_charCount}} / {{_maxChars}}</span>
|
|
59
|
+
</div>
|
|
60
|
+
|
|
61
|
+
</template>
|
|
62
|
+
|
|
63
|
+
<script>
|
|
64
|
+
|
|
65
|
+
Polymer({
|
|
66
|
+
|
|
67
|
+
publish: {
|
|
68
|
+
/**
|
|
69
|
+
* The id of the textinput or textarea that should be monitored.
|
|
70
|
+
*
|
|
71
|
+
* @attribute target
|
|
72
|
+
* @type string
|
|
73
|
+
* @default null
|
|
74
|
+
*/
|
|
75
|
+
target: null,
|
|
76
|
+
|
|
77
|
+
/**
|
|
78
|
+
* If false, don't show the character counter. Used in conjunction with
|
|
79
|
+
* `paper-input-decorator's` `error` field.
|
|
80
|
+
*
|
|
81
|
+
* @attribute showCounter
|
|
82
|
+
* @type boolean
|
|
83
|
+
* @default true
|
|
84
|
+
*/
|
|
85
|
+
showCounter: true
|
|
86
|
+
},
|
|
87
|
+
|
|
88
|
+
/* Number of characters in the current input */
|
|
89
|
+
_charCount: 0,
|
|
90
|
+
|
|
91
|
+
/* Equal to the target element's maxLength attribute. */
|
|
92
|
+
_maxChars: 0,
|
|
93
|
+
|
|
94
|
+
/* True if the number of characters in the input exceeds _maxChars */
|
|
95
|
+
_isCounterInvalid: false,
|
|
96
|
+
|
|
97
|
+
ready: function() {
|
|
98
|
+
if (!this.target)
|
|
99
|
+
return;
|
|
100
|
+
var targetElement = document.getElementById(this.target);
|
|
101
|
+
this._maxChars = targetElement.maxLength;
|
|
102
|
+
targetElement.addEventListener('input', this.inputAction.bind(this));
|
|
103
|
+
},
|
|
104
|
+
|
|
105
|
+
inputAction: function(e) {
|
|
106
|
+
this._charCount = e.target.value.length;
|
|
107
|
+
this._isCounterInvalid = this._maxChars && this._charCount >= this._maxChars;
|
|
108
|
+
},
|
|
109
|
+
|
|
110
|
+
_isCounterInvalidChanged: function() {
|
|
111
|
+
debugger
|
|
112
|
+
this.classList.toggle('invalid', this._isCounterInvalid);
|
|
113
|
+
this.fire('char-counter-error',
|
|
114
|
+
{"hasError": this._isCounterInvalid,
|
|
115
|
+
"hideErrorIcon": this.showCounter});
|
|
116
|
+
}
|
|
117
|
+
});
|
|
118
|
+
|
|
119
|
+
</script>
|
|
120
|
+
|
|
121
|
+
</polymer-element>
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright (c) 2014 The Polymer Project Authors. All rights reserved.
|
|
4
|
+
* This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
|
|
5
|
+
* The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
|
|
6
|
+
* The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
|
|
7
|
+
* Code distributed by Google as part of the polymer project is also
|
|
8
|
+
* subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
:host {
|
|
12
|
+
display: inline-block;
|
|
13
|
+
outline: none;
|
|
14
|
+
text-align: inherit;
|
|
15
|
+
padding: 0.75em 0;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
polyfill-next-selector {
|
|
19
|
+
content: '.input-body > :not(.label)';
|
|
20
|
+
}
|
|
21
|
+
::content > *,
|
|
22
|
+
::content > input[is="core-input"] {
|
|
23
|
+
padding: 0;
|
|
24
|
+
margin: 0.5em 0 0.25em;
|
|
25
|
+
width: 100%;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
polyfill-next-selector {
|
|
29
|
+
content: 'input, textarea';
|
|
30
|
+
}
|
|
31
|
+
::content input,
|
|
32
|
+
::content input[is=core-input],
|
|
33
|
+
::content textarea {
|
|
34
|
+
font: inherit;
|
|
35
|
+
color: inherit;
|
|
36
|
+
background-color: transparent;
|
|
37
|
+
border: none;
|
|
38
|
+
outline: none;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
polyfill-next-selector {
|
|
42
|
+
content: ':invalid';
|
|
43
|
+
}
|
|
44
|
+
::content input:invalid,
|
|
45
|
+
::content textarea:invalid {
|
|
46
|
+
box-shadow: none;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
polyfill-next-selector {
|
|
50
|
+
content: 'textarea';
|
|
51
|
+
}
|
|
52
|
+
::content textarea {
|
|
53
|
+
resize: none;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
[invisible] {
|
|
57
|
+
visibility: hidden;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
[animated] {
|
|
61
|
+
visibility: visible !important;
|
|
62
|
+
-webkit-transition: -webkit-transform 0.2s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1);
|
|
63
|
+
transition: transform 0.2s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.2s cubic-bezier(0.4, 0, 0.2, 1);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
.floated-label {
|
|
67
|
+
font-size: 0.75em;
|
|
68
|
+
background: transparent;
|
|
69
|
+
white-space: nowrap;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
.mirror-text {
|
|
73
|
+
padding: 0.5em 0 0.25em;
|
|
74
|
+
max-width: 100%;
|
|
75
|
+
white-space: nowrap;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
:host([multiline]) .mirror-text {
|
|
79
|
+
white-space: pre-wrap;
|
|
80
|
+
word-wrap: break-word;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
.label {
|
|
84
|
+
padding: 0.5em 0 0.25em;
|
|
85
|
+
background: transparent;
|
|
86
|
+
pointer-events: none;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
.label-text {
|
|
90
|
+
overflow: hidden;
|
|
91
|
+
text-overflow: ellipsis;
|
|
92
|
+
white-space: nowrap;
|
|
93
|
+
display: inline-block;
|
|
94
|
+
max-width: 100%;
|
|
95
|
+
-moz-transform-origin: 0% 0%;
|
|
96
|
+
-webkit-transform-origin: 0% 0%;
|
|
97
|
+
transform-origin: 0% 0%;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
.underline {
|
|
101
|
+
height: 0px;
|
|
102
|
+
overflow: visible;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
:host([disabled]) .underline {
|
|
106
|
+
border-bottom: 1px dashed #757575;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
.unfocused-underline {
|
|
110
|
+
height: 1px;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
.focused-underline {
|
|
114
|
+
height: 2px;
|
|
115
|
+
-webkit-transform: none;
|
|
116
|
+
transform: none;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
.focused-underline[invisible] {
|
|
120
|
+
-webkit-transform: scale3d(0,1,1);
|
|
121
|
+
transform: scale3d(0,1,1);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
.error-text {
|
|
125
|
+
font-size: 0.75em;
|
|
126
|
+
padding: 0.5em 0;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
.error-icon {
|
|
130
|
+
height: 20px;
|
|
131
|
+
width: 20px;
|
|
132
|
+
}
|