| /** |
| * @license |
| * Copyright (C) 2021 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. |
| */ |
| import {html} from '@polymer/polymer/lib/utils/html-tag'; |
| |
| export const htmlTemplate = html` |
| <style include="gr-font-styles"> |
| /* Workaround for empty style block - see https://github.com/Polymer/tools/issues/408 */ |
| </style> |
| <style include="gr-hovercard-shared-style"> |
| #container { |
| min-width: 356px; |
| max-width: 356px; |
| padding: var(--spacing-xl) 0 var(--spacing-m) 0; |
| } |
| section.label { |
| display: table-row; |
| } |
| .label-title { |
| min-width: 10em; |
| padding-top: var(--spacing-s); |
| } |
| .label-value { |
| padding-top: var(--spacing-s); |
| } |
| .label-title, |
| .label-value { |
| display: table-cell; |
| vertical-align: top; |
| } |
| .row { |
| display: flex; |
| } |
| .title { |
| color: var(--deemphasized-text-color); |
| margin-right: var(--spacing-m); |
| } |
| div.section { |
| margin: 0 var(--spacing-xl) var(--spacing-m) var(--spacing-xl); |
| display: flex; |
| } |
| div.sectionIcon { |
| flex: 0 0 30px; |
| } |
| div.sectionIcon iron-icon { |
| position: relative; |
| top: 2px; |
| width: 20px; |
| height: 20px; |
| } |
| .condition { |
| background-color: var(--gray-background); |
| padding: var(--spacing-m); |
| flex-grow: 1; |
| } |
| .expression { |
| color: var(--gray-foreground); |
| } |
| iron-icon.check { |
| color: var(--success-foreground); |
| } |
| iron-icon.close { |
| color: var(--warning-foreground); |
| } |
| .showConditions iron-icon { |
| color: inherit; |
| } |
| div.showConditions { |
| border-top: 1px solid var(--border-color); |
| margin-top: var(--spacing-m); |
| padding: var(--spacing-m) var(--spacing-xl) 0; |
| } |
| </style> |
| <div id="container" role="tooltip" tabindex="-1"> |
| <div class="section"> |
| <div class="sectionIcon"> |
| <iron-icon |
| class$="[[computeIcon(requirement.status)]]" |
| icon="gr-icons:[[computeIcon(requirement.status)]]" |
| ></iron-icon> |
| </div> |
| <div class="sectionContent"> |
| <h3 class="name heading-3"> |
| <span>[[requirement.name]]</span> |
| </h3> |
| </div> |
| </div> |
| <div class="section"> |
| <div class="sectionIcon"> |
| <iron-icon class="small" icon="gr-icons:info-outline"></iron-icon> |
| </div> |
| <div class="sectionContent"> |
| <div class="row"> |
| <div class="title">Status</div> |
| <div>[[requirement.status]]</div> |
| </div> |
| </div> |
| </div> |
| <div class="section"> |
| <template is="dom-repeat" items="[[_labels]]"> |
| <section class="label"> |
| <div class="label-title"> |
| <gr-limited-text |
| class="name" |
| limit="25" |
| text="[[item.labelName]]" |
| ></gr-limited-text> |
| </div> |
| <div class="label-value"> |
| <gr-label-info |
| change="{{change}}" |
| account="[[account]]" |
| mutable="[[mutable]]" |
| label="[[item.labelName]]" |
| label-info="[[item.labelInfo]]" |
| ></gr-label-info> |
| </div> |
| </section> |
| </template> |
| </div> |
| <template is="dom-if" if="[[!expanded]]"> |
| <div class="showConditions"> |
| <gr-button |
| link="" |
| class="showConditions" |
| on-click="_handleShowConditions" |
| > |
| View condition |
| <iron-icon icon="gr-icons:expand-more"></iron-icon |
| ></gr-button> |
| </div> |
| </template> |
| <template is="dom-if" if="[[expanded]]"> |
| <div class="section"> |
| <div class="sectionIcon"> |
| <iron-icon icon="gr-icons:description"></iron-icon> |
| </div> |
| <div class="sectionContent">[[requirement.description]]</div> |
| </div> |
| <div class="section"> |
| <div class="sectionIcon"></div> |
| <div class="sectionContent condition"> |
| Blocking condition:<br /> |
| <span class="expression"> |
| [[renderCondition(requirement.submittability_expression_result)]] |
| </span> |
| </div> |
| </div> |
| <template |
| is="dom-if" |
| if="[[requirement.applicability_expression_result]]" |
| > |
| <div class="section"> |
| <div class="sectionIcon"></div> |
| <div class="sectionContent condition"> |
| Application condition:<br /> |
| <span class="expression"> |
| [[renderCondition(requirement.applicability_expression_result)]] |
| </span> |
| </div> |
| </div> |
| </template> |
| <template is="dom-if" if="[[requirement.override_expression_result]]"> |
| <div class="section"> |
| <div class="sectionIcon"></div> |
| <div class="sectionContent condition"> |
| Override condition:<br /> |
| <span class="expression"> |
| [[renderCondition(requirement.override_expression_result)]] |
| </span> |
| </div> |
| </div> |
| </template> |
| </template> |
| </div> |
| `; |