//important ones import { ReactElement } from "react" //columns export interface Styles { backgroundColor: string color: string fontFamily?: string } export interface DisplayPropertiesConditions { value: string, styles: Styles } export interface DisplayProperties { displayType: string styles: Styles conditions: DisplayPropertiesConditions[] } export interface Col { name: string; type: string; value: string; isPrimary: boolean; isForeignKey: boolean; hasManyRelationship?: boolean; isRequired?: boolean; staticDropDown?: StaticDropDown[]; tableName?: string cols?: string[] placeholder?: string returnColumn?: string displayColumns?: string[] displayProperties?: DisplayProperties } //Table export enum RecordDisplayType { Table, Grid } export enum AddEditDisplayType { Modal, Drawer, Simple } export interface GridCardDisplayType { titleCol: string bodyCol: string noOfCols: number imageCol?: string } export interface Panel { title: string, panels: string[] } export interface TableType { primaryColor: string secondaryColor: string isModal: boolean title?: string tablename: string colorRow?: string bgRow?: string fontFamily?: string fontSizeRow?: string fontSizeHeader?: string fontWeightRow?: string showAllBorders?: boolean showRoundedTitle?: boolean showControls?: boolean showSearch?: boolean showPagination?: boolean showBackground?: boolean selectableRows?: boolean col: Col[] panels: Panel[] addEditDisplayType: AddEditDisplayType recordsDisplayType: RecordDisplayType searchByCol: string[] gridCardDisplay?: GridCardDisplayType } //table form design export interface inputCardProps { title: string; onChange: any; noOfCols: number; inputs: FieldProp[] } interface FieldProp { label: string; spacing: string; placeholder: string; } //end of important ones //shared interfaces export interface Colors { primary: string; secondary: string; } export interface Input { value: string; placeholder: string onChange: any; } export interface StaticDropDown { value: any; label: any; } export interface BabbuMenuItems { label: string; icon: any; path: any; onClick: any; } export interface Offer { open: any; close: any; title: string; logo: string; offerImage: string; productName: string; description: string; validity: string; redeem: any; } //message components export interface MessagingType extends Colors { messageTable: string, messageCol: Col[], userTable: string, userCol: Col[] } export interface ConversationType extends Colors { id: any; title: string; shortMessage: string; selected?: boolean; onConvoSelect?: any; } export interface CustomSearchType extends Input { records: any[]; filterCols: string[]; } //layout export interface GridLayoutType { col: number gridLayoutComponents: ReactElement[] }