dynamic-forms / Function

setupInitializationTracking

Creates an observable that tracks when all form components are initialized. Uses shareReplay({ bufferSize: 1, refCount: false }) to ensure exactly one emission that can be received by late subscribers and keeps the subscription alive.

This utility function replaces the manual ReplaySubject pattern for tracking initialization. The count includes container components (dynamic-form, pages, rows, groups).

Presentation

function setupInitializationTracking(
  options: InitializationTrackingOptions,
): Observable<boolean>;

Returns

Observable<boolean> -

Observable that emits true when all components are initialized

Parameters

NameTypeDescription
options
InitializationTrackingOptions

Configuration options for initialization tracking

Example usage

const eventBus = inject(EventBus);
const totalComponents = computed(() => countContainerComponents(fields));

readonly initialized$ = setupInitializationTracking({
  eventBus,
  totalComponentsCount: totalComponents,
  injector: this.injector,
  componentId: 'dynamic-form'
});