<style>
@media (prefers-color-scheme: dark) {
:host {
color: var(--cr-secondary-text-color);
}
}
.add-origin-container {
display: flex;
padding-top: 10px;
}
table {
border-collapse: collapse;
}
table td,
table th {
border: 1px solid #777;
padding-inline-end: 4px;
padding-inline-start: 4px;
}
table th {
background: rgb(224, 236, 255);
color: black;
padding-bottom: 4px;
padding-inline-end: 16px;
padding-top: 4px;
white-space: nowrap;
}
.header-cell-container {
align-items: center;
display: flex;
justify-content: flex-start;
}
table th[data-sort-key] {
cursor: pointer;
}
th div.header-cell-container::after {
content: '▲';
opacity: 0;
}
th.sort-column div.header-cell-container::after {
content: '▲';
opacity: 1;
}
th.sort-column-reverse div.header-cell-container::after {
content: '▼';
opacity: 1;
}
</style>
<div>
<div>Database Rows: [[optionalIntegerToString_(size_.numRows)]]</div>
<div>Database Size: [[kilobytesToString_(size_.onDiskSizeKb)]]</div>
</div>
<table>
<thead>
<tr>
<th data-sort-key="origin" class="sort-column" on-click="onSortClick">
<div class="header-cell-container">
Origin
</div>
</th>
<th data-sort-key="dirty" on-click="onSortClick">
<div class="header-cell-container">
Dirty
</div>
</th>
<th data-sort-key="lastLoaded" on-click="onSortClick">
<div class="header-cell-container">
Last Loaded
</div>
</th>
<th>
<div class="header-cell-container">
<div>
<div>Updates Favicon</div>
<div>In Background</div>
</div>
</div>
</th>
<th>
<div class="header-cell-container">
<div>
<div>Updates Title</div>
<div>In Background</div>
</div>
</div>
</th>
<th>
<div class="header-cell-container">
<div>
<div>Used Audio</div>
<div>In Background</div>
</div>
</div>
</th>
<th data-sort-key="cpuUsage" on-click="onSortClick">
<div class="header-cell-container">
<div>
<div>Average</div>
<div>CPU Usage</div>
</div>
</div>
</th>
<th data-sort-key="memoryUsage" on-click="onSortClick">
<div class="header-cell-container">
<div>
<div>Average Memory</div>
<div>Footprint</div>
</div>
</div>
</th>
<th data-sort-key="loadDuration" on-click="onSortClick">
<div class="header-cell-container">
<div>
<div>Average Load</div>
<div>Time</div>
</div>
</div>
</th>
</tr>
</thead>
<tbody>
<template is="dom-repeat" items="[[rows_]]"
sort="[[computeSortFunction_(sortKey, sortReverse)]]">
<tr>
<td class="origin-cell">[[item.origin]]</td>
<td class="dirty-cell">[[boolToString_(item.isDirty)]]</td>
<td>[[lastUseToString_(item.value.lastLoaded)]]</td>
<td>[[featureToString_(item.value.updatesFaviconInBackground)]]</td>
<td>[[featureToString_(item.value.updatesTitleInBackground)]]</td>
<td>[[featureToString_(item.value.usesAudioInBackground)]]</td>
<td>[[getLoadTimeEstimate_(item, "avgCpuUsageUs")]]</td>
<td>[[getLoadTimeEstimate_(item, "avgFootprintKb")]]</td>
<td>[[getLoadTimeEstimate_(item, "avgLoadDurationUs")]]</td>
</tr>
</template>
</tbody>
</table>
<div class="add-origin-container">
<cr-input id="addOriginInput" label="Add Origin" value="{{newOrigin_}}"
on-keydown="onOriginKeydown_" placeholder="https://example.org"
invalid="[[!isEmptyOrValidOrigin_(newOrigin_)]]"
error-message="The origin must be a valid URL without a path."
autofocus>
<button slot="suffix" label="Add Origin"
on-click="onAddOriginClick_"
disabled="[[!isValidOrigin_(newOrigin_)]]">
<iron-icon icon="cr:check"></iron-icon>
</button>
</cr-input>
</div>