blob: 8ea0d21be1f9467df452ce6ac62e7383aad37590 [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="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-mode="never"
focus-on-move=""
stops="[[_listElements]]"
></gr-cursor-manager>
<gr-rest-api-interface id="restAPI"></gr-rest-api-interface>
`;