const
callWidgetFactory: <W
>(factory
,options?
) =>WidgetSlotContext
<W
> =configFactories.callWidgetFactory
Creates and initializes a widget using the provided factory and configuration options.
W
extends Widget
<object
, object
, object
, object
>
the widget factory
the optional options
Partial
<WidgetProps
<W
>> | ReadableSignal
<undefined
| Partial
<WidgetProps
<W
>>>
the default configuration for the widget
Partial
<Pick
<WidgetProps
<W
>, keyof WidgetProps
<W
> & on${string}Change
>>
the events to be passed to the widget
Partial
<WidgetProps
<W
>>
the props to be passed to the widget
the state, api and directives to track and interact with the widget
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.
T
optional parent widgets default configuration store.
(config
) => Partial2Levels
<T
>
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.
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.
The resulting store has a value computed from the parent store in two steps:
const
createWidgetsDefaultConfig:CreateWidgetsDefaultConfig
=configFactories.createWidgetsDefaultConfig
Creates in the Svelte context hierarchy a new widgets default configuration store that inherits from any widgets default configuration store already defined at an upper level in the Svelte context hierarchy. It contains its own set of widgets configuration properties that override the same properties form the parent configuration.
The configuration is computed from the parent configuration in two steps:
optional function that receives a 2-levels copy of the widgets default configuration defined at an upper level in the Svelte context hierarchy (or an empty object if there is none) 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.
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.
const widgetsConfig = createWidgetsDefaultConfig((parentConfig) => {
// first step configuration: transforms the parent configuration
parentConfig.rating = parentConfig.rating ?? {};
parentConfig.rating.className = `${parentConfig.rating.className ?? ''} my-rating-extra-class`
return parentConfig;
});
widgetsConfig.set({
// second step configuration: overrides the parent configuration
rating: {
slotStar: MyCustomSlotStar
}
});
const
getContextWidgetConfig: <N
>(widgetName
) =>ReadableSignal
<undefined
|Partial
<WidgetsConfig
[N
]>> =configFactories.getContextWidgetConfig
Retrieves a widgets configuration store from the Svelte context hierarchy.
N
extends keyof WidgetsConfig
N
the name of the widget
ReadableSignal
<undefined
| Partial
<WidgetsConfig
[N
]>>
the widgets configuration store
mergeInto<
T
>(destination
,source
,levels
):T
Merges source object into destination object, up to the provided number of levels.
T
T
destination object
source object
undefined
| T
number
= Infinity
number of levels to merge
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<
T
> =Partial
<{ [Level1 in keyof T]: Partial<T[Level1]> }
>
A utility type that makes all properties of an object type T
optional,
and also makes all properties of the nested objects within T
optional.
T
The object type to be transformed.
widgetsConfigFactory<
Config
>(widgetsDefaultConfigKey
):object
A factory to create the utilities to allow widgets to be context-aware.
It can be used when extending the core and creating new widgets.
Config
extends object
= WidgetsConfig
The shape of the widgets configuration object.
symbol
= ...
the widgets config key
the utilities to create / manage widgets and contexts
callWidgetFactory: <
W
>(factory
,options?
) =>WidgetSlotContext
<W
>
Creates and initializes a widget using the provided factory and configuration options.
W
extends Widget
<object
, object
, object
, object
>
the widget factory
the optional options
####### defaultConfig?
Partial
<WidgetProps
<W
>> | ReadableSignal
<undefined
| Partial
<WidgetProps
<W
>>>
the default configuration for the widget
####### events?
Partial
<Pick
<WidgetProps
<W
>, keyof WidgetProps
<W
> & on${string}Change
>>
the events to be passed to the widget
####### props?
Partial
<WidgetProps
<W
>>
the props to be passed to the widget
the state, api and directives to track and interact with the widget
createWidgetsDefaultConfig:
CreateWidgetsDefaultConfig
<Config
>
getContextWidgetConfig: <
N
>(widgetName
) =>ReadableSignal
<undefined
|Partial
<Config
[N
]>>
Retrieves a widgets configuration store from the Svelte context hierarchy.
N
extends string
| number
| symbol
N
the name of the widget
ReadableSignal
<undefined
| Partial
<Config
[N
]>>
the widgets configuration store
widgetsDefaultConfigKey:
symbol
Key used in the Svelte context to get or set the widgets default configuration store.
WidgetsConfigStore<
T
> =WritableSignal
<Partial2Levels
<T
>> &object
Represents a store for widget configurations with support for partial updates at two levels of depth. This store includes signals for its own state, an optional parent state, and an optional adapted parent state.
adaptedParent$:
undefined
|ReadableSignal
<Partial2Levels
<T
>>
own$:
WritableSignal
<Partial2Levels
<T
>>
parent$:
undefined
|WritableSignal
<Partial2Levels
<T
>>
T
The type of the widget configuration.
const
widgetsDefaultConfigKey:symbol
=configFactories.widgetsDefaultConfigKey
Key used in the Svelte context to get or set the widgets default configuration store.