@dnb/eufemia
Version:
DNB Eufemia Design System UI Library
145 lines (144 loc) • 7.04 kB
TypeScript
/**
* Web DrawerList Helpers
*
* This is a legacy component.
* For referencing while developing new features, please use a Functional component.
*/
import PropTypes from 'prop-types';
import { DrawerListDataArrayItem, DrawerListData, DrawerListDataAll, DrawerListInternalData } from './DrawerList';
import { DrawerListProviderProps } from './DrawerListProvider';
import { DrawerListContextState } from './DrawerListContext';
export declare const drawerListPropTypes: {
className: PropTypes.Requireable<string>;
children: PropTypes.Requireable<NonNullable<object | PropTypes.ReactNodeLike>>;
on_show: PropTypes.Requireable<(...args: any[]) => any>;
on_hide: PropTypes.Requireable<(...args: any[]) => any>;
handle_dismiss_focus: PropTypes.Requireable<(...args: any[]) => any>;
on_change: PropTypes.Requireable<(...args: any[]) => any>;
on_pre_change: PropTypes.Requireable<(...args: any[]) => any>;
on_resize: PropTypes.Requireable<(...args: any[]) => any>;
on_select: PropTypes.Requireable<(...args: any[]) => any>;
on_state_update: PropTypes.Requireable<(...args: any[]) => any>;
space: PropTypes.Requireable<NonNullable<string | number | boolean | PropTypes.InferProps<{
top: PropTypes.Requireable<NonNullable<string | number | boolean>>;
right: PropTypes.Requireable<NonNullable<string | number | boolean>>;
bottom: PropTypes.Requireable<NonNullable<string | number | boolean>>;
left: PropTypes.Requireable<NonNullable<string | number | boolean>>;
}>>>;
top: PropTypes.Requireable<NonNullable<string | number | boolean>>;
right: PropTypes.Requireable<NonNullable<string | number | boolean>>;
bottom: PropTypes.Requireable<NonNullable<string | number | boolean>>;
left: PropTypes.Requireable<NonNullable<string | number | boolean>>;
id: PropTypes.Requireable<string>;
role: PropTypes.Requireable<string>;
cache_hash: PropTypes.Requireable<string>;
triangle_position: PropTypes.Requireable<string>;
scrollable: PropTypes.Requireable<NonNullable<string | boolean>>;
focusable: PropTypes.Requireable<NonNullable<string | boolean>>;
direction: PropTypes.Requireable<string>;
size: PropTypes.Requireable<string>;
max_height: PropTypes.Requireable<number>;
no_animation: PropTypes.Requireable<NonNullable<string | boolean>>;
no_scroll_animation: PropTypes.Requireable<NonNullable<string | boolean>>;
prevent_selection: PropTypes.Requireable<NonNullable<string | boolean>>;
action_menu: PropTypes.Requireable<NonNullable<string | boolean>>;
is_popup: PropTypes.Requireable<NonNullable<string | boolean>>;
align_drawer: PropTypes.Requireable<string>;
options_render: PropTypes.Requireable<NonNullable<object | PropTypes.ReactNodeLike>>;
wrapper_element: PropTypes.Requireable<NonNullable<object | PropTypes.ReactNodeLike>>;
default_value: PropTypes.Requireable<NonNullable<string | number>>;
value: PropTypes.Requireable<NonNullable<string | number>>;
skip_portal: PropTypes.Requireable<NonNullable<string | boolean>>;
portal_class: PropTypes.Requireable<string>;
list_class: PropTypes.Requireable<string>;
prevent_close: PropTypes.Requireable<NonNullable<string | boolean>>;
independent_width: PropTypes.Requireable<NonNullable<string | boolean>>;
fixed_position: PropTypes.Requireable<NonNullable<string | boolean>>;
keep_open: PropTypes.Requireable<NonNullable<string | boolean>>;
prevent_focus: PropTypes.Requireable<NonNullable<string | boolean>>;
skip_keysearch: PropTypes.Requireable<NonNullable<string | boolean>>;
opened: PropTypes.Requireable<NonNullable<string | boolean>>;
data: PropTypes.Requireable<NonNullable<NonNullable<object | PropTypes.ReactNodeLike>>>;
raw_data: PropTypes.Requireable<object>;
ignore_events: PropTypes.Requireable<NonNullable<string | boolean>>;
};
export declare const drawerListDefaultProps: {
id: any;
role: string;
cache_hash: any;
triangle_position: string;
scrollable: boolean;
focusable: boolean;
max_height: any;
direction: string;
size: string;
no_animation: boolean;
no_scroll_animation: boolean;
prevent_selection: boolean;
action_menu: boolean;
is_popup: boolean;
align_drawer: string;
wrapper_element: any;
default_value: any;
value: string;
portal_class: any;
list_class: any;
skip_portal: any;
prevent_close: boolean;
keep_open: boolean;
prevent_focus: boolean;
fixed_position: boolean;
independent_width: boolean;
skip_keysearch: boolean;
opened: any;
data: any;
raw_data: any;
ignore_events: any;
className: any;
children: any;
on_show: any;
on_hide: any;
handle_dismiss_focus: any;
on_change: any;
on_pre_change: any;
on_resize: any;
on_select: any;
on_state_update: any;
options_render: any;
};
export declare const drawerListProviderPropTypes: {
enable_body_lock: PropTypes.Requireable<boolean>;
page_offset: PropTypes.Requireable<NonNullable<string | number>>;
observer_element: PropTypes.Requireable<NonNullable<PropTypes.ReactNodeLike>>;
min_height: PropTypes.Requireable<NonNullable<string | number>>;
};
export declare const drawerListProviderDefaultProps: {
enable_body_lock: boolean;
page_offset: any;
observer_element: any;
min_height: number;
};
export declare function parseContentTitle(dataItem: DrawerListDataArrayItem, { separator, removeNumericOnlyValues, preferSelectedValue, }?: {
separator?: string;
removeNumericOnlyValues?: boolean;
preferSelectedValue?: boolean;
}): string | null;
export declare const hasObjectKeyAsValue: (data: any) => boolean;
export declare function preSelectData(data: DrawerListData): DrawerListDataAll;
/**
* Takes any of the forms data can have and returns a normalized array representation of it.
* If the data is a single React.ReactNode, it will return an empty list.
* @param {*} props object containing the data in props.data or props.children, or the data itself
* @returns an array representation of the data
*/
export declare function normalizeData(props: any): DrawerListInternalData;
export declare const getData: (props: any) => DrawerListInternalData;
export declare const getCurrentIndex: (value: any, data: any) => any;
export declare const getSelectedItemValue: (value: any, state: any) => any;
export declare const parseCurrentValue: (current: any) => any;
export declare const getEventData: (item_index: any, data: any) => any;
export declare const getCurrentData: (item_index: any, data: any) => any;
export declare function prepareStartupState(props: DrawerListProviderProps): DrawerListContextState;
export declare const prepareDerivedState: (props: DrawerListProviderProps, state: DrawerListContextState) => DrawerListContextState;
export declare const getCurrentDataTitle: (selected_item: any, data: any) => string;
export declare const findClosest: (arr: any, val: any) => any;