| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 cr.define('options', function() { | 5 cr.define('options', function() { |
| 6 const OptionsPage = options.OptionsPage; | 6 const OptionsPage = options.OptionsPage; |
| 7 | 7 |
| 8 /** | 8 /** |
| 9 * Encapsulated handling of a search bubble. | 9 * Encapsulated handling of a search bubble. |
| 10 * @constructor | 10 * @constructor |
| (...skipping 294 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 305 // search terms. | 305 // search terms. |
| 306 var regEx = new RegExp('(' + searchText + ')', 'ig'); | 306 var regEx = new RegExp('(' + searchText + ')', 'ig'); |
| 307 var replaceString = '<span class="search-highlighted">$1</span>'; | 307 var replaceString = '<span class="search-highlighted">$1</span>'; |
| 308 | 308 |
| 309 var page, length; | 309 var page, length; |
| 310 var pagesToSearch = this.getSearchablePages_(); | 310 var pagesToSearch = this.getSearchablePages_(); |
| 311 for (var key in pagesToSearch) { | 311 for (var key in pagesToSearch) { |
| 312 page = pagesToSearch[key]; | 312 page = pagesToSearch[key]; |
| 313 var elements = page.pageDiv.querySelectorAll('section'); | 313 var elements = page.pageDiv.querySelectorAll('section'); |
| 314 for (var i = 0, node; node = elements[i]; i++) { | 314 for (var i = 0, node; node = elements[i]; i++) { |
| 315 node.classList.add('search-hidden'); | 315 if (!node.hidden) |
| 316 node.classList.add('search-hidden'); |
| 316 } | 317 } |
| 317 } | 318 } |
| 318 | 319 |
| 319 var bubbleControls = []; | 320 var bubbleControls = []; |
| 320 | 321 |
| 321 if (searchText.length) { | 322 if (searchText.length) { |
| 322 // Search all top-level sections for anchored string matches. | 323 // Search all top-level sections for anchored string matches. |
| 323 for (var key in pagesToSearch) { | 324 for (var key in pagesToSearch) { |
| 324 page = pagesToSearch[key]; | 325 page = pagesToSearch[key]; |
| 325 var elements = | 326 var elements = |
| 326 page.pageDiv.querySelectorAll('section'); | 327 page.pageDiv.querySelectorAll('section'); |
| 327 for (var i = 0, node; node = elements[i]; i++) { | 328 for (var i = 0, node; node = elements[i]; i++) { |
| 328 if (this.performReplace_(regEx, replaceString, node)) { | 329 if (!node.hidden) { |
| 329 node.classList.remove('search-hidden'); | 330 if (this.performReplace_(regEx, replaceString, node)) { |
| 330 foundMatches = true; | 331 node.classList.remove('search-hidden'); |
| 332 foundMatches = true; |
| 333 } |
| 331 } | 334 } |
| 332 } | 335 } |
| 333 } | 336 } |
| 334 | 337 |
| 335 // Search all sub-pages, generating an array of top-level sections that | 338 // Search all sub-pages, generating an array of top-level sections that |
| 336 // we need to make visible. | 339 // we need to make visible. |
| 337 var subPagesToSearch = this.getSearchableSubPages_(); | 340 var subPagesToSearch = this.getSearchableSubPages_(); |
| 338 var control, node; | 341 var control, node; |
| 339 for (var key in subPagesToSearch) { | 342 for (var key in subPagesToSearch) { |
| 340 page = subPagesToSearch[key]; | 343 page = subPagesToSearch[key]; |
| (...skipping 230 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 571 // Trim beginning and ending whitespace. | 574 // Trim beginning and ending whitespace. |
| 572 return text.replace(/^\s+|\s+$/g, ''); | 575 return text.replace(/^\s+|\s+$/g, ''); |
| 573 }; | 576 }; |
| 574 | 577 |
| 575 // Export | 578 // Export |
| 576 return { | 579 return { |
| 577 SearchPage: SearchPage | 580 SearchPage: SearchPage |
| 578 }; | 581 }; |
| 579 | 582 |
| 580 }); | 583 }); |
| OLD | NEW |