Skip to content

Commit b881725

Browse files
committed
completely finished with new knobs
1 parent d34c941 commit b881725

7 files changed

Lines changed: 40 additions & 49 deletions

File tree

ui/src/app/app.component.html

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<!-- <div #container class="container">
1+
<div #container class="container">
22
<eqm-loading class="loader" *ngIf="!loaded"></eqm-loading>
33
<eqm-header class="header"
44
(settingsToggled)="toggleDropdownSection('settings')"
@@ -29,9 +29,4 @@
2929
<eqm-outputs></eqm-outputs>
3030
<eqm-tooltip-container></eqm-tooltip-container>
3131
</div>
32-
-->
33-
<div style="background-color: #2C2C2E; padding: 20px">
34-
<eqm-knob size="large"></eqm-knob>
35-
<eqm-knob size="medium"></eqm-knob>
36-
<eqm-knob size="small"></eqm-knob>
37-
</div>
32+

ui/src/app/app.component.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,15 +39,15 @@ export class AppComponent implements OnInit, AfterContentInit {
3939
) { }
4040

4141
async ngOnInit () {
42-
// this.sync()
43-
// this.analytics.send()
42+
this.sync()
43+
this.analytics.send()
4444
}
4545

4646
async ngAfterContentInit () {
47-
// await this.utils.delay(this.animationDuration)
48-
// this.syncDimensions()
49-
// this.startDimensionsSync()
50-
// this.loaded = true
47+
await this.utils.delay(this.animationDuration)
48+
this.syncDimensions()
49+
this.startDimensionsSync()
50+
this.loaded = true
5151
}
5252

5353
async sync () {

ui/src/app/modules/eqmac-components/assets/knobs/medium/cap.svg

Lines changed: 1 addition & 0 deletions
Loading

ui/src/app/modules/eqmac-components/assets/knobs/small/cap.svg

Lines changed: 1 addition & 0 deletions
Loading

ui/src/app/modules/eqmac-components/components/knob/knob.component.html

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,16 @@
1010
<div class="cap">
1111
<svg width="58px" height="58px">
1212
<defs>
13-
<clipPath id="large-knob-cap-clip-path" clipPathUnits="objectBoundingBox" [ngStyle]="getLargeCapClipPathStyle()">
13+
<clipPath [id]="'large-knob-cap-clip-path-' + id" clipPathUnits="objectBoundingBox" width="58px" height="58px" [ngStyle]="largeCapClipPathStyle">
1414
<path d="M0.95,0.28C0.93,0.36,0.95,0.43,1,0.5c0,0,0,0,0,0c0,0.08-0.02,0.15-0.05,0.22C0.88,0.75,0.83,0.81,0.81,0.89
1515
C0.75,0.94,0.68,0.97,0.6,0.99c-0.07-0.03-0.13-0.03-0.2,0c-0.08-0.02-0.15-0.05-0.21-0.1C0.17,0.81,0.12,0.75,0.05,0.72
1616
C0.02,0.65,0,0.58,0,0.5c0,0,0,0,0,0c0.05-0.06,0.07-0.14,0.05-0.22C0.09,0.21,0.14,0.14,0.2,0.1c0.07,0,0.13-0.03,0.17-0.08
1717
C0.42,0.01,0.46,0,0.5,0c0.04,0,0.09,0.01,0.12,0.02C0.67,0.07,0.73,0.1,0.8,0.1C0.86,0.14,0.91,0.21,0.95,0.28z"/>
1818
</clipPath>
1919
</defs>
2020
</svg>
21-
<div class="cap-body"></div>
22-
<div class="indicator" [ngStyle]="getLargeCapIndicatorStyle()">
21+
<div class="cap-body" [ngStyle]="largeCapBodyStyle"></div>
22+
<div class="indicator" [ngStyle]="largeCapIndicatorStyle">
2323
<img class="inner-line" src="assets/knobs/large/cap-inner-line.svg" onload="SVGInject(this)"/>
2424
<div class="pointer"></div>
2525
</div>
@@ -31,7 +31,7 @@
3131
<img class="scale" src="assets/knobs/medium/scale.svg" onload="SVGInject(this)" />
3232
<div class="slot"></div>
3333
<div class="body"></div>
34-
<div class="cap" [ngStyle]="getMediumCapIndicatorStyle()">
34+
<div class="cap" [ngStyle]="mediumCapIndicatorStyle">
3535
<img src="assets/knobs/medium/cap.svg" onload="SVGInject(this)" />
3636
</div>
3737
</div>
@@ -42,7 +42,7 @@
4242
<div class="slot"></div>
4343
<div class="body"></div>
4444

45-
<div class="cap" [ngStyle]="getSmallCapIndicatorStyle()">
45+
<div class="cap" [ngStyle]="smallCapIndicatorStyle">
4646
<img src="assets/knobs/small/cap.svg" onload="SVGInject(this)" />
4747
</div>
4848
</div>

ui/src/app/modules/eqmac-components/components/knob/knob.component.scss

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -68,21 +68,16 @@
6868
.cap {
6969
@include center();
7070
@include size(58px);
71-
filter: drop-shadow(0 -0.1px 0px #FFF3)
72-
drop-shadow(0 1px 0.5px black);
73-
74-
#large-knob-cap-clip-path {
75-
@include size(58px);
76-
transform-origin: 50% 50%;
77-
}
71+
filter: drop-shadow(0 -1px 0px #FFF3)
72+
drop-shadow(0 2px 5px black);
7873

7974
.cap-body {
8075
@include center();
8176
@include size(58px);
8277
// @include shadow(2px, 0px);
8378

8479
background-image: linear-gradient(to bottom, #51555A, #3C4045);
85-
clip-path: url('#large-knob-cap-clip-path');
80+
// clip-path: url('#large-knob-cap-clip-path');
8681
}
8782

8883
.indicator {

ui/src/app/modules/eqmac-components/components/knob/knob.component.ts

Lines changed: 22 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import {
99
HostBinding,
1010
ElementRef
1111
} from '@angular/core'
12-
12+
import * as uuid from 'uuid/v4'
1313
import { UtilitiesService } from '../../services/utilities.service'
1414

1515
export interface KnobValueChangedEvent {
@@ -24,7 +24,7 @@ export interface KnobValueChangedEvent {
2424
export class KnobComponent implements OnInit {
2525
@Input() size: 'large' | 'medium' | 'small' = 'medium'
2626
@Input() showScale = true
27-
27+
id = uuid()
2828
private _min = -1
2929
@Input() set min (newMin) { this._min = newMin; this.calculateMiddleValue() }
3030
get min () { return this._min }
@@ -44,7 +44,6 @@ export class KnobComponent implements OnInit {
4444
@Output() stickedToMiddle = new EventEmitter()
4545

4646
private dragging = false
47-
private padding = 5
4847
private setDraggingFalseTimeout: any = null
4948
private continueAnimation = false
5049
private dragStartDegr = 0
@@ -77,7 +76,6 @@ export class KnobComponent implements OnInit {
7776
}
7877
this._value = this.clampValue(value)
7978
this.valueChange.emit(this._value)
80-
this.setKnobImage(this._value)
8179
}
8280
get value () {
8381
return this._value
@@ -93,7 +91,6 @@ export class KnobComponent implements OnInit {
9391

9492
async ngOnInit () {
9593
this.container = this.containerRef.nativeElement
96-
this.setKnobImage(this._value)
9794
}
9895

9996
mouseWheel (event) {
@@ -143,7 +140,7 @@ export class KnobComponent implements OnInit {
143140
if (this.dragging) {
144141
this.continueAnimation = false
145142
const distanceFromCenter = this.getDistanceFromCenterOfElementAndEvent(event)
146-
const unaffectedRadius = (this.container.clientWidth + this.padding * 2) / 7
143+
const unaffectedRadius = (this.container.clientWidth) / 7
147144
if (distanceFromCenter < unaffectedRadius) {
148145
return
149146
}
@@ -184,28 +181,35 @@ export class KnobComponent implements OnInit {
184181
}
185182
}
186183

187-
largeCapMaxAngle = 130
188-
getLargeCapClipPathStyle () {
184+
largeCapMaxAngle = 135
185+
get largeCapClipPathStyle () {
189186
return {
190-
transform: `rotate(${this.utils.mapValue(this.value, this.min, this.max, -this.largeCapMaxAngle, this.largeCapMaxAngle)}deg)`
187+
transform: `rotate(${this.utils.mapValue(this.value, this.min, this.max, -this.largeCapMaxAngle, this.largeCapMaxAngle)}deg)`,
188+
'transform-origin': '50% 50%'
191189
}
192190
}
193191

194-
getLargeCapIndicatorStyle () {
192+
get largeCapIndicatorStyle () {
195193
return {
196194
transform: `translate(-50%, -50%) rotate(${this.utils.mapValue(this.value, this.min, this.max, -this.largeCapMaxAngle, this.largeCapMaxAngle)}deg)`
197195
}
198196
}
199197

198+
get largeCapBodyStyle () {
199+
return {
200+
'clip-path': `url(#large-knob-cap-clip-path-${this.id})`
201+
}
202+
}
203+
200204
mediumCapMaxAngle = 135
201-
getMediumCapIndicatorStyle () {
205+
get mediumCapIndicatorStyle () {
202206
return {
203207
transform: `translate(-50%, -50%) rotate(${this.utils.mapValue(this.value, this.min, this.max, -this.mediumCapMaxAngle, this.mediumCapMaxAngle)}deg)`
204208
}
205209
}
206210

207211
smallCapMaxAngle = 135
208-
getSmallCapIndicatorStyle () {
212+
get smallCapIndicatorStyle () {
209213
return {
210214
transform: `translate(-50%, -50%) rotate(${this.utils.mapValue(this.value, this.min, this.max, -this.smallCapMaxAngle, this.smallCapMaxAngle)}deg)`
211215
}
@@ -235,17 +239,17 @@ export class KnobComponent implements OnInit {
235239
}
236240

237241
private getDegreesFromEvent (event) {
238-
const coords = this.utils.getCoordinatesInsideElementFromEvent(event)
239-
const knobCenterX = (this.container.clientWidth + this.padding * 2) / 2
240-
const knobCenterY = (this.container.clientHeight + this.padding * 2) / 2
242+
const coords = this.utils.getCoordinatesInsideElementFromEvent(event, this.container)
243+
const knobCenterX = (this.container.clientWidth) / 2
244+
const knobCenterY = (this.container.clientHeight) / 2
241245
const rads = Math.atan2(coords.x - knobCenterX, coords.y - knobCenterY)
242246
return rads * 100
243247
}
244248

245249
private getDistanceFromCenterOfElementAndEvent (event) {
246-
const coords = this.utils.getCoordinatesInsideElementFromEvent(event)
247-
const knobCenterX = (this.container.clientWidth + this.padding * 2) / 2
248-
const knobCenterY = (this.container.clientHeight + this.padding * 2) / 2
250+
const coords = this.utils.getCoordinatesInsideElementFromEvent(event, this.container)
251+
const knobCenterX = (this.container.clientWidth) / 2
252+
const knobCenterY = (this.container.clientHeight) / 2
249253
const w = coords.x - knobCenterX
250254
const h = coords.y - knobCenterY
251255
return Math.sqrt(w * w + h * h)
@@ -262,9 +266,4 @@ export class KnobComponent implements OnInit {
262266

263267
return value
264268
}
265-
266-
private setKnobImage (value: number) {
267-
268-
}
269-
270269
}

0 commit comments

Comments
 (0)