Bootstrap

API config

createWidgetsConfig

function

createWidgetsConfig<T>(parent$?, adaptParentConfig?): WidgetsConfigStore<T>

Creates a new widgets default configuration store, optionally inheriting from a parent store, and containing its own set of widgets configuration properties that override the same properties form the parent configuration.

Type Parameters

T

Parameters

parent$?: WidgetsConfigStore<T>

optional parent widgets default configuration store.

adaptParentConfig? = identity

optional function that receives a 2-levels copy of the widgets default configuration from parent$ (or an empty object if parent$ is not specified) and returns the widgets default configuration to be used. It is called only if the configuration is needed, and was not yet computed for the current value of the parent configuration. It is called in a tansu reactive context, so it can use any tansu store and will be called again if those stores change.

Returns

WidgetsConfigStore<T>

the resulting widgets default configuration store, which contains 3 additional properties that are stores: parent$, adaptedParent$ (containing the value computed after the first step), and own$ (that contains only overridding properties). The resulting store is writable, its set function is actually the set function of the own$ store.

Remarks

The resulting store has a value computed from the parent store in two steps:

  • first step: the parent configuration is transformed by the adaptParentConfig function (if specified). If adaptParentConfig is not specified, this step is skipped.
  • second step: the configuration from step 1 is merged (2-levels deep) with the own$ store. The own$ store initially contains an empty object (i.e. no property from the parent is overridden). It can be changed by calling set on the store returned by this function.

mergeInto

function

mergeInto<T>(destination, source, levels): T

Merges source object into destination object, up to the provided number of levels.

Type Parameters

T

Parameters

destination: T

destination object

source: undefined | T

source object

levels: number = Infinity

number of levels to merge

Returns

T

the destination object in most cases, or the source in some cases (if the source is not undefined and either levels is smaller than 1 or the source is not an object)


Partial2Levels

type alias

Partial2Levels<T>: Partial<{ [Level1 in keyof T]: Partial<T[Level1]> }>

Type Parameters

T


useWidgetContext

function

useWidgetContext<Props>(widgetName, defaultConfig?): ReadableSignal<Partial<Props>>

Type Parameters

Props extends object

Parameters

widgetName: null | keyof BootstrapWidgetsConfig

defaultConfig?: Partial<Props>

Returns

ReadableSignal<Partial<Props>>


useWidgetWithConfig

function

useWidgetWithConfig<W>(factory, props, widgetName, defaultProps?): [WidgetState<W>, W]

Type Parameters

W extends Widget<object, object, object, object, object>

Parameters

factory: WidgetFactory<W>

props: undefined | Partial<WidgetProps<W>>

widgetName: null | keyof BootstrapWidgetsConfig

defaultProps?: Partial<WidgetProps<W>>

Returns

[WidgetState<W>, W]


WidgetsConfig

type alias

WidgetsConfig: object

Type declaration
accordion

accordion: AccordionProps

the accordion widget config

alert

alert: AlertProps

the alert widget config

modal

modal: ModalProps<any>

the modal widget config

pagination

pagination: PaginationProps

the pagination widget config

progressbar

progressbar: ProgressbarProps

the progressbar widget config

rating

rating: RatingProps

the rating widget config

select

select: SelectProps<any>

the select widget config

slider

slider: SliderProps

the slider widget config

toast

toast: ToastProps

the toast widget config


widgetsConfigContext

constant

widgetsConfigContext: Context<undefined | WidgetsConfigStore<WidgetsConfig>>


widgetsConfigFactory

function

widgetsConfigFactory<Config>(widgetsConfigContext): object

A factory to create the use functions and react component to allow widgets to be context-aware.

It can be used when extending the core and creating new widgets.

Type Parameters

Config extends Record<string, object> = WidgetsConfig

Parameters

widgetsConfigContext: Context<undefined | WidgetsConfigStore<Config>> = ...

the widgets config context

Returns

object

the use functions and react component

WidgetsDefaultConfig

WidgetsDefaultConfig: (componentInputs) => Element

React component that provides in the React context (for all AgnosUI descendant widgets) a new widgets default configuration store that inherits from any widgets default configuration store already defined at an upper level in the React context hierarchy. It contains its own set of widgets configuration properties that override the same properties form the parent configuration.

Parameters

componentInputs: DefaultConfigInput<Config>

the react component inputs

Returns

Element

the resulting widgets default configuration store, which contains 3 additional properties that are stores: parent$, adaptedParent$ (containing the value computed after the first step), and own$ (that contains only overridding properties). The resulting store is writable, its set function is actually the set function of the own$ store.

Remarks

The configuration is computed from the parent configuration in two steps:

  • first step: the parent configuration is transformed by the adaptParentConfig function (if specified). If adaptParentConfig is not specified, this step is skipped.
  • second step: the configuration from step 1 is merged (2-levels deep) with the properties of the component.
Example
<WidgetsDefaultConfig
  adaptParentConfig={(parentConfig) => {
    parentConfig.rating = parentConfig.rating ?? {};
    parentConfig.rating.className = `${parentConfig.rating.className ?? ''} my-rating-extra-class`
    return parentConfig;
  }}
  rating={{slotStar: MyCustomSlotStar}}
/>
useWidgetContext

useWidgetContext: <Props>(widgetName, defaultConfig?) => ReadableSignal<Partial<Props>>

Type Parameters

Props extends object

Parameters

widgetName: null | keyof Config

defaultConfig?: Partial<Props>

Returns

ReadableSignal<Partial<Props>>

useWidgetWithConfig

useWidgetWithConfig: <W>(factory, props, widgetName, defaultProps?) => [WidgetState<W>, W]

Type Parameters

W extends Widget<object, object, object, object, object>

Parameters

factory: WidgetFactory<W>

props: undefined | Partial<WidgetProps<W>>

widgetName: null | keyof Config

defaultProps?: Partial<WidgetProps<W>>

Returns

[WidgetState<W>, W]

widgetsConfigContext

widgetsConfigContext: Context<undefined | WidgetsConfigStore<Config>>

React context which can be used to provide or consume the widgets default configuration store.


WidgetsConfigStore

type alias

WidgetsConfigStore<T>: WritableSignal<Partial2Levels<T>> & object

Type declaration
adaptedParent$

adaptedParent$: undefined | ReadableSignal<Partial2Levels<T>>

own$

own$: WritableSignal<Partial2Levels<T>>

parent$

parent$: undefined | WritableSignal<Partial2Levels<T>>

Type Parameters

T


WidgetsDefaultConfig

function

WidgetsDefaultConfig(__namedParameters): Element

Parameters

__namedParameters: DefaultConfigInput

Returns

Element