'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'); }, });