| <style include="cr-page-host-style cr-shared-style cr-hidden-style"> |
| :host { |
| display: flex; |
| flex: 1 0; |
| flex-direction: column; |
| height: 100%; |
| overflow: hidden; |
| z-index: 0; |
| } |
| |
| @media (prefers-color-scheme: dark) { |
| :host { |
| color: var(--cr-secondary-text-color); |
| } |
| } |
| |
| #toolbar { |
| z-index: 1; |
| } |
| |
| :host([has-shadow_]) #drop-shadow { |
| opacity: var(--cr-container-shadow-max-opacity); |
| } |
| |
| downloads-item, |
| #downloadsList { |
| --downloads-card-margin: 24px; |
| --downloads-card-width: 680px; |
| } |
| |
| #downloadsList { |
| min-width: calc( |
| var(--downloads-card-width) + 2 * var(--downloads-card-margin)); |
| } |
| |
| #no-downloads, |
| #downloadsList { |
| flex: 1; |
| } |
| |
| :host([loading]) #no-downloads, |
| :host([loading]) #downloadsList { |
| display: none; |
| } |
| |
| #no-downloads { |
| align-items: center; |
| color: #6e6e6e; |
| display: flex; |
| font-size: 123.1%; |
| font-weight: 500; |
| justify-content: center; |
| /* To avoid overlapping with the header, we need this min-height |
| * until bug 596743 is fixed. */ |
| min-height: min-content; |
| } |
| |
| @media (prefers-color-scheme: dark) { |
| #no-downloads { |
| color: var(--cr-secondary-text-color); |
| } |
| } |
| |
| #no-downloads .illustration { |
| background: url(images/no_downloads.svg) no-repeat |
| center center; |
| background-size: contain; |
| height: 144px; |
| margin-bottom: 32px; |
| } |
| |
| #mainContainer { |
| display: flex; |
| flex: 1; |
| flex-direction: column; |
| height: 100%; |
| overflow-y: overlay; |
| } |
| |
| managed-footnote { |
| border-top: none; |
| /* margin-bottom is needed to compensate for the next element's 21px |
| * margin at the top and 8px padding at the top. This leaves a 12px |
| * padding between this element's content and the top of the next |
| * element's text. */ |
| margin-bottom: calc(-21px - 8px); |
| min-width: calc( |
| var(--downloads-card-width) + 2 * var(--downloads-card-margin)); |
| padding-bottom: 12px; |
| padding-top: 12px; |
| /* The next element spills over this element. This ensures the link |
| * is clickable. */ |
| z-index: 1; |
| } |
| </style> |
| |
| <downloads-toolbar id="toolbar" items="[[items_]]" |
| spinner-active="{{spinnerActive_}}" role="none" |
| on-search-changed="onSearchChanged_"> |
| </downloads-toolbar> |
| <div id="drop-shadow" class="cr-container-shadow"></div> |
| <div id="mainContainer" on-scroll="onScroll_"> |
| <managed-footnote hidden="[[inSearchMode_]]"></managed-footnote> |
| <iron-list id="downloadsList" items="[[items_]]" |
| role="grid" aria-rowcount$="[[items_.length]]" |
| hidden="[[!hasDownloads_]]" scroll-target="mainContainer" |
| preserve-focus> |
| <template> |
| <downloads-item data="[[item]]" tabindex$="[[tabIndex]]" |
| iron-list-tab-index="[[tabIndex]]" last-focused="{{lastFocused_}}" |
| list-blurred="{{listBlurred_}}" focus-row-index="[[index]]"> |
| </downloads-item> |
| </template> |
| </iron-list> |
| <div id="no-downloads" hidden="[[hasDownloads_]]"> |
| <div> |
| <div class="illustration"></div> |
| <span>[[noDownloadsText_(inSearchMode_)]]</span> |
| </div> |
| </div> |
| </div> |
| <cr-toast-manager duration="0"> |
| <cr-button aria-label="$i18n{undoDescription}" on-click="onUndoClick_"> |
| $i18n{undo} |
| </cr-button> |
| </cr-toast-manager> |