mirror of
https://github.com/react/react-native-devtools-frontend.git
synced 2026-10-10 05:35:05 +08:00
Move and rename files. NOAUTOREVERT=true NOPRESUBMIT=true NOTREECHECKS=true Bug: 768828 TBR=darin@chromium.org NOTRY=true Change-Id: I66d3b155808bc5bdbf237b80208e1e552bcf7f28 Reviewed-on: https://chromium-review.googlesource.com/1001153 Reviewed-by: Blink Reformat <blink-reformat@chromium.org> Commit-Queue: Blink Reformat <blink-reformat@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#549061} Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src Cr-Mirrored-Commit: 0aee4434a4dba42a42abaea9bfbc0cd196a63bc1
63 lines
2.0 KiB
JavaScript
63 lines
2.0 KiB
JavaScript
// Copyright (c) 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.
|
|
/**
|
|
* @unrestricted
|
|
*/
|
|
UI.HistoryInput = class extends HTMLInputElement {
|
|
/**
|
|
* @return {!UI.HistoryInput}
|
|
*/
|
|
static create() {
|
|
if (!UI.HistoryInput._constructor)
|
|
UI.HistoryInput._constructor = UI.registerCustomElement('input', 'history-input', UI.HistoryInput.prototype);
|
|
|
|
return /** @type {!UI.HistoryInput} */ (new UI.HistoryInput._constructor());
|
|
}
|
|
|
|
/**
|
|
* @override
|
|
*/
|
|
createdCallback() {
|
|
this._history = [''];
|
|
this._historyPosition = 0;
|
|
this.addEventListener('keydown', this._onKeyDown.bind(this), false);
|
|
this.addEventListener('input', this._onInput.bind(this), false);
|
|
}
|
|
|
|
/**
|
|
* @param {!Event} event
|
|
*/
|
|
_onInput(event) {
|
|
if (this._history.length === this._historyPosition + 1)
|
|
this._history[this._history.length - 1] = this.value;
|
|
}
|
|
|
|
/**
|
|
* @param {!Event} event
|
|
*/
|
|
_onKeyDown(event) {
|
|
if (event.keyCode === UI.KeyboardShortcut.Keys.Up.code) {
|
|
this._historyPosition = Math.max(this._historyPosition - 1, 0);
|
|
this.value = this._history[this._historyPosition];
|
|
this.dispatchEvent(new Event('input', {'bubbles': true, 'cancelable': true}));
|
|
event.consume(true);
|
|
} else if (event.keyCode === UI.KeyboardShortcut.Keys.Down.code) {
|
|
this._historyPosition = Math.min(this._historyPosition + 1, this._history.length - 1);
|
|
this.value = this._history[this._historyPosition];
|
|
this.dispatchEvent(new Event('input', {'bubbles': true, 'cancelable': true}));
|
|
event.consume(true);
|
|
} else if (event.keyCode === UI.KeyboardShortcut.Keys.Enter.code) {
|
|
this._saveToHistory();
|
|
}
|
|
}
|
|
|
|
_saveToHistory() {
|
|
if (this._history.length > 1 && this._history[this._history.length - 2] === this.value)
|
|
return;
|
|
this._history[this._history.length - 1] = this.value;
|
|
this._historyPosition = this._history.length - 1;
|
|
this._history.push('');
|
|
}
|
|
};
|