Index: third_party/polymer/v0_8/components/iron-selector/iron-multi-selectable.html |
diff --git a/third_party/polymer/v0_8/components/iron-selector/iron-multi-selectable.html b/third_party/polymer/v0_8/components/iron-selector/iron-multi-selectable.html |
index 91896d84f5ac5dda35c2d7a692afe85b72232bd0..ba9455ded233d8b00081e14c2bf00e16dab6959e 100644 |
--- a/third_party/polymer/v0_8/components/iron-selector/iron-multi-selectable.html |
+++ b/third_party/polymer/v0_8/components/iron-selector/iron-multi-selectable.html |
@@ -1,4 +1,5 @@ |
<!-- |
+@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 |
@@ -11,117 +12,109 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN |
<link rel="import" href="iron-selectable.html"> |
<script> |
+ /** @polymerBehavior Polymer.IronMultiSelectableBehavior */ |
+ Polymer.IronMultiSelectableBehaviorImpl = { |
+ properties: { |
- Polymer.IronMultiSelectableBehavior = [ |
- Polymer.IronSelectableBehavior, { |
- |
- properties: { |
- |
- /** |
- * If true, multiple selections are allowed. |
- * |
- * @attribute multi |
- * @type Boolean |
- * @default false |
- */ |
- multi: { |
- type: Boolean, |
- value: false, |
- observer: 'multiChanged' |
- }, |
- |
- /** |
- * Gets or sets the selected elements. This is used instead of `selected` when `multi` |
- * is true. |
- * |
- * @attribute selectedValues |
- * @type Array |
- */ |
- selectedValues: { |
- type: Array, |
- notify: true |
- }, |
- |
- /** |
- * Returns an array of currently selected items. |
- * |
- * @attribute selectedItems |
- * @type Array |
- */ |
- selectedItems: { |
- type: Array, |
- readOnly: true, |
- notify: true |
- }, |
- |
+ /** |
+ * If true, multiple selections are allowed. |
+ */ |
+ multi: { |
+ type: Boolean, |
+ value: false, |
+ observer: 'multiChanged' |
}, |
- observers: [ |
- '_updateSelected(attrForSelected, selectedValues)' |
- ], |
- |
/** |
- * Selects the given value. If the `multi` property is true, then the selected state of the |
- * `value` will be toggled; otherwise the `value` will be selected. |
- * |
- * @method select |
- * @param {string} value the value to select. |
+ * Gets or sets the selected elements. This is used instead of `selected` when `multi` |
+ * is true. |
*/ |
- select: function(value) { |
- if (this.multi) { |
- if (this.selectedValues) { |
- this._toggleSelected(value); |
- } else { |
- this.selectedValues = [value]; |
- } |
- } else { |
- this.selected = value; |
- } |
+ selectedValues: { |
+ type: Array, |
+ notify: true |
}, |
- multiChanged: function(multi) { |
- this._selection.multi = multi; |
+ /** |
+ * Returns an array of currently selected items. |
+ */ |
+ selectedItems: { |
+ type: Array, |
+ readOnly: true, |
+ notify: true |
}, |
- _updateSelected: function() { |
- if (this.multi) { |
- this._selectMulti(this.selectedValues); |
+ }, |
+ |
+ observers: [ |
+ '_updateSelected(attrForSelected, selectedValues)' |
+ ], |
+ |
+ /** |
+ * Selects the given value. If the `multi` property is true, then the selected state of the |
+ * `value` will be toggled; otherwise the `value` will be selected. |
+ * |
+ * @method select |
+ * @param {string} value the value to select. |
+ */ |
+ select: function(value) { |
+ if (this.multi) { |
+ if (this.selectedValues) { |
+ this._toggleSelected(value); |
} else { |
- this._selectSelected(this.selected); |
+ this.selectedValues = [value]; |
} |
- }, |
+ } else { |
+ this.selected = value; |
+ } |
+ }, |
- _selectMulti: function(values) { |
- this._selection.clear(); |
- if (values) { |
- for (var i = 0; i < values.length; i++) { |
- this._selection.setItemSelected(this._valueToItem(values[i]), true); |
- } |
- } |
- }, |
+ multiChanged: function(multi) { |
+ this._selection.multi = multi; |
+ }, |
- _selectionChange: function() { |
- var s = this._selection.get(); |
- if (this.multi) { |
- this._setSelectedItems(s); |
- } else { |
- this._setSelectedItems([s]); |
- this._setSelectedItem(s); |
- } |
- }, |
+ _updateSelected: function() { |
+ if (this.multi) { |
+ this._selectMulti(this.selectedValues); |
+ } else { |
+ this._selectSelected(this.selected); |
+ } |
+ }, |
- _toggleSelected: function(value) { |
- var i = this.selectedValues.indexOf(value); |
- var unselected = i < 0; |
- if (unselected) { |
- this.selectedValues.push(value); |
- } else { |
- this.selectedValues.splice(i, 1); |
+ _selectMulti: function(values) { |
+ this._selection.clear(); |
+ if (values) { |
+ for (var i = 0; i < values.length; i++) { |
+ this._selection.setItemSelected(this._valueToItem(values[i]), true); |
} |
- this._selection.setItemSelected(this._valueToItem(value), unselected); |
} |
- |
+ }, |
+ |
+ _selectionChange: function() { |
+ var s = this._selection.get(); |
+ if (this.multi) { |
+ this._setSelectedItems(s); |
+ } else { |
+ this._setSelectedItems([s]); |
+ this._setSelectedItem(s); |
+ } |
+ }, |
+ |
+ _toggleSelected: function(value) { |
+ var i = this.selectedValues.indexOf(value); |
+ var unselected = i < 0; |
+ if (unselected) { |
+ this.selectedValues.push(value); |
+ } else { |
+ this.selectedValues.splice(i, 1); |
+ } |
+ this._selection.setItemSelected(this._valueToItem(value), unselected); |
} |
+ }; |
+ |
+ /** @polymerBehavior */ |
+ Polymer.IronMultiSelectableBehavior = [ |
+ Polymer.IronSelectableBehavior, |
+ Polymer.IronMultiSelectableBehaviorImpl |
]; |
</script> |