Skip to content

Commit 5bc5e1b

Browse files
committed
removed unnecessary key param in Options and added Input, FlatSlider and SkeuomorhSlider options
1 parent 38125b1 commit 5bc5e1b

5 files changed

Lines changed: 98 additions & 39 deletions

File tree

ui/src/app/components/options/options.component.html

Lines changed: 47 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -49,24 +49,54 @@
4949
<div *ngIf="option.type === 'html'" [innerHTML]="option.html"></div>
5050

5151
<!-- Dropdown -->
52-
<div *ngIf="option.type === 'dropdown'">
53-
<eqm-dropdown
54-
[items]="option.items"
55-
[labelParam]="option.labelParam"
56-
[selectedItem]="option.selectedItem"
57-
[numberOfVisibleItems]="option.numberOfVisibleItems"
58-
[placeholder]="option.placeholder"
59-
[noItemsPlaceholder]="option.noItemsPlaceholder"
60-
(itemSelected)="option.itemSelected($event)"
61-
[forceDirection]="option.forceDirection"
62-
[closeOnSelect]="!!option.closeOnSelect"
63-
(refChanged)="option.refChanged && option.refChanged($event)"
64-
></eqm-dropdown>
65-
</div>
52+
<eqm-dropdown *ngIf="option.type === 'dropdown'"
53+
[items]="option.items"
54+
[labelParam]="option.labelParam"
55+
[selectedItem]="option.selectedItem"
56+
[numberOfVisibleItems]="option.numberOfVisibleItems"
57+
[placeholder]="option.placeholder"
58+
[noItemsPlaceholder]="option.noItemsPlaceholder"
59+
(itemSelected)="option.itemSelected($event)"
60+
[forceDirection]="option.forceDirection"
61+
[closeOnSelect]="!!option.closeOnSelect"
62+
(refChanged)="option.refChanged && option.refChanged($event)"
63+
></eqm-dropdown>
6664

67-
<div *ngIf="option.type === 'breadcrumbs'">
68-
<eqm-breadcrumbs [crumbs]="option.crumbs" (crumbClicked)="option.crumbClicked($event)"></eqm-breadcrumbs>
69-
</div>
65+
<!-- Breadcrumbs -->
66+
<eqm-breadcrumbs *ngIf="option.type === 'breadcrumbs'"
67+
[crumbs]="option.crumbs" (crumbClicked)="option.crumbClicked($event)"
68+
></eqm-breadcrumbs>
69+
70+
<!-- Input -->
71+
<eqm-input-field *ngIf="option.type === 'input'"
72+
[text]="option.value" (textChange)="option.changed && option.changed($event)"
73+
(enter)="option.enter && option.enter()"
74+
[placeholder]="option.placeholder"
75+
[editable]="option.editable" [fontSize]="option.fontSize"
76+
[disabled]="!!option.isEnabled && option.isEnabled() === false"
77+
></eqm-input-field>
78+
79+
<!-- Flat Slider -->
80+
<eqm-flat-slider *ngIf="option.type === 'flat-slider'" [enabled]="!option.isEnabled || option.isEnabled() === true"
81+
[orientation]="option.orientation" [thickness]="option.thickness" [color]="option.color"
82+
[value]="option.value" [min]="option.min" [middle]="option.middle" [max]="option.max"
83+
[doubleClickToAnimateToMiddle]="option.doubleClickToAnimateToMiddle"
84+
[animationDuration]="option.animationDuration" [animationFps]="option.animationFps"
85+
[scrollEnabled]="option.scrollEnabled" [stickToMiddle]="option.stickToMiddle"
86+
(valueChange)="option.changed && option.changed($event)"
87+
(userChangedValue)="option.userChangedValue && option.userChangedValue($event)"
88+
(stickedToMiddle)="option.stickedToMiddle && option.stickedToMiddle()"
89+
></eqm-flat-slider>
90+
91+
<!-- Skeuomorph Slider -->
92+
<eqm-skeuomorph-slider *ngIf="option.type === 'skeuomorph-slider'" [disabled]="!!option.isEnabled && option.isEnabled() === false"
93+
[value]="option.value" [min]="option.min" [middle]="option.middle" [max]="option.max"
94+
[animationDuration]="option.animationDuration" [animationFps]="option.animationFps"
95+
[scrollEnabled]="option.scrollEnabled" [stickToMiddle]="option.stickToMiddle"
96+
(valueChange)="option.changed && option.changed($event)"
97+
(userChangedValue)="option.userChangedValue && option.userChangedValue($event)"
98+
(stickedToMiddle)="option.stickedToMiddle && option.stickedToMiddle()"
99+
></eqm-skeuomorph-slider>
70100
</div>
71101
</div>
72102
</div>

ui/src/app/components/options/options.component.ts

Lines changed: 51 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,39 @@
11
import { Component, Input, Output, EventEmitter, ChangeDetectorRef } from '@angular/core'
22
import { DropdownComponent } from '../../modules/eqmac-components/components/dropdown/dropdown.component'
3+
import { FlatSliderValueChangedEvent } from '../../modules/eqmac-components/components/flat-slider/flat-slider.component'
4+
import { SkeuomorphSliderValueChangedEvent } from '../../modules/eqmac-components/components/skeuomorph-slider/skeuomorph-slider.component'
35
import { ApplicationService } from '../../services/app.service'
46

57
interface BaseOptions {
6-
key: string
78
type: string
8-
label: string
99
isEnabled?: () => boolean
1010
}
1111

1212
export interface ButtonOption extends BaseOptions {
1313
type: 'button'
14+
label: string
1415
hoverable?: boolean
1516
action: () => any
1617
}
1718

18-
export interface DividerOption extends Omit<BaseOptions, 'key' | 'label'> {
19+
export interface DividerOption extends BaseOptions {
1920
type: 'divider'
2021
orientation: 'horizontal' | 'vertical'
2122
}
2223

23-
export interface LabelOption extends Omit<BaseOptions, 'key'> {
24+
export interface LabelOption extends BaseOptions {
2425
type: 'label'
26+
label: string
2527
url?: string
2628
tooltip?: string
2729
}
2830

29-
export interface HTMLOption extends Omit<BaseOptions, 'key' | 'label'> {
31+
export interface HTMLOption extends BaseOptions {
3032
type: 'html'
3133
html: string
3234
}
3335

34-
export interface DropdownOption extends Omit<BaseOptions, 'label'> {
36+
export interface DropdownOption extends BaseOptions {
3537
type: 'dropdown'
3638
items: any[]
3739
labelParam: string
@@ -42,11 +44,12 @@ export interface DropdownOption extends Omit<BaseOptions, 'label'> {
4244
forceDirection?: 'up' | 'down'
4345
closeOnSelect?: boolean
4446
refChanged?: (ref: DropdownComponent) => void
45-
itemSelected: (item: any) => void | Promise<void>
47+
itemSelected: (item: any) => any
4648
}
4749

4850
export interface CheckboxOption extends BaseOptions {
4951
type: 'checkbox'
52+
label: string
5053
value: boolean
5154
toggled?: (value: boolean) => any
5255
}
@@ -57,20 +60,58 @@ export interface SelectOptionOption {
5760
}
5861
export interface SelectOption extends BaseOptions {
5962
type: 'select'
63+
label: string
6064
options: SelectOptionOption[]
6165
selectedId: string
6266
selected?: (id: string) => any
6367
}
6468

65-
export interface BreadcrumbsOption extends Omit<BaseOptions, 'key' | 'label'> {
69+
export interface BreadcrumbsOption extends BaseOptions {
6670
type: 'breadcrumbs'
6771
crumbs: string[]
68-
crumbClicked: (event: { crumb: string, index: number }) => void | Promise<void>
72+
crumbClicked: (event: { crumb: string, index: number }) => any
73+
}
74+
75+
export interface InputOption extends BaseOptions {
76+
type: 'input',
77+
value?: string,
78+
placeholder?: string
79+
changed?: (value: string) => any
80+
enter?: () => any
81+
editable?: boolean
82+
fontSize?: number
83+
}
84+
85+
interface SliderOption extends BaseOptions {
86+
value: number
87+
min?: number
88+
midle?: number
89+
max?: number
90+
animationDuration?: number
91+
animationFps: number
92+
scrollEnabled?: number
93+
stickToMiddle?: boolean
94+
stickedToMiddle?: () => any
95+
changed?: (value: number) => any
96+
}
97+
98+
export interface FlatSliderOption extends SliderOption {
99+
type: 'flat-slider'
100+
thickness?: number
101+
orientation?: 'vertical' | 'horizontal'
102+
color?: string
103+
doubleClickToAnimateToMiddle?: boolean
104+
userChangedValue?: (event: FlatSliderValueChangedEvent) => any
105+
}
106+
107+
export interface SkeuomorphSliderOption extends SliderOption {
108+
type: 'skeuomorph-slider'
109+
userChangedValue?: (event: SkeuomorphSliderValueChangedEvent) => any
69110
}
70111

71112
export type Option = ButtonOption | CheckboxOption | SelectOption
72113
| DividerOption | LabelOption | HTMLOption | DropdownOption
73-
| BreadcrumbsOption
114+
| BreadcrumbsOption | InputOption | FlatSliderOption | SkeuomorphSliderOption
74115

75116
export type Options = Option[][]
76117
@Component({

ui/src/app/sections/effects/equalizers/advanced-equalizer/advanced-equalizer.component.ts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,20 +21,17 @@ export class AdvancedEqualizerComponent extends EqualizerComponent implements On
2121
@Input() enabled = true
2222

2323
public ShowDefaultPresetsCheckbox: CheckboxOption = {
24-
key: 'show-default-presets',
2524
type: 'checkbox',
2625
label: 'Show Default Presets',
2726
value: false,
2827
toggled: (show) => this.service.setShowDefaultPresets(show)
2928
}
3029
settings: Options = [[
3130
{
32-
key: 'import-presets',
3331
type: 'button',
3432
label: 'Import Presets',
3533
action: () => this.service.importPresets()
3634
}, {
37-
key: 'export-presets',
3835
type: 'button',
3936
label: 'Export Presets',
4037
action: () => this.service.exportPresets()
@@ -125,7 +122,6 @@ export class AdvancedEqualizerComponent extends EqualizerComponent implements On
125122
if (await this.service.getImportLegacyAvailable()) {
126123
this.settings[1].push(
127124
{
128-
key: 'import-legacy-presets',
129125
type: 'button',
130126
label: 'Import eqMac2 Presets',
131127
action: async () => {

ui/src/app/sections/help/help.component.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,10 @@ export class HelpComponent implements OnInit {
1414
options: Options = [
1515
[
1616
{
17-
key: 'faq',
1817
type: 'button',
1918
label: 'FAQ',
2019
action: this.faq.bind(this)
2120
}, {
22-
key: 'report-bug',
2321
type: 'button',
2422
label: 'Report a Bug',
2523
action: this.reportBug.bind(this)

ui/src/app/sections/settings/settings.component.ts

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,23 +13,20 @@ import { UIService } from '../../services/ui.service'
1313
})
1414
export class SettingsComponent implements OnInit {
1515
launchOnStartupOption: CheckboxOption = {
16-
key: 'launchOnStartup',
1716
type: 'checkbox',
1817
label: 'Launch on start-up',
1918
value: false,
2019
toggled: launchOnStartup => this.settingsService.setLaunchOnStartup(launchOnStartup)
2120
}
2221

2322
replaceKnobsWithSlidersOption: CheckboxOption = {
24-
key: 'replaceKnobsWithSliders',
2523
type: 'checkbox',
2624
label: 'Replace Knobs with Sliders',
2725
value: false,
2826
toggled: replaceKnobsWithSliders => this.ui.setSettings({ replaceKnobsWithSliders })
2927
}
3028

3129
iconModeOption: SelectOption = {
32-
key: 'iconMode',
3330
type: 'select',
3431
label: 'Show Icon',
3532
options: [{
@@ -52,22 +49,19 @@ export class SettingsComponent implements OnInit {
5249
}
5350
}
5451
uninstallOption: ButtonOption = {
55-
key: 'uninstall',
5652
type: 'button',
5753
label: 'Uninstall eqMac',
5854
hoverable: false,
5955
action: this.uninstall.bind(this)
6056
}
6157

6258
updateOption: ButtonOption = {
63-
key: 'update',
6459
type: 'button',
6560
label: 'Check for Updates',
6661
action: this.update.bind(this)
6762
}
6863

6964
reinstallDriverOption: ButtonOption = {
70-
key: 'reinstall-driver',
7165
type: 'button',
7266
label: 'Reinstall Driver',
7367
action: this.reinstallDriver.bind(this)

0 commit comments

Comments
 (0)