|
1 | 1 | <div class="line-wrapper"> |
2 | | - <div class="filler"><canvas #canvasMainRef class="line-canvas"></canvas></div> |
| 2 | + <div class="filler"> |
| 3 | + <canvas #canvasMainRef class="line-canvas"></canvas> |
| 4 | + </div> |
3 | 5 | <div class="buttons-container"> |
4 | | - <button mat-flat-button class="button select-button" (click)="toggleMode()"> |
| 6 | + <button mat-flat-button class="button select-button" matTooltip="Select the control mode" (click)="toggleMode()"> |
5 | 7 | <mat-icon class="buttons-svg-icon"> |
6 | 8 | <svg |
7 | 9 | width="100%" |
8 | 10 | height="100%" |
9 | | - viewBox="0 0 100 14" |
| 11 | + viewBox="0 0 80 14" |
10 | 12 | preserveAspectRatio="xMidYMid meet" |
11 | 13 | class="svg-content"> |
12 | | - <text xml:space="preserve" x="50" y="9">⋮</text> |
| 14 | + <text x="40" y="9">⋮</text> |
13 | 15 | </svg> |
14 | 16 | </mat-icon> |
15 | 17 | </button> |
|
21 | 23 | viewBox="0 0 70 18" |
22 | 24 | preserveAspectRatio="xMidYMid meet" |
23 | 25 | class="svg-content pin"> |
24 | | - <text xml:space="preserve" x="33" y="14">{{ portBiasValue() }}</text> |
| 26 | + <text x="33" y="14">{{ portBiasValue() }}</text> |
25 | 27 | </svg> |
26 | 28 | </div> |
27 | 29 | <div class="len-bias-container"> |
|
31 | 33 | viewBox="0 0 90 12" |
32 | 34 | preserveAspectRatio="xMidYMid meet" |
33 | 35 | class="svg-content len-bias"> |
34 | | - <text xml:space="preserve" x="45" y="9"> |
| 36 | + <text x="45" y="9"> |
35 | 37 | <tspan class="pin">⚑</tspan> |
36 | 38 | {{ lineLengthValue() }} |
37 | 39 | <tspan class="boat">⚑</tspan> |
|
45 | 47 | viewBox="0 0 70 18" |
46 | 48 | preserveAspectRatio="xMidYMid meet" |
47 | 49 | class="svg-content boat"> |
48 | | - <text xml:space="preserve" x="33" y="14">{{ stbBiasValue() }}</text> |
| 50 | + <text x="33" y="14">{{ stbBiasValue() }}</text> |
49 | 51 | </svg> |
50 | 52 | </div> |
51 | 53 | } @case (1) { |
52 | 54 | <button |
53 | 55 | mat-flat-button |
54 | 56 | class="button port-button" |
| 57 | + matTooltip="Set the port(pin) end of the line to the current position" |
55 | 58 | (click)="setLineEnd('port')"> |
56 | 59 | <mat-icon class="buttons-svg-icon"> |
57 | 60 | <svg |
|
60 | 63 | viewBox="0 0 100 14" |
61 | 64 | preserveAspectRatio="xMidYMid meet" |
62 | 65 | class="svg-content"> |
63 | | - <text xml:space="preserve" x="50" y="11">Port End</text> |
| 66 | + <text x="50" y="11">Port End</text> |
64 | 67 | </svg> |
65 | 68 | </mat-icon> |
66 | 69 | </button> |
67 | 70 | <button |
68 | 71 | mat-flat-button |
69 | 72 | class="button starboard-button" |
| 73 | + matTooltip="Set the starboard(boat) end of the line to the current position" |
70 | 74 | (click)="setLineEnd('stb')"> |
71 | 75 | <mat-icon class="buttons-svg-icon"> |
72 | 76 | <svg |
|
75 | 79 | viewBox="0 0 100 14" |
76 | 80 | preserveAspectRatio="xMidYMid meet" |
77 | 81 | class="svg-content"> |
78 | | - <text xml:space="preserve" x="50" y="11">Stbd End</text> |
| 82 | + <text x="50" y="11">Stbd End</text> |
79 | 83 | </svg> |
80 | 84 | </mat-icon> |
81 | 85 | </button> |
82 | 86 | } @case (2) { |
83 | 87 | <button |
84 | 88 | mat-flat-button |
85 | 89 | class="button port-small-button" |
| 90 | + matTooltip="Increase the line length by 5m at the port(pin) end" |
86 | 91 | (click)="adjustLineEnd('port', 5, 0)"> |
87 | 92 | <mat-icon class="buttons-svg-icon"> |
88 | 93 | <svg |
89 | 94 | width="100%" |
90 | 95 | height="100%" |
91 | | - viewBox="0 0 100 14" |
| 96 | + viewBox="0 0 50 14" |
92 | 97 | preserveAspectRatio="xMidYMid meet" |
93 | 98 | class="svg-content"> |
94 | | - <text xml:space="preserve" x="50" y="12">+5m</text> |
| 99 | + <text x="25" y="11">+5m</text> |
95 | 100 | </svg> |
96 | 101 | </mat-icon> |
97 | 102 | </button> |
98 | 103 | <button |
99 | 104 | mat-flat-button |
100 | 105 | class="button port-small-button" |
| 106 | + matTooltip="Decrease the line length by 5m at the port(pin) end" |
101 | 107 | (click)="adjustLineEnd('port', -5, 0)"> |
102 | 108 | <mat-icon class="buttons-svg-icon"> |
103 | 109 | <svg |
104 | 110 | width="100%" |
105 | 111 | height="100%" |
106 | | - viewBox="0 0 100 14" |
107 | | - preserveAspectRatio="xMidYMid meet" |
108 | | - class="svg-content"> |
109 | | - <text xml:space="preserve" x="50" y="12">-5m</text> |
110 | | - </svg> |
111 | | - </mat-icon> |
112 | | - </button> |
113 | | - <button |
114 | | - mat-flat-button |
115 | | - class="button starboard-small-button" |
116 | | - (click)="adjustLineEnd('stb', 5, 0)"> |
117 | | - <mat-icon class="buttons-svg-icon"> |
118 | | - <svg |
119 | | - width="100%" |
120 | | - height="100%" |
121 | | - viewBox="0 0 100 14" |
| 112 | + viewBox="0 0 50 14" |
122 | 113 | preserveAspectRatio="xMidYMid meet" |
123 | 114 | class="svg-content"> |
124 | | - <text xml:space="preserve" x="50" y="12">+5m</text> |
| 115 | + <text x="25" y="11">-5m</text> |
125 | 116 | </svg> |
126 | 117 | </mat-icon> |
127 | 118 | </button> |
128 | 119 | <button |
129 | 120 | mat-flat-button |
130 | 121 | class="button starboard-small-button" |
| 122 | + matTooltip="Decrease the line length by 5m at the starboard(boat) end" |
131 | 123 | (click)="adjustLineEnd('stb', -5, 0)"> |
132 | 124 | <mat-icon class="buttons-svg-icon"> |
133 | 125 | <svg |
134 | 126 | width="100%" |
135 | 127 | height="100%" |
136 | | - viewBox="0 0 100 14" |
| 128 | + viewBox="0 0 50 14" |
137 | 129 | preserveAspectRatio="xMidYMid meet" |
138 | 130 | class="svg-content"> |
139 | | - <text xml:space="preserve" x="50" y="12">-5m</text> |
| 131 | + <text x="25" y="11">-5m</text> |
140 | 132 | </svg> |
141 | 133 | </mat-icon> |
142 | 134 | </button> |
143 | 135 | <button |
144 | 136 | mat-flat-button |
145 | 137 | class="button starboard-small-button" |
146 | | - (click)="adjustLineEnd('stb', -5, 0)"> |
| 138 | + matTooltip="Increase the line length by 5m at the starboard(boat) end" |
| 139 | + (click)="adjustLineEnd('stb', 5, 0)"> |
147 | 140 | <mat-icon class="buttons-svg-icon"> |
148 | 141 | <svg |
149 | 142 | width="100%" |
150 | 143 | height="100%" |
151 | | - viewBox="0 0 100 14" |
| 144 | + viewBox="0 0 50 14" |
152 | 145 | preserveAspectRatio="xMidYMid meet" |
153 | 146 | class="svg-content"> |
154 | | - <text xml:space="preserve" x="50" y="12">+5m</text> |
| 147 | + <text x="25" y="11">+5m</text> |
155 | 148 | </svg> |
156 | 149 | </mat-icon> |
157 | 150 | </button> |
158 | 151 | } @case (3) { |
159 | 152 | <button |
160 | 153 | mat-flat-button |
161 | 154 | class="button port-small-button" |
| 155 | + matTooltip="Rotate the line by moving the port(pin) end 1° clockwise" |
162 | 156 | (click)="adjustLineEnd('port', 0, toRadians(1))"> |
163 | 157 | <mat-icon class="buttons-svg-icon"> |
164 | 158 | <svg |
165 | 159 | width="100%" |
166 | 160 | height="100%" |
167 | | - viewBox="0 0 100 14" |
| 161 | + viewBox="0 0 50 14" |
168 | 162 | preserveAspectRatio="xMidYMid meet" |
169 | 163 | class="svg-content"> |
170 | | - <text xml:space="preserve" x="50" y="12">↑1°</text> |
| 164 | + <text x="25" y="11">↑1°</text> |
171 | 165 | </svg> |
172 | 166 | </mat-icon> |
173 | 167 | </button> |
174 | 168 | <button |
175 | 169 | mat-flat-button |
176 | 170 | class="button port-small-button" |
| 171 | + matTooltip="Rotate the line by moving the port(pin) end 1° counter-clockwise" |
177 | 172 | (click)="adjustLineEnd('port', 0, toRadians(-1))"> |
178 | 173 | <mat-icon class="buttons-svg-icon"> |
179 | 174 | <svg |
180 | 175 | width="100%" |
181 | 176 | height="100%" |
182 | | - viewBox="0 0 100 14" |
| 177 | + viewBox="0 0 50 14" |
183 | 178 | preserveAspectRatio="xMidYMid meet" |
184 | 179 | class="svg-content"> |
185 | | - <text xml:space="preserve" x="50" y="12">↓1°</text> |
| 180 | + <text x="25" y="11">↓1°</text> |
186 | 181 | </svg> |
187 | 182 | </mat-icon> |
188 | 183 | </button> |
189 | 184 | <button |
190 | 185 | mat-flat-button |
191 | 186 | class="button starboard-small-button" |
| 187 | + matTooltip="Rotate the line by moving the starboard(boat) end 1° counter-clockwise" |
192 | 188 | (click)="adjustLineEnd('stb', 0, toRadians(1))"> |
193 | 189 | <mat-icon class="buttons-svg-icon"> |
194 | 190 | <svg |
195 | 191 | width="100%" |
196 | 192 | height="100%" |
197 | | - viewBox="0 0 100 14" |
| 193 | + viewBox="0 0 50 14" |
198 | 194 | preserveAspectRatio="xMidYMid meet" |
199 | 195 | class="svg-content"> |
200 | | - <text xml:space="preserve" x="50" y="12">↑1°</text> |
| 196 | + <text x="25" y="11">↓1°</text> |
201 | 197 | </svg> |
202 | 198 | </mat-icon> |
203 | 199 | </button> |
204 | 200 | <button |
205 | 201 | mat-flat-button |
206 | 202 | class="button starboard-small-button" |
| 203 | + matTooltip="Rotate the line by moving the starboard(boat) end 1° clockwise" |
207 | 204 | (click)="adjustLineEnd('stb', 0, toRadians(-1))"> |
208 | 205 | <mat-icon class="buttons-svg-icon"> |
209 | 206 | <svg |
210 | 207 | width="100%" |
211 | 208 | height="100%" |
212 | | - viewBox="0 0 100 14" |
| 209 | + viewBox="0 0 50 14" |
213 | 210 | preserveAspectRatio="xMidYMid meet" |
214 | 211 | class="svg-content"> |
215 | | - <text xml:space="preserve" x="50" y="12">↓1°</text> |
| 212 | + <text x="25" y="11">↑1°</text> |
216 | 213 | </svg> |
217 | 214 | </mat-icon> |
218 | 215 | </button> |
| 216 | + } @case (4) { |
| 217 | + <button |
| 218 | + mat-flat-button |
| 219 | + class="button select-button" |
| 220 | + matTooltip="Display the next named line" |
| 221 | + (click)="nextDisplayLineName()"> |
| 222 | + <mat-icon class="buttons-svg-icon"> |
| 223 | + <svg |
| 224 | + width="100%" |
| 225 | + height="100%" |
| 226 | + viewBox="0 0 50 14" |
| 227 | + preserveAspectRatio="xMidYMid meet" |
| 228 | + class="svg-content"> |
| 229 | + <text x="25" y="11">Line</text> |
| 230 | + </svg> |
| 231 | + </mat-icon> |
| 232 | + </button> |
| 233 | + <button |
| 234 | + mat-flat-button |
| 235 | + class="button {{isDisplayLineCurrent() ? 'line-button-current' : 'line-button'}}" |
| 236 | + matTooltip="Set the {{ getDisplayLineName()}} line as the current line" |
| 237 | + (click)="setStartLine(getDisplayLineName())"> |
| 238 | + <mat-icon class="buttons-svg-icon"> |
| 239 | + <svg |
| 240 | + width="100%" |
| 241 | + height="100%" |
| 242 | + viewBox="0 0 150 14" |
| 243 | + preserveAspectRatio="xMidYMid meet" |
| 244 | + class="svg-content"> |
| 245 | + <text x="75" y="11">{{ getDisplayLineName() }}</text> |
| 246 | + </svg> |
| 247 | + </mat-icon> |
| 248 | + </button> |
219 | 249 | } } |
220 | 250 | </div> |
221 | 251 | @if (!dashboard.isDashboardStatic()) { |
|
0 commit comments