Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(962)

Unified Diff: third_party/WebKit/Source/devtools/front_end/ui/SearchableView.js

Issue 2466123002: DevTools: reformat front-end code to match chromium style. (Closed)
Patch Set: all done Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/devtools/front_end/ui/SearchableView.js
diff --git a/third_party/WebKit/Source/devtools/front_end/ui/SearchableView.js b/third_party/WebKit/Source/devtools/front_end/ui/SearchableView.js
index 733335ee6ed6d876313164090175ce3023a94dd9..b8222ae91e51f51f722125ba2e82bad6f40054a6 100644
--- a/third_party/WebKit/Source/devtools/front_end/ui/SearchableView.js
+++ b/third_party/WebKit/Source/devtools/front_end/ui/SearchableView.js
@@ -28,630 +28,593 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-
/**
- * @constructor
- * @extends {WebInspector.VBox}
- * @param {!WebInspector.Searchable} searchable
- * @param {string=} settingName
+ * @unrestricted
*/
-WebInspector.SearchableView = function(searchable, settingName)
-{
- WebInspector.VBox.call(this, true);
- this.registerRequiredCSS("ui/searchableView.css");
+WebInspector.SearchableView = class extends WebInspector.VBox {
+ /**
+ * @param {!WebInspector.Searchable} searchable
+ * @param {string=} settingName
+ */
+ constructor(searchable, settingName) {
+ super(true);
+ this.registerRequiredCSS('ui/searchableView.css');
this.element[WebInspector.SearchableView._symbol] = this;
this._searchProvider = searchable;
this._setting = settingName ? WebInspector.settings.createSetting(settingName, {}) : null;
- this.contentElement.createChild("content");
- this._footerElementContainer = this.contentElement.createChild("div", "search-bar hidden");
+ this.contentElement.createChild('content');
+ this._footerElementContainer = this.contentElement.createChild('div', 'search-bar hidden');
this._footerElementContainer.style.order = 100;
- var toolbar = new WebInspector.Toolbar("search-toolbar", this._footerElementContainer);
+ var toolbar = new WebInspector.Toolbar('search-toolbar', this._footerElementContainer);
if (this._searchProvider.supportsCaseSensitiveSearch()) {
- this._caseSensitiveButton = new WebInspector.ToolbarToggle(WebInspector.UIString("Case sensitive"), "");
- this._caseSensitiveButton.setText("Aa");
- this._caseSensitiveButton.addEventListener("click", this._toggleCaseSensitiveSearch, this);
- toolbar.appendToolbarItem(this._caseSensitiveButton);
+ this._caseSensitiveButton = new WebInspector.ToolbarToggle(WebInspector.UIString('Case sensitive'), '');
+ this._caseSensitiveButton.setText('Aa');
+ this._caseSensitiveButton.addEventListener('click', this._toggleCaseSensitiveSearch, this);
+ toolbar.appendToolbarItem(this._caseSensitiveButton);
}
if (this._searchProvider.supportsRegexSearch()) {
- this._regexButton = new WebInspector.ToolbarToggle(WebInspector.UIString("Regex"), "");
- this._regexButton.setText(".*");
- this._regexButton.addEventListener("click", this._toggleRegexSearch, this);
- toolbar.appendToolbarItem(this._regexButton);
+ this._regexButton = new WebInspector.ToolbarToggle(WebInspector.UIString('Regex'), '');
+ this._regexButton.setText('.*');
+ this._regexButton.addEventListener('click', this._toggleRegexSearch, this);
+ toolbar.appendToolbarItem(this._regexButton);
}
- this._footerElement = this._footerElementContainer.createChild("table", "toolbar-search");
+ this._footerElement = this._footerElementContainer.createChild('table', 'toolbar-search');
this._footerElement.cellSpacing = 0;
- this._firstRowElement = this._footerElement.createChild("tr");
- this._secondRowElement = this._footerElement.createChild("tr", "hidden");
+ this._firstRowElement = this._footerElement.createChild('tr');
+ this._secondRowElement = this._footerElement.createChild('tr', 'hidden');
// Column 1
- var searchControlElementColumn = this._firstRowElement.createChild("td");
- this._searchControlElement = searchControlElementColumn.createChild("span", "toolbar-search-control");
+ var searchControlElementColumn = this._firstRowElement.createChild('td');
+ this._searchControlElement = searchControlElementColumn.createChild('span', 'toolbar-search-control');
this._searchInputElement = WebInspector.HistoryInput.create();
- this._searchInputElement.classList.add("search-replace");
+ this._searchInputElement.classList.add('search-replace');
this._searchControlElement.appendChild(this._searchInputElement);
- this._searchInputElement.id = "search-input-field";
- this._searchInputElement.placeholder = WebInspector.UIString("Find");
+ this._searchInputElement.id = 'search-input-field';
+ this._searchInputElement.placeholder = WebInspector.UIString('Find');
- this._matchesElement = this._searchControlElement.createChild("label", "search-results-matches");
- this._matchesElement.setAttribute("for", "search-input-field");
+ this._matchesElement = this._searchControlElement.createChild('label', 'search-results-matches');
+ this._matchesElement.setAttribute('for', 'search-input-field');
- this._searchNavigationElement = this._searchControlElement.createChild("div", "toolbar-search-navigation-controls");
+ this._searchNavigationElement = this._searchControlElement.createChild('div', 'toolbar-search-navigation-controls');
- this._searchNavigationPrevElement = this._searchNavigationElement.createChild("div", "toolbar-search-navigation toolbar-search-navigation-prev");
- this._searchNavigationPrevElement.addEventListener("click", this._onPrevButtonSearch.bind(this), false);
- this._searchNavigationPrevElement.title = WebInspector.UIString("Search Previous");
+ this._searchNavigationPrevElement =
+ this._searchNavigationElement.createChild('div', 'toolbar-search-navigation toolbar-search-navigation-prev');
+ this._searchNavigationPrevElement.addEventListener('click', this._onPrevButtonSearch.bind(this), false);
+ this._searchNavigationPrevElement.title = WebInspector.UIString('Search Previous');
- this._searchNavigationNextElement = this._searchNavigationElement.createChild("div", "toolbar-search-navigation toolbar-search-navigation-next");
- this._searchNavigationNextElement.addEventListener("click", this._onNextButtonSearch.bind(this), false);
- this._searchNavigationNextElement.title = WebInspector.UIString("Search Next");
+ this._searchNavigationNextElement =
+ this._searchNavigationElement.createChild('div', 'toolbar-search-navigation toolbar-search-navigation-next');
+ this._searchNavigationNextElement.addEventListener('click', this._onNextButtonSearch.bind(this), false);
+ this._searchNavigationNextElement.title = WebInspector.UIString('Search Next');
- this._searchInputElement.addEventListener("keydown", this._onSearchKeyDown.bind(this), true);
- this._searchInputElement.addEventListener("input", this._onInput.bind(this), false);
+ this._searchInputElement.addEventListener('keydown', this._onSearchKeyDown.bind(this), true);
+ this._searchInputElement.addEventListener('input', this._onInput.bind(this), false);
- this._replaceInputElement = this._secondRowElement.createChild("td").createChild("input", "search-replace toolbar-replace-control");
- this._replaceInputElement.addEventListener("keydown", this._onReplaceKeyDown.bind(this), true);
- this._replaceInputElement.placeholder = WebInspector.UIString("Replace");
+ this._replaceInputElement =
+ this._secondRowElement.createChild('td').createChild('input', 'search-replace toolbar-replace-control');
+ this._replaceInputElement.addEventListener('keydown', this._onReplaceKeyDown.bind(this), true);
+ this._replaceInputElement.placeholder = WebInspector.UIString('Replace');
// Column 2
- this._findButtonElement = this._firstRowElement.createChild("td").createChild("button", "search-action-button hidden");
- this._findButtonElement.textContent = WebInspector.UIString("Find");
+ this._findButtonElement =
+ this._firstRowElement.createChild('td').createChild('button', 'search-action-button hidden');
+ this._findButtonElement.textContent = WebInspector.UIString('Find');
this._findButtonElement.tabIndex = -1;
- this._findButtonElement.addEventListener("click", this._onFindClick.bind(this), false);
+ this._findButtonElement.addEventListener('click', this._onFindClick.bind(this), false);
- this._replaceButtonElement = this._secondRowElement.createChild("td").createChild("button", "search-action-button");
- this._replaceButtonElement.textContent = WebInspector.UIString("Replace");
+ this._replaceButtonElement = this._secondRowElement.createChild('td').createChild('button', 'search-action-button');
+ this._replaceButtonElement.textContent = WebInspector.UIString('Replace');
this._replaceButtonElement.disabled = true;
this._replaceButtonElement.tabIndex = -1;
- this._replaceButtonElement.addEventListener("click", this._replace.bind(this), false);
+ this._replaceButtonElement.addEventListener('click', this._replace.bind(this), false);
// Column 3
- this._prevButtonElement = this._firstRowElement.createChild("td").createChild("button", "search-action-button hidden");
- this._prevButtonElement.textContent = WebInspector.UIString("Previous");
+ this._prevButtonElement =
+ this._firstRowElement.createChild('td').createChild('button', 'search-action-button hidden');
+ this._prevButtonElement.textContent = WebInspector.UIString('Previous');
this._prevButtonElement.tabIndex = -1;
- this._prevButtonElement.addEventListener("click", this._onPreviousClick.bind(this), false);
+ this._prevButtonElement.addEventListener('click', this._onPreviousClick.bind(this), false);
- this._replaceAllButtonElement = this._secondRowElement.createChild("td").createChild("button", "search-action-button");
- this._replaceAllButtonElement.textContent = WebInspector.UIString("Replace All");
- this._replaceAllButtonElement.addEventListener("click", this._replaceAll.bind(this), false);
+ this._replaceAllButtonElement =
+ this._secondRowElement.createChild('td').createChild('button', 'search-action-button');
+ this._replaceAllButtonElement.textContent = WebInspector.UIString('Replace All');
+ this._replaceAllButtonElement.addEventListener('click', this._replaceAll.bind(this), false);
// Column 4
- this._replaceElement = this._firstRowElement.createChild("td").createChild("span");
+ this._replaceElement = this._firstRowElement.createChild('td').createChild('span');
- this._replaceLabelElement = createCheckboxLabel(WebInspector.UIString("Replace"));
+ this._replaceLabelElement = createCheckboxLabel(WebInspector.UIString('Replace'));
this._replaceCheckboxElement = this._replaceLabelElement.checkboxElement;
this._uniqueId = ++WebInspector.SearchableView._lastUniqueId;
- var replaceCheckboxId = "search-replace-trigger" + this._uniqueId;
+ var replaceCheckboxId = 'search-replace-trigger' + this._uniqueId;
this._replaceCheckboxElement.id = replaceCheckboxId;
- this._replaceCheckboxElement.addEventListener("change", this._updateSecondRowVisibility.bind(this), false);
+ this._replaceCheckboxElement.addEventListener('change', this._updateSecondRowVisibility.bind(this), false);
this._replaceElement.appendChild(this._replaceLabelElement);
// Column 5
- var cancelButtonElement = this._firstRowElement.createChild("td").createChild("button", "search-action-button");
- cancelButtonElement.textContent = WebInspector.UIString("Cancel");
+ var cancelButtonElement = this._firstRowElement.createChild('td').createChild('button', 'search-action-button');
+ cancelButtonElement.textContent = WebInspector.UIString('Cancel');
cancelButtonElement.tabIndex = -1;
- cancelButtonElement.addEventListener("click", this.closeSearch.bind(this), false);
+ cancelButtonElement.addEventListener('click', this.closeSearch.bind(this), false);
this._minimalSearchQuerySize = 3;
this._loadSetting();
-};
-
-WebInspector.SearchableView._lastUniqueId = 0;
+ }
-WebInspector.SearchableView._symbol = Symbol("searchableView");
-
-/**
- * @param {?Element} element
- * @return {?WebInspector.SearchableView}
- */
-WebInspector.SearchableView.fromElement = function(element)
-{
+ /**
+ * @param {?Element} element
+ * @return {?WebInspector.SearchableView}
+ */
+ static fromElement(element) {
var view = null;
while (element && !view) {
- view = element[WebInspector.SearchableView._symbol];
- element = element.parentElementOrShadowHost();
+ view = element[WebInspector.SearchableView._symbol];
+ element = element.parentElementOrShadowHost();
}
return view;
-};
+ }
+
+ _toggleCaseSensitiveSearch() {
+ this._caseSensitiveButton.setToggled(!this._caseSensitiveButton.toggled());
+ this._saveSetting();
+ this._performSearch(false, true);
+ }
+
+ _toggleRegexSearch() {
+ this._regexButton.setToggled(!this._regexButton.toggled());
+ this._saveSetting();
+ this._performSearch(false, true);
+ }
+
+ _saveSetting() {
+ if (!this._setting)
+ return;
+ var settingValue = this._setting.get() || {};
+ settingValue.caseSensitive = this._caseSensitiveButton.toggled();
+ settingValue.isRegex = this._regexButton.toggled();
+ this._setting.set(settingValue);
+ }
+
+ _loadSetting() {
+ var settingValue = this._setting ? (this._setting.get() || {}) : {};
+ if (this._searchProvider.supportsCaseSensitiveSearch())
+ this._caseSensitiveButton.setToggled(!!settingValue.caseSensitive);
+ if (this._searchProvider.supportsRegexSearch())
+ this._regexButton.setToggled(!!settingValue.isRegex);
+ }
+
+ /**
+ * @param {number} minimalSearchQuerySize
+ */
+ setMinimalSearchQuerySize(minimalSearchQuerySize) {
+ this._minimalSearchQuerySize = minimalSearchQuerySize;
+ }
+
+ /**
+ * @param {string} placeholder
+ */
+ setPlaceholder(placeholder) {
+ this._searchInputElement.placeholder = placeholder;
+ }
+
+ /**
+ * @param {boolean} replaceable
+ */
+ setReplaceable(replaceable) {
+ this._replaceable = replaceable;
+ }
+
+ /**
+ * @param {number} matches
+ */
+ updateSearchMatchesCount(matches) {
+ this._searchProvider.currentSearchMatches = matches;
+ this._updateSearchMatchesCountAndCurrentMatchIndex(this._searchProvider.currentQuery ? matches : 0, -1);
+ }
+
+ /**
+ * @param {number} currentMatchIndex
+ */
+ updateCurrentMatchIndex(currentMatchIndex) {
+ this._updateSearchMatchesCountAndCurrentMatchIndex(this._searchProvider.currentSearchMatches, currentMatchIndex);
+ }
+
+ /**
+ * @return {boolean}
+ */
+ isSearchVisible() {
+ return this._searchIsVisible;
+ }
+
+ closeSearch() {
+ this.cancelSearch();
+ if (this._footerElementContainer.hasFocus())
+ this.focus();
+ }
+
+ _toggleSearchBar(toggled) {
+ this._footerElementContainer.classList.toggle('hidden', !toggled);
+ this.doResize();
+ }
+
+ cancelSearch() {
+ if (!this._searchIsVisible)
+ return;
+ this.resetSearch();
+ delete this._searchIsVisible;
+ this._toggleSearchBar(false);
+ }
+
+ resetSearch() {
+ this._clearSearch();
+ this._updateReplaceVisibility();
+ this._matchesElement.textContent = '';
+ }
+
+ refreshSearch() {
+ if (!this._searchIsVisible)
+ return;
+ this.resetSearch();
+ this._performSearch(false, false);
+ }
+
+ /**
+ * @return {boolean}
+ */
+ handleFindNextShortcut() {
+ if (!this._searchIsVisible)
+ return false;
+ this._searchProvider.jumpToNextSearchResult();
+ return true;
+ }
+
+ /**
+ * @return {boolean}
+ */
+ handleFindPreviousShortcut() {
+ if (!this._searchIsVisible)
+ return false;
+ this._searchProvider.jumpToPreviousSearchResult();
+ return true;
+ }
+
+ /**
+ * @return {boolean}
+ */
+ handleFindShortcut() {
+ this.showSearchField();
+ return true;
+ }
+
+ /**
+ * @return {boolean}
+ */
+ handleCancelSearchShortcut() {
+ if (!this._searchIsVisible)
+ return false;
+ this.closeSearch();
+ return true;
+ }
+
+ /**
+ * @param {boolean} enabled
+ */
+ _updateSearchNavigationButtonState(enabled) {
+ this._replaceButtonElement.disabled = !enabled;
+ if (enabled) {
+ this._searchNavigationPrevElement.classList.add('enabled');
+ this._searchNavigationNextElement.classList.add('enabled');
+ } else {
+ this._searchNavigationPrevElement.classList.remove('enabled');
+ this._searchNavigationNextElement.classList.remove('enabled');
+ }
+ }
+
+ /**
+ * @param {number} matches
+ * @param {number} currentMatchIndex
+ */
+ _updateSearchMatchesCountAndCurrentMatchIndex(matches, currentMatchIndex) {
+ if (!this._currentQuery)
+ this._matchesElement.textContent = '';
+ else if (matches === 0 || currentMatchIndex >= 0)
+ this._matchesElement.textContent = WebInspector.UIString('%d of %d', currentMatchIndex + 1, matches);
+ else if (matches === 1)
+ this._matchesElement.textContent = WebInspector.UIString('1 match');
+ else
+ this._matchesElement.textContent = WebInspector.UIString('%d matches', matches);
+ this._updateSearchNavigationButtonState(matches > 0);
+ }
+
+ showSearchField() {
+ if (this._searchIsVisible)
+ this.cancelSearch();
+
+ var queryCandidate;
+ if (!this._searchInputElement.hasFocus()) {
+ var selection = this._searchInputElement.getComponentSelection();
+ if (selection.rangeCount)
+ queryCandidate = selection.toString().replace(/\r?\n.*/, '');
+ }
-WebInspector.SearchableView.prototype = {
- _toggleCaseSensitiveSearch: function()
- {
- this._caseSensitiveButton.setToggled(!this._caseSensitiveButton.toggled());
- this._saveSetting();
- this._performSearch(false, true);
- },
-
- _toggleRegexSearch: function()
- {
- this._regexButton.setToggled(!this._regexButton.toggled());
- this._saveSetting();
- this._performSearch(false, true);
- },
-
- _saveSetting: function()
- {
- if (!this._setting)
- return;
- var settingValue = this._setting.get() || {};
- settingValue.caseSensitive = this._caseSensitiveButton.toggled();
- settingValue.isRegex = this._regexButton.toggled();
- this._setting.set(settingValue);
- },
-
- _loadSetting: function()
- {
- var settingValue = this._setting ? (this._setting.get() || {}) : {};
- if (this._searchProvider.supportsCaseSensitiveSearch())
- this._caseSensitiveButton.setToggled(!!settingValue.caseSensitive);
- if (this._searchProvider.supportsRegexSearch())
- this._regexButton.setToggled(!!settingValue.isRegex);
- },
-
- /**
- * @param {number} minimalSearchQuerySize
- */
- setMinimalSearchQuerySize: function(minimalSearchQuerySize)
- {
- this._minimalSearchQuerySize = minimalSearchQuerySize;
- },
-
- /**
- * @param {string} placeholder
- */
- setPlaceholder: function(placeholder)
- {
- this._searchInputElement.placeholder = placeholder;
- },
-
- /**
- * @param {boolean} replaceable
- */
- setReplaceable: function(replaceable)
- {
- this._replaceable = replaceable;
- },
-
- /**
- * @param {number} matches
- */
- updateSearchMatchesCount: function(matches)
- {
- this._searchProvider.currentSearchMatches = matches;
- this._updateSearchMatchesCountAndCurrentMatchIndex(this._searchProvider.currentQuery ? matches : 0, -1);
- },
-
- /**
- * @param {number} currentMatchIndex
- */
- updateCurrentMatchIndex: function(currentMatchIndex)
- {
- this._updateSearchMatchesCountAndCurrentMatchIndex(this._searchProvider.currentSearchMatches, currentMatchIndex);
- },
-
- /**
- * @return {boolean}
- */
- isSearchVisible: function()
- {
- return this._searchIsVisible;
- },
-
- closeSearch: function()
- {
- this.cancelSearch();
- if (this._footerElementContainer.hasFocus())
- this.focus();
- },
-
- _toggleSearchBar: function(toggled)
- {
- this._footerElementContainer.classList.toggle("hidden", !toggled);
- this.doResize();
- },
-
- cancelSearch: function()
- {
- if (!this._searchIsVisible)
- return;
- this.resetSearch();
- delete this._searchIsVisible;
- this._toggleSearchBar(false);
- },
-
- resetSearch: function()
- {
- this._clearSearch();
- this._updateReplaceVisibility();
- this._matchesElement.textContent = "";
- },
-
- refreshSearch: function()
- {
- if (!this._searchIsVisible)
- return;
- this.resetSearch();
- this._performSearch(false, false);
- },
-
- /**
- * @return {boolean}
- */
- handleFindNextShortcut: function()
- {
- if (!this._searchIsVisible)
- return false;
- this._searchProvider.jumpToNextSearchResult();
- return true;
- },
-
- /**
- * @return {boolean}
- */
- handleFindPreviousShortcut: function()
- {
- if (!this._searchIsVisible)
- return false;
- this._searchProvider.jumpToPreviousSearchResult();
- return true;
- },
-
- /**
- * @return {boolean}
- */
- handleFindShortcut: function()
- {
- this.showSearchField();
- return true;
- },
-
- /**
- * @return {boolean}
- */
- handleCancelSearchShortcut: function()
- {
- if (!this._searchIsVisible)
- return false;
- this.closeSearch();
- return true;
- },
-
- /**
- * @param {boolean} enabled
- */
- _updateSearchNavigationButtonState: function(enabled)
- {
- this._replaceButtonElement.disabled = !enabled;
- if (enabled) {
- this._searchNavigationPrevElement.classList.add("enabled");
- this._searchNavigationNextElement.classList.add("enabled");
- } else {
- this._searchNavigationPrevElement.classList.remove("enabled");
- this._searchNavigationNextElement.classList.remove("enabled");
- }
- },
-
- /**
- * @param {number} matches
- * @param {number} currentMatchIndex
- */
- _updateSearchMatchesCountAndCurrentMatchIndex: function(matches, currentMatchIndex)
- {
- if (!this._currentQuery)
- this._matchesElement.textContent = "";
- else if (matches === 0 || currentMatchIndex >= 0)
- this._matchesElement.textContent = WebInspector.UIString("%d of %d", currentMatchIndex + 1, matches);
- else if (matches === 1)
- this._matchesElement.textContent = WebInspector.UIString("1 match");
- else
- this._matchesElement.textContent = WebInspector.UIString("%d matches", matches);
- this._updateSearchNavigationButtonState(matches > 0);
- },
-
- showSearchField: function()
- {
- if (this._searchIsVisible)
- this.cancelSearch();
-
- var queryCandidate;
- if (!this._searchInputElement.hasFocus()) {
- var selection = this._searchInputElement.getComponentSelection();
- if (selection.rangeCount)
- queryCandidate = selection.toString().replace(/\r?\n.*/, "");
- }
-
- this._toggleSearchBar(true);
- this._updateReplaceVisibility();
- if (queryCandidate)
- this._searchInputElement.value = queryCandidate;
- this._performSearch(false, false);
- this._searchInputElement.focus();
- this._searchInputElement.select();
- this._searchIsVisible = true;
- },
-
- _updateReplaceVisibility: function()
- {
- this._replaceElement.classList.toggle("hidden", !this._replaceable);
- if (!this._replaceable) {
- this._replaceCheckboxElement.checked = false;
- this._updateSecondRowVisibility();
- }
- },
-
- /**
- * @param {!Event} event
- */
- _onSearchKeyDown: function(event)
- {
- if (isEscKey(event)) {
- this.closeSearch();
- event.consume(true);
- return;
- }
- if (!isEnterKey(event))
- return;
-
- if (!this._currentQuery)
- this._performSearch(true, true, event.shiftKey);
- else
- this._jumpToNextSearchResult(event.shiftKey);
- },
-
- /**
- * @param {!Event} event
- */
- _onReplaceKeyDown: function(event)
- {
- if (isEnterKey(event))
- this._replace();
- },
-
- /**
- * @param {boolean=} isBackwardSearch
- */
- _jumpToNextSearchResult: function(isBackwardSearch)
- {
- if (!this._currentQuery || !this._searchNavigationPrevElement.classList.contains("enabled"))
- return;
-
- if (isBackwardSearch)
- this._searchProvider.jumpToPreviousSearchResult();
- else
- this._searchProvider.jumpToNextSearchResult();
- },
-
- _onNextButtonSearch: function(event)
- {
- if (!this._searchNavigationNextElement.classList.contains("enabled"))
- return;
- this._jumpToNextSearchResult();
- this._searchInputElement.focus();
- },
-
- _onPrevButtonSearch: function(event)
- {
- if (!this._searchNavigationPrevElement.classList.contains("enabled"))
- return;
- this._jumpToNextSearchResult(true);
- this._searchInputElement.focus();
- },
-
- _onFindClick: function(event)
- {
- if (!this._currentQuery)
- this._performSearch(true, true);
- else
- this._jumpToNextSearchResult();
- this._searchInputElement.focus();
- },
-
- _onPreviousClick: function(event)
- {
- if (!this._currentQuery)
- this._performSearch(true, true, true);
- else
- this._jumpToNextSearchResult(true);
- this._searchInputElement.focus();
- },
-
- _clearSearch: function()
- {
- delete this._currentQuery;
- if (!!this._searchProvider.currentQuery) {
- delete this._searchProvider.currentQuery;
- this._searchProvider.searchCanceled();
- }
- this._updateSearchMatchesCountAndCurrentMatchIndex(0, -1);
- },
-
- /**
- * @param {boolean} forceSearch
- * @param {boolean} shouldJump
- * @param {boolean=} jumpBackwards
- */
- _performSearch: function(forceSearch, shouldJump, jumpBackwards)
- {
- var query = this._searchInputElement.value;
- if (!query || (!forceSearch && query.length < this._minimalSearchQuerySize && !this._currentQuery)) {
- this._clearSearch();
- return;
- }
-
- this._currentQuery = query;
- this._searchProvider.currentQuery = query;
-
- var searchConfig = this._currentSearchConfig();
- this._searchProvider.performSearch(searchConfig, shouldJump, jumpBackwards);
- },
-
- /**
- * @return {!WebInspector.SearchableView.SearchConfig}
- */
- _currentSearchConfig: function()
- {
- var query = this._searchInputElement.value;
- var caseSensitive = this._caseSensitiveButton ? this._caseSensitiveButton.toggled() : false;
- var isRegex = this._regexButton ? this._regexButton.toggled() : false;
- return new WebInspector.SearchableView.SearchConfig(query, caseSensitive, isRegex);
- },
-
- _updateSecondRowVisibility: function()
- {
- var secondRowVisible = this._replaceCheckboxElement.checked;
- this._footerElementContainer.classList.toggle("replaceable", secondRowVisible);
- this._footerElement.classList.toggle("toolbar-search-replace", secondRowVisible);
- this._secondRowElement.classList.toggle("hidden", !secondRowVisible);
- this._prevButtonElement.classList.toggle("hidden", !secondRowVisible);
- this._findButtonElement.classList.toggle("hidden", !secondRowVisible);
- this._replaceCheckboxElement.tabIndex = secondRowVisible ? -1 : 0;
-
- if (secondRowVisible)
- this._replaceInputElement.focus();
- else
- this._searchInputElement.focus();
- this.doResize();
- },
-
- _replace: function()
- {
- var searchConfig = this._currentSearchConfig();
- /** @type {!WebInspector.Replaceable} */ (this._searchProvider).replaceSelectionWith(searchConfig, this._replaceInputElement.value);
- delete this._currentQuery;
- this._performSearch(true, true);
- },
-
- _replaceAll: function()
- {
- var searchConfig = this._currentSearchConfig();
- /** @type {!WebInspector.Replaceable} */ (this._searchProvider).replaceAllWith(searchConfig, this._replaceInputElement.value);
- },
-
- /**
- * @param {!Event} event
- */
- _onInput: function(event)
- {
- if (this._valueChangedTimeoutId)
- clearTimeout(this._valueChangedTimeoutId);
- var timeout = this._searchInputElement.value.length < 3 ? 200 : 0;
- this._valueChangedTimeoutId = setTimeout(this._onValueChanged.bind(this), timeout);
- },
-
- _onValueChanged: function()
- {
- if (!this._searchIsVisible)
- return;
- delete this._valueChangedTimeoutId;
- this._performSearch(false, true);
- },
-
- __proto__: WebInspector.VBox.prototype
+ this._toggleSearchBar(true);
+ this._updateReplaceVisibility();
+ if (queryCandidate)
+ this._searchInputElement.value = queryCandidate;
+ this._performSearch(false, false);
+ this._searchInputElement.focus();
+ this._searchInputElement.select();
+ this._searchIsVisible = true;
+ }
+
+ _updateReplaceVisibility() {
+ this._replaceElement.classList.toggle('hidden', !this._replaceable);
+ if (!this._replaceable) {
+ this._replaceCheckboxElement.checked = false;
+ this._updateSecondRowVisibility();
+ }
+ }
+
+ /**
+ * @param {!Event} event
+ */
+ _onSearchKeyDown(event) {
+ if (isEscKey(event)) {
+ this.closeSearch();
+ event.consume(true);
+ return;
+ }
+ if (!isEnterKey(event))
+ return;
+
+ if (!this._currentQuery)
+ this._performSearch(true, true, event.shiftKey);
+ else
+ this._jumpToNextSearchResult(event.shiftKey);
+ }
+
+ /**
+ * @param {!Event} event
+ */
+ _onReplaceKeyDown(event) {
+ if (isEnterKey(event))
+ this._replace();
+ }
+
+ /**
+ * @param {boolean=} isBackwardSearch
+ */
+ _jumpToNextSearchResult(isBackwardSearch) {
+ if (!this._currentQuery || !this._searchNavigationPrevElement.classList.contains('enabled'))
+ return;
+
+ if (isBackwardSearch)
+ this._searchProvider.jumpToPreviousSearchResult();
+ else
+ this._searchProvider.jumpToNextSearchResult();
+ }
+
+ _onNextButtonSearch(event) {
+ if (!this._searchNavigationNextElement.classList.contains('enabled'))
+ return;
+ this._jumpToNextSearchResult();
+ this._searchInputElement.focus();
+ }
+
+ _onPrevButtonSearch(event) {
+ if (!this._searchNavigationPrevElement.classList.contains('enabled'))
+ return;
+ this._jumpToNextSearchResult(true);
+ this._searchInputElement.focus();
+ }
+
+ _onFindClick(event) {
+ if (!this._currentQuery)
+ this._performSearch(true, true);
+ else
+ this._jumpToNextSearchResult();
+ this._searchInputElement.focus();
+ }
+
+ _onPreviousClick(event) {
+ if (!this._currentQuery)
+ this._performSearch(true, true, true);
+ else
+ this._jumpToNextSearchResult(true);
+ this._searchInputElement.focus();
+ }
+
+ _clearSearch() {
+ delete this._currentQuery;
+ if (!!this._searchProvider.currentQuery) {
+ delete this._searchProvider.currentQuery;
+ this._searchProvider.searchCanceled();
+ }
+ this._updateSearchMatchesCountAndCurrentMatchIndex(0, -1);
+ }
+
+ /**
+ * @param {boolean} forceSearch
+ * @param {boolean} shouldJump
+ * @param {boolean=} jumpBackwards
+ */
+ _performSearch(forceSearch, shouldJump, jumpBackwards) {
+ var query = this._searchInputElement.value;
+ if (!query || (!forceSearch && query.length < this._minimalSearchQuerySize && !this._currentQuery)) {
+ this._clearSearch();
+ return;
+ }
+
+ this._currentQuery = query;
+ this._searchProvider.currentQuery = query;
+
+ var searchConfig = this._currentSearchConfig();
+ this._searchProvider.performSearch(searchConfig, shouldJump, jumpBackwards);
+ }
+
+ /**
+ * @return {!WebInspector.SearchableView.SearchConfig}
+ */
+ _currentSearchConfig() {
+ var query = this._searchInputElement.value;
+ var caseSensitive = this._caseSensitiveButton ? this._caseSensitiveButton.toggled() : false;
+ var isRegex = this._regexButton ? this._regexButton.toggled() : false;
+ return new WebInspector.SearchableView.SearchConfig(query, caseSensitive, isRegex);
+ }
+
+ _updateSecondRowVisibility() {
+ var secondRowVisible = this._replaceCheckboxElement.checked;
+ this._footerElementContainer.classList.toggle('replaceable', secondRowVisible);
+ this._footerElement.classList.toggle('toolbar-search-replace', secondRowVisible);
+ this._secondRowElement.classList.toggle('hidden', !secondRowVisible);
+ this._prevButtonElement.classList.toggle('hidden', !secondRowVisible);
+ this._findButtonElement.classList.toggle('hidden', !secondRowVisible);
+ this._replaceCheckboxElement.tabIndex = secondRowVisible ? -1 : 0;
+
+ if (secondRowVisible)
+ this._replaceInputElement.focus();
+ else
+ this._searchInputElement.focus();
+ this.doResize();
+ }
+
+ _replace() {
+ var searchConfig = this._currentSearchConfig();
+ /** @type {!WebInspector.Replaceable} */ (this._searchProvider)
+ .replaceSelectionWith(searchConfig, this._replaceInputElement.value);
+ delete this._currentQuery;
+ this._performSearch(true, true);
+ }
+
+ _replaceAll() {
+ var searchConfig = this._currentSearchConfig();
+ /** @type {!WebInspector.Replaceable} */ (this._searchProvider)
+ .replaceAllWith(searchConfig, this._replaceInputElement.value);
+ }
+
+ /**
+ * @param {!Event} event
+ */
+ _onInput(event) {
+ if (this._valueChangedTimeoutId)
+ clearTimeout(this._valueChangedTimeoutId);
+ var timeout = this._searchInputElement.value.length < 3 ? 200 : 0;
+ this._valueChangedTimeoutId = setTimeout(this._onValueChanged.bind(this), timeout);
+ }
+
+ _onValueChanged() {
+ if (!this._searchIsVisible)
+ return;
+ delete this._valueChangedTimeoutId;
+ this._performSearch(false, true);
+ }
};
+WebInspector.SearchableView._lastUniqueId = 0;
+
+WebInspector.SearchableView._symbol = Symbol('searchableView');
+
+
/**
* @interface
*/
-WebInspector.Searchable = function()
-{
-};
+WebInspector.Searchable = function() {};
WebInspector.Searchable.prototype = {
- searchCanceled: function() { },
+ searchCanceled: function() {},
- /**
- * @param {!WebInspector.SearchableView.SearchConfig} searchConfig
- * @param {boolean} shouldJump
- * @param {boolean=} jumpBackwards
- */
- performSearch: function(searchConfig, shouldJump, jumpBackwards) { },
+ /**
+ * @param {!WebInspector.SearchableView.SearchConfig} searchConfig
+ * @param {boolean} shouldJump
+ * @param {boolean=} jumpBackwards
+ */
+ performSearch: function(searchConfig, shouldJump, jumpBackwards) {},
- jumpToNextSearchResult: function() { },
+ jumpToNextSearchResult: function() {},
- jumpToPreviousSearchResult: function() { },
+ jumpToPreviousSearchResult: function() {},
- /**
- * @return {boolean}
- */
- supportsCaseSensitiveSearch: function() { },
+ /**
+ * @return {boolean}
+ */
+ supportsCaseSensitiveSearch: function() {},
- /**
- * @return {boolean}
- */
- supportsRegexSearch: function() { }
+ /**
+ * @return {boolean}
+ */
+ supportsRegexSearch: function() {}
};
/**
* @interface
*/
-WebInspector.Replaceable = function()
-{
-};
+WebInspector.Replaceable = function() {};
WebInspector.Replaceable.prototype = {
- /**
- * @param {!WebInspector.SearchableView.SearchConfig} searchConfig
- * @param {string} replacement
- */
- replaceSelectionWith: function(searchConfig, replacement) { },
-
- /**
- * @param {!WebInspector.SearchableView.SearchConfig} searchConfig
- * @param {string} replacement
- */
- replaceAllWith: function(searchConfig, replacement) { }
+ /**
+ * @param {!WebInspector.SearchableView.SearchConfig} searchConfig
+ * @param {string} replacement
+ */
+ replaceSelectionWith: function(searchConfig, replacement) {},
+
+ /**
+ * @param {!WebInspector.SearchableView.SearchConfig} searchConfig
+ * @param {string} replacement
+ */
+ replaceAllWith: function(searchConfig, replacement) {}
};
/**
- * @constructor
- * @param {string} query
- * @param {boolean} caseSensitive
- * @param {boolean} isRegex
+ * @unrestricted
*/
-WebInspector.SearchableView.SearchConfig = function(query, caseSensitive, isRegex)
-{
+WebInspector.SearchableView.SearchConfig = class {
+ /**
+ * @param {string} query
+ * @param {boolean} caseSensitive
+ * @param {boolean} isRegex
+ */
+ constructor(query, caseSensitive, isRegex) {
this.query = query;
this.caseSensitive = caseSensitive;
this.isRegex = isRegex;
-};
-
-WebInspector.SearchableView.SearchConfig.prototype = {
- /**
- * @param {boolean=} global
- * @return {!RegExp}
- */
- toSearchRegex: function(global)
- {
- var modifiers = this.caseSensitive ? "" : "i";
- if (global)
- modifiers += "g";
- var query = this.isRegex ? "/" + this.query + "/" : this.query;
-
- var regex;
-
- // First try creating regex if user knows the / / hint.
- try {
- if (/^\/.+\/$/.test(query)) {
- regex = new RegExp(query.substring(1, query.length - 1), modifiers);
- regex.__fromRegExpQuery = true;
- }
- } catch (e) {
- // Silent catch.
- }
-
- // Otherwise just do a plain text search.
- if (!regex)
- regex = createPlainTextSearchRegex(query, modifiers);
-
- return regex;
+ }
+
+ /**
+ * @param {boolean=} global
+ * @return {!RegExp}
+ */
+ toSearchRegex(global) {
+ var modifiers = this.caseSensitive ? '' : 'i';
+ if (global)
+ modifiers += 'g';
+ var query = this.isRegex ? '/' + this.query + '/' : this.query;
+
+ var regex;
+
+ // First try creating regex if user knows the / / hint.
+ try {
+ if (/^\/.+\/$/.test(query)) {
+ regex = new RegExp(query.substring(1, query.length - 1), modifiers);
+ regex.__fromRegExpQuery = true;
+ }
+ } catch (e) {
+ // Silent catch.
}
+
+ // Otherwise just do a plain text search.
+ if (!regex)
+ regex = createPlainTextSearchRegex(query, modifiers);
+
+ return regex;
+ }
};

Powered by Google App Engine
This is Rietveld 408576698