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
• 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.
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:
mergeInto<
T
>(destination
,source
,levels
):T
Merges source object into destination object, up to the provided number of levels.
• T
• destination: T
destination object
• source: undefined
| T
source object
• levels: 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.
• widgetsDefaultConfigKey: symbol
= ...
the widgets config key
object
the utilities to create / manage widgets and contexts
callWidgetFactory: <
W
>(input
) =>WidgetSlotContext
<W
>
• W extends Widget
<object
, object
, object
, object
>
• input: WidgetFactoryInput
<Config
, W
>
createWidgetsDefaultConfig:
CreateWidgetsDefaultConfig
<Config
>
getContextWidgetConfig: <
N
>(widgetName
) =>ReadableSignal
<undefined
|Partial
<Config
[N
]>>
• N extends string
| number
| symbol
• widgetName: N
ReadableSignal
<undefined
| Partial
<Config
[N
]>>
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.
widgetsDefaultConfigKey:
symbol