import { Action } from '@ngrx/store'; import { TabEntity } from '../models/tab-entity'; export enum TabsActionTypes { AddTab = '[Tab] Add', AddTabSuccess = '[Tab] Add Success', AddTabFail = '[Tab] Add Fail', AddMultipleTab = '[Multiple Tab] Add', AddMultipleTabSuccess = '[Multiple Tab] Add Success', AddMultipleTabFail = '[Multiple Tab] Add Fail', CloseTab = '[Tab] Close', CloseTabSuccess = '[Tab] Close Success', CloseTabFail = '[Tab] Close Fail', SetActiveTab = '[Tab] Set Active', SetActiveTabSuccess = '[Tab] Set Active Success', SetActiveTabFail = '[Tab] Set Active Fail', ResetTab = '[Tab] Reset', ResetTabSuccess = '[Tab] Reset Success', ResetTabFail = '[Tab] Reset Fail', } export class AddTabAction implements Action { readonly type: string = TabsActionTypes.AddTab as string; constructor(public payload: TabEntity) { } } export class AddTabSuccessAction implements Action { readonly type: string = TabsActionTypes.AddTabSuccess as string; constructor(public payload: { entities: TabEntity[], totalElements: number }) { } } export class AddTabFailAction implements Action { readonly type: string = TabsActionTypes.AddTabFail as string; // tslint:disable-next-line:no-any constructor(public payload?: any) { } } export class AddMultipleTabAction implements Action { readonly type: string = TabsActionTypes.AddMultipleTab as string; constructor(public payload: TabEntity[]) { } } export class AddMultipleTabSuccessAction implements Action { readonly type: string = TabsActionTypes.AddMultipleTabSuccess as string; constructor(public payload: { entities: TabEntity[], totalElements: number }) { } } export class AddMultipleTabFailAction implements Action { readonly type: string = TabsActionTypes.AddTabFail as string; // tslint:disable-next-line:no-any constructor(public payload?: any) { } } export class CloseTabAction implements Action { readonly type: string = TabsActionTypes.CloseTab as string; constructor(public payload: any) { } } export class CloseTabSuccessAction implements Action { readonly type: string = TabsActionTypes.CloseTabSuccess as string; constructor(public payload: { entities: any, totalElements: number }) { } } export class CloseTabFailAction implements Action { readonly type: string = TabsActionTypes.CloseTabFail as string; // tslint:disable-next-line:no-any constructor(public payload?: any) { } } export class ResetTabAction implements Action { readonly type: string = TabsActionTypes.ResetTab as string; constructor(public payload?: any) { } } export class ResetTabSuccessAction implements Action { readonly type: string = TabsActionTypes.ResetTabSuccess as string; constructor(public payload: { entities: any, totalElements: number }) { } } export class ResetTabFailAction implements Action { readonly type: string = TabsActionTypes.ResetTabFail as string; // tslint:disable-next-line:no-any constructor(public payload?: any) { } } export class SetActiveTabAction implements Action { readonly type: string = TabsActionTypes.SetActiveTab as string; constructor(public payload: any) { } } export class SetActiveTabSuccessAction implements Action { readonly type: string = TabsActionTypes.SetActiveTabSuccess as string; constructor(public payload: { entities: any, totalElements: number }) { } } export class SetActiveTabFailAction implements Action { readonly type: string = TabsActionTypes.SetActiveTabFail as string; // tslint:disable-next-line:no-any constructor(public payload?: any) { } } export type TabActions = AddTabAction | AddTabSuccessAction | AddTabFailAction | AddMultipleTabAction | AddMultipleTabSuccessAction | AddMultipleTabFailAction | CloseTabAction | CloseTabSuccessAction | CloseTabFailAction | SetActiveTabAction | SetActiveTabSuccessAction | SetActiveTabFailAction;