|  | /** | 
|  | * @license | 
|  | * Copyright (C) 2017 The Android Open Source Project | 
|  | * | 
|  | * Licensed under the Apache License, Version 2.0 (the "License"); | 
|  | * you may not use this file except in compliance with the License. | 
|  | * You may obtain a copy of the License at | 
|  | * | 
|  | * http://www.apache.org/licenses/LICENSE-2.0 | 
|  | * | 
|  | * Unless required by applicable law or agreed to in writing, software | 
|  | * distributed under the License is distributed on an "AS IS" BASIS, | 
|  | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 
|  | * See the License for the specific language governing permissions and | 
|  | * limitations under the License. | 
|  | */ | 
|  | (function(window) { | 
|  | 'use strict'; | 
|  |  | 
|  | // Prevent redefinition. | 
|  | if (window.GrRepoApi) { return; } | 
|  |  | 
|  | function GrRepoApi(plugin) { | 
|  | this._hook = null; | 
|  | this.plugin = plugin; | 
|  | } | 
|  |  | 
|  | GrRepoApi.prototype._createHook = function(title) { | 
|  | this._hook = this.plugin.hook('repo-command').onAttached(element => { | 
|  | const pluginCommand = | 
|  | document.createElement('gr-plugin-repo-command'); | 
|  | pluginCommand.title = title; | 
|  | element.appendChild(pluginCommand); | 
|  | }); | 
|  | }; | 
|  |  | 
|  | GrRepoApi.prototype.createCommand = function(title, callback) { | 
|  | if (this._hook) { | 
|  | console.warn('Already set up.'); | 
|  | return this._hook; | 
|  | } | 
|  | this._createHook(title); | 
|  | this._hook.onAttached(element => { | 
|  | if (callback(element.repoName, element.config) === false) { | 
|  | element.hidden = true; | 
|  | } | 
|  | }); | 
|  | return this; | 
|  | }; | 
|  |  | 
|  | GrRepoApi.prototype.onTap = function(callback) { | 
|  | if (!this._hook) { | 
|  | console.warn('Call createCommand first.'); | 
|  | return this; | 
|  | } | 
|  | this._hook.onAttached(element => { | 
|  | this.plugin.eventHelper(element).on('command-tap', callback); | 
|  | }); | 
|  | return this; | 
|  | }; | 
|  |  | 
|  | window.GrRepoApi = GrRepoApi; | 
|  | })(window); |