text: /**
   * @license
   * Copyright (C) 2016 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() {
    'use strict';
  
    class GrCommitInfo extends Polymer.GestureEventListeners(
        Polymer.LegacyElementMixin(
            Polymer.Element)) {
      static get is() { return 'gr-commit-info'; }
  
      static get properties() {
        return {
          change: Object,
          /** @type {?} */
          commitInfo: Object,
          serverConfig: Object,
          _showWebLink: {
            type: Boolean,
            computed: '_computeShowWebLink(change, commitInfo, serverConfig)',
          },
          _webLink: {
            type: String,
            computed: '_computeWebLink(change, commitInfo, serverConfig)',
          },
        };
      }
  
      _getWeblink(change, commitInfo, config) {
        return Gerrit.Nav.getPatchSetWeblink(
            change.project,
            commitInfo.commit,
            {
              weblinks: commitInfo.web_links,
              config,
            });
      }
  
      _computeShowWebLink(change, commitInfo, serverConfig) {
        // Polymer 2: check for undefined
        if ([change, commitInfo, serverConfig].some(arg => arg === undefined)) {
          return undefined;
        }
  
        const weblink = this._getWeblink(change, commitInfo, serverConfig);
        return !!weblink && !!weblink.url;
      }
  
      _computeWebLink(change, commitInfo, serverConfig) {
        // Polymer 2: check for undefined
        if ([change, commitInfo, serverConfig].some(arg => arg === undefined)) {
          return undefined;
        }
  
        const {url} = this._getWeblink(change, commitInfo, serverConfig) || {};
        return url;
      }
  
      _computeShortHash(commitInfo) {
        const {name} =
              this._getWeblink(this.change, commitInfo, this.serverConfig) || {};
        return name;
      }
    }
  
    customElements.define(GrCommitInfo.is, GrCommitInfo);
  })();
  