diff options
Diffstat (limited to 'client/src/app/shared/buttons/action-dropdown.component.ts')
-rw-r--r-- | client/src/app/shared/buttons/action-dropdown.component.ts | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/client/src/app/shared/buttons/action-dropdown.component.ts b/client/src/app/shared/buttons/action-dropdown.component.ts new file mode 100644 index 000000000..407d24b80 --- /dev/null +++ b/client/src/app/shared/buttons/action-dropdown.component.ts | |||
@@ -0,0 +1,20 @@ | |||
1 | import { Component, Input } from '@angular/core' | ||
2 | |||
3 | export type DropdownAction<T> = { | ||
4 | type: 'custom' | 'delete' | 'edit' | ||
5 | label?: string | ||
6 | handler?: (T) => any | ||
7 | linkBuilder?: (T) => (string | number)[] | ||
8 | iconClass?: string | ||
9 | } | ||
10 | |||
11 | @Component({ | ||
12 | selector: 'my-action-dropdown', | ||
13 | styleUrls: [ './action-dropdown.component.scss' ], | ||
14 | templateUrl: './action-dropdown.component.html' | ||
15 | }) | ||
16 | |||
17 | export class ActionDropdownComponent<T> { | ||
18 | @Input() actions: DropdownAction<T>[] = [] | ||
19 | @Input() entry: T | ||
20 | } | ||