Source: setting-dropdown/setting-dropdown.js

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