11320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 21320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 31320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci Polymer('paper-toggle-button', { 41320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 51320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci /** 61320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * Fired when the checked state changes. 71320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * 81320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * @event change 91320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci */ 101320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 111320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci /** 121320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * Gets or sets the state, `true` is checked and `false` is unchecked. 131320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * 141320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * @attribute checked 151320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * @type boolean 161320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci * @default false 171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci */ 181320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci checked: false, 191320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 201320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci trackStart: function(e) { 211320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci this._w = this.$.toggleBar.offsetLeft + this.$.toggleBar.offsetWidth; 221320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci e.preventTap(); 231320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci }, 241320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 251320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci trackx: function(e) { 261320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci this._x = Math.min(this._w, 271320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci Math.max(0, this.checked ? this._w + e.dx : e.dx)); 281320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci this.$.toggleRadio.classList.add('dragging'); 291320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci var s = this.$.toggleRadio.style; 301320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci s.webkitTransform = s.transform = 'translate3d(' + this._x + 'px,0,0)'; 311320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci }, 321320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 331320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci trackEnd: function() { 341320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci var s = this.$.toggleRadio.style; 351320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci s.webkitTransform = s.transform = null; 361320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci this.$.toggleRadio.classList.remove('dragging'); 371320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci this.checked = Math.abs(this._x) > this._w / 2; 381320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci }, 391320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 401320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci checkedChanged: function() { 411320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci this.setAttribute('aria-pressed', Boolean(this.checked)); 421320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci this.fire('change'); 431320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 441320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 451320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci }); 461320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 47