Skip to content

Commit d65acd0

Browse files
committed
Add selectedItem property
1 parent a42ca09 commit d65acd0

2 files changed

Lines changed: 21 additions & 7 deletions

File tree

‎src/lib/template/array-selector.html‎

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,15 @@
9898
notify: true
9999
},
100100

101+
/**
102+
* When `multi` is false, this is the currently selected item, or `null`
103+
* if no item is selected.
104+
*/
105+
selectedItem: {
106+
type: Object,
107+
notify: true
108+
},
109+
101110
/**
102111
* When `true`, calling `select` on an item that is already selected
103112
* will deselect the item.
@@ -132,6 +141,7 @@
132141
this.selected = null;
133142
this._selectedColl = null;
134143
}
144+
this.selectedItem = null;
135145
},
136146

137147
/**
@@ -164,7 +174,9 @@
164174
}
165175
} else {
166176
this.selected = null;
177+
this.selectedItem = null;
167178
this.unlinkPaths('selected');
179+
this.unlinkPaths('selectedItem');
168180
}
169181
},
170182

@@ -192,8 +204,10 @@
192204
if (this.toggle && item == this.selected) {
193205
this.deselect();
194206
} else {
195-
this.linkPaths('selected', 'items.' + key);
196207
this.selected = item;
208+
this.selectedItem = item;
209+
this.linkPaths('selected', 'items.' + key);
210+
this.linkPaths('selectedItem', 'items.' + key);
197211
}
198212
}
199213
}

‎test/unit/array-selector.html‎

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -37,39 +37,39 @@
3737
test('single selection', function() {
3838
var el = singleConfigured;
3939
// Nothing selected
40-
assert.strictEqual(el.selected, null);
40+
assert.strictEqual(el.selectedItem, null);
4141
assert.isFalse(el.isSelected(el.items[0]));
4242
assert.isFalse(el.isSelected(el.items[1]));
4343
assert.isFalse(el.isSelected(el.items[2]));
4444
// Select 0
4545
el.select(el.items[0]);
46-
assert.strictEqual(el.selected, el.items[0]);
46+
assert.strictEqual(el.selectedItem, el.items[0]);
4747
assert.isTrue(el.isSelected(el.items[0]));
4848
assert.isFalse(el.isSelected(el.items[1]));
4949
assert.isFalse(el.isSelected(el.items[2]));
5050
// Re-select 0
5151
el.select(el.items[0]);
52-
assert.strictEqual(el.selected, el.items[0]);
52+
assert.strictEqual(el.selectedItem, el.items[0]);
5353
assert.isTrue(el.isSelected(el.items[0]));
5454
assert.isFalse(el.isSelected(el.items[1]));
5555
assert.isFalse(el.isSelected(el.items[2]));
5656
// Select 2
5757
el.select(el.items[2]);
58-
assert.strictEqual(el.selected, el.items[2]);
58+
assert.strictEqual(el.selectedItem, el.items[2]);
5959
assert.isFalse(el.isSelected(el.items[0]));
6060
assert.isFalse(el.isSelected(el.items[1]));
6161
assert.isTrue(el.isSelected(el.items[2]));
6262
// Toggle 2
6363
el.toggle = true;
6464
el.select(el.items[2]);
65-
assert.strictEqual(el.selected, null);
65+
assert.strictEqual(el.selectedItem, null);
6666
assert.isFalse(el.isSelected(el.items[0]));
6767
assert.isFalse(el.isSelected(el.items[1]));
6868
assert.isFalse(el.isSelected(el.items[2]));
6969
// Toggle 2
7070
el.toggle = true;
7171
el.select(el.items[2]);
72-
assert.strictEqual(el.selected, el.items[2]);
72+
assert.strictEqual(el.selectedItem, el.items[2]);
7373
assert.isFalse(el.isSelected(el.items[0]));
7474
assert.isFalse(el.isSelected(el.items[1]));
7575
assert.isTrue(el.isSelected(el.items[2]));

0 commit comments

Comments
 (0)