@abp/ng.components 9.0.0-rc.1 → 9.0.0-rc.3

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.
@@ -1,3 +1,4 @@
1
+ import { ConfigStateService, PermissionService } from '@abp/ng.core';
1
2
  import { of } from 'rxjs';
2
3
  import { EXTRA_PROPERTIES_KEY } from '../constants/extra-properties';
3
4
  export function createExtraPropertyValueResolver(name) {
@@ -11,15 +12,17 @@ export function mergeWithDefaultProps(extension, defaultProps, ...contributors)
11
12
  contributors.forEach(contributor => (contributor[name] || []).forEach((callback) => props.addContributor(callback)));
12
13
  });
13
14
  }
14
- export function checkPolicies(properties, configState, permissionService) {
15
+ export function checkPolicies(injector, properties) {
16
+ const configState = injector.get(ConfigStateService);
17
+ const permission = injector.get(PermissionService);
15
18
  const props = Object.entries(properties);
16
19
  const checkPolicy = (policy) => {
17
- const { permissions, globalFeatures, features } = policy;
20
+ const { permissions, globalFeatures, features } = policy || {};
18
21
  const checks = [
19
22
  {
20
23
  items: permissions?.permissionNames,
21
24
  requiresAll: permissions?.requiresAll,
22
- check: (item) => permissionService.getGrantedPolicy(item),
25
+ check: (item) => permission.getGrantedPolicy(item),
23
26
  },
24
27
  {
25
28
  items: globalFeatures?.features,
@@ -45,4 +48,4 @@ export function checkPolicies(properties, configState, permissionService) {
45
48
  }
46
49
  });
47
50
  }
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcHMudXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZXh0ZW5zaWJsZS9zcmMvbGliL3V0aWxzL3Byb3BzLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQTBCckUsTUFBTSxVQUFVLGdDQUFnQyxDQUM5QyxJQUFZO0lBRVosT0FBTyxDQUFDLElBQUssRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFFLElBQUksQ0FBQyxNQUFpQyxDQUFDLG9CQUFvQixDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUM1RixDQUFDO0FBRUQsTUFBTSxVQUFVLHFCQUFxQixDQUNuQyxTQUFZLEVBQ1osWUFBcUMsRUFDckMsR0FBRyxZQUFtRDtJQUV0RCxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQVksRUFBRSxFQUFFO1FBQ2pELE1BQU0sS0FBSyxHQUFxQixTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BELEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBQzFCLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQyxRQUEwQyxFQUFFLEVBQUUsQ0FDbEUsUUFBUSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FDekMsQ0FBQztRQUNGLFlBQVksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FDakMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBc0MsRUFBRSxFQUFFLENBQzNFLEtBQUssQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLENBQy9CLENBQ0YsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELE1BQU0sVUFBVSxhQUFhLENBQzNCLFVBQXNELEVBQ3RELFdBQStCLEVBQy9CLGlCQUFvQztJQUVwQyxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRXpDLE1BQU0sV0FBVyxHQUFHLENBQUMsTUFBYyxFQUFXLEVBQUU7UUFDOUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLEdBQUcsTUFBTSxDQUFDO1FBRXpELE1BQU0sTUFBTSxHQUFHO1lBQ2I7Z0JBQ0UsS0FBSyxFQUFFLFdBQVcsRUFBRSxlQUFlO2dCQUNuQyxXQUFXLEVBQUUsV0FBVyxFQUFFLFdBQVc7Z0JBQ3JDLEtBQUssRUFBRSxDQUFDLElBQVksRUFBRSxFQUFFLENBQUMsaUJBQWlCLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDO2FBQ2xFO1lBQ0Q7Z0JBQ0UsS0FBSyxFQUFFLGNBQWMsRUFBRSxRQUFRO2dCQUMvQixXQUFXLEVBQUUsY0FBYyxFQUFFLFdBQVc7Z0JBQ3hDLEtBQUssRUFBRSxDQUFDLElBQVksRUFBRSxFQUFFLENBQUMsV0FBVyxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQzthQUNyRTtZQUNEO2dCQUNFLEtBQUssRUFBRSxRQUFRLEVBQUUsUUFBUTtnQkFDekIsV0FBVyxFQUFFLFFBQVEsRUFBRSxXQUFXO2dCQUNsQyxLQUFLLEVBQUUsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUM7YUFDL0Q7U0FDRixDQUFDO1FBRUYsT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDcEQsSUFBSSxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztnQkFDbkIsT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDO1lBRUQsT0FBTyxXQUFXLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDOUQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUM7SUFFRixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRTtRQUNqQyxJQUFJLFFBQVEsQ0FBQyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7WUFDckQsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUIsQ0FBQztJQUNILENBQUMsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbmZpZ1N0YXRlU2VydmljZSwgUGVybWlzc2lvblNlcnZpY2UgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBFWFRSQV9QUk9QRVJUSUVTX0tFWSB9IGZyb20gJy4uL2NvbnN0YW50cy9leHRyYS1wcm9wZXJ0aWVzJztcclxuaW1wb3J0IHtcclxuICBFbnRpdHlQcm9wQ29udHJpYnV0b3JDYWxsYmFja3MsXHJcbiAgRW50aXR5UHJvcERlZmF1bHRzLFxyXG4gIEVudGl0eVByb3BzLFxyXG4gIEVudGl0eVByb3BzRmFjdG9yeSxcclxufSBmcm9tICcuLi9tb2RlbHMvZW50aXR5LXByb3BzJztcclxuaW1wb3J0IHtcclxuICBDcmVhdGVGb3JtUHJvcENvbnRyaWJ1dG9yQ2FsbGJhY2tzLFxyXG4gIENyZWF0ZUZvcm1Qcm9wRGVmYXVsdHMsXHJcbiAgQ3JlYXRlRm9ybVByb3BzRmFjdG9yeSxcclxuICBFZGl0Rm9ybVByb3BDb250cmlidXRvckNhbGxiYWNrcyxcclxuICBFZGl0Rm9ybVByb3BEZWZhdWx0cyxcclxuICBFZGl0Rm9ybVByb3BzRmFjdG9yeSxcclxuICBGb3JtUHJvcHMsXHJcbn0gZnJvbSAnLi4vbW9kZWxzL2Zvcm0tcHJvcHMnO1xyXG5pbXBvcnQge1xyXG4gIEluZmVycmVkUHJvcCxcclxuICBQcm9wQ2FsbGJhY2ssXHJcbiAgUHJvcENvbnRyaWJ1dG9yQ2FsbGJhY2ssXHJcbiAgUHJvcExpc3QsXHJcbiAgUHJvcHNGYWN0b3J5LFxyXG59IGZyb20gJy4uL21vZGVscy9wcm9wcyc7XHJcbmltcG9ydCB7IFBvbGljeSB9IGZyb20gJy4uL21vZGVscy9pbnRlcm5hbC9vYmplY3QtZXh0ZW5zaW9ucyc7XHJcbmltcG9ydCB7IE9iamVjdEV4dGVuc2lvbnMgfSBmcm9tICcuLi9tb2RlbHMvb2JqZWN0LWV4dGVuc2lvbnMnO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUV4dHJhUHJvcGVydHlWYWx1ZVJlc29sdmVyPFQ+KFxyXG4gIG5hbWU6IHN0cmluZyxcclxuKTogUHJvcENhbGxiYWNrPFQsIE9ic2VydmFibGU8YW55Pj4ge1xyXG4gIHJldHVybiAoZGF0YT8pID0+IG9mKChkYXRhLnJlY29yZCBhcyB7IFtrZXk6IHN0cmluZ106IGFueSB9KVtFWFRSQV9QUk9QRVJUSUVTX0tFWV1bbmFtZV0pO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbWVyZ2VXaXRoRGVmYXVsdFByb3BzPEYgZXh0ZW5kcyBQcm9wc0ZhY3Rvcnk8YW55Pj4oXHJcbiAgZXh0ZW5zaW9uOiBGLFxyXG4gIGRlZmF1bHRQcm9wczogSW5mZXJyZWRQcm9wRGVmYXVsdHM8Rj4sXHJcbiAgLi4uY29udHJpYnV0b3JzOiBJbmZlcnJlZFByb3BDb250cmlidXRvckNhbGxiYWNrczxGPltdXHJcbikge1xyXG4gIE9iamVjdC5rZXlzKGRlZmF1bHRQcm9wcykuZm9yRWFjaCgobmFtZTogc3RyaW5nKSA9PiB7XHJcbiAgICBjb25zdCBwcm9wczogSW5mZXJyZWRQcm9wczxGPiA9IGV4dGVuc2lvbi5nZXQobmFtZSk7XHJcbiAgICBwcm9wcy5jbGVhckNvbnRyaWJ1dG9ycygpO1xyXG4gICAgcHJvcHMuYWRkQ29udHJpYnV0b3IoKHByb3BMaXN0OiBQcm9wTGlzdDxhbnksIEluZmVycmVkUHJvcDxhbnk+PikgPT5cclxuICAgICAgcHJvcExpc3QuYWRkTWFueVRhaWwoZGVmYXVsdFByb3BzW25hbWVdKSxcclxuICAgICk7XHJcbiAgICBjb250cmlidXRvcnMuZm9yRWFjaChjb250cmlidXRvciA9PlxyXG4gICAgICAoY29udHJpYnV0b3JbbmFtZV0gfHwgW10pLmZvckVhY2goKGNhbGxiYWNrOiBQcm9wQ29udHJpYnV0b3JDYWxsYmFjazxhbnk+KSA9PlxyXG4gICAgICAgIHByb3BzLmFkZENvbnRyaWJ1dG9yKGNhbGxiYWNrKSxcclxuICAgICAgKSxcclxuICAgICk7XHJcbiAgfSk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjaGVja1BvbGljaWVzKFxyXG4gIHByb3BlcnRpZXM6IE9iamVjdEV4dGVuc2lvbnMuRW50aXR5RXh0ZW5zaW9uUHJvcGVydGllcyxcclxuICBjb25maWdTdGF0ZTogQ29uZmlnU3RhdGVTZXJ2aWNlLFxyXG4gIHBlcm1pc3Npb25TZXJ2aWNlOiBQZXJtaXNzaW9uU2VydmljZSxcclxuKSB7XHJcbiAgY29uc3QgcHJvcHMgPSBPYmplY3QuZW50cmllcyhwcm9wZXJ0aWVzKTtcclxuXHJcbiAgY29uc3QgY2hlY2tQb2xpY3kgPSAocG9saWN5OiBQb2xpY3kpOiBib29sZWFuID0+IHtcclxuICAgIGNvbnN0IHsgcGVybWlzc2lvbnMsIGdsb2JhbEZlYXR1cmVzLCBmZWF0dXJlcyB9ID0gcG9saWN5O1xyXG5cclxuICAgIGNvbnN0IGNoZWNrcyA9IFtcclxuICAgICAge1xyXG4gICAgICAgIGl0ZW1zOiBwZXJtaXNzaW9ucz8ucGVybWlzc2lvbk5hbWVzLFxyXG4gICAgICAgIHJlcXVpcmVzQWxsOiBwZXJtaXNzaW9ucz8ucmVxdWlyZXNBbGwsXHJcbiAgICAgICAgY2hlY2s6IChpdGVtOiBzdHJpbmcpID0+IHBlcm1pc3Npb25TZXJ2aWNlLmdldEdyYW50ZWRQb2xpY3koaXRlbSksXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpdGVtczogZ2xvYmFsRmVhdHVyZXM/LmZlYXR1cmVzLFxyXG4gICAgICAgIHJlcXVpcmVzQWxsOiBnbG9iYWxGZWF0dXJlcz8ucmVxdWlyZXNBbGwsXHJcbiAgICAgICAgY2hlY2s6IChpdGVtOiBzdHJpbmcpID0+IGNvbmZpZ1N0YXRlLmdldEdsb2JhbEZlYXR1cmVJc0VuYWJsZWQoaXRlbSksXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpdGVtczogZmVhdHVyZXM/LmZlYXR1cmVzLFxyXG4gICAgICAgIHJlcXVpcmVzQWxsOiBmZWF0dXJlcz8ucmVxdWlyZXNBbGwsXHJcbiAgICAgICAgY2hlY2s6IChpdGVtOiBzdHJpbmcpID0+IGNvbmZpZ1N0YXRlLmdldEZlYXR1cmVJc0VuYWJsZWQoaXRlbSksXHJcbiAgICAgIH0sXHJcbiAgICBdO1xyXG5cclxuICAgIHJldHVybiBjaGVja3MuZXZlcnkoKHsgaXRlbXMsIHJlcXVpcmVzQWxsLCBjaGVjayB9KSA9PiB7XHJcbiAgICAgIGlmICghaXRlbXM/Lmxlbmd0aCkge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gcmVxdWlyZXNBbGwgPyBpdGVtcy5ldmVyeShjaGVjaykgOiBpdGVtcy5zb21lKGNoZWNrKTtcclxuICAgIH0pO1xyXG4gIH07XHJcblxyXG4gIHByb3BzLmZvckVhY2goKFtuYW1lLCBwcm9wZXJ0eV0pID0+IHtcclxuICAgIGlmIChwcm9wZXJ0eS5wb2xpY3kgJiYgIWNoZWNrUG9saWN5KHByb3BlcnR5LnBvbGljeSkpIHtcclxuICAgICAgZGVsZXRlIHByb3BlcnRpZXNbbmFtZV07XHJcbiAgICB9XHJcbiAgfSk7XHJcbn1cclxuXHJcbnR5cGUgSW5mZXJyZWRQcm9wRGVmYXVsdHM8Rj4gPVxyXG4gIEYgZXh0ZW5kcyBFbnRpdHlQcm9wc0ZhY3Rvcnk8aW5mZXIgUkU+XHJcbiAgICA/IEVudGl0eVByb3BEZWZhdWx0czxSRT5cclxuICAgIDogRiBleHRlbmRzIENyZWF0ZUZvcm1Qcm9wc0ZhY3Rvcnk8aW5mZXIgUkNGPlxyXG4gICAgICA/IENyZWF0ZUZvcm1Qcm9wRGVmYXVsdHM8UkNGPlxyXG4gICAgICA6IEYgZXh0ZW5kcyBFZGl0Rm9ybVByb3BzRmFjdG9yeTxpbmZlciBSRUY+XHJcbiAgICAgICAgPyBFZGl0Rm9ybVByb3BEZWZhdWx0czxSRUY+XHJcbiAgICAgICAgOiBuZXZlcjtcclxuXHJcbnR5cGUgSW5mZXJyZWRQcm9wQ29udHJpYnV0b3JDYWxsYmFja3M8Rj4gPVxyXG4gIEYgZXh0ZW5kcyBFbnRpdHlQcm9wc0ZhY3Rvcnk8aW5mZXIgUkU+XHJcbiAgICA/IEVudGl0eVByb3BDb250cmlidXRvckNhbGxiYWNrczxSRT5cclxuICAgIDogRiBleHRlbmRzIENyZWF0ZUZvcm1Qcm9wc0ZhY3Rvcnk8aW5mZXIgUkNGPlxyXG4gICAgICA/IENyZWF0ZUZvcm1Qcm9wQ29udHJpYnV0b3JDYWxsYmFja3M8UkNGPlxyXG4gICAgICA6IEYgZXh0ZW5kcyBFZGl0Rm9ybVByb3BzRmFjdG9yeTxpbmZlciBSRUY+XHJcbiAgICAgICAgPyBFZGl0Rm9ybVByb3BDb250cmlidXRvckNhbGxiYWNrczxSRUY+XHJcbiAgICAgICAgOiBuZXZlcjtcclxuXHJcbnR5cGUgSW5mZXJyZWRQcm9wczxGPiA9XHJcbiAgRiBleHRlbmRzIEVudGl0eVByb3BzRmFjdG9yeTxpbmZlciBSRT5cclxuICAgID8gRW50aXR5UHJvcHM8UkU+XHJcbiAgICA6IEYgZXh0ZW5kcyBDcmVhdGVGb3JtUHJvcHNGYWN0b3J5PGluZmVyIFJDRj5cclxuICAgICAgPyBGb3JtUHJvcHM8UkNGPlxyXG4gICAgICA6IEYgZXh0ZW5kcyBFZGl0Rm9ybVByb3BzRmFjdG9yeTxpbmZlciBSRUY+XHJcbiAgICAgICAgPyBGb3JtUHJvcHM8UkVGPlxyXG4gICAgICAgIDogbmV2ZXI7XHJcbiJdfQ==
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvcHMudXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZXh0ZW5zaWJsZS9zcmMvbGliL3V0aWxzL3Byb3BzLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRXJFLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUEwQnJFLE1BQU0sVUFBVSxnQ0FBZ0MsQ0FDOUMsSUFBWTtJQUVaLE9BQU8sQ0FBQyxJQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBRSxJQUFJLENBQUMsTUFBaUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDNUYsQ0FBQztBQUVELE1BQU0sVUFBVSxxQkFBcUIsQ0FDbkMsU0FBWSxFQUNaLFlBQXFDLEVBQ3JDLEdBQUcsWUFBbUQ7SUFFdEQsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFZLEVBQUUsRUFBRTtRQUNqRCxNQUFNLEtBQUssR0FBcUIsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwRCxLQUFLLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUMxQixLQUFLLENBQUMsY0FBYyxDQUFDLENBQUMsUUFBMEMsRUFBRSxFQUFFLENBQ2xFLFFBQVEsQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQ3pDLENBQUM7UUFDRixZQUFZLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFLENBQ2pDLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQXNDLEVBQUUsRUFBRSxDQUMzRSxLQUFLLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUMvQixDQUNGLENBQUM7SUFDSixDQUFDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxNQUFNLFVBQVUsYUFBYSxDQUMzQixRQUFrQixFQUNsQixVQUFzRDtJQUV0RCxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDckQsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQ25ELE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFekMsTUFBTSxXQUFXLEdBQUcsQ0FBQyxNQUFjLEVBQVcsRUFBRTtRQUM5QyxNQUFNLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsR0FBRyxNQUFNLElBQUksRUFBRSxDQUFDO1FBRS9ELE1BQU0sTUFBTSxHQUFHO1lBQ2I7Z0JBQ0UsS0FBSyxFQUFFLFdBQVcsRUFBRSxlQUFlO2dCQUNuQyxXQUFXLEVBQUUsV0FBVyxFQUFFLFdBQVc7Z0JBQ3JDLEtBQUssRUFBRSxDQUFDLElBQVksRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQzthQUMzRDtZQUNEO2dCQUNFLEtBQUssRUFBRSxjQUFjLEVBQUUsUUFBUTtnQkFDL0IsV0FBVyxFQUFFLGNBQWMsRUFBRSxXQUFXO2dCQUN4QyxLQUFLLEVBQUUsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUM7YUFDckU7WUFDRDtnQkFDRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFFBQVE7Z0JBQ3pCLFdBQVcsRUFBRSxRQUFRLEVBQUUsV0FBVztnQkFDbEMsS0FBSyxFQUFFLENBQUMsSUFBWSxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDO2FBQy9EO1NBQ0YsQ0FBQztRQUVGLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ3BELElBQUksQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLENBQUM7Z0JBQ25CLE9BQU8sSUFBSSxDQUFDO1lBQ2QsQ0FBQztZQUVELE9BQU8sV0FBVyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDO0lBRUYsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUU7UUFDakMsSUFBSSxRQUFRLENBQUMsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ3JELE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFCLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb25maWdTdGF0ZVNlcnZpY2UsIFBlcm1pc3Npb25TZXJ2aWNlIH0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHsgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRVhUUkFfUFJPUEVSVElFU19LRVkgfSBmcm9tICcuLi9jb25zdGFudHMvZXh0cmEtcHJvcGVydGllcyc7XHJcbmltcG9ydCB7XHJcbiAgRW50aXR5UHJvcENvbnRyaWJ1dG9yQ2FsbGJhY2tzLFxyXG4gIEVudGl0eVByb3BEZWZhdWx0cyxcclxuICBFbnRpdHlQcm9wcyxcclxuICBFbnRpdHlQcm9wc0ZhY3RvcnksXHJcbn0gZnJvbSAnLi4vbW9kZWxzL2VudGl0eS1wcm9wcyc7XHJcbmltcG9ydCB7XHJcbiAgQ3JlYXRlRm9ybVByb3BDb250cmlidXRvckNhbGxiYWNrcyxcclxuICBDcmVhdGVGb3JtUHJvcERlZmF1bHRzLFxyXG4gIENyZWF0ZUZvcm1Qcm9wc0ZhY3RvcnksXHJcbiAgRWRpdEZvcm1Qcm9wQ29udHJpYnV0b3JDYWxsYmFja3MsXHJcbiAgRWRpdEZvcm1Qcm9wRGVmYXVsdHMsXHJcbiAgRWRpdEZvcm1Qcm9wc0ZhY3RvcnksXHJcbiAgRm9ybVByb3BzLFxyXG59IGZyb20gJy4uL21vZGVscy9mb3JtLXByb3BzJztcclxuaW1wb3J0IHtcclxuICBJbmZlcnJlZFByb3AsXHJcbiAgUHJvcENhbGxiYWNrLFxyXG4gIFByb3BDb250cmlidXRvckNhbGxiYWNrLFxyXG4gIFByb3BMaXN0LFxyXG4gIFByb3BzRmFjdG9yeSxcclxufSBmcm9tICcuLi9tb2RlbHMvcHJvcHMnO1xyXG5pbXBvcnQgeyBQb2xpY3kgfSBmcm9tICcuLi9tb2RlbHMvaW50ZXJuYWwvb2JqZWN0LWV4dGVuc2lvbnMnO1xyXG5pbXBvcnQgeyBPYmplY3RFeHRlbnNpb25zIH0gZnJvbSAnLi4vbW9kZWxzL29iamVjdC1leHRlbnNpb25zJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVFeHRyYVByb3BlcnR5VmFsdWVSZXNvbHZlcjxUPihcclxuICBuYW1lOiBzdHJpbmcsXHJcbik6IFByb3BDYWxsYmFjazxULCBPYnNlcnZhYmxlPGFueT4+IHtcclxuICByZXR1cm4gKGRhdGE/KSA9PiBvZigoZGF0YS5yZWNvcmQgYXMgeyBba2V5OiBzdHJpbmddOiBhbnkgfSlbRVhUUkFfUFJPUEVSVElFU19LRVldW25hbWVdKTtcclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlV2l0aERlZmF1bHRQcm9wczxGIGV4dGVuZHMgUHJvcHNGYWN0b3J5PGFueT4+KFxyXG4gIGV4dGVuc2lvbjogRixcclxuICBkZWZhdWx0UHJvcHM6IEluZmVycmVkUHJvcERlZmF1bHRzPEY+LFxyXG4gIC4uLmNvbnRyaWJ1dG9yczogSW5mZXJyZWRQcm9wQ29udHJpYnV0b3JDYWxsYmFja3M8Rj5bXVxyXG4pIHtcclxuICBPYmplY3Qua2V5cyhkZWZhdWx0UHJvcHMpLmZvckVhY2goKG5hbWU6IHN0cmluZykgPT4ge1xyXG4gICAgY29uc3QgcHJvcHM6IEluZmVycmVkUHJvcHM8Rj4gPSBleHRlbnNpb24uZ2V0KG5hbWUpO1xyXG4gICAgcHJvcHMuY2xlYXJDb250cmlidXRvcnMoKTtcclxuICAgIHByb3BzLmFkZENvbnRyaWJ1dG9yKChwcm9wTGlzdDogUHJvcExpc3Q8YW55LCBJbmZlcnJlZFByb3A8YW55Pj4pID0+XHJcbiAgICAgIHByb3BMaXN0LmFkZE1hbnlUYWlsKGRlZmF1bHRQcm9wc1tuYW1lXSksXHJcbiAgICApO1xyXG4gICAgY29udHJpYnV0b3JzLmZvckVhY2goY29udHJpYnV0b3IgPT5cclxuICAgICAgKGNvbnRyaWJ1dG9yW25hbWVdIHx8IFtdKS5mb3JFYWNoKChjYWxsYmFjazogUHJvcENvbnRyaWJ1dG9yQ2FsbGJhY2s8YW55PikgPT5cclxuICAgICAgICBwcm9wcy5hZGRDb250cmlidXRvcihjYWxsYmFjayksXHJcbiAgICAgICksXHJcbiAgICApO1xyXG4gIH0pO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tQb2xpY2llcyhcclxuICBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgcHJvcGVydGllczogT2JqZWN0RXh0ZW5zaW9ucy5FbnRpdHlFeHRlbnNpb25Qcm9wZXJ0aWVzLFxyXG4pIHtcclxuICBjb25zdCBjb25maWdTdGF0ZSA9IGluamVjdG9yLmdldChDb25maWdTdGF0ZVNlcnZpY2UpO1xyXG4gIGNvbnN0IHBlcm1pc3Npb24gPSBpbmplY3Rvci5nZXQoUGVybWlzc2lvblNlcnZpY2UpO1xyXG4gIGNvbnN0IHByb3BzID0gT2JqZWN0LmVudHJpZXMocHJvcGVydGllcyk7XHJcblxyXG4gIGNvbnN0IGNoZWNrUG9saWN5ID0gKHBvbGljeTogUG9saWN5KTogYm9vbGVhbiA9PiB7XHJcbiAgICBjb25zdCB7IHBlcm1pc3Npb25zLCBnbG9iYWxGZWF0dXJlcywgZmVhdHVyZXMgfSA9IHBvbGljeSB8fCB7fTtcclxuXHJcbiAgICBjb25zdCBjaGVja3MgPSBbXHJcbiAgICAgIHtcclxuICAgICAgICBpdGVtczogcGVybWlzc2lvbnM/LnBlcm1pc3Npb25OYW1lcyxcclxuICAgICAgICByZXF1aXJlc0FsbDogcGVybWlzc2lvbnM/LnJlcXVpcmVzQWxsLFxyXG4gICAgICAgIGNoZWNrOiAoaXRlbTogc3RyaW5nKSA9PiBwZXJtaXNzaW9uLmdldEdyYW50ZWRQb2xpY3koaXRlbSksXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpdGVtczogZ2xvYmFsRmVhdHVyZXM/LmZlYXR1cmVzLFxyXG4gICAgICAgIHJlcXVpcmVzQWxsOiBnbG9iYWxGZWF0dXJlcz8ucmVxdWlyZXNBbGwsXHJcbiAgICAgICAgY2hlY2s6IChpdGVtOiBzdHJpbmcpID0+IGNvbmZpZ1N0YXRlLmdldEdsb2JhbEZlYXR1cmVJc0VuYWJsZWQoaXRlbSksXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpdGVtczogZmVhdHVyZXM/LmZlYXR1cmVzLFxyXG4gICAgICAgIHJlcXVpcmVzQWxsOiBmZWF0dXJlcz8ucmVxdWlyZXNBbGwsXHJcbiAgICAgICAgY2hlY2s6IChpdGVtOiBzdHJpbmcpID0+IGNvbmZpZ1N0YXRlLmdldEZlYXR1cmVJc0VuYWJsZWQoaXRlbSksXHJcbiAgICAgIH0sXHJcbiAgICBdO1xyXG5cclxuICAgIHJldHVybiBjaGVja3MuZXZlcnkoKHsgaXRlbXMsIHJlcXVpcmVzQWxsLCBjaGVjayB9KSA9PiB7XHJcbiAgICAgIGlmICghaXRlbXM/Lmxlbmd0aCkge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gcmVxdWlyZXNBbGwgPyBpdGVtcy5ldmVyeShjaGVjaykgOiBpdGVtcy5zb21lKGNoZWNrKTtcclxuICAgIH0pO1xyXG4gIH07XHJcblxyXG4gIHByb3BzLmZvckVhY2goKFtuYW1lLCBwcm9wZXJ0eV0pID0+IHtcclxuICAgIGlmIChwcm9wZXJ0eS5wb2xpY3kgJiYgIWNoZWNrUG9saWN5KHByb3BlcnR5LnBvbGljeSkpIHtcclxuICAgICAgZGVsZXRlIHByb3BlcnRpZXNbbmFtZV07XHJcbiAgICB9XHJcbiAgfSk7XHJcbn1cclxuXHJcbnR5cGUgSW5mZXJyZWRQcm9wRGVmYXVsdHM8Rj4gPVxyXG4gIEYgZXh0ZW5kcyBFbnRpdHlQcm9wc0ZhY3Rvcnk8aW5mZXIgUkU+XHJcbiAgICA/IEVudGl0eVByb3BEZWZhdWx0czxSRT5cclxuICAgIDogRiBleHRlbmRzIENyZWF0ZUZvcm1Qcm9wc0ZhY3Rvcnk8aW5mZXIgUkNGPlxyXG4gICAgICA/IENyZWF0ZUZvcm1Qcm9wRGVmYXVsdHM8UkNGPlxyXG4gICAgICA6IEYgZXh0ZW5kcyBFZGl0Rm9ybVByb3BzRmFjdG9yeTxpbmZlciBSRUY+XHJcbiAgICAgICAgPyBFZGl0Rm9ybVByb3BEZWZhdWx0czxSRUY+XHJcbiAgICAgICAgOiBuZXZlcjtcclxuXHJcbnR5cGUgSW5mZXJyZWRQcm9wQ29udHJpYnV0b3JDYWxsYmFja3M8Rj4gPVxyXG4gIEYgZXh0ZW5kcyBFbnRpdHlQcm9wc0ZhY3Rvcnk8aW5mZXIgUkU+XHJcbiAgICA/IEVudGl0eVByb3BDb250cmlidXRvckNhbGxiYWNrczxSRT5cclxuICAgIDogRiBleHRlbmRzIENyZWF0ZUZvcm1Qcm9wc0ZhY3Rvcnk8aW5mZXIgUkNGPlxyXG4gICAgICA/IENyZWF0ZUZvcm1Qcm9wQ29udHJpYnV0b3JDYWxsYmFja3M8UkNGPlxyXG4gICAgICA6IEYgZXh0ZW5kcyBFZGl0Rm9ybVByb3BzRmFjdG9yeTxpbmZlciBSRUY+XHJcbiAgICAgICAgPyBFZGl0Rm9ybVByb3BDb250cmlidXRvckNhbGxiYWNrczxSRUY+XHJcbiAgICAgICAgOiBuZXZlcjtcclxuXHJcbnR5cGUgSW5mZXJyZWRQcm9wczxGPiA9XHJcbiAgRiBleHRlbmRzIEVudGl0eVByb3BzRmFjdG9yeTxpbmZlciBSRT5cclxuICAgID8gRW50aXR5UHJvcHM8UkU+XHJcbiAgICA6IEYgZXh0ZW5kcyBDcmVhdGVGb3JtUHJvcHNGYWN0b3J5PGluZmVyIFJDRj5cclxuICAgICAgPyBGb3JtUHJvcHM8UkNGPlxyXG4gICAgICA6IEYgZXh0ZW5kcyBFZGl0Rm9ybVByb3BzRmFjdG9yeTxpbmZlciBSRUY+XHJcbiAgICAgICAgPyBGb3JtUHJvcHM8UkVGPlxyXG4gICAgICAgIDogbmV2ZXI7XHJcbiJdfQ==
@@ -1,3 +1,4 @@
1
+ import { ConfigStateService, } from '@abp/ng.core';
1
2
  import { pipe, zip } from 'rxjs';
2
3
  import { filter, map, switchMap, take } from 'rxjs/operators';
3
4
  import { EntityProp } from '../models/entity-props';
@@ -24,7 +25,8 @@ function selectEnums(configState) {
24
25
  return acc;
25
26
  }, {})));
26
27
  }
27
- export function getObjectExtensionEntitiesFromStore(configState, moduleKey) {
28
+ export function getObjectExtensionEntitiesFromStore(injector, moduleKey) {
29
+ const configState = injector.get(ConfigStateService);
28
30
  return selectObjectExtensions(configState).pipe(map(extensions => {
29
31
  if (!extensions)
30
32
  return null;
@@ -32,7 +34,8 @@ export function getObjectExtensionEntitiesFromStore(configState, moduleKey) {
32
34
  .entities;
33
35
  }), map(entities => (isUndefined(entities) ? {} : entities)), filter(Boolean), take(1));
34
36
  }
35
- export function mapEntitiesToContributors(configState, permissionService, resource) {
37
+ export function mapEntitiesToContributors(injector, resource) {
38
+ const configState = injector.get(ConfigStateService);
36
39
  return pipe(switchMap((entities) => zip(selectLocalization(configState), selectEnums(configState)).pipe(map(([localization, enums]) => {
37
40
  const generateDisplayName = createDisplayNameLocalizationPipeKeyGenerator(localization);
38
41
  return Object.keys(entities).reduce((acc, key) => {
@@ -47,7 +50,7 @@ export function mapEntitiesToContributors(configState, permissionService, resour
47
50
  if (!properties) {
48
51
  return acc;
49
52
  }
50
- checkPolicies(properties, configState, permissionService);
53
+ checkPolicies(injector, properties);
51
54
  const mapPropertiesToContributors = createPropertiesToContributorsMapper(generateDisplayName, resource, enums);
52
55
  return mapPropertiesToContributors(properties, acc, key);
53
56
  }, {
@@ -126,4 +129,4 @@ function getTypeFromProperty(property) {
126
129
  function isUndefined(obj) {
127
130
  return typeof obj === 'undefined';
128
131
  }
129
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUudXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZXh0ZW5zaWJsZS9zcmMvbGliL3V0aWxzL3N0YXRlLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBU0EsT0FBTyxFQUFjLElBQUksRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTlELE9BQU8sRUFBRSxVQUFVLEVBQWtCLE1BQU0sd0JBQXdCLENBQUM7QUFDcEUsT0FBTyxFQUFFLFFBQVEsRUFBZ0IsTUFBTSxzQkFBc0IsQ0FBQztBQUc5RCxPQUFPLEVBQUUsVUFBVSxFQUFFLGlCQUFpQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3JGLE9BQU8sRUFBRSw2Q0FBNkMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3BGLE9BQU8sRUFBRSxhQUFhLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDL0UsT0FBTyxFQUNMLG1DQUFtQyxFQUNuQyxzQkFBc0IsRUFDdEIsZ0JBQWdCLEVBQ2hCLHNCQUFzQixHQUN2QixNQUFNLGtCQUFrQixDQUFDO0FBQzFCLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTlELFNBQVMsc0JBQXNCLENBQUMsV0FBK0I7SUFDN0QsT0FBTyxXQUFXLENBQUMsT0FBTyxDQUFDLGtCQUFrQixDQUFDLENBQUM7QUFDakQsQ0FBQztBQUVELFNBQVMsa0JBQWtCLENBQ3pCLFdBQStCO0lBRS9CLE9BQU8sV0FBVyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztBQUM3QyxDQUFDO0FBRUQsU0FBUyxXQUFXLENBQ2xCLFdBQStCO0lBRS9CLE9BQU8sc0JBQXNCLENBQUMsV0FB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e1xyXG4gIEFCUCxcclxuICBBcHBsaWNhdGlvbkxvY2FsaXphdGlvbkNvbmZpZ3VyYXRpb25EdG8sXHJcbiAgQ29uZmlnU3RhdGVTZXJ2aWNlLFxyXG4gIEV4dGVuc2lvbkVudW1EdG8sXHJcbiAgRXh0ZW5zaW9uUHJvcGVydHlVaUxvb2t1cER0byxcclxuICBPYmplY3RFeHRlbnNpb25zRHRvLFxyXG4gIFBlcm1pc3Npb25TZXJ2aWNlLFxyXG59IGZyb20gJ0BhYnAvbmcuY29yZSc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIHBpcGUsIHppcCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCwgc3dpdGNoTWFwLCB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBlUHJvcFR5cGUgfSBmcm9tICcuLi9lbnVtcy9wcm9wcy5lbnVtJztcclxuaW1wb3J0IHsgRW50aXR5UHJvcCwgRW50aXR5UHJvcExpc3QgfSBmcm9tICcuLi9tb2RlbHMvZW50aXR5LXByb3BzJztcclxuaW1wb3J0IHsgRm9ybVByb3AsIEZvcm1Qcm9wTGlzdCB9IGZyb20gJy4uL21vZGVscy9mb3JtLXByb3BzJztcclxuaW1wb3J0IHsgT2JqZWN0RXh0ZW5zaW9ucyB9IGZyb20gJy4uL21vZGVscy9vYmplY3QtZXh0ZW5zaW9ucyc7XHJcbmltcG9ydCB7IFByb3BDYWxsYmFjayB9IGZyb20gJy4uL21vZGVscy9wcm9wcyc7XHJcbmltcG9ydCB7IGNyZWF0ZUVudW0sIGNyZWF0ZUVudW1PcHRpb25zLCBjcmVhdGVFbnVtVmFsdWVSZXNvbHZlciB9IGZyb20gJy4vZW51bS51dGlsJztcclxuaW1wb3J0IHsgY3JlYXRlRGlzcGxheU5hbWVMb2NhbGl6YXRpb25QaXBlS2V5R2VuZXJhdG9yIH0gZnJvbSAnLi9sb2NhbGl6YXRpb24udXRpbCc7XHJcbmltcG9ydCB7IGNoZWNrUG9saWNpZXMsIGNyZWF0ZUV4dHJhUHJvcGVydHlWYWx1ZVJlc29sdmVyIH0gZnJvbSAnLi9wcm9wcy51dGlsJztcclxuaW1wb3J0IHtcclxuICBjcmVhdGVUeXBlYWhlYWREaXNwbGF5TmFtZUdlbmVyYXRvcixcclxuICBjcmVhdGVUeXBlYWhlYWRPcHRpb25zLFxyXG4gIGdldFR5cGVhaGVhZFR5cGUsXHJcbiAgaGFzVHlwZWFoZWFkVGV4dFN1ZmZpeCxcclxufSBmcm9tICcuL3R5cGVhaGVhZC51dGlsJztcclxuaW1wb3J0IHsgZ2V0VmFsaWRhdG9yc0Zyb21Qcm9wZXJ0eSB9IGZyb20gJy4vdmFsaWRhdGlvbi51dGlsJztcclxuXHJcbmZ1bmN0aW9uIHNlbGVjdE9iamVjdEV4dGVuc2lvbnMoY29uZmlnU3RhdGU6IENvbmZpZ1N0YXRlU2VydmljZSk6IE9ic2VydmFibGU8T2JqZWN0RXh0ZW5zaW9uc0R0bz4ge1xyXG4gIHJldHVybiBjb25maWdTdGF0ZS5nZXRPbmUkKCdvYmplY3RFeHRlbnNpb25zJyk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHNlbGVjdExvY2FsaXphdGlvbihcclxuICBjb25maWdTdGF0ZTogQ29uZmlnU3RhdGVTZXJ2aWNlLFxyXG4pOiBPYnNlcnZhYmxlPEFwcGxpY2F0aW9uTG9jYWxpemF0aW9uQ29uZmlndXJhdGlvbkR0bz4ge1xyXG4gIHJldHVybiBjb25maWdTdGF0ZS5nZXRPbmUkKCdsb2NhbGl6YXRpb24nKTtcclxufVxyXG5cclxuZnVuY3Rpb24gc2VsZWN0RW51bXMoXHJcbiAgY29uZmlnU3RhdGU6IENvbmZpZ1N0YXRlU2VydmljZSxcclxuKTogT2JzZXJ2YWJsZTxSZWNvcmQ8c3RyaW5nLCBFeHRlbnNpb25FbnVtRHRvPj4ge1xyXG4gIHJldHVybiBzZWxlY3RPYmplY3RFeHRlbnNpb25zKGNvbmZpZ1N0YXRlKS5waXBlKFxyXG4gICAgbWFwKChleHRlbnNpb25zOiBPYmplY3RFeHRlbnNpb25zRHRvKSA9PlxyXG4gICAgICBPYmplY3Qua2V5cyhleHRlbnNpb25zLmVudW1zKS5yZWR1Y2UoXHJcbiAgICAgICAgKGFjYywga2V5KSA9PiB7XHJcbiAgICAgICAgICBjb25zdCB7IGZpZWxkcywgbG9jYWxpemF0aW9uUmVzb3VyY2UgfSA9IGV4dGVuc2lvbnMuZW51bXNba2V5XTtcclxuICAgICAgICAgIGFjY1trZXldID0ge1xyXG4gICAgICAgICAgICBmaWVsZHMsXHJcbiAgICAgICAgICAgIGxvY2FsaXphdGlvblJlc291cmNlLFxyXG4gICAgICAgICAgICB0cmFuc2Zvcm1lZDogY3JlYXRlRW51bShmaWVsZHMpLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICAgIHJldHVybiBhY2M7XHJcbiAgICAgICAgfSxcclxuICAgICAgICB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBPYmplY3RFeHRlbnNpb25zLkV4dGVuc2lvbkVudW1EdG8+LFxyXG4gICAgICApLFxyXG4gICAgKSxcclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gZ2V0T2JqZWN0RXh0ZW5zaW9uRW50aXRpZXNGcm9tU3RvcmUoXHJcbiAgY29uZmlnU3RhdGU6IENvbmZpZ1N0YXRlU2VydmljZSxcclxuICBtb2R1bGVLZXk6IHN0cmluZyxcclxuKSB7XHJcbiAgcmV0dXJuIHNlbGVjdE9iamVjdEV4dGVuc2lvbnMoY29uZmlnU3RhdGUpLnBpcGUoXHJcbiAgICBtYXAoZXh0ZW5zaW9ucyA9PiB7XHJcbiAgICAgIGlmICghZXh0ZW5zaW9ucykgcmV0dXJuIG51bGw7XHJcblxyXG4gICAgICByZXR1cm4gKGV4dGVuc2lvbnMubW9kdWxlc1ttb2R1bGVLZXldIHx8ICh7fSBhcyBPYmplY3RFeHRlbnNpb25zLk1vZHVsZUV4dGVuc2lvbkR0bykpXHJcbiAgICAgICAgLmVudGl0aWVzO1xyXG4gICAgfSksXHJcbiAgICBtYXAoZW50aXRpZXMgPT4gKGlzVW5kZWZpbmVkKGVudGl0aWVzKSA/ICh7fSBhcyBhbnkpIDogZW50aXRpZXMpKSxcclxuICAgIGZpbHRlcjxPYmplY3RFeHRlbnNpb25zLkVudGl0eUV4dGVuc2lvbnM+KEJvb2xlYW4pLFxyXG4gICAgdGFrZSgxKSxcclxuICApO1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbWFwRW50aXRpZXNUb0NvbnRyaWJ1dG9yczxUID0gYW55PihcclxuICBjb25maWdTdGF0ZTogQ29uZmlnU3RhdGVTZXJ2aWNlLFxyXG4gIHBlcm1pc3Npb25TZXJ2aWNlOiBQZXJtaXNzaW9uU2VydmljZSxcclxuICByZXNvdXJjZTogc3RyaW5nLFxyXG4pIHtcclxuICByZXR1cm4gcGlwZShcclxuICAgIHN3aXRjaE1hcCgoZW50aXRpZXM6IGFueSkgPT5cclxuICAgICAgemlwKHNlbGVjdExvY2FsaXphdGlvbihjb25maWdTdGF0ZSksIHNlbGVjdEVudW1zKGNvbmZpZ1N0YXRlKSkucGlwZShcclxuICAgICAgICBtYXAoKFtsb2NhbGl6YXRpb24sIGVudW1zXSkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgZ2VuZXJhdGVEaXNwbGF5TmFtZSA9IGNyZWF0ZURpc3BsYXlOYW1lTG9jYWxpemF0aW9uUGlwZUtleUdlbmVyYXRvcihsb2NhbGl6YXRpb24pO1xyXG5cclxuICAgICAgICAgIHJldHVybiBPYmplY3Qua2V5cyhlbnRpdGllcykucmVkdWNlKFxyXG4gICAgICAgICAgICAoYWNjLCBrZXk6IGtleW9mIE9iamVjdEV4dGVuc2lvbnMuRW50aXR5RXh0ZW5zaW9ucykgPT4ge1xyXG4gICAgICAgICAgICAgIGFjYy5wcm9wW2tleV0gPSBbXTtcclxuICAgICAgICAgICAgICBhY2MuY3JlYXRlRm9ybVtrZXldID0gW107XHJcbiAgICAgICAgICAgICAgYWNjLmVkaXRGb3JtW2tleV0gPSBbXTtcclxuXHJcbiAgICAgICAgICAgICAgY29uc3QgZW50aXR5OiBPYmplY3RFeHRlbnNpb25zLkVudGl0eUV4dGVuc2lvbkR0byA9IGVudGl0aWVzW2tleV07XHJcbiAgICAgICAgICAgICAgaWYgKCFlbnRpdHkpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiBhY2M7XHJcbiAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICBjb25zdCBwcm9wZXJ0aWVzID0gZW50aXR5LnByb3BlcnRpZXM7XHJcbiAgICAgICAgICAgICAgaWYgKCFwcm9wZXJ0aWVzKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gYWNjO1xyXG4gICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgY2hlY2tQb2xpY2llcyhwcm9wZXJ0aWVzLCBjb25maWdTdGF0ZSwgcGVybWlzc2lvblNlcnZpY2UpO1xyXG5cclxuICAgICAgICAgICAgICBjb25zdCBtYXBQcm9wZXJ0aWVzVG9Db250cmlidXRvcnMgPSBjcmVhdGVQcm9wZXJ0aWVzVG9Db250cmlidXRvcnNNYXBwZXI8VD4oXHJcbiAgICAgICAgICAgICAgICBnZW5lcmF0ZURpc3BsYXlOYW1lLFxyXG4gICAgICAgICAgICAgICAgcmVzb3VyY2UsXHJcbiAgICAgICAgICAgICAgICBlbnVtcyxcclxuICAgICAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgICAgICByZXR1cm4gbWFwUHJvcGVydGllc1RvQ29udHJpYnV0b3JzKHByb3BlcnRpZXMsIGFjYywga2V5KTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHByb3A6IHt9LFxyXG4gICAgICAgICAgICAgIGNyZWF0ZUZvcm06IHt9LFxyXG4gICAgICAgICAgICAgIGVkaXRGb3JtOiB7fSxcclxuICAgICAgICAgICAgfSBhcyBPYmplY3RFeHRlbnNpb25zLlByb3BDb250cmlidXRvcnMsXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICApLFxyXG4gICAgKSxcclxuICAgIHRha2UoMSksXHJcbiAgKTtcclxufVxyXG5cclxuZnVuY3Rpb24gY3JlYXRlUHJvcGVydGllc1RvQ29udHJpYnV0b3JzTWFwcGVyPFQgPSBhbnk+KFxyXG4gIGdlbmVyYXRlRGlzcGxheU5hbWU6IE9iamVjdEV4dGVuc2lvbnMuRGlzcGxheU5hbWVHZW5lcmF0b3JGbixcclxuICByZXNvdXJjZTogc3RyaW5nLFxyXG4gIGVudW1zOiBSZWNvcmQ8c3RyaW5nLCBPYmplY3RFeHRlbnNpb25zLkV4dGVuc2lvbkVudW1EdG8+LFxyXG4pIHtcclxuICByZXR1cm4gKFxyXG4gICAgcHJvcGVydGllczogT2JqZWN0RXh0ZW5zaW9ucy5FbnRpdHlFeHRlbnNpb25Qcm9wZXJ0aWVzLFxyXG4gICAgY29udHJpYnV0b3JzOiBPYmplY3RFeHRlbnNpb25zLlByb3BDb250cmlidXRvcnM8VD4sXHJcbiAgICBrZXk6IHN0cmluZyxcclxuICApID0+IHtcclxuICAgIGNvbnN0IGlzRXh0cmEgPSB0cnVlO1xyXG4gICAgY29uc3QgZ2VuZXJhdGVUeXBlYWhlYWREaXNwbGF5TmFtZSA9IGNyZWF0ZVR5cGVhaGVhZERpc3BsYXlOYW1lR2VuZXJhdG9yKFxyXG4gICAgICBnZW5lcmF0ZURpc3BsYXlOYW1lLFxyXG4gICAgICBwcm9wZXJ0aWVzLFxyXG4gICAgKTtcclxuXHJcbiAgICBPYmplY3Qua2V5cyhwcm9wZXJ0aWVzKS5mb3JFYWNoKChuYW1lOiBzdHJpbmcpID0+IHtcclxuICAgICAgY29uc3QgcHJvcGVydHkgPSBwcm9wZXJ0aWVzW25hbWVdO1xyXG4gICAgICBjb25zdCBwcm9wTmFtZSA9IG5hbWU7XHJcbiAgICAgIGNvbnN0IGxvb2t1cCA9IHByb3BlcnR5LnVpLmxvb2t1cCB8fCAoe30gYXMgRXh0ZW5zaW9uUHJvcGVydHlVaUxvb2t1cER0byk7XHJcbiAgICAgIGNvbnN0IHR5cGUgPSBnZXRUeXBlYWhlYWRUeXBlKGxvb2t1cCwgbmFtZSkgfHwgZ2V0VHlwZUZyb21Qcm9wZXJ0eShwcm9wZXJ0eSk7XHJcbiAgICAgIGNvbnN0IGdlbmVyYXRlRE4gPSBoYXNUeXBlYWhlYWRUZXh0U3VmZml4KG5hbWUpXHJcbiAgICAgICAgPyBnZW5lcmF0ZVR5cGVhaGVhZERpc3BsYXlOYW1lXHJcbiAgICAgICAgOiBnZW5lcmF0ZURpc3BsYXlOYW1lO1xyXG4gICAgICBjb25zdCBkaXNwbGF5TmFtZSA9IGdlbmVyYXRlRE4ocHJvcGVydHkuZGlzcGxheU5hbWUsIHsgbmFtZSwgcmVzb3VyY2UgfSk7XHJcblxyXG4gICAgICBpZiAocHJvcGVydHkudWkub25UYWJsZS5pc1Zpc2libGUpIHtcclxuICAgICAgICBjb25zdCBzb3J0YWJsZSA9IEJvb2xlYW4ocHJvcGVydHkudWkub25UYWJsZS5pc1NvcnRhYmxlKTtcclxuICAgICAgICBjb25zdCBjb2x1bW5XaWR0aCA9IHR5cGUgPT09IGVQcm9wVHlwZS5Cb29sZWFuID8gMTUwIDogMjUwO1xyXG4gICAgICAgIGNvbnN0IHZhbHVlUmVzb2x2ZXI6IFByb3BDYWxsYmFjazxULCBPYnNlcnZhYmxlPGFueT4+ID0gdHlwZSA9PT0gZVByb3BUeXBlLkVudW0gJiZcclxuICAgICAgICBwcm9wZXJ0eS50eXBlXHJcbiAgICAgICAgICA/IGNyZWF0ZUVudW1WYWx1ZVJlc29sdmVyKHByb3BlcnR5LnR5cGUsIGVudW1zW3Byb3BlcnR5LnR5cGVdLCBwcm9wTmFtZSlcclxuICAgICAgICAgIDogY3JlYXRlRXh0cmFQcm9wZXJ0eVZhbHVlUmVzb2x2ZXI8VD4ocHJvcE5hbWUpO1xyXG5cclxuICAgICAgICBjb25zdCBlbnRpdHlQcm9wID0gbmV3IEVudGl0eVByb3A8VD4oe1xyXG4gICAgICAgICAgdHlwZSxcclxuICAgICAgICAgIG5hbWU6IHByb3BOYW1lLFxyXG4gICAgICAgICAgZGlzcGxheU5hbWUsXHJcbiAgICAgICAgICBzb3J0YWJsZSxcclxuICAgICAgICAgIGNvbHVtbldpZHRoLFxyXG4gICAgICAgICAgdmFsdWVSZXNvbHZlcixcclxuICAgICAgICAgIGlzRXh0cmEsXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGNvbnN0IGNvbnRyaWJ1dG9yID0gKHByb3BMaXN0OiBFbnRpdHlQcm9wTGlzdDxUPikgPT4gcHJvcExpc3QuYWRkVGFpbChlbnRpdHlQcm9wKTtcclxuICAgICAgICBjb250cmlidXRvcnMucHJvcFtrZXldLnB1c2goY29udHJpYnV0b3IpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCBpc09uQ3JlYXRlRm9ybSA9IHByb3BlcnR5LnVpLm9uQ3JlYXRlRm9ybS5pc1Zpc2libGU7XHJcbiAgICAgIGNvbnN0IGlzT25FZGl0Rm9ybSA9IHByb3BlcnR5LnVpLm9uRWRpdEZvcm0uaXNWaXNpYmxlO1xyXG5cclxuICAgICAgaWYgKGlzT25DcmVhdGVGb3JtIHx8IGlzT25FZGl0Rm9ybSkge1xyXG4gICAgICAgIGNvbnN0IGRlZmF1bHRWYWx1ZSA9IHByb3BlcnR5LmRlZmF1bHRWYWx1ZTtcclxuICAgICAgICBjb25zdCBmb3JtVGV4dCA9IHByb3BlcnR5LmZvcm1UZXh0O1xyXG4gICAgICAgIGNvbnN0IHZhbGlkYXRvcnMgPSAoKSA9PiBnZXRWYWxpZGF0b3JzRnJvbVByb3BlcnR5KHByb3BlcnR5KTtcclxuICAgICAgICBsZXQgb3B0aW9uczogUHJvcENhbGxiYWNrPGFueSwgT2JzZXJ2YWJsZTxBQlAuT3B0aW9uPGFueT5bXT4+IHwgdW5kZWZpbmVkO1xyXG4gICAgICAgIGlmICh0eXBlID09PSBlUHJvcFR5cGUuRW51bSlcclxuICAgICAgICAgIG9wdGlvbnMgPSBjcmVhdGVFbnVtT3B0aW9ucyhwcm9wTmFtZSwgZW51bXNbcHJvcGVydHkudHlwZSB8fCAnJ10pO1xyXG4gICAgICAgIGVsc2UgaWYgKHR5cGUgPT09IGVQcm9wVHlwZS5UeXBlYWhlYWQpIG9wdGlvbnMgPSBjcmVhdGVUeXBlYWhlYWRPcHRpb25zKGxvb2t1cCk7XHJcblxyXG4gICAgICAgIGNvbnN0IGZvcm1Qcm9wID0gbmV3IEZvcm1Qcm9wKHtcclxuICAgICAgICAgIHR5cGUsXHJcbiAgICAgICAgICBuYW1lOiBwcm9wTmFtZSxcclxuICAgICAgICAgIGRpc3BsYXlOYW1lLFxyXG4gICAgICAgICAgb3B0aW9ucyxcclxuICAgICAgICAgIGRlZmF1bHRWYWx1ZSxcclxuICAgICAgICAgIHZhbGlkYXRvcnMsXHJcbiAgICAgICAgICBpc0V4dHJhLFxyXG4gICAgICAgICAgZm9ybVRleHQsXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGNvbnN0IGZvcm1Db250cmlidXRvciA9IChwcm9wTGlzdDogRm9ybVByb3BMaXN0PFQ+KSA9PiBwcm9wTGlzdC5hZGRUYWlsKGZvcm1Qcm9wKTtcclxuXHJcbiAgICAgICAgaWYgKGlzT25DcmVhdGVGb3JtKSBjb250cmlidXRvcnMuY3JlYXRlRm9ybVtrZXldLnB1c2goZm9ybUNvbnRyaWJ1dG9yKTtcclxuICAgICAgICBpZiAoaXNPbkVkaXRGb3JtKSBjb250cmlidXRvcnMuZWRpdEZvcm1ba2V5XS5wdXNoKGZvcm1Db250cmlidXRvcik7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBjb250cmlidXRvcnM7XHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0VHlwZUZyb21Qcm9wZXJ0eShwcm9wZXJ0eTogT2JqZWN0RXh0ZW5zaW9ucy5FeHRlbnNpb25Qcm9wZXJ0eUR0byk6IGVQcm9wVHlwZSB7XHJcbiAgcmV0dXJuIHByb3BlcnR5Py50eXBlU2ltcGxlPy5yZXBsYWNlKC9cXD8kLywgJycpIGFzIHN0cmluZyBhcyBlUHJvcFR5cGU7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzVW5kZWZpbmVkKG9iajogYW55KTogb2JqIGlzIHVuZGVmaW5lZCB7XHJcbiAgcmV0dXJuIHR5cGVvZiBvYmogPT09ICd1bmRlZmluZWQnO1xyXG59XHJcbiJdfQ==
132
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdGUudXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZXh0ZW5zaWJsZS9zcmMvbGliL3V0aWxzL3N0YXRlLnV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUdMLGtCQUFrQixHQUluQixNQUFNLGNBQWMsQ0FBQztBQUV0QixPQUFPLEVBQWMsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUQsT0FBTyxFQUFFLFVBQVUsRUFBa0IsTUFBTSx3QkFBd0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsUUFBUSxFQUFnQixNQUFNLHNCQUFzQixDQUFDO0FBRzlELE9BQU8sRUFBRSxVQUFVLEVBQUUsaUJBQWlCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDckYsT0FBTyxFQUFFLDZDQUE2QyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMvRSxPQUFPLEVBQ0wsbUNBQW1DLEVBQ25DLHNCQUFzQixFQUN0QixnQkFBZ0IsRUFDaEIsc0JBQXNCLEdBQ3ZCLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFOUQsU0FBUyxzQkFBc0IsQ0FBQyxXQUErQjtJQUM3RCxPQUFPLFdBQVcsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FBQztBQUNqRCxDQUFDO0FBRUQsU0FBUyxrQkFBa0IsQ0FDekIsV0FBK0I7SUFFL0IsT0FBTyxXQUFXLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0FBQzdDLENBQUM7QUFFRCxTQUFT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RUFBRSxFQUFFLENBQXdCLENBQUM7QUFDekUsQ0FBQztBQUVELFNBQVMsV0FBVyxDQUFDLEdBQVE7SUFDM0IsT0FBTyxPQUFPLEdBQUcsS0FBSyxXQUFXLENBQUM7QUFDcEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQUJQLFxyXG4gIEFwcGxpY2F0aW9uTG9jYWxpemF0aW9uQ29uZmlndXJhdGlvbkR0byxcclxuICBDb25maWdTdGF0ZVNlcnZpY2UsXHJcbiAgRXh0ZW5zaW9uRW51bUR0byxcclxuICBFeHRlbnNpb25Qcm9wZXJ0eVVpTG9va3VwRHRvLFxyXG4gIE9iamVjdEV4dGVuc2lvbnNEdG8sXHJcbn0gZnJvbSAnQGFicC9uZy5jb3JlJztcclxuaW1wb3J0IHsgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgcGlwZSwgemlwIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGZpbHRlciwgbWFwLCBzd2l0Y2hNYXAsIHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IGVQcm9wVHlwZSB9IGZyb20gJy4uL2VudW1zL3Byb3BzLmVudW0nO1xyXG5pbXBvcnQgeyBFbnRpdHlQcm9wLCBFbnRpdHlQcm9wTGlzdCB9IGZyb20gJy4uL21vZGVscy9lbnRpdHktcHJvcHMnO1xyXG5pbXBvcnQgeyBGb3JtUHJvcCwgRm9ybVByb3BMaXN0IH0gZnJvbSAnLi4vbW9kZWxzL2Zvcm0tcHJvcHMnO1xyXG5pbXBvcnQgeyBPYmplY3RFeHRlbnNpb25zIH0gZnJvbSAnLi4vbW9kZWxzL29iamVjdC1leHRlbnNpb25zJztcclxuaW1wb3J0IHsgUHJvcENhbGxiYWNrIH0gZnJvbSAnLi4vbW9kZWxzL3Byb3BzJztcclxuaW1wb3J0IHsgY3JlYXRlRW51bSwgY3JlYXRlRW51bU9wdGlvbnMsIGNyZWF0ZUVudW1WYWx1ZVJlc29sdmVyIH0gZnJvbSAnLi9lbnVtLnV0aWwnO1xyXG5pbXBvcnQgeyBjcmVhdGVEaXNwbGF5TmFtZUxvY2FsaXphdGlvblBpcGVLZXlHZW5lcmF0b3IgfSBmcm9tICcuL2xvY2FsaXphdGlvbi51dGlsJztcclxuaW1wb3J0IHsgY2hlY2tQb2xpY2llcywgY3JlYXRlRXh0cmFQcm9wZXJ0eVZhbHVlUmVzb2x2ZXIgfSBmcm9tICcuL3Byb3BzLnV0aWwnO1xyXG5pbXBvcnQge1xyXG4gIGNyZWF0ZVR5cGVhaGVhZERpc3BsYXlOYW1lR2VuZXJhdG9yLFxyXG4gIGNyZWF0ZVR5cGVhaGVhZE9wdGlvbnMsXHJcbiAgZ2V0VHlwZWFoZWFkVHlwZSxcclxuICBoYXNUeXBlYWhlYWRUZXh0U3VmZml4LFxyXG59IGZyb20gJy4vdHlwZWFoZWFkLnV0aWwnO1xyXG5pbXBvcnQgeyBnZXRWYWxpZGF0b3JzRnJvbVByb3BlcnR5IH0gZnJvbSAnLi92YWxpZGF0aW9uLnV0aWwnO1xyXG5cclxuZnVuY3Rpb24gc2VsZWN0T2JqZWN0RXh0ZW5zaW9ucyhjb25maWdTdGF0ZTogQ29uZmlnU3RhdGVTZXJ2aWNlKTogT2JzZXJ2YWJsZTxPYmplY3RFeHRlbnNpb25zRHRvPiB7XHJcbiAgcmV0dXJuIGNvbmZpZ1N0YXRlLmdldE9uZSQoJ29iamVjdEV4dGVuc2lvbnMnKTtcclxufVxyXG5cclxuZnVuY3Rpb24gc2VsZWN0TG9jYWxpemF0aW9uKFxyXG4gIGNvbmZpZ1N0YXRlOiBDb25maWdTdGF0ZVNlcnZpY2UsXHJcbik6IE9ic2VydmFibGU8QXBwbGljYXRpb25Mb2NhbGl6YXRpb25Db25maWd1cmF0aW9uRHRvPiB7XHJcbiAgcmV0dXJuIGNvbmZpZ1N0YXRlLmdldE9uZSQoJ2xvY2FsaXphdGlvbicpO1xyXG59XHJcblxyXG5mdW5jdGlvbiBzZWxlY3RFbnVtcyhcclxuICBjb25maWdTdGF0ZTogQ29uZmlnU3RhdGVTZXJ2aWNlLFxyXG4pOiBPYnNlcnZhYmxlPFJlY29yZDxzdHJpbmcsIEV4dGVuc2lvbkVudW1EdG8+PiB7XHJcbiAgcmV0dXJuIHNlbGVjdE9iamVjdEV4dGVuc2lvbnMoY29uZmlnU3RhdGUpLnBpcGUoXHJcbiAgICBtYXAoKGV4dGVuc2lvbnM6IE9iamVjdEV4dGVuc2lvbnNEdG8pID0+XHJcbiAgICAgIE9iamVjdC5rZXlzKGV4dGVuc2lvbnMuZW51bXMpLnJlZHVjZShcclxuICAgICAgICAoYWNjLCBrZXkpID0+IHtcclxuICAgICAgICAgIGNvbnN0IHsgZmllbGRzLCBsb2NhbGl6YXRpb25SZXNvdXJjZSB9ID0gZXh0ZW5zaW9ucy5lbnVtc1trZXldO1xyXG4gICAgICAgICAgYWNjW2tleV0gPSB7XHJcbiAgICAgICAgICAgIGZpZWxkcyxcclxuICAgICAgICAgICAgbG9jYWxpemF0aW9uUmVzb3VyY2UsXHJcbiAgICAgICAgICAgIHRyYW5zZm9ybWVkOiBjcmVhdGVFbnVtKGZpZWxkcyksXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgICAgcmV0dXJuIGFjYztcclxuICAgICAgICB9LFxyXG4gICAgICAgIHt9IGFzIFJlY29yZDxzdHJpbmcsIE9iamVjdEV4dGVuc2lvbnMuRXh0ZW5zaW9uRW51bUR0bz4sXHJcbiAgICAgICksXHJcbiAgICApLFxyXG4gICk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBnZXRPYmplY3RFeHRlbnNpb25FbnRpdGllc0Zyb21TdG9yZShpbmplY3RvcjogSW5qZWN0b3IsIG1vZHVsZUtleTogc3RyaW5nKSB7XHJcbiAgY29uc3QgY29uZmlnU3RhdGUgPSBpbmplY3Rvci5nZXQoQ29uZmlnU3RhdGVTZXJ2aWNlKTtcclxuICByZXR1cm4gc2VsZWN0T2JqZWN0RXh0ZW5zaW9ucyhjb25maWdTdGF0ZSkucGlwZShcclxuICAgIG1hcChleHRlbnNpb25zID0+IHtcclxuICAgICAgaWYgKCFleHRlbnNpb25zKSByZXR1cm4gbnVsbDtcclxuXHJcbiAgICAgIHJldHVybiAoZXh0ZW5zaW9ucy5tb2R1bGVzW21vZHVsZUtleV0gfHwgKHt9IGFzIE9iamVjdEV4dGVuc2lvbnMuTW9kdWxlRXh0ZW5zaW9uRHRvKSlcclxuICAgICAgICAuZW50aXRpZXM7XHJcbiAgICB9KSxcclxuICAgIG1hcChlbnRpdGllcyA9PiAoaXNVbmRlZmluZWQoZW50aXRpZXMpID8gKHt9IGFzIGFueSkgOiBlbnRpdGllcykpLFxyXG4gICAgZmlsdGVyPE9iamVjdEV4dGVuc2lvbnMuRW50aXR5RXh0ZW5zaW9ucz4oQm9vbGVhbiksXHJcbiAgICB0YWtlKDEpLFxyXG4gICk7XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBtYXBFbnRpdGllc1RvQ29udHJpYnV0b3JzPFQgPSBhbnk+KGluamVjdG9yOiBJbmplY3RvciwgcmVzb3VyY2U6IHN0cmluZykge1xyXG4gIGNvbnN0IGNvbmZpZ1N0YXRlID0gaW5qZWN0b3IuZ2V0KENvbmZpZ1N0YXRlU2VydmljZSk7XHJcbiAgcmV0dXJuIHBpcGUoXHJcbiAgICBzd2l0Y2hNYXAoKGVudGl0aWVzOiBhbnkpID0+XHJcbiAgICAgIHppcChzZWxlY3RMb2NhbGl6YXRpb24oY29uZmlnU3RhdGUpLCBzZWxlY3RFbnVtcyhjb25maWdTdGF0ZSkpLnBpcGUoXHJcbiAgICAgICAgbWFwKChbbG9jYWxpemF0aW9uLCBlbnVtc10pID0+IHtcclxuICAgICAgICAgIGNvbnN0IGdlbmVyYXRlRGlzcGxheU5hbWUgPSBjcmVhdGVEaXNwbGF5TmFtZUxvY2FsaXphdGlvblBpcGVLZXlHZW5lcmF0b3IobG9jYWxpemF0aW9uKTtcclxuXHJcbiAgICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMoZW50aXRpZXMpLnJlZHVjZShcclxuICAgICAgICAgICAgKGFjYywga2V5OiBrZXlvZiBPYmplY3RFeHRlbnNpb25zLkVudGl0eUV4dGVuc2lvbnMpID0+IHtcclxuICAgICAgICAgICAgICBhY2MucHJvcFtrZXldID0gW107XHJcbiAgICAgICAgICAgICAgYWNjLmNyZWF0ZUZvcm1ba2V5XSA9IFtdO1xyXG4gICAgICAgICAgICAgIGFjYy5lZGl0Rm9ybVtrZXldID0gW107XHJcblxyXG4gICAgICAgICAgICAgIGNvbnN0IGVudGl0eTogT2JqZWN0RXh0ZW5zaW9ucy5FbnRpdHlFeHRlbnNpb25EdG8gPSBlbnRpdGllc1trZXldO1xyXG4gICAgICAgICAgICAgIGlmICghZW50aXR5KSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gYWNjO1xyXG4gICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgY29uc3QgcHJvcGVydGllcyA9IGVudGl0eS5wcm9wZXJ0aWVzO1xyXG4gICAgICAgICAgICAgIGlmICghcHJvcGVydGllcykge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGFjYztcclxuICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgIGNoZWNrUG9saWNpZXMoaW5qZWN0b3IsIHByb3BlcnRpZXMpO1xyXG5cclxuICAgICAgICAgICAgICBjb25zdCBtYXBQcm9wZXJ0aWVzVG9Db250cmlidXRvcnMgPSBjcmVhdGVQcm9wZXJ0aWVzVG9Db250cmlidXRvcnNNYXBwZXI8VD4oXHJcbiAgICAgICAgICAgICAgICBnZW5lcmF0ZURpc3BsYXlOYW1lLFxyXG4gICAgICAgICAgICAgICAgcmVzb3VyY2UsXHJcbiAgICAgICAgICAgICAgICBlbnVtcyxcclxuICAgICAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgICAgICByZXR1cm4gbWFwUHJvcGVydGllc1RvQ29udHJpYnV0b3JzKHByb3BlcnRpZXMsIGFjYywga2V5KTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIHByb3A6IHt9LFxyXG4gICAgICAgICAgICAgIGNyZWF0ZUZvcm06IHt9LFxyXG4gICAgICAgICAgICAgIGVkaXRGb3JtOiB7fSxcclxuICAgICAgICAgICAgfSBhcyBPYmplY3RFeHRlbnNpb25zLlByb3BDb250cmlidXRvcnMsXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICApLFxyXG4gICAgKSxcclxuICAgIHRha2UoMSksXHJcbiAgKTtcclxufVxyXG5cclxuZnVuY3Rpb24gY3JlYXRlUHJvcGVydGllc1RvQ29udHJpYnV0b3JzTWFwcGVyPFQgPSBhbnk+KFxyXG4gIGdlbmVyYXRlRGlzcGxheU5hbWU6IE9iamVjdEV4dGVuc2lvbnMuRGlzcGxheU5hbWVHZW5lcmF0b3JGbixcclxuICByZXNvdXJjZTogc3RyaW5nLFxyXG4gIGVudW1zOiBSZWNvcmQ8c3RyaW5nLCBPYmplY3RFeHRlbnNpb25zLkV4dGVuc2lvbkVudW1EdG8+LFxyXG4pIHtcclxuICByZXR1cm4gKFxyXG4gICAgcHJvcGVydGllczogT2JqZWN0RXh0ZW5zaW9ucy5FbnRpdHlFeHRlbnNpb25Qcm9wZXJ0aWVzLFxyXG4gICAgY29udHJpYnV0b3JzOiBPYmplY3RFeHRlbnNpb25zLlByb3BDb250cmlidXRvcnM8VD4sXHJcbiAgICBrZXk6IHN0cmluZyxcclxuICApID0+IHtcclxuICAgIGNvbnN0IGlzRXh0cmEgPSB0cnVlO1xyXG4gICAgY29uc3QgZ2VuZXJhdGVUeXBlYWhlYWREaXNwbGF5TmFtZSA9IGNyZWF0ZVR5cGVhaGVhZERpc3BsYXlOYW1lR2VuZXJhdG9yKFxyXG4gICAgICBnZW5lcmF0ZURpc3BsYXlOYW1lLFxyXG4gICAgICBwcm9wZXJ0aWVzLFxyXG4gICAgKTtcclxuXHJcbiAgICBPYmplY3Qua2V5cyhwcm9wZXJ0aWVzKS5mb3JFYWNoKChuYW1lOiBzdHJpbmcpID0+IHtcclxuICAgICAgY29uc3QgcHJvcGVydHkgPSBwcm9wZXJ0aWVzW25hbWVdO1xyXG4gICAgICBjb25zdCBwcm9wTmFtZSA9IG5hbWU7XHJcbiAgICAgIGNvbnN0IGxvb2t1cCA9IHByb3BlcnR5LnVpLmxvb2t1cCB8fCAoe30gYXMgRXh0ZW5zaW9uUHJvcGVydHlVaUxvb2t1cER0byk7XHJcbiAgICAgIGNvbnN0IHR5cGUgPSBnZXRUeXBlYWhlYWRUeXBlKGxvb2t1cCwgbmFtZSkgfHwgZ2V0VHlwZUZyb21Qcm9wZXJ0eShwcm9wZXJ0eSk7XHJcbiAgICAgIGNvbnN0IGdlbmVyYXRlRE4gPSBoYXNUeXBlYWhlYWRUZXh0U3VmZml4KG5hbWUpXHJcbiAgICAgICAgPyBnZW5lcmF0ZVR5cGVhaGVhZERpc3BsYXlOYW1lXHJcbiAgICAgICAgOiBnZW5lcmF0ZURpc3BsYXlOYW1lO1xyXG4gICAgICBjb25zdCBkaXNwbGF5TmFtZSA9IGdlbmVyYXRlRE4ocHJvcGVydHkuZGlzcGxheU5hbWUsIHsgbmFtZSwgcmVzb3VyY2UgfSk7XHJcblxyXG4gICAgICBpZiAocHJvcGVydHkudWkub25UYWJsZS5pc1Zpc2libGUpIHtcclxuICAgICAgICBjb25zdCBzb3J0YWJsZSA9IEJvb2xlYW4ocHJvcGVydHkudWkub25UYWJsZS5pc1NvcnRhYmxlKTtcclxuICAgICAgICBjb25zdCBjb2x1bW5XaWR0aCA9IHR5cGUgPT09IGVQcm9wVHlwZS5Cb29sZWFuID8gMTUwIDogMjUwO1xyXG4gICAgICAgIGNvbnN0IHZhbHVlUmVzb2x2ZXI6IFByb3BDYWxsYmFjazxULCBPYnNlcnZhYmxlPGFueT4+ID0gdHlwZSA9PT0gZVByb3BUeXBlLkVudW0gJiZcclxuICAgICAgICBwcm9wZXJ0eS50eXBlXHJcbiAgICAgICAgICA/IGNyZWF0ZUVudW1WYWx1ZVJlc29sdmVyKHByb3BlcnR5LnR5cGUsIGVudW1zW3Byb3BlcnR5LnR5cGVdLCBwcm9wTmFtZSlcclxuICAgICAgICAgIDogY3JlYXRlRXh0cmFQcm9wZXJ0eVZhbHVlUmVzb2x2ZXI8VD4ocHJvcE5hbWUpO1xyXG5cclxuICAgICAgICBjb25zdCBlbnRpdHlQcm9wID0gbmV3IEVudGl0eVByb3A8VD4oe1xyXG4gICAgICAgICAgdHlwZSxcclxuICAgICAgICAgIG5hbWU6IHByb3BOYW1lLFxyXG4gICAgICAgICAgZGlzcGxheU5hbWUsXHJcbiAgICAgICAgICBzb3J0YWJsZSxcclxuICAgICAgICAgIGNvbHVtbldpZHRoLFxyXG4gICAgICAgICAgdmFsdWVSZXNvbHZlcixcclxuICAgICAgICAgIGlzRXh0cmEsXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGNvbnN0IGNvbnRyaWJ1dG9yID0gKHByb3BMaXN0OiBFbnRpdHlQcm9wTGlzdDxUPikgPT4gcHJvcExpc3QuYWRkVGFpbChlbnRpdHlQcm9wKTtcclxuICAgICAgICBjb250cmlidXRvcnMucHJvcFtrZXldLnB1c2goY29udHJpYnV0b3IpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBjb25zdCBpc09uQ3JlYXRlRm9ybSA9IHByb3BlcnR5LnVpLm9uQ3JlYXRlRm9ybS5pc1Zpc2libGU7XHJcbiAgICAgIGNvbnN0IGlzT25FZGl0Rm9ybSA9IHByb3BlcnR5LnVpLm9uRWRpdEZvcm0uaXNWaXNpYmxlO1xyXG5cclxuICAgICAgaWYgKGlzT25DcmVhdGVGb3JtIHx8IGlzT25FZGl0Rm9ybSkge1xyXG4gICAgICAgIGNvbnN0IGRlZmF1bHRWYWx1ZSA9IHByb3BlcnR5LmRlZmF1bHRWYWx1ZTtcclxuICAgICAgICBjb25zdCBmb3JtVGV4dCA9IHByb3BlcnR5LmZvcm1UZXh0O1xyXG4gICAgICAgIGNvbnN0IHZhbGlkYXRvcnMgPSAoKSA9PiBnZXRWYWxpZGF0b3JzRnJvbVByb3BlcnR5KHByb3BlcnR5KTtcclxuICAgICAgICBsZXQgb3B0aW9uczogUHJvcENhbGxiYWNrPGFueSwgT2JzZXJ2YWJsZTxBQlAuT3B0aW9uPGFueT5bXT4+IHwgdW5kZWZpbmVkO1xyXG4gICAgICAgIGlmICh0eXBlID09PSBlUHJvcFR5cGUuRW51bSlcclxuICAgICAgICAgIG9wdGlvbnMgPSBjcmVhdGVFbnVtT3B0aW9ucyhwcm9wTmFtZSwgZW51bXNbcHJvcGVydHkudHlwZSB8fCAnJ10pO1xyXG4gICAgICAgIGVsc2UgaWYgKHR5cGUgPT09IGVQcm9wVHlwZS5UeXBlYWhlYWQpIG9wdGlvbnMgPSBjcmVhdGVUeXBlYWhlYWRPcHRpb25zKGxvb2t1cCk7XHJcblxyXG4gICAgICAgIGNvbnN0IGZvcm1Qcm9wID0gbmV3IEZvcm1Qcm9wKHtcclxuICAgICAgICAgIHR5cGUsXHJcbiAgICAgICAgICBuYW1lOiBwcm9wTmFtZSxcclxuICAgICAgICAgIGRpc3BsYXlOYW1lLFxyXG4gICAgICAgICAgb3B0aW9ucyxcclxuICAgICAgICAgIGRlZmF1bHRWYWx1ZSxcclxuICAgICAgICAgIHZhbGlkYXRvcnMsXHJcbiAgICAgICAgICBpc0V4dHJhLFxyXG4gICAgICAgICAgZm9ybVRleHQsXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIGNvbnN0IGZvcm1Db250cmlidXRvciA9IChwcm9wTGlzdDogRm9ybVByb3BMaXN0PFQ+KSA9PiBwcm9wTGlzdC5hZGRUYWlsKGZvcm1Qcm9wKTtcclxuXHJcbiAgICAgICAgaWYgKGlzT25DcmVhdGVGb3JtKSBjb250cmlidXRvcnMuY3JlYXRlRm9ybVtrZXldLnB1c2goZm9ybUNvbnRyaWJ1dG9yKTtcclxuICAgICAgICBpZiAoaXNPbkVkaXRGb3JtKSBjb250cmlidXRvcnMuZWRpdEZvcm1ba2V5XS5wdXNoKGZvcm1Db250cmlidXRvcik7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBjb250cmlidXRvcnM7XHJcbiAgfTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0VHlwZUZyb21Qcm9wZXJ0eShwcm9wZXJ0eTogT2JqZWN0RXh0ZW5zaW9ucy5FeHRlbnNpb25Qcm9wZXJ0eUR0byk6IGVQcm9wVHlwZSB7XHJcbiAgcmV0dXJuIHByb3BlcnR5Py50eXBlU2ltcGxlPy5yZXBsYWNlKC9cXD8kLywgJycpIGFzIHN0cmluZyBhcyBlUHJvcFR5cGU7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIGlzVW5kZWZpbmVkKG9iajogYW55KTogb2JqIGlzIHVuZGVmaW5lZCB7XHJcbiAgcmV0dXJuIHR5cGVvZiBvYmogPT09ICd1bmRlZmluZWQnO1xyXG59XHJcbiJdfQ==
@@ -1,4 +1,4 @@
1
- import { ConfigStateService, PermissionService } from '@abp/ng.core';
1
+ import { Injector } from '@angular/core';
2
2
  import { Observable } from 'rxjs';
3
3
  import { EntityPropContributorCallbacks, EntityPropDefaults, EntityPropsFactory } from '../models/entity-props';
4
4
  import { CreateFormPropContributorCallbacks, CreateFormPropDefaults, CreateFormPropsFactory, EditFormPropContributorCallbacks, EditFormPropDefaults, EditFormPropsFactory } from '../models/form-props';
@@ -6,7 +6,7 @@ import { PropCallback, PropsFactory } from '../models/props';
6
6
  import { ObjectExtensions } from '../models/object-extensions';
7
7
  export declare function createExtraPropertyValueResolver<T>(name: string): PropCallback<T, Observable<any>>;
8
8
  export declare function mergeWithDefaultProps<F extends PropsFactory<any>>(extension: F, defaultProps: InferredPropDefaults<F>, ...contributors: InferredPropContributorCallbacks<F>[]): void;
9
- export declare function checkPolicies(properties: ObjectExtensions.EntityExtensionProperties, configState: ConfigStateService, permissionService: PermissionService): void;
9
+ export declare function checkPolicies(injector: Injector, properties: ObjectExtensions.EntityExtensionProperties): void;
10
10
  type InferredPropDefaults<F> = F extends EntityPropsFactory<infer RE> ? EntityPropDefaults<RE> : F extends CreateFormPropsFactory<infer RCF> ? CreateFormPropDefaults<RCF> : F extends EditFormPropsFactory<infer REF> ? EditFormPropDefaults<REF> : never;
11
11
  type InferredPropContributorCallbacks<F> = F extends EntityPropsFactory<infer RE> ? EntityPropContributorCallbacks<RE> : F extends CreateFormPropsFactory<infer RCF> ? CreateFormPropContributorCallbacks<RCF> : F extends EditFormPropsFactory<infer REF> ? EditFormPropContributorCallbacks<REF> : never;
12
12
  export {};
@@ -1,5 +1,5 @@
1
- import { ConfigStateService, PermissionService } from '@abp/ng.core';
1
+ import { Injector } from '@angular/core';
2
2
  import { Observable } from 'rxjs';
3
3
  import { ObjectExtensions } from '../models/object-extensions';
4
- export declare function getObjectExtensionEntitiesFromStore(configState: ConfigStateService, moduleKey: string): Observable<ObjectExtensions.EntityExtensions>;
5
- export declare function mapEntitiesToContributors<T = any>(configState: ConfigStateService, permissionService: PermissionService, resource: string): import("rxjs").UnaryFunction<Observable<any>, Observable<ObjectExtensions.PropContributors<any>>>;
4
+ export declare function getObjectExtensionEntitiesFromStore(injector: Injector, moduleKey: string): Observable<ObjectExtensions.EntityExtensions>;
5
+ export declare function mapEntitiesToContributors<T = any>(injector: Injector, resource: string): import("rxjs").UnaryFunction<Observable<any>, Observable<ObjectExtensions.PropContributors<any>>>;
@@ -1 +1 @@
1
- {"version":3,"file":"abp-ng.components-chart.js.mjs","sources":["../../../../packages/components/chart.js/src/chart.component.ts","../../../../packages/components/chart.js/src/chart.module.ts","../../../../packages/components/chart.js/src/widget-utils.ts","../../../../packages/components/chart.js/src/abp-ng.components-chart.js.ts"],"sourcesContent":["import {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n Output,\r\n SimpleChanges,\r\n ViewChild,\r\n} from '@angular/core';\r\n\r\nlet Chart: any;\r\n\r\n@Component({\r\n selector: 'abp-chart',\r\n template: `\r\n <div\r\n style=\"position:relative\"\r\n [style.width]=\"responsive && !width ? null : width\"\r\n [style.height]=\"responsive && !height ? null : height\"\r\n >\r\n <canvas\r\n #canvas\r\n [attr.width]=\"responsive && !width ? null : width\"\r\n [attr.height]=\"responsive && !height ? null : height\"\r\n (click)=\"onCanvasClick($event)\"\r\n ></canvas>\r\n </div>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'abpChart',\r\n})\r\nexport class ChartComponent implements AfterViewInit, OnDestroy, OnChanges {\r\n @Input() type!: string;\r\n\r\n @Input() data: any = {};\r\n\r\n @Input() options: any = {};\r\n\r\n @Input() plugins: any[] = [];\r\n\r\n @Input() width?: string;\r\n\r\n @Input() height?: string;\r\n\r\n @Input() responsive = true;\r\n\r\n @Output() dataSelect = new EventEmitter();\r\n\r\n @Output() initialized = new EventEmitter<boolean>();\r\n\r\n @ViewChild('canvas') canvas!: ElementRef<HTMLCanvasElement>;\r\n\r\n chart: any;\r\n\r\n constructor(public el: ElementRef, private cdr: ChangeDetectorRef) {}\r\n\r\n ngAfterViewInit() {\r\n import('chart.js/auto').then(module => {\r\n Chart = module.default;\r\n this.initChart();\r\n this.initialized.emit(true);\r\n });\r\n }\r\n\r\n onCanvasClick(event: MouseEvent) {\r\n if (this.chart) {\r\n const element = this.chart.getElementsAtEventForMode(\r\n event,\r\n 'nearest',\r\n { intersect: true },\r\n false,\r\n );\r\n const dataset = this.chart.getElementsAtEventForMode(\r\n event,\r\n 'dataset',\r\n { intersect: true },\r\n false,\r\n );\r\n\r\n if (element && element[0] && dataset) {\r\n this.dataSelect.emit({ originalEvent: event, element: element[0], dataset: dataset });\r\n }\r\n }\r\n }\r\n\r\n private initChart = () => {\r\n const opts = this.options || {};\r\n opts.responsive = this.responsive;\r\n\r\n // allows chart to resize in responsive mode\r\n if (opts.responsive && (this.height || this.width)) {\r\n opts.maintainAspectRatio = false;\r\n }\r\n\r\n this.chart = new Chart(this.canvas.nativeElement, {\r\n type: this.type as any,\r\n data: this.data,\r\n options: this.options,\r\n plugins: this.plugins\r\n });\r\n };\r\n\r\n getCanvas = () => {\r\n return this.canvas.nativeElement;\r\n };\r\n\r\n getBase64Image = () => {\r\n return this.chart.toBase64Image();\r\n };\r\n\r\n generateLegend = () => {\r\n if (this.chart) {\r\n return this.chart.generateLegend();\r\n }\r\n };\r\n\r\n refresh = () => {\r\n if (this.chart) {\r\n this.chart.update();\r\n this.cdr.detectChanges();\r\n }\r\n };\r\n\r\n reinit = () => {\r\n if (!this.chart) return;\r\n this.chart.destroy();\r\n this.initChart();\r\n };\r\n\r\n ngOnDestroy() {\r\n if (this.chart) {\r\n this.chart.destroy();\r\n this.chart = null;\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (!this.chart) return;\r\n\r\n if (changes.data?.currentValue || changes.options?.currentValue) {\r\n this.chart.destroy();\r\n this.initChart();\r\n }\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { ChartComponent } from './chart.component';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n exports: [ChartComponent],\r\n declarations: [ChartComponent],\r\n providers: [],\r\n})\r\nexport class ChartModule {}\r\n","export function getRandomBackgroundColor(count: number) {\r\n const colors = [];\r\n\r\n for (let i = 0; i < count; i++) {\r\n const r = ((i + 5) * (i + 5) * 474) % 255;\r\n const g = ((i + 5) * (i + 5) * 1600) % 255;\r\n const b = ((i + 5) * (i + 5) * 84065) % 255;\r\n colors.push('rgba(' + r + ', ' + g + ', ' + b + ', 0.7)');\r\n }\r\n\r\n return colors;\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"abp-ng.components-chart.js.mjs","sources":["../../../../packages/components/chart.js/src/chart.component.ts","../../../../packages/components/chart.js/src/chart.module.ts","../../../../packages/components/chart.js/src/widget-utils.ts","../../../../packages/components/chart.js/src/abp-ng.components-chart.js.ts"],"sourcesContent":["import {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n Output,\r\n SimpleChanges,\r\n ViewChild,\r\n} from '@angular/core';\r\n\r\nlet Chart: any;\r\n\r\n@Component({\r\n selector: 'abp-chart',\r\n template: `\r\n <div\r\n style=\"position:relative\"\r\n [style.width]=\"responsive && !width ? null : width\"\r\n [style.height]=\"responsive && !height ? null : height\"\r\n >\r\n <canvas\r\n #canvas\r\n [attr.width]=\"responsive && !width ? null : width\"\r\n [attr.height]=\"responsive && !height ? null : height\"\r\n (click)=\"onCanvasClick($event)\"\r\n ></canvas>\r\n </div>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n exportAs: 'abpChart',\r\n})\r\nexport class ChartComponent implements AfterViewInit, OnDestroy, OnChanges {\r\n @Input() type!: string;\r\n\r\n @Input() data: any = {};\r\n\r\n @Input() options: any = {};\r\n\r\n @Input() plugins: any[] = [];\r\n\r\n @Input() width?: string;\r\n\r\n @Input() height?: string;\r\n\r\n @Input() responsive = true;\r\n\r\n @Output() dataSelect = new EventEmitter();\r\n\r\n @Output() initialized = new EventEmitter<boolean>();\r\n\r\n @ViewChild('canvas') canvas!: ElementRef<HTMLCanvasElement>;\r\n\r\n chart: any;\r\n\r\n constructor(public el: ElementRef, private cdr: ChangeDetectorRef) {}\r\n\r\n ngAfterViewInit() {\r\n import('chart.js/auto').then(module => {\r\n Chart = module.default;\r\n this.initChart();\r\n this.initialized.emit(true);\r\n });\r\n }\r\n\r\n onCanvasClick(event: MouseEvent) {\r\n if (this.chart) {\r\n const element = this.chart.getElementsAtEventForMode(\r\n event,\r\n 'nearest',\r\n { intersect: true },\r\n false,\r\n );\r\n const dataset = this.chart.getElementsAtEventForMode(\r\n event,\r\n 'dataset',\r\n { intersect: true },\r\n false,\r\n );\r\n\r\n if (element && element[0] && dataset) {\r\n this.dataSelect.emit({ originalEvent: event, element: element[0], dataset: dataset });\r\n }\r\n }\r\n }\r\n\r\n private initChart = () => {\r\n const opts = this.options || {};\r\n opts.responsive = this.responsive;\r\n\r\n // allows chart to resize in responsive mode\r\n if (opts.responsive && (this.height || this.width)) {\r\n opts.maintainAspectRatio = false;\r\n }\r\n\r\n this.chart = new Chart(this.canvas.nativeElement, {\r\n type: this.type as any,\r\n data: this.data,\r\n options: this.options,\r\n plugins: this.plugins\r\n });\r\n };\r\n\r\n getCanvas = () => {\r\n return this.canvas.nativeElement;\r\n };\r\n\r\n getBase64Image = () => {\r\n return this.chart.toBase64Image();\r\n };\r\n\r\n generateLegend = () => {\r\n if (this.chart) {\r\n return this.chart.generateLegend();\r\n }\r\n };\r\n\r\n refresh = () => {\r\n if (this.chart) {\r\n this.chart.update();\r\n this.cdr.detectChanges();\r\n }\r\n };\r\n\r\n reinit = () => {\r\n if (!this.chart) return;\r\n this.chart.destroy();\r\n this.initChart();\r\n };\r\n\r\n ngOnDestroy() {\r\n if (this.chart) {\r\n this.chart.destroy();\r\n this.chart = null;\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (!this.chart) return;\r\n\r\n if (changes.data?.currentValue || changes.options?.currentValue) {\r\n this.chart.destroy();\r\n this.initChart();\r\n }\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { ChartComponent } from './chart.component';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n exports: [ChartComponent],\r\n declarations: [ChartComponent],\r\n providers: [],\r\n})\r\nexport class ChartModule {}\r\n","export function getRandomBackgroundColor(count: number) {\r\n const colors = [];\r\n\r\n for (let i = 0; i < count; i++) {\r\n const r = ((i + 5) * (i + 5) * 474) % 255;\r\n const g = ((i + 5) * (i + 5) * 1600) % 255;\r\n const b = ((i + 5) * (i + 5) * 84065) % 255;\r\n colors.push('rgba(' + r + ', ' + g + ', ' + b + ', 0.7)');\r\n }\r\n\r\n return colors;\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1185,15 +1185,17 @@ function mergeWithDefaultProps(extension, defaultProps, ...contributors) {
1185
1185
  contributors.forEach(contributor => (contributor[name] || []).forEach((callback) => props.addContributor(callback)));
1186
1186
  });
1187
1187
  }
1188
- function checkPolicies(properties, configState, permissionService) {
1188
+ function checkPolicies(injector, properties) {
1189
+ const configState = injector.get(ConfigStateService);
1190
+ const permission = injector.get(PermissionService);
1189
1191
  const props = Object.entries(properties);
1190
1192
  const checkPolicy = (policy) => {
1191
- const { permissions, globalFeatures, features } = policy;
1193
+ const { permissions, globalFeatures, features } = policy || {};
1192
1194
  const checks = [
1193
1195
  {
1194
1196
  items: permissions?.permissionNames,
1195
1197
  requiresAll: permissions?.requiresAll,
1196
- check: (item) => permissionService.getGrantedPolicy(item),
1198
+ check: (item) => permission.getGrantedPolicy(item),
1197
1199
  },
1198
1200
  {
1199
1201
  items: globalFeatures?.features,
@@ -1297,7 +1299,8 @@ function selectEnums(configState) {
1297
1299
  return acc;
1298
1300
  }, {})));
1299
1301
  }
1300
- function getObjectExtensionEntitiesFromStore(configState, moduleKey) {
1302
+ function getObjectExtensionEntitiesFromStore(injector, moduleKey) {
1303
+ const configState = injector.get(ConfigStateService);
1301
1304
  return selectObjectExtensions(configState).pipe(map(extensions => {
1302
1305
  if (!extensions)
1303
1306
  return null;
@@ -1305,7 +1308,8 @@ function getObjectExtensionEntitiesFromStore(configState, moduleKey) {
1305
1308
  .entities;
1306
1309
  }), map(entities => (isUndefined(entities) ? {} : entities)), filter$1(Boolean), take(1));
1307
1310
  }
1308
- function mapEntitiesToContributors(configState, permissionService, resource) {
1311
+ function mapEntitiesToContributors(injector, resource) {
1312
+ const configState = injector.get(ConfigStateService);
1309
1313
  return pipe(switchMap((entities) => zip(selectLocalization(configState), selectEnums(configState)).pipe(map(([localization, enums]) => {
1310
1314
  const generateDisplayName = createDisplayNameLocalizationPipeKeyGenerator(localization);
1311
1315
  return Object.keys(entities).reduce((acc, key) => {
@@ -1320,7 +1324,7 @@ function mapEntitiesToContributors(configState, permissionService, resource) {
1320
1324
  if (!properties) {
1321
1325
  return acc;
1322
1326
  }
1323
- checkPolicies(properties, configState, permissionService);
1327
+ checkPolicies(injector, properties);
1324
1328
  const mapPropertiesToContributors = createPropertiesToContributorsMapper(generateDisplayName, resource, enums);
1325
1329
  return mapPropertiesToContributors(properties, acc, key);
1326
1330
  }, {