registerSelectors

Called to configure this IviThemeRegistrySource. Implementations can use the receiver to do this. For example:

private val customComponentSelector =
object : IviThemeComponentSelector() {

override fun createSelectionTransformation(
componentSelectorContext: IviThemeComponentSelectorContext,
precedingSelection: Flow<IviThemeComponentSelection>
): Flow<IviThemeComponentSelection> = emptyFlow()
}

public class CustomComponentSelectorRegistrySource(
registrySourceContext: IviThemeRegistrySourceContext
) : IviThemeRegistrySource.Selectors(registrySourceContext) {

override fun IviThemeComponentSelectorConfigurator.registerSelectors() {
register(customComponentSelector)
}
}

In the above example the customComponentSelector is registered as IviThemeComponentSelector.

All IviThemeComponentSelectors create an IviThemeComponentSelection transformation. Each transformation can select IviThemeComponent per IviThemeCategorys. Subsequent chained flow transformations can override selections from preceding IviThemeComponentSelectors. The flow chain order is determined by the registration list order. Subsequent list entries are chained after preceding list entries. The registration list order is controlled by the arguments given to IviThemeComponentSelectorConfigurator.register.