{"version":3,"file":"angular-redux-ivy-form.mjs","sources":["../../src/compose-reducers.ts","../../src/form-store.ts","../../src/configure.ts","../../src/form-exception.ts","../../src/state.ts","../../src/form-reducer.ts","../../src/shims.ts","../../src/connect-array/connect-array-template.ts","../../src/connect/connect-base.ts","../../src/connect-array/connect-array.directive.ts","../../src/connect-array/connect-array.module.ts","../../src/connect/connect-reactive.ts","../../src/connect/connect.directive.ts","../../src/connect/connect.module.ts","../../src/module.ts","../../src/angular-redux-ivy-form.ts"],"sourcesContent":["import { AnyAction, Reducer } from 'redux';\n\nexport const composeReducers = <State>(\n  ...reducers: Reducer<State, AnyAction>[]\n): Reducer<State, AnyAction> => (s: any, action: AnyAction) =>\n  reducers.reduce((st, reducer) => reducer(st, action), s);\n","import { Injectable } from '@angular/core';\n\nimport { NgForm } from '@angular/forms';\n\nimport { NgRedux } from '@angular-redux-ivy/store';\n\nimport { Action, Unsubscribe } from 'redux';\n\nexport interface AbstractStore<RootState> {\n  /// Dispatch an action\n  dispatch(action: Action & { payload: any }): void;\n\n  /// Retrieve the current application state\n  getState(): RootState;\n\n  /// Subscribe to changes in the store\n  subscribe(fn: (state: RootState) => void): Unsubscribe;\n}\n\nexport const FORM_CHANGED = '@@angular-redux/form/FORM_CHANGED';\n\n@Injectable()\nexport class FormStore {\n  /// NOTE(cbond): The declaration of store is misleading. This class is\n  /// actually capable of taking a plain Redux store or an NgRedux instance.\n  /// But in order to make the ng dependency injector work properly, we\n  /// declare it as an NgRedux type, since the @angular-redux/store use case involves\n  /// calling the constructor of this class manually (from configure.ts),\n  /// where a plain store can be cast to an NgRedux. (For our purposes, they\n  /// have almost identical shapes.)\n  constructor(private store: NgRedux<any>) {}\n\n  getState() {\n    return this.store.getState();\n  }\n\n  subscribe(fn: (state: any) => void): Unsubscribe {\n    return this.store.subscribe(() => fn(this.getState()));\n  }\n\n  valueChanged<T>(path: string[], form: NgForm, value: T) {\n    this.store.dispatch({\n      type: FORM_CHANGED,\n      payload: {\n        path,\n        form,\n        valid: form.valid === true,\n        value,\n      },\n    });\n  }\n}\n","import { Action, Store } from 'redux';\n\nimport { AbstractStore, FormStore } from './form-store';\n\n/// Use this function in your providers list if you are not using @angular-redux/core.\n/// This will allow you to provide a preexisting store that you have already\n/// configured, rather than letting @angular-redux/core create one for you.\nexport const provideReduxForms = <T>(store: Store<T> | any) => {\n  const abstractStore = wrap(store);\n\n  return [\n    { provide: FormStore, useValue: new FormStore(abstractStore as any) },\n  ];\n};\n\nconst wrap = <T>(store: Store<T> | any): AbstractStore<T> => {\n  const dispatch = (action: Action) => store.dispatch(action);\n\n  const getState = () => store.getState() as T;\n\n  const subscribe = (fn: (state: T) => void) =>\n    store.subscribe(() => fn(store.getState()));\n\n  return { dispatch, getState, subscribe };\n};\n","export class FormException extends Error {\n  constructor(msg: string) {\n    super(msg);\n  }\n}\n","import { isCollection, Map as ImmutableMap } from 'immutable';\n\nimport { FormException } from './form-exception';\n\nexport interface Operations<T> {\n  /// Shallow clone the object\n  clone(): T;\n\n  /// Clone and merge\n  merge(key: number | string | null, value: T): any;\n\n  /// Clone the object and update a specific key inside of it\n  update(key: number | string | null, value: T): any;\n}\n\nexport type TraverseCallback = (\n  parent: any,\n  key: number | string,\n  remainingPath: string[],\n  value?: any,\n) => any;\n\nexport abstract class State {\n  static traverse<StateType>(\n    state: StateType,\n    path: string[],\n    fn?: TraverseCallback,\n  ) {\n    let deepValue = state;\n\n    for (const k of path) {\n      const parent = deepValue;\n\n      if (isCollection(deepValue)) {\n        const m = (deepValue as any) as ImmutableMap<string, any>;\n        if (typeof m.get === 'function') {\n          deepValue = m.get(k);\n        } else {\n          throw new FormException(\n            `Cannot retrieve value from immutable nonassociative container: ${k}`,\n          );\n        }\n      } else if (deepValue instanceof Map) {\n        deepValue = ((deepValue as any) as Map<string, any>).get(k);\n      } else {\n        deepValue = (deepValue as any)[k];\n      }\n\n      if (typeof fn === 'function') {\n        const transformed = fn(\n          parent,\n          k,\n          path.slice(path.indexOf(k) + 1),\n          deepValue,\n        );\n\n        deepValue = transformed[k];\n\n        Object.assign(parent, transformed);\n      }\n\n      // If we were not able to find this state inside of our root state\n      // structure, then we return undefined -- not null -- to indicate that\n      // state. But this could be a perfectly normal use-case so we don't\n      // want to throw an exception or anything along those lines.\n      if (deepValue === undefined) {\n        return undefined;\n      }\n    }\n\n    return deepValue;\n  }\n\n  static get<StateType>(state: StateType, path: string[]): any {\n    return State.traverse(state, path);\n  }\n\n  static assign<StateType>(state: StateType, path: string[], value?: any) {\n    const operations = State.inspect(state);\n\n    if (path.length === 0) {\n      return operations.update(null, value);\n    }\n\n    const root = operations.clone();\n\n    // We want to shallow clone the object, and then trace a path to the place\n    // we want to update, cloning each object we traversed on our way and then\n    // finally updating the value on the last parent to be @value. This seems\n    // to offer the best performance: we can shallow clone everything that has\n    // not been modified, and {deep clone + update} the path down to the value\n    // that we wish to update.\n    State.traverse(\n      root,\n      path,\n      (parent, key: number | string, remainingPath: string[], innerValue?) => {\n        const parentOperations = State.inspect(parent);\n\n        if (innerValue) {\n          const innerOperations = State.inspect(innerValue);\n\n          return parentOperations.update(\n            key,\n            remainingPath.length > 0\n              ? innerOperations.clone()\n              : innerOperations.merge(null, value),\n          );\n        } else {\n          const getProbableType = (stateKey: string | number) => {\n            // NOTE(cbond): If your code gets here, you might not be using the library\n            /// correctly. If you are assigning into a path in your state, try to\n            /// ensure that there is a path to traverse, even if everything is just\n            /// empty objects and arrays. If we have to guess the type of the containers\n            /// and then create them ourselves, we may not get the types right. Use\n            /// the Redux `initial state' construct to resolve this issue if you like.\n            return typeof stateKey === 'number'\n              ? new Array()\n              : Array.isArray(stateKey)\n              ? ImmutableMap()\n              : new Object();\n          };\n\n          return parentOperations.update(\n            key,\n            remainingPath.length > 0\n              ? getProbableType(remainingPath[0])\n              : value,\n          );\n        }\n      },\n    );\n\n    return root;\n  }\n\n  static inspect<K>(object: K): Operations<K> {\n    const metaOperations = (\n      // TODO: Write proper type declarations for following Function types\n      update: Function,\n      merge: Function,\n      clone?: Function,\n    ) => {\n      const operations = {\n        /// Clone the object (shallow)\n        clone:\n          typeof clone === 'function'\n            ? () => clone(object as any) as any\n            : () => object,\n\n        /// Update a specific key inside of the container object\n        update: (key: string, value: K) =>\n          update(operations.clone(), key, value),\n\n        /// Merge existing values with new values\n        merge: (key: string, value: K) => {\n          const cloned = operations.clone();\n          return merge(cloned, key, value, (v: any) => update(cloned, key, v));\n        },\n      };\n\n      return operations;\n    };\n\n    if (isCollection(object)) {\n      return metaOperations(\n        // Replace\n        (parent: any, key: number | string, value: K) => {\n          if (key != null) {\n            return parent.set(key, value);\n          } else {\n            return value;\n          }\n        },\n        // Merge\n        (parent: any, key: number | string | string[], value: K) => {\n          if (key) {\n            return parent.mergeDeepIn(Array.isArray(key) ? key : [key], value);\n          } else {\n            if (ImmutableMap.isMap(value)) {\n              return parent.mergeDeep(value);\n            } else {\n              return parent.concat(value);\n            }\n          }\n        },\n      );\n    } else if (Array.isArray(object)) {\n      return metaOperations(\n        // Replace array contents\n        (parent: any, key: number, value: K) => {\n          if (key != null) {\n            parent[key] = value;\n          } else {\n            parent.splice.apply(\n              parent,\n              [0, parent.length].concat(Array.isArray(value) ? value : [value]),\n            );\n          }\n        },\n\n        // Merge\n        (parent: any, _: any, value: K, setter: (v: K) => K) => {\n          setter(parent.concat(value));\n          return parent;\n        },\n\n        // Clone\n        () => Array.prototype.slice.call(object, 0),\n      );\n    } else if (object instanceof Map) {\n      return metaOperations(\n        // Update map key\n        (parent: any, key: number | string, value: K) => {\n          if (key != null) {\n            return parent.set(key, value);\n          } else {\n            const m = new Map(value as any);\n            parent.clear();\n            m.forEach((mapValue, index) => parent.set(index, mapValue));\n            return parent;\n          }\n        },\n\n        // Merge\n        (parent: Map<string, any>, _: any, value: K) => {\n          const m = new Map<string, any>(value as any);\n          m.forEach((mapValue, key) => parent.set(key, mapValue));\n          return parent;\n        },\n\n        // Clone\n        () =>\n          object instanceof WeakMap\n            ? new WeakMap<object, any>(object as any)\n            : new Map<string, any>(object as any),\n      );\n    } else if (object instanceof WeakSet || object instanceof Set) {\n      return metaOperations(\n        // Update element at index in set\n        (parent: any, key: number, value: K) => {\n          if (key != null) {\n            return parent.set(key, value);\n          } else {\n            const s = new Set(value as any);\n            s.forEach((setValue, index) => parent.set(index, setValue));\n            s.clear();\n            return parent;\n          }\n        },\n\n        // Merge\n        (parent: Set<any>, _: any, value: any) => {\n          for (const element of value) {\n            parent.add(element);\n          }\n          return parent;\n        },\n\n        // Clone\n        () =>\n          object instanceof WeakSet\n            ? new WeakSet<any>(object as any)\n            : new Set<any>(object as any),\n      );\n    } else if (object instanceof Date) {\n      throw new FormException(\n        'Cannot understand why a Date object appears in the mutation path!',\n      );\n    } else {\n      switch (typeof object) {\n        case 'boolean':\n        case 'function':\n        case 'number':\n        case 'string':\n        case 'symbol':\n        case 'undefined':\n          break;\n        case 'object':\n          if (object == null) {\n            break;\n          }\n          return metaOperations(\n            (parent: any, key: any, value: K) => {\n              if (key != null) {\n                return { ...parent, [key]: value };\n              }\n              return { ...parent, ...(value as any) };\n            },\n            (parent: any, _: any, value: K) => {\n              for (const k of Object.keys(value)) {\n                parent[k] = (value as any)[k];\n              }\n              return parent;\n            },\n            () => ({ ...(object as any) }),\n          );\n        default:\n          break;\n      }\n    }\n\n    throw new Error(\n      `An object of type ${typeof object} has appeared in the mutation path! Every element ` +\n        'in the mutation path should be an array, an associative container, or a set',\n    );\n  }\n\n  static empty(value: any): boolean {\n    return (\n      value == null ||\n      (value.length === 0 ||\n        (typeof value.length === 'undefined' &&\n          Object.keys(value).length === 0))\n    );\n  }\n}\n","import { Collection } from 'immutable';\n\nimport { Action } from 'redux';\n\nimport { FORM_CHANGED } from './form-store';\n\nimport { State } from './state';\n\nexport const defaultFormReducer = <RootState>(\n  initialState?: RootState | Collection.Keyed<string, any>,\n) => {\n  const reducer = (\n    state: RootState | Collection.Keyed<string, any> | undefined = initialState,\n    action: Action & { payload?: any },\n  ) => {\n    switch (action.type) {\n      case FORM_CHANGED:\n        return State.assign(state, action.payload.path, action.payload.value);\n      default:\n        return state;\n    }\n  };\n\n  return reducer;\n};\n","import {\n  CheckboxControlValueAccessor,\n  ControlContainer,\n  ControlValueAccessor,\n  RadioControlValueAccessor,\n  SelectControlValueAccessor,\n  SelectMultipleControlValueAccessor,\n} from '@angular/forms';\n\nexport function controlPath(name: string, parent: ControlContainer): string[] {\n  return [...(parent.path || []), name];\n}\n\nconst BUILTIN_ACCESSORS = [\n  CheckboxControlValueAccessor,\n  SelectControlValueAccessor,\n  SelectMultipleControlValueAccessor,\n  RadioControlValueAccessor,\n];\n\nexport function isBuiltInAccessor(\n  valueAccessor: ControlValueAccessor,\n): boolean {\n  return BUILTIN_ACCESSORS.some(a => valueAccessor.constructor === a);\n}\n","export class ConnectArrayTemplate {\n  constructor(public $implicit: any, public index: number, public item: any) {}\n}\n","import { AfterContentInit, Directive, Input, OnDestroy } from '@angular/core';\n\nimport {\n  AbstractControl,\n  FormArray,\n  FormControl,\n  FormGroup,\n  NgControl,\n} from '@angular/forms';\n\nimport { Subscription } from 'rxjs';\n\nimport { Unsubscribe } from 'redux';\n\nimport { debounceTime } from 'rxjs/operators';\n\nimport { FormStore } from '../form-store';\nimport { State } from '../state';\n\nexport interface ControlPair {\n  path: string[];\n  control: AbstractControl;\n}\n\n@Directive({})\nexport class ConnectBase implements OnDestroy, AfterContentInit {\n  get path(): string[] {\n    const path =\n      typeof this.connect === 'function' ? this.connect() : this.connect;\n\n    switch (typeof path) {\n      case 'object':\n        if (State.empty(path)) {\n          return [];\n        }\n        if (Array.isArray(path)) {\n          return path as string[];\n        }\n      case 'string':\n        return (path as string).split(/\\./g);\n      default:\n        // fallthrough above (no break)\n        throw new Error(\n          `Cannot determine path to object: ${JSON.stringify(path)}`,\n        );\n    }\n  }\n  @Input() connect?: () => (string | number) | (string | number)[];\n  protected store?: FormStore;\n  protected formGroup: any;\n  private stateSubscription?: Unsubscribe;\n\n  private formSubscription?: Subscription;\n\n  ngOnDestroy() {\n    if (this.formSubscription) {\n      this.formSubscription.unsubscribe();\n    }\n\n    if (typeof this.stateSubscription === 'function') {\n      this.stateSubscription(); // unsubscribe\n    }\n  }\n\n  ngAfterContentInit() {\n    Promise.resolve().then(() => {\n      this.resetState();\n\n      if (this.store) {\n        this.stateSubscription = this.store.subscribe(() => this.resetState());\n      }\n\n      Promise.resolve().then(() => {\n        this.formSubscription = (this.formGroup.valueChanges as any)\n          .pipe(debounceTime(0))\n          .subscribe((values: any) => this.publish(values));\n      });\n    });\n  }\n\n  private descendants(path: string[], formElement: any): ControlPair[] {\n    const pairs = new Array<ControlPair>();\n\n    if (formElement instanceof FormArray) {\n      formElement.controls.forEach((c, index) => {\n        for (const d of this.descendants((path as any).concat([index]), c)) {\n          pairs.push(d);\n        }\n      });\n    } else if (formElement instanceof FormGroup) {\n      for (const k of Object.keys(formElement.controls)) {\n        pairs.push({\n          path: path.concat([k]),\n          control: formElement.controls[k],\n        });\n      }\n    } else if (\n      formElement instanceof NgControl ||\n      formElement instanceof FormControl\n    ) {\n      return [{ path, control: formElement as any }];\n    } else {\n      throw new Error(\n        `Unknown type of form element: ${formElement.constructor.name}`,\n      );\n    }\n\n    return pairs.filter((p) => {\n      const parent = (p.control as any)._parent;\n      return parent === this.formGroup.control || parent === this.formGroup;\n    });\n  }\n\n  private resetState() {\n    const formElement =\n      this.formGroup.control === undefined\n        ? this.formGroup\n        : this.formGroup.control;\n\n    const children = this.descendants([], formElement);\n\n    children.forEach((c) => {\n      const { path, control } = c;\n\n      const value = State.get(this.getState(), this.path.concat(path));\n\n      if (control.value !== value) {\n        control.setValue(value);\n      }\n    });\n  }\n\n  private publish(value: any) {\n    if (this.store) {\n      this.store.valueChanged(this.path, this.formGroup, value);\n    }\n  }\n\n  private getState() {\n    if (this.store) {\n      return this.store.getState();\n    }\n  }\n}\n","import {\n  Directive,\n  EmbeddedViewRef,\n  forwardRef,\n  Host,\n  Inject,\n  Input,\n  OnDestroy,\n  OnInit,\n  Optional,\n  Self,\n  SkipSelf,\n  TemplateRef,\n  ViewContainerRef,\n} from '@angular/core';\nimport {\n  AbstractControl,\n  AsyncValidatorFn,\n  ControlContainer,\n  FormArray,\n  FormControl,\n  FormGroup,\n  FormGroupDirective,\n  NG_ASYNC_VALIDATORS,\n  NG_VALIDATORS,\n  NgModelGroup,\n  ValidatorFn,\n  Validators,\n} from '@angular/forms';\nimport { Unsubscribe } from 'redux';\n\nimport { ConnectBase } from '../connect/connect-base';\nimport { FormStore } from '../form-store';\nimport { controlPath } from '../shims';\nimport { State } from '../state';\nimport { ConnectArrayTemplate } from './connect-array-template';\n\n@Directive({\n  selector: '[connectArray]',\n  providers: [\n    {\n      provide: ControlContainer,\n      useExisting: forwardRef(() => ConnectArrayDirective),\n    },\n  ],\n})\nexport class ConnectArrayDirective\n  extends ControlContainer\n  implements OnInit, OnDestroy\n{\n  private stateSubscription: Unsubscribe;\n\n  private array = new FormArray([]);\n\n  private key?: string;\n\n  constructor(\n    @Optional()\n    @Host()\n    @SkipSelf()\n    private parent: ControlContainer,\n    @Optional()\n    @Self()\n    @Inject(NG_VALIDATORS)\n    private rawValidators: any[],\n    @Optional()\n    @Self()\n    @Inject(NG_ASYNC_VALIDATORS)\n    private rawAsyncValidators: any[],\n    private connection: ConnectBase,\n    private templateRef: TemplateRef<any>,\n    private viewContainerRef: ViewContainerRef,\n    private store: FormStore,\n  ) {\n    super();\n\n    this.stateSubscription = this.store.subscribe((state) =>\n      this.resetState(state),\n    );\n\n    this.registerInternals(this.array);\n  }\n\n  @Input()\n  set connectArrayOf(collection: any) {\n    this.key = collection;\n\n    this.resetState(this.store.getState());\n  }\n\n  ngOnInit() {\n    this.formDirective.addControl(this as any);\n  }\n\n  name = this.key;\n\n  get control(): FormArray {\n    return this.array;\n  }\n\n  get formDirective(): FormGroupDirective {\n    return this.parent.formDirective as FormGroupDirective;\n  }\n\n  get path(): string[] {\n    return this.key ? controlPath(this.key, this.parent) : [];\n  }\n\n  get validator(): ValidatorFn | null {\n    return Validators.compose(this.rawValidators);\n  }\n\n  get asyncValidator(): AsyncValidatorFn | null {\n    return Validators.composeAsync(this.rawAsyncValidators);\n  }\n\n  updateValueAndValidity() {\n    // stub?\n  }\n\n  ngOnDestroy() {\n    this.viewContainerRef.clear();\n\n    if (this.key) {\n      this.formDirective.form.removeControl(this.key);\n    }\n\n    this.stateSubscription();\n  }\n\n  private resetState(state: any) {\n    if (this.key == null || this.key.length === 0) {\n      return; // no state to retreive if no key is set\n    }\n\n    const iterable = State.get(state, this.connection.path.concat(this.path));\n\n    let index = 0;\n\n    for (const value of iterable) {\n      const viewRef =\n        this.viewContainerRef.length > index\n          ? (this.viewContainerRef.get(\n              index,\n            ) as EmbeddedViewRef<ConnectArrayTemplate>)\n          : null;\n\n      if (viewRef == null) {\n        const embeddedViewRef =\n          this.viewContainerRef.createEmbeddedView<ConnectArrayTemplate>(\n            this.templateRef,\n            new ConnectArrayTemplate(index, index, value),\n            index,\n          );\n\n        this.patchDescendantControls(embeddedViewRef);\n\n        this.array.insert(\n          index,\n          this.transform(this.array, embeddedViewRef.context.item),\n        );\n      } else {\n        Object.assign(\n          viewRef.context,\n          new ConnectArrayTemplate(index, index, value),\n        );\n      }\n\n      ++index;\n    }\n\n    while (this.viewContainerRef.length > index) {\n      this.viewContainerRef.remove(this.viewContainerRef.length - 1);\n    }\n  }\n\n  private registerInternals(array: any) {\n    array.registerControl = () => undefined;\n    array.registerOnChange = () => undefined;\n\n    Object.defineProperties(this, {\n      _rawValidators: {\n        value: this.rawValidators || [],\n      },\n      _rawAsyncValidators: {\n        value: this.rawAsyncValidators || [],\n      },\n    });\n  }\n\n  private patchDescendantControls(viewRef: any) {\n    const groups = Object.keys(viewRef._view)\n      .map((k) => viewRef._view[k])\n      .filter((c) => c instanceof NgModelGroup);\n\n    groups.forEach((c) => {\n      Object.defineProperties(c, {\n        _parent: {\n          value: this,\n        },\n        _checkParentType: {\n          value: () => undefined,\n        },\n      });\n    });\n  }\n\n  private transform(\n    parent: FormGroup | FormArray,\n    reference: any,\n  ): AbstractControl {\n    const emptyControl = () => {\n      const control = new FormControl(null);\n      control.setParent(parent);\n      return control;\n    };\n\n    if (reference == null) {\n      return emptyControl();\n    }\n\n    if (typeof reference.toJS === 'function') {\n      reference = reference.toJS();\n    }\n\n    switch (typeof reference) {\n      case 'string':\n      case 'number':\n      case 'boolean':\n        return emptyControl();\n    }\n\n    const iterate = (iterable: any): FormArray => {\n      const array = new FormArray([]);\n\n      this.registerInternals(array);\n\n      for (let i = array.length; i > 0; i--) {\n        array.removeAt(i);\n      }\n\n      for (const value of iterable) {\n        const transformed = this.transform(array, value);\n        if (transformed) {\n          array.push(transformed);\n        }\n      }\n\n      return array;\n    };\n\n    const associate = (value: any): FormGroup => {\n      const group = new FormGroup({});\n      group.setParent(parent);\n\n      for (const key of Object.keys(value)) {\n        const transformed = this.transform(group, value[key]);\n        if (transformed) {\n          group.addControl(key, transformed);\n        }\n      }\n\n      return group;\n    };\n\n    if (Array.isArray(reference)) {\n      return iterate(reference as any[]);\n    } else if (reference instanceof Set) {\n      return iterate(reference as Set<any>);\n    } else if (reference instanceof Map) {\n      return associate(reference as Map<string, any>);\n    } else if (reference instanceof Object) {\n      return associate(reference);\n    } else {\n      throw new Error(\n        `Cannot convert object of type ${typeof reference} / ${reference.toString()} to form element`,\n      );\n    }\n  }\n}\n","import { NgModule } from '@angular/core';\n\nimport { ConnectArrayDirective } from './connect-array.directive';\n\nconst declarations = [ConnectArrayDirective];\n\n@NgModule({\n  declarations: [...declarations],\n  exports: [...declarations],\n})\nexport class NgReduxFormConnectArrayModule {}\n","import { Directive, Input } from '@angular/core';\n\nimport { FormStore } from '../form-store';\n\nimport { ConnectBase } from './connect-base';\n\n// For reactive forms (without implicit NgForm)\n@Directive({ selector: 'form[connect][formGroup]' })\nexport class ReactiveConnectDirective extends ConnectBase {\n  @Input() formGroup: any;\n\n  constructor(protected store: FormStore) {\n    super();\n  }\n}\n","import { Directive } from '@angular/core';\n\nimport { NgForm } from '@angular/forms';\n\nimport { FormStore } from '../form-store';\nimport { ConnectBase } from './connect-base';\n\n// For template forms (with implicit NgForm)\n@Directive({ selector: 'form[connect]:not([formGroup])' })\nexport class ConnectDirective extends ConnectBase {\n  constructor(protected store: FormStore, protected formGroup: NgForm) {\n    super();\n  }\n}\n","import { NgModule } from '@angular/core';\n\nimport { ReactiveConnectDirective } from './connect-reactive';\nimport { ConnectDirective } from './connect.directive';\n\nconst declarations = [ConnectDirective, ReactiveConnectDirective];\n\n@NgModule({\n  declarations: [...declarations],\n  exports: [...declarations],\n})\nexport class NgReduxFormConnectModule {}\n","import { NgRedux } from '@angular-redux-ivy/store';\nimport { NgModule } from '@angular/core';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { NgReduxFormConnectArrayModule } from './connect-array/connect-array.module';\nimport { NgReduxFormConnectModule } from './connect/connect.module';\nimport { FormStore } from './form-store';\n\nexport function formStoreFactory(ngRedux: NgRedux<any>) {\n  return new FormStore(ngRedux);\n}\n\n@NgModule({\n  imports: [\n    FormsModule,\n    ReactiveFormsModule,\n    NgReduxFormConnectModule,\n    NgReduxFormConnectArrayModule,\n  ],\n  exports: [NgReduxFormConnectModule, NgReduxFormConnectArrayModule],\n  providers: [\n    {\n      provide: FormStore,\n      useFactory: formStoreFactory,\n      deps: [NgRedux],\n    },\n  ],\n})\nexport class NgReduxFormModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["ImmutableMap","i1","i2.ConnectBase","i3.FormStore","declarations","i1.FormStore","i2"],"mappings":"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"}