@ngrx-traits/common 19.2.3 → 20.0.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (75) hide show
  1. package/README.md +1 -1
  2. package/fesm2022/ngrx-traits-common.mjs +13 -13
  3. package/fesm2022/ngrx-traits-common.mjs.map +1 -1
  4. package/index.d.ts +1023 -12
  5. package/package.json +2 -2
  6. package/async-action/async-action.model.d.ts +0 -19
  7. package/async-action/async-action.trait.d.ts +0 -68
  8. package/async-action/index.d.ts +0 -2
  9. package/crud-entities/crud-entities.model.d.ts +0 -74
  10. package/crud-entities/crud-entities.trait.actions.d.ts +0 -2
  11. package/crud-entities/crud-entities.trait.d.ts +0 -40
  12. package/crud-entities/crud-entities.trait.mutators.d.ts +0 -3
  13. package/crud-entities/crud-entities.trait.reducer.d.ts +0 -7
  14. package/crud-entities/crud-entities.trait.selectors.d.ts +0 -3
  15. package/crud-entities/index.d.ts +0 -2
  16. package/entities-pagination/entities-pagination.model.d.ts +0 -80
  17. package/entities-pagination/entities-pagination.model.internal.d.ts +0 -20
  18. package/entities-pagination/entities-pagination.trait.actions.d.ts +0 -2
  19. package/entities-pagination/entities-pagination.trait.d.ts +0 -69
  20. package/entities-pagination/entities-pagination.trait.effects.d.ts +0 -8
  21. package/entities-pagination/entities-pagination.trait.mutators.d.ts +0 -3
  22. package/entities-pagination/entities-pagination.trait.reducer.d.ts +0 -8
  23. package/entities-pagination/entities-pagination.trait.selectors.d.ts +0 -4
  24. package/entities-pagination/index.d.ts +0 -2
  25. package/entities-sync-to-route-query-params/entities-sync-to-route-query-params.d.ts +0 -30
  26. package/entities-sync-to-route-query-params/index.d.ts +0 -1
  27. package/filter-entities/filter-entities.model.d.ts +0 -57
  28. package/filter-entities/filter-entities.model.internal.d.ts +0 -14
  29. package/filter-entities/filter-entities.trait.actions.d.ts +0 -2
  30. package/filter-entities/filter-entities.trait.d.ts +0 -48
  31. package/filter-entities/filter-entities.trait.effect.d.ts +0 -6
  32. package/filter-entities/filter-entities.trait.mutators.d.ts +0 -2
  33. package/filter-entities/filter-entities.trait.reducer.d.ts +0 -5
  34. package/filter-entities/filter-entities.trait.selectors.d.ts +0 -4
  35. package/filter-entities/index.d.ts +0 -2
  36. package/load-entities/index.d.ts +0 -2
  37. package/load-entities/load-entities.model.d.ts +0 -97
  38. package/load-entities/load-entities.mutators.d.ts +0 -3
  39. package/load-entities/load-entities.trait.actions.d.ts +0 -2
  40. package/load-entities/load-entities.trait.d.ts +0 -44
  41. package/load-entities/load-entities.trait.reducer.d.ts +0 -4
  42. package/load-entities/load-entities.trait.selectors.d.ts +0 -3
  43. package/load-entities/load-entities.utils.d.ts +0 -4
  44. package/load-entity/index.d.ts +0 -2
  45. package/load-entity/load-entity.model.d.ts +0 -9
  46. package/load-entity/load-entity.traits.d.ts +0 -74
  47. package/reset/index.d.ts +0 -1
  48. package/reset/reset.trait.d.ts +0 -30
  49. package/select-entities/index.d.ts +0 -3
  50. package/select-entities/select-entities.model.d.ts +0 -42
  51. package/select-entities/select-entities.trait.actions.d.ts +0 -2
  52. package/select-entities/select-entities.trait.d.ts +0 -39
  53. package/select-entities/select-entities.trait.mutators.d.ts +0 -2
  54. package/select-entities/select-entities.trait.reducer.d.ts +0 -8
  55. package/select-entities/select-entities.trait.selectors.d.ts +0 -3
  56. package/select-entities/select-entities.utils.d.ts +0 -7
  57. package/select-entity/index.d.ts +0 -2
  58. package/select-entity/select-entity.model.d.ts +0 -34
  59. package/select-entity/select-entity.trait.actions.d.ts +0 -2
  60. package/select-entity/select-entity.trait.d.ts +0 -35
  61. package/select-entity/select-entity.trait.mutators.d.ts +0 -2
  62. package/select-entity/select-entity.trait.reducer.d.ts +0 -8
  63. package/select-entity/select-entity.trait.selectors.d.ts +0 -2
  64. package/set-entity/index.d.ts +0 -2
  65. package/set-entity/set-entity.model.d.ts +0 -17
  66. package/set-entity/set-entity.trait.d.ts +0 -46
  67. package/sort-entities/index.d.ts +0 -3
  68. package/sort-entities/sort-entities.model.d.ts +0 -36
  69. package/sort-entities/sort-entities.trait.actions.d.ts +0 -2
  70. package/sort-entities/sort-entities.trait.d.ts +0 -41
  71. package/sort-entities/sort-entities.trait.effect.d.ts +0 -6
  72. package/sort-entities/sort-entities.trait.mutators.d.ts +0 -3
  73. package/sort-entities/sort-entities.trait.reducer.d.ts +0 -4
  74. package/sort-entities/sort-entities.trait.selectors.d.ts +0 -2
  75. package/sort-entities/sort-entities.utils.d.ts +0 -10
@@ -1,5 +0,0 @@
1
- import { LoadEntitiesActions, LoadEntitiesState } from '../load-entities/load-entities.model';
2
- import { FilterEntitiesKeyedConfig, FilterEntitiesMutators, FilterEntitiesState } from './filter-entities.model';
3
- import { ƟFilterEntitiesActions } from './filter-entities.model.internal';
4
- export declare function createFilterInitialState<Entity, F>(previousInitialState: any, allConfigs: FilterEntitiesKeyedConfig<Entity, F>): LoadEntitiesState<Entity> & FilterEntitiesState<F>;
5
- export declare function createFilterTraitReducer<T, F, S extends LoadEntitiesState<T> & FilterEntitiesState<F>>(initialState: S, allActions: ƟFilterEntitiesActions<F> & LoadEntitiesActions<T>, allMutators: FilterEntitiesMutators<T, F>): import("@ngrx/store").ActionReducer<unknown extends S ? S : S, import("@ngrx/store").Action<string>>;
@@ -1,4 +0,0 @@
1
- import { FilterEntitiesSelectors, FilterEntitiesState } from './filter-entities.model';
2
- import { LoadEntitiesState } from '../load-entities';
3
- export declare function selectEntitiesFilter<Entity, F>(state: LoadEntitiesState<Entity> & FilterEntitiesState<F>): F | undefined;
4
- export declare function createFilterTraitSelectors<Entity, F>(): FilterEntitiesSelectors<Entity, F>;
@@ -1,2 +0,0 @@
1
- export * from './filter-entities.trait';
2
- export * from './filter-entities.model';
@@ -1,2 +0,0 @@
1
- export * from './load-entities.model';
2
- export * from './load-entities.trait';
@@ -1,97 +0,0 @@
1
- import { KeyedConfig } from '@ngrx-traits/core';
2
- import { Comparer, EntityAdapter, EntityState, IdSelector } from '@ngrx/entity';
3
- import { Dictionary } from '@ngrx/entity/src/models';
4
- import { Action, ActionCreator } from '@ngrx/store/src/models';
5
- export type Status = 'loading' | 'success' | 'fail';
6
- export interface StatusState {
7
- status?: Status;
8
- }
9
- export interface LoadEntitiesState<T> extends EntityState<T>, StatusState {
10
- }
11
- export type LoadEntitiesActions<T> = {
12
- /**
13
- * load entities from backend
14
- */
15
- loadEntities: ActionCreator<string, () => Action<string>>;
16
- /**
17
- * entities where loaded successfully
18
- */
19
- loadEntitiesSuccess: ActionCreator<string, (props: {
20
- entities: T[];
21
- total?: number;
22
- }) => {
23
- entities: T[];
24
- total?: number;
25
- } & Action<string>>;
26
- /**
27
- * entities failed loading
28
- */
29
- loadEntitiesFail: ActionCreator<string, (props?: {
30
- error?: string;
31
- }) => {
32
- error?: string;
33
- } & Action<string>>;
34
- };
35
- export type LoadEntitiesSelectors<T> = {
36
- /**
37
- * returns all ids of the entities in an array
38
- * @param state
39
- */
40
- selectEntitiesIdsList: (state: LoadEntitiesState<T>) => string[] | number[];
41
- /**
42
- * returns all entities in a map with the id as key of the map
43
- * @param state
44
- */
45
- selectEntitiesMap: (state: LoadEntitiesState<T>) => Dictionary<T>;
46
- /**
47
- * returns all entities in an array
48
- * @param state
49
- */
50
- selectEntitiesList: (state: LoadEntitiesState<T>) => T[];
51
- /**
52
- * returns the total number of entities
53
- * @param state
54
- */
55
- selectEntitiesTotal: (state: LoadEntitiesState<T>) => number;
56
- /**
57
- * is currently loading entities
58
- * @param state
59
- */
60
- isEntitiesLoading: (state: LoadEntitiesState<T>) => boolean;
61
- /**
62
- * were the entities loaded successfully
63
- * @param state
64
- */
65
- isEntitiesLoadingSuccess: (state: LoadEntitiesState<T>) => boolean;
66
- /**
67
- * did the entities fail loading
68
- * @param state
69
- */
70
- isEntitiesLoadingFail: (state: LoadEntitiesState<T>) => boolean;
71
- };
72
- export type LoadEntitiesMutators<T> = {
73
- /**
74
- * set or replace all entities currently in store
75
- * @param entities
76
- * @param state
77
- */
78
- setEntitiesList<S extends LoadEntitiesState<T>>(entities: T[], state: S): S;
79
- };
80
- export type GenericActionCreator = ActionCreator<string, (...args: unknown[]) => Action<string>>;
81
- export declare const loadEntitiesTraitKey = "loadEntities";
82
- export type LoadEntitiesConfig<T = unknown> = {
83
- /**
84
- * Function that returns the id of an entity if not set it attempts to return the values
85
- * of a property call id, this is pass to @ngrx/entity EntityAdapter
86
- */
87
- selectId?: IdSelector<T>;
88
- /**
89
- * Default sort function for to @ngrx/entity EntityAdapter
90
- */
91
- sortComparer?: false | Comparer<T>;
92
- /**
93
- * @ngrx/entity EntityAdapter
94
- */
95
- adapter: EntityAdapter<T>;
96
- };
97
- export type LoadEntitiesKeyedConfig<T> = KeyedConfig<typeof loadEntitiesTraitKey, LoadEntitiesConfig<T>>;
@@ -1,3 +0,0 @@
1
- import { LoadEntitiesKeyedConfig, LoadEntitiesMutators } from './load-entities.model';
2
- import { EntitiesPaginationKeyedConfig } from '../entities-pagination';
3
- export declare function createLoadEntitiesTraitMutators<Entity>(allConfigs: LoadEntitiesKeyedConfig<Entity> & EntitiesPaginationKeyedConfig): LoadEntitiesMutators<Entity>;
@@ -1,2 +0,0 @@
1
- import { LoadEntitiesActions } from './load-entities.model';
2
- export declare function createLoadEntitiesTraitActions<Entity>(actionsGroupKey: string, entitiesName: string): LoadEntitiesActions<Entity>;
@@ -1,44 +0,0 @@
1
- import { LoadEntitiesState, LoadEntitiesConfig } from './load-entities.model';
2
- /**
3
- * Generates the ngrx code needed to load a list of entities from the backend. This trait is the base for all other traits related
4
- * to a list of entities, the other will call loadEntities when needing data. See the example for the list of actions and selectors this generates
5
- *
6
- * @param traitConfig - Config object for the trait factory
7
- * @param traitConfig.selectId - Function that returns the id of an entity
8
- * @param traitConfig.sortComparer - Default sort function for to @ngrx/entity EntityAdapter
9
- *
10
- * @example
11
- * // The following trait config
12
- *
13
- * export interface TestState
14
- * extends LoadEntitiesState<Todo>{}
15
- *
16
- * const traits = createEntityFeatureFactory(
17
- * {entityName: 'Todo'},
18
- * addLoadEntitiesTrait<Todo>(),
19
- * )({
20
- * actionsGroupKey: '[Todos]',
21
- * featureSelector: createFeatureSelector<TestState>>(
22
- * 'todos',
23
- * ),
24
- * });
25
- *
26
- * // adds following props to the state:
27
- * // ids: string[] | number[];
28
- * // entities: Dictionary<Todo>;
29
- * // status?: 'loading' | 'success' | 'fail';
30
- *
31
- * // generated actions
32
- * traits.actions.loadTodos()
33
- * traits.actions.loadTodosSuccess({entities: todos})
34
- * traits.actions.loadTodosFail();
35
- * // generated selectors
36
- * traits.selectors.selectTodosList
37
- * traits.selectors.selectTodosMap
38
- * traits.selectors.selectTodosIds
39
- * traits.selectors.selectTodosTotal
40
- * traits.selectors.isTodosLoading
41
- * traits.selectors.isTodosLoadingSuccess
42
- * traits.selectors.isTodosLoadingFail
43
- */
44
- export declare function addLoadEntitiesTrait<Entity>(traitConfig?: Omit<LoadEntitiesConfig<Entity>, 'adapter'>): import("@ngrx-traits/core").TraitFactory<LoadEntitiesState<Entity>, import("./load-entities.model").LoadEntitiesActions<Entity>, import("./load-entities.model").LoadEntitiesSelectors<Entity>, import("./load-entities.model").LoadEntitiesMutators<Entity>, "loadEntities", LoadEntitiesConfig<Entity>, import("@ngrx-traits/core").AllTraitConfigs>;
@@ -1,4 +0,0 @@
1
- import { LoadEntitiesState, LoadEntitiesActions, LoadEntitiesKeyedConfig, LoadEntitiesMutators } from './load-entities.model';
2
- import { EntitiesPaginationKeyedConfig } from '../entities-pagination';
3
- export declare function createLoadEntitiesInitialState<Entity>(previousInitialState: {} | undefined, allConfigs: LoadEntitiesKeyedConfig<Entity>): LoadEntitiesState<Entity>;
4
- export declare function createLoadEntitiesTraitReducer<T, S extends LoadEntitiesState<T>>(initialState: S, actions: LoadEntitiesActions<T>, allMutators: LoadEntitiesMutators<T>, allConfigs: LoadEntitiesKeyedConfig<T> & EntitiesPaginationKeyedConfig): import("@ngrx/store").ActionReducer<unknown extends S ? S : S, import("@ngrx/store").Action<string>>;
@@ -1,3 +0,0 @@
1
- import { LoadEntitiesKeyedConfig, LoadEntitiesSelectors } from './load-entities.model';
2
- import { FilterEntitiesKeyedConfig } from '../filter-entities';
3
- export declare function createLoadEntitiesTraitSelectors<Entity>(allConfigs?: LoadEntitiesKeyedConfig<Entity> & FilterEntitiesKeyedConfig<Entity, unknown>): LoadEntitiesSelectors<Entity>;
@@ -1,4 +0,0 @@
1
- import { StatusState } from './load-entities.model';
2
- export declare function isLoading<S extends StatusState>(state: S): boolean;
3
- export declare function isSuccess<S extends StatusState>(state: S): boolean;
4
- export declare function isFail<S extends StatusState>(state: S): boolean;
@@ -1,2 +0,0 @@
1
- export * from './load-entity.traits';
2
- export * from './load-entity.model';
@@ -1,9 +0,0 @@
1
- import { PostfixProps, PrefixProps, TraitActions } from '@ngrx-traits/core';
2
- import { AsyncActionActions, AsyncActionState } from '../async-action/async-action.model';
3
- export type LoadEntityActions<J extends string, Request extends object, Response extends object, Failure extends object> = PrefixProps<AsyncActionActions<Request, Response, Failure, J>, 'load'> & TraitActions;
4
- export type LoadEntityState<T, J extends string> = AsyncActionState<`load${Capitalize<J & string>}`> & PrefixProps<{
5
- ''?: T;
6
- }, J>;
7
- export type LoadEntitySelectors<T, J extends string> = PostfixProps<{
8
- select: (state: LoadEntityState<T, J>) => T;
9
- }, J>;
@@ -1,74 +0,0 @@
1
- import { ActionCreatorProps } from '@ngrx/store/src/models';
2
- import { LoadEntityState } from './load-entity.model';
3
- type RecordEntity<T> = T extends Record<string, infer J> ? J : never;
4
- /**
5
- * Generates ngrx code needed to load and entity and store it in a state. This action can be added
6
- * more than once as long as the entityName para is different
7
- * @param entityName - Entity name, should be in camel case
8
- * @param options.actionProps - Optional param for the main request action,
9
- * use the props() function for its value, if not present action will have no params,
10
- * @param options.actionSuccessProps - Optional param for the request success
11
- * action, use the props() function for its value, if not present action success will have no params
12
- * @param options.actionFailProps - Optional param for the request fail action,
13
- * use the props() function for its value, if not present action fail will have no params
14
- * @returns the trait factory
15
- *
16
- * @example
17
- *
18
- * export interface TestState
19
- * extends LoadEntityState<Client,'client'>{}
20
- *
21
- * const traits = createEntityFeatureFactory(
22
- * ...addLoadEntityTraits({
23
- * entityName: 'client',
24
- * requestProps: props<{ id: string }>(),
25
- * responseProps: props<{ client: Client }>(),
26
- * }),
27
- * )({
28
- * actionsGroupKey: 'Client',
29
- * featureSelector: createFeatureSelector<
30
- * LoadEntityState<Client, 'client'>
31
- * >('client'),
32
- * });
33
- *
34
- * // adds following props to the state:
35
- * // loadClientStatus?: 'loading' | 'success' | 'fail';
36
- * // client?: Client;
37
- *
38
- * // generated actions
39
- * traits.actions.loadClient({id:123});
40
- * traits.actions.loadClientSuccess({client: {id: '123', name: 'gabs'}});
41
- * traits.actions.loadClientFail();
42
- * // generated selectors
43
- * traits.selectors.selectClient()
44
- * traits.selectors.isLoadingLoadClient()
45
- * traits.selectors.isSuccessLoadClient()
46
- * traits.selectors.isFailLoadClient()
47
- */
48
- export declare function addLoadEntityTraits<J extends string, Request extends object | undefined = undefined, Response extends Record<J, any> | undefined = undefined, Failure extends object | undefined = undefined, Entity = RecordEntity<Response>, State extends LoadEntityState<any, string> = LoadEntityState<Entity, J>>({ entityName, actionProps, actionSuccessProps, actionFailProps, }: {
49
- entityName: J;
50
- actionProps?: ActionCreatorProps<Request>;
51
- actionSuccessProps?: ActionCreatorProps<Response>;
52
- actionFailProps?: ActionCreatorProps<Failure>;
53
- }): readonly [import("@ngrx-traits/core").TraitFactory<import("@ngrx-traits/core").PrefixProps<import("@ngrx-traits/common").StatusState, `load${Capitalize<J>}`>, import("@ngrx-traits/core").PrefixProps<{
54
- '': import("@ngrx-traits/common").ActionCreatorWithOptionalProps<Request>;
55
- Success: import("@ngrx-traits/common").ActionCreatorWithOptionalProps<Response>;
56
- Fail: import("@ngrx-traits/common").ActionCreatorWithOptionalProps<Failure>;
57
- }, `load${Capitalize<J>}`>, import("@ngrx-traits/core").PostfixProps<{
58
- isLoading: (state: import("@ngrx-traits/core").PrefixProps<import("@ngrx-traits/common").StatusState, `load${Capitalize<J>}`>) => boolean;
59
- isSuccess: (state: import("@ngrx-traits/core").PrefixProps<import("@ngrx-traits/common").StatusState, `load${Capitalize<J>}`>) => boolean;
60
- isFail: (state: import("@ngrx-traits/core").PrefixProps<import("@ngrx-traits/common").StatusState, `load${Capitalize<J>}`>) => boolean;
61
- }, `load${Capitalize<J>}`>, {}, string, {
62
- name: `load${Capitalize<J>}`;
63
- actionProps: ActionCreatorProps<Request> | undefined;
64
- actionSuccessProps: ActionCreatorProps<Response> | undefined;
65
- actionFailProps: ActionCreatorProps<Failure> | undefined;
66
- }, import("@ngrx-traits/core").AllTraitConfigs>, import("@ngrx-traits/core").TraitFactory<State, {}, import("@ngrx-traits/core").PostfixProps<{
67
- select: (state: LoadEntityState<Entity, J>) => Entity;
68
- }, J>, {}, `load${string}`, {
69
- entityName: J;
70
- actionProps: ActionCreatorProps<Request> | undefined;
71
- actionSuccessProps: ActionCreatorProps<Response> | undefined;
72
- actionFailProps: ActionCreatorProps<Failure> | undefined;
73
- }, import("@ngrx-traits/core").AllTraitConfigs>];
74
- export {};
package/reset/index.d.ts DELETED
@@ -1 +0,0 @@
1
- export * from './reset.trait';
@@ -1,30 +0,0 @@
1
- import { Action, ActionCreator } from '@ngrx/store/src/models';
2
- /**
3
- * Generates the ngrx code needed to reset the current state to the initial state.
4
- * @param traitConfig - Config object fot the trait factory
5
- * @param traitConfig.resetOn - set an extra action which will also trigger a reset state,
6
- * useful if you want to create an action that reset several features states
7
- *
8
- * @example
9
- * // The following trait config
10
- *
11
- * const traits = createEntityFeatureFactory(
12
- * {entityName: 'Todo'},
13
- * addLoadEntitiesTrait<Todo>(),
14
- * addResetEntitiesStateTrait()
15
- * )({
16
- * actionsGroupKey: '[Todos]',
17
- * featureSelector: createFeatureSelector<TestState>>(
18
- * 'todos',
19
- * ),
20
- * });
21
- * // generated actions
22
- * traits.actions.resetTodosState()
23
- */
24
- export declare function addResetEntitiesStateTrait(traitConfig?: {
25
- resetOn?: readonly ActionCreator[];
26
- }): import("@ngrx-traits/core").TraitFactory<{}, {
27
- resetEntitiesState: ActionCreator<`${string} Reset ${string} State`, () => Action<`${string} Reset ${string} State`>>;
28
- }, {}, {}, "reset", {
29
- resetOn?: readonly ActionCreator[];
30
- }, import("@ngrx-traits/core").AllTraitConfigs>;
@@ -1,3 +0,0 @@
1
- export * from './select-entities.model';
2
- export * from './select-entities.trait';
3
- export * from './select-entities.utils';
@@ -1,42 +0,0 @@
1
- import { Dictionary } from '@ngrx/entity';
2
- import { Action } from '@ngrx/store';
3
- import { ActionCreator } from '@ngrx/store/src/models';
4
- import { LoadEntitiesState } from '../load-entities/load-entities.model';
5
- export interface SelectEntitiesState {
6
- selectedIds: Dictionary<boolean>;
7
- }
8
- export type SelectEntitiesActions = {
9
- selectEntities: ActionCreator<string, (props: {
10
- id: number | string;
11
- }) => {
12
- id: number | string;
13
- } & Action<string>>;
14
- deselectEntities: ActionCreator<string, (props: {
15
- id: number | string;
16
- }) => {
17
- id: number | string;
18
- } & Action<string>>;
19
- toggleSelectEntities: ActionCreator<string, (props: {
20
- id: number | string;
21
- }) => {
22
- id: number | string;
23
- } & Action<string>>;
24
- toggleSelectAllEntities: ActionCreator<string, () => Action<string>>;
25
- clearEntitiesSelection: ActionCreator<string, () => Action<string>>;
26
- };
27
- export type SelectEntitiesSelectors<Entity> = {
28
- isAllEntitiesSelected: (state: LoadEntitiesState<Entity> & SelectEntitiesState) => Selected;
29
- selectEntitiesIdsSelectedMap: (state: LoadEntitiesState<Entity> & SelectEntitiesState) => Dictionary<boolean>;
30
- selectEntitiesIdsSelectedList: (state: LoadEntitiesState<Entity> & SelectEntitiesState) => number[] | string[];
31
- selectEntitiesSelectedMap: (state: LoadEntitiesState<Entity> & SelectEntitiesState) => Dictionary<Entity>;
32
- selectEntitiesSelectedList: (state: LoadEntitiesState<Entity> & SelectEntitiesState) => Entity[];
33
- selectTotalSelectedEntities: (state: LoadEntitiesState<Entity> & SelectEntitiesState) => number;
34
- };
35
- export type SelectEntitiesMutators<Entity> = {
36
- selectEntities: <S extends LoadEntitiesState<Entity> & SelectEntitiesState>(id: number | string, state: S) => S;
37
- deselectEntities<S extends LoadEntitiesState<Entity> & SelectEntitiesState>(id: number | string, state: S): S;
38
- toggleSelectEntities<S extends LoadEntitiesState<Entity> & SelectEntitiesState>(id: number | string, state: S): S;
39
- toggleSelectAllEntities<S extends LoadEntitiesState<Entity> & SelectEntitiesState>(state: S): S;
40
- clearEntitiesSelection<S extends LoadEntitiesState<Entity> & SelectEntitiesState>(state: S): S;
41
- };
42
- export type Selected = 'all' | 'some' | 'none';
@@ -1,2 +0,0 @@
1
- import { SelectEntitiesActions } from './select-entities.model';
2
- export declare function createSelectEntitiesTraitActions(actionsGroupKey: string, entitiesName: string): SelectEntitiesActions;
@@ -1,39 +0,0 @@
1
- import { SelectEntitiesSelectors, SelectEntitiesActions } from './select-entities.model';
2
- /**
3
- * Generates ngrx code to add multi selection to a list
4
- *
5
- * @example
6
- * // The following trait config
7
- *
8
- * export interface TestState
9
- * extends EntityAndStatusState<Todo>,MultipleSelectionState{}
10
- *
11
- * const traits = createEntityFeatureFactory(
12
- * {entityName: 'Todo'},
13
- * addLoadEntitiesTrait<Todo>(),
14
- * addSelectEntitiesTrait<Todo>()
15
- * )({
16
- * actionsGroupKey: '[Todos]',
17
- * featureSelector: createFeatureSelector<TestState>>(
18
- * 'todos',
19
- * ),
20
- * });
21
- *
22
- * // adds following props to the state:
23
- * // selectedIds: Dictionary<boolean>;
24
- *
25
- * // generated actions
26
- * traits.actions.selectTodos({id})
27
- * traits.actions.deselectTodos({id})
28
- * traits.actions.toggleSectTodos({id})
29
- * traits.actions.toggleSelectAllTodos()
30
- * traits.actions.clearTodosSelection()
31
- * //generated selectors
32
- * traits.selectors.isAllTodosSelected()
33
- * traits.selectors.selectTodosIdsSelectedMap()
34
- * traits.selectors.selectTodosIdsSelectedList()
35
- * traits.selectors.selectTodosSelectedMap()
36
- * traits.selectors.selectTodosSelectedList()
37
- * traits.selectors.selectTotalSelectedTodos()
38
- */
39
- export declare function addSelectEntitiesTrait<Entity>(): import("@ngrx-traits/core").TraitFactory<import("../load-entities/load-entities.model").LoadEntitiesState<Entity> & import("./select-entities.model").SelectEntitiesState, SelectEntitiesActions, SelectEntitiesSelectors<Entity>, import("./select-entities.model").SelectEntitiesMutators<Entity>, "SelectEntities", unknown, import("@ngrx-traits/core").AllTraitConfigs>;
@@ -1,2 +0,0 @@
1
- import { SelectEntitiesMutators, SelectEntitiesSelectors } from './select-entities.model';
2
- export declare function createSelectEntitiesTraitMutators<Entity>({ isAllEntitiesSelected, }: SelectEntitiesSelectors<Entity>): SelectEntitiesMutators<Entity>;
@@ -1,8 +0,0 @@
1
- import { LoadEntitiesActions, LoadEntitiesKeyedConfig, LoadEntitiesState } from '../load-entities/load-entities.model';
2
- import { SortEntitiesActions, SortEntitiesKeyedConfig } from '../sort-entities/sort-entities.model';
3
- import { SelectEntitiesMutators, SelectEntitiesActions, SelectEntitiesState } from './select-entities.model';
4
- import { CrudEntitiesActions } from '../crud-entities/crud-entities.model';
5
- import { EntitiesPaginationActions, EntitiesPaginationKeyedConfig } from '../entities-pagination/entities-pagination.model';
6
- import { FilterEntitiesActions } from '../filter-entities';
7
- export declare function createSelectEntitiesInitialState<Entity>(previousInitialState: any): LoadEntitiesState<Entity> & SelectEntitiesState;
8
- export declare function createSelectEntitiesTraitReducer<Entity, S extends LoadEntitiesState<Entity> & SelectEntitiesState>(initialState: S, allActions: SelectEntitiesActions & CrudEntitiesActions<Entity> & SortEntitiesActions<Entity> & LoadEntitiesActions<Entity> & FilterEntitiesActions<any> & EntitiesPaginationActions, allMutators: SelectEntitiesMutators<Entity>, allConfigs: LoadEntitiesKeyedConfig<Entity> & EntitiesPaginationKeyedConfig & SortEntitiesKeyedConfig<Entity>): import("@ngrx/store").ActionReducer<unknown extends S ? S : S, import("@ngrx/store").Action<string>>;
@@ -1,3 +0,0 @@
1
- import { SelectEntitiesSelectors } from './select-entities.model';
2
- import { LoadEntitiesSelectors } from '../load-entities';
3
- export declare function createSelectEntitiesTraitSelectors<Entity>(previousSelectors: LoadEntitiesSelectors<Entity>): SelectEntitiesSelectors<Entity>;
@@ -1,7 +0,0 @@
1
- import { SelectEntitiesState } from './select-entities.model';
2
- import { LoadEntitiesState } from '../load-entities';
3
- export declare function deselectEntities<S extends SelectEntitiesState>(id: number | string, state: S): S;
4
- export declare function selectEntities<S extends SelectEntitiesState>(id: number | string, state: S): S;
5
- export declare function toggleSelectEntities<S extends SelectEntitiesState>(id: number | string, state: S): S;
6
- export declare function clearEntitiesSelection<S extends SelectEntitiesState>(state: S): S;
7
- export declare function selectTotalSelectedEntities<Entity, S extends LoadEntitiesState<Entity> & SelectEntitiesState>(state: S): number;
@@ -1,2 +0,0 @@
1
- export * from './select-entity.trait';
2
- export * from './select-entity.model';
@@ -1,34 +0,0 @@
1
- import { KeyedConfig } from '@ngrx-traits/core';
2
- import { Action } from '@ngrx/store';
3
- import { ActionCreator } from '@ngrx/store/src/models';
4
- import { LoadEntitiesState } from '../load-entities/load-entities.model';
5
- export interface SelectEntityState {
6
- selectedId?: number | string;
7
- }
8
- export type SelectEntityActions = {
9
- selectEntity: ActionCreator<string, (props: {
10
- id: number | string;
11
- }) => {
12
- id: number | string;
13
- } & Action<string>>;
14
- deselectEntity: ActionCreator<string, () => Action<string>>;
15
- toggleSelectEntity: ActionCreator<string, (props: {
16
- id: number | string;
17
- }) => {
18
- id: number | string;
19
- } & Action<string>>;
20
- };
21
- export type SelectEntitySelectors<T> = {
22
- selectEntityIdSelected: (state: LoadEntitiesState<T> & SelectEntityState) => string | number | undefined;
23
- selectEntitySelected: (state: LoadEntitiesState<T> & SelectEntityState) => T | undefined;
24
- };
25
- export type SelectEntityMutators<T> = {
26
- selectEntity<S extends LoadEntitiesState<T> & SelectEntityState>(id: string | number, state: S): S;
27
- deselectEntity<S extends LoadEntitiesState<T> & SelectEntityState>(state: S): S;
28
- toggleSelectEntity<S extends LoadEntitiesState<T> & SelectEntityState>(id: string | number, state: S): S;
29
- };
30
- export interface SelectEntityConfig {
31
- selectedId?: string | number;
32
- }
33
- export declare const selectEntityTraitKey = "singleSelection";
34
- export type SelectEntityKeyedConfig = KeyedConfig<typeof selectEntityTraitKey, SelectEntityConfig>;
@@ -1,2 +0,0 @@
1
- import { SelectEntityActions } from './select-entity.model';
2
- export declare function createSelectEntityTraitActions(actionsGroupKey: string, entityName: string): SelectEntityActions;
@@ -1,35 +0,0 @@
1
- import { SelectEntityActions, SelectEntityConfig } from './select-entity.model';
2
- /**
3
- * Generates ngrx code to add single selection to a list
4
- * @param config
5
- * @param config.selectedId - Default selected id
6
- *
7
- * @example
8
- * // The following trait config
9
- *
10
- * export interface TestState
11
- * extends EntityAndStatusState<Todo>,SelectEntityState{}
12
- *
13
- * const traits = createEntityFeatureFactory(
14
- * {entityName: 'Todo'},
15
- * addLoadEntitiesTrait<Todo>(),
16
- * addSelectEntityTrait<Todo>()
17
- * )({
18
- * actionsGroupKey: '[Todos]',
19
- * featureSelector: createFeatureSelector<TestState>>(
20
- * 'todos',
21
- * ),
22
- * });
23
- *
24
- * // adds following props to the state:
25
- * // selectedId?: number | string;
26
- *
27
- * // generated actions
28
- * traits.actions.selectTodo({id})
29
- * traits.actions.deselectTodo()
30
- * traits.actions.toggleSelectTodo({id})
31
- * //generated selectors
32
- * traits.selectors.selectTodoIdSelected()
33
- * traits.selectors.selectTodoSelected()
34
- */
35
- export declare function addSelectEntityTrait<Entity>(config?: SelectEntityConfig): import("@ngrx-traits/core").TraitFactory<import("../load-entities/load-entities.model").LoadEntitiesState<Entity> & import("./select-entity.model").SelectEntityState, SelectEntityActions, import("./select-entity.model").SelectEntitySelectors<Entity>, import("./select-entity.model").SelectEntityMutators<unknown>, "singleSelection", SelectEntityConfig, import("@ngrx-traits/core").AllTraitConfigs>;
@@ -1,2 +0,0 @@
1
- import { SelectEntityMutators } from './select-entity.model';
2
- export declare function createSelectEntityTraitMutators<Entity>(): SelectEntityMutators<Entity>;
@@ -1,8 +0,0 @@
1
- import { LoadEntitiesActions, LoadEntitiesKeyedConfig, LoadEntitiesState } from '../load-entities/load-entities.model';
2
- import { SortEntitiesActions, SortEntitiesKeyedConfig } from '../sort-entities/sort-entities.model';
3
- import { SelectEntityActions, SelectEntityKeyedConfig, SelectEntityMutators, SelectEntityState } from './select-entity.model';
4
- import { CrudEntitiesActions } from '../crud-entities/crud-entities.model';
5
- import { EntitiesPaginationActions, EntitiesPaginationKeyedConfig } from '../entities-pagination/entities-pagination.model';
6
- import { FilterEntitiesActions } from '../filter-entities';
7
- export declare function createSelectEntityInitialState<Entity>(previousInitialState: any, allConfigs: SelectEntityKeyedConfig): LoadEntitiesState<Entity> & SelectEntityState;
8
- export declare function createSelectEntityTraitReducer<Entity, S extends LoadEntitiesState<Entity> & SelectEntityState>(initialState: S, allActions: SelectEntityActions & CrudEntitiesActions<Entity> & SortEntitiesActions<Entity> & EntitiesPaginationActions & FilterEntitiesActions<any> & LoadEntitiesActions<Entity>, allMutators: SelectEntityMutators<Entity>, allConfigs: SelectEntityKeyedConfig & LoadEntitiesKeyedConfig<Entity> & EntitiesPaginationKeyedConfig & SortEntitiesKeyedConfig<Entity>): import("@ngrx/store").ActionReducer<unknown extends S ? S : S, import("@ngrx/store").Action<string>>;
@@ -1,2 +0,0 @@
1
- import { SelectEntitySelectors } from './select-entity.model';
2
- export declare function createSelectEntityTraitSelectors<Entity>(): SelectEntitySelectors<Entity>;
@@ -1,2 +0,0 @@
1
- export * from './set-entity.model';
2
- export * from './set-entity.trait';
@@ -1,17 +0,0 @@
1
- import { PostfixProps } from '@ngrx-traits/core';
2
- import { Action } from '@ngrx/store';
3
- import { ActionCreator } from '@ngrx/store/src/models';
4
- type SetActions<T> = {
5
- /**
6
- * set entity in the store
7
- */
8
- set: ActionCreator<string, (props: T) => Action<string>>;
9
- };
10
- export type SetEntityActions<Entity, J extends string> = PostfixProps<SetActions<Entity>, J>;
11
- export type SetEntityState<Entity, J extends string> = {
12
- [key in `${J}`]?: Entity;
13
- };
14
- export type SetEntitySelectors<Entity, J extends string> = PostfixProps<{
15
- select: (state: SetEntityState<Entity, J>) => Entity;
16
- }, J>;
17
- export {};
@@ -1,46 +0,0 @@
1
- import { SetEntityState } from './set-entity.model';
2
- import { ActionCreatorProps } from '@ngrx/store/src/models';
3
- type RecordEntity<T> = T extends Record<string, infer J> ? J : never;
4
- /**
5
- * Generates ngrx code needed to set and entity in the store state
6
- * @param entityName - Entity name, should be in camel case
7
- * @param options.actionProps - param for the main request action,
8
- * use the props() function for its value
9
- * @returns the trait factory
10
- *
11
- * @example
12
- *
13
- * export interface TestState
14
- * extends SetEntityState<Client,'client'>{}
15
- *
16
- * const traits = createEntityFeatureFactory(
17
- * addSetEntityTraits({
18
- * entityName: 'client',
19
- * actionProps: props<{ client: Client }
20
- * }),
21
- * )({
22
- * actionsGroupKey: 'Client',
23
- * featureSelector: createFeatureSelector<
24
- * SetEntityState<Client, 'client'>
25
- * >('client'),
26
- * });
27
- * // adds following props to the state:
28
- * // client?: Client;
29
- *
30
- * // generated actions
31
- * traits.actions.setClient({client: {id:123, name: 'gabs'}});
32
- * //generated selectors
33
- * traits.selectors.selectClient()
34
- */
35
- export declare function addSetEntityTrait<J extends string, Payload extends Record<J, any> | undefined = undefined, Entity = RecordEntity<Payload>, State extends SetEntityState<Entity, J> = SetEntityState<Entity, J>>({ entityName, actionProps, }: {
36
- entityName: J;
37
- actionProps?: ActionCreatorProps<Payload>;
38
- }): import("@ngrx-traits/core").TraitFactory<State, import("@ngrx-traits/core").PostfixProps<{
39
- set: import("@ngrx/store").ActionCreator<string, (props: Payload) => import("@ngrx/store").Action<string>>;
40
- }, J>, import("@ngrx-traits/core").PostfixProps<{
41
- select: (state: SetEntityState<Entity, J>) => Entity;
42
- }, J>, {}, `load${string}`, {
43
- entityName: J;
44
- actionProps: ActionCreatorProps<Payload> | undefined;
45
- }, import("@ngrx-traits/core").AllTraitConfigs>;
46
- export {};
@@ -1,3 +0,0 @@
1
- export * from './sort-entities.model';
2
- export * from './sort-entities.trait';
3
- export * from './sort-entities.utils';