{"version":3,"file":"ngrx-entity.mjs","sources":["../../../../modules/entity/src/entity_state.ts","../../../../modules/entity/src/state_selectors.ts","../../../../modules/entity/src/state_adapter.ts","../../../../modules/entity/src/utils.ts","../../../../modules/entity/src/unsorted_state_adapter.ts","../../../../modules/entity/src/sorted_state_adapter.ts","../../../../modules/entity/src/create_adapter.ts","../../../../modules/entity/src/models.ts","../../../../modules/entity/index.ts","../../../../modules/entity/ngrx-entity.ts"],"sourcesContent":["import { EntityState } from './models';\n\nexport function getInitialEntityState<V>(): EntityState<V> {\n  return {\n    ids: [],\n    entities: {},\n  };\n}\n\nexport function createInitialStateFactory<V>() {\n  function getInitialState(): EntityState<V>;\n  function getInitialState<S extends EntityState<V>>(\n    additionalState: Omit<S, keyof EntityState<V>>\n  ): S;\n  function getInitialState(additionalState: any = {}): any {\n    return Object.assign(getInitialEntityState(), additionalState);\n  }\n\n  return { getInitialState };\n}\n","import { createSelector } from '@ngrx/store';\nimport {\n  EntityState,\n  EntitySelectors,\n  MemoizedEntitySelectors,\n} from './models';\n\nexport function createSelectorsFactory<T>() {\n  function getSelectors(): EntitySelectors<T, EntityState<T>>;\n  function getSelectors<V>(\n    selectState: (state: V) => EntityState<T>\n  ): MemoizedEntitySelectors<T, V>;\n  function getSelectors(\n    selectState?: (state: any) => EntityState<T>\n  ): EntitySelectors<T, any> {\n    const selectIds = (state: any) => state.ids;\n    const selectEntities = (state: EntityState<T>) => state.entities;\n    const selectAll = createSelector(\n      selectIds,\n      selectEntities,\n      (ids, entities): any => ids.map((id: any) => (entities as any)[id])\n    );\n\n    const selectTotal = createSelector(selectIds, (ids) => ids.length);\n\n    if (!selectState) {\n      return {\n        selectIds,\n        selectEntities,\n        selectAll,\n        selectTotal,\n      };\n    }\n\n    return {\n      selectIds: createSelector(selectState, selectIds),\n      selectEntities: createSelector(selectState, selectEntities),\n      selectAll: createSelector(selectState, selectAll),\n      selectTotal: createSelector(selectState, selectTotal),\n    };\n  }\n\n  return { getSelectors };\n}\n","import { EntityState } from './models';\n\nexport enum DidMutate {\n  EntitiesOnly,\n  Both,\n  None,\n}\n\nexport function createStateOperator<V, R>(\n  mutator: (arg: R, state: EntityState<V>) => DidMutate\n): EntityState<V>;\nexport function createStateOperator<V, R>(\n  mutator: (arg: any, state: any) => DidMutate\n): any {\n  return function operation<S extends EntityState<V>>(arg: R, state: any): S {\n    const clonedEntityState: EntityState<V> = {\n      ids: [...state.ids],\n      entities: { ...state.entities },\n    };\n\n    const didMutate = mutator(arg, clonedEntityState);\n\n    if (didMutate === DidMutate.Both) {\n      return Object.assign({}, state, clonedEntityState);\n    }\n\n    if (didMutate === DidMutate.EntitiesOnly) {\n      return {\n        ...state,\n        entities: clonedEntityState.entities,\n      };\n    }\n\n    return state;\n  };\n}\n","import { isDevMode } from '@angular/core';\nimport { IdSelector } from './models';\n\nexport function selectIdValue<T>(entity: T, selectId: IdSelector<T>) {\n  const key = selectId(entity);\n\n  if (isDevMode() && key === undefined) {\n    console.warn(\n      '@ngrx/entity: The entity passed to the `selectId` implementation returned undefined.',\n      'You should probably provide your own `selectId` implementation.',\n      'The entity that was passed:',\n      entity,\n      'The `selectId` implementation:',\n      selectId.toString()\n    );\n  }\n\n  return key;\n}\n","import {\n  EntityState,\n  EntityStateAdapter,\n  IdSelector,\n  Update,\n  Predicate,\n  EntityMap,\n  EntityMapOneNum,\n  EntityMapOneStr,\n} from './models';\nimport { createStateOperator, DidMutate } from './state_adapter';\nimport { selectIdValue } from './utils';\n\nexport function createUnsortedStateAdapter<T>(\n  selectId: IdSelector<T>\n): EntityStateAdapter<T>;\nexport function createUnsortedStateAdapter<T>(selectId: IdSelector<T>): any {\n  type R = EntityState<T>;\n\n  function addOneMutably(entity: T, state: R): DidMutate;\n  function addOneMutably(entity: any, state: any): DidMutate {\n    const key = selectIdValue(entity, selectId);\n\n    if (key in state.entities) {\n      return DidMutate.None;\n    }\n\n    state.ids.push(key);\n    state.entities[key] = entity;\n\n    return DidMutate.Both;\n  }\n\n  function addManyMutably(entities: T[], state: R): DidMutate;\n  function addManyMutably(entities: any[], state: any): DidMutate {\n    let didMutate = false;\n\n    for (const entity of entities) {\n      didMutate = addOneMutably(entity, state) !== DidMutate.None || didMutate;\n    }\n\n    return didMutate ? DidMutate.Both : DidMutate.None;\n  }\n\n  function setAllMutably(entities: T[], state: R): DidMutate;\n  function setAllMutably(entities: any[], state: any): DidMutate {\n    state.ids = [];\n    state.entities = {};\n\n    addManyMutably(entities, state);\n\n    return DidMutate.Both;\n  }\n\n  function setOneMutably(entity: T, state: R): DidMutate;\n  function setOneMutably(entity: any, state: any): DidMutate {\n    const key = selectIdValue(entity, selectId);\n\n    if (key in state.entities) {\n      state.entities[key] = entity;\n      return DidMutate.EntitiesOnly;\n    }\n\n    state.ids.push(key);\n    state.entities[key] = entity;\n\n    return DidMutate.Both;\n  }\n\n  function setManyMutably(entities: T[], state: R): DidMutate;\n  function setManyMutably(entities: any[], state: any): DidMutate {\n    const didMutateSetOne = entities.map((entity) =>\n      setOneMutably(entity, state)\n    );\n\n    switch (true) {\n      case didMutateSetOne.some((didMutate) => didMutate === DidMutate.Both):\n        return DidMutate.Both;\n      case didMutateSetOne.some(\n        (didMutate) => didMutate === DidMutate.EntitiesOnly\n      ):\n        return DidMutate.EntitiesOnly;\n      default:\n        return DidMutate.None;\n    }\n  }\n\n  function removeOneMutably(key: string | number, state: R): DidMutate;\n  function removeOneMutably(key: any, state: any): DidMutate {\n    return removeManyMutably([key], state);\n  }\n\n  function removeManyMutably(keys: string[] | number[], state: R): DidMutate;\n  function removeManyMutably(predicate: Predicate<T>, state: R): DidMutate;\n  function removeManyMutably(\n    keysOrPredicate: any[] | Predicate<T>,\n    state: any\n  ): DidMutate {\n    const keys =\n      keysOrPredicate instanceof Array\n        ? keysOrPredicate\n        : state.ids.filter((key: any) => keysOrPredicate(state.entities[key]));\n\n    const didMutate =\n      keys\n        .filter((key: any) => key in state.entities)\n        .map((key: any) => delete state.entities[key]).length > 0;\n\n    if (didMutate) {\n      state.ids = state.ids.filter((id: any) => id in state.entities);\n    }\n\n    return didMutate ? DidMutate.Both : DidMutate.None;\n  }\n\n  function removeAll<S extends R>(state: S): S;\n  function removeAll<S extends R>(state: any): S {\n    return Object.assign({}, state, {\n      ids: [],\n      entities: {},\n    });\n  }\n\n  function takeNewKey(\n    keys: { [id: string]: string },\n    update: Update<T>,\n    state: R\n  ): void;\n  function takeNewKey(\n    keys: { [id: string]: any },\n    update: Update<T>,\n    state: any\n  ): boolean {\n    const original = state.entities[update.id];\n    const updated: T = Object.assign({}, original, update.changes);\n    const newKey = selectIdValue(updated, selectId);\n    const hasNewKey = newKey !== update.id;\n\n    if (hasNewKey) {\n      keys[update.id] = newKey;\n      delete state.entities[update.id];\n    }\n\n    state.entities[newKey] = updated;\n\n    return hasNewKey;\n  }\n\n  function updateOneMutably(update: Update<T>, state: R): DidMutate;\n  function updateOneMutably(update: any, state: any): DidMutate {\n    return updateManyMutably([update], state);\n  }\n\n  function updateManyMutably(updates: Update<T>[], state: R): DidMutate;\n  function updateManyMutably(updates: any[], state: any): DidMutate {\n    const newKeys: { [id: string]: string } = {};\n\n    updates = updates.filter((update) => update.id in state.entities);\n\n    const didMutateEntities = updates.length > 0;\n\n    if (didMutateEntities) {\n      const didMutateIds =\n        updates.filter((update) => takeNewKey(newKeys, update, state)).length >\n        0;\n\n      if (didMutateIds) {\n        state.ids = state.ids.map((id: any) => newKeys[id] || id);\n        return DidMutate.Both;\n      } else {\n        return DidMutate.EntitiesOnly;\n      }\n    }\n\n    return DidMutate.None;\n  }\n\n  function mapMutably(map: EntityMap<T>, state: R): DidMutate;\n  function mapMutably(map: any, state: any): DidMutate {\n    const changes: Update<T>[] = state.ids.reduce(\n      (changes: any[], id: string | number) => {\n        const change = map(state.entities[id]);\n        if (change !== state.entities[id]) {\n          changes.push({ id, changes: change });\n        }\n        return changes;\n      },\n      []\n    );\n    const updates = changes.filter(({ id }) => id in state.entities);\n\n    return updateManyMutably(updates, state);\n  }\n\n  function mapOneMutably(map: EntityMapOneNum<T>, state: R): DidMutate;\n  function mapOneMutably(map: EntityMapOneStr<T>, state: R): DidMutate;\n  function mapOneMutably({ map, id }: any, state: any): DidMutate {\n    const entity = state.entities[id];\n    if (!entity) {\n      return DidMutate.None;\n    }\n\n    const updatedEntity = map(entity);\n    return updateOneMutably(\n      {\n        id: id,\n        changes: updatedEntity,\n      },\n      state\n    );\n  }\n\n  function upsertOneMutably(entity: T, state: R): DidMutate;\n  function upsertOneMutably(entity: any, state: any): DidMutate {\n    return upsertManyMutably([entity], state);\n  }\n\n  function upsertManyMutably(entities: T[], state: R): DidMutate;\n  function upsertManyMutably(entities: any[], state: any): DidMutate {\n    const added: any[] = [];\n    const updated: any[] = [];\n\n    for (const entity of entities) {\n      const id = selectIdValue(entity, selectId);\n      if (id in state.entities) {\n        updated.push({ id, changes: entity });\n      } else {\n        added.push(entity);\n      }\n    }\n\n    const didMutateByUpdated = updateManyMutably(updated, state);\n    const didMutateByAdded = addManyMutably(added, state);\n\n    switch (true) {\n      case didMutateByAdded === DidMutate.None &&\n        didMutateByUpdated === DidMutate.None:\n        return DidMutate.None;\n      case didMutateByAdded === DidMutate.Both ||\n        didMutateByUpdated === DidMutate.Both:\n        return DidMutate.Both;\n      default:\n        return DidMutate.EntitiesOnly;\n    }\n  }\n\n  return {\n    removeAll,\n    addOne: createStateOperator(addOneMutably),\n    addMany: createStateOperator(addManyMutably),\n    setAll: createStateOperator(setAllMutably),\n    setOne: createStateOperator(setOneMutably),\n    setMany: createStateOperator(setManyMutably),\n    updateOne: createStateOperator(updateOneMutably),\n    updateMany: createStateOperator(updateManyMutably),\n    upsertOne: createStateOperator(upsertOneMutably),\n    upsertMany: createStateOperator(upsertManyMutably),\n    removeOne: createStateOperator(removeOneMutably),\n    removeMany: createStateOperator(removeManyMutably),\n    map: createStateOperator(mapMutably),\n    mapOne: createStateOperator(mapOneMutably),\n  };\n}\n","import {\n  EntityState,\n  IdSelector,\n  Comparer,\n  EntityStateAdapter,\n  Update,\n  EntityMap,\n  EntityMapOneNum,\n  EntityMapOneStr,\n} from './models';\nimport { createStateOperator, DidMutate } from './state_adapter';\nimport { createUnsortedStateAdapter } from './unsorted_state_adapter';\nimport { selectIdValue } from './utils';\n\nexport function createSortedStateAdapter<T>(\n  selectId: IdSelector<T>,\n  sort: Comparer<T>\n): EntityStateAdapter<T>;\nexport function createSortedStateAdapter<T>(selectId: any, sort: any): any {\n  type R = EntityState<T>;\n\n  const { removeOne, removeMany, removeAll } =\n    createUnsortedStateAdapter(selectId);\n\n  function addOneMutably(entity: T, state: R): DidMutate;\n  function addOneMutably(entity: any, state: any): DidMutate {\n    return addManyMutably([entity], state);\n  }\n\n  function addManyMutably(newModels: T[], state: R): DidMutate;\n  function addManyMutably(newModels: any[], state: any): DidMutate {\n    const models = newModels.filter(\n      (model) => !(selectIdValue(model, selectId) in state.entities)\n    );\n\n    if (models.length === 0) {\n      return DidMutate.None;\n    } else {\n      merge(models, state);\n      return DidMutate.Both;\n    }\n  }\n\n  function setAllMutably(models: T[], state: R): DidMutate;\n  function setAllMutably(models: any[], state: any): DidMutate {\n    state.entities = {};\n    state.ids = [];\n\n    addManyMutably(models, state);\n\n    return DidMutate.Both;\n  }\n\n  function setOneMutably(entity: T, state: R): DidMutate;\n  function setOneMutably(entity: any, state: any): DidMutate {\n    const id = selectIdValue(entity, selectId);\n    if (id in state.entities) {\n      state.ids = state.ids.filter((val: string | number) => val !== id);\n      merge([entity], state);\n      return DidMutate.Both;\n    } else {\n      return addOneMutably(entity, state);\n    }\n  }\n\n  function setManyMutably(entities: T[], state: R): DidMutate;\n  function setManyMutably(entities: any[], state: any): DidMutate {\n    const didMutateSetOne = entities.map((entity) =>\n      setOneMutably(entity, state)\n    );\n\n    switch (true) {\n      case didMutateSetOne.some((didMutate) => didMutate === DidMutate.Both):\n        return DidMutate.Both;\n      case didMutateSetOne.some(\n        (didMutate) => didMutate === DidMutate.EntitiesOnly\n      ):\n        return DidMutate.EntitiesOnly;\n      default:\n        return DidMutate.None;\n    }\n  }\n\n  function updateOneMutably(update: Update<T>, state: R): DidMutate;\n  function updateOneMutably(update: any, state: any): DidMutate {\n    return updateManyMutably([update], state);\n  }\n\n  function takeUpdatedModel(models: T[], update: Update<T>, state: R): boolean;\n  function takeUpdatedModel(models: any[], update: any, state: any): boolean {\n    if (!(update.id in state.entities)) {\n      return false;\n    }\n\n    const original = state.entities[update.id];\n    const updated = Object.assign({}, original, update.changes);\n    const newKey = selectIdValue(updated, selectId);\n\n    delete state.entities[update.id];\n\n    models.push(updated);\n\n    return newKey !== update.id;\n  }\n\n  function updateManyMutably(updates: Update<T>[], state: R): DidMutate;\n  function updateManyMutably(updates: any[], state: any): DidMutate {\n    const models: T[] = [];\n\n    const didMutateIds =\n      updates.filter((update) => takeUpdatedModel(models, update, state))\n        .length > 0;\n\n    if (models.length === 0) {\n      return DidMutate.None;\n    } else {\n      const originalIds = state.ids;\n      const updatedIndexes: any[] = [];\n      state.ids = state.ids.filter((id: any, index: number) => {\n        if (id in state.entities) {\n          return true;\n        } else {\n          updatedIndexes.push(index);\n          return false;\n        }\n      });\n\n      merge(models, state);\n\n      if (\n        !didMutateIds &&\n        updatedIndexes.every((i: number) => state.ids[i] === originalIds[i])\n      ) {\n        return DidMutate.EntitiesOnly;\n      } else {\n        return DidMutate.Both;\n      }\n    }\n  }\n\n  function mapMutably(map: EntityMap<T>, state: R): DidMutate;\n  function mapMutably(updatesOrMap: any, state: any): DidMutate {\n    const updates: Update<T>[] = state.ids.reduce(\n      (changes: any[], id: string | number) => {\n        const change = updatesOrMap(state.entities[id]);\n        if (change !== state.entities[id]) {\n          changes.push({ id, changes: change });\n        }\n        return changes;\n      },\n      []\n    );\n\n    return updateManyMutably(updates, state);\n  }\n\n  function mapOneMutably(map: EntityMapOneNum<T>, state: R): DidMutate;\n  function mapOneMutably(map: EntityMapOneStr<T>, state: R): DidMutate;\n  function mapOneMutably({ map, id }: any, state: any): DidMutate {\n    const entity = state.entities[id];\n    if (!entity) {\n      return DidMutate.None;\n    }\n\n    const updatedEntity = map(entity);\n    return updateOneMutably(\n      {\n        id: id,\n        changes: updatedEntity,\n      },\n      state\n    );\n  }\n\n  function upsertOneMutably(entity: T, state: R): DidMutate;\n  function upsertOneMutably(entity: any, state: any): DidMutate {\n    return upsertManyMutably([entity], state);\n  }\n\n  function upsertManyMutably(entities: T[], state: R): DidMutate;\n  function upsertManyMutably(entities: any[], state: any): DidMutate {\n    const added: any[] = [];\n    const updated: any[] = [];\n\n    for (const entity of entities) {\n      const id = selectIdValue(entity, selectId);\n      if (id in state.entities) {\n        updated.push({ id, changes: entity });\n      } else {\n        added.push(entity);\n      }\n    }\n\n    const didMutateByUpdated = updateManyMutably(updated, state);\n    const didMutateByAdded = addManyMutably(added, state);\n\n    switch (true) {\n      case didMutateByAdded === DidMutate.None &&\n        didMutateByUpdated === DidMutate.None:\n        return DidMutate.None;\n      case didMutateByAdded === DidMutate.Both ||\n        didMutateByUpdated === DidMutate.Both:\n        return DidMutate.Both;\n      default:\n        return DidMutate.EntitiesOnly;\n    }\n  }\n\n  function merge(models: T[], state: R): void;\n  function merge(models: any[], state: any): void {\n    models.sort(sort);\n\n    const ids: any[] = [];\n\n    let i = 0;\n    let j = 0;\n\n    while (i < models.length && j < state.ids.length) {\n      const model = models[i];\n      const modelId = selectIdValue(model, selectId);\n      const entityId = state.ids[j];\n      const entity = state.entities[entityId];\n\n      if (sort(model, entity) <= 0) {\n        ids.push(modelId);\n        i++;\n      } else {\n        ids.push(entityId);\n        j++;\n      }\n    }\n\n    if (i < models.length) {\n      state.ids = ids.concat(models.slice(i).map(selectId));\n    } else {\n      state.ids = ids.concat(state.ids.slice(j));\n    }\n\n    models.forEach((model, i) => {\n      state.entities[selectId(model)] = model;\n    });\n  }\n\n  return {\n    removeOne,\n    removeMany,\n    removeAll,\n    addOne: createStateOperator(addOneMutably),\n    updateOne: createStateOperator(updateOneMutably),\n    upsertOne: createStateOperator(upsertOneMutably),\n    setAll: createStateOperator(setAllMutably),\n    setOne: createStateOperator(setOneMutably),\n    setMany: createStateOperator(setManyMutably),\n    addMany: createStateOperator(addManyMutably),\n    updateMany: createStateOperator(updateManyMutably),\n    upsertMany: createStateOperator(upsertManyMutably),\n    map: createStateOperator(mapMutably),\n    mapOne: createStateOperator(mapOneMutably),\n  };\n}\n","import {\n  EntityDefinition,\n  Comparer,\n  IdSelector,\n  EntityAdapter,\n} from './models';\nimport { createInitialStateFactory } from './entity_state';\nimport { createSelectorsFactory } from './state_selectors';\nimport { createSortedStateAdapter } from './sorted_state_adapter';\nimport { createUnsortedStateAdapter } from './unsorted_state_adapter';\n\nexport function createEntityAdapter<T>(\n  options: {\n    selectId?: IdSelector<T>;\n    sortComparer?: false | Comparer<T>;\n  } = {}\n): EntityAdapter<T> {\n  const { selectId, sortComparer }: EntityDefinition<T> = {\n    selectId: options.selectId ?? ((entity: any) => entity.id),\n    sortComparer: options.sortComparer ?? false,\n  };\n\n  const stateFactory = createInitialStateFactory<T>();\n  const selectorsFactory = createSelectorsFactory<T>();\n  const stateAdapter = sortComparer\n    ? createSortedStateAdapter(selectId, sortComparer)\n    : createUnsortedStateAdapter(selectId);\n\n  return {\n    selectId,\n    sortComparer,\n    ...stateFactory,\n    ...selectorsFactory,\n    ...stateAdapter,\n  };\n}\n","import { MemoizedSelector } from '@ngrx/store';\n\nexport type Comparer<T> = (a: T, b: T) => number;\n\nexport type IdSelectorStr<T> = (model: T) => string;\nexport type IdSelectorNum<T> = (model: T) => number;\n\nexport type IdSelector<T> = IdSelectorStr<T> | IdSelectorNum<T>;\n\nexport interface DictionaryNum<T> {\n  [id: number]: T | undefined;\n}\n\nexport abstract class Dictionary<T> implements DictionaryNum<T> {\n  [id: string]: T | undefined;\n}\n\nexport interface UpdateStr<T> {\n  id: string;\n  changes: Partial<T>;\n}\n\nexport interface UpdateNum<T> {\n  id: number;\n  changes: Partial<T>;\n}\n\nexport type Update<T> = UpdateStr<T> | UpdateNum<T>;\n\nexport type Predicate<T> = (entity: T) => boolean;\n\nexport type EntityMap<T> = (entity: T) => T;\n\nexport interface EntityMapOneNum<T> {\n  id: number;\n  map: EntityMap<T>;\n}\n\nexport interface EntityMapOneStr<T> {\n  id: string;\n  map: EntityMap<T>;\n}\n\nexport type EntityMapOne<T> = EntityMapOneNum<T> | EntityMapOneStr<T>;\n\nexport interface EntityState<T> {\n  ids: string[] | number[];\n  entities: Dictionary<T>;\n}\n\nexport interface EntityDefinition<T> {\n  selectId: IdSelector<T>;\n  sortComparer: false | Comparer<T>;\n}\n\nexport interface EntityStateAdapter<T> {\n  addOne<S extends EntityState<T>>(entity: T, state: S): S;\n  addMany<S extends EntityState<T>>(entities: T[], state: S): S;\n\n  setAll<S extends EntityState<T>>(entities: T[], state: S): S;\n  setOne<S extends EntityState<T>>(entity: T, state: S): S;\n  setMany<S extends EntityState<T>>(entities: T[], state: S): S;\n\n  removeOne<S extends EntityState<T>>(key: string, state: S): S;\n  removeOne<S extends EntityState<T>>(key: number, state: S): S;\n\n  removeMany<S extends EntityState<T>>(keys: string[], state: S): S;\n  removeMany<S extends EntityState<T>>(keys: number[], state: S): S;\n  removeMany<S extends EntityState<T>>(predicate: Predicate<T>, state: S): S;\n\n  removeAll<S extends EntityState<T>>(state: S): S;\n\n  updateOne<S extends EntityState<T>>(update: Update<T>, state: S): S;\n  updateMany<S extends EntityState<T>>(updates: Update<T>[], state: S): S;\n\n  upsertOne<S extends EntityState<T>>(entity: T, state: S): S;\n  upsertMany<S extends EntityState<T>>(entities: T[], state: S): S;\n\n  mapOne<S extends EntityState<T>>(map: EntityMapOne<T>, state: S): S;\n  map<S extends EntityState<T>>(map: EntityMap<T>, state: S): S;\n}\n\nexport type EntitySelectors<T, V> = {\n  selectIds: (state: V) => string[] | number[];\n  selectEntities: (state: V) => Dictionary<T>;\n  selectAll: (state: V) => T[];\n  selectTotal: (state: V) => number;\n};\n\nexport type MemoizedEntitySelectors<T, V> = {\n  selectIds: MemoizedSelector<\n    V,\n    string[] | number[],\n    (entityState: EntityState<T>) => string[] | number[]\n  >;\n  selectEntities: MemoizedSelector<\n    V,\n    Dictionary<T>,\n    (entityState: EntityState<T>) => Dictionary<T>\n  >;\n  selectAll: MemoizedSelector<V, T[], (entityState: EntityState<T>) => T[]>;\n  selectTotal: MemoizedSelector<\n    V,\n    number,\n    (entityState: EntityState<T>) => number\n  >;\n};\n\nexport interface EntityAdapter<T> extends EntityStateAdapter<T> {\n  selectId: IdSelector<T>;\n  sortComparer: false | Comparer<T>;\n  getInitialState(): EntityState<T>;\n  getInitialState<S extends EntityState<T>>(\n    state: Omit<S, keyof EntityState<T>>\n  ): S;\n  getSelectors(): EntitySelectors<T, EntityState<T>>;\n  getSelectors<V>(\n    selectState: (state: V) => EntityState<T>\n  ): MemoizedEntitySelectors<T, V>;\n}\n","/**\n * DO NOT EDIT\n *\n * This file is automatically generated at build\n */\n\nexport * from './public_api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}