extended-dynamic-forms
Version:
Extended React JSON Schema Form (RJSF) v6 with custom components, widgets, templates, layouts, and form events
60 lines (59 loc) • 3.7 kB
TypeScript
import { ChoiceWidgetConfig, PresentationMode } from './ChoiceWidget.types';
export * from './ChoiceWidget.types';
export { isStaticDataSource, isApiDataSource, supportsMultipleSelections, DEFAULT_CHOICE_CONFIG, DEFAULT_CACHE_CONFIG, DEFAULT_RESPONSE_MAPPER, } from './ChoiceWidget.types';
export { DataSourceProvider, DEFAULT_RETRY_CONFIG, createSimpleHash, validateChoiceOptions, } from './providers/DataSourceProvider';
export type { RetryConfig, DataSourceMetrics, DataSourceEventCallbacks, } from './providers/DataSourceProvider';
export { StaticDataSource, createStaticDataSource, hasGroup, createGroupedOptions, } from './providers/StaticDataSource';
export type { StaticDataSourceOptions } from './providers/StaticDataSource';
export { ApiDataSource, createApiDataSource, COMMON_RESPONSE_MAPPERS, AUTH_HELPERS, } from './providers/ApiDataSource';
export { WebSocketDataSource, createWebSocketDataSource, WebSocketConnectionState, WS_AUTH_HELPERS, WS_MESSAGE_HELPERS, } from './providers/WebSocketDataSource';
export type { WebSocketDataSourceOptions, } from './providers/WebSocketDataSource';
export { validateChoiceOption, getNestedValue, setNestedValue, extractArrayFromResponse, mapSimpleResponse, mapNestedResponse, createCustomMapper, mapResponse, ResponseMappingError, COMMON_MAPPERS, PAGINATED_MAPPERS, createActiveMapper, createMapperPipeline, filterEnabledOptions, sortByLabel, sortByValue, groupOptions, transformOptions, } from './utils/responseMappers';
export { PresenterStrategy } from './presenters/PresenterStrategy';
export { DropdownPresenter } from './presenters/DropdownPresenter';
export { RadioPresenter } from './presenters/RadioPresenter';
export { CheckboxPresenter } from './presenters/CheckboxPresenter';
export { useDataSource, useDataSourceWithRetry, useMultipleDataSources, } from './hooks';
export { useChoiceWidget, useChoiceWidgetWithErrorBoundary, useChoiceWidgetWithMetrics, } from './hooks/useChoiceWidget';
export type { UseChoiceWidgetReturn } from './hooks/useChoiceWidget';
export type { UseDataSourceReturn } from './hooks';
export { ChoiceWidget, default as DefaultChoiceWidget } from './ChoiceWidget';
/**
* Factory function to create a default ChoiceWidgetConfig
*/
export declare const createDefaultConfig: (overrides?: Partial<ChoiceWidgetConfig>) => ChoiceWidgetConfig;
/**
* Presentation mode helper
* Determines the best presentation mode based on options count and schema
*/
export declare const suggestPresentationMode: (optionCount: number, isMultiSelect?: boolean, preferences?: {
preferRadio?: boolean;
preferDropdown?: boolean;
}) => PresentationMode;
/**
* Legacy compatibility helper
* Converts legacy enumOptions format to ChoiceWidgetConfig
*/
export declare const convertLegacyConfig: (enumOptions: Array<{
label: string;
value: unknown;
}>, uiOptions?: Record<string, unknown>) => ChoiceWidgetConfig;
/**
* Widget registration helper for RJSF
* Simplifies registering the Choice Widget with RJSF forms
*/
export declare const createChoiceWidgetRegistry: (customConfig?: Partial<ChoiceWidgetConfig>) => {
widgets: {
choice: import('react').FC<import('./ChoiceWidget.types').ChoiceWidgetProps>;
ChoiceWidget: import('react').FC<import('./ChoiceWidget.types').ChoiceWidgetProps>;
select: import('react').FC<import('./ChoiceWidget.types').ChoiceWidgetProps>;
radio: import('react').FC<import('./ChoiceWidget.types').ChoiceWidgetProps>;
checkboxes: import('react').FC<import('./ChoiceWidget.types').ChoiceWidgetProps>;
};
uiSchema: {
'ui:widget': string;
'ui:options': {
choiceConfig: ChoiceWidgetConfig;
};
};
};