@ngrx/data 11.0.0-rc.0 → 11.1.1
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/bundles/ngrx-data.umd.js +902 -4475
- package/bundles/ngrx-data.umd.js.map +1 -1
- package/bundles/ngrx-data.umd.min.js +15 -1
- package/bundles/ngrx-data.umd.min.js.map +1 -1
- package/esm2015/index.js +2 -7
- package/esm2015/ngrx-data.js +2 -7
- package/esm2015/public_api.js +2 -7
- package/esm2015/src/actions/entity-action-factory.js +6 -31
- package/esm2015/src/actions/entity-action-guard.js +23 -130
- package/esm2015/src/actions/entity-action-operators.js +11 -64
- package/esm2015/src/actions/entity-action.js +2 -68
- package/esm2015/src/actions/entity-cache-action.js +14 -125
- package/esm2015/src/actions/entity-cache-change-set.js +15 -126
- package/esm2015/src/actions/entity-op.js +70 -89
- package/esm2015/src/actions/merge-strategy.js +8 -16
- package/esm2015/src/actions/update-response-data.js +2 -36
- package/esm2015/src/dataservices/data-service-error.js +1 -34
- package/esm2015/src/dataservices/default-data-service-config.js +1 -41
- package/esm2015/src/dataservices/default-data.service.js +5 -163
- package/esm2015/src/dataservices/entity-cache-data.service.js +17 -103
- package/esm2015/src/dataservices/entity-data.service.js +5 -31
- package/esm2015/src/dataservices/http-url-generator.js +11 -97
- package/esm2015/src/dataservices/interfaces.js +2 -71
- package/esm2015/src/dataservices/persistence-result-handler.service.js +7 -66
- package/esm2015/src/dispatchers/entity-cache-dispatcher.js +40 -97
- package/esm2015/src/dispatchers/entity-commands.js +2 -247
- package/esm2015/src/dispatchers/entity-dispatcher-base.js +65 -287
- package/esm2015/src/dispatchers/entity-dispatcher-default-options.js +6 -48
- package/esm2015/src/dispatchers/entity-dispatcher-factory.js +2 -64
- package/esm2015/src/dispatchers/entity-dispatcher.js +1 -74
- package/esm2015/src/effects/entity-cache-effects.js +21 -135
- package/esm2015/src/effects/entity-effects-scheduler.js +2 -10
- package/esm2015/src/effects/entity-effects.js +18 -128
- package/esm2015/src/entity-data-without-effects.module.js +7 -79
- package/esm2015/src/entity-data.module.js +3 -25
- package/esm2015/src/entity-metadata/entity-definition.js +2 -42
- package/esm2015/src/entity-metadata/entity-definition.service.js +14 -52
- package/esm2015/src/entity-metadata/entity-filters.js +5 -33
- package/esm2015/src/entity-metadata/entity-metadata.js +1 -34
- package/esm2015/src/entity-services/entity-collection-service-base.js +56 -208
- package/esm2015/src/entity-services/entity-collection-service-elements-factory.js +3 -60
- package/esm2015/src/entity-services/entity-collection-service-factory.js +5 -20
- package/esm2015/src/entity-services/entity-collection-service.js +2 -53
- package/esm2015/src/entity-services/entity-services-base.js +18 -78
- package/esm2015/src/entity-services/entity-services-elements.js +9 -44
- package/esm2015/src/entity-services/entity-services.js +1 -70
- package/esm2015/src/index.js +1 -6
- package/esm2015/src/reducers/constants.js +1 -11
- package/esm2015/src/reducers/entity-cache-reducer.js +33 -175
- package/esm2015/src/reducers/entity-cache.js +2 -10
- package/esm2015/src/reducers/entity-change-tracker-base.js +115 -262
- package/esm2015/src/reducers/entity-change-tracker.js +2 -179
- package/esm2015/src/reducers/entity-collection-creator.js +5 -29
- package/esm2015/src/reducers/entity-collection-reducer-methods.js +44 -503
- package/esm2015/src/reducers/entity-collection-reducer-registry.js +8 -50
- package/esm2015/src/reducers/entity-collection-reducer.js +5 -34
- package/esm2015/src/reducers/entity-collection.js +9 -65
- package/esm2015/src/selectors/entity-cache-selector.js +1 -12
- package/esm2015/src/selectors/entity-selectors$.js +11 -137
- package/esm2015/src/selectors/entity-selectors.js +23 -262
- package/esm2015/src/utils/correlation-id-generator.js +4 -30
- package/esm2015/src/utils/default-logger.js +1 -21
- package/esm2015/src/utils/default-pluralizer.js +3 -24
- package/esm2015/src/utils/guid-fns.js +9 -41
- package/esm2015/src/utils/interfaces.js +1 -49
- package/esm2015/src/utils/utilities.js +6 -25
- package/fesm2015/ngrx-data.js +721 -4410
- package/fesm2015/ngrx-data.js.map +1 -1
- package/package.json +5 -5
- package/schematics-core/index.js +4 -1
- package/schematics-core/index.js.map +1 -1
- package/schematics-core/utility/ast-utils.js +127 -1
- package/schematics-core/utility/ast-utils.js.map +1 -1
- package/schematics-core/utility/config.js +1 -1
- package/schematics-core/utility/config.js.map +1 -1
- package/schematics-core/utility/find-component.js +101 -0
- package/schematics-core/utility/find-component.js.map +1 -0
- package/schematics-core/utility/libs-version.js +1 -1
- package/schematics-core/utility/libs-version.js.map +1 -1
- package/schematics-core/utility/project.js +4 -2
- package/schematics-core/utility/project.js.map +1 -1
- package/CHANGELOG.md +0 -3
- package/esm2015/index.ngsummary.json +0 -1
- package/esm2015/ngrx-data.ngsummary.json +0 -1
- package/esm2015/public_api.ngsummary.json +0 -1
- package/esm2015/src/actions/entity-action-factory.ngsummary.json +0 -1
- package/esm2015/src/actions/entity-action-guard.ngsummary.json +0 -1
- package/esm2015/src/actions/entity-action-operators.ngsummary.json +0 -1
- package/esm2015/src/actions/entity-action.ngsummary.json +0 -1
- package/esm2015/src/actions/entity-cache-action.ngsummary.json +0 -1
- package/esm2015/src/actions/entity-cache-change-set.ngsummary.json +0 -1
- package/esm2015/src/actions/entity-op.ngsummary.json +0 -1
- package/esm2015/src/actions/merge-strategy.ngsummary.json +0 -1
- package/esm2015/src/actions/update-response-data.ngsummary.json +0 -1
- package/esm2015/src/dataservices/data-service-error.ngsummary.json +0 -1
- package/esm2015/src/dataservices/default-data-service-config.ngsummary.json +0 -1
- package/esm2015/src/dataservices/default-data.service.ngsummary.json +0 -1
- package/esm2015/src/dataservices/entity-cache-data.service.ngsummary.json +0 -1
- package/esm2015/src/dataservices/entity-data.service.ngsummary.json +0 -1
- package/esm2015/src/dataservices/http-url-generator.ngsummary.json +0 -1
- package/esm2015/src/dataservices/interfaces.ngsummary.json +0 -1
- package/esm2015/src/dataservices/persistence-result-handler.service.ngsummary.json +0 -1
- package/esm2015/src/dispatchers/entity-cache-dispatcher.ngsummary.json +0 -1
- package/esm2015/src/dispatchers/entity-commands.ngsummary.json +0 -1
- package/esm2015/src/dispatchers/entity-dispatcher-base.ngsummary.json +0 -1
- package/esm2015/src/dispatchers/entity-dispatcher-default-options.ngsummary.json +0 -1
- package/esm2015/src/dispatchers/entity-dispatcher-factory.ngsummary.json +0 -1
- package/esm2015/src/dispatchers/entity-dispatcher.ngsummary.json +0 -1
- package/esm2015/src/effects/entity-cache-effects.ngsummary.json +0 -1
- package/esm2015/src/effects/entity-effects-scheduler.ngsummary.json +0 -1
- package/esm2015/src/effects/entity-effects.ngsummary.json +0 -1
- package/esm2015/src/entity-data-without-effects.module.ngfactory.js +0 -36
- package/esm2015/src/entity-data-without-effects.module.ngsummary.json +0 -1
- package/esm2015/src/entity-data.module.ngfactory.js +0 -48
- package/esm2015/src/entity-data.module.ngsummary.json +0 -1
- package/esm2015/src/entity-metadata/entity-definition.ngsummary.json +0 -1
- package/esm2015/src/entity-metadata/entity-definition.service.ngsummary.json +0 -1
- package/esm2015/src/entity-metadata/entity-filters.ngsummary.json +0 -1
- package/esm2015/src/entity-metadata/entity-metadata.ngsummary.json +0 -1
- package/esm2015/src/entity-services/entity-collection-service-base.ngsummary.json +0 -1
- package/esm2015/src/entity-services/entity-collection-service-elements-factory.ngsummary.json +0 -1
- package/esm2015/src/entity-services/entity-collection-service-factory.ngsummary.json +0 -1
- package/esm2015/src/entity-services/entity-collection-service.ngsummary.json +0 -1
- package/esm2015/src/entity-services/entity-services-base.ngsummary.json +0 -1
- package/esm2015/src/entity-services/entity-services-elements.ngsummary.json +0 -1
- package/esm2015/src/entity-services/entity-services.ngsummary.json +0 -1
- package/esm2015/src/index.ngsummary.json +0 -1
- package/esm2015/src/reducers/constants.ngsummary.json +0 -1
- package/esm2015/src/reducers/entity-cache-reducer.ngsummary.json +0 -1
- package/esm2015/src/reducers/entity-cache.ngsummary.json +0 -1
- package/esm2015/src/reducers/entity-change-tracker-base.ngsummary.json +0 -1
- package/esm2015/src/reducers/entity-change-tracker.ngsummary.json +0 -1
- package/esm2015/src/reducers/entity-collection-creator.ngsummary.json +0 -1
- package/esm2015/src/reducers/entity-collection-reducer-methods.ngsummary.json +0 -1
- package/esm2015/src/reducers/entity-collection-reducer-registry.ngsummary.json +0 -1
- package/esm2015/src/reducers/entity-collection-reducer.ngsummary.json +0 -1
- package/esm2015/src/reducers/entity-collection.ngsummary.json +0 -1
- package/esm2015/src/selectors/entity-cache-selector.ngsummary.json +0 -1
- package/esm2015/src/selectors/entity-selectors$.ngsummary.json +0 -1
- package/esm2015/src/selectors/entity-selectors.ngsummary.json +0 -1
- package/esm2015/src/utils/correlation-id-generator.ngsummary.json +0 -1
- package/esm2015/src/utils/default-logger.ngsummary.json +0 -1
- package/esm2015/src/utils/default-pluralizer.ngsummary.json +0 -1
- package/esm2015/src/utils/guid-fns.ngsummary.json +0 -1
- package/esm2015/src/utils/interfaces.ngsummary.json +0 -1
- package/esm2015/src/utils/utilities.ngsummary.json +0 -1
- package/schematics/ng-add/files/entity-metadata.ts.template +0 -10
- package/src/entity-data-without-effects.module.ngfactory.d.ts +0 -3
- package/src/entity-data.module.ngfactory.d.ts +0 -3
|
@@ -1,68 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
* Generated from: src/actions/entity-action.ts
|
|
4
|
-
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
5
|
-
*/
|
|
6
|
-
/**
|
|
7
|
-
* Action concerning an entity collection.
|
|
8
|
-
* @record
|
|
9
|
-
* @template P
|
|
10
|
-
*/
|
|
11
|
-
export function EntityAction() { }
|
|
12
|
-
if (false) {
|
|
13
|
-
/** @type {?} */
|
|
14
|
-
EntityAction.prototype.type;
|
|
15
|
-
/** @type {?} */
|
|
16
|
-
EntityAction.prototype.payload;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Options of an EntityAction
|
|
20
|
-
* @record
|
|
21
|
-
*/
|
|
22
|
-
export function EntityActionOptions() { }
|
|
23
|
-
if (false) {
|
|
24
|
-
/**
|
|
25
|
-
* Correlate related EntityActions, particularly related saves. Must be serializable.
|
|
26
|
-
* @type {?|undefined}
|
|
27
|
-
*/
|
|
28
|
-
EntityActionOptions.prototype.correlationId;
|
|
29
|
-
/**
|
|
30
|
-
* True if should perform action optimistically (before server responds)
|
|
31
|
-
* @type {?|undefined}
|
|
32
|
-
*/
|
|
33
|
-
EntityActionOptions.prototype.isOptimistic;
|
|
34
|
-
/** @type {?|undefined} */
|
|
35
|
-
EntityActionOptions.prototype.mergeStrategy;
|
|
36
|
-
/**
|
|
37
|
-
* The tag to use in the action's type. The entityName if no tag specified.
|
|
38
|
-
* @type {?|undefined}
|
|
39
|
-
*/
|
|
40
|
-
EntityActionOptions.prototype.tag;
|
|
41
|
-
/**
|
|
42
|
-
* The action was determined (usually by a reducer) to be in error.
|
|
43
|
-
* Downstream effects should not process but rather treat it as an error.
|
|
44
|
-
* @type {?|undefined}
|
|
45
|
-
*/
|
|
46
|
-
EntityActionOptions.prototype.error;
|
|
47
|
-
/**
|
|
48
|
-
* Downstream effects should skip processing this action but should return
|
|
49
|
-
* an innocuous Observable<Action> of success.
|
|
50
|
-
* @type {?|undefined}
|
|
51
|
-
*/
|
|
52
|
-
EntityActionOptions.prototype.skip;
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Payload of an EntityAction
|
|
56
|
-
* @record
|
|
57
|
-
* @template P
|
|
58
|
-
*/
|
|
59
|
-
export function EntityActionPayload() { }
|
|
60
|
-
if (false) {
|
|
61
|
-
/** @type {?} */
|
|
62
|
-
EntityActionPayload.prototype.entityName;
|
|
63
|
-
/** @type {?} */
|
|
64
|
-
EntityActionPayload.prototype.entityOp;
|
|
65
|
-
/** @type {?|undefined} */
|
|
66
|
-
EntityActionPayload.prototype.data;
|
|
67
|
-
}
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWFjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi9tb2R1bGVzL2RhdGEvIiwic291cmNlcyI6WyJzcmMvYWN0aW9ucy9lbnRpdHktYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFNQSxrQ0FHQzs7O0lBRkMsNEJBQXNCOztJQUN0QiwrQkFBeUM7Ozs7OztBQUkzQyx5Q0F3QkM7Ozs7OztJQXRCQyw0Q0FBNkI7Ozs7O0lBRTdCLDJDQUFnQzs7SUFDaEMsNENBQXVDOzs7OztJQUV2QyxrQ0FBc0I7Ozs7OztJQVV0QixvQ0FBYzs7Ozs7O0lBTWQsbUNBQWU7Ozs7Ozs7QUFJakIseUNBSUM7OztJQUhDLHlDQUE0Qjs7SUFDNUIsdUNBQTRCOztJQUM1QixtQ0FBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3Rpb24gfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5cbmltcG9ydCB7IEVudGl0eU9wIH0gZnJvbSAnLi9lbnRpdHktb3AnO1xuaW1wb3J0IHsgTWVyZ2VTdHJhdGVneSB9IGZyb20gJy4vbWVyZ2Utc3RyYXRlZ3knO1xuXG4vKiogQWN0aW9uIGNvbmNlcm5pbmcgYW4gZW50aXR5IGNvbGxlY3Rpb24uICovXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eUFjdGlvbjxQID0gYW55PiBleHRlbmRzIEFjdGlvbiB7XG4gIHJlYWRvbmx5IHR5cGU6IHN0cmluZztcbiAgcmVhZG9ubHkgcGF5bG9hZDogRW50aXR5QWN0aW9uUGF5bG9hZDxQPjtcbn1cblxuLyoqIE9wdGlvbnMgb2YgYW4gRW50aXR5QWN0aW9uICovXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eUFjdGlvbk9wdGlvbnMge1xuICAvKiogQ29ycmVsYXRlIHJlbGF0ZWQgRW50aXR5QWN0aW9ucywgcGFydGljdWxhcmx5IHJlbGF0ZWQgc2F2ZXMuIE11c3QgYmUgc2VyaWFsaXphYmxlLiAqL1xuICByZWFkb25seSBjb3JyZWxhdGlvbklkPzogYW55O1xuICAvKiogVHJ1ZSBpZiBzaG91bGQgcGVyZm9ybSBhY3Rpb24gb3B0aW1pc3RpY2FsbHkgKGJlZm9yZSBzZXJ2ZXIgcmVzcG9uZHMpICovXG4gIHJlYWRvbmx5IGlzT3B0aW1pc3RpYz86IGJvb2xlYW47XG4gIHJlYWRvbmx5IG1lcmdlU3RyYXRlZ3k/OiBNZXJnZVN0cmF0ZWd5O1xuICAvKiogVGhlIHRhZyB0byB1c2UgaW4gdGhlIGFjdGlvbidzIHR5cGUuIFRoZSBlbnRpdHlOYW1lIGlmIG5vIHRhZyBzcGVjaWZpZWQuICovXG4gIHJlYWRvbmx5IHRhZz86IHN0cmluZztcblxuICAvLyBNdXRhYmxlIGFjdGlvbnMgYXJlIEJBRC5cbiAgLy8gVW5mb3J0dW5hdGVseSwgdGhlc2UgbXV0YXRpb25zIGFyZSB0aGUgb25seSB3YXkgdG8gc3RvcCBAbmdyeC9lZmZlY3RzXG4gIC8vIGZyb20gcHJvY2Vzc2luZyB0aGVzZSBhY3Rpb25zLlxuXG4gIC8qKlxuICAgKiBUaGUgYWN0aW9uIHdhcyBkZXRlcm1pbmVkICh1c3VhbGx5IGJ5IGEgcmVkdWNlcikgdG8gYmUgaW4gZXJyb3IuXG4gICAqIERvd25zdHJlYW0gZWZmZWN0cyBzaG91bGQgbm90IHByb2Nlc3MgYnV0IHJhdGhlciB0cmVhdCBpdCBhcyBhbiBlcnJvci5cbiAgICovXG4gIGVycm9yPzogRXJyb3I7XG5cbiAgLyoqXG4gICAqIERvd25zdHJlYW0gZWZmZWN0cyBzaG91bGQgc2tpcCBwcm9jZXNzaW5nIHRoaXMgYWN0aW9uIGJ1dCBzaG91bGQgcmV0dXJuXG4gICAqIGFuIGlubm9jdW91cyBPYnNlcnZhYmxlPEFjdGlvbj4gb2Ygc3VjY2Vzcy5cbiAgICovXG4gIHNraXA/OiBib29sZWFuO1xufVxuXG4vKiogUGF5bG9hZCBvZiBhbiBFbnRpdHlBY3Rpb24gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5QWN0aW9uUGF5bG9hZDxQID0gYW55PiBleHRlbmRzIEVudGl0eUFjdGlvbk9wdGlvbnMge1xuICByZWFkb25seSBlbnRpdHlOYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGVudGl0eU9wOiBFbnRpdHlPcDtcbiAgcmVhZG9ubHkgZGF0YT86IFA7XG59XG4iXX0=
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWFjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvZGF0YS9zcmMvYWN0aW9ucy9lbnRpdHktYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3Rpb24gfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5cbmltcG9ydCB7IEVudGl0eU9wIH0gZnJvbSAnLi9lbnRpdHktb3AnO1xuaW1wb3J0IHsgTWVyZ2VTdHJhdGVneSB9IGZyb20gJy4vbWVyZ2Utc3RyYXRlZ3knO1xuXG4vKiogQWN0aW9uIGNvbmNlcm5pbmcgYW4gZW50aXR5IGNvbGxlY3Rpb24uICovXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eUFjdGlvbjxQID0gYW55PiBleHRlbmRzIEFjdGlvbiB7XG4gIHJlYWRvbmx5IHR5cGU6IHN0cmluZztcbiAgcmVhZG9ubHkgcGF5bG9hZDogRW50aXR5QWN0aW9uUGF5bG9hZDxQPjtcbn1cblxuLyoqIE9wdGlvbnMgb2YgYW4gRW50aXR5QWN0aW9uICovXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eUFjdGlvbk9wdGlvbnMge1xuICAvKiogQ29ycmVsYXRlIHJlbGF0ZWQgRW50aXR5QWN0aW9ucywgcGFydGljdWxhcmx5IHJlbGF0ZWQgc2F2ZXMuIE11c3QgYmUgc2VyaWFsaXphYmxlLiAqL1xuICByZWFkb25seSBjb3JyZWxhdGlvbklkPzogYW55O1xuICAvKiogVHJ1ZSBpZiBzaG91bGQgcGVyZm9ybSBhY3Rpb24gb3B0aW1pc3RpY2FsbHkgKGJlZm9yZSBzZXJ2ZXIgcmVzcG9uZHMpICovXG4gIHJlYWRvbmx5IGlzT3B0aW1pc3RpYz86IGJvb2xlYW47XG4gIHJlYWRvbmx5IG1lcmdlU3RyYXRlZ3k/OiBNZXJnZVN0cmF0ZWd5O1xuICAvKiogVGhlIHRhZyB0byB1c2UgaW4gdGhlIGFjdGlvbidzIHR5cGUuIFRoZSBlbnRpdHlOYW1lIGlmIG5vIHRhZyBzcGVjaWZpZWQuICovXG4gIHJlYWRvbmx5IHRhZz86IHN0cmluZztcblxuICAvLyBNdXRhYmxlIGFjdGlvbnMgYXJlIEJBRC5cbiAgLy8gVW5mb3J0dW5hdGVseSwgdGhlc2UgbXV0YXRpb25zIGFyZSB0aGUgb25seSB3YXkgdG8gc3RvcCBAbmdyeC9lZmZlY3RzXG4gIC8vIGZyb20gcHJvY2Vzc2luZyB0aGVzZSBhY3Rpb25zLlxuXG4gIC8qKlxuICAgKiBUaGUgYWN0aW9uIHdhcyBkZXRlcm1pbmVkICh1c3VhbGx5IGJ5IGEgcmVkdWNlcikgdG8gYmUgaW4gZXJyb3IuXG4gICAqIERvd25zdHJlYW0gZWZmZWN0cyBzaG91bGQgbm90IHByb2Nlc3MgYnV0IHJhdGhlciB0cmVhdCBpdCBhcyBhbiBlcnJvci5cbiAgICovXG4gIGVycm9yPzogRXJyb3I7XG5cbiAgLyoqXG4gICAqIERvd25zdHJlYW0gZWZmZWN0cyBzaG91bGQgc2tpcCBwcm9jZXNzaW5nIHRoaXMgYWN0aW9uIGJ1dCBzaG91bGQgcmV0dXJuXG4gICAqIGFuIGlubm9jdW91cyBPYnNlcnZhYmxlPEFjdGlvbj4gb2Ygc3VjY2Vzcy5cbiAgICovXG4gIHNraXA/OiBib29sZWFuO1xufVxuXG4vKiogUGF5bG9hZCBvZiBhbiBFbnRpdHlBY3Rpb24gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5QWN0aW9uUGF5bG9hZDxQID0gYW55PiBleHRlbmRzIEVudGl0eUFjdGlvbk9wdGlvbnMge1xuICByZWFkb25seSBlbnRpdHlOYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGVudGl0eU9wOiBFbnRpdHlPcDtcbiAgcmVhZG9ubHkgZGF0YT86IFA7XG59XG4iXX0=
|
|
@@ -1,30 +1,17 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @fileoverview added by tsickle
|
|
3
|
-
* Generated from: src/actions/entity-cache-action.ts
|
|
4
|
-
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
|
|
5
|
-
*/
|
|
6
1
|
export { ChangeSetOperation } from './entity-cache-change-set';
|
|
7
2
|
import { MergeStrategy } from '../actions/merge-strategy';
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
CLEAR_COLLECTIONS
|
|
11
|
-
LOAD_COLLECTIONS
|
|
12
|
-
MERGE_QUERY_SET
|
|
13
|
-
SET_ENTITY_CACHE
|
|
14
|
-
SAVE_ENTITIES
|
|
15
|
-
SAVE_ENTITIES_CANCEL
|
|
16
|
-
SAVE_ENTITIES_CANCELED
|
|
17
|
-
SAVE_ENTITIES_ERROR
|
|
18
|
-
SAVE_ENTITIES_SUCCESS
|
|
19
|
-
};
|
|
20
|
-
export { EntityCacheAction };
|
|
21
|
-
/**
|
|
22
|
-
* Hash of entities keyed by EntityCollection name,
|
|
23
|
-
* typically the result of a query that returned results from a multi-collection query
|
|
24
|
-
* that will be merged into an EntityCache via the `MergeQuerySet` action.
|
|
25
|
-
* @record
|
|
26
|
-
*/
|
|
27
|
-
export function EntityCacheQuerySet() { }
|
|
3
|
+
export var EntityCacheAction;
|
|
4
|
+
(function (EntityCacheAction) {
|
|
5
|
+
EntityCacheAction["CLEAR_COLLECTIONS"] = "@ngrx/data/entity-cache/clear-collections";
|
|
6
|
+
EntityCacheAction["LOAD_COLLECTIONS"] = "@ngrx/data/entity-cache/load-collections";
|
|
7
|
+
EntityCacheAction["MERGE_QUERY_SET"] = "@ngrx/data/entity-cache/merge-query-set";
|
|
8
|
+
EntityCacheAction["SET_ENTITY_CACHE"] = "@ngrx/data/entity-cache/set-cache";
|
|
9
|
+
EntityCacheAction["SAVE_ENTITIES"] = "@ngrx/data/entity-cache/save-entities";
|
|
10
|
+
EntityCacheAction["SAVE_ENTITIES_CANCEL"] = "@ngrx/data/entity-cache/save-entities-cancel";
|
|
11
|
+
EntityCacheAction["SAVE_ENTITIES_CANCELED"] = "@ngrx/data/entity-cache/save-entities-canceled";
|
|
12
|
+
EntityCacheAction["SAVE_ENTITIES_ERROR"] = "@ngrx/data/entity-cache/save-entities-error";
|
|
13
|
+
EntityCacheAction["SAVE_ENTITIES_SUCCESS"] = "@ngrx/data/entity-cache/save-entities-success";
|
|
14
|
+
})(EntityCacheAction || (EntityCacheAction = {}));
|
|
28
15
|
/**
|
|
29
16
|
* Clear the collections identified in the collectionSet.
|
|
30
17
|
* @param [collections] Array of names of the collections to clear.
|
|
@@ -32,21 +19,11 @@ export function EntityCacheQuerySet() { }
|
|
|
32
19
|
* @param [tag] Optional tag to identify the operation from the app perspective.
|
|
33
20
|
*/
|
|
34
21
|
export class ClearCollections {
|
|
35
|
-
/**
|
|
36
|
-
* @param {?=} collections
|
|
37
|
-
* @param {?=} tag
|
|
38
|
-
*/
|
|
39
22
|
constructor(collections, tag) {
|
|
40
23
|
this.type = EntityCacheAction.CLEAR_COLLECTIONS;
|
|
41
24
|
this.payload = { collections, tag };
|
|
42
25
|
}
|
|
43
26
|
}
|
|
44
|
-
if (false) {
|
|
45
|
-
/** @type {?} */
|
|
46
|
-
ClearCollections.prototype.payload;
|
|
47
|
-
/** @type {?} */
|
|
48
|
-
ClearCollections.prototype.type;
|
|
49
|
-
}
|
|
50
27
|
/**
|
|
51
28
|
* Create entity cache action that loads multiple entity collections at the same time.
|
|
52
29
|
* before any selectors$ observables emit.
|
|
@@ -55,21 +32,11 @@ if (false) {
|
|
|
55
32
|
* in the form of a map of entity collections.
|
|
56
33
|
*/
|
|
57
34
|
export class LoadCollections {
|
|
58
|
-
/**
|
|
59
|
-
* @param {?} collections
|
|
60
|
-
* @param {?=} tag
|
|
61
|
-
*/
|
|
62
35
|
constructor(collections, tag) {
|
|
63
36
|
this.type = EntityCacheAction.LOAD_COLLECTIONS;
|
|
64
37
|
this.payload = { collections, tag };
|
|
65
38
|
}
|
|
66
39
|
}
|
|
67
|
-
if (false) {
|
|
68
|
-
/** @type {?} */
|
|
69
|
-
LoadCollections.prototype.payload;
|
|
70
|
-
/** @type {?} */
|
|
71
|
-
LoadCollections.prototype.type;
|
|
72
|
-
}
|
|
73
40
|
/**
|
|
74
41
|
* Create entity cache action that merges entities from a query result
|
|
75
42
|
* that returned entities from multiple collections.
|
|
@@ -82,11 +49,6 @@ if (false) {
|
|
|
82
49
|
* @param [tag] Optional tag to identify the operation from the app perspective.
|
|
83
50
|
*/
|
|
84
51
|
export class MergeQuerySet {
|
|
85
|
-
/**
|
|
86
|
-
* @param {?} querySet
|
|
87
|
-
* @param {?=} mergeStrategy
|
|
88
|
-
* @param {?=} tag
|
|
89
|
-
*/
|
|
90
52
|
constructor(querySet, mergeStrategy, tag) {
|
|
91
53
|
this.type = EntityCacheAction.MERGE_QUERY_SET;
|
|
92
54
|
this.payload = {
|
|
@@ -96,12 +58,6 @@ export class MergeQuerySet {
|
|
|
96
58
|
};
|
|
97
59
|
}
|
|
98
60
|
}
|
|
99
|
-
if (false) {
|
|
100
|
-
/** @type {?} */
|
|
101
|
-
MergeQuerySet.prototype.payload;
|
|
102
|
-
/** @type {?} */
|
|
103
|
-
MergeQuerySet.prototype.type;
|
|
104
|
-
}
|
|
105
61
|
/**
|
|
106
62
|
* Create entity cache action for replacing the entire entity cache.
|
|
107
63
|
* Dangerous because brute force but useful as when re-hydrating an EntityCache
|
|
@@ -110,31 +66,14 @@ if (false) {
|
|
|
110
66
|
* @param [tag] Optional tag to identify the operation from the app perspective.
|
|
111
67
|
*/
|
|
112
68
|
export class SetEntityCache {
|
|
113
|
-
/**
|
|
114
|
-
* @param {?} cache
|
|
115
|
-
* @param {?=} tag
|
|
116
|
-
*/
|
|
117
69
|
constructor(cache, tag) {
|
|
118
70
|
this.cache = cache;
|
|
119
71
|
this.type = EntityCacheAction.SET_ENTITY_CACHE;
|
|
120
72
|
this.payload = { cache, tag };
|
|
121
73
|
}
|
|
122
74
|
}
|
|
123
|
-
if (false) {
|
|
124
|
-
/** @type {?} */
|
|
125
|
-
SetEntityCache.prototype.payload;
|
|
126
|
-
/** @type {?} */
|
|
127
|
-
SetEntityCache.prototype.type;
|
|
128
|
-
/** @type {?} */
|
|
129
|
-
SetEntityCache.prototype.cache;
|
|
130
|
-
}
|
|
131
75
|
// #region SaveEntities
|
|
132
76
|
export class SaveEntities {
|
|
133
|
-
/**
|
|
134
|
-
* @param {?} changeSet
|
|
135
|
-
* @param {?} url
|
|
136
|
-
* @param {?=} options
|
|
137
|
-
*/
|
|
138
77
|
constructor(changeSet, url, options) {
|
|
139
78
|
this.type = EntityCacheAction.SAVE_ENTITIES;
|
|
140
79
|
options = options || {};
|
|
@@ -144,71 +83,26 @@ export class SaveEntities {
|
|
|
144
83
|
this.payload = Object.assign(Object.assign({ changeSet, url }, options), { tag: changeSet.tag });
|
|
145
84
|
}
|
|
146
85
|
}
|
|
147
|
-
if (false) {
|
|
148
|
-
/** @type {?} */
|
|
149
|
-
SaveEntities.prototype.payload;
|
|
150
|
-
/** @type {?} */
|
|
151
|
-
SaveEntities.prototype.type;
|
|
152
|
-
}
|
|
153
86
|
export class SaveEntitiesCancel {
|
|
154
|
-
/**
|
|
155
|
-
* @param {?} correlationId
|
|
156
|
-
* @param {?=} reason
|
|
157
|
-
* @param {?=} entityNames
|
|
158
|
-
* @param {?=} tag
|
|
159
|
-
*/
|
|
160
87
|
constructor(correlationId, reason, entityNames, tag) {
|
|
161
88
|
this.type = EntityCacheAction.SAVE_ENTITIES_CANCEL;
|
|
162
89
|
this.payload = { correlationId, reason, entityNames, tag };
|
|
163
90
|
}
|
|
164
91
|
}
|
|
165
|
-
if (false) {
|
|
166
|
-
/** @type {?} */
|
|
167
|
-
SaveEntitiesCancel.prototype.payload;
|
|
168
|
-
/** @type {?} */
|
|
169
|
-
SaveEntitiesCancel.prototype.type;
|
|
170
|
-
}
|
|
171
92
|
export class SaveEntitiesCanceled {
|
|
172
|
-
/**
|
|
173
|
-
* @param {?} correlationId
|
|
174
|
-
* @param {?=} reason
|
|
175
|
-
* @param {?=} tag
|
|
176
|
-
*/
|
|
177
93
|
constructor(correlationId, reason, tag) {
|
|
178
94
|
this.type = EntityCacheAction.SAVE_ENTITIES_CANCEL;
|
|
179
95
|
this.payload = { correlationId, reason, tag };
|
|
180
96
|
}
|
|
181
97
|
}
|
|
182
|
-
if (false) {
|
|
183
|
-
/** @type {?} */
|
|
184
|
-
SaveEntitiesCanceled.prototype.payload;
|
|
185
|
-
/** @type {?} */
|
|
186
|
-
SaveEntitiesCanceled.prototype.type;
|
|
187
|
-
}
|
|
188
98
|
export class SaveEntitiesError {
|
|
189
|
-
/**
|
|
190
|
-
* @param {?} error
|
|
191
|
-
* @param {?} originalAction
|
|
192
|
-
*/
|
|
193
99
|
constructor(error, originalAction) {
|
|
194
100
|
this.type = EntityCacheAction.SAVE_ENTITIES_ERROR;
|
|
195
|
-
/** @type {?} */
|
|
196
101
|
const correlationId = originalAction.payload.correlationId;
|
|
197
102
|
this.payload = { error, originalAction, correlationId };
|
|
198
103
|
}
|
|
199
104
|
}
|
|
200
|
-
if (false) {
|
|
201
|
-
/** @type {?} */
|
|
202
|
-
SaveEntitiesError.prototype.payload;
|
|
203
|
-
/** @type {?} */
|
|
204
|
-
SaveEntitiesError.prototype.type;
|
|
205
|
-
}
|
|
206
105
|
export class SaveEntitiesSuccess {
|
|
207
|
-
/**
|
|
208
|
-
* @param {?} changeSet
|
|
209
|
-
* @param {?} url
|
|
210
|
-
* @param {?=} options
|
|
211
|
-
*/
|
|
212
106
|
constructor(changeSet, url, options) {
|
|
213
107
|
this.type = EntityCacheAction.SAVE_ENTITIES_SUCCESS;
|
|
214
108
|
options = options || {};
|
|
@@ -218,10 +112,5 @@ export class SaveEntitiesSuccess {
|
|
|
218
112
|
this.payload = Object.assign(Object.assign({ changeSet, url }, options), { tag: changeSet.tag });
|
|
219
113
|
}
|
|
220
114
|
}
|
|
221
|
-
|
|
222
|
-
/** @type {?} */
|
|
223
|
-
SaveEntitiesSuccess.prototype.payload;
|
|
224
|
-
/** @type {?} */
|
|
225
|
-
SaveEntitiesSuccess.prototype.type;
|
|
226
|
-
}
|
|
227
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWNhY2hlLWFjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLi8uLi9tb2R1bGVzL2RhdGEvIiwic291cmNlcyI6WyJzcmMvYWN0aW9ucy9lbnRpdHktY2FjaGUtYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBTUEsT0FBTyxFQUFhLGtCQUFrQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFLMUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDOztBQUUxRCxNQUFZLGlCQUFpQjtJQUMzQixpQkFBaUIsNkNBQThDO0lBQy9ELGdCQUFnQiw0Q0FBNkM7SUFDN0QsZUFBZSwyQ0FBNEM7SUFDM0QsZ0JBQWdCLHFDQUFzQztJQUV0RCxhQUFhLHlDQUEwQztJQUN2RCxvQkFBb0IsZ0RBQWlEO0lBQ3JFLHNCQUFzQixrREFBbUQ7SUFDekUsbUJBQW1CLCtDQUFnRDtJQUNuRSxxQkFBcUIsaURBQWtEO0VBQ3hFOzs7Ozs7OztBQU9ELHlDQUVDOzs7Ozs7O0FBUUQsTUFBTSxPQUFPLGdCQUFnQjs7Ozs7SUFJM0IsWUFBWSxXQUFzQixFQUFFLEdBQVk7UUFGdkMsU0FBSSxHQUFHLGlCQUFpQixDQUFDLGlCQUFpQixDQUFDO1FBR2xELElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxXQUFXLEVBQUUsR0FBRyxFQUFFLENBQUM7SUFDdEMsQ0FBQztDQUNGOzs7SUFOQyxtQ0FBMkQ7O0lBQzNELGdDQUFvRDs7Ozs7Ozs7O0FBY3RELE1BQU0sT0FBTyxlQUFlOzs7OztJQUkxQixZQUFZLFdBQWdDLEVBQUUsR0FBWTtRQUZqRCxTQUFJLEdBQUcsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUM7UUFHakQsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLFdBQVcsRUFBRSxHQUFHLEVBQUUsQ0FBQztJQUN0QyxDQUFDO0NBQ0Y7OztJQU5DLGtDQUFxRTs7SUFDckUsK0JBQW1EOzs7Ozs7Ozs7Ozs7O0FBa0JyRCxNQUFNLE9BQU8sYUFBYTs7Ozs7O0lBU3hCLFlBQ0UsUUFBNkIsRUFDN0IsYUFBNkIsRUFDN0IsR0FBWTtRQUxMLFNBQUksR0FBRyxpQkFBaUIsQ0FBQyxlQUFlLENBQUM7UUFPaEQsSUFBSSxDQUFDLE9BQU8sR0FBRztZQUNiLFFBQVE7WUFDUixhQUFhLEVBQ1gsYUFBYSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsYUFBYTtZQUN4RSxHQUFHO1NBQ0osQ0FBQztJQUNKLENBQUM7Q0FDRjs7O0lBcEJDLGdDQUlFOztJQUVGLDZCQUFrRDs7Ozs7Ozs7O0FBdUJwRCxNQUFNLE9BQU8sY0FBYzs7Ozs7SUFJekIsWUFBNEIsS0FBa0IsRUFBRSxHQUFZO1FBQWhDLFVBQUssR0FBTCxLQUFLLENBQWE7UUFGckMsU0FBSSxHQUFHLGlCQUFpQixDQUFDLGdCQUFnQixDQUFDO1FBR2pELElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLENBQUM7SUFDaEMsQ0FBQztDQUNGOzs7SUFOQyxpQ0FBdUQ7O0lBQ3ZELDhCQUFtRDs7SUFFdkMsK0JBQWtDOzs7QUFNaEQsTUFBTSxPQUFPLFlBQVk7Ozs7OztJQWF2QixZQUNFLFNBQW9CLEVBQ3BCLEdBQVcsRUFDWCxPQUE2QjtRQUx0QixTQUFJLEdBQUcsaUJBQWlCLENBQUMsYUFBYSxDQUFDO1FBTzlDLE9BQU8sR0FBRyxPQUFPLElBQUksRUFBRSxDQUFDO1FBQ3hCLElBQUksU0FBUyxFQUFFO1lBQ2IsU0FBUyxDQUFDLEdBQUcsR0FBRyxTQUFTLENBQUMsR0FBRyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUM7U0FDOUM7UUFDRCxJQUFJLENBQUMsT0FBTyxpQ0FBSyxTQUFTLEVBQUUsR0FBRyxJQUFLLE9BQU8sS0FBRSxHQUFHLEVBQUUsU0FBUyxDQUFDLEdBQUcsR0FBRSxDQUFDO0lBQ3BFLENBQUM7Q0FDRjs7O0lBdkJDLCtCQVNFOztJQUNGLDRCQUFnRDs7QUFlbEQsTUFBTSxPQUFPLGtCQUFrQjs7Ozs7OztJQVM3QixZQUNFLGFBQWtCLEVBQ2xCLE1BQWUsRUFDZixXQUFzQixFQUN0QixHQUFZO1FBTkwsU0FBSSxHQUFHLGlCQUFpQixDQUFDLG9CQUFvQixDQUFDO1FBUXJELElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxHQUFHLEVBQUUsQ0FBQztJQUM3RCxDQUFDO0NBQ0Y7OztJQWhCQyxxQ0FLRTs7SUFDRixrQ0FBdUQ7O0FBWXpELE1BQU0sT0FBTyxvQkFBb0I7Ozs7OztJQVEvQixZQUFZLGFBQWtCLEVBQUUsTUFBZSxFQUFFLEdBQVk7UUFGcEQsU0FBSSxHQUFHLGlCQUFpQixDQUFDLG9CQUFvQixDQUFDO1FBR3JELElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxhQUFhLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxDQUFDO0lBQ2hELENBQUM7Q0FDRjs7O0lBVkMsdUNBSUU7O0lBQ0Ysb0NBQXVEOztBQU96RCxNQUFNLE9BQU8saUJBQWlCOzs7OztJQU81QixZQUFZLEtBQXVCLEVBQUUsY0FBNEI7UUFEeEQsU0FBSSxHQUFHLGlCQUFpQixDQUFDLG1CQUFtQixDQUFDOztjQUU5QyxhQUFhLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQyxhQUFhO1FBQzFELElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLGFBQWEsRUFBRSxDQUFDO0lBQzFELENBQUM7Q0FDRjs7O0lBVkMsb0NBSUU7O0lBQ0YsaUNBQXNEOztBQU94RCxNQUFNLE9BQU8sbUJBQW1COzs7Ozs7SUFhOUIsWUFDRSxTQUFvQixFQUNwQixHQUFXLEVBQ1gsT0FBNkI7UUFMdEIsU0FBSSxHQUFHLGlCQUFpQixDQUFDLHFCQUFxQixDQUFDO1FBT3RELE9BQU8sR0FBRyxPQUFPLElBQUksRUFBRSxDQUFDO1FBQ3hCLElBQUksU0FBUyxFQUFFO1lBQ2IsU0FBUyxDQUFDLEdBQUcsR0FBRyxTQUFTLENBQUMsR0FBRyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUM7U0FDOUM7UUFDRCxJQUFJLENBQUMsT0FBTyxpQ0FBSyxTQUFTLEVBQUUsR0FBRyxJQUFLLE9BQU8sS0FBRSxHQUFHLEVBQUUsU0FBUyxDQUFDLEdBQUcsR0FBRSxDQUFDO0lBQ3BFLENBQUM7Q0FDRjs7O0lBdkJDLHNDQVNFOztJQUNGLG1DQUF3RCIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBBY3Rpb25zIGRlZGljYXRlZCB0byB0aGUgRW50aXR5Q2FjaGUgYXMgYSB3aG9sZVxuICovXG5pbXBvcnQgeyBBY3Rpb24gfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5cbmltcG9ydCB7IENoYW5nZVNldCwgQ2hhbmdlU2V0T3BlcmF0aW9uIH0gZnJvbSAnLi9lbnRpdHktY2FjaGUtY2hhbmdlLXNldCc7XG5leHBvcnQgeyBDaGFuZ2VTZXQsIENoYW5nZVNldE9wZXJhdGlvbiB9IGZyb20gJy4vZW50aXR5LWNhY2hlLWNoYW5nZS1zZXQnO1xuXG5pbXBvcnQgeyBEYXRhU2VydmljZUVycm9yIH0gZnJvbSAnLi4vZGF0YXNlcnZpY2VzL2RhdGEtc2VydmljZS1lcnJvcic7XG5pbXBvcnQgeyBFbnRpdHlBY3Rpb25PcHRpb25zIH0gZnJvbSAnLi4vYWN0aW9ucy9lbnRpdHktYWN0aW9uJztcbmltcG9ydCB7IEVudGl0eUNhY2hlIH0gZnJvbSAnLi4vcmVkdWNlcnMvZW50aXR5LWNhY2hlJztcbmltcG9ydCB7IE1lcmdlU3RyYXRlZ3kgfSBmcm9tICcuLi9hY3Rpb25zL21lcmdlLXN0cmF0ZWd5JztcblxuZXhwb3J0IGVudW0gRW50aXR5Q2FjaGVBY3Rpb24ge1xuICBDTEVBUl9DT0xMRUNUSU9OUyA9ICdAbmdyeC9kYXRhL2VudGl0eS1jYWNoZS9jbGVhci1jb2xsZWN0aW9ucycsXG4gIExPQURfQ09MTEVDVElPTlMgPSAnQG5ncngvZGF0YS9lbnRpdHktY2FjaGUvbG9hZC1jb2xsZWN0aW9ucycsXG4gIE1FUkdFX1FVRVJZX1NFVCA9ICdAbmdyeC9kYXRhL2VudGl0eS1jYWNoZS9tZXJnZS1xdWVyeS1zZXQnLFxuICBTRVRfRU5USVRZX0NBQ0hFID0gJ0BuZ3J4L2RhdGEvZW50aXR5LWNhY2hlL3NldC1jYWNoZScsXG5cbiAgU0FWRV9FTlRJVElFUyA9ICdAbmdyeC9kYXRhL2VudGl0eS1jYWNoZS9zYXZlLWVudGl0aWVzJyxcbiAgU0FWRV9FTlRJVElFU19DQU5DRUwgPSAnQG5ncngvZGF0YS9lbnRpdHktY2FjaGUvc2F2ZS1lbnRpdGllcy1jYW5jZWwnLFxuICBTQVZFX0VOVElUSUVTX0NBTkNFTEVEID0gJ0BuZ3J4L2RhdGEvZW50aXR5LWNhY2hlL3NhdmUtZW50aXRpZXMtY2FuY2VsZWQnLFxuICBTQVZFX0VOVElUSUVTX0VSUk9SID0gJ0BuZ3J4L2RhdGEvZW50aXR5LWNhY2hlL3NhdmUtZW50aXRpZXMtZXJyb3InLFxuICBTQVZFX0VOVElUSUVTX1NVQ0NFU1MgPSAnQG5ncngvZGF0YS9lbnRpdHktY2FjaGUvc2F2ZS1lbnRpdGllcy1zdWNjZXNzJyxcbn1cblxuLyoqXG4gKiBIYXNoIG9mIGVudGl0aWVzIGtleWVkIGJ5IEVudGl0eUNvbGxlY3Rpb24gbmFtZSxcbiAqIHR5cGljYWxseSB0aGUgcmVzdWx0IG9mIGEgcXVlcnkgdGhhdCByZXR1cm5lZCByZXN1bHRzIGZyb20gYSBtdWx0aS1jb2xsZWN0aW9uIHF1ZXJ5XG4gKiB0aGF0IHdpbGwgYmUgbWVyZ2VkIGludG8gYW4gRW50aXR5Q2FjaGUgdmlhIHRoZSBgTWVyZ2VRdWVyeVNldGAgYWN0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVudGl0eUNhY2hlUXVlcnlTZXQge1xuICBbZW50aXR5TmFtZTogc3RyaW5nXTogYW55W107XG59XG5cbi8qKlxuICogQ2xlYXIgdGhlIGNvbGxlY3Rpb25zIGlkZW50aWZpZWQgaW4gdGhlIGNvbGxlY3Rpb25TZXQuXG4gKiBAcGFyYW0gW2NvbGxlY3Rpb25zXSBBcnJheSBvZiBuYW1lcyBvZiB0aGUgY29sbGVjdGlvbnMgdG8gY2xlYXIuXG4gKiBJZiBlbXB0eSBhcnJheSwgZG9lcyBub3RoaW5nLiBJZiBubyBhcnJheSwgY2xlYXIgYWxsIGNvbGxlY3Rpb25zLlxuICogQHBhcmFtIFt0YWddIE9wdGlvbmFsIHRhZyB0byBpZGVudGlmeSB0aGUgb3BlcmF0aW9uIGZyb20gdGhlIGFwcCBwZXJzcGVjdGl2ZS5cbiAqL1xuZXhwb3J0IGNsYXNzIENsZWFyQ29sbGVjdGlvbnMgaW1wbGVtZW50cyBBY3Rpb24ge1xuICByZWFkb25seSBwYXlsb2FkOiB7IGNvbGxlY3Rpb25zPzogc3RyaW5nW107IHRhZz86IHN0cmluZyB9O1xuICByZWFkb25seSB0eXBlID0gRW50aXR5Q2FjaGVBY3Rpb24uQ0xFQVJfQ09MTEVDVElPTlM7XG5cbiAgY29uc3RydWN0b3IoY29sbGVjdGlvbnM/OiBzdHJpbmdbXSwgdGFnPzogc3RyaW5nKSB7XG4gICAgdGhpcy5wYXlsb2FkID0geyBjb2xsZWN0aW9ucywgdGFnIH07XG4gIH1cbn1cblxuLyoqXG4gKiBDcmVhdGUgZW50aXR5IGNhY2hlIGFjdGlvbiB0aGF0IGxvYWRzIG11bHRpcGxlIGVudGl0eSBjb2xsZWN0aW9ucyBhdCB0aGUgc2FtZSB0aW1lLlxuICogYmVmb3JlIGFueSBzZWxlY3RvcnMkIG9ic2VydmFibGVzIGVtaXQuXG4gKiBAcGFyYW0gcXVlcnlTZXQgVGhlIGNvbGxlY3Rpb25zIHRvIGxvYWQsIHR5cGljYWxseSB0aGUgcmVzdWx0IG9mIGEgcXVlcnkuXG4gKiBAcGFyYW0gW3RhZ10gT3B0aW9uYWwgdGFnIHRvIGlkZW50aWZ5IHRoZSBvcGVyYXRpb24gZnJvbSB0aGUgYXBwIHBlcnNwZWN0aXZlLlxuICogaW4gdGhlIGZvcm0gb2YgYSBtYXAgb2YgZW50aXR5IGNvbGxlY3Rpb25zLlxuICovXG5leHBvcnQgY2xhc3MgTG9hZENvbGxlY3Rpb25zIGltcGxlbWVudHMgQWN0aW9uIHtcbiAgcmVhZG9ubHkgcGF5bG9hZDogeyBjb2xsZWN0aW9uczogRW50aXR5Q2FjaGVRdWVyeVNldDsgdGFnPzogc3RyaW5nIH07XG4gIHJlYWRvbmx5IHR5cGUgPSBFbnRpdHlDYWNoZUFjdGlvbi5MT0FEX0NPTExFQ1RJT05TO1xuXG4gIGNvbnN0cnVjdG9yKGNvbGxlY3Rpb25zOiBFbnRpdHlDYWNoZVF1ZXJ5U2V0LCB0YWc/OiBzdHJpbmcpIHtcbiAgICB0aGlzLnBheWxvYWQgPSB7IGNvbGxlY3Rpb25zLCB0YWcgfTtcbiAgfVxufVxuXG4vKipcbiAqIENyZWF0ZSBlbnRpdHkgY2FjaGUgYWN0aW9uIHRoYXQgbWVyZ2VzIGVudGl0aWVzIGZyb20gYSBxdWVyeSByZXN1bHRcbiAqIHRoYXQgcmV0dXJuZWQgZW50aXRpZXMgZnJvbSBtdWx0aXBsZSBjb2xsZWN0aW9ucy5cbiAqIENvcnJlc3BvbmRpbmcgZW50aXR5IGNhY2hlIHJlZHVjZXIgc2hvdWxkIGFkZCBhbmQgdXBkYXRlIGFsbCBjb2xsZWN0aW9uc1xuICogYXQgdGhlIHNhbWUgdGltZSwgYmVmb3JlIGFueSBzZWxlY3RvcnMkIG9ic2VydmFibGVzIGVtaXQuXG4gKiBAcGFyYW0gcXVlcnlTZXQgVGhlIHJlc3VsdCBvZiB0aGUgcXVlcnkgaW4gdGhlIGZvcm0gb2YgYSBtYXAgb2YgZW50aXR5IGNvbGxlY3Rpb25zLlxuICogVGhlc2UgYXJlIHRoZSBlbnRpdHkgZGF0YSB0byBtZXJnZSBpbnRvIHRoZSByZXNwZWN0aXZlIGNvbGxlY3Rpb25zLlxuICogQHBhcmFtIG1lcmdlU3RyYXRlZ3kgSG93IHRvIG1lcmdlIGEgcXVlcmllZCBlbnRpdHkgd2hlbiBpdCBpcyBhbHJlYWR5IGluIHRoZSBjb2xsZWN0aW9uLlxuICogVGhlIGRlZmF1bHQgaXMgTWVyZ2VTdHJhdGVneS5QcmVzZXJ2ZUNoYW5nZXNcbiAqIEBwYXJhbSBbdGFnXSBPcHRpb25hbCB0YWcgdG8gaWRlbnRpZnkgdGhlIG9wZXJhdGlvbiBmcm9tIHRoZSBhcHAgcGVyc3BlY3RpdmUuXG4gKi9cbmV4cG9ydCBjbGFzcyBNZXJnZVF1ZXJ5U2V0IGltcGxlbWVudHMgQWN0aW9uIHtcbiAgcmVhZG9ubHkgcGF5bG9hZDoge1xuICAgIHF1ZXJ5U2V0OiBFbnRpdHlDYWNoZVF1ZXJ5U2V0O1xuICAgIG1lcmdlU3RyYXRlZ3k/OiBNZXJnZVN0cmF0ZWd5O1xuICAgIHRhZz86IHN0cmluZztcbiAgfTtcblxuICByZWFkb25seSB0eXBlID0gRW50aXR5Q2FjaGVBY3Rpb24uTUVSR0VfUVVFUllfU0VUO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHF1ZXJ5U2V0OiBFbnRpdHlDYWNoZVF1ZXJ5U2V0LFxuICAgIG1lcmdlU3RyYXRlZ3k/OiBNZXJnZVN0cmF0ZWd5LFxuICAgIHRhZz86IHN0cmluZ1xuICApIHtcbiAgICB0aGlzLnBheWxvYWQgPSB7XG4gICAgICBxdWVyeVNldCxcbiAgICAgIG1lcmdlU3RyYXRlZ3k6XG4gICAgICAgIG1lcmdlU3RyYXRlZ3kgPT09IG51bGwgPyBNZXJnZVN0cmF0ZWd5LlByZXNlcnZlQ2hhbmdlcyA6IG1lcmdlU3RyYXRlZ3ksXG4gICAgICB0YWcsXG4gICAgfTtcbiAgfVxufVxuXG4vKipcbiAqIENyZWF0ZSBlbnRpdHkgY2FjaGUgYWN0aW9uIGZvciByZXBsYWNpbmcgdGhlIGVudGlyZSBlbnRpdHkgY2FjaGUuXG4gKiBEYW5nZXJvdXMgYmVjYXVzZSBicnV0ZSBmb3JjZSBidXQgdXNlZnVsIGFzIHdoZW4gcmUtaHlkcmF0aW5nIGFuIEVudGl0eUNhY2hlXG4gKiBmcm9tIGxvY2FsIGJyb3dzZXIgc3RvcmFnZSB3aGVuIHRoZSBhcHBsaWNhdGlvbiBsYXVuY2hlcy5cbiAqIEBwYXJhbSBjYWNoZSBOZXcgc3RhdGUgb2YgdGhlIGVudGl0eSBjYWNoZVxuICogQHBhcmFtIFt0YWddIE9wdGlvbmFsIHRhZyB0byBpZGVudGlmeSB0aGUgb3BlcmF0aW9uIGZyb20gdGhlIGFwcCBwZXJzcGVjdGl2ZS5cbiAqL1xuZXhwb3J0IGNsYXNzIFNldEVudGl0eUNhY2hlIGltcGxlbWVudHMgQWN0aW9uIHtcbiAgcmVhZG9ubHkgcGF5bG9hZDogeyBjYWNoZTogRW50aXR5Q2FjaGU7IHRhZz86IHN0cmluZyB9O1xuICByZWFkb25seSB0eXBlID0gRW50aXR5Q2FjaGVBY3Rpb24uU0VUX0VOVElUWV9DQUNIRTtcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgY2FjaGU6IEVudGl0eUNhY2hlLCB0YWc/OiBzdHJpbmcpIHtcbiAgICB0aGlzLnBheWxvYWQgPSB7IGNhY2hlLCB0YWcgfTtcbiAgfVxufVxuXG4vLyAjcmVnaW9uIFNhdmVFbnRpdGllc1xuZXhwb3J0IGNsYXNzIFNhdmVFbnRpdGllcyBpbXBsZW1lbnRzIEFjdGlvbiB7XG4gIHJlYWRvbmx5IHBheWxvYWQ6IHtcbiAgICByZWFkb25seSBjaGFuZ2VTZXQ6IENoYW5nZVNldDtcbiAgICByZWFkb25seSB1cmw6IHN0cmluZztcbiAgICByZWFkb25seSBjb3JyZWxhdGlvbklkPzogYW55O1xuICAgIHJlYWRvbmx5IGlzT3B0aW1pc3RpYz86IGJvb2xlYW47XG4gICAgcmVhZG9ubHkgbWVyZ2VTdHJhdGVneT86IE1lcmdlU3RyYXRlZ3k7XG4gICAgcmVhZG9ubHkgdGFnPzogc3RyaW5nO1xuICAgIGVycm9yPzogRXJyb3I7XG4gICAgc2tpcD86IGJvb2xlYW47IC8vIG5vdCB1c2VkXG4gIH07XG4gIHJlYWRvbmx5IHR5cGUgPSBFbnRpdHlDYWNoZUFjdGlvbi5TQVZFX0VOVElUSUVTO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGNoYW5nZVNldDogQ2hhbmdlU2V0LFxuICAgIHVybDogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiBFbnRpdHlBY3Rpb25PcHRpb25zXG4gICkge1xuICAgIG9wdGlvbnMgPSBvcHRpb25zIHx8IHt9O1xuICAgIGlmIChjaGFuZ2VTZXQpIHtcbiAgICAgIGNoYW5nZVNldC50YWcgPSBjaGFuZ2VTZXQudGFnIHx8IG9wdGlvbnMudGFnO1xuICAgIH1cbiAgICB0aGlzLnBheWxvYWQgPSB7IGNoYW5nZVNldCwgdXJsLCAuLi5vcHRpb25zLCB0YWc6IGNoYW5nZVNldC50YWcgfTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgU2F2ZUVudGl0aWVzQ2FuY2VsIGltcGxlbWVudHMgQWN0aW9uIHtcbiAgcmVhZG9ubHkgcGF5bG9hZDoge1xuICAgIHJlYWRvbmx5IGNvcnJlbGF0aW9uSWQ6IGFueTtcbiAgICByZWFkb25seSByZWFzb24/OiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgZW50aXR5TmFtZXM/OiBzdHJpbmdbXTtcbiAgICByZWFkb25seSB0YWc/OiBzdHJpbmc7XG4gIH07XG4gIHJlYWRvbmx5IHR5cGUgPSBFbnRpdHlDYWNoZUFjdGlvbi5TQVZFX0VOVElUSUVTX0NBTkNFTDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBjb3JyZWxhdGlvbklkOiBhbnksXG4gICAgcmVhc29uPzogc3RyaW5nLFxuICAgIGVudGl0eU5hbWVzPzogc3RyaW5nW10sXG4gICAgdGFnPzogc3RyaW5nXG4gICkge1xuICAgIHRoaXMucGF5bG9hZCA9IHsgY29ycmVsYXRpb25JZCwgcmVhc29uLCBlbnRpdHlOYW1lcywgdGFnIH07XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFNhdmVFbnRpdGllc0NhbmNlbGVkIGltcGxlbWVudHMgQWN0aW9uIHtcbiAgcmVhZG9ubHkgcGF5bG9hZDoge1xuICAgIHJlYWRvbmx5IGNvcnJlbGF0aW9uSWQ6IGFueTtcbiAgICByZWFkb25seSByZWFzb24/OiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgdGFnPzogc3RyaW5nO1xuICB9O1xuICByZWFkb25seSB0eXBlID0gRW50aXR5Q2FjaGVBY3Rpb24uU0FWRV9FTlRJVElFU19DQU5DRUw7XG5cbiAgY29uc3RydWN0b3IoY29ycmVsYXRpb25JZDogYW55LCByZWFzb24/OiBzdHJpbmcsIHRhZz86IHN0cmluZykge1xuICAgIHRoaXMucGF5bG9hZCA9IHsgY29ycmVsYXRpb25JZCwgcmVhc29uLCB0YWcgfTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgU2F2ZUVudGl0aWVzRXJyb3Ige1xuICByZWFkb25seSBwYXlsb2FkOiB7XG4gICAgcmVhZG9ubHkgZXJyb3I6IERhdGFTZXJ2aWNlRXJyb3I7XG4gICAgcmVhZG9ubHkgb3JpZ2luYWxBY3Rpb246IFNhdmVFbnRpdGllcztcbiAgICByZWFkb25seSBjb3JyZWxhdGlvbklkOiBhbnk7XG4gIH07XG4gIHJlYWRvbmx5IHR5cGUgPSBFbnRpdHlDYWNoZUFjdGlvbi5TQVZFX0VOVElUSUVTX0VSUk9SO1xuICBjb25zdHJ1Y3RvcihlcnJvcjogRGF0YVNlcnZpY2VFcnJvciwgb3JpZ2luYWxBY3Rpb246IFNhdmVFbnRpdGllcykge1xuICAgIGNvbnN0IGNvcnJlbGF0aW9uSWQgPSBvcmlnaW5hbEFjdGlvbi5wYXlsb2FkLmNvcnJlbGF0aW9uSWQ7XG4gICAgdGhpcy5wYXlsb2FkID0geyBlcnJvciwgb3JpZ2luYWxBY3Rpb24sIGNvcnJlbGF0aW9uSWQgfTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgU2F2ZUVudGl0aWVzU3VjY2VzcyBpbXBsZW1lbnRzIEFjdGlvbiB7XG4gIHJlYWRvbmx5IHBheWxvYWQ6IHtcbiAgICByZWFkb25seSBjaGFuZ2VTZXQ6IENoYW5nZVNldDtcbiAgICByZWFkb25seSB1cmw6IHN0cmluZztcbiAgICByZWFkb25seSBjb3JyZWxhdGlvbklkPzogYW55O1xuICAgIHJlYWRvbmx5IGlzT3B0aW1pc3RpYz86IGJvb2xlYW47XG4gICAgcmVhZG9ubHkgbWVyZ2VTdHJhdGVneT86IE1lcmdlU3RyYXRlZ3k7XG4gICAgcmVhZG9ubHkgdGFnPzogc3RyaW5nO1xuICAgIGVycm9yPzogRXJyb3I7XG4gICAgc2tpcD86IGJvb2xlYW47IC8vIG5vdCB1c2VkXG4gIH07XG4gIHJlYWRvbmx5IHR5cGUgPSBFbnRpdHlDYWNoZUFjdGlvbi5TQVZFX0VOVElUSUVTX1NVQ0NFU1M7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgY2hhbmdlU2V0OiBDaGFuZ2VTZXQsXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgb3B0aW9ucz86IEVudGl0eUFjdGlvbk9wdGlvbnNcbiAgKSB7XG4gICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gICAgaWYgKGNoYW5nZVNldCkge1xuICAgICAgY2hhbmdlU2V0LnRhZyA9IGNoYW5nZVNldC50YWcgfHwgb3B0aW9ucy50YWc7XG4gICAgfVxuICAgIHRoaXMucGF5bG9hZCA9IHsgY2hhbmdlU2V0LCB1cmwsIC4uLm9wdGlvbnMsIHRhZzogY2hhbmdlU2V0LnRhZyB9O1xuICB9XG59XG4vLyAjZW5kcmVnaW9uIFNhdmVFbnRpdGllc1xuIl19
|
|
115
|
+
// #endregion SaveEntities
|
|
116
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWNhY2hlLWFjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL21vZHVsZXMvZGF0YS9zcmMvYWN0aW9ucy9lbnRpdHktY2FjaGUtYWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BLE9BQU8sRUFBYSxrQkFBa0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBSzFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUUxRCxNQUFNLENBQU4sSUFBWSxpQkFXWDtBQVhELFdBQVksaUJBQWlCO0lBQzNCLG9GQUErRCxDQUFBO0lBQy9ELGtGQUE2RCxDQUFBO0lBQzdELGdGQUEyRCxDQUFBO0lBQzNELDJFQUFzRCxDQUFBO0lBRXRELDRFQUF1RCxDQUFBO0lBQ3ZELDBGQUFxRSxDQUFBO0lBQ3JFLDhGQUF5RSxDQUFBO0lBQ3pFLHdGQUFtRSxDQUFBO0lBQ25FLDRGQUF1RSxDQUFBO0FBQ3pFLENBQUMsRUFYVyxpQkFBaUIsS0FBakIsaUJBQWlCLFFBVzVCO0FBV0Q7Ozs7O0dBS0c7QUFDSCxNQUFNLE9BQU8sZ0JBQWdCO0lBSTNCLFlBQVksV0FBc0IsRUFBRSxHQUFZO1FBRnZDLFNBQUksR0FBRyxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQztRQUdsRCxJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsV0FBVyxFQUFFLEdBQUcsRUFBRSxDQUFDO0lBQ3RDLENBQUM7Q0FDRjtBQUVEOzs7Ozs7R0FNRztBQUNILE1BQU0sT0FBTyxlQUFlO0lBSTFCLFlBQVksV0FBZ0MsRUFBRSxHQUFZO1FBRmpELFNBQUksR0FBRyxpQkFBaUIsQ0FBQyxnQkFBZ0IsQ0FBQztRQUdqRCxJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsV0FBVyxFQUFFLEdBQUcsRUFBRSxDQUFDO0lBQ3RDLENBQUM7Q0FDRjtBQUVEOzs7Ozs7Ozs7O0dBVUc7QUFDSCxNQUFNLE9BQU8sYUFBYTtJQVN4QixZQUNFLFFBQTZCLEVBQzdCLGFBQTZCLEVBQzdCLEdBQVk7UUFMTCxTQUFJLEdBQUcsaUJBQWlCLENBQUMsZUFBZSxDQUFDO1FBT2hELElBQUksQ0FBQyxPQUFPLEdBQUc7WUFDYixRQUFRO1lBQ1IsYUFBYSxFQUNYLGFBQWEsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLGFBQWE7WUFDeEUsR0FBRztTQUNKLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFFRDs7Ozs7O0dBTUc7QUFDSCxNQUFNLE9BQU8sY0FBYztJQUl6QixZQUE0QixLQUFrQixFQUFFLEdBQVk7UUFBaEMsVUFBSyxHQUFMLEtBQUssQ0FBYTtRQUZyQyxTQUFJLEdBQUcsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUM7UUFHakQsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0NBQ0Y7QUFFRCx1QkFBdUI7QUFDdkIsTUFBTSxPQUFPLFlBQVk7SUFhdkIsWUFDRSxTQUFvQixFQUNwQixHQUFXLEVBQ1gsT0FBNkI7UUFMdEIsU0FBSSxHQUFHLGlCQUFpQixDQUFDLGFBQWEsQ0FBQztRQU85QyxPQUFPLEdBQUcsT0FBTyxJQUFJLEVBQUUsQ0FBQztRQUN4QixJQUFJLFNBQVMsRUFBRTtZQUNiLFNBQVMsQ0FBQyxHQUFHLEdBQUcsU0FBUyxDQUFDLEdBQUcsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDO1NBQzlDO1FBQ0QsSUFBSSxDQUFDLE9BQU8saUNBQUssU0FBUyxFQUFFLEdBQUcsSUFBSyxPQUFPLEtBQUUsR0FBRyxFQUFFLFNBQVMsQ0FBQyxHQUFHLEdBQUUsQ0FBQztJQUNwRSxDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8sa0JBQWtCO0lBUzdCLFlBQ0UsYUFBa0IsRUFDbEIsTUFBZSxFQUNmLFdBQXNCLEVBQ3RCLEdBQVk7UUFOTCxTQUFJLEdBQUcsaUJBQWlCLENBQUMsb0JBQW9CLENBQUM7UUFRckQsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsV0FBVyxFQUFFLEdBQUcsRUFBRSxDQUFDO0lBQzdELENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBTyxvQkFBb0I7SUFRL0IsWUFBWSxhQUFrQixFQUFFLE1BQWUsRUFBRSxHQUFZO1FBRnBELFNBQUksR0FBRyxpQkFBaUIsQ0FBQyxvQkFBb0IsQ0FBQztRQUdyRCxJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQztJQUNoRCxDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQU8saUJBQWlCO0lBTzVCLFlBQVksS0FBdUIsRUFBRSxjQUE0QjtRQUR4RCxTQUFJLEdBQUcsaUJBQWlCLENBQUMsbUJBQW1CLENBQUM7UUFFcEQsTUFBTSxhQUFhLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUM7UUFDM0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLENBQUM7SUFDMUQsQ0FBQztDQUNGO0FBRUQsTUFBTSxPQUFPLG1CQUFtQjtJQWE5QixZQUNFLFNBQW9CLEVBQ3BCLEdBQVcsRUFDWCxPQUE2QjtRQUx0QixTQUFJLEdBQUcsaUJBQWlCLENBQUMscUJBQXFCLENBQUM7UUFPdEQsT0FBTyxHQUFHLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDeEIsSUFBSSxTQUFTLEVBQUU7WUFDYixTQUFTLENBQUMsR0FBRyxHQUFHLFNBQVMsQ0FBQyxHQUFHLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQztTQUM5QztRQUNELElBQUksQ0FBQyxPQUFPLGlDQUFLLFNBQVMsRUFBRSxHQUFHLElBQUssT0FBTyxLQUFFLEdBQUcsRUFBRSxTQUFTLENBQUMsR0FBRyxHQUFFLENBQUM7SUFDcEUsQ0FBQztDQUNGO0FBQ0QsMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIEFjdGlvbnMgZGVkaWNhdGVkIHRvIHRoZSBFbnRpdHlDYWNoZSBhcyBhIHdob2xlXG4gKi9cbmltcG9ydCB7IEFjdGlvbiB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcblxuaW1wb3J0IHsgQ2hhbmdlU2V0LCBDaGFuZ2VTZXRPcGVyYXRpb24gfSBmcm9tICcuL2VudGl0eS1jYWNoZS1jaGFuZ2Utc2V0JztcbmV4cG9ydCB7IENoYW5nZVNldCwgQ2hhbmdlU2V0T3BlcmF0aW9uIH0gZnJvbSAnLi9lbnRpdHktY2FjaGUtY2hhbmdlLXNldCc7XG5cbmltcG9ydCB7IERhdGFTZXJ2aWNlRXJyb3IgfSBmcm9tICcuLi9kYXRhc2VydmljZXMvZGF0YS1zZXJ2aWNlLWVycm9yJztcbmltcG9ydCB7IEVudGl0eUFjdGlvbk9wdGlvbnMgfSBmcm9tICcuLi9hY3Rpb25zL2VudGl0eS1hY3Rpb24nO1xuaW1wb3J0IHsgRW50aXR5Q2FjaGUgfSBmcm9tICcuLi9yZWR1Y2Vycy9lbnRpdHktY2FjaGUnO1xuaW1wb3J0IHsgTWVyZ2VTdHJhdGVneSB9IGZyb20gJy4uL2FjdGlvbnMvbWVyZ2Utc3RyYXRlZ3knO1xuXG5leHBvcnQgZW51bSBFbnRpdHlDYWNoZUFjdGlvbiB7XG4gIENMRUFSX0NPTExFQ1RJT05TID0gJ0BuZ3J4L2RhdGEvZW50aXR5LWNhY2hlL2NsZWFyLWNvbGxlY3Rpb25zJyxcbiAgTE9BRF9DT0xMRUNUSU9OUyA9ICdAbmdyeC9kYXRhL2VudGl0eS1jYWNoZS9sb2FkLWNvbGxlY3Rpb25zJyxcbiAgTUVSR0VfUVVFUllfU0VUID0gJ0BuZ3J4L2RhdGEvZW50aXR5LWNhY2hlL21lcmdlLXF1ZXJ5LXNldCcsXG4gIFNFVF9FTlRJVFlfQ0FDSEUgPSAnQG5ncngvZGF0YS9lbnRpdHktY2FjaGUvc2V0LWNhY2hlJyxcblxuICBTQVZFX0VOVElUSUVTID0gJ0BuZ3J4L2RhdGEvZW50aXR5LWNhY2hlL3NhdmUtZW50aXRpZXMnLFxuICBTQVZFX0VOVElUSUVTX0NBTkNFTCA9ICdAbmdyeC9kYXRhL2VudGl0eS1jYWNoZS9zYXZlLWVudGl0aWVzLWNhbmNlbCcsXG4gIFNBVkVfRU5USVRJRVNfQ0FOQ0VMRUQgPSAnQG5ncngvZGF0YS9lbnRpdHktY2FjaGUvc2F2ZS1lbnRpdGllcy1jYW5jZWxlZCcsXG4gIFNBVkVfRU5USVRJRVNfRVJST1IgPSAnQG5ncngvZGF0YS9lbnRpdHktY2FjaGUvc2F2ZS1lbnRpdGllcy1lcnJvcicsXG4gIFNBVkVfRU5USVRJRVNfU1VDQ0VTUyA9ICdAbmdyeC9kYXRhL2VudGl0eS1jYWNoZS9zYXZlLWVudGl0aWVzLXN1Y2Nlc3MnLFxufVxuXG4vKipcbiAqIEhhc2ggb2YgZW50aXRpZXMga2V5ZWQgYnkgRW50aXR5Q29sbGVjdGlvbiBuYW1lLFxuICogdHlwaWNhbGx5IHRoZSByZXN1bHQgb2YgYSBxdWVyeSB0aGF0IHJldHVybmVkIHJlc3VsdHMgZnJvbSBhIG11bHRpLWNvbGxlY3Rpb24gcXVlcnlcbiAqIHRoYXQgd2lsbCBiZSBtZXJnZWQgaW50byBhbiBFbnRpdHlDYWNoZSB2aWEgdGhlIGBNZXJnZVF1ZXJ5U2V0YCBhY3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRW50aXR5Q2FjaGVRdWVyeVNldCB7XG4gIFtlbnRpdHlOYW1lOiBzdHJpbmddOiBhbnlbXTtcbn1cblxuLyoqXG4gKiBDbGVhciB0aGUgY29sbGVjdGlvbnMgaWRlbnRpZmllZCBpbiB0aGUgY29sbGVjdGlvblNldC5cbiAqIEBwYXJhbSBbY29sbGVjdGlvbnNdIEFycmF5IG9mIG5hbWVzIG9mIHRoZSBjb2xsZWN0aW9ucyB0byBjbGVhci5cbiAqIElmIGVtcHR5IGFycmF5LCBkb2VzIG5vdGhpbmcuIElmIG5vIGFycmF5LCBjbGVhciBhbGwgY29sbGVjdGlvbnMuXG4gKiBAcGFyYW0gW3RhZ10gT3B0aW9uYWwgdGFnIHRvIGlkZW50aWZ5IHRoZSBvcGVyYXRpb24gZnJvbSB0aGUgYXBwIHBlcnNwZWN0aXZlLlxuICovXG5leHBvcnQgY2xhc3MgQ2xlYXJDb2xsZWN0aW9ucyBpbXBsZW1lbnRzIEFjdGlvbiB7XG4gIHJlYWRvbmx5IHBheWxvYWQ6IHsgY29sbGVjdGlvbnM/OiBzdHJpbmdbXTsgdGFnPzogc3RyaW5nIH07XG4gIHJlYWRvbmx5IHR5cGUgPSBFbnRpdHlDYWNoZUFjdGlvbi5DTEVBUl9DT0xMRUNUSU9OUztcblxuICBjb25zdHJ1Y3Rvcihjb2xsZWN0aW9ucz86IHN0cmluZ1tdLCB0YWc/OiBzdHJpbmcpIHtcbiAgICB0aGlzLnBheWxvYWQgPSB7IGNvbGxlY3Rpb25zLCB0YWcgfTtcbiAgfVxufVxuXG4vKipcbiAqIENyZWF0ZSBlbnRpdHkgY2FjaGUgYWN0aW9uIHRoYXQgbG9hZHMgbXVsdGlwbGUgZW50aXR5IGNvbGxlY3Rpb25zIGF0IHRoZSBzYW1lIHRpbWUuXG4gKiBiZWZvcmUgYW55IHNlbGVjdG9ycyQgb2JzZXJ2YWJsZXMgZW1pdC5cbiAqIEBwYXJhbSBxdWVyeVNldCBUaGUgY29sbGVjdGlvbnMgdG8gbG9hZCwgdHlwaWNhbGx5IHRoZSByZXN1bHQgb2YgYSBxdWVyeS5cbiAqIEBwYXJhbSBbdGFnXSBPcHRpb25hbCB0YWcgdG8gaWRlbnRpZnkgdGhlIG9wZXJhdGlvbiBmcm9tIHRoZSBhcHAgcGVyc3BlY3RpdmUuXG4gKiBpbiB0aGUgZm9ybSBvZiBhIG1hcCBvZiBlbnRpdHkgY29sbGVjdGlvbnMuXG4gKi9cbmV4cG9ydCBjbGFzcyBMb2FkQ29sbGVjdGlvbnMgaW1wbGVtZW50cyBBY3Rpb24ge1xuICByZWFkb25seSBwYXlsb2FkOiB7IGNvbGxlY3Rpb25zOiBFbnRpdHlDYWNoZVF1ZXJ5U2V0OyB0YWc/OiBzdHJpbmcgfTtcbiAgcmVhZG9ubHkgdHlwZSA9IEVudGl0eUNhY2hlQWN0aW9uLkxPQURfQ09MTEVDVElPTlM7XG5cbiAgY29uc3RydWN0b3IoY29sbGVjdGlvbnM6IEVudGl0eUNhY2hlUXVlcnlTZXQsIHRhZz86IHN0cmluZykge1xuICAgIHRoaXMucGF5bG9hZCA9IHsgY29sbGVjdGlvbnMsIHRhZyB9O1xuICB9XG59XG5cbi8qKlxuICogQ3JlYXRlIGVudGl0eSBjYWNoZSBhY3Rpb24gdGhhdCBtZXJnZXMgZW50aXRpZXMgZnJvbSBhIHF1ZXJ5IHJlc3VsdFxuICogdGhhdCByZXR1cm5lZCBlbnRpdGllcyBmcm9tIG11bHRpcGxlIGNvbGxlY3Rpb25zLlxuICogQ29ycmVzcG9uZGluZyBlbnRpdHkgY2FjaGUgcmVkdWNlciBzaG91bGQgYWRkIGFuZCB1cGRhdGUgYWxsIGNvbGxlY3Rpb25zXG4gKiBhdCB0aGUgc2FtZSB0aW1lLCBiZWZvcmUgYW55IHNlbGVjdG9ycyQgb2JzZXJ2YWJsZXMgZW1pdC5cbiAqIEBwYXJhbSBxdWVyeVNldCBUaGUgcmVzdWx0IG9mIHRoZSBxdWVyeSBpbiB0aGUgZm9ybSBvZiBhIG1hcCBvZiBlbnRpdHkgY29sbGVjdGlvbnMuXG4gKiBUaGVzZSBhcmUgdGhlIGVudGl0eSBkYXRhIHRvIG1lcmdlIGludG8gdGhlIHJlc3BlY3RpdmUgY29sbGVjdGlvbnMuXG4gKiBAcGFyYW0gbWVyZ2VTdHJhdGVneSBIb3cgdG8gbWVyZ2UgYSBxdWVyaWVkIGVudGl0eSB3aGVuIGl0IGlzIGFscmVhZHkgaW4gdGhlIGNvbGxlY3Rpb24uXG4gKiBUaGUgZGVmYXVsdCBpcyBNZXJnZVN0cmF0ZWd5LlByZXNlcnZlQ2hhbmdlc1xuICogQHBhcmFtIFt0YWddIE9wdGlvbmFsIHRhZyB0byBpZGVudGlmeSB0aGUgb3BlcmF0aW9uIGZyb20gdGhlIGFwcCBwZXJzcGVjdGl2ZS5cbiAqL1xuZXhwb3J0IGNsYXNzIE1lcmdlUXVlcnlTZXQgaW1wbGVtZW50cyBBY3Rpb24ge1xuICByZWFkb25seSBwYXlsb2FkOiB7XG4gICAgcXVlcnlTZXQ6IEVudGl0eUNhY2hlUXVlcnlTZXQ7XG4gICAgbWVyZ2VTdHJhdGVneT86IE1lcmdlU3RyYXRlZ3k7XG4gICAgdGFnPzogc3RyaW5nO1xuICB9O1xuXG4gIHJlYWRvbmx5IHR5cGUgPSBFbnRpdHlDYWNoZUFjdGlvbi5NRVJHRV9RVUVSWV9TRVQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcXVlcnlTZXQ6IEVudGl0eUNhY2hlUXVlcnlTZXQsXG4gICAgbWVyZ2VTdHJhdGVneT86IE1lcmdlU3RyYXRlZ3ksXG4gICAgdGFnPzogc3RyaW5nXG4gICkge1xuICAgIHRoaXMucGF5bG9hZCA9IHtcbiAgICAgIHF1ZXJ5U2V0LFxuICAgICAgbWVyZ2VTdHJhdGVneTpcbiAgICAgICAgbWVyZ2VTdHJhdGVneSA9PT0gbnVsbCA/IE1lcmdlU3RyYXRlZ3kuUHJlc2VydmVDaGFuZ2VzIDogbWVyZ2VTdHJhdGVneSxcbiAgICAgIHRhZyxcbiAgICB9O1xuICB9XG59XG5cbi8qKlxuICogQ3JlYXRlIGVudGl0eSBjYWNoZSBhY3Rpb24gZm9yIHJlcGxhY2luZyB0aGUgZW50aXJlIGVudGl0eSBjYWNoZS5cbiAqIERhbmdlcm91cyBiZWNhdXNlIGJydXRlIGZvcmNlIGJ1dCB1c2VmdWwgYXMgd2hlbiByZS1oeWRyYXRpbmcgYW4gRW50aXR5Q2FjaGVcbiAqIGZyb20gbG9jYWwgYnJvd3NlciBzdG9yYWdlIHdoZW4gdGhlIGFwcGxpY2F0aW9uIGxhdW5jaGVzLlxuICogQHBhcmFtIGNhY2hlIE5ldyBzdGF0ZSBvZiB0aGUgZW50aXR5IGNhY2hlXG4gKiBAcGFyYW0gW3RhZ10gT3B0aW9uYWwgdGFnIHRvIGlkZW50aWZ5IHRoZSBvcGVyYXRpb24gZnJvbSB0aGUgYXBwIHBlcnNwZWN0aXZlLlxuICovXG5leHBvcnQgY2xhc3MgU2V0RW50aXR5Q2FjaGUgaW1wbGVtZW50cyBBY3Rpb24ge1xuICByZWFkb25seSBwYXlsb2FkOiB7IGNhY2hlOiBFbnRpdHlDYWNoZTsgdGFnPzogc3RyaW5nIH07XG4gIHJlYWRvbmx5IHR5cGUgPSBFbnRpdHlDYWNoZUFjdGlvbi5TRVRfRU5USVRZX0NBQ0hFO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBjYWNoZTogRW50aXR5Q2FjaGUsIHRhZz86IHN0cmluZykge1xuICAgIHRoaXMucGF5bG9hZCA9IHsgY2FjaGUsIHRhZyB9O1xuICB9XG59XG5cbi8vICNyZWdpb24gU2F2ZUVudGl0aWVzXG5leHBvcnQgY2xhc3MgU2F2ZUVudGl0aWVzIGltcGxlbWVudHMgQWN0aW9uIHtcbiAgcmVhZG9ubHkgcGF5bG9hZDoge1xuICAgIHJlYWRvbmx5IGNoYW5nZVNldDogQ2hhbmdlU2V0O1xuICAgIHJlYWRvbmx5IHVybDogc3RyaW5nO1xuICAgIHJlYWRvbmx5IGNvcnJlbGF0aW9uSWQ/OiBhbnk7XG4gICAgcmVhZG9ubHkgaXNPcHRpbWlzdGljPzogYm9vbGVhbjtcbiAgICByZWFkb25seSBtZXJnZVN0cmF0ZWd5PzogTWVyZ2VTdHJhdGVneTtcbiAgICByZWFkb25seSB0YWc/OiBzdHJpbmc7XG4gICAgZXJyb3I/OiBFcnJvcjtcbiAgICBza2lwPzogYm9vbGVhbjsgLy8gbm90IHVzZWRcbiAgfTtcbiAgcmVhZG9ubHkgdHlwZSA9IEVudGl0eUNhY2hlQWN0aW9uLlNBVkVfRU5USVRJRVM7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgY2hhbmdlU2V0OiBDaGFuZ2VTZXQsXG4gICAgdXJsOiBzdHJpbmcsXG4gICAgb3B0aW9ucz86IEVudGl0eUFjdGlvbk9wdGlvbnNcbiAgKSB7XG4gICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gICAgaWYgKGNoYW5nZVNldCkge1xuICAgICAgY2hhbmdlU2V0LnRhZyA9IGNoYW5nZVNldC50YWcgfHwgb3B0aW9ucy50YWc7XG4gICAgfVxuICAgIHRoaXMucGF5bG9hZCA9IHsgY2hhbmdlU2V0LCB1cmwsIC4uLm9wdGlvbnMsIHRhZzogY2hhbmdlU2V0LnRhZyB9O1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTYXZlRW50aXRpZXNDYW5jZWwgaW1wbGVtZW50cyBBY3Rpb24ge1xuICByZWFkb25seSBwYXlsb2FkOiB7XG4gICAgcmVhZG9ubHkgY29ycmVsYXRpb25JZDogYW55O1xuICAgIHJlYWRvbmx5IHJlYXNvbj86IHN0cmluZztcbiAgICByZWFkb25seSBlbnRpdHlOYW1lcz86IHN0cmluZ1tdO1xuICAgIHJlYWRvbmx5IHRhZz86IHN0cmluZztcbiAgfTtcbiAgcmVhZG9ubHkgdHlwZSA9IEVudGl0eUNhY2hlQWN0aW9uLlNBVkVfRU5USVRJRVNfQ0FOQ0VMO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGNvcnJlbGF0aW9uSWQ6IGFueSxcbiAgICByZWFzb24/OiBzdHJpbmcsXG4gICAgZW50aXR5TmFtZXM/OiBzdHJpbmdbXSxcbiAgICB0YWc/OiBzdHJpbmdcbiAgKSB7XG4gICAgdGhpcy5wYXlsb2FkID0geyBjb3JyZWxhdGlvbklkLCByZWFzb24sIGVudGl0eU5hbWVzLCB0YWcgfTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgU2F2ZUVudGl0aWVzQ2FuY2VsZWQgaW1wbGVtZW50cyBBY3Rpb24ge1xuICByZWFkb25seSBwYXlsb2FkOiB7XG4gICAgcmVhZG9ubHkgY29ycmVsYXRpb25JZDogYW55O1xuICAgIHJlYWRvbmx5IHJlYXNvbj86IHN0cmluZztcbiAgICByZWFkb25seSB0YWc/OiBzdHJpbmc7XG4gIH07XG4gIHJlYWRvbmx5IHR5cGUgPSBFbnRpdHlDYWNoZUFjdGlvbi5TQVZFX0VOVElUSUVTX0NBTkNFTDtcblxuICBjb25zdHJ1Y3Rvcihjb3JyZWxhdGlvbklkOiBhbnksIHJlYXNvbj86IHN0cmluZywgdGFnPzogc3RyaW5nKSB7XG4gICAgdGhpcy5wYXlsb2FkID0geyBjb3JyZWxhdGlvbklkLCByZWFzb24sIHRhZyB9O1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTYXZlRW50aXRpZXNFcnJvciB7XG4gIHJlYWRvbmx5IHBheWxvYWQ6IHtcbiAgICByZWFkb25seSBlcnJvcjogRGF0YVNlcnZpY2VFcnJvcjtcbiAgICByZWFkb25seSBvcmlnaW5hbEFjdGlvbjogU2F2ZUVudGl0aWVzO1xuICAgIHJlYWRvbmx5IGNvcnJlbGF0aW9uSWQ6IGFueTtcbiAgfTtcbiAgcmVhZG9ubHkgdHlwZSA9IEVudGl0eUNhY2hlQWN0aW9uLlNBVkVfRU5USVRJRVNfRVJST1I7XG4gIGNvbnN0cnVjdG9yKGVycm9yOiBEYXRhU2VydmljZUVycm9yLCBvcmlnaW5hbEFjdGlvbjogU2F2ZUVudGl0aWVzKSB7XG4gICAgY29uc3QgY29ycmVsYXRpb25JZCA9IG9yaWdpbmFsQWN0aW9uLnBheWxvYWQuY29ycmVsYXRpb25JZDtcbiAgICB0aGlzLnBheWxvYWQgPSB7IGVycm9yLCBvcmlnaW5hbEFjdGlvbiwgY29ycmVsYXRpb25JZCB9O1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBTYXZlRW50aXRpZXNTdWNjZXNzIGltcGxlbWVudHMgQWN0aW9uIHtcbiAgcmVhZG9ubHkgcGF5bG9hZDoge1xuICAgIHJlYWRvbmx5IGNoYW5nZVNldDogQ2hhbmdlU2V0O1xuICAgIHJlYWRvbmx5IHVybDogc3RyaW5nO1xuICAgIHJlYWRvbmx5IGNvcnJlbGF0aW9uSWQ/OiBhbnk7XG4gICAgcmVhZG9ubHkgaXNPcHRpbWlzdGljPzogYm9vbGVhbjtcbiAgICByZWFkb25seSBtZXJnZVN0cmF0ZWd5PzogTWVyZ2VTdHJhdGVneTtcbiAgICByZWFkb25seSB0YWc/OiBzdHJpbmc7XG4gICAgZXJyb3I/OiBFcnJvcjtcbiAgICBza2lwPzogYm9vbGVhbjsgLy8gbm90IHVzZWRcbiAgfTtcbiAgcmVhZG9ubHkgdHlwZSA9IEVudGl0eUNhY2hlQWN0aW9uLlNBVkVfRU5USVRJRVNfU1VDQ0VTUztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBjaGFuZ2VTZXQ6IENoYW5nZVNldCxcbiAgICB1cmw6IHN0cmluZyxcbiAgICBvcHRpb25zPzogRW50aXR5QWN0aW9uT3B0aW9uc1xuICApIHtcbiAgICBvcHRpb25zID0gb3B0aW9ucyB8fCB7fTtcbiAgICBpZiAoY2hhbmdlU2V0KSB7XG4gICAgICBjaGFuZ2VTZXQudGFnID0gY2hhbmdlU2V0LnRhZyB8fCBvcHRpb25zLnRhZztcbiAgICB9XG4gICAgdGhpcy5wYXlsb2FkID0geyBjaGFuZ2VTZXQsIHVybCwgLi4ub3B0aW9ucywgdGFnOiBjaGFuZ2VTZXQudGFnIH07XG4gIH1cbn1cbi8vICNlbmRyZWdpb24gU2F2ZUVudGl0aWVzXG4iXX0=
|
|
@@ -1,138 +1,34 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
Add: "Add",
|
|
9
|
-
Delete: "Delete",
|
|
10
|
-
Update: "Update",
|
|
11
|
-
Upsert: "Upsert",
|
|
12
|
-
};
|
|
13
|
-
export { ChangeSetOperation };
|
|
14
|
-
/**
|
|
15
|
-
* @record
|
|
16
|
-
* @template T
|
|
17
|
-
*/
|
|
18
|
-
export function ChangeSetAdd() { }
|
|
19
|
-
if (false) {
|
|
20
|
-
/** @type {?} */
|
|
21
|
-
ChangeSetAdd.prototype.op;
|
|
22
|
-
/** @type {?} */
|
|
23
|
-
ChangeSetAdd.prototype.entityName;
|
|
24
|
-
/** @type {?} */
|
|
25
|
-
ChangeSetAdd.prototype.entities;
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* @record
|
|
29
|
-
*/
|
|
30
|
-
export function ChangeSetDelete() { }
|
|
31
|
-
if (false) {
|
|
32
|
-
/** @type {?} */
|
|
33
|
-
ChangeSetDelete.prototype.op;
|
|
34
|
-
/** @type {?} */
|
|
35
|
-
ChangeSetDelete.prototype.entityName;
|
|
36
|
-
/** @type {?} */
|
|
37
|
-
ChangeSetDelete.prototype.entities;
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* @record
|
|
41
|
-
* @template T
|
|
42
|
-
*/
|
|
43
|
-
export function ChangeSetUpdate() { }
|
|
44
|
-
if (false) {
|
|
45
|
-
/** @type {?} */
|
|
46
|
-
ChangeSetUpdate.prototype.op;
|
|
47
|
-
/** @type {?} */
|
|
48
|
-
ChangeSetUpdate.prototype.entityName;
|
|
49
|
-
/** @type {?} */
|
|
50
|
-
ChangeSetUpdate.prototype.entities;
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* @record
|
|
54
|
-
* @template T
|
|
55
|
-
*/
|
|
56
|
-
export function ChangeSetUpsert() { }
|
|
57
|
-
if (false) {
|
|
58
|
-
/** @type {?} */
|
|
59
|
-
ChangeSetUpsert.prototype.op;
|
|
60
|
-
/** @type {?} */
|
|
61
|
-
ChangeSetUpsert.prototype.entityName;
|
|
62
|
-
/** @type {?} */
|
|
63
|
-
ChangeSetUpsert.prototype.entities;
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* @record
|
|
67
|
-
* @template T
|
|
68
|
-
*/
|
|
69
|
-
export function ChangeSet() { }
|
|
70
|
-
if (false) {
|
|
71
|
-
/**
|
|
72
|
-
* An array of ChangeSetItems to be processed in the array order
|
|
73
|
-
* @type {?}
|
|
74
|
-
*/
|
|
75
|
-
ChangeSet.prototype.changes;
|
|
76
|
-
/**
|
|
77
|
-
* An arbitrary, serializable object that should travel with the ChangeSet.
|
|
78
|
-
* Meaningful to the ChangeSet producer and consumer. Ignored by \@ngrx/data.
|
|
79
|
-
* @type {?|undefined}
|
|
80
|
-
*/
|
|
81
|
-
ChangeSet.prototype.extras;
|
|
82
|
-
/**
|
|
83
|
-
* An arbitrary string, identifying the ChangeSet and perhaps its purpose
|
|
84
|
-
* @type {?|undefined}
|
|
85
|
-
*/
|
|
86
|
-
ChangeSet.prototype.tag;
|
|
87
|
-
}
|
|
1
|
+
export var ChangeSetOperation;
|
|
2
|
+
(function (ChangeSetOperation) {
|
|
3
|
+
ChangeSetOperation["Add"] = "Add";
|
|
4
|
+
ChangeSetOperation["Delete"] = "Delete";
|
|
5
|
+
ChangeSetOperation["Update"] = "Update";
|
|
6
|
+
ChangeSetOperation["Upsert"] = "Upsert";
|
|
7
|
+
})(ChangeSetOperation || (ChangeSetOperation = {}));
|
|
88
8
|
/**
|
|
89
9
|
* Factory to create a ChangeSetItem for a ChangeSetOperation
|
|
90
10
|
*/
|
|
91
11
|
export class ChangeSetItemFactory {
|
|
92
|
-
/**
|
|
93
|
-
* Create the ChangeSetAdd for new entities of the given entity type
|
|
94
|
-
* @template T
|
|
95
|
-
* @param {?} entityName
|
|
96
|
-
* @param {?} entities
|
|
97
|
-
* @return {?}
|
|
98
|
-
*/
|
|
12
|
+
/** Create the ChangeSetAdd for new entities of the given entity type */
|
|
99
13
|
add(entityName, entities) {
|
|
100
14
|
entities = Array.isArray(entities) ? entities : entities ? [entities] : [];
|
|
101
15
|
return { entityName, op: ChangeSetOperation.Add, entities };
|
|
102
16
|
}
|
|
103
|
-
/**
|
|
104
|
-
* Create the ChangeSetDelete for primary keys of the given entity type
|
|
105
|
-
* @param {?} entityName
|
|
106
|
-
* @param {?} keys
|
|
107
|
-
* @return {?}
|
|
108
|
-
*/
|
|
17
|
+
/** Create the ChangeSetDelete for primary keys of the given entity type */
|
|
109
18
|
delete(entityName, keys) {
|
|
110
|
-
/** @type {?} */
|
|
111
19
|
const ids = Array.isArray(keys)
|
|
112
20
|
? keys
|
|
113
21
|
: keys
|
|
114
|
-
?
|
|
22
|
+
? [keys]
|
|
115
23
|
: [];
|
|
116
24
|
return { entityName, op: ChangeSetOperation.Delete, entities: ids };
|
|
117
25
|
}
|
|
118
|
-
/**
|
|
119
|
-
* Create the ChangeSetUpdate for Updates of entities of the given entity type
|
|
120
|
-
* @template T
|
|
121
|
-
* @param {?} entityName
|
|
122
|
-
* @param {?} updates
|
|
123
|
-
* @return {?}
|
|
124
|
-
*/
|
|
26
|
+
/** Create the ChangeSetUpdate for Updates of entities of the given entity type */
|
|
125
27
|
update(entityName, updates) {
|
|
126
28
|
updates = Array.isArray(updates) ? updates : updates ? [updates] : [];
|
|
127
29
|
return { entityName, op: ChangeSetOperation.Update, entities: updates };
|
|
128
30
|
}
|
|
129
|
-
/**
|
|
130
|
-
* Create the ChangeSetUpsert for new or existing entities of the given entity type
|
|
131
|
-
* @template T
|
|
132
|
-
* @param {?} entityName
|
|
133
|
-
* @param {?} entities
|
|
134
|
-
* @return {?}
|
|
135
|
-
*/
|
|
31
|
+
/** Create the ChangeSetUpsert for new or existing entities of the given entity type */
|
|
136
32
|
upsert(entityName, entities) {
|
|
137
33
|
entities = Array.isArray(entities) ? entities : entities ? [entities] : [];
|
|
138
34
|
return { entityName, op: ChangeSetOperation.Upsert, entities };
|
|
@@ -140,22 +36,15 @@ export class ChangeSetItemFactory {
|
|
|
140
36
|
}
|
|
141
37
|
/**
|
|
142
38
|
* Instance of a factory to create a ChangeSetItem for a ChangeSetOperation
|
|
143
|
-
* @type {?}
|
|
144
39
|
*/
|
|
145
40
|
export const changeSetItemFactory = new ChangeSetItemFactory();
|
|
146
41
|
/**
|
|
147
42
|
* Return ChangeSet after filtering out null and empty ChangeSetItems.
|
|
148
|
-
* @param
|
|
149
|
-
* @return {?}
|
|
43
|
+
* @param changeSet ChangeSet with changes to filter
|
|
150
44
|
*/
|
|
151
45
|
export function excludeEmptyChangeSetItems(changeSet) {
|
|
152
46
|
changeSet = changeSet && changeSet.changes ? changeSet : { changes: [] };
|
|
153
|
-
|
|
154
|
-
const changes = changeSet.changes.filter((/**
|
|
155
|
-
* @param {?} c
|
|
156
|
-
* @return {?}
|
|
157
|
-
*/
|
|
158
|
-
(c) => c != null && c.entities && c.entities.length > 0));
|
|
47
|
+
const changes = changeSet.changes.filter((c) => c != null && c.entities && c.entities.length > 0);
|
|
159
48
|
return Object.assign(Object.assign({}, changeSet), { changes });
|
|
160
49
|
}
|
|
161
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LWNhY2hlLWNoYW5nZS1zZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9tb2R1bGVzL2RhdGEvc3JjL2FjdGlvbnMvZW50aXR5LWNhY2hlLWNoYW5nZS1zZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFOLElBQVksa0JBS1g7QUFMRCxXQUFZLGtCQUFrQjtJQUM1QixpQ0FBVyxDQUFBO0lBQ1gsdUNBQWlCLENBQUE7SUFDakIsdUNBQWlCLENBQUE7SUFDakIsdUNBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQUxXLGtCQUFrQixLQUFsQixrQkFBa0IsUUFLN0I7QUFtREQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sb0JBQW9CO0lBQy9CLHdFQUF3RTtJQUN4RSxHQUFHLENBQUksVUFBa0IsRUFBRSxRQUFpQjtRQUMxQyxRQUFRLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUMzRSxPQUFPLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxrQkFBa0IsQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLENBQUM7SUFDOUQsQ0FBQztJQUVELDJFQUEyRTtJQUMzRSxNQUFNLENBQ0osVUFBa0IsRUFDbEIsSUFBMkM7UUFFM0MsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFDN0IsQ0FBQyxDQUFDLElBQUk7WUFDTixDQUFDLENBQUMsSUFBSTtnQkFDTixDQUFDLENBQUUsQ0FBQyxJQUFJLENBQXlCO2dCQUNqQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ1AsT0FBTyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsa0JBQWtCLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQztJQUN0RSxDQUFDO0lBRUQsa0ZBQWtGO0lBQ2xGLE1BQU0sQ0FDSixVQUFrQixFQUNsQixPQUFnQztRQUVoQyxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUN0RSxPQUFPLEVBQUUsVUFBVSxFQUFFLEVBQUUsRUFBRSxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFDO0lBQzFFLENBQUM7SUFFRCx1RkFBdUY7SUFDdkYsTUFBTSxDQUFJLFVBQWtCLEVBQUUsUUFBaUI7UUFDN0MsUUFBUSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDM0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsa0JBQWtCLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxDQUFDO0lBQ2pFLENBQUM7Q0FDRjtBQUVEOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxvQkFBb0IsRUFBRSxDQUFDO0FBRS9EOzs7R0FHRztBQUNILE1BQU0sVUFBVSwwQkFBMEIsQ0FBQyxTQUFvQjtJQUM3RCxTQUFTLEdBQUcsU0FBUyxJQUFJLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDekUsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQ3RDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQyxRQUFRLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUN4RCxDQUFDO0lBQ0YsdUNBQVksU0FBUyxLQUFFLE9BQU8sSUFBRztBQUNuQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVXBkYXRlIH0gZnJvbSAnQG5ncngvZW50aXR5JztcblxuZXhwb3J0IGVudW0gQ2hhbmdlU2V0T3BlcmF0aW9uIHtcbiAgQWRkID0gJ0FkZCcsXG4gIERlbGV0ZSA9ICdEZWxldGUnLFxuICBVcGRhdGUgPSAnVXBkYXRlJyxcbiAgVXBzZXJ0ID0gJ1Vwc2VydCcsXG59XG5leHBvcnQgaW50ZXJmYWNlIENoYW5nZVNldEFkZDxUID0gYW55PiB7XG4gIG9wOiBDaGFuZ2VTZXRPcGVyYXRpb24uQWRkO1xuICBlbnRpdHlOYW1lOiBzdHJpbmc7XG4gIGVudGl0aWVzOiBUW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hhbmdlU2V0RGVsZXRlIHtcbiAgb3A6IENoYW5nZVNldE9wZXJhdGlvbi5EZWxldGU7XG4gIGVudGl0eU5hbWU6IHN0cmluZztcbiAgZW50aXRpZXM6IHN0cmluZ1tdIHwgbnVtYmVyW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hhbmdlU2V0VXBkYXRlPFQgPSBhbnk+IHtcbiAgb3A6IENoYW5nZVNldE9wZXJhdGlvbi5VcGRhdGU7XG4gIGVudGl0eU5hbWU6IHN0cmluZztcbiAgZW50aXRpZXM6IFVwZGF0ZTxUPltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENoYW5nZVNldFVwc2VydDxUID0gYW55PiB7XG4gIG9wOiBDaGFuZ2VTZXRPcGVyYXRpb24uVXBzZXJ0O1xuICBlbnRpdHlOYW1lOiBzdHJpbmc7XG4gIGVudGl0aWVzOiBUW107XG59XG5cbi8qKlxuICogQSBlbnRpdGllcyBvZiBhIHNpbmdsZSBlbnRpdHkgdHlwZSwgd2hpY2ggYXJlIGNoYW5nZWQgaW4gdGhlIHNhbWUgd2F5IGJ5IGEgQ2hhbmdlU2V0T3BlcmF0aW9uXG4gKi9cbmV4cG9ydCB0eXBlIENoYW5nZVNldEl0ZW0gPVxuICB8IENoYW5nZVNldEFkZFxuICB8IENoYW5nZVNldERlbGV0ZVxuICB8IENoYW5nZVNldFVwZGF0ZVxuICB8IENoYW5nZVNldFVwc2VydDtcblxuLypcbiAqIEEgc2V0IG9mIGVudGl0eSBDaGFuZ2VzLCB0eXBpY2FsbHkgdG8gYmUgc2F2ZWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2hhbmdlU2V0PFQgPSBhbnk+IHtcbiAgLyoqIEFuIGFycmF5IG9mIENoYW5nZVNldEl0ZW1zIHRvIGJlIHByb2Nlc3NlZCBpbiB0aGUgYXJyYXkgb3JkZXIgKi9cbiAgY2hhbmdlczogQ2hhbmdlU2V0SXRlbVtdO1xuXG4gIC8qKlxuICAgKiBBbiBhcmJpdHJhcnksIHNlcmlhbGl6YWJsZSBvYmplY3QgdGhhdCBzaG91bGQgdHJhdmVsIHdpdGggdGhlIENoYW5nZVNldC5cbiAgICogTWVhbmluZ2Z1bCB0byB0aGUgQ2hhbmdlU2V0IHByb2R1Y2VyIGFuZCBjb25zdW1lci4gSWdub3JlZCBieSBAbmdyeC9kYXRhLlxuICAgKi9cbiAgZXh0cmFzPzogVDtcblxuICAvKiogQW4gYXJiaXRyYXJ5IHN0cmluZywgaWRlbnRpZnlpbmcgdGhlIENoYW5nZVNldCBhbmQgcGVyaGFwcyBpdHMgcHVycG9zZSAqL1xuICB0YWc/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogRmFjdG9yeSB0byBjcmVhdGUgYSBDaGFuZ2VTZXRJdGVtIGZvciBhIENoYW5nZVNldE9wZXJhdGlvblxuICovXG5leHBvcnQgY2xhc3MgQ2hhbmdlU2V0SXRlbUZhY3Rvcnkge1xuICAvKiogQ3JlYXRlIHRoZSBDaGFuZ2VTZXRBZGQgZm9yIG5ldyBlbnRpdGllcyBvZiB0aGUgZ2l2ZW4gZW50aXR5IHR5cGUgKi9cbiAgYWRkPFQ+KGVudGl0eU5hbWU6IHN0cmluZywgZW50aXRpZXM6IFQgfCBUW10pOiBDaGFuZ2VTZXRBZGQ8VD4ge1xuICAgIGVudGl0aWVzID0gQXJyYXkuaXNBcnJheShlbnRpdGllcykgPyBlbnRpdGllcyA6IGVudGl0aWVzID8gW2VudGl0aWVzXSA6IFtdO1xuICAgIHJldHVybiB7IGVudGl0eU5hbWUsIG9wOiBDaGFuZ2VTZXRPcGVyYXRpb24uQWRkLCBlbnRpdGllcyB9O1xuICB9XG5cbiAgLyoqIENyZWF0ZSB0aGUgQ2hhbmdlU2V0RGVsZXRlIGZvciBwcmltYXJ5IGtleXMgb2YgdGhlIGdpdmVuIGVudGl0eSB0eXBlICovXG4gIGRlbGV0ZShcbiAgICBlbnRpdHlOYW1lOiBzdHJpbmcsXG4gICAga2V5czogbnVtYmVyIHwgbnVtYmVyW10gfCBzdHJpbmcgfCBzdHJpbmdbXVxuICApOiBDaGFuZ2VTZXREZWxldGUge1xuICAgIGNvbnN0IGlkcyA9IEFycmF5LmlzQXJyYXkoa2V5cylcbiAgICAgID8ga2V5c1xuICAgICAgOiBrZXlzXG4gICAgICA/IChba2V5c10gYXMgc3RyaW5nW10gfCBudW1iZXJbXSlcbiAgICAgIDogW107XG4gICAgcmV0dXJuIHsgZW50aXR5TmFtZSwgb3A6IENoYW5nZVNldE9wZXJhdGlvbi5EZWxldGUsIGVudGl0aWVzOiBpZHMgfTtcbiAgfVxuXG4gIC8qKiBDcmVhdGUgdGhlIENoYW5nZVNldFVwZGF0ZSBmb3IgVXBkYXRlcyBvZiBlbnRpdGllcyBvZiB0aGUgZ2l2ZW4gZW50aXR5IHR5cGUgKi9cbiAgdXBkYXRlPFQgZXh0ZW5kcyB7IGlkOiBzdHJpbmcgfCBudW1iZXIgfT4oXG4gICAgZW50aXR5TmFtZTogc3RyaW5nLFxuICAgIHVwZGF0ZXM6IFVwZGF0ZTxUPiB8IFVwZGF0ZTxUPltdXG4gICk6IENoYW5nZVNldFVwZGF0ZTxUPiB7XG4gICAgdXBkYXRlcyA9IEFycmF5LmlzQXJyYXkodXBkYXRlcykgPyB1cGRhdGVzIDogdXBkYXRlcyA/IFt1cGRhdGVzXSA6IFtdO1xuICAgIHJldHVybiB7IGVudGl0eU5hbWUsIG9wOiBDaGFuZ2VTZXRPcGVyYXRpb24uVXBkYXRlLCBlbnRpdGllczogdXBkYXRlcyB9O1xuICB9XG5cbiAgLyoqIENyZWF0ZSB0aGUgQ2hhbmdlU2V0VXBzZXJ0IGZvciBuZXcgb3IgZXhpc3RpbmcgZW50aXRpZXMgb2YgdGhlIGdpdmVuIGVudGl0eSB0eXBlICovXG4gIHVwc2VydDxUPihlbnRpdHlOYW1lOiBzdHJpbmcsIGVudGl0aWVzOiBUIHwgVFtdKTogQ2hhbmdlU2V0VXBzZXJ0PFQ+IHtcbiAgICBlbnRpdGllcyA9IEFycmF5LmlzQXJyYXkoZW50aXRpZXMpID8gZW50aXRpZXMgOiBlbnRpdGllcyA/IFtlbnRpdGllc10gOiBbXTtcbiAgICByZXR1cm4geyBlbnRpdHlOYW1lLCBvcDogQ2hhbmdlU2V0T3BlcmF0aW9uLlVwc2VydCwgZW50aXRpZXMgfTtcbiAgfVxufVxuXG4vKipcbiAqIEluc3RhbmNlIG9mIGEgZmFjdG9yeSB0byBjcmVhdGUgYSBDaGFuZ2VTZXRJdGVtIGZvciBhIENoYW5nZVNldE9wZXJhdGlvblxuICovXG5leHBvcnQgY29uc3QgY2hhbmdlU2V0SXRlbUZhY3RvcnkgPSBuZXcgQ2hhbmdlU2V0SXRlbUZhY3RvcnkoKTtcblxuLyoqXG4gKiBSZXR1cm4gQ2hhbmdlU2V0IGFmdGVyIGZpbHRlcmluZyBvdXQgbnVsbCBhbmQgZW1wdHkgQ2hhbmdlU2V0SXRlbXMuXG4gKiBAcGFyYW0gY2hhbmdlU2V0IENoYW5nZVNldCB3aXRoIGNoYW5nZXMgdG8gZmlsdGVyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBleGNsdWRlRW1wdHlDaGFuZ2VTZXRJdGVtcyhjaGFuZ2VTZXQ6IENoYW5nZVNldCk6IENoYW5nZVNldCB7XG4gIGNoYW5nZVNldCA9IGNoYW5nZVNldCAmJiBjaGFuZ2VTZXQuY2hhbmdlcyA/IGNoYW5nZVNldCA6IHsgY2hhbmdlczogW10gfTtcbiAgY29uc3QgY2hhbmdlcyA9IGNoYW5nZVNldC5jaGFuZ2VzLmZpbHRlcihcbiAgICAoYykgPT4gYyAhPSBudWxsICYmIGMuZW50aXRpZXMgJiYgYy5lbnRpdGllcy5sZW5ndGggPiAwXG4gICk7XG4gIHJldHVybiB7IC4uLmNoYW5nZVNldCwgY2hhbmdlcyB9O1xufVxuIl19
|