/* eslint-disable max-classes-per-file */ import { Action } from '@ngrx/store'; import { type } from '../ngrx/type'; export const ObjectSelectionActionTypes = { INITIAL_DESELECT: type('dspace/object-select/INITIAL_DESELECT'), INITIAL_SELECT: type('dspace/object-select/INITIAL_SELECT'), SELECT: type('dspace/object-select/SELECT'), DESELECT: type('dspace/object-select/DESELECT'), SWITCH: type('dspace/object-select/SWITCH'), RESET: type('dspace/object-select/RESET'), }; export class ObjectSelectionAction implements Action { /** * Key of the list (of selections) for which the action should be performed */ key: string; /** * UUID of the object a select action can be performed on */ id: string; /** * Type of action that will be performed */ type; /** * Initialize with the object's UUID * @param {string} key of the list * @param {string} id of the object */ constructor(key: string, id: string) { this.key = key; this.id = id; } } /** * Used to set the initial state to deselected */ export class ObjectSelectionInitialDeselectAction extends ObjectSelectionAction { type = ObjectSelectionActionTypes.INITIAL_DESELECT; } /** * Used to set the initial state to selected */ export class ObjectSelectionInitialSelectAction extends ObjectSelectionAction { type = ObjectSelectionActionTypes.INITIAL_SELECT; } /** * Used to select an object */ export class ObjectSelectionSelectAction extends ObjectSelectionAction { type = ObjectSelectionActionTypes.SELECT; } /** * Used to deselect an object */ export class ObjectSelectionDeselectAction extends ObjectSelectionAction { type = ObjectSelectionActionTypes.DESELECT; } /** * Used to switch an object between selected and deselected */ export class ObjectSelectionSwitchAction extends ObjectSelectionAction { type = ObjectSelectionActionTypes.SWITCH; } /** * Used to reset all objects selected to be deselected */ export class ObjectSelectionResetAction extends ObjectSelectionAction { type = ObjectSelectionActionTypes.RESET; }