11import { Component , Input , Output , EventEmitter , ChangeDetectorRef } from '@angular/core'
22import { 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'
35import { ApplicationService } from '../../services/app.service'
46
57interface BaseOptions {
6- key : string
78 type : string
8- label : string
99 isEnabled ?: ( ) => boolean
1010}
1111
1212export 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
4850export 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}
5861export 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
71112export type Option = ButtonOption | CheckboxOption | SelectOption
72113| DividerOption | LabelOption | HTMLOption | DropdownOption
73- | BreadcrumbsOption
114+ | BreadcrumbsOption | InputOption | FlatSliderOption | SkeuomorphSliderOption
74115
75116export type Options = Option [ ] [ ]
76117@Component ( {
0 commit comments