'use strict'
/*
Open Rowing Monitor, https://github.com/laberning/openrowingmonitor
Component that renders the action buttons of the dashboard
*/
import { AppElement, html, css } from './AppElement.js'
import { customElement, property, query, queryAll, state } from 'lit/decorators.js'
import { icon_settings } from '../lib/icons.js'
import './AppDialog.js'
import { DASHBOARD_METRICS } from '../store/dashboardMetrics.js'
@customElement('settings-dialog')
export class DashboardActions extends AppElement {
static styles = css`
.metric-selector-feedback{
font-size: 0.5em;
padding-top: 8px;
}
.settings-dialog>div.metric-selector{
display: grid;
grid-template-columns: repeat(3,max-content);
gap: 8px;
}
.experimental-settings {
display: flex;
flex-direction: column;
}
.experimental-settings label {
width: fit-content;
margin-top: 8px;
font-size: 0.7em;
}
.experimental-settings label>input {
font-size: 0.7em;
}
.settings-dialog>div>label{
font-size: 0.6em;
width: fit-content;
}
input[type="checkbox"]{
cursor: pointer;
align-self: center;
width: 1.5em;
height: 1.5em;
}
label>span {
cursor: pointer;
-webkit-user-select: none;
user-select: none;
}
.icon {
height: 1.6em;
}
legend{
text-align: center;
}
table {
min-height: 70px;
margin-top: 8px;
width: 100%;
}
table, th, td {
font-size: 0.9em;
border: 1px solid white;
border-collapse: collapse;
}
tr {
height: 50%;
}
th, td {
padding: 8px;
text-align: center;
background-color: var(--theme-widget-color);
}
.show-icons-selector {
display: flex;
gap: 8px;
}
app-dialog > *:last-child {
margin-bottom: -24px;
}
`
@property({ type: Object })
config = {}
@queryAll('.metric-selector input')
_inputs
@query('input[name="showIcons"]')
_showIconInput
@query('input[name="maxNumberOfTiles"]')
_maxNumberOfTilesInput
@state()
_selectedMetrics = []
@state()
_sumSelectedSlots = 0
@state()
_isValid = false
@state()
_showIcons = true
@state()
_maxNumberOfTiles = 8
render () {
return html`
Select metrics to be shown:
Experimental settings:
${this.renderSelectedMetrics()}