|  | // Copyright 2017 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. | 
|  |  | 
|  | export default class SnippetsQuickOpen extends QuickOpen.FilteredListWidget.Provider { | 
|  | constructor() { | 
|  | super(); | 
|  | /** @type {!Array<!Workspace.UISourceCode>} */ | 
|  | this._snippets = []; | 
|  | } | 
|  | /** | 
|  | * @override | 
|  | * @param {?number} itemIndex | 
|  | * @param {string} promptValue | 
|  | */ | 
|  | selectItem(itemIndex, promptValue) { | 
|  | if (itemIndex === null) { | 
|  | return; | 
|  | } | 
|  | Snippets.evaluateScriptSnippet(this._snippets[itemIndex]); | 
|  | } | 
|  |  | 
|  | /** | 
|  | * @override | 
|  | * @param {string} query | 
|  | * @return {string} | 
|  | */ | 
|  | notFoundText(query) { | 
|  | return Common.UIString('No snippets found.'); | 
|  | } | 
|  |  | 
|  | /** | 
|  | * @override | 
|  | */ | 
|  | attach() { | 
|  | this._snippets = Snippets.project.uiSourceCodes(); | 
|  | } | 
|  |  | 
|  | /** | 
|  | * @override | 
|  | */ | 
|  | detach() { | 
|  | this._snippets = []; | 
|  | } | 
|  |  | 
|  |  | 
|  | /** | 
|  | * @override | 
|  | * @return {number} | 
|  | */ | 
|  | itemCount() { | 
|  | return this._snippets.length; | 
|  | } | 
|  |  | 
|  | /** | 
|  | * @override | 
|  | * @param {number} itemIndex | 
|  | * @return {string} | 
|  | */ | 
|  | itemKeyAt(itemIndex) { | 
|  | return this._snippets[itemIndex].name(); | 
|  | } | 
|  |  | 
|  | /** | 
|  | * @override | 
|  | * @param {number} itemIndex | 
|  | * @param {string} query | 
|  | * @param {!Element} titleElement | 
|  | * @param {!Element} subtitleElement | 
|  | */ | 
|  | renderItem(itemIndex, query, titleElement, subtitleElement) { | 
|  | titleElement.textContent = unescape(this._snippets[itemIndex].name()); | 
|  | titleElement.classList.add('monospace'); | 
|  | QuickOpen.FilteredListWidget.highlightRanges(titleElement, query, true); | 
|  | } | 
|  | } | 
|  |  | 
|  | /* Legacy exported object */ | 
|  | self.Snippets = self.Snippets || {}; | 
|  |  | 
|  | /* Legacy exported object */ | 
|  | Snippets = Snippets || {}; | 
|  |  | 
|  | /** | 
|  | * @constructor | 
|  | */ | 
|  | Snippets.SnippetsQuickOpen = SnippetsQuickOpen; |