blob: 99028af7da6e5d9685c52b9f7c902e46b2b9aa7d [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.js';
export const htmlTemplate = html`
<style include="shared-styles">
:host {
display: inline-block;
}
.dropdown-trigger {
text-decoration: none;
width: 100%;
}
.dropdown-content {
background-color: var(--dropdown-background-color);
box-shadow: var(--elevation-level-2);
}
gr-button {
@apply --gr-button;
}
gr-avatar {
height: 2em;
width: 2em;
vertical-align: middle;
}
gr-button[link]:focus {
outline: 5px auto -webkit-focus-ring-color;
}
ul {
list-style: none;
}
.topContent,
li {
border-bottom: 1px solid var(--border-color);
}
li:last-of-type {
border: none;
}
li .itemAction {
cursor: pointer;
display: block;
padding: var(--spacing-m) var(--spacing-l);
}
li .itemAction {
@apply --gr-dropdown-item;
}
li .itemAction.disabled {
color: var(--deemphasized-text-color);
cursor: default;
}
li .itemAction:link,
li .itemAction:visited {
text-decoration: none;
}
li .itemAction:not(.disabled):hover {
background-color: var(--hover-background-color);
}
li:focus,
li.selected {
background-color: var(--selection-background-color);
outline: none;
}
li:focus .itemAction,
li.selected .itemAction {
background-color: transparent;
}
.topContent {
display: block;
padding: var(--spacing-m) var(--spacing-l);
@apply --gr-dropdown-item;
}
.bold-text {
font-weight: var(--font-weight-bold);
}
</style>
<gr-button link="[[link]]" class="dropdown-trigger" id="trigger" down-arrow="[[downArrow]]" on-click="_dropdownTriggerTapHandler">
<slot></slot>
</gr-button>
<iron-dropdown id="dropdown" vertical-align="top" vertical-offset="[[verticalOffset]]" allow-outside-scroll="true" horizontal-align="[[horizontalAlign]]" on-click="_handleDropdownClick">
<div class="dropdown-content" slot="dropdown-content">
<ul>
<template is="dom-if" if="[[topContent]]">
<div class="topContent">
<template is="dom-repeat" items="[[topContent]]" as="item" initial-count="75">
<div class\$="[[_getClassIfBold(item.bold)]] top-item" tabindex="-1">
[[item.text]]
</div>
</template>
</div>
</template>
<template is="dom-repeat" items="[[items]]" as="link" initial-count="75">
<li tabindex="-1">
<gr-tooltip-content has-tooltip="[[_computeHasTooltip(link.tooltip)]]" title\$="[[link.tooltip]]">
<span class\$="itemAction [[_computeDisabledClass(link.id, disabledIds.*)]]" data-id\$="[[link.id]]" on-click="_handleItemTap" hidden\$="[[link.url]]" tabindex="-1">[[link.name]]</span>
<a class="itemAction" href\$="[[_computeLinkURL(link)]]" download\$="[[_computeIsDownload(link)]]" rel\$="[[_computeLinkRel(link)]]" target\$="[[link.target]]" hidden\$="[[!link.url]]" tabindex="-1">[[link.name]]</a>
</gr-tooltip-content>
</li>
</template>
</ul>
</div>
</iron-dropdown>
<gr-cursor-manager id="cursor" cursor-target-class="selected" scroll-behavior="never" focus-on-move="" stops="[[_listElements]]"></gr-cursor-manager>
<gr-rest-api-interface id="restAPI"></gr-rest-api-interface>
`;