| Index: ui/webui/resources/js/cr/ui/search_field.js
|
| diff --git a/ui/webui/resources/js/cr/ui/search_field.js b/ui/webui/resources/js/cr/ui/search_field.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..646080b2df04c4483e34684b9e256addcf9029fe
|
| --- /dev/null
|
| +++ b/ui/webui/resources/js/cr/ui/search_field.js
|
| @@ -0,0 +1,61 @@
|
| +// Copyright 2015 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +cr.define('cr.ui', function() {
|
| + var SearchField = Polymer({
|
| + is: 'search-field',
|
| +
|
| + properties: {
|
| + showingSearch_: {
|
| + type: Boolean,
|
| + value: false,
|
| + },
|
| + },
|
| +
|
| + setDelegate: function(delegate) {
|
| + this.delegate_ = delegate;
|
| + },
|
| +
|
| + getValue: function() {
|
| + return this.$['search-input'].value;
|
| + },
|
| +
|
| + /** @private */
|
| + onSearchTermSearch_: function() {
|
| + if (this.delegate_)
|
| + this.delegate_.onSearchTermSearch(this.$['search-input'].value);
|
| + },
|
| +
|
| + /** @private */
|
| + onSearchTermKeydown_: function(e) {
|
| + assert(this.showingSearch_);
|
| + if (e.keyIdentifier == 'U+001B') // Escape.
|
| + this.toggleShowingSearch_();
|
| + },
|
| +
|
| + /** @private */
|
| + toggleShowingSearch_: function() {
|
| + this.showingSearch_ = !this.showingSearch_;
|
| +
|
| + if (this.showingSearch_) {
|
| + this.$['search-input'].focus();
|
| + } else {
|
| + this.$['search-input'].value = '';
|
| + this.onSearchTermSearch_();
|
| + }
|
| + },
|
| + });
|
| +
|
| + /** @interface */
|
| + SearchField.Delegate = function() {};
|
| +
|
| + SearchField.Delegate.prototype = {
|
| + /**
|
| + * @param {string} value
|
| + */
|
| + onSearchTermSearch: assertNotReached,
|
| + };
|
| +
|
| + return {SearchField: SearchField};
|
| +});
|
|
|