| OLD | NEW |
| (Empty) |
| 1 | |
| 2 Polymer('core-selection', { | |
| 3 /** | |
| 4 * If true, multiple selections are allowed. | |
| 5 * | |
| 6 * @attribute multi | |
| 7 * @type boolean | |
| 8 * @default false | |
| 9 */ | |
| 10 multi: false, | |
| 11 ready: function() { | |
| 12 this.clear(); | |
| 13 }, | |
| 14 clear: function() { | |
| 15 this.selection = []; | |
| 16 }, | |
| 17 /** | |
| 18 * Retrieves the selected item(s). | |
| 19 * @method getSelection | |
| 20 * @returns Returns the selected item(s). If the multi property is true, | |
| 21 * getSelection will return an array, otherwise it will return | |
| 22 * the selected item or undefined if there is no selection. | |
| 23 */ | |
| 24 getSelection: function() { | |
| 25 return this.multi ? this.selection : this.selection[0]; | |
| 26 }, | |
| 27 /** | |
| 28 * Indicates if a given item is selected. | |
| 29 * @method isSelected | |
| 30 * @param {any} item The item whose selection state should be checked. | |
| 31 * @returns Returns true if `item` is selected. | |
| 32 */ | |
| 33 isSelected: function(item) { | |
| 34 return this.selection.indexOf(item) >= 0; | |
| 35 }, | |
| 36 setItemSelected: function(item, isSelected) { | |
| 37 if (item !== undefined && item !== null) { | |
| 38 if (isSelected) { | |
| 39 this.selection.push(item); | |
| 40 } else { | |
| 41 var i = this.selection.indexOf(item); | |
| 42 if (i >= 0) { | |
| 43 this.selection.splice(i, 1); | |
| 44 } | |
| 45 } | |
| 46 this.fire("core-select", {isSelected: isSelected, item: item}); | |
| 47 } | |
| 48 }, | |
| 49 /** | |
| 50 * Set the selection state for a given `item`. If the multi property | |
| 51 * is true, then the selected state of `item` will be toggled; otherwise | |
| 52 * the `item` will be selected. | |
| 53 * @method select | |
| 54 * @param {any} item: The item to select. | |
| 55 */ | |
| 56 select: function(item) { | |
| 57 if (this.multi) { | |
| 58 this.toggle(item); | |
| 59 } else if (this.getSelection() !== item) { | |
| 60 this.setItemSelected(this.getSelection(), false); | |
| 61 this.setItemSelected(item, true); | |
| 62 } | |
| 63 }, | |
| 64 /** | |
| 65 * Toggles the selection state for `item`. | |
| 66 * @method toggle | |
| 67 * @param {any} item: The item to toggle. | |
| 68 */ | |
| 69 toggle: function(item) { | |
| 70 this.setItemSelected(item, !this.isSelected(item)); | |
| 71 } | |
| 72 }); | |
| 73 | |
| OLD | NEW |