form.util.mjs 2.7 KB

123456789101112131415161718192021
  1. import { forwardRef } from '@angular/core';
  2. import { ControlContainer, FormGroupDirective, NG_VALUE_ACCESSOR } from '@angular/forms';
  3. /**
  4. * Creates a value accessor provider for a form component.
  5. * @param component - The component that implements the NG_VALUE_ACCESSOR interface.
  6. * @returns An ExistingProvider object for the value accessor.
  7. */
  8. export const provideValueAccessor = (component) => ({
  9. provide: NG_VALUE_ACCESSOR,
  10. useExisting: forwardRef(() => component),
  11. multi: true,
  12. });
  13. /**
  14. * Creates a control container provider using FormGroupDirective.
  15. * @returns An ExistingProvider object for the control container.
  16. */
  17. export const provideControlContainer = () => ({
  18. provide: ControlContainer,
  19. useExisting: FormGroupDirective,
  20. });
  21. //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2lyY2xldG9uZS9zcmMvbGliL3V0aWxzL2Zvcm0udXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9CLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6Rjs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxTQUFrQixFQUFvQixFQUFFLENBQUMsQ0FBQztJQUM3RSxPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDO0lBQ3hDLEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQyxDQUFDO0FBRUg7OztHQUdHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsR0FBcUIsRUFBRSxDQUFDLENBQUM7SUFDOUQsT0FBTyxFQUFFLGdCQUFnQjtJQUN6QixXQUFXLEVBQUUsa0JBQWtCO0NBQ2hDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV4aXN0aW5nUHJvdmlkZXIsIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xDb250YWluZXIsIEZvcm1Hcm91cERpcmVjdGl2ZSwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbi8qKlxuICogQ3JlYXRlcyBhIHZhbHVlIGFjY2Vzc29yIHByb3ZpZGVyIGZvciBhIGZvcm0gY29tcG9uZW50LlxuICogQHBhcmFtIGNvbXBvbmVudCAtIFRoZSBjb21wb25lbnQgdGhhdCBpbXBsZW1lbnRzIHRoZSBOR19WQUxVRV9BQ0NFU1NPUiBpbnRlcmZhY2UuXG4gKiBAcmV0dXJucyBBbiBFeGlzdGluZ1Byb3ZpZGVyIG9iamVjdCBmb3IgdGhlIHZhbHVlIGFjY2Vzc29yLlxuICovXG5leHBvcnQgY29uc3QgcHJvdmlkZVZhbHVlQWNjZXNzb3IgPSAoY29tcG9uZW50OiB1bmtub3duKTogRXhpc3RpbmdQcm92aWRlciA9PiAoe1xuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gY29tcG9uZW50KSxcbiAgbXVsdGk6IHRydWUsXG59KTtcblxuLyoqXG4gKiBDcmVhdGVzIGEgY29udHJvbCBjb250YWluZXIgcHJvdmlkZXIgdXNpbmcgRm9ybUdyb3VwRGlyZWN0aXZlLlxuICogQHJldHVybnMgQW4gRXhpc3RpbmdQcm92aWRlciBvYmplY3QgZm9yIHRoZSBjb250cm9sIGNvbnRhaW5lci5cbiAqL1xuZXhwb3J0IGNvbnN0IHByb3ZpZGVDb250cm9sQ29udGFpbmVyID0gKCk6IEV4aXN0aW5nUHJvdmlkZXIgPT4gKHtcbiAgcHJvdmlkZTogQ29udHJvbENvbnRhaW5lcixcbiAgdXNlRXhpc3Rpbmc6IEZvcm1Hcm91cERpcmVjdGl2ZSxcbn0pO1xuIl19