'use strict'; new ExceptionHandler(); /** * Polymer element for a text entry * @namespace SettingText */ Polymer({ is: 'setting-text', hostAttributes: { role: 'group', tabIndex: -1, }, properties: { /** * Local storage key * @memberOf SettingText */ name: { type: String, value: 'store', }, /** * Text value * @memberOf SettingText */ value: { type: String, value: '', notify: true, }, /** * Placeholder text when empty * @memberOf SettingText */ placeholder: { type: String, value: 'e.g. Text', notify: true, }, /** * Max length of text entry * @memberOf SettingText */ maxLength: { type: Number, value: '16', notify: true, }, /** * Descriptive label * @memberOf SettingText */ mainLabel: { type: String, value: '', }, /** * Secondary descriptive label * @memberOf SettingText */ secondaryLabel: { type: String, value: '', }, /** * Optional group title * @memberOf SettingText */ sectionTitle: { type: String, value: '', }, /** * Disabled state of element * @memberOf SettingText */ disabled: { type: Boolean, value: false, }, /** * Visibility state of optional divider * @memberOf SettingText */ noseparator: { type: Boolean, value: false, }, }, /** * Event: Lost focus - fire setting-text-changed event * @private * @memberOf SettingText */ _onBlur: function() { Chrome.GA.event(Chrome.GA.EVENT.TEXT, this.name); this.fire('setting-text-changed', {value: this.value}); }, /** * Event: keyup - fire setting-text-changed event on 'Enter' * @param {Event} event - key event * @private * @memberOf SettingText */ _onKeyUp: function(event) { // check if 'Enter' was pressed if (event.keyCode === 13) { Chrome.GA.event(Chrome.GA.EVENT.TEXT, this.name); this.fire('setting-text-changed', {value: this.value}); } }, /** * Initialize value if it is not in localstorage * @private * @memberOf SettingText */ _init: function() { this.set('value', ''); }, });