/** * **FluentScrollLoadAutocompleteMenu** * * A drop‑in extension for MUI’s `` that: * * 1. Fetches paginated / sortable data from any REST endpoint * 2. Implements infinite scrolling with automatic scroll‑position restore * 3. Supports client‑side filtering, grouping * 4. Displays a Material UI `` while loading and a MUI `` on errors * * Internally it wraps **unity‑fluent‑library**’s `` so you get the same * keyboard navigation and styling as the rest of the Fluent controls. * * --- * * ### Typical usage * ```jsx * const endpoint = (q, page, size, sortCol, sortDir) => * `/api/products?search=${q}&page=${page}&pageSize=${size}&sort=${sortCol}&dir=${sortDir}`; * * const map = (raw) => ({ * items: raw.items, * total: raw.totalRows, * }); * * console.log(product)} * /> * ``` * --- * * @param {Object} props * @param {string} props.apiBaseUrl Base URL forwarded to **apiMutate** * @param {Function} props.apiEndpoint `(keyword, page, pageSize, sortCol, sortDir) => string` * @param {Function} props.mapResponse Maps raw API payload → `{ items, total }` * @param {Function} [props.onChange] Fires when the user selects/clears an option * @param {Function} [props.getOptionLabel] Returns the display label for an item (default: `o.name`) * @param {Function} [props.groupBy] Returns a group heading string for an item * @param {string} [props.placeholder='Search…'] Placeholder text * @param {string} [props.displayProperty='name'] Property passed to `` * @param {number|string} [props.width=300] Fixed width of the component container * @param {boolean} [props.fetchEnabled=true] Disable to work fully offline * @param {*} [props.initialValue=null] Pre‑selected value shown immediately * @param {Array} [props.initialOptions=[]] Pre‑loaded options shown immediately * @param {boolean} [props.isPaginated=true] Disable if your API returns the full list * @param {boolean} [props.isSortable=true] Disable server‑side sorting * @param {boolean} [props.isFilterable=true] Disable server‑side filtering * @param {number} [props.pageSize=50] Items per page when paginating * @param {string} [props.sortColumn='Name'] Default sort column * @param {'ASC'|'DESC'} [props.sortDirection='ASC'] Default sort direction * * @returns {JSX.Element} */ export declare const FluentScrollLoadAutocompleteMenu: { ({ apiBaseUrl, apiEndpoint, apiConfig, apiData, mapResponse, onChange, getOptionLabel, groupBy, placeholder, displayProperty, width, fetchEnabled, initialValue, initialOptions, isPaginated, isSortable, isFilterable, pageSize, sortColumn, sortDirection, }: { apiBaseUrl: string; apiEndpoint: Function; mapResponse: Function; onChange?: Function; getOptionLabel?: Function; groupBy?: Function; placeholder?: string; displayProperty?: string; width?: string | number; fetchEnabled?: boolean; initialValue?: any; initialOptions?: any[]; isPaginated?: boolean; isSortable?: boolean; isFilterable?: boolean; pageSize?: number; sortColumn?: string; sortDirection?: "ASC" | "DESC"; }): JSX.Element; propTypes: { /** Base URL used by apiMutate */ apiBaseUrl: any; /** Builds the endpoint URL: (keyword, page, pageSize, sortCol, sortDir) => string */ apiEndpoint: any; /** Additional config passed to apiMutate */ apiConfig: any; /** Raw API data passed to apiMutate */ apiData: any; /** Maps raw API payload into { items, total } */ mapResponse: any; /** Called when the user selects or clears an option */ onChange: any; /** Returns the text label for a given option */ getOptionLabel: any; /** Returns the group heading for a given option */ groupBy: any; placeholder: any; displayProperty: any; width: any; /* Behavior flags */ fetchEnabled: any; initialValue: any; initialOptions: any; isPaginated: any; isSortable: any; isFilterable: any; pageSize: any; sortColumn: any; sortDirection: any; }; }; //# sourceMappingURL=FluentScrollLoadAutocompleteMenu.d.ts.map