Fix OOP <webview> resize and autosize.
[chromium-blink-merge.git] / third_party / polymer / v1_0 / components-chromium / paper-checkbox / paper-checkbox-extracted.js
blobe9219ee28d308560b0d0c0f795c1ea0b90bb9096
1 Polymer({
2       is: 'paper-checkbox',
4       behaviors: [
5         Polymer.PaperInkyFocusBehavior,
6         Polymer.IronCheckedElementBehavior
7       ],
9       hostAttributes: {
10         role: 'checkbox',
11         'aria-checked': false,
12         tabindex: 0
13       },
15       properties: {
16         /**
17          * Fired when the checked state changes due to user interaction.
18          *
19          * @event change
20          */
22         /**
23          * Fired when the checked state changes.
24          *
25          * @event iron-change
26          */
27         ariaActiveAttribute: {
28           type: String,
29           value: 'aria-checked'
30         }
31       },
33       attached: function() {
34         this._isReady = true;
36         // Don't stomp over a user-set aria-label.
37         if (!this.getAttribute('aria-label')) {
38           this.updateAriaLabel();
39         }
40       },
42       /**
43        * Update the checkbox aria-label. This is a temporary workaround not
44        * being able to observe changes in <content>
45        * (see: https://github.com/Polymer/polymer/issues/1773)
46        *
47        * Call this if you manually change the contents of the checkbox
48        * and want the aria-label to match the new contents.
49        */
50       updateAriaLabel: function() {
51         this.setAttribute('aria-label', Polymer.dom(this).textContent.trim());
52       },
54       // button-behavior hook
55       _buttonStateChanged: function() {
56         if (this.disabled) {
57           return;
58         }
59         if (this._isReady) {
60           this.checked = this.active;
61         }
62       },
64       _computeCheckboxClass: function(checked, invalid) {
65         var className = '';
66         if (checked) {
67           className += 'checked ';
68         }
69         if (invalid) {
70           className += 'invalid';
71         }
72         return className;
73       },
75       _computeCheckmarkClass: function(checked) {
76         return checked ? '' : 'hidden';
77       }
78     });