| Index: third_party/polymer/v1_0/components/iron-selector/iron-selectable.html
 | 
| diff --git a/third_party/polymer/v1_0/components/iron-selector/iron-selectable.html b/third_party/polymer/v1_0/components/iron-selector/iron-selectable.html
 | 
| deleted file mode 100644
 | 
| index f0506d58d9b5fab5a1701e5c4437f7e10f1b4f91..0000000000000000000000000000000000000000
 | 
| --- a/third_party/polymer/v1_0/components/iron-selector/iron-selectable.html
 | 
| +++ /dev/null
 | 
| @@ -1,307 +0,0 @@
 | 
| -<!--
 | 
| -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-selection.html">
 | 
| -
 | 
| -<script>
 | 
| -
 | 
| -  /** @polymerBehavior */
 | 
| -  Polymer.IronSelectableBehavior = {
 | 
| -
 | 
| -    properties: {
 | 
| -
 | 
| -      /**
 | 
| -       * If you want to use the attribute value of an element for `selected` instead of the index,
 | 
| -       * set this to the name of the attribute.
 | 
| -       *
 | 
| -       * @attribute attrForSelected
 | 
| -       * @type {string}
 | 
| -       */
 | 
| -      attrForSelected: {
 | 
| -        type: String,
 | 
| -        value: null
 | 
| -      },
 | 
| -
 | 
| -      /**
 | 
| -       * Gets or sets the selected element. The default is to use the index of the item.
 | 
| -       *
 | 
| -       * @attribute selected
 | 
| -       * @type {string}
 | 
| -       */
 | 
| -      selected: {
 | 
| -        type: String,
 | 
| -        notify: true
 | 
| -      },
 | 
| -
 | 
| -      /**
 | 
| -       * Returns the currently selected item.
 | 
| -       *
 | 
| -       * @attribute selectedItem
 | 
| -       * @type {Object}
 | 
| -       */
 | 
| -      selectedItem: {
 | 
| -        type: Object,
 | 
| -        readOnly: true,
 | 
| -        notify: true
 | 
| -      },
 | 
| -
 | 
| -      /**
 | 
| -       * The event that fires from items when they are selected. Selectable
 | 
| -       * will listen for this event from items and update the selection state.
 | 
| -       * Set to empty string to listen to no events.
 | 
| -       *
 | 
| -       * @attribute activateEvent
 | 
| -       * @type {string}
 | 
| -       * @default 'tap'
 | 
| -       */
 | 
| -      activateEvent: {
 | 
| -        type: String,
 | 
| -        value: 'tap',
 | 
| -        observer: '_activateEventChanged'
 | 
| -      },
 | 
| -
 | 
| -      /**
 | 
| -       * This is a CSS selector sting.  If this is set, only items that matches the CSS selector
 | 
| -       * are selectable.
 | 
| -       *
 | 
| -       * @attribute selectable
 | 
| -       * @type {string}
 | 
| -       */
 | 
| -      selectable: String,
 | 
| -
 | 
| -      /**
 | 
| -       * The class to set on elements when selected.
 | 
| -       *
 | 
| -       * @attribute selectedClass
 | 
| -       * @type {string}
 | 
| -       */
 | 
| -      selectedClass: {
 | 
| -        type: String,
 | 
| -        value: 'iron-selected'
 | 
| -      },
 | 
| -
 | 
| -      /**
 | 
| -       * The attribute to set on elements when selected.
 | 
| -       *
 | 
| -       * @attribute selectedAttribute
 | 
| -       * @type {string}
 | 
| -       */
 | 
| -      selectedAttribute: {
 | 
| -        type: String,
 | 
| -        value: null
 | 
| -      }
 | 
| -
 | 
| -    },
 | 
| -
 | 
| -    observers: [
 | 
| -      '_updateSelected(attrForSelected, selected)'
 | 
| -    ],
 | 
| -
 | 
| -    excludedLocalNames: {
 | 
| -      'template': 1
 | 
| -    },
 | 
| -
 | 
| -    created: function() {
 | 
| -      this._bindFilterItem = this._filterItem.bind(this);
 | 
| -      this._selection = new Polymer.IronSelection(this._applySelection.bind(this));
 | 
| -    },
 | 
| -
 | 
| -    attached: function() {
 | 
| -      this._observer = this._observeItems(this);
 | 
| -      this._contentObserver = this._observeContent(this);
 | 
| -    },
 | 
| -
 | 
| -    detached: function() {
 | 
| -      if (this._observer) {
 | 
| -        this._observer.disconnect();
 | 
| -      }
 | 
| -      if (this._contentObserver) {
 | 
| -        this._contentObserver.disconnect();
 | 
| -      }
 | 
| -      this._removeListener(this.activateEvent);
 | 
| -    },
 | 
| -
 | 
| -    /**
 | 
| -     * Returns an array of selectable items.
 | 
| -     *
 | 
| -     * @property items
 | 
| -     * @type Array
 | 
| -     */
 | 
| -    get items() {
 | 
| -      var nodes = Polymer.dom(this).queryDistributedElements(this.selectable || '*');
 | 
| -      return Array.prototype.filter.call(nodes, this._bindFilterItem);
 | 
| -    },
 | 
| -
 | 
| -    /**
 | 
| -     * Returns the index of the given item.
 | 
| -     *
 | 
| -     * @method indexOf
 | 
| -     * @param {Object} item
 | 
| -     * @returns Returns the index of the item
 | 
| -     */
 | 
| -    indexOf: function(item) {
 | 
| -      return this.items.indexOf(item);
 | 
| -    },
 | 
| -
 | 
| -    /**
 | 
| -     * Selects the given value.
 | 
| -     *
 | 
| -     * @method select
 | 
| -     * @param {string} value the value to select.
 | 
| -     */
 | 
| -    select: function(value) {
 | 
| -      this.selected = value;
 | 
| -    },
 | 
| -
 | 
| -    /**
 | 
| -     * Selects the previous item.
 | 
| -     *
 | 
| -     * @method selectPrevious
 | 
| -     */
 | 
| -    selectPrevious: function() {
 | 
| -      var length = this.items.length;
 | 
| -      var index = (Number(this._valueToIndex(this.selected)) - 1 + length) % length;
 | 
| -      this.selected = this._indexToValue(index);
 | 
| -    },
 | 
| -
 | 
| -    /**
 | 
| -     * Selects the next item.
 | 
| -     *
 | 
| -     * @method selectNext
 | 
| -     */
 | 
| -    selectNext: function() {
 | 
| -      var index = (Number(this._valueToIndex(this.selected)) + 1) % this.items.length;
 | 
| -      this.selected = this._indexToValue(index);
 | 
| -    },
 | 
| -
 | 
| -    _addListener: function(eventName) {
 | 
| -      this.listen(this, eventName, '_activateHandler');
 | 
| -    },
 | 
| -
 | 
| -    _removeListener: function(eventName) {
 | 
| -      // There is no unlisten yet...
 | 
| -      // https://github.com/Polymer/polymer/issues/1639
 | 
| -      //this.removeEventListener(eventName, this._bindActivateHandler);
 | 
| -    },
 | 
| -
 | 
| -    _activateEventChanged: function(eventName, old) {
 | 
| -      this._removeListener(old);
 | 
| -      this._addListener(eventName);
 | 
| -    },
 | 
| -
 | 
| -    _updateSelected: function() {
 | 
| -      this._selectSelected(this.selected);
 | 
| -    },
 | 
| -
 | 
| -    _selectSelected: function(selected) {
 | 
| -      this._selection.select(this._valueToItem(this.selected));
 | 
| -    },
 | 
| -
 | 
| -    _filterItem: function(node) {
 | 
| -      return !this.excludedLocalNames[node.localName];
 | 
| -    },
 | 
| -
 | 
| -    _valueToItem: function(value) {
 | 
| -      return (value == null) ? null : this.items[this._valueToIndex(value)];
 | 
| -    },
 | 
| -
 | 
| -    _valueToIndex: function(value) {
 | 
| -      if (this.attrForSelected) {
 | 
| -        for (var i = 0, item; item = this.items[i]; i++) {
 | 
| -          if (this._valueForItem(item) == value) {
 | 
| -            return i;
 | 
| -          }
 | 
| -        }
 | 
| -      } else {
 | 
| -        return Number(value);
 | 
| -      }
 | 
| -    },
 | 
| -
 | 
| -    _indexToValue: function(index) {
 | 
| -      if (this.attrForSelected) {
 | 
| -        var item = this.items[index];
 | 
| -        if (item) {
 | 
| -          return this._valueForItem(item);
 | 
| -        }
 | 
| -      } else {
 | 
| -        return index;
 | 
| -      }
 | 
| -    },
 | 
| -
 | 
| -    _valueForItem: function(item) {
 | 
| -      return item[this.attrForSelected] || item.getAttribute(this.attrForSelected);
 | 
| -    },
 | 
| -
 | 
| -    _applySelection: function(item, isSelected) {
 | 
| -      if (this.selectedClass) {
 | 
| -        this.toggleClass(this.selectedClass, isSelected, item);
 | 
| -      }
 | 
| -      if (this.selectedAttribute) {
 | 
| -        this.toggleAttribute(this.selectedAttribute, isSelected, item);
 | 
| -      }
 | 
| -      this._selectionChange();
 | 
| -      this.fire('iron-' + (isSelected ? 'select' : 'deselect'), {item: item});
 | 
| -    },
 | 
| -
 | 
| -    _selectionChange: function() {
 | 
| -      this._setSelectedItem(this._selection.get());
 | 
| -    },
 | 
| -
 | 
| -    // observe content changes under the given node.
 | 
| -    _observeContent: function(node) {
 | 
| -      var content = node.querySelector('content');
 | 
| -      if (content && content.parentElement === node) {
 | 
| -        return this._observeItems(node.domHost);
 | 
| -      }
 | 
| -    },
 | 
| -
 | 
| -    // observe items change under the given node.
 | 
| -    _observeItems: function(node) {
 | 
| -      var observer = new MutationObserver(function() {
 | 
| -        if (this.selected != null) {
 | 
| -          this._updateSelected();
 | 
| -        }
 | 
| -      }.bind(this));
 | 
| -      observer.observe(node, {
 | 
| -        childList: true,
 | 
| -        subtree: true
 | 
| -      });
 | 
| -      return observer;
 | 
| -    },
 | 
| -
 | 
| -    _activateHandler: function(e) {
 | 
| -      // TODO: remove this when https://github.com/Polymer/polymer/issues/1639 is fixed so we
 | 
| -      // can just remove the old event listener.
 | 
| -      if (e.type !== this.activateEvent) {
 | 
| -        return;
 | 
| -      }
 | 
| -      var t = e.target;
 | 
| -      var items = this.items;
 | 
| -      while (t && t != this) {
 | 
| -        var i = items.indexOf(t);
 | 
| -        if (i >= 0) {
 | 
| -          var value = this._indexToValue(i);
 | 
| -          this._itemActivate(value, t);
 | 
| -          return;
 | 
| -        }
 | 
| -        t = t.parentNode;
 | 
| -      }
 | 
| -    },
 | 
| -
 | 
| -    _itemActivate: function(value, item) {
 | 
| -      if (!this.fire('iron-activate',
 | 
| -          {selected: value, item: item}, {cancelable: true}).defaultPrevented) {
 | 
| -        this.select(value);
 | 
| -      }
 | 
| -    }
 | 
| -
 | 
| -  };
 | 
| -
 | 
| -</script>
 | 
| 
 |