| <!-- |
| @license |
| Copyright (c) 2015 The Polymer Project Authors. All rights reserved. |
| This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt |
| The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt |
| The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt |
| Code distributed by Google as part of the polymer project is also |
| subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt |
| --> |
| |
| <link rel="import" href="../polymer/polymer.html"> |
| <link rel="import" href="../iron-checked-element-behavior/iron-checked-element-behavior.html"> |
| <link rel="import" href="paper-inky-focus-behavior.html"> |
| |
| <script> |
| |
| /** |
| * Use `Polymer.PaperCheckedElementBehavior` to implement a custom element |
| * that has a `checked` property similar to `Polymer.IronCheckedElementBehavior` |
| * and is compatible with having a ripple effect. |
| * @polymerBehavior Polymer.PaperCheckedElementBehavior |
| */ |
| Polymer.PaperCheckedElementBehaviorImpl = { |
| |
| /** |
| * Synchronizes the element's checked state with its ripple effect. |
| */ |
| _checkedChanged: function() { |
| Polymer.IronCheckedElementBehaviorImpl._checkedChanged.call(this); |
| if (this.hasRipple()) { |
| if (this.checked) { |
| this._ripple.setAttribute('checked', ''); |
| } else { |
| this._ripple.removeAttribute('checked'); |
| } |
| } |
| }, |
| |
| /** |
| * Synchronizes the element's `active` and `checked` state. |
| */ |
| _buttonStateChanged: function() { |
| Polymer.PaperRippleBehavior._buttonStateChanged.call(this); |
| if (this.disabled) { |
| return; |
| } |
| if (this.isAttached) { |
| this.checked = this.active; |
| } |
| } |
| |
| }; |
| |
| /** @polymerBehavior Polymer.PaperCheckedElementBehavior */ |
| Polymer.PaperCheckedElementBehavior = [ |
| Polymer.PaperInkyFocusBehavior, |
| Polymer.IronCheckedElementBehavior, |
| Polymer.PaperCheckedElementBehaviorImpl |
| ]; |
| |
| </script> |