blob: c53f386fa8613cb25ea30ced7c0db567a7d183c2 [file] [log] [blame]
/**
* @license
* Copyright (C) 2020 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-voting-styles">
/* Workaround for empty style block - see https://github.com/Polymer/tools/issues/408 */
</style>
<style include="shared-styles">
.labelNameCell,
.buttonsCell,
.selectedValueCell {
padding: var(--spacing-s) var(--spacing-m);
display: table-cell;
}
/* We want the :hover highlight to extend to the border of the dialog. */
.labelNameCell {
padding-left: var(--spacing-xl);
}
.selectedValueCell {
padding-right: var(--spacing-xl);
}
/* This is a trick to let the selectedValueCell take the remaining width. */
.labelNameCell,
.buttonsCell {
white-space: nowrap;
}
.selectedValueCell {
width: 75%;
}
.labelMessage {
color: var(--deemphasized-text-color);
}
gr-button {
min-width: 42px;
box-sizing: border-box;
--gr-button: {
background-color: var(
--button-background-color,
var(--table-header-background-color)
);
padding: 0 var(--spacing-m);
@apply --vote-chip-styles;
}
}
gr-button.iron-selected[vote='max'] {
--button-background-color: var(--vote-color-approved);
}
gr-button.iron-selected[vote='positive'] {
--button-background-color: var(--vote-color-recommended);
--gr-button: {
padding: 0 var(--spacing-m);
border-style: solid;
border-color: var(--vote-outline-recommended);
border-top-left-radius: 1em;
border-top-right-radius: 1em;
border-bottom-right-radius: 1em;
border-bottom-left-radius: 1em;
border-top-width: 1px;
border-right-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
color: var(--chip-color);
}
}
gr-button.iron-selected[vote='min'] {
--button-background-color: var(--vote-color-rejected);
}
gr-button.iron-selected[vote='negative'] {
--button-background-color: var(--vote-color-disliked);
--gr-button: {
padding: 0 var(--spacing-m);
border-style: solid;
border-color: var(--vote-outline-disliked);
border-top-left-radius: 1em;
border-top-right-radius: 1em;
border-bottom-right-radius: 1em;
border-bottom-left-radius: 1em;
border-top-width: 1px;
border-right-width: 1px;
border-bottom-width: 1px;
border-left-width: 1px;
color: var(--chip-color);
}
}
gr-button.iron-selected[vote='neutral'] {
--button-background-color: var(--vote-color-neutral);
}
.placeholder {
display: inline-block;
width: 42px;
height: 1px;
}
.placeholder::before {
content: ' ';
}
.selectedValueCell {
color: var(--deemphasized-text-color);
font-style: italic;
}
.selectedValueCell.hidden {
display: none;
}
@media only screen and (max-width: 50em) {
.selectedValueCell {
display: none;
}
}
</style>
<span class="labelNameCell" id="labelName" aria-hidden="true"
>[[label.name]]</span
>
<div class="buttonsCell">
<template
is="dom-repeat"
items="[[_computeBlankItems(permittedLabels, label.name, 'start')]]"
as="value"
>
<span class="placeholder" data-label$="[[label.name]]"></span>
</template>
<iron-selector
id="labelSelector"
attr-for-selected="data-value"
selected="[[_computeLabelValue(labels, permittedLabels, label)]]"
hidden$="[[!_computeAnyPermittedLabelValues(permittedLabels, label.name)]]"
on-selected-item-changed="_setSelectedValueText"
role="radiogroup"
aria-labelledby="labelName"
>
<template is="dom-repeat" items="[[_items]]" as="value">
<gr-button
role="radio"
vote$="[[_computeVoteAttribute(value, index, _items.length)]]"
has-tooltip=""
data-name$="[[label.name]]"
data-value$="[[value]]"
title$="[[_computeLabelValueTitle(labels, label.name, value)]]"
>
[[value]]</gr-button
>
</template>
</iron-selector>
<template
is="dom-repeat"
items="[[_computeBlankItems(permittedLabels, label.name, 'end')]]"
as="value"
>
<span class="placeholder" data-label$="[[label.name]]"></span>
</template>
<span
class="labelMessage"
hidden$="[[_computeAnyPermittedLabelValues(permittedLabels, label.name)]]"
>
You don't have permission to edit this label.
</span>
</div>
<div
class$="selectedValueCell [[_computeHiddenClass(permittedLabels, label.name)]]"
>
<span id="selectedValueLabel">[[_selectedValueText]]</span>
</div>
`;