@ngrx/data 12.4.0 → 13.0.0-rc.0
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.
- package/{esm2015/index.js → esm2020/index.mjs} +0 -0
- package/esm2020/ngrx-data.mjs +5 -0
- package/{esm2015/public_api.js → esm2020/public_api.mjs} +0 -0
- package/esm2020/src/actions/entity-action-factory.mjs +50 -0
- package/{esm2015/src/actions/entity-action-guard.js → esm2020/src/actions/entity-action-guard.mjs} +0 -0
- package/{esm2015/src/actions/entity-action-operators.js → esm2020/src/actions/entity-action-operators.mjs} +0 -0
- package/{esm2015/src/actions/entity-action.js → esm2020/src/actions/entity-action.mjs} +0 -0
- package/esm2020/src/actions/entity-cache-action.mjs +116 -0
- package/esm2020/src/actions/entity-cache-change-set.mjs +50 -0
- package/{esm2015/src/actions/entity-op.js → esm2020/src/actions/entity-op.mjs} +0 -0
- package/{esm2015/src/actions/merge-strategy.js → esm2020/src/actions/merge-strategy.mjs} +0 -0
- package/{esm2015/src/actions/update-response-data.js → esm2020/src/actions/update-response-data.mjs} +0 -0
- package/{esm2015/src/dataservices/data-service-error.js → esm2020/src/dataservices/data-service-error.mjs} +0 -0
- package/{esm2015/src/dataservices/default-data-service-config.js → esm2020/src/dataservices/default-data-service-config.mjs} +0 -0
- package/{esm2015/src/dataservices/default-data.service.js → esm2020/src/dataservices/default-data.service.mjs} +13 -13
- package/esm2020/src/dataservices/entity-cache-data.service.mjs +146 -0
- package/esm2020/src/dataservices/entity-data.service.mjs +63 -0
- package/{esm2015/src/dataservices/http-url-generator.js → esm2020/src/dataservices/http-url-generator.mjs} +12 -10
- package/{esm2015/src/dataservices/interfaces.js → esm2020/src/dataservices/interfaces.mjs} +0 -0
- package/esm2020/src/dataservices/persistence-result-handler.service.mjs +49 -0
- package/esm2020/src/dispatchers/entity-cache-dispatcher.mjs +163 -0
- package/{esm2015/src/dispatchers/entity-commands.js → esm2020/src/dispatchers/entity-commands.mjs} +0 -0
- package/esm2020/src/dispatchers/entity-dispatcher-base.mjs +405 -0
- package/esm2020/src/dispatchers/entity-dispatcher-default-options.mjs +30 -0
- package/esm2020/src/dispatchers/entity-dispatcher-factory.mjs +65 -0
- package/{esm2015/src/dispatchers/entity-dispatcher.js → esm2020/src/dispatchers/entity-dispatcher.mjs} +0 -0
- package/esm2020/src/effects/entity-cache-effects.mjs +115 -0
- package/{esm2015/src/effects/entity-effects-scheduler.js → esm2020/src/effects/entity-effects-scheduler.mjs} +0 -0
- package/esm2020/src/effects/entity-effects.mjs +148 -0
- package/esm2020/src/entity-data-without-effects.module.mjs +160 -0
- package/esm2020/src/entity-data.module.mjs +121 -0
- package/esm2020/src/entity-metadata/entity-definition.mjs +33 -0
- package/esm2020/src/entity-metadata/entity-definition.service.mjs +93 -0
- package/{esm2015/src/entity-metadata/entity-filters.js → esm2020/src/entity-metadata/entity-filters.mjs} +0 -0
- package/{esm2015/src/entity-metadata/entity-metadata.js → esm2020/src/entity-metadata/entity-metadata.mjs} +0 -0
- package/{esm2015/src/entity-services/entity-collection-service-base.js → esm2020/src/entity-services/entity-collection-service-base.mjs} +0 -0
- package/esm2020/src/entity-services/entity-collection-service-elements-factory.mjs +38 -0
- package/esm2020/src/entity-services/entity-collection-service-factory.mjs +28 -0
- package/{esm2015/src/entity-services/entity-collection-service.js → esm2020/src/entity-services/entity-collection-service.mjs} +0 -0
- package/esm2020/src/entity-services/entity-services-base.mjs +119 -0
- package/esm2020/src/entity-services/entity-services-elements.mjs +33 -0
- package/{esm2015/src/entity-services/entity-services.js → esm2020/src/entity-services/entity-services.mjs} +0 -0
- package/{esm2015/src/index.js → esm2020/src/index.mjs} +0 -0
- package/{esm2015/src/reducers/constants.js → esm2020/src/reducers/constants.mjs} +0 -0
- package/esm2020/src/reducers/entity-cache-reducer.mjs +271 -0
- package/{esm2015/src/reducers/entity-cache.js → esm2020/src/reducers/entity-cache.mjs} +0 -0
- package/esm2020/src/reducers/entity-change-tracker-base.mjs +587 -0
- package/{esm2015/src/reducers/entity-change-tracker.js → esm2020/src/reducers/entity-change-tracker.mjs} +0 -0
- package/esm2020/src/reducers/entity-collection-creator.mjs +37 -0
- package/esm2020/src/reducers/entity-collection-reducer-methods.mjs +806 -0
- package/esm2020/src/reducers/entity-collection-reducer-registry.mjs +68 -0
- package/esm2020/src/reducers/entity-collection-reducer.mjs +24 -0
- package/{esm2015/src/reducers/entity-collection.js → esm2020/src/reducers/entity-collection.mjs} +0 -0
- package/{esm2015/src/selectors/entity-cache-selector.js → esm2020/src/selectors/entity-cache-selector.mjs} +0 -0
- package/esm2020/src/selectors/entity-selectors$.mjs +52 -0
- package/esm2020/src/selectors/entity-selectors.mjs +96 -0
- package/esm2020/src/utils/correlation-id-generator.mjs +30 -0
- package/esm2020/src/utils/default-logger.mjs +25 -0
- package/esm2020/src/utils/default-pluralizer.mjs +71 -0
- package/{esm2015/src/utils/guid-fns.js → esm2020/src/utils/guid-fns.mjs} +0 -0
- package/{esm2015/src/utils/interfaces.js → esm2020/src/utils/interfaces.mjs} +0 -0
- package/{esm2015/src/utils/utilities.js → esm2020/src/utils/utilities.mjs} +0 -0
- package/fesm2015/{ngrx-data.js → ngrx-data.mjs} +343 -286
- package/fesm2015/ngrx-data.mjs.map +1 -0
- package/fesm2020/ngrx-data.mjs +4936 -0
- package/fesm2020/ngrx-data.mjs.map +1 -0
- package/ngrx-data.d.ts +1 -1
- package/package.json +26 -14
- package/schematics/ng-add/index.js +29 -25
- package/schematics/ng-add/index.js.map +1 -1
- package/schematics-core/index.js +2 -1
- package/schematics-core/index.js.map +1 -1
- package/schematics-core/utility/angular-utils.js +6 -5
- package/schematics-core/utility/angular-utils.js.map +1 -1
- package/schematics-core/utility/ast-utils.js +12 -8
- package/schematics-core/utility/ast-utils.js.map +1 -1
- package/schematics-core/utility/find-component.js +12 -12
- package/schematics-core/utility/find-component.js.map +1 -1
- package/schematics-core/utility/find-module.js +12 -12
- package/schematics-core/utility/find-module.js.map +1 -1
- package/schematics-core/utility/json-utilts.js.map +1 -1
- package/schematics-core/utility/libs-version.js +1 -1
- package/schematics-core/utility/libs-version.js.map +1 -1
- package/schematics-core/utility/ngrx-utils.js +23 -13
- package/schematics-core/utility/ngrx-utils.js.map +1 -1
- package/schematics-core/utility/parse-name.js +3 -3
- package/schematics-core/utility/parse-name.js.map +1 -1
- package/schematics-core/utility/project.js +1 -1
- package/schematics-core/utility/project.js.map +1 -1
- package/schematics-core/utility/visitors.js +2 -2
- package/schematics-core/utility/visitors.js.map +1 -1
- package/src/actions/entity-action-factory.d.ts +3 -0
- package/src/dataservices/default-data.service.d.ts +3 -0
- package/src/dataservices/entity-cache-data.service.d.ts +3 -0
- package/src/dataservices/entity-data.service.d.ts +3 -0
- package/src/dataservices/http-url-generator.d.ts +3 -0
- package/src/dataservices/persistence-result-handler.service.d.ts +3 -0
- package/src/dispatchers/entity-cache-dispatcher.d.ts +3 -0
- package/src/dispatchers/entity-dispatcher-default-options.d.ts +3 -0
- package/src/dispatchers/entity-dispatcher-factory.d.ts +3 -0
- package/src/effects/entity-cache-effects.d.ts +3 -0
- package/src/effects/entity-effects.d.ts +3 -0
- package/src/entity-data-without-effects.module.d.ts +5 -0
- package/src/entity-data.module.d.ts +6 -0
- package/src/entity-metadata/entity-definition.service.d.ts +3 -0
- package/src/entity-services/entity-collection-service-base.d.ts +1 -1
- package/src/entity-services/entity-collection-service-elements-factory.d.ts +3 -0
- package/src/entity-services/entity-collection-service-factory.d.ts +3 -0
- package/src/entity-services/entity-services-base.d.ts +3 -0
- package/src/entity-services/entity-services-elements.d.ts +3 -0
- package/src/reducers/entity-cache-reducer.d.ts +3 -0
- package/src/reducers/entity-collection-creator.d.ts +3 -0
- package/src/reducers/entity-collection-reducer-methods.d.ts +3 -0
- package/src/reducers/entity-collection-reducer-registry.d.ts +3 -0
- package/src/reducers/entity-collection-reducer.d.ts +3 -0
- package/src/selectors/entity-selectors$.d.ts +3 -0
- package/src/selectors/entity-selectors.d.ts +3 -0
- package/src/utils/correlation-id-generator.d.ts +3 -0
- package/src/utils/default-logger.d.ts +3 -0
- package/src/utils/default-pluralizer.d.ts +3 -0
- package/bundles/ngrx-data.umd.js +0 -5418
- package/bundles/ngrx-data.umd.js.map +0 -1
- package/esm2015/ngrx-data.js +0 -6
- package/esm2015/src/actions/entity-action-factory.js +0 -43
- package/esm2015/src/actions/entity-cache-action.js +0 -116
- package/esm2015/src/actions/entity-cache-change-set.js +0 -50
- package/esm2015/src/dataservices/entity-cache-data.service.js +0 -141
- package/esm2015/src/dataservices/entity-data.service.js +0 -64
- package/esm2015/src/dataservices/persistence-result-handler.service.js +0 -51
- package/esm2015/src/dispatchers/entity-cache-dispatcher.js +0 -162
- package/esm2015/src/dispatchers/entity-dispatcher-base.js +0 -401
- package/esm2015/src/dispatchers/entity-dispatcher-default-options.js +0 -27
- package/esm2015/src/dispatchers/entity-dispatcher-factory.js +0 -61
- package/esm2015/src/effects/entity-cache-effects.js +0 -114
- package/esm2015/src/effects/entity-effects.js +0 -147
- package/esm2015/src/entity-data-without-effects.module.js +0 -126
- package/esm2015/src/entity-data.module.js +0 -103
- package/esm2015/src/entity-metadata/entity-definition.js +0 -26
- package/esm2015/src/entity-metadata/entity-definition.service.js +0 -89
- package/esm2015/src/entity-services/entity-collection-service-elements-factory.js +0 -42
- package/esm2015/src/entity-services/entity-collection-service-factory.js +0 -29
- package/esm2015/src/entity-services/entity-services-base.js +0 -120
- package/esm2015/src/entity-services/entity-services-elements.js +0 -37
- package/esm2015/src/reducers/entity-cache-reducer.js +0 -274
- package/esm2015/src/reducers/entity-change-tracker-base.js +0 -575
- package/esm2015/src/reducers/entity-collection-creator.js +0 -36
- package/esm2015/src/reducers/entity-collection-reducer-methods.js +0 -785
- package/esm2015/src/reducers/entity-collection-reducer-registry.js +0 -65
- package/esm2015/src/reducers/entity-collection-reducer.js +0 -25
- package/esm2015/src/selectors/entity-selectors$.js +0 -52
- package/esm2015/src/selectors/entity-selectors.js +0 -83
- package/esm2015/src/utils/correlation-id-generator.js +0 -27
- package/esm2015/src/utils/default-logger.js +0 -22
- package/esm2015/src/utils/default-pluralizer.js +0 -67
- package/fesm2015/ngrx-data.js.map +0 -1
- package/ngrx-data.metadata.json +0 -1
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
import { Inject, Injectable, Optional } from '@angular/core';
|
|
2
|
-
import { createEntityDefinition } from './entity-definition';
|
|
3
|
-
import { ENTITY_METADATA_TOKEN, } from './entity-metadata';
|
|
4
|
-
/** Registry of EntityDefinitions for all cached entity types */
|
|
5
|
-
export class EntityDefinitionService {
|
|
6
|
-
constructor(entityMetadataMaps) {
|
|
7
|
-
/** {EntityDefinition} for all cached entity types */
|
|
8
|
-
this.definitions = {};
|
|
9
|
-
if (entityMetadataMaps) {
|
|
10
|
-
entityMetadataMaps.forEach((map) => this.registerMetadataMap(map));
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Get (or create) a data service for entity type
|
|
15
|
-
* @param entityName - the name of the type
|
|
16
|
-
*
|
|
17
|
-
* Examples:
|
|
18
|
-
* getDefinition('Hero'); // definition for Heroes, untyped
|
|
19
|
-
* getDefinition<Hero>(`Hero`); // definition for Heroes, typed with Hero interface
|
|
20
|
-
*/
|
|
21
|
-
getDefinition(entityName, shouldThrow = true) {
|
|
22
|
-
entityName = entityName.trim();
|
|
23
|
-
const definition = this.definitions[entityName];
|
|
24
|
-
if (!definition && shouldThrow) {
|
|
25
|
-
throw new Error(`No EntityDefinition for entity type "${entityName}".`);
|
|
26
|
-
}
|
|
27
|
-
return definition;
|
|
28
|
-
}
|
|
29
|
-
//////// Registration methods //////////
|
|
30
|
-
/**
|
|
31
|
-
* Create and register the {EntityDefinition} for the {EntityMetadata} of an entity type
|
|
32
|
-
* @param name - the name of the entity type
|
|
33
|
-
* @param definition - {EntityMetadata} for a collection for that entity type
|
|
34
|
-
*
|
|
35
|
-
* Examples:
|
|
36
|
-
* registerMetadata(myHeroEntityDefinition);
|
|
37
|
-
*/
|
|
38
|
-
registerMetadata(metadata) {
|
|
39
|
-
if (metadata) {
|
|
40
|
-
const definition = createEntityDefinition(metadata);
|
|
41
|
-
this.registerDefinition(definition);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Register an EntityMetadataMap.
|
|
46
|
-
* @param metadataMap - a map of entityType names to entity metadata
|
|
47
|
-
*
|
|
48
|
-
* Examples:
|
|
49
|
-
* registerMetadataMap({
|
|
50
|
-
* 'Hero': myHeroMetadata,
|
|
51
|
-
* Villain: myVillainMetadata
|
|
52
|
-
* });
|
|
53
|
-
*/
|
|
54
|
-
registerMetadataMap(metadataMap = {}) {
|
|
55
|
-
// The entity type name should be the same as the map key
|
|
56
|
-
Object.keys(metadataMap || {}).forEach((entityName) => this.registerMetadata(Object.assign({ entityName }, metadataMap[entityName])));
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Register an {EntityDefinition} for an entity type
|
|
60
|
-
* @param definition - EntityDefinition of a collection for that entity type
|
|
61
|
-
*
|
|
62
|
-
* Examples:
|
|
63
|
-
* registerDefinition('Hero', myHeroEntityDefinition);
|
|
64
|
-
*/
|
|
65
|
-
registerDefinition(definition) {
|
|
66
|
-
this.definitions[definition.entityName] = definition;
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Register a batch of EntityDefinitions.
|
|
70
|
-
* @param definitions - map of entityType name and associated EntityDefinitions to merge.
|
|
71
|
-
*
|
|
72
|
-
* Examples:
|
|
73
|
-
* registerDefinitions({
|
|
74
|
-
* 'Hero': myHeroEntityDefinition,
|
|
75
|
-
* Villain: myVillainEntityDefinition
|
|
76
|
-
* });
|
|
77
|
-
*/
|
|
78
|
-
registerDefinitions(definitions) {
|
|
79
|
-
Object.assign(this.definitions, definitions);
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
EntityDefinitionService.decorators = [
|
|
83
|
-
{ type: Injectable }
|
|
84
|
-
];
|
|
85
|
-
/** @nocollapse */
|
|
86
|
-
EntityDefinitionService.ctorParameters = () => [
|
|
87
|
-
{ type: Array, decorators: [{ type: Optional }, { type: Inject, args: [ENTITY_METADATA_TOKEN,] }] }
|
|
88
|
-
];
|
|
89
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWRlZmluaXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvZGF0YS9zcmMvZW50aXR5LW1ldGFkYXRhL2VudGl0eS1kZWZpbml0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdELE9BQU8sRUFBRSxzQkFBc0IsRUFBb0IsTUFBTSxxQkFBcUIsQ0FBQztBQUMvRSxPQUFPLEVBR0wscUJBQXFCLEdBQ3RCLE1BQU0sbUJBQW1CLENBQUM7QUFNM0IsZ0VBQWdFO0FBRWhFLE1BQU0sT0FBTyx1QkFBdUI7SUFJbEMsWUFHRSxrQkFBdUM7UUFOekMscURBQXFEO1FBQ3BDLGdCQUFXLEdBQXNCLEVBQUUsQ0FBQztRQU9uRCxJQUFJLGtCQUFrQixFQUFFO1lBQ3RCLGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDcEU7SUFDSCxDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILGFBQWEsQ0FDWCxVQUFrQixFQUNsQixXQUFXLEdBQUcsSUFBSTtRQUVsQixVQUFVLEdBQUcsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQy9CLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLFVBQVUsSUFBSSxXQUFXLEVBQUU7WUFDOUIsTUFBTSxJQUFJLEtBQUssQ0FBQyx3Q0FBd0MsVUFBVSxJQUFJLENBQUMsQ0FBQztTQUN6RTtRQUNELE9BQU8sVUFBVSxDQUFDO0lBQ3BCLENBQUM7SUFFRCx3Q0FBd0M7SUFFeEM7Ozs7Ozs7T0FPRztJQUNILGdCQUFnQixDQUFDLFFBQXdCO1FBQ3ZDLElBQUksUUFBUSxFQUFFO1lBQ1osTUFBTSxVQUFVLEdBQUcsc0JBQXNCLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDcEQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQ3JDO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNILG1CQUFtQixDQUFDLGNBQWlDLEVBQUU7UUFDckQseURBQXlEO1FBQ3pELE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQ3BELElBQUksQ0FBQyxnQkFBZ0IsaUJBQUcsVUFBVSxJQUFLLFdBQVcsQ0FBQyxVQUFVLENBQUMsRUFBRyxDQUNsRSxDQUFDO0lBQ0osQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILGtCQUFrQixDQUFJLFVBQStCO1FBQ25ELElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxHQUFHLFVBQVUsQ0FBQztJQUN2RCxDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0gsbUJBQW1CLENBQUMsV0FBOEI7UUFDaEQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQy9DLENBQUM7OztZQTVGRixVQUFVOzs7O3dDQU1OLFFBQVEsWUFDUixNQUFNLFNBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBjcmVhdGVFbnRpdHlEZWZpbml0aW9uLCBFbnRpdHlEZWZpbml0aW9uIH0gZnJvbSAnLi9lbnRpdHktZGVmaW5pdGlvbic7XG5pbXBvcnQge1xuICBFbnRpdHlNZXRhZGF0YSxcbiAgRW50aXR5TWV0YWRhdGFNYXAsXG4gIEVOVElUWV9NRVRBREFUQV9UT0tFTixcbn0gZnJvbSAnLi9lbnRpdHktbWV0YWRhdGEnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eURlZmluaXRpb25zIHtcbiAgW2VudGl0eU5hbWU6IHN0cmluZ106IEVudGl0eURlZmluaXRpb248YW55Pjtcbn1cblxuLyoqIFJlZ2lzdHJ5IG9mIEVudGl0eURlZmluaXRpb25zIGZvciBhbGwgY2FjaGVkIGVudGl0eSB0eXBlcyAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEVudGl0eURlZmluaXRpb25TZXJ2aWNlIHtcbiAgLyoqIHtFbnRpdHlEZWZpbml0aW9ufSBmb3IgYWxsIGNhY2hlZCBlbnRpdHkgdHlwZXMgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBkZWZpbml0aW9uczogRW50aXR5RGVmaW5pdGlvbnMgPSB7fTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKVxuICAgIEBJbmplY3QoRU5USVRZX01FVEFEQVRBX1RPS0VOKVxuICAgIGVudGl0eU1ldGFkYXRhTWFwczogRW50aXR5TWV0YWRhdGFNYXBbXVxuICApIHtcbiAgICBpZiAoZW50aXR5TWV0YWRhdGFNYXBzKSB7XG4gICAgICBlbnRpdHlNZXRhZGF0YU1hcHMuZm9yRWFjaCgobWFwKSA9PiB0aGlzLnJlZ2lzdGVyTWV0YWRhdGFNYXAobWFwKSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCAob3IgY3JlYXRlKSBhIGRhdGEgc2VydmljZSBmb3IgZW50aXR5IHR5cGVcbiAgICogQHBhcmFtIGVudGl0eU5hbWUgLSB0aGUgbmFtZSBvZiB0aGUgdHlwZVxuICAgKlxuICAgKiBFeGFtcGxlczpcbiAgICogICBnZXREZWZpbml0aW9uKCdIZXJvJyk7IC8vIGRlZmluaXRpb24gZm9yIEhlcm9lcywgdW50eXBlZFxuICAgKiAgIGdldERlZmluaXRpb248SGVybz4oYEhlcm9gKTsgLy8gZGVmaW5pdGlvbiBmb3IgSGVyb2VzLCB0eXBlZCB3aXRoIEhlcm8gaW50ZXJmYWNlXG4gICAqL1xuICBnZXREZWZpbml0aW9uPFQ+KFxuICAgIGVudGl0eU5hbWU6IHN0cmluZyxcbiAgICBzaG91bGRUaHJvdyA9IHRydWVcbiAgKTogRW50aXR5RGVmaW5pdGlvbjxUPiB7XG4gICAgZW50aXR5TmFtZSA9IGVudGl0eU5hbWUudHJpbSgpO1xuICAgIGNvbnN0IGRlZmluaXRpb24gPSB0aGlzLmRlZmluaXRpb25zW2VudGl0eU5hbWVdO1xuICAgIGlmICghZGVmaW5pdGlvbiAmJiBzaG91bGRUaHJvdykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBFbnRpdHlEZWZpbml0aW9uIGZvciBlbnRpdHkgdHlwZSBcIiR7ZW50aXR5TmFtZX1cIi5gKTtcbiAgICB9XG4gICAgcmV0dXJuIGRlZmluaXRpb247XG4gIH1cblxuICAvLy8vLy8vLyBSZWdpc3RyYXRpb24gbWV0aG9kcyAvLy8vLy8vLy8vXG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhbmQgcmVnaXN0ZXIgdGhlIHtFbnRpdHlEZWZpbml0aW9ufSBmb3IgdGhlIHtFbnRpdHlNZXRhZGF0YX0gb2YgYW4gZW50aXR5IHR5cGVcbiAgICogQHBhcmFtIG5hbWUgLSB0aGUgbmFtZSBvZiB0aGUgZW50aXR5IHR5cGVcbiAgICogQHBhcmFtIGRlZmluaXRpb24gLSB7RW50aXR5TWV0YWRhdGF9IGZvciBhIGNvbGxlY3Rpb24gZm9yIHRoYXQgZW50aXR5IHR5cGVcbiAgICpcbiAgICogRXhhbXBsZXM6XG4gICAqICAgcmVnaXN0ZXJNZXRhZGF0YShteUhlcm9FbnRpdHlEZWZpbml0aW9uKTtcbiAgICovXG4gIHJlZ2lzdGVyTWV0YWRhdGEobWV0YWRhdGE6IEVudGl0eU1ldGFkYXRhKSB7XG4gICAgaWYgKG1ldGFkYXRhKSB7XG4gICAgICBjb25zdCBkZWZpbml0aW9uID0gY3JlYXRlRW50aXR5RGVmaW5pdGlvbihtZXRhZGF0YSk7XG4gICAgICB0aGlzLnJlZ2lzdGVyRGVmaW5pdGlvbihkZWZpbml0aW9uKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXIgYW4gRW50aXR5TWV0YWRhdGFNYXAuXG4gICAqIEBwYXJhbSBtZXRhZGF0YU1hcCAtIGEgbWFwIG9mIGVudGl0eVR5cGUgbmFtZXMgdG8gZW50aXR5IG1ldGFkYXRhXG4gICAqXG4gICAqIEV4YW1wbGVzOlxuICAgKiAgIHJlZ2lzdGVyTWV0YWRhdGFNYXAoe1xuICAgKiAgICAgJ0hlcm8nOiBteUhlcm9NZXRhZGF0YSxcbiAgICogICAgIFZpbGxhaW46IG15VmlsbGFpbk1ldGFkYXRhXG4gICAqICAgfSk7XG4gICAqL1xuICByZWdpc3Rlck1ldGFkYXRhTWFwKG1ldGFkYXRhTWFwOiBFbnRpdHlNZXRhZGF0YU1hcCA9IHt9KSB7XG4gICAgLy8gVGhlIGVudGl0eSB0eXBlIG5hbWUgc2hvdWxkIGJlIHRoZSBzYW1lIGFzIHRoZSBtYXAga2V5XG4gICAgT2JqZWN0LmtleXMobWV0YWRhdGFNYXAgfHwge30pLmZvckVhY2goKGVudGl0eU5hbWUpID0+XG4gICAgICB0aGlzLnJlZ2lzdGVyTWV0YWRhdGEoeyBlbnRpdHlOYW1lLCAuLi5tZXRhZGF0YU1hcFtlbnRpdHlOYW1lXSB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXIgYW4ge0VudGl0eURlZmluaXRpb259IGZvciBhbiBlbnRpdHkgdHlwZVxuICAgKiBAcGFyYW0gZGVmaW5pdGlvbiAtIEVudGl0eURlZmluaXRpb24gb2YgYSBjb2xsZWN0aW9uIGZvciB0aGF0IGVudGl0eSB0eXBlXG4gICAqXG4gICAqIEV4YW1wbGVzOlxuICAgKiAgIHJlZ2lzdGVyRGVmaW5pdGlvbignSGVybycsIG15SGVyb0VudGl0eURlZmluaXRpb24pO1xuICAgKi9cbiAgcmVnaXN0ZXJEZWZpbml0aW9uPFQ+KGRlZmluaXRpb246IEVudGl0eURlZmluaXRpb248VD4pIHtcbiAgICB0aGlzLmRlZmluaXRpb25zW2RlZmluaXRpb24uZW50aXR5TmFtZV0gPSBkZWZpbml0aW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVyIGEgYmF0Y2ggb2YgRW50aXR5RGVmaW5pdGlvbnMuXG4gICAqIEBwYXJhbSBkZWZpbml0aW9ucyAtIG1hcCBvZiBlbnRpdHlUeXBlIG5hbWUgYW5kIGFzc29jaWF0ZWQgRW50aXR5RGVmaW5pdGlvbnMgdG8gbWVyZ2UuXG4gICAqXG4gICAqIEV4YW1wbGVzOlxuICAgKiAgIHJlZ2lzdGVyRGVmaW5pdGlvbnMoe1xuICAgKiAgICAgJ0hlcm8nOiBteUhlcm9FbnRpdHlEZWZpbml0aW9uLFxuICAgKiAgICAgVmlsbGFpbjogbXlWaWxsYWluRW50aXR5RGVmaW5pdGlvblxuICAgKiAgIH0pO1xuICAgKi9cbiAgcmVnaXN0ZXJEZWZpbml0aW9ucyhkZWZpbml0aW9uczogRW50aXR5RGVmaW5pdGlvbnMpIHtcbiAgICBPYmplY3QuYXNzaWduKHRoaXMuZGVmaW5pdGlvbnMsIGRlZmluaXRpb25zKTtcbiAgfVxufVxuIl19
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { EntityDispatcherFactory } from '../dispatchers/entity-dispatcher-factory';
|
|
3
|
-
import { EntityDefinitionService } from '../entity-metadata/entity-definition.service';
|
|
4
|
-
import { EntitySelectorsFactory, } from '../selectors/entity-selectors';
|
|
5
|
-
import { EntitySelectors$Factory, } from '../selectors/entity-selectors$';
|
|
6
|
-
/** Creates the core elements of the EntityCollectionService for an entity type. */
|
|
7
|
-
export class EntityCollectionServiceElementsFactory {
|
|
8
|
-
constructor(entityDispatcherFactory, entityDefinitionService, entitySelectorsFactory, entitySelectors$Factory) {
|
|
9
|
-
this.entityDispatcherFactory = entityDispatcherFactory;
|
|
10
|
-
this.entityDefinitionService = entityDefinitionService;
|
|
11
|
-
this.entitySelectorsFactory = entitySelectorsFactory;
|
|
12
|
-
this.entitySelectors$Factory = entitySelectors$Factory;
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Get the ingredients for making an EntityCollectionService for this entity type
|
|
16
|
-
* @param entityName - name of the entity type
|
|
17
|
-
*/
|
|
18
|
-
create(entityName) {
|
|
19
|
-
entityName = entityName.trim();
|
|
20
|
-
const definition = this.entityDefinitionService.getDefinition(entityName);
|
|
21
|
-
const dispatcher = this.entityDispatcherFactory.create(entityName, definition.selectId, definition.entityDispatcherOptions);
|
|
22
|
-
const selectors = this.entitySelectorsFactory.create(definition.metadata);
|
|
23
|
-
const selectors$ = this.entitySelectors$Factory.create(entityName, selectors);
|
|
24
|
-
return {
|
|
25
|
-
dispatcher,
|
|
26
|
-
entityName,
|
|
27
|
-
selectors,
|
|
28
|
-
selectors$,
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
EntityCollectionServiceElementsFactory.decorators = [
|
|
33
|
-
{ type: Injectable }
|
|
34
|
-
];
|
|
35
|
-
/** @nocollapse */
|
|
36
|
-
EntityCollectionServiceElementsFactory.ctorParameters = () => [
|
|
37
|
-
{ type: EntityDispatcherFactory },
|
|
38
|
-
{ type: EntityDefinitionService },
|
|
39
|
-
{ type: EntitySelectorsFactory },
|
|
40
|
-
{ type: EntitySelectors$Factory }
|
|
41
|
-
];
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWNvbGxlY3Rpb24tc2VydmljZS1lbGVtZW50cy1mYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9kYXRhL3NyYy9lbnRpdHktc2VydmljZXMvZW50aXR5LWNvbGxlY3Rpb24tc2VydmljZS1lbGVtZW50cy1mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDbkYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDdkYsT0FBTyxFQUVMLHNCQUFzQixHQUN2QixNQUFNLCtCQUErQixDQUFDO0FBQ3ZDLE9BQU8sRUFFTCx1QkFBdUIsR0FDeEIsTUFBTSxnQ0FBZ0MsQ0FBQztBQWF4QyxtRkFBbUY7QUFFbkYsTUFBTSxPQUFPLHNDQUFzQztJQUNqRCxZQUNVLHVCQUFnRCxFQUNoRCx1QkFBZ0QsRUFDaEQsc0JBQThDLEVBQzlDLHVCQUFnRDtRQUhoRCw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXlCO1FBQ2hELDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBeUI7UUFDaEQsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUF3QjtRQUM5Qyw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXlCO0lBQ3ZELENBQUM7SUFFSjs7O09BR0c7SUFDSCxNQUFNLENBQ0osVUFBa0I7UUFFbEIsVUFBVSxHQUFHLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMvQixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsYUFBYSxDQUMzRCxVQUFVLENBQ1gsQ0FBQztRQUNGLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLENBQ3BELFVBQVUsRUFDVixVQUFVLENBQUMsUUFBUSxFQUNuQixVQUFVLENBQUMsdUJBQXVCLENBQ25DLENBQUM7UUFDRixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsTUFBTSxDQUNsRCxVQUFVLENBQUMsUUFBUSxDQUNwQixDQUFDO1FBQ0YsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FDcEQsVUFBVSxFQUNWLFNBQVMsQ0FDVixDQUFDO1FBQ0YsT0FBTztZQUNMLFVBQVU7WUFDVixVQUFVO1lBQ1YsU0FBUztZQUNULFVBQVU7U0FDWCxDQUFDO0lBQ0osQ0FBQzs7O1lBdENGLFVBQVU7Ozs7WUF2QkYsdUJBQXVCO1lBQ3ZCLHVCQUF1QjtZQUc5QixzQkFBc0I7WUFJdEIsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRW50aXR5RGlzcGF0Y2hlciB9IGZyb20gJy4uL2Rpc3BhdGNoZXJzL2VudGl0eS1kaXNwYXRjaGVyJztcbmltcG9ydCB7IEVudGl0eURpc3BhdGNoZXJGYWN0b3J5IH0gZnJvbSAnLi4vZGlzcGF0Y2hlcnMvZW50aXR5LWRpc3BhdGNoZXItZmFjdG9yeSc7XG5pbXBvcnQgeyBFbnRpdHlEZWZpbml0aW9uU2VydmljZSB9IGZyb20gJy4uL2VudGl0eS1tZXRhZGF0YS9lbnRpdHktZGVmaW5pdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIEVudGl0eVNlbGVjdG9ycyxcbiAgRW50aXR5U2VsZWN0b3JzRmFjdG9yeSxcbn0gZnJvbSAnLi4vc2VsZWN0b3JzL2VudGl0eS1zZWxlY3RvcnMnO1xuaW1wb3J0IHtcbiAgRW50aXR5U2VsZWN0b3JzJCxcbiAgRW50aXR5U2VsZWN0b3JzJEZhY3RvcnksXG59IGZyb20gJy4uL3NlbGVjdG9ycy9lbnRpdHktc2VsZWN0b3JzJCc7XG5cbi8qKiBDb3JlIGluZ3JlZGllbnRzIG9mIGFuIEVudGl0eUNvbGxlY3Rpb25TZXJ2aWNlICovXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eUNvbGxlY3Rpb25TZXJ2aWNlRWxlbWVudHM8XG4gIFQsXG4gIFMkIGV4dGVuZHMgRW50aXR5U2VsZWN0b3JzJDxUPiA9IEVudGl0eVNlbGVjdG9ycyQ8VD5cbj4ge1xuICByZWFkb25seSBkaXNwYXRjaGVyOiBFbnRpdHlEaXNwYXRjaGVyPFQ+O1xuICByZWFkb25seSBlbnRpdHlOYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHNlbGVjdG9yczogRW50aXR5U2VsZWN0b3JzPFQ+O1xuICByZWFkb25seSBzZWxlY3RvcnMkOiBTJDtcbn1cblxuLyoqIENyZWF0ZXMgdGhlIGNvcmUgZWxlbWVudHMgb2YgdGhlIEVudGl0eUNvbGxlY3Rpb25TZXJ2aWNlIGZvciBhbiBlbnRpdHkgdHlwZS4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBFbnRpdHlDb2xsZWN0aW9uU2VydmljZUVsZW1lbnRzRmFjdG9yeSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZW50aXR5RGlzcGF0Y2hlckZhY3Rvcnk6IEVudGl0eURpc3BhdGNoZXJGYWN0b3J5LFxuICAgIHByaXZhdGUgZW50aXR5RGVmaW5pdGlvblNlcnZpY2U6IEVudGl0eURlZmluaXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgZW50aXR5U2VsZWN0b3JzRmFjdG9yeTogRW50aXR5U2VsZWN0b3JzRmFjdG9yeSxcbiAgICBwcml2YXRlIGVudGl0eVNlbGVjdG9ycyRGYWN0b3J5OiBFbnRpdHlTZWxlY3RvcnMkRmFjdG9yeVxuICApIHt9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgaW5ncmVkaWVudHMgZm9yIG1ha2luZyBhbiBFbnRpdHlDb2xsZWN0aW9uU2VydmljZSBmb3IgdGhpcyBlbnRpdHkgdHlwZVxuICAgKiBAcGFyYW0gZW50aXR5TmFtZSAtIG5hbWUgb2YgdGhlIGVudGl0eSB0eXBlXG4gICAqL1xuICBjcmVhdGU8VCwgUyQgZXh0ZW5kcyBFbnRpdHlTZWxlY3RvcnMkPFQ+ID0gRW50aXR5U2VsZWN0b3JzJDxUPj4oXG4gICAgZW50aXR5TmFtZTogc3RyaW5nXG4gICk6IEVudGl0eUNvbGxlY3Rpb25TZXJ2aWNlRWxlbWVudHM8VCwgUyQ+IHtcbiAgICBlbnRpdHlOYW1lID0gZW50aXR5TmFtZS50cmltKCk7XG4gICAgY29uc3QgZGVmaW5pdGlvbiA9IHRoaXMuZW50aXR5RGVmaW5pdGlvblNlcnZpY2UuZ2V0RGVmaW5pdGlvbjxUPihcbiAgICAgIGVudGl0eU5hbWVcbiAgICApO1xuICAgIGNvbnN0IGRpc3BhdGNoZXIgPSB0aGlzLmVudGl0eURpc3BhdGNoZXJGYWN0b3J5LmNyZWF0ZTxUPihcbiAgICAgIGVudGl0eU5hbWUsXG4gICAgICBkZWZpbml0aW9uLnNlbGVjdElkLFxuICAgICAgZGVmaW5pdGlvbi5lbnRpdHlEaXNwYXRjaGVyT3B0aW9uc1xuICAgICk7XG4gICAgY29uc3Qgc2VsZWN0b3JzID0gdGhpcy5lbnRpdHlTZWxlY3RvcnNGYWN0b3J5LmNyZWF0ZTxUPihcbiAgICAgIGRlZmluaXRpb24ubWV0YWRhdGFcbiAgICApO1xuICAgIGNvbnN0IHNlbGVjdG9ycyQgPSB0aGlzLmVudGl0eVNlbGVjdG9ycyRGYWN0b3J5LmNyZWF0ZTxULCBTJD4oXG4gICAgICBlbnRpdHlOYW1lLFxuICAgICAgc2VsZWN0b3JzXG4gICAgKTtcbiAgICByZXR1cm4ge1xuICAgICAgZGlzcGF0Y2hlcixcbiAgICAgIGVudGl0eU5hbWUsXG4gICAgICBzZWxlY3RvcnMsXG4gICAgICBzZWxlY3RvcnMkLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { EntityCollectionServiceBase } from './entity-collection-service-base';
|
|
3
|
-
import { EntityCollectionServiceElementsFactory } from './entity-collection-service-elements-factory';
|
|
4
|
-
/**
|
|
5
|
-
* Creates EntityCollectionService instances for
|
|
6
|
-
* a cached collection of T entities in the ngrx store.
|
|
7
|
-
*/
|
|
8
|
-
export class EntityCollectionServiceFactory {
|
|
9
|
-
constructor(
|
|
10
|
-
/** Creates the core elements of the EntityCollectionService for an entity type. */
|
|
11
|
-
entityCollectionServiceElementsFactory) {
|
|
12
|
-
this.entityCollectionServiceElementsFactory = entityCollectionServiceElementsFactory;
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Create an EntityCollectionService for an entity type
|
|
16
|
-
* @param entityName - name of the entity type
|
|
17
|
-
*/
|
|
18
|
-
create(entityName) {
|
|
19
|
-
return new EntityCollectionServiceBase(entityName, this.entityCollectionServiceElementsFactory);
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
EntityCollectionServiceFactory.decorators = [
|
|
23
|
-
{ type: Injectable }
|
|
24
|
-
];
|
|
25
|
-
/** @nocollapse */
|
|
26
|
-
EntityCollectionServiceFactory.ctorParameters = () => [
|
|
27
|
-
{ type: EntityCollectionServiceElementsFactory }
|
|
28
|
-
];
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWNvbGxlY3Rpb24tc2VydmljZS1mYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9kYXRhL3NyYy9lbnRpdHktc2VydmljZXMvZW50aXR5LWNvbGxlY3Rpb24tc2VydmljZS1mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHNDQUFzQyxFQUFFLE1BQU0sOENBQThDLENBQUM7QUFHdEc7OztHQUdHO0FBRUgsTUFBTSxPQUFPLDhCQUE4QjtJQUN6QztJQUNFLG1GQUFtRjtJQUM1RSxzQ0FBOEU7UUFBOUUsMkNBQXNDLEdBQXRDLHNDQUFzQyxDQUF3QztJQUNwRixDQUFDO0lBRUo7OztPQUdHO0lBQ0gsTUFBTSxDQUNKLFVBQWtCO1FBRWxCLE9BQU8sSUFBSSwyQkFBMkIsQ0FDcEMsVUFBVSxFQUNWLElBQUksQ0FBQyxzQ0FBc0MsQ0FDNUMsQ0FBQztJQUNKLENBQUM7OztZQWxCRixVQUFVOzs7O1lBUEYsc0NBQXNDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRW50aXR5Q29sbGVjdGlvblNlcnZpY2UgfSBmcm9tICcuL2VudGl0eS1jb2xsZWN0aW9uLXNlcnZpY2UnO1xuaW1wb3J0IHsgRW50aXR5Q29sbGVjdGlvblNlcnZpY2VCYXNlIH0gZnJvbSAnLi9lbnRpdHktY29sbGVjdGlvbi1zZXJ2aWNlLWJhc2UnO1xuaW1wb3J0IHsgRW50aXR5Q29sbGVjdGlvblNlcnZpY2VFbGVtZW50c0ZhY3RvcnkgfSBmcm9tICcuL2VudGl0eS1jb2xsZWN0aW9uLXNlcnZpY2UtZWxlbWVudHMtZmFjdG9yeSc7XG5pbXBvcnQgeyBFbnRpdHlTZWxlY3RvcnMkIH0gZnJvbSAnLi4vc2VsZWN0b3JzL2VudGl0eS1zZWxlY3RvcnMkJztcblxuLyoqXG4gKiBDcmVhdGVzIEVudGl0eUNvbGxlY3Rpb25TZXJ2aWNlIGluc3RhbmNlcyBmb3JcbiAqIGEgY2FjaGVkIGNvbGxlY3Rpb24gb2YgVCBlbnRpdGllcyBpbiB0aGUgbmdyeCBzdG9yZS5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEVudGl0eUNvbGxlY3Rpb25TZXJ2aWNlRmFjdG9yeSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIC8qKiBDcmVhdGVzIHRoZSBjb3JlIGVsZW1lbnRzIG9mIHRoZSBFbnRpdHlDb2xsZWN0aW9uU2VydmljZSBmb3IgYW4gZW50aXR5IHR5cGUuICovXG4gICAgcHVibGljIGVudGl0eUNvbGxlY3Rpb25TZXJ2aWNlRWxlbWVudHNGYWN0b3J5OiBFbnRpdHlDb2xsZWN0aW9uU2VydmljZUVsZW1lbnRzRmFjdG9yeVxuICApIHt9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhbiBFbnRpdHlDb2xsZWN0aW9uU2VydmljZSBmb3IgYW4gZW50aXR5IHR5cGVcbiAgICogQHBhcmFtIGVudGl0eU5hbWUgLSBuYW1lIG9mIHRoZSBlbnRpdHkgdHlwZVxuICAgKi9cbiAgY3JlYXRlPFQsIFMkIGV4dGVuZHMgRW50aXR5U2VsZWN0b3JzJDxUPiA9IEVudGl0eVNlbGVjdG9ycyQ8VD4+KFxuICAgIGVudGl0eU5hbWU6IHN0cmluZ1xuICApOiBFbnRpdHlDb2xsZWN0aW9uU2VydmljZTxUPiB7XG4gICAgcmV0dXJuIG5ldyBFbnRpdHlDb2xsZWN0aW9uU2VydmljZUJhc2U8VCwgUyQ+KFxuICAgICAgZW50aXR5TmFtZSxcbiAgICAgIHRoaXMuZW50aXR5Q29sbGVjdGlvblNlcnZpY2VFbGVtZW50c0ZhY3RvcnlcbiAgICApO1xuICB9XG59XG4iXX0=
|
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { EntityServicesElements } from './entity-services-elements';
|
|
3
|
-
/* eslint-disable @typescript-eslint/member-ordering */
|
|
4
|
-
/**
|
|
5
|
-
* Base/default class of a central registry of EntityCollectionServices for all entity types.
|
|
6
|
-
* Create your own subclass to add app-specific members for an improved developer experience.
|
|
7
|
-
*
|
|
8
|
-
* @usageNotes
|
|
9
|
-
* ```ts
|
|
10
|
-
* export class EntityServices extends EntityServicesBase {
|
|
11
|
-
* constructor(entityServicesElements: EntityServicesElements) {
|
|
12
|
-
* super(entityServicesElements);
|
|
13
|
-
* }
|
|
14
|
-
* // Extend with well-known, app entity collection services
|
|
15
|
-
* // Convenience property to return a typed custom entity collection service
|
|
16
|
-
* get companyService() {
|
|
17
|
-
* return this.getEntityCollectionService<Model.Company>('Company') as CompanyService;
|
|
18
|
-
* }
|
|
19
|
-
* // Convenience dispatch methods
|
|
20
|
-
* clearCompany(companyId: string) {
|
|
21
|
-
* this.dispatch(new ClearCompanyAction(companyId));
|
|
22
|
-
* }
|
|
23
|
-
* }
|
|
24
|
-
* ```
|
|
25
|
-
*/
|
|
26
|
-
export class EntityServicesBase {
|
|
27
|
-
// Dear @ngrx/data developer: think hard before changing the constructor.
|
|
28
|
-
// Doing so will break apps that derive from this base class,
|
|
29
|
-
// and many apps will derive from this class.
|
|
30
|
-
//
|
|
31
|
-
// Do not give this constructor an implementation.
|
|
32
|
-
// Doing so makes it hard to mock classes that derive from this class.
|
|
33
|
-
// Use getter properties instead. For example, see entityCache$
|
|
34
|
-
constructor(entityServicesElements) {
|
|
35
|
-
this.entityServicesElements = entityServicesElements;
|
|
36
|
-
/** Registry of EntityCollectionService instances */
|
|
37
|
-
this.EntityCollectionServices = {};
|
|
38
|
-
}
|
|
39
|
-
// #region EntityServicesElement-based properties
|
|
40
|
-
/** Observable of error EntityActions (e.g. QUERY_ALL_ERROR) for all entity types */
|
|
41
|
-
get entityActionErrors$() {
|
|
42
|
-
return this.entityServicesElements.entityActionErrors$;
|
|
43
|
-
}
|
|
44
|
-
/** Observable of the entire entity cache */
|
|
45
|
-
get entityCache$() {
|
|
46
|
-
return this.entityServicesElements.entityCache$;
|
|
47
|
-
}
|
|
48
|
-
/** Factory to create a default instance of an EntityCollectionService */
|
|
49
|
-
get entityCollectionServiceFactory() {
|
|
50
|
-
return this.entityServicesElements.entityCollectionServiceFactory;
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Actions scanned by the store after it processed them with reducers.
|
|
54
|
-
* A replay observable of the most recent action reduced by the store.
|
|
55
|
-
*/
|
|
56
|
-
get reducedActions$() {
|
|
57
|
-
return this.entityServicesElements.reducedActions$;
|
|
58
|
-
}
|
|
59
|
-
/** The ngrx store, scoped to the EntityCache */
|
|
60
|
-
get store() {
|
|
61
|
-
return this.entityServicesElements.store;
|
|
62
|
-
}
|
|
63
|
-
// #endregion EntityServicesElement-based properties
|
|
64
|
-
/** Dispatch any action to the store */
|
|
65
|
-
dispatch(action) {
|
|
66
|
-
this.store.dispatch(action);
|
|
67
|
-
}
|
|
68
|
-
/**
|
|
69
|
-
* Create a new default instance of an EntityCollectionService.
|
|
70
|
-
* Prefer getEntityCollectionService() unless you really want a new default instance.
|
|
71
|
-
* This one will NOT be registered with EntityServices!
|
|
72
|
-
* @param entityName {string} Name of the entity type of the service
|
|
73
|
-
*/
|
|
74
|
-
createEntityCollectionService(entityName) {
|
|
75
|
-
return this.entityCollectionServiceFactory.create(entityName);
|
|
76
|
-
}
|
|
77
|
-
/** Get (or create) the singleton instance of an EntityCollectionService
|
|
78
|
-
* @param entityName {string} Name of the entity type of the service
|
|
79
|
-
*/
|
|
80
|
-
getEntityCollectionService(entityName) {
|
|
81
|
-
let service = this.EntityCollectionServices[entityName];
|
|
82
|
-
if (!service) {
|
|
83
|
-
service = this.createEntityCollectionService(entityName);
|
|
84
|
-
this.EntityCollectionServices[entityName] = service;
|
|
85
|
-
}
|
|
86
|
-
return service;
|
|
87
|
-
}
|
|
88
|
-
/** Register an EntityCollectionService under its entity type name.
|
|
89
|
-
* Will replace a pre-existing service for that type.
|
|
90
|
-
* @param service {EntityCollectionService} The entity service
|
|
91
|
-
* @param serviceName {string} optional service name to use instead of the service's entityName
|
|
92
|
-
*/
|
|
93
|
-
registerEntityCollectionService(service, serviceName) {
|
|
94
|
-
this.EntityCollectionServices[serviceName || service.entityName] = service;
|
|
95
|
-
}
|
|
96
|
-
/**
|
|
97
|
-
* Register entity services for several entity types at once.
|
|
98
|
-
* Will replace a pre-existing service for that type.
|
|
99
|
-
* @param entityCollectionServices {EntityCollectionServiceMap | EntityCollectionService<any>[]}
|
|
100
|
-
* EntityCollectionServices to register, either as a map or an array
|
|
101
|
-
*/
|
|
102
|
-
registerEntityCollectionServices(entityCollectionServices) {
|
|
103
|
-
if (Array.isArray(entityCollectionServices)) {
|
|
104
|
-
entityCollectionServices.forEach((service) => this.registerEntityCollectionService(service));
|
|
105
|
-
}
|
|
106
|
-
else {
|
|
107
|
-
Object.keys(entityCollectionServices || {}).forEach((serviceName) => {
|
|
108
|
-
this.registerEntityCollectionService(entityCollectionServices[serviceName], serviceName);
|
|
109
|
-
});
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
EntityServicesBase.decorators = [
|
|
114
|
-
{ type: Injectable }
|
|
115
|
-
];
|
|
116
|
-
/** @nocollapse */
|
|
117
|
-
EntityServicesBase.ctorParameters = () => [
|
|
118
|
-
{ type: EntityServicesElements }
|
|
119
|
-
];
|
|
120
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXNlcnZpY2VzLWJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9tb2R1bGVzL2RhdGEvc3JjL2VudGl0eS1zZXJ2aWNlcy9lbnRpdHktc2VydmljZXMtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBVzNDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXBFLHVEQUF1RDtBQUV2RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUJHO0FBRUgsTUFBTSxPQUFPLGtCQUFrQjtJQUM3Qix5RUFBeUU7SUFDekUsNkRBQTZEO0lBQzdELDZDQUE2QztJQUM3QyxFQUFFO0lBQ0Ysa0RBQWtEO0lBQ2xELHNFQUFzRTtJQUN0RSwrREFBK0Q7SUFDL0QsWUFBb0Isc0JBQThDO1FBQTlDLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBd0I7UUF1Q2xFLG9EQUFvRDtRQUNuQyw2QkFBd0IsR0FBK0IsRUFBRSxDQUFDO0lBeENOLENBQUM7SUFFdEUsaURBQWlEO0lBRWpELG9GQUFvRjtJQUNwRixJQUFJLG1CQUFtQjtRQUNyQixPQUFPLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxtQkFBbUIsQ0FBQztJQUN6RCxDQUFDO0lBRUQsNENBQTRDO0lBQzVDLElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLFlBQVksQ0FBQztJQUNsRCxDQUFDO0lBRUQseUVBQXlFO0lBQ3pFLElBQUksOEJBQThCO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLDhCQUE4QixDQUFDO0lBQ3BFLENBQUM7SUFFRDs7O09BR0c7SUFDSCxJQUFJLGVBQWU7UUFDakIsT0FBTyxJQUFJLENBQUMsc0JBQXNCLENBQUMsZUFBZSxDQUFDO0lBQ3JELENBQUM7SUFFRCxnREFBZ0Q7SUFDaEQsSUFBYyxLQUFLO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLHNCQUFzQixDQUFDLEtBQUssQ0FBQztJQUMzQyxDQUFDO0lBRUQsb0RBQW9EO0lBRXBELHVDQUF1QztJQUN2QyxRQUFRLENBQUMsTUFBYztRQUNyQixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBS0Q7Ozs7O09BS0c7SUFDTyw2QkFBNkIsQ0FHckMsVUFBa0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsOEJBQThCLENBQUMsTUFBTSxDQUFRLFVBQVUsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRDs7T0FFRztJQUNILDBCQUEwQixDQUd4QixVQUFrQjtRQUNsQixJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDeEQsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNaLE9BQU8sR0FBRyxJQUFJLENBQUMsNkJBQTZCLENBQVEsVUFBVSxDQUFDLENBQUM7WUFDaEUsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFVBQVUsQ0FBQyxHQUFHLE9BQU8sQ0FBQztTQUNyRDtRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsK0JBQStCLENBQzdCLE9BQW1DLEVBQ25DLFdBQW9CO1FBRXBCLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxXQUFXLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxHQUFHLE9BQU8sQ0FBQztJQUM3RSxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxnQ0FBZ0MsQ0FDOUIsd0JBRWtDO1FBRWxDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyx3QkFBd0IsQ0FBQyxFQUFFO1lBQzNDLHdCQUF3QixDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQzNDLElBQUksQ0FBQywrQkFBK0IsQ0FBQyxPQUFPLENBQUMsQ0FDOUMsQ0FBQztTQUNIO2FBQU07WUFDTCxNQUFNLENBQUMsSUFBSSxDQUFDLHdCQUF3QixJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFO2dCQUNsRSxJQUFJLENBQUMsK0JBQStCLENBQ2xDLHdCQUF3QixDQUFDLFdBQVcsQ0FBQyxFQUNyQyxXQUFXLENBQ1osQ0FBQztZQUNKLENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDOzs7WUFsSEYsVUFBVTs7OztZQTFCRixzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3Rpb24sIFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEVudGl0eUFjdGlvbiB9IGZyb20gJy4uL2FjdGlvbnMvZW50aXR5LWFjdGlvbic7XG5pbXBvcnQgeyBFbnRpdHlDYWNoZSB9IGZyb20gJy4uL3JlZHVjZXJzL2VudGl0eS1jYWNoZSc7XG5pbXBvcnQgeyBFbnRpdHlDb2xsZWN0aW9uU2VydmljZSB9IGZyb20gJy4vZW50aXR5LWNvbGxlY3Rpb24tc2VydmljZSc7XG5pbXBvcnQgeyBFbnRpdHlDb2xsZWN0aW9uU2VydmljZUZhY3RvcnkgfSBmcm9tICcuL2VudGl0eS1jb2xsZWN0aW9uLXNlcnZpY2UtZmFjdG9yeSc7XG5pbXBvcnQgeyBFbnRpdHlDb2xsZWN0aW9uU2VydmljZU1hcCwgRW50aXR5U2VydmljZXMgfSBmcm9tICcuL2VudGl0eS1zZXJ2aWNlcyc7XG5pbXBvcnQgeyBFbnRpdHlTZWxlY3RvcnMkIH0gZnJvbSAnLi4vc2VsZWN0b3JzL2VudGl0eS1zZWxlY3RvcnMkJztcbmltcG9ydCB7IEVudGl0eVNlcnZpY2VzRWxlbWVudHMgfSBmcm9tICcuL2VudGl0eS1zZXJ2aWNlcy1lbGVtZW50cyc7XG5cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9tZW1iZXItb3JkZXJpbmcgKi9cblxuLyoqXG4gKiBCYXNlL2RlZmF1bHQgY2xhc3Mgb2YgYSBjZW50cmFsIHJlZ2lzdHJ5IG9mIEVudGl0eUNvbGxlY3Rpb25TZXJ2aWNlcyBmb3IgYWxsIGVudGl0eSB0eXBlcy5cbiAqIENyZWF0ZSB5b3VyIG93biBzdWJjbGFzcyB0byBhZGQgYXBwLXNwZWNpZmljIG1lbWJlcnMgZm9yIGFuIGltcHJvdmVkIGRldmVsb3BlciBleHBlcmllbmNlLlxuICpcbiAqIEB1c2FnZU5vdGVzXG4gKiBgYGB0c1xuICogZXhwb3J0IGNsYXNzIEVudGl0eVNlcnZpY2VzIGV4dGVuZHMgRW50aXR5U2VydmljZXNCYXNlIHtcbiAqICAgY29uc3RydWN0b3IoZW50aXR5U2VydmljZXNFbGVtZW50czogRW50aXR5U2VydmljZXNFbGVtZW50cykge1xuICogICAgIHN1cGVyKGVudGl0eVNlcnZpY2VzRWxlbWVudHMpO1xuICogICB9XG4gKiAgIC8vIEV4dGVuZCB3aXRoIHdlbGwta25vd24sIGFwcCBlbnRpdHkgY29sbGVjdGlvbiBzZXJ2aWNlc1xuICogICAvLyBDb252ZW5pZW5jZSBwcm9wZXJ0eSB0byByZXR1cm4gYSB0eXBlZCBjdXN0b20gZW50aXR5IGNvbGxlY3Rpb24gc2VydmljZVxuICogICBnZXQgY29tcGFueVNlcnZpY2UoKSB7XG4gKiAgICAgcmV0dXJuIHRoaXMuZ2V0RW50aXR5Q29sbGVjdGlvblNlcnZpY2U8TW9kZWwuQ29tcGFueT4oJ0NvbXBhbnknKSBhcyBDb21wYW55U2VydmljZTtcbiAqICAgfVxuICogICAvLyBDb252ZW5pZW5jZSBkaXNwYXRjaCBtZXRob2RzXG4gKiAgIGNsZWFyQ29tcGFueShjb21wYW55SWQ6IHN0cmluZykge1xuICogICAgIHRoaXMuZGlzcGF0Y2gobmV3IENsZWFyQ29tcGFueUFjdGlvbihjb21wYW55SWQpKTtcbiAqICAgfVxuICogfVxuICogYGBgXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBFbnRpdHlTZXJ2aWNlc0Jhc2UgaW1wbGVtZW50cyBFbnRpdHlTZXJ2aWNlcyB7XG4gIC8vIERlYXIgQG5ncngvZGF0YSBkZXZlbG9wZXI6IHRoaW5rIGhhcmQgYmVmb3JlIGNoYW5naW5nIHRoZSBjb25zdHJ1Y3Rvci5cbiAgLy8gRG9pbmcgc28gd2lsbCBicmVhayBhcHBzIHRoYXQgZGVyaXZlIGZyb20gdGhpcyBiYXNlIGNsYXNzLFxuICAvLyBhbmQgbWFueSBhcHBzIHdpbGwgZGVyaXZlIGZyb20gdGhpcyBjbGFzcy5cbiAgLy9cbiAgLy8gRG8gbm90IGdpdmUgdGhpcyBjb25zdHJ1Y3RvciBhbiBpbXBsZW1lbnRhdGlvbi5cbiAgLy8gRG9pbmcgc28gbWFrZXMgaXQgaGFyZCB0byBtb2NrIGNsYXNzZXMgdGhhdCBkZXJpdmUgZnJvbSB0aGlzIGNsYXNzLlxuICAvLyBVc2UgZ2V0dGVyIHByb3BlcnRpZXMgaW5zdGVhZC4gRm9yIGV4YW1wbGUsIHNlZSBlbnRpdHlDYWNoZSRcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbnRpdHlTZXJ2aWNlc0VsZW1lbnRzOiBFbnRpdHlTZXJ2aWNlc0VsZW1lbnRzKSB7fVxuXG4gIC8vICNyZWdpb24gRW50aXR5U2VydmljZXNFbGVtZW50LWJhc2VkIHByb3BlcnRpZXNcblxuICAvKiogT2JzZXJ2YWJsZSBvZiBlcnJvciBFbnRpdHlBY3Rpb25zIChlLmcuIFFVRVJZX0FMTF9FUlJPUikgZm9yIGFsbCBlbnRpdHkgdHlwZXMgKi9cbiAgZ2V0IGVudGl0eUFjdGlvbkVycm9ycyQoKTogT2JzZXJ2YWJsZTxFbnRpdHlBY3Rpb24+IHtcbiAgICByZXR1cm4gdGhpcy5lbnRpdHlTZXJ2aWNlc0VsZW1lbnRzLmVudGl0eUFjdGlvbkVycm9ycyQ7XG4gIH1cblxuICAvKiogT2JzZXJ2YWJsZSBvZiB0aGUgZW50aXJlIGVudGl0eSBjYWNoZSAqL1xuICBnZXQgZW50aXR5Q2FjaGUkKCk6IE9ic2VydmFibGU8RW50aXR5Q2FjaGU+IHwgU3RvcmU8RW50aXR5Q2FjaGU+IHtcbiAgICByZXR1cm4gdGhpcy5lbnRpdHlTZXJ2aWNlc0VsZW1lbnRzLmVudGl0eUNhY2hlJDtcbiAgfVxuXG4gIC8qKiBGYWN0b3J5IHRvIGNyZWF0ZSBhIGRlZmF1bHQgaW5zdGFuY2Ugb2YgYW4gRW50aXR5Q29sbGVjdGlvblNlcnZpY2UgKi9cbiAgZ2V0IGVudGl0eUNvbGxlY3Rpb25TZXJ2aWNlRmFjdG9yeSgpOiBFbnRpdHlDb2xsZWN0aW9uU2VydmljZUZhY3Rvcnkge1xuICAgIHJldHVybiB0aGlzLmVudGl0eVNlcnZpY2VzRWxlbWVudHMuZW50aXR5Q29sbGVjdGlvblNlcnZpY2VGYWN0b3J5O1xuICB9XG5cbiAgLyoqXG4gICAqIEFjdGlvbnMgc2Nhbm5lZCBieSB0aGUgc3RvcmUgYWZ0ZXIgaXQgcHJvY2Vzc2VkIHRoZW0gd2l0aCByZWR1Y2Vycy5cbiAgICogQSByZXBsYXkgb2JzZXJ2YWJsZSBvZiB0aGUgbW9zdCByZWNlbnQgYWN0aW9uIHJlZHVjZWQgYnkgdGhlIHN0b3JlLlxuICAgKi9cbiAgZ2V0IHJlZHVjZWRBY3Rpb25zJCgpOiBPYnNlcnZhYmxlPEFjdGlvbj4ge1xuICAgIHJldHVybiB0aGlzLmVudGl0eVNlcnZpY2VzRWxlbWVudHMucmVkdWNlZEFjdGlvbnMkO1xuICB9XG5cbiAgLyoqIFRoZSBuZ3J4IHN0b3JlLCBzY29wZWQgdG8gdGhlIEVudGl0eUNhY2hlICovXG4gIHByb3RlY3RlZCBnZXQgc3RvcmUoKTogU3RvcmU8RW50aXR5Q2FjaGU+IHtcbiAgICByZXR1cm4gdGhpcy5lbnRpdHlTZXJ2aWNlc0VsZW1lbnRzLnN0b3JlO1xuICB9XG5cbiAgLy8gI2VuZHJlZ2lvbiBFbnRpdHlTZXJ2aWNlc0VsZW1lbnQtYmFzZWQgcHJvcGVydGllc1xuXG4gIC8qKiBEaXNwYXRjaCBhbnkgYWN0aW9uIHRvIHRoZSBzdG9yZSAqL1xuICBkaXNwYXRjaChhY3Rpb246IEFjdGlvbikge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goYWN0aW9uKTtcbiAgfVxuXG4gIC8qKiBSZWdpc3RyeSBvZiBFbnRpdHlDb2xsZWN0aW9uU2VydmljZSBpbnN0YW5jZXMgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBFbnRpdHlDb2xsZWN0aW9uU2VydmljZXM6IEVudGl0eUNvbGxlY3Rpb25TZXJ2aWNlTWFwID0ge307XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIG5ldyBkZWZhdWx0IGluc3RhbmNlIG9mIGFuIEVudGl0eUNvbGxlY3Rpb25TZXJ2aWNlLlxuICAgKiBQcmVmZXIgZ2V0RW50aXR5Q29sbGVjdGlvblNlcnZpY2UoKSB1bmxlc3MgeW91IHJlYWxseSB3YW50IGEgbmV3IGRlZmF1bHQgaW5zdGFuY2UuXG4gICAqIFRoaXMgb25lIHdpbGwgTk9UIGJlIHJlZ2lzdGVyZWQgd2l0aCBFbnRpdHlTZXJ2aWNlcyFcbiAgICogQHBhcmFtIGVudGl0eU5hbWUge3N0cmluZ30gTmFtZSBvZiB0aGUgZW50aXR5IHR5cGUgb2YgdGhlIHNlcnZpY2VcbiAgICovXG4gIHByb3RlY3RlZCBjcmVhdGVFbnRpdHlDb2xsZWN0aW9uU2VydmljZTxcbiAgICBULFxuICAgIFMkIGV4dGVuZHMgRW50aXR5U2VsZWN0b3JzJDxUPiA9IEVudGl0eVNlbGVjdG9ycyQ8VD5cbiAgPihlbnRpdHlOYW1lOiBzdHJpbmcpOiBFbnRpdHlDb2xsZWN0aW9uU2VydmljZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMuZW50aXR5Q29sbGVjdGlvblNlcnZpY2VGYWN0b3J5LmNyZWF0ZTxULCBTJD4oZW50aXR5TmFtZSk7XG4gIH1cblxuICAvKiogR2V0IChvciBjcmVhdGUpIHRoZSBzaW5nbGV0b24gaW5zdGFuY2Ugb2YgYW4gRW50aXR5Q29sbGVjdGlvblNlcnZpY2VcbiAgICogQHBhcmFtIGVudGl0eU5hbWUge3N0cmluZ30gTmFtZSBvZiB0aGUgZW50aXR5IHR5cGUgb2YgdGhlIHNlcnZpY2VcbiAgICovXG4gIGdldEVudGl0eUNvbGxlY3Rpb25TZXJ2aWNlPFxuICAgIFQsXG4gICAgUyQgZXh0ZW5kcyBFbnRpdHlTZWxlY3RvcnMkPFQ+ID0gRW50aXR5U2VsZWN0b3JzJDxUPlxuICA+KGVudGl0eU5hbWU6IHN0cmluZyk6IEVudGl0eUNvbGxlY3Rpb25TZXJ2aWNlPFQ+IHtcbiAgICBsZXQgc2VydmljZSA9IHRoaXMuRW50aXR5Q29sbGVjdGlvblNlcnZpY2VzW2VudGl0eU5hbWVdO1xuICAgIGlmICghc2VydmljZSkge1xuICAgICAgc2VydmljZSA9IHRoaXMuY3JlYXRlRW50aXR5Q29sbGVjdGlvblNlcnZpY2U8VCwgUyQ+KGVudGl0eU5hbWUpO1xuICAgICAgdGhpcy5FbnRpdHlDb2xsZWN0aW9uU2VydmljZXNbZW50aXR5TmFtZV0gPSBzZXJ2aWNlO1xuICAgIH1cbiAgICByZXR1cm4gc2VydmljZTtcbiAgfVxuXG4gIC8qKiBSZWdpc3RlciBhbiBFbnRpdHlDb2xsZWN0aW9uU2VydmljZSB1bmRlciBpdHMgZW50aXR5IHR5cGUgbmFtZS5cbiAgICogV2lsbCByZXBsYWNlIGEgcHJlLWV4aXN0aW5nIHNlcnZpY2UgZm9yIHRoYXQgdHlwZS5cbiAgICogQHBhcmFtIHNlcnZpY2Uge0VudGl0eUNvbGxlY3Rpb25TZXJ2aWNlfSBUaGUgZW50aXR5IHNlcnZpY2VcbiAgICogQHBhcmFtIHNlcnZpY2VOYW1lIHtzdHJpbmd9IG9wdGlvbmFsIHNlcnZpY2UgbmFtZSB0byB1c2UgaW5zdGVhZCBvZiB0aGUgc2VydmljZSdzIGVudGl0eU5hbWVcbiAgICovXG4gIHJlZ2lzdGVyRW50aXR5Q29sbGVjdGlvblNlcnZpY2U8VD4oXG4gICAgc2VydmljZTogRW50aXR5Q29sbGVjdGlvblNlcnZpY2U8VD4sXG4gICAgc2VydmljZU5hbWU/OiBzdHJpbmdcbiAgKSB7XG4gICAgdGhpcy5FbnRpdHlDb2xsZWN0aW9uU2VydmljZXNbc2VydmljZU5hbWUgfHwgc2VydmljZS5lbnRpdHlOYW1lXSA9IHNlcnZpY2U7XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXIgZW50aXR5IHNlcnZpY2VzIGZvciBzZXZlcmFsIGVudGl0eSB0eXBlcyBhdCBvbmNlLlxuICAgKiBXaWxsIHJlcGxhY2UgYSBwcmUtZXhpc3Rpbmcgc2VydmljZSBmb3IgdGhhdCB0eXBlLlxuICAgKiBAcGFyYW0gZW50aXR5Q29sbGVjdGlvblNlcnZpY2VzIHtFbnRpdHlDb2xsZWN0aW9uU2VydmljZU1hcCB8IEVudGl0eUNvbGxlY3Rpb25TZXJ2aWNlPGFueT5bXX1cbiAgICogRW50aXR5Q29sbGVjdGlvblNlcnZpY2VzIHRvIHJlZ2lzdGVyLCBlaXRoZXIgYXMgYSBtYXAgb3IgYW4gYXJyYXlcbiAgICovXG4gIHJlZ2lzdGVyRW50aXR5Q29sbGVjdGlvblNlcnZpY2VzKFxuICAgIGVudGl0eUNvbGxlY3Rpb25TZXJ2aWNlczpcbiAgICAgIHwgRW50aXR5Q29sbGVjdGlvblNlcnZpY2VNYXBcbiAgICAgIHwgRW50aXR5Q29sbGVjdGlvblNlcnZpY2U8YW55PltdXG4gICk6IHZvaWQge1xuICAgIGlmIChBcnJheS5pc0FycmF5KGVudGl0eUNvbGxlY3Rpb25TZXJ2aWNlcykpIHtcbiAgICAgIGVudGl0eUNvbGxlY3Rpb25TZXJ2aWNlcy5mb3JFYWNoKChzZXJ2aWNlKSA9PlxuICAgICAgICB0aGlzLnJlZ2lzdGVyRW50aXR5Q29sbGVjdGlvblNlcnZpY2Uoc2VydmljZSlcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIE9iamVjdC5rZXlzKGVudGl0eUNvbGxlY3Rpb25TZXJ2aWNlcyB8fCB7fSkuZm9yRWFjaCgoc2VydmljZU5hbWUpID0+IHtcbiAgICAgICAgdGhpcy5yZWdpc3RlckVudGl0eUNvbGxlY3Rpb25TZXJ2aWNlKFxuICAgICAgICAgIGVudGl0eUNvbGxlY3Rpb25TZXJ2aWNlc1tzZXJ2aWNlTmFtZV0sXG4gICAgICAgICAgc2VydmljZU5hbWVcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { Store } from '@ngrx/store';
|
|
3
|
-
import { EntityDispatcherFactory } from '../dispatchers/entity-dispatcher-factory';
|
|
4
|
-
import { EntitySelectors$Factory } from '../selectors/entity-selectors$';
|
|
5
|
-
import { EntityCollectionServiceFactory } from './entity-collection-service-factory';
|
|
6
|
-
/** Core ingredients of an EntityServices class */
|
|
7
|
-
export class EntityServicesElements {
|
|
8
|
-
constructor(
|
|
9
|
-
/**
|
|
10
|
-
* Creates EntityCollectionService instances for
|
|
11
|
-
* a cached collection of T entities in the ngrx store.
|
|
12
|
-
*/
|
|
13
|
-
entityCollectionServiceFactory,
|
|
14
|
-
/** Creates EntityDispatchers for entity collections */
|
|
15
|
-
entityDispatcherFactory,
|
|
16
|
-
/** Creates observable EntitySelectors$ for entity collections. */
|
|
17
|
-
entitySelectors$Factory,
|
|
18
|
-
/** The ngrx store, scoped to the EntityCache */
|
|
19
|
-
store) {
|
|
20
|
-
this.entityCollectionServiceFactory = entityCollectionServiceFactory;
|
|
21
|
-
this.store = store;
|
|
22
|
-
this.entityActionErrors$ = entitySelectors$Factory.entityActionErrors$;
|
|
23
|
-
this.entityCache$ = entitySelectors$Factory.entityCache$;
|
|
24
|
-
this.reducedActions$ = entityDispatcherFactory.reducedActions$;
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
EntityServicesElements.decorators = [
|
|
28
|
-
{ type: Injectable }
|
|
29
|
-
];
|
|
30
|
-
/** @nocollapse */
|
|
31
|
-
EntityServicesElements.ctorParameters = () => [
|
|
32
|
-
{ type: EntityCollectionServiceFactory },
|
|
33
|
-
{ type: EntityDispatcherFactory },
|
|
34
|
-
{ type: EntitySelectors$Factory },
|
|
35
|
-
{ type: Store }
|
|
36
|
-
];
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LXNlcnZpY2VzLWVsZW1lbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbW9kdWxlcy9kYXRhL3NyYy9lbnRpdHktc2VydmljZXMvZW50aXR5LXNlcnZpY2VzLWVsZW1lbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFVLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUs1QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNuRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN6RSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUVyRixrREFBa0Q7QUFFbEQsTUFBTSxPQUFPLHNCQUFzQjtJQUNqQztJQUNFOzs7T0FHRztJQUNhLDhCQUE4RDtJQUM5RSx1REFBdUQ7SUFDdkQsdUJBQWdEO0lBQ2hELGtFQUFrRTtJQUNsRSx1QkFBZ0Q7SUFDaEQsZ0RBQWdEO0lBQ2hDLEtBQXlCO1FBTnpCLG1DQUE4QixHQUE5Qiw4QkFBOEIsQ0FBZ0M7UUFNOUQsVUFBSyxHQUFMLEtBQUssQ0FBb0I7UUFFekMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLHVCQUF1QixDQUFDLG1CQUFtQixDQUFDO1FBQ3ZFLElBQUksQ0FBQyxZQUFZLEdBQUcsdUJBQXVCLENBQUMsWUFBWSxDQUFDO1FBQ3pELElBQUksQ0FBQyxlQUFlLEdBQUcsdUJBQXVCLENBQUMsZUFBZSxDQUFDO0lBQ2pFLENBQUM7OztZQWxCRixVQUFVOzs7O1lBSEYsOEJBQThCO1lBRjlCLHVCQUF1QjtZQUN2Qix1QkFBdUI7WUFOZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aW9uLCBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgRW50aXR5QWN0aW9uIH0gZnJvbSAnLi4vYWN0aW9ucy9lbnRpdHktYWN0aW9uJztcbmltcG9ydCB7IEVudGl0eUNhY2hlIH0gZnJvbSAnLi4vcmVkdWNlcnMvZW50aXR5LWNhY2hlJztcbmltcG9ydCB7IEVudGl0eURpc3BhdGNoZXJGYWN0b3J5IH0gZnJvbSAnLi4vZGlzcGF0Y2hlcnMvZW50aXR5LWRpc3BhdGNoZXItZmFjdG9yeSc7XG5pbXBvcnQgeyBFbnRpdHlTZWxlY3RvcnMkRmFjdG9yeSB9IGZyb20gJy4uL3NlbGVjdG9ycy9lbnRpdHktc2VsZWN0b3JzJCc7XG5pbXBvcnQgeyBFbnRpdHlDb2xsZWN0aW9uU2VydmljZUZhY3RvcnkgfSBmcm9tICcuL2VudGl0eS1jb2xsZWN0aW9uLXNlcnZpY2UtZmFjdG9yeSc7XG5cbi8qKiBDb3JlIGluZ3JlZGllbnRzIG9mIGFuIEVudGl0eVNlcnZpY2VzIGNsYXNzICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRW50aXR5U2VydmljZXNFbGVtZW50cyB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgRW50aXR5Q29sbGVjdGlvblNlcnZpY2UgaW5zdGFuY2VzIGZvclxuICAgICAqIGEgY2FjaGVkIGNvbGxlY3Rpb24gb2YgVCBlbnRpdGllcyBpbiB0aGUgbmdyeCBzdG9yZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgZW50aXR5Q29sbGVjdGlvblNlcnZpY2VGYWN0b3J5OiBFbnRpdHlDb2xsZWN0aW9uU2VydmljZUZhY3RvcnksXG4gICAgLyoqIENyZWF0ZXMgRW50aXR5RGlzcGF0Y2hlcnMgZm9yIGVudGl0eSBjb2xsZWN0aW9ucyAqL1xuICAgIGVudGl0eURpc3BhdGNoZXJGYWN0b3J5OiBFbnRpdHlEaXNwYXRjaGVyRmFjdG9yeSxcbiAgICAvKiogQ3JlYXRlcyBvYnNlcnZhYmxlIEVudGl0eVNlbGVjdG9ycyQgZm9yIGVudGl0eSBjb2xsZWN0aW9ucy4gKi9cbiAgICBlbnRpdHlTZWxlY3RvcnMkRmFjdG9yeTogRW50aXR5U2VsZWN0b3JzJEZhY3RvcnksXG4gICAgLyoqIFRoZSBuZ3J4IHN0b3JlLCBzY29wZWQgdG8gdGhlIEVudGl0eUNhY2hlICovXG4gICAgcHVibGljIHJlYWRvbmx5IHN0b3JlOiBTdG9yZTxFbnRpdHlDYWNoZT5cbiAgKSB7XG4gICAgdGhpcy5lbnRpdHlBY3Rpb25FcnJvcnMkID0gZW50aXR5U2VsZWN0b3JzJEZhY3RvcnkuZW50aXR5QWN0aW9uRXJyb3JzJDtcbiAgICB0aGlzLmVudGl0eUNhY2hlJCA9IGVudGl0eVNlbGVjdG9ycyRGYWN0b3J5LmVudGl0eUNhY2hlJDtcbiAgICB0aGlzLnJlZHVjZWRBY3Rpb25zJCA9IGVudGl0eURpc3BhdGNoZXJGYWN0b3J5LnJlZHVjZWRBY3Rpb25zJDtcbiAgfVxuXG4gIC8qKiBPYnNlcnZhYmxlIG9mIGVycm9yIEVudGl0eUFjdGlvbnMgKGUuZy4gUVVFUllfQUxMX0VSUk9SKSBmb3IgYWxsIGVudGl0eSB0eXBlcyAqL1xuICByZWFkb25seSBlbnRpdHlBY3Rpb25FcnJvcnMkOiBPYnNlcnZhYmxlPEVudGl0eUFjdGlvbj47XG5cbiAgLyoqIE9ic2VydmFibGUgb2YgdGhlIGVudGlyZSBlbnRpdHkgY2FjaGUgKi9cbiAgcmVhZG9ubHkgZW50aXR5Q2FjaGUkOiBPYnNlcnZhYmxlPEVudGl0eUNhY2hlPiB8IFN0b3JlPEVudGl0eUNhY2hlPjtcblxuICAvKipcbiAgICogQWN0aW9ucyBzY2FubmVkIGJ5IHRoZSBzdG9yZSBhZnRlciBpdCBwcm9jZXNzZWQgdGhlbSB3aXRoIHJlZHVjZXJzLlxuICAgKiBBIHJlcGxheSBvYnNlcnZhYmxlIG9mIHRoZSBtb3N0IHJlY2VudCBhY3Rpb24gcmVkdWNlZCBieSB0aGUgc3RvcmUuXG4gICAqL1xuICByZWFkb25seSByZWR1Y2VkQWN0aW9ucyQ6IE9ic2VydmFibGU8QWN0aW9uPjtcbn1cbiJdfQ==
|