interface ProgramCategoryIds { responsibility_ids: number[]; category_id: number[]; parent_id: number; } interface RiskCategoryIds { risk_ids: number[]; category_id: number[]; } export interface AddGrc { name: string; type: 0 | 1 | 2 | 3; state: number; parent_grc_ids: number[]; owners: number[]; email_notification_member_ids: number[]; description: string; frequency: string; attributes: AttributesDetails[]; rc_ids: string[]; program_category_ids: ProgramCategoryIds[]; risk_category_ids: RiskCategoryIds[]; linked_GRC_ids: string[]; } export interface InputType { name: 'NAME'; owner: 'OWNER'; RC: 'RC'; riskCategory: 'RISK_CATEGORY'; otherGrcObjects: 'OTHER_GRC_OBJECTS'; programResponsibility: 'PROGRAM_RESPONSIBILITY'; } export interface ListObject { RC: ListObjectData; OWNER: ListObjectData; OTHER_GRC_OBJECTS: ListObjectData; RISK_CATEGORY: ListObjectData; PROGRAM_RESPONSIBILITY: ListObjectData; } interface ListObjectData { isLoading: boolean; data: any; selectedData: Array; disabledIds?: Array; } export interface GRCType { _id: string; label: string; attributes: AttributesDetails[]; description?: string; value: number; } export interface RCList { _id: string; rc_id: number; rc_name: string[]; parent_rc_ids: string[]; visibilty: number; map_data: string; description: string; owner: any[]; owner_details: { member_id: number; member_name: string; m_short_name: string; member_email: string; profile_pic: string; }[]; parent_owners: number[]; edit_allow: number; delete_allow: number; delete_allow1: number; item_name: string; p_item_name: string; item_id: number; group_ids: number[]; item_parent_ids: string[]; item_child_ids: number[]; creatorDetails: { _id: string; profile_pic: string; member_name: string; member_email: string; member_id: number; }; } export interface ViewSelectedData { name: string; id: number; type: 'STRING' | 'ARRAY'; } export interface OpenedPopup { type: '' | 'RC' | 'RISK' | 'NAME' | 'RISK_CATEGORY' | 'OWNER' | 'OTHER_GRC_OBJECTS' | 'ATTRIBUTES' | 'PROGRAM_RESPONSIBILITY'; } export interface DatePickerConfig { disableKeypress: boolean; format: string; unSelectOnClick: boolean; openOnClick: boolean; openOnFocus: boolean; min?: string; } export interface Attributes { name: string; description: string; value: number; attributes: Array; } export interface AttributesDetails { type: string; name: string; page?: number; isRequired: boolean; title: string; hasDescription: boolean; description: string; hasComments: boolean; comments: string; hasOther: boolean; otherValue: string; choices: Choice[]; hasValidation?: boolean; validationType?: string; hasCharacterLength?: boolean; minCharacterLength?: number; maxCharacterLength?: number; alignment?: boolean; isPlaceholder?: boolean; placeholder?: string; is_other_selected?: boolean; } export interface Choice { title: string; value: string | number; is_selected: boolean; required?: number; hasHelpingLabel?: boolean; helpingLabel?: string; } export interface Button { buttonText: string; class: string; id: string; } export {};