/* Open Rowing Monitor, https://github.com/laberning/openrowingmonitor Component that renders the dashboard */ import { customElement, property } from 'lit/decorators.js' import { metricUnit, metricValue } from '../lib/helper.js' import { icon_bolt, icon_clock, icon_fire, icon_heartbeat, icon_paddle, icon_route, icon_stopwatch } from '../lib/icons.js' import { APP_STATE } from '../store/appState.js' import { AppElement, css, html } from './AppElement' import './BatteryIcon' import './DashboardActions' import './DashboardMetric' @customElement('performance-dashboard') export class PerformanceDashboard extends AppElement { static get styles () { return css` :host { display: grid; height: calc(100vh - 2vw); padding: 1vw; grid-gap: 1vw; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-template-rows: repeat(2, minmax(0, 1fr)); } @media (orientation: portrait) { :host { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: repeat(4, minmax(0, 1fr)); } } dashboard-metric, dashboard-actions { background: var(--theme-widget-color); text-align: center; position: relative; padding: 0.5em 0.2em 0 0.2em; border-radius: var(--theme-border-radius); } dashboard-actions { padding: 0.5em 0 0 0; } ` } render () { const metrics = this.appState.metrics return html` ${metrics?.heartrate ? html` ${metrics?.heartrateBatteryLevel ? html` ` : '' } ` : html``} ` } }