ApplicationImpl cleanup, part 1:
[chromium-blink-merge.git] / third_party / polymer / v1_0 / components-chromium / paper-radio-button / paper-radio-button-extracted.js
blob7d98f649cdfa480647ae69197b1f2388220954e3
2 Polymer({
3 is: 'paper-radio-button',
5 behaviors: [
6 Polymer.PaperInkyFocusBehavior
7 ],
9 hostAttributes: {
10 role: 'radio',
11 'aria-checked': false,
12 tabindex: 0
15 properties: {
16 /**
17 * Fired when the checked state changes due to user interaction.
19 * @event change
22 /**
23 * Fired when the checked state changes.
25 * @event iron-change
28 /**
29 * Gets or sets the state, `true` is checked and `false` is unchecked.
31 checked: {
32 type: Boolean,
33 value: false,
34 reflectToAttribute: true,
35 notify: true,
36 observer: '_checkedChanged'
39 /**
40 * If true, the button toggles the active state with each tap or press
41 * of the spacebar.
43 toggles: {
44 type: Boolean,
45 value: true,
46 reflectToAttribute: true
50 ready: function() {
51 if (Polymer.dom(this).textContent == '') {
52 this.$.radioLabel.hidden = true;
53 } else {
54 this.setAttribute('aria-label', Polymer.dom(this).textContent);
56 this._isReady = true;
59 _buttonStateChanged: function() {
60 if (this.disabled) {
61 return;
63 if (this._isReady) {
64 this.checked = this.active;
68 _checkedChanged: function() {
69 this.setAttribute('aria-checked', this.checked ? 'true' : 'false');
70 this.active = this.checked;
71 this.fire('iron-change');