ExtendWidgetAdaptSlotContentProps<
Props
,ExtraProps
,ExtraDirectives
>:Props
extendsWidgetSlotContext
<infer U> ?WidgetSlotContext
<ExtendWidgetProps
<U
,ExtraProps
,ExtraDirectives
>> &Omit
<Props
, keyofWidgetSlotContext
<any
>> :Props
Type replacing the original Props with WidgetSlotContext contaning ExtraProps
• Props extends Record
<string
, any
>
• ExtraProps extends object
• ExtraDirectives extends object
ExtendWidgetAdaptSlotWidgetProps<
Props
,ExtraProps
,ExtraDirectives
>:ExtraProps
&{ [K in keyof Props]: IsSlotContent<Props[K]> extends SlotContent<infer U> ? SlotContent<ExtendWidgetAdaptSlotContentProps<U, ExtraProps, ExtraDirectives>> : Props[K] }
Type enriching the original widget slot Props with ExtraProps slots
• Props
• ExtraProps extends object
• ExtraDirectives extends object
ExtendWidgetInterfaces<
Interfaces
,ExtraInterfaces
>:Interfaces
&ExtraInterfaces
Type merging the passed interfaces together
• Interfaces
• ExtraInterfaces
extendWidgetProps<
W
,ExtraProps
,ExtraDirectives
>(factory
,extraPropsDefaults
,extraPropsConfig
?,overrideDefaults
?):WidgetFactory
<ExtendWidgetProps
<W
,ExtraProps
,ExtraDirectives
>>
Method to extend the original widget with extra props with validator
• W extends Widget
<object
, object
, object
, object
, object
>
• ExtraProps extends object
• ExtraDirectives extends object
= object
• factory: WidgetFactory
<W
>
original widget factory
• extraPropsDefaults: ExtraProps
object containing default value for each extra prop
• extraPropsConfig?: ConfigValidator
<ExtraProps
>
object verifying the type of each extra prop
• overrideDefaults?: Partial
<WidgetState
<W
>>
object overriding some default props of the widget to extend
WidgetFactory
<ExtendWidgetProps
<W
, ExtraProps
, ExtraDirectives
>>
widget factory with the extra props
ExtendWidgetProps<
W
,ExtraProps
,ExtraDirectives
>:Widget
<ExtendWidgetAdaptSlotWidgetProps
<WidgetProps
<W
>,ExtraProps
,ExtraDirectives
>,ExtendWidgetAdaptSlotWidgetProps
<WidgetState
<W
>,ExtraProps
,ExtraDirectives
>,W
["api"
],W
["actions"
],ExtendWidgetInterfaces
<W
["directives"
],ExtraDirectives
>>
Type extending the original Widget props and state with ExtraProps
• W extends Widget
• ExtraProps extends object
• ExtraDirectives extends object
= object