import {LitElement, css, html, svg} from 'lit';
import {customElement, property} from 'lit/decorators.js';
import '../watch/watch';
import {roundedArch} from '../../svghelpers/roundedArch';
import {Tickmark, TickmarkType} from '../watch/tickmark';
@customElement('obc-rudder')
export class ObcRudder extends LitElement {
@property({type: Number}) angle = 0;
@property({type: Number}) setpoint: number | undefined;
@property({type: Boolean}) atSetpoint: boolean = false;
@property({type: Boolean}) touching: boolean = false;
@property({type: Boolean}) disableAutoAtSetpoint: boolean = false;
@property({type: Number}) autoAtSetpointDeadband: number = 2;
@property({type: Number}) maxAngle = 90;
atSetpointCalc(): boolean {
if (this.setpoint === undefined) {
return false;
}
if (this.touching) {
return false;
}
if (!this.disableAutoAtSetpoint) {
return Math.abs(this.angle - this.setpoint) < this.autoAtSetpointDeadband;
}
return this.atSetpoint;
}
override render() {
const barStartAngle = this.angle > 0 ? 180 - this.angle : 180;
const barEndAngle = this.angle > 0 ? 180 : 180 - this.angle;
const bar = svg`