/* eslint-disable @typescript-eslint/no-explicit-any */ import _ from "lodash"; import { getAdvancedSearchIntitialFilterRow } from "../Components/AdvancedSearch/helper/AdvancedSearchFunctions"; import { _defaultView } from "../Components/ScreenView/UserView"; import { DataWidgetType } from "../Components/Setting/Setting"; import { OperatorCreiteria } from "../enum"; import { AdvancedSearchData } from "./advancedSearch"; import { GlobalSearchData } from "./globalSearch"; import { GroupedByData } from "./groupBy"; import { QuickFilterData } from "./quickFilter"; import { SettingData } from "./setting"; import { UserViewData } from "./userView"; export type ToolbarData = { globalSearch: GlobalSearchData; advancedSearch: AdvancedSearchData; quickFilter: QuickFilterData; groupedBy: GroupedByData; setting: SettingData; reset: number; lazyLoad?: boolean; globalFilters?: { pattern: string; filters: any[] }; localSearch?: { id: string; field: string; value: any }[]; sort?: { field: string; dir: string }[]; defaultSort?: { field: string; dir: string }[]; pagination?: { skip: number; take: number }; defaultPagination?: { skip: number; take: number }; userView: UserViewData; processing?: boolean; enableDataLoading: boolean; defaultGroups?: { field: string; dir: string }[]; defaultColumns?: any[]; }; export const getInitialData = (): ToolbarData => { const defaultAdvancedFilterRow = _.cloneDeep( getAdvancedSearchIntitialFilterRow() ); const initialState: ToolbarData = { globalSearch: { filterQuery: "", appliedQuery: "" }, advancedSearch: { appliedQuery: { criteria: "", filters: [] }, filterRows: [defaultAdvancedFilterRow], criteria: defaultAdvancedFilterRow.idLabel, }, quickFilter: { appliedQuery: { criteria: "", filterRows: [], joinCriteria: OperatorCreiteria.AND, }, filterRows: [], }, groupedBy: { appliedGroups: [], }, setting: { activeDataWidgetType: DataWidgetType.GRID, columnChooser: { appliedColumns: [], allColumns: [], selectedColumns: [], }, }, reset: 0, userView: { selectedView: undefined, allViews: [_.cloneDeep(_defaultView)], }, enableDataLoading: false, }; return initialState; };