'use strict';
new ExceptionHandler();
/**
* Polymer element to select an item from a list
* @namespace SettingDropdown
*/
Polymer({
is: 'setting-dropdown',
properties: {
/**
* Local storage key
* @memberOf SettingDropdown
*/
name: {
type: String,
value: 'store',
},
/**
* Menu description
* @memberOf SettingDropdown
*/
label: {
type: String,
value: '',
},
/**
* Selected menu item index
* @memberOf SettingDropdown
*/
value: {
type: Number,
value: 0,
notify: true,
},
/**
* Array of Menu item labels
* @memberOf SettingDropdown
*/
items: {
type: Array,
value: function() {
return [];
},
},
/**
* Optional group title
* @memberOf SettingDropdown
*/
sectionTitle: {
type: String,
value: '',
},
/**
* Disabled state of element
* @memberOf SettingDropdown
*/
disabled: {
type: Boolean,
value: false,
},
/**
* Visibility state of optional divider
* @memberOf SettingDropdown
*/
noseparator: {
type: Boolean,
value: false,
},
},
/**
* Event: menu item tapped
* @param {Event} ev - tap event
* @private
* @memberOf SettingDropdown
*/
_onItemSelected: function(ev) {
const model = this.$.t.modelForElement(ev.target);
if (model) {
Chrome.GA.event(Chrome.GA.EVENT.MENU,
`${this.name}: ${model.index}`);
}
},
/**
* Initialize value if it is not in localstorage
* @private
* @memberOf SettingDropdown
*/
_init: function() {
this.set('value', '0');
},
});