@sumaris-net/ngx-components 18.23.11 → 18.23.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/doc/changelog.md +4 -1
  2. package/esm2022/src/app/admin/users/person.filter.mjs +4 -4
  3. package/esm2022/src/app/admin/users/person.service.mjs +34 -158
  4. package/esm2022/src/app/admin/users/person.validator.mjs +3 -3
  5. package/esm2022/src/app/admin/users/testing/person.testing.sevice.mjs +128 -0
  6. package/esm2022/src/app/admin/users/users.mjs +59 -53
  7. package/esm2022/src/app/core/account/account.page.mjs +76 -31
  8. package/esm2022/src/app/core/menu/menu.component.mjs +16 -5
  9. package/esm2022/src/app/core/register/register.form.mjs +3 -3
  10. package/esm2022/src/app/core/services/account.service.mjs +24 -16
  11. package/esm2022/src/app/core/services/config/core.config.mjs +7 -1
  12. package/esm2022/src/app/core/services/model/account.model.mjs +15 -1
  13. package/esm2022/src/app/core/services/model/entity.model.mjs +8 -1
  14. package/esm2022/src/app/core/services/model/person.model.mjs +4 -1
  15. package/esm2022/src/app/core/services/validator/account.validator.mjs +2 -1
  16. package/esm2022/src/app/shared/form/field.model.mjs +18 -1
  17. package/esm2022/src/app/shared/image/image.service.mjs +5 -3
  18. package/esm2022/src/app/social/feed/feed.service.mjs +3 -3
  19. package/esm2022/src/app/social/message/message.service.mjs +2 -2
  20. package/esm2022/src/environments/environment.class.mjs +1 -1
  21. package/esm2022/src/environments/environment.mjs +2 -1
  22. package/fesm2022/sumaris-net.ngx-components.mjs +371 -258
  23. package/fesm2022/sumaris-net.ngx-components.mjs.map +1 -1
  24. package/package.json +1 -1
  25. package/src/app/admin/users/person.filter.d.ts +3 -3
  26. package/src/app/admin/users/person.service.d.ts +32 -28
  27. package/src/app/admin/users/testing/person.testing.sevice.d.ts +17 -0
  28. package/src/app/admin/users/users.d.ts +4 -4
  29. package/src/app/core/account/account.page.d.ts +9 -2
  30. package/src/app/core/menu/menu.component.d.ts +4 -2
  31. package/src/app/core/services/account.service.d.ts +5 -2
  32. package/src/app/core/services/config/core.config.d.ts +45 -44
  33. package/src/app/core/services/model/account.model.d.ts +10 -0
  34. package/src/app/core/services/model/entity.model.d.ts +1 -1
  35. package/src/app/core/services/model/person.model.d.ts +2 -0
  36. package/src/app/shared/form/field.model.d.ts +13 -3
  37. package/src/app/shared/image/image.service.d.ts +1 -0
  38. package/src/app/social/config/social.config.d.ts +1 -1
  39. package/src/app/social/feed/feed.service.d.ts +1 -2
  40. package/src/assets/i18n/en-US.json +10 -2
  41. package/src/assets/i18n/en.json +10 -2
  42. package/src/assets/i18n/fr.json +9 -5
  43. package/src/assets/manifest.json +1 -1
  44. package/src/environments/environment.class.d.ts +1 -0
package/doc/changelog.md CHANGED
@@ -2074,5 +2074,8 @@ enh: Environment: add useHash property to configure Angular router to use hash U
2074
2074
  # 18.23.3
2075
2075
  - fix(ios) Not need to call Edge2Edge plugin in iOS devices
2076
2076
 
2077
- # 18.23.6
2077
+ # 18.23.11
2078
2078
  - fix(account) Manage additional field on type entities (e.g. a list of programs)
2079
+
2080
+ # 18.23.12
2081
+ - enh(account) Add avatar edition (enable by a config option)
@@ -53,7 +53,7 @@ let PersonFilter = class PersonFilter extends EntityFilter {
53
53
  this.searchAttribute = source.searchAttribute;
54
54
  this.searchAttributes = source.searchAttributes;
55
55
  // Extract additional fields
56
- this.additionalFields = AdditionalFields.fromObject(source, opts);
56
+ this.additionalFields = PersonFilterAdditionalFields.fromObject(source, opts);
57
57
  }
58
58
  asObject(opts) {
59
59
  const target = super.asObject(opts);
@@ -65,7 +65,7 @@ let PersonFilter = class PersonFilter extends EntityFilter {
65
65
  target.excludedIds = this.excludedIds;
66
66
  target.searchAttribute = this.searchAttribute;
67
67
  target.searchAttributes = this.searchAttributes;
68
- AdditionalFields.asObject(this.additionalFields, target, opts);
68
+ PersonFilterAdditionalFields.asObject(this.additionalFields, target, opts);
69
69
  delete target.additionalFields;
70
70
  if (opts?.minify) {
71
71
  target.userProfiles = Array.isArray(target.userProfiles) ? target.userProfiles?.map((up) => up?.label ?? up) : undefined;
@@ -125,7 +125,7 @@ PersonFilter = PersonFilter_1 = __decorate([
125
125
  EntityClass({ typename: 'PersonFilterVO' })
126
126
  ], PersonFilter);
127
127
  export { PersonFilter };
128
- export class AdditionalFields {
128
+ export class PersonFilterAdditionalFields {
129
129
  static fromObject(source, opts) {
130
130
  if (!source || !(typeof source == 'object'))
131
131
  return;
@@ -154,4 +154,4 @@ export class AdditionalFields {
154
154
  return target;
155
155
  }
156
156
  }
157
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyc29uLmZpbHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvYWRtaW4vdXNlcnMvcGVyc29uLmZpbHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFdEUsT0FBTyxFQUF5QixXQUFXLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUU1RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUc3RixXQUFXO0FBRUosSUFBTSxZQUFZLEdBQWxCLE1BQU0sWUFBYSxTQUFRLFlBQWtDOztJQUNsRSxNQUFNLENBQUMsTUFBTSxHQUEyQjtRQUN0QyxZQUFZO1FBQ1osSUFBSTtRQUNKLFlBQVk7UUFDWixPQUFPO1FBQ1AsUUFBUTtRQUNSLFlBQVk7UUFDWixXQUFXO1FBQ1gsY0FBYztRQUNkLGFBQWE7UUFDYixpQkFBaUI7UUFDakIsa0JBQWtCO1FBQ2xCLGtCQUFrQjtLQUNuQixDQUFDO0lBRUYsTUFBTSxDQUFDLFVBQVUsQ0FBdUM7SUFFeEQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFXO1FBQzNCLE9BQU8sY0FBWSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsRUFBRSxVQUFVLEVBQUUsQ0FBQztJQUN2RCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxNQUFNLENBQUMsWUFBWSxHQUFHLGNBQVksQ0FBQyxVQUFVLENBQUM7SUFFOUMsS0FBSyxDQUFTO0lBQ2QsTUFBTSxDQUFTO0lBQ2YsVUFBVSxDQUFTO0lBQ25CLFNBQVMsQ0FBVztJQUNwQixZQUFZLENBQVc7SUFDdkIsV0FBVyxDQUFXO0lBQ3RCLFdBQVcsQ0FBVztJQUN0QixlQUFlLENBQVM7SUFDeEIsZ0JBQWdCLENB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Q3RCLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7WUFDcEIsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ1gsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW50aXR5Q2xhc3MgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL21vZGVsL2VudGl0eS5kZWNvcmF0b3JzJztcbmltcG9ydCB7IEVudGl0eUZpbHRlciB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvbW9kZWwvZmlsdGVyLm1vZGVsJztcbmltcG9ydCB7IFBlcnNvbiB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvbW9kZWwvcGVyc29uLm1vZGVsJztcbmltcG9ydCB7IEVudGl0eUFzT2JqZWN0T3B0aW9ucywgRW50aXR5VXRpbHMgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL21vZGVsL2VudGl0eS5tb2RlbCc7XG5pbXBvcnQgeyBTdG9yZU9iamVjdCB9IGZyb20gJ0BhcG9sbG8vY2xpZW50L2NvcmUnO1xuaW1wb3J0IHsgZ2V0UHJvcGVydHlCeVBhdGgsIGlzTmlsLCBpc05vdEVtcHR5QXJyYXksIGlzTm90TmlsIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2Z1bmN0aW9ucyc7XG5pbXBvcnQgeyBGaWx0ZXJGbiB9IGZyb20gJy4uLy4uL3NoYXJlZC90eXBlcyc7XG5cbi8vIEBkeW5hbWljXG5ARW50aXR5Q2xhc3MoeyB0eXBlbmFtZTogJ1BlcnNvbkZpbHRlclZPJyB9KVxuZXhwb3J0IGNsYXNzIFBlcnNvbkZpbHRlciBleHRlbmRzIEVudGl0eUZpbHRlcjxQZXJzb25GaWx0ZXIsIFBlcnNvbj4ge1xuICBzdGF0aWMgRklFTERTOiAoa2V5b2YgUGVyc29uRmlsdGVyKVtdID0gW1xuICAgICdfX3R5cGVuYW1lJyxcbiAgICAnaWQnLFxuICAgICd1cGRhdGVEYXRlJyxcbiAgICAnZW1haWwnLFxuICAgICdwdWJrZXknLFxuICAgICdzZWFyY2hUZXh0JyxcbiAgICAnc3RhdHVzSWRzJyxcbiAgICAndXNlclByb2ZpbGVzJyxcbiAgICAnZXhjbHVkZWRJZHMnLFxuICAgICdzZWFyY2hBdHRyaWJ1dGUnLFxuICAgICdzZWFyY2hBdHRyaWJ1dGVzJyxcbiAgICAnYWRkaXRpb25hbEZpZWxkcycsXG4gIF07XG5cbiAgc3RhdGljIGZyb21PYmplY3Q6IChzb3VyY2UsIG9wdHM/OiBhbnkpID0+IFBlcnNvbkZpbHRlcjtcblxuICBzdGF0aWMgYXNGaWx0ZXJGbihzb3VyY2U6IGFueSk6IEZpbHRlckZuPFBlcnNvbj4ge1xuICAgIHJldHVybiBQZXJzb25GaWx0ZXIuZnJvbU9iamVjdChzb3VyY2UpPy5hc0ZpbHRlckZuKCk7XG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVXNlIGBQZXJzb25GaWx0ZXIuYXNGaWx0ZXJGbmAgaW5zdGVhZFxuICAgKi9cbiAgc3RhdGljIHNlYXJjaEZpbHRlciA9IFBlcnNvbkZpbHRlci5hc0ZpbHRlckZuO1xuXG4gIGVtYWlsOiBzdHJpbmc7XG4gIHB1YmtleTogc3RyaW5nO1xuICBzZWFyY2hUZXh0OiBzdHJpbmc7XG4gIHN0YXR1c0lkczogbnVtYmVyW107XG4gIHVzZXJQcm9maWxlczogc3RyaW5nW107XG4gIGluY2x1ZGVkSWRzOiBudW1iZXJbXTtcbiAgZXhjbHVkZWRJZHM6IG51bWJlcltdO1xuICBzZWFyY2hBdHRyaWJ1dGU6IHN0cmluZztcbiAgc2VhcmNoQXR0cmlidXRlczogc3RyaW5nW107XG4gIGFkZGl0aW9uYWxGaWVsZHM6IEFkZGl0aW9uYWxGaWVsZHM7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoUGVyc29uRmlsdGVyLlRZUEVOQU1FKTtcbiAgfVxuXG4gIGZyb21PYmplY3Qoc291cmNlOiBhbnksIG9wdHM/OiBFbnRpdHlBc09iamVjdE9wdGlvbnMpIHtcbiAgICBzdXBlci5mcm9tT2JqZWN0KHNvdXJjZSwgb3B0cyk7XG4gICAgdGhpcy5lbWFpbCA9IHNvdXJjZS5lbWFpbDtcbiAgICB0aGlzLnB1YmtleSA9IHNvdXJjZS5wdWJrZXk7XG4gICAgdGhpcy5zZWFyY2hUZXh0ID0gc291cmNlLnNlYXJjaFRleHQ7XG4gICAgdGhpcy5zdGF0dXNJZHMgPSBzb3VyY2Uuc3RhdHVzSWRzIHx8IChpc05vdE5pbChzb3VyY2Uuc3RhdHVzSWQpID8gW3NvdXJjZS5zdGF0dXNJZF0gOiB1bmRlZmluZWQpO1xuICAgIHRoaXMudXNlclByb2ZpbGVzID0gc291cmNlLnVzZXJQcm9maWxlcztcbiAgICB0aGlzLmV4Y2x1ZGVkSWRzID0gc291cmNlLmV4Y2x1ZGVkSWRzO1xuICAgIHRoaXMuc2VhcmNoQXR0cmlidXRlID0gc291cmNlLnNlYXJjaEF0dHJpYnV0ZTtcbiAgICB0aGlzLnNlYXJjaEF0dHJpYnV0ZXMgPSBzb3VyY2Uuc2VhcmNoQXR0cmlidXRlcztcblxuICAgIC8vIEV4dHJhY3QgYWRkaXRpb25hbCBmaWVsZHNcbiAgICB0aGlzLmFkZGl0aW9uYWxGaWVsZHMgPSBBZGRpdGlvbmFsRmllbGRzLmZyb21PYmplY3Qoc291cmNlLCBvcHRzKTtcbiAgfVxuXG4gIGFzT2JqZWN0KG9wdHM/OiBFbnRpdHlBc09iamVjdE9wdGlvbnMpOiBTdG9yZU9iamVjdCB7XG4gICAgY29uc3QgdGFyZ2V0ID0gc3VwZXIuYXNPYmplY3Qob3B0cyk7XG4gICAgdGFyZ2V0LmVtYWlsID0gdGhpcy5lbWFpbDtcbiAgICB0YXJnZXQucHVia2V5ID0gdGhpcy5wdWJrZXk7XG4gICAgdGFyZ2V0LnNlYXJjaFRleHQgPSB0aGlzLnNlYXJjaFRleHQ7XG4gICAgdGFyZ2V0LnN0YXR1c0lkcyA9IHRoaXMuc3RhdHVzSWRzO1xuICAgIHRhcmdldC51c2VyUHJvZmlsZXMgPSB0aGlzLnVzZXJQcm9maWxlcztcbiAgICB0YXJnZXQuZXhjbHVkZWRJZHMgPSB0aGlzLmV4Y2x1ZGVkSWRzO1xuICAgIHRhcmdldC5zZWFyY2hBdHRyaWJ1dGUgPSB0aGlzLnNlYXJjaEF0dHJpYnV0ZTtcbiAgICB0YXJnZXQuc2VhcmNoQXR0cmlidXRlcyA9IHRoaXMuc2VhcmNoQXR0cmlidXRlcztcbiAgICBBZGRpdGlvbmFsRmllbGRzLmFzT2JqZWN0KHRoaXMuYWRkaXRpb25hbEZpZWxkcywgdGFyZ2V0LCBvcHRzKTtcbiAgICBkZWxldGUgdGFyZ2V0LmFkZGl0aW9uYWxGaWVsZHM7XG5cbiAgICBpZiAob3B0cz8ubWluaWZ5KSB7XG4gICAgICB0YXJnZXQudXNlclByb2ZpbGVzID0gQXJyYXkuaXNBcnJheSh0YXJnZXQudXNlclByb2ZpbGVzKSA/IHRhcmdldC51c2VyUHJvZmlsZXM/Lm1hcCgodXApID0+IHVwPy5sYWJlbCA/PyB1cCkgOiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHJldHVybiB0YXJnZXQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgYnVpbGRGaWx0ZXIoKTogRmlsdGVyRm48UGVyc29uPltdIHtcbiAgICBjb25zdCBmaWx0ZXJGbnMgPSBzdXBlci5idWlsZEZpbHRlcigpO1xuXG4gICAgLy8gRmlsdGVyIGJ5IHN0YXR1c1xuICAgIGlmIChpc05vdEVtcHR5QXJyYXkodGhpcy5zdGF0dXNJZHMpKSB7XG4gICAgICBmaWx0ZXJGbnMucHVzaCgoZSkgPT4gdGhpcy5zdGF0dXNJZHMuaW5jbHVkZXMoZS5zdGF0dXNJZCkpO1xuICAgIH1cblxuICAgIC8vIEZpbHRlciBpbmNsdWRlZCBpZHNcbiAgICBjb25zdCBpbmNsdWRlZElkcyA9IHRoaXMuaW5jbHVkZWRJZHM7XG4gICAgaWYgKGlzTm90RW1wdHlBcnJheShpbmNsdWRlZElkcykpIHtcbiAgICAgIGZpbHRlckZucy5wdXNoKChlKSA9PiBpc05vdE5pbChlLmlkKSAmJiBpbmNsdWRlZElkcy5pbmNsdWRlcyhlLmlkKSk7XG4gICAgfVxuXG4gICAgLy8gRmlsdGVyIGV4Y2x1ZGVkIGlkc1xuICAgIGNvbnN0IGV4Y2x1ZGVkSWRzID0gdGhpcy5leGNsdWRlZElkcztcbiAgICBpZiAoaXNOb3RFbXB0eUFycmF5KGV4Y2x1ZGVkSWRzKSkge1xuICAgICAgZmlsdGVyRm5zLnB1c2goKGUpID0+IGlzTmlsKGUuaWQpIHx8ICFleGNsdWRlZElkcy5pbmNsdWRlcyhlLmlkKSk7XG4gICAgfVxuXG4gICAgLy8gU2VhcmNoIHRleHRcbiAgICBjb25zdCBzZWFyY2hUZXh0RmlsdGVyID0gRW50aXR5VXRpbHMuc2VhcmNoVGV4dEZpbHRlcihcbiAgICAgIHRoaXMuc2VhcmNoQXR0cmlidXRlIHx8IHRoaXMuc2VhcmNoQXR0cmlidXRlcyB8fCBbJ2xhc3ROYW1lJywgJ2ZpcnN0TmFtZScsICdkZXBhcnRtZW50Lm5hbWUnXSxcbiAgICAgIHRoaXMuc2VhcmNoVGV4dFxuICAgICk7XG4gICAgaWYgKHNlYXJjaFRleHRGaWx0ZXIpIGZpbHRlckZucy5wdXNoKHNlYXJjaFRleHRGaWx0ZXIpO1xuXG4gICAgLy8gRmlsdGVyIGJ5IGFkZGl0aW9uYWwgZmllbGRzXG4gICAgaWYgKHRoaXMuYWRkaXRpb25hbEZpZWxkcykge1xuICAgICAgT2JqZWN0LmtleXModGhpcy5hZGRpdGlvbmFsRmllbGRzKS5mb3JFYWNoKChmaWVsZEtleSkgPT4ge1xuICAgICAgICBjb25zdCBmaWVsZFZhbHVlID0gdGhpcy5hZGRpdGlvbmFsRmllbGRzW2ZpZWxkS2V5XTtcbiAgICAgICAgaWYgKGlzTm90TmlsKGZpZWxkVmFsdWUpKSB7XG4gICAgICAgICAgZmlsdGVyRm5zLnB1c2goKHBlcnNvbjogUGVyc29uKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBwZXJzb25WYWx1ZSA9IGdldFByb3BlcnR5QnlQYXRoKHBlcnNvbiwgZmllbGRLZXkpO1xuICAgICAgICAgICAgLy8gSGFuZGxlIGRpZmZlcmVudCB2YWx1ZSB0eXBlcyAoc3RyaW5nLCBvYmplY3Qgd2l0aCBpZCwgYXJyYXksIGV0Yy4pXG4gICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShmaWVsZFZhbHVlKSkge1xuICAgICAgICAgICAgICAvLyBNdWx0aXBsZSBzZWxlY3Rpb24gLSBjaGVjayBpZiBwZXJzb24gdmFsdWUgbWF0Y2hlcyBhbnkgc2VsZWN0ZWQgdmFsdWVcbiAgICAgICAgICAgICAgcmV0dXJuIGZpZWxkVmFsdWUuc29tZSgoc2VsZWN0ZWRWYWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkSWQgPSBzZWxlY3RlZFZhbHVlPy5pZCA/PyBzZWxlY3RlZFZhbHVlO1xuICAgICAgICAgICAgICAgIGNvbnN0IHBlcnNvbklkID0gcGVyc29uVmFsdWU/LmlkID8/IHBlcnNvblZhbHVlO1xuICAgICAgICAgICAgICAgIHJldHVybiBzZWxlY3RlZElkID09PSBwZXJzb25JZDtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAvLyBTaW5nbGUgdmFsdWUgLSBkaXJlY3QgY29tcGFyaXNvblxuICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZElkID0gZmllbGRWYWx1ZT8uaWQgPz8gZmllbGRWYWx1ZTtcbiAgICAgICAgICAgICAgY29uc3QgcGVyc29uSWQgPSBwZXJzb25WYWx1ZT8uaWQgPz8gcGVyc29uVmFsdWU7XG4gICAgICAgICAgICAgIHJldHVybiBzZWxlY3RlZElkID09PSBwZXJzb25JZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZpbHRlckZucztcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgQWRkaXRpb25hbEZpZWxkcyB7XG4gIFtrZXk6IHN0cmluZ106IGFueTtcblxuICBzdGF0aWMgZnJvbU9iamVjdChzb3VyY2U6IGFueSwgb3B0cz86IGFueSk6IHsgW2tleTogc3RyaW5nXTogYW55IH0ge1xuICAgIGlmICghc291cmNlIHx8ICEodHlwZW9mIHNvdXJjZSA9PSAnb2JqZWN0JykpIHJldHVybjtcbiAgICByZXR1cm4gKFxuICAgICAgT2JqZWN0LmtleXMoc291cmNlKVxuICAgICAgICAvLyBFeGNsdWRlIGNvbW1vbiBmaWVsZHMsIGZyb20gUGVyc29uRmlsdGVyXG4gICAgICAgIC5maWx0ZXIoKGtleSkgPT4gIVBlcnNvbkZpbHRlci5GSUVMRFMuaW5jbHVkZXMoa2V5IGFzIGtleW9mIFBlcnNvbkZpbHRlcikgJiYga2V5ICE9PSAnYW5kJyAmJiBrZXkgIT09ICdvcicgJiYga2V5ICE9PSAnbm90JylcbiAgICAgICAgLnJlZHVjZShcbiAgICAgICAgICAodGFyZ2V0LCBrZXkpID0+IHtcbiAgICAgICAgICAgIGlmIChpc05pbChzb3VyY2Vba2V5XSkpIHJldHVybiB0YXJnZXQ7XG4gICAgICAgICAgICB0YXJnZXQgPSB0YXJnZXQgfHwge307XG4gICAgICAgICAgICB0YXJnZXRba2V5XSA9IHNvdXJjZVtrZXldO1xuICAgICAgICAgICAgcmV0dXJuIHRhcmdldDtcbiAgICAgICAgICB9LFxuICAgICAgICAgIHVuZGVmaW5lZCBhcyB7IFtrZXk6IHN0cmluZ106IGFueSB9XG4gICAgICAgIClcbiAgICApO1xuICB9XG5cbiAgc3RhdGljIGFzT2JqZWN0KHNvdXJjZTogYW55LCB0YXJnZXQ6IGFueSA9IHt9LCBvcHRzPzogRW50aXR5QXNPYmplY3RPcHRpb25zKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB7XG4gICAgaWYgKCFzb3VyY2UgfHwgISh0eXBlb2Ygc291cmNlID09ICdvYmplY3QnKSkgcmV0dXJuO1xuICAgIE9iamVjdC5rZXlzKHNvdXJjZSkucmVkdWNlKCh0YXJnZXQsIGtleSkgPT4ge1xuICAgICAgY29uc3QgdmFsdWUgPSBFbnRpdHlVdGlscy5hc09iamVjdChzb3VyY2Vba2V5XSwgb3B0cyk7XG4gICAgICBpZiAoaXNOaWwodmFsdWUpKSByZXR1cm4gdGFyZ2V0O1xuICAgICAgdGFyZ2V0ID0gdGFyZ2V0IHx8IHt9O1xuICAgICAgdGFyZ2V0W2tleV0gPSB2YWx1ZTtcbiAgICAgIHJldHVybiB0YXJnZXQ7XG4gICAgfSwgdGFyZ2V0KTtcbiAgICByZXR1cm4gdGFyZ2V0O1xuICB9XG59XG4iXX0=
157
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyc29uLmZpbHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvYWRtaW4vdXNlcnMvcGVyc29uLmZpbHRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFdEUsT0FBTyxFQUF5QixXQUFXLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUU1RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUc3RixXQUFXO0FBRUosSUFBTSxZQUFZLEdBQWxCLE1BQU0sWUFBdUcsU0FBUSxZQUFrQjs7SUFDNUksTUFBTSxDQUFDLE1BQU0sR0FBMkI7UUFDdEMsWUFBWTtRQUNaLElBQUk7UUFDSixZQUFZO1FBQ1osT0FBTztRQUNQLFFBQVE7UUFDUixZQUFZO1FBQ1osV0FBVztRQUNYLGNBQWM7UUFDZCxhQUFhO1FBQ2IsaUJBQWlCO1FBQ2pCLGtCQUFrQjtRQUNsQixrQkFBa0I7S0FDbkIsQ0FBQztJQUVGLE1BQU0sQ0FBQyxVQUFVLENBQXVDO0lBRXhELE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBVztRQUMzQixPQUFPLGNBQVksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUUsVUFBVSxFQUFFLENBQUM7SUFDdkQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLFlBQVksR0FBRyxjQUFZLENBQUMsVUFBVSxDQUFDO0lBRTlDLEtBQUssQ0FBUztJQUNkLE1BQU0sQ0FBUztJQUNmLFVBQVUsQ0FBUztJQUNuQixTQUFTLENBQVc7SUFDcEIsWUFBWSxDQUFXO0lBQ3ZCLFdBQVcsQ0FBVztJQUN0QixXQUFXLENBQVc7SUFDdEIsZUFBZSxDQUFTO0lBQ3hCLGdCQUFnQixD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QUN0QixNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO1lBQ3BCLE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUMsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNYLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudGl0eUNsYXNzIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9tb2RlbC9lbnRpdHkuZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBFbnRpdHlGaWx0ZXIgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL21vZGVsL2ZpbHRlci5tb2RlbCc7XG5pbXBvcnQgeyBQZXJzb24gfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL21vZGVsL3BlcnNvbi5tb2RlbCc7XG5pbXBvcnQgeyBFbnRpdHlBc09iamVjdE9wdGlvbnMsIEVudGl0eVV0aWxzIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9tb2RlbC9lbnRpdHkubW9kZWwnO1xuaW1wb3J0IHsgU3RvcmVPYmplY3QgfSBmcm9tICdAYXBvbGxvL2NsaWVudC9jb3JlJztcbmltcG9ydCB7IGdldFByb3BlcnR5QnlQYXRoLCBpc05pbCwgaXNOb3RFbXB0eUFycmF5LCBpc05vdE5pbCB9IGZyb20gJy4uLy4uL3NoYXJlZC9mdW5jdGlvbnMnO1xuaW1wb3J0IHsgRmlsdGVyRm4gfSBmcm9tICcuLi8uLi9zaGFyZWQvdHlwZXMnO1xuXG4vLyBAZHluYW1pY1xuQEVudGl0eUNsYXNzKHsgdHlwZW5hbWU6ICdQZXJzb25GaWx0ZXJWTycgfSlcbmV4cG9ydCBjbGFzcyBQZXJzb25GaWx0ZXI8RiBleHRlbmRzIFBlcnNvbkZpbHRlcjxGLCBUPiA9IFBlcnNvbkZpbHRlcjxhbnksIGFueT4sIFQgZXh0ZW5kcyBQZXJzb248VD4gPSBQZXJzb248YW55Pj4gZXh0ZW5kcyBFbnRpdHlGaWx0ZXI8RiwgVD4ge1xuICBzdGF0aWMgRklFTERTOiAoa2V5b2YgUGVyc29uRmlsdGVyKVtdID0gW1xuICAgICdfX3R5cGVuYW1lJyxcbiAgICAnaWQnLFxuICAgICd1cGRhdGVEYXRlJyxcbiAgICAnZW1haWwnLFxuICAgICdwdWJrZXknLFxuICAgICdzZWFyY2hUZXh0JyxcbiAgICAnc3RhdHVzSWRzJyxcbiAgICAndXNlclByb2ZpbGVzJyxcbiAgICAnZXhjbHVkZWRJZHMnLFxuICAgICdzZWFyY2hBdHRyaWJ1dGUnLFxuICAgICdzZWFyY2hBdHRyaWJ1dGVzJyxcbiAgICAnYWRkaXRpb25hbEZpZWxkcycsXG4gIF07XG5cbiAgc3RhdGljIGZyb21PYmplY3Q6IChzb3VyY2UsIG9wdHM/OiBhbnkpID0+IFBlcnNvbkZpbHRlcjtcblxuICBzdGF0aWMgYXNGaWx0ZXJGbihzb3VyY2U6IGFueSk6IEZpbHRlckZuPFBlcnNvbj4ge1xuICAgIHJldHVybiBQZXJzb25GaWx0ZXIuZnJvbU9iamVjdChzb3VyY2UpPy5hc0ZpbHRlckZuKCk7XG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVXNlIGBQZXJzb25GaWx0ZXIuYXNGaWx0ZXJGbmAgaW5zdGVhZFxuICAgKi9cbiAgc3RhdGljIHNlYXJjaEZpbHRlciA9IFBlcnNvbkZpbHRlci5hc0ZpbHRlckZuO1xuXG4gIGVtYWlsOiBzdHJpbmc7XG4gIHB1YmtleTogc3RyaW5nO1xuICBzZWFyY2hUZXh0OiBzdHJpbmc7XG4gIHN0YXR1c0lkczogbnVtYmVyW107XG4gIHVzZXJQcm9maWxlczogc3RyaW5nW107XG4gIGluY2x1ZGVkSWRzOiBudW1iZXJbXTtcbiAgZXhjbHVkZWRJZHM6IG51bWJlcltdO1xuICBzZWFyY2hBdHRyaWJ1dGU6IHN0cmluZztcbiAgc2VhcmNoQXR0cmlidXRlczogc3RyaW5nW107XG4gIGFkZGl0aW9uYWxGaWVsZHM6IFBlcnNvbkZpbHRlckFkZGl0aW9uYWxGaWVsZHM7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoUGVyc29uRmlsdGVyLlRZUEVOQU1FKTtcbiAgfVxuXG4gIGZyb21PYmplY3Qoc291cmNlOiBhbnksIG9wdHM/OiBFbnRpdHlBc09iamVjdE9wdGlvbnMpIHtcbiAgICBzdXBlci5mcm9tT2JqZWN0KHNvdXJjZSwgb3B0cyk7XG4gICAgdGhpcy5lbWFpbCA9IHNvdXJjZS5lbWFpbDtcbiAgICB0aGlzLnB1YmtleSA9IHNvdXJjZS5wdWJrZXk7XG4gICAgdGhpcy5zZWFyY2hUZXh0ID0gc291cmNlLnNlYXJjaFRleHQ7XG4gICAgdGhpcy5zdGF0dXNJZHMgPSBzb3VyY2Uuc3RhdHVzSWRzIHx8IChpc05vdE5pbChzb3VyY2Uuc3RhdHVzSWQpID8gW3NvdXJjZS5zdGF0dXNJZF0gOiB1bmRlZmluZWQpO1xuICAgIHRoaXMudXNlclByb2ZpbGVzID0gc291cmNlLnVzZXJQcm9maWxlcztcbiAgICB0aGlzLmV4Y2x1ZGVkSWRzID0gc291cmNlLmV4Y2x1ZGVkSWRzO1xuICAgIHRoaXMuc2VhcmNoQXR0cmlidXRlID0gc291cmNlLnNlYXJjaEF0dHJpYnV0ZTtcbiAgICB0aGlzLnNlYXJjaEF0dHJpYnV0ZXMgPSBzb3VyY2Uuc2VhcmNoQXR0cmlidXRlcztcblxuICAgIC8vIEV4dHJhY3QgYWRkaXRpb25hbCBmaWVsZHNcbiAgICB0aGlzLmFkZGl0aW9uYWxGaWVsZHMgPSBQZXJzb25GaWx0ZXJBZGRpdGlvbmFsRmllbGRzLmZyb21PYmplY3Qoc291cmNlLCBvcHRzKTtcbiAgfVxuXG4gIGFzT2JqZWN0KG9wdHM/OiBFbnRpdHlBc09iamVjdE9wdGlvbnMpOiBTdG9yZU9iamVjdCB7XG4gICAgY29uc3QgdGFyZ2V0ID0gc3VwZXIuYXNPYmplY3Qob3B0cyk7XG4gICAgdGFyZ2V0LmVtYWlsID0gdGhpcy5lbWFpbDtcbiAgICB0YXJnZXQucHVia2V5ID0gdGhpcy5wdWJrZXk7XG4gICAgdGFyZ2V0LnNlYXJjaFRleHQgPSB0aGlzLnNlYXJjaFRleHQ7XG4gICAgdGFyZ2V0LnN0YXR1c0lkcyA9IHRoaXMuc3RhdHVzSWRzO1xuICAgIHRhcmdldC51c2VyUHJvZmlsZXMgPSB0aGlzLnVzZXJQcm9maWxlcztcbiAgICB0YXJnZXQuZXhjbHVkZWRJZHMgPSB0aGlzLmV4Y2x1ZGVkSWRzO1xuICAgIHRhcmdldC5zZWFyY2hBdHRyaWJ1dGUgPSB0aGlzLnNlYXJjaEF0dHJpYnV0ZTtcbiAgICB0YXJnZXQuc2VhcmNoQXR0cmlidXRlcyA9IHRoaXMuc2VhcmNoQXR0cmlidXRlcztcblxuICAgIFBlcnNvbkZpbHRlckFkZGl0aW9uYWxGaWVsZHMuYXNPYmplY3QodGhpcy5hZGRpdGlvbmFsRmllbGRzLCB0YXJnZXQsIG9wdHMpO1xuICAgIGRlbGV0ZSB0YXJnZXQuYWRkaXRpb25hbEZpZWxkcztcblxuICAgIGlmIChvcHRzPy5taW5pZnkpIHtcbiAgICAgIHRhcmdldC51c2VyUHJvZmlsZXMgPSBBcnJheS5pc0FycmF5KHRhcmdldC51c2VyUHJvZmlsZXMpID8gdGFyZ2V0LnVzZXJQcm9maWxlcz8ubWFwKCh1cCkgPT4gdXA/LmxhYmVsID8/IHVwKSA6IHVuZGVmaW5lZDtcbiAgICB9XG4gICAgcmV0dXJuIHRhcmdldDtcbiAgfVxuXG4gIHByb3RlY3RlZCBidWlsZEZpbHRlcigpOiBGaWx0ZXJGbjxQZXJzb24+W10ge1xuICAgIGNvbnN0IGZpbHRlckZucyA9IHN1cGVyLmJ1aWxkRmlsdGVyKCk7XG5cbiAgICAvLyBGaWx0ZXIgYnkgc3RhdHVzXG4gICAgaWYgKGlzTm90RW1wdHlBcnJheSh0aGlzLnN0YXR1c0lkcykpIHtcbiAgICAgIGZpbHRlckZucy5wdXNoKChlKSA9PiB0aGlzLnN0YXR1c0lkcy5pbmNsdWRlcyhlLnN0YXR1c0lkKSk7XG4gICAgfVxuXG4gICAgLy8gRmlsdGVyIGluY2x1ZGVkIGlkc1xuICAgIGNvbnN0IGluY2x1ZGVkSWRzID0gdGhpcy5pbmNsdWRlZElkcztcbiAgICBpZiAoaXNOb3RFbXB0eUFycmF5KGluY2x1ZGVkSWRzKSkge1xuICAgICAgZmlsdGVyRm5zLnB1c2goKGUpID0+IGlzTm90TmlsKGUuaWQpICYmIGluY2x1ZGVkSWRzLmluY2x1ZGVzKGUuaWQpKTtcbiAgICB9XG5cbiAgICAvLyBGaWx0ZXIgZXhjbHVkZWQgaWRzXG4gICAgY29uc3QgZXhjbHVkZWRJZHMgPSB0aGlzLmV4Y2x1ZGVkSWRzO1xuICAgIGlmIChpc05vdEVtcHR5QXJyYXkoZXhjbHVkZWRJZHMpKSB7XG4gICAgICBmaWx0ZXJGbnMucHVzaCgoZSkgPT4gaXNOaWwoZS5pZCkgfHwgIWV4Y2x1ZGVkSWRzLmluY2x1ZGVzKGUuaWQpKTtcbiAgICB9XG5cbiAgICAvLyBTZWFyY2ggdGV4dFxuICAgIGNvbnN0IHNlYXJjaFRleHRGaWx0ZXIgPSBFbnRpdHlVdGlscy5zZWFyY2hUZXh0RmlsdGVyKFxuICAgICAgdGhpcy5zZWFyY2hBdHRyaWJ1dGUgfHwgdGhpcy5zZWFyY2hBdHRyaWJ1dGVzIHx8IFsnbGFzdE5hbWUnLCAnZmlyc3ROYW1lJywgJ2RlcGFydG1lbnQubmFtZSddLFxuICAgICAgdGhpcy5zZWFyY2hUZXh0XG4gICAgKTtcbiAgICBpZiAoc2VhcmNoVGV4dEZpbHRlcikgZmlsdGVyRm5zLnB1c2goc2VhcmNoVGV4dEZpbHRlcik7XG5cbiAgICAvLyBGaWx0ZXIgYnkgYWRkaXRpb25hbCBmaWVsZHNcbiAgICBpZiAodGhpcy5hZGRpdGlvbmFsRmllbGRzKSB7XG4gICAgICBPYmplY3Qua2V5cyh0aGlzLmFkZGl0aW9uYWxGaWVsZHMpLmZvckVhY2goKGZpZWxkS2V5KSA9PiB7XG4gICAgICAgIGNvbnN0IGZpZWxkVmFsdWUgPSB0aGlzLmFkZGl0aW9uYWxGaWVsZHNbZmllbGRLZXldO1xuICAgICAgICBpZiAoaXNOb3ROaWwoZmllbGRWYWx1ZSkpIHtcbiAgICAgICAgICBmaWx0ZXJGbnMucHVzaCgocGVyc29uOiBQZXJzb24pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHBlcnNvblZhbHVlID0gZ2V0UHJvcGVydHlCeVBhdGgocGVyc29uLCBmaWVsZEtleSk7XG4gICAgICAgICAgICAvLyBIYW5kbGUgZGlmZmVyZW50IHZhbHVlIHR5cGVzIChzdHJpbmcsIG9iamVjdCB3aXRoIGlkLCBhcnJheSwgZXRjLilcbiAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KGZpZWxkVmFsdWUpKSB7XG4gICAgICAgICAgICAgIC8vIE11bHRpcGxlIHNlbGVjdGlvbiAtIGNoZWNrIGlmIHBlcnNvbiB2YWx1ZSBtYXRjaGVzIGFueSBzZWxlY3RlZCB2YWx1ZVxuICAgICAgICAgICAgICByZXR1cm4gZmllbGRWYWx1ZS5zb21lKChzZWxlY3RlZFZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRJZCA9IHNlbGVjdGVkVmFsdWU/LmlkID8/IHNlbGVjdGVkVmFsdWU7XG4gICAgICAgICAgICAgICAgY29uc3QgcGVyc29uSWQgPSBwZXJzb25WYWx1ZT8uaWQgPz8gcGVyc29uVmFsdWU7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNlbGVjdGVkSWQgPT09IHBlcnNvbklkO1xuICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIC8vIFNpbmdsZSB2YWx1ZSAtIGRpcmVjdCBjb21wYXJpc29uXG4gICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkSWQgPSBmaWVsZFZhbHVlPy5pZCA/PyBmaWVsZFZhbHVlO1xuICAgICAgICAgICAgICBjb25zdCBwZXJzb25JZCA9IHBlcnNvblZhbHVlPy5pZCA/PyBwZXJzb25WYWx1ZTtcbiAgICAgICAgICAgICAgcmV0dXJuIHNlbGVjdGVkSWQgPT09IHBlcnNvbklkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gZmlsdGVyRm5zO1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBQZXJzb25GaWx0ZXJBZGRpdGlvbmFsRmllbGRzIHtcbiAgW2tleTogc3RyaW5nXTogYW55O1xuXG4gIHN0YXRpYyBmcm9tT2JqZWN0KHNvdXJjZTogYW55LCBvcHRzPzogYW55KTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB7XG4gICAgaWYgKCFzb3VyY2UgfHwgISh0eXBlb2Ygc291cmNlID09ICdvYmplY3QnKSkgcmV0dXJuO1xuICAgIHJldHVybiAoXG4gICAgICBPYmplY3Qua2V5cyhzb3VyY2UpXG4gICAgICAgIC8vIEV4Y2x1ZGUgY29tbW9uIGZpZWxkcywgZnJvbSBQZXJzb25GaWx0ZXJcbiAgICAgICAgLmZpbHRlcigoa2V5KSA9PiAhUGVyc29uRmlsdGVyLkZJRUxEUy5pbmNsdWRlcyhrZXkgYXMga2V5b2YgUGVyc29uRmlsdGVyKSAmJiBrZXkgIT09ICdhbmQnICYmIGtleSAhPT0gJ29yJyAmJiBrZXkgIT09ICdub3QnKVxuICAgICAgICAucmVkdWNlKFxuICAgICAgICAgICh0YXJnZXQsIGtleSkgPT4ge1xuICAgICAgICAgICAgaWYgKGlzTmlsKHNvdXJjZVtrZXldKSkgcmV0dXJuIHRhcmdldDtcbiAgICAgICAgICAgIHRhcmdldCA9IHRhcmdldCB8fCB7fTtcbiAgICAgICAgICAgIHRhcmdldFtrZXldID0gc291cmNlW2tleV07XG4gICAgICAgICAgICByZXR1cm4gdGFyZ2V0O1xuICAgICAgICAgIH0sXG4gICAgICAgICAgdW5kZWZpbmVkIGFzIHsgW2tleTogc3RyaW5nXTogYW55IH1cbiAgICAgICAgKVxuICAgICk7XG4gIH1cblxuICBzdGF0aWMgYXNPYmplY3Qoc291cmNlOiBhbnksIHRhcmdldDogYW55ID0ge30sIG9wdHM/OiBFbnRpdHlBc09iamVjdE9wdGlvbnMpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHtcbiAgICBpZiAoIXNvdXJjZSB8fCAhKHR5cGVvZiBzb3VyY2UgPT0gJ29iamVjdCcpKSByZXR1cm47XG4gICAgT2JqZWN0LmtleXMoc291cmNlKS5yZWR1Y2UoKHRhcmdldCwga2V5KSA9PiB7XG4gICAgICBjb25zdCB2YWx1ZSA9IEVudGl0eVV0aWxzLmFzT2JqZWN0KHNvdXJjZVtrZXldLCBvcHRzKTtcbiAgICAgIGlmIChpc05pbCh2YWx1ZSkpIHJldHVybiB0YXJnZXQ7XG4gICAgICB0YXJnZXQgPSB0YXJnZXQgfHwge307XG4gICAgICB0YXJnZXRba2V5XSA9IHZhbHVlO1xuICAgICAgcmV0dXJuIHRhcmdldDtcbiAgICB9LCB0YXJnZXQpO1xuICAgIHJldHVybiB0YXJnZXQ7XG4gIH1cbn1cbiJdfQ==
@@ -1,126 +1,28 @@
1
- import { Injectable } from '@angular/core';
2
- import { gql } from 'apollo-angular';
3
- import { Person } from '../../core/services/model/person.model';
1
+ import { Directive, inject, InjectionToken } from '@angular/core';
4
2
  import { StatusIds } from '../../core/services/model/model.enum';
5
- import { JobUtils } from '../../shared/services/job.utils';
6
- import { PersonFilter } from './person.filter';
7
- import { EntityUtils } from '../../core/services/model/entity.model';
8
- import { BaseEntityService } from '../../core/services/base-entity-service.class';
9
- import { environment } from '../../../environments/environment';
3
+ import { BaseEntityService, } from '../../core/services/base-entity-service.class';
10
4
  import { isNotEmptyArray } from '../../shared/functions';
5
+ import { NetworkService } from '../../core/services/network.service';
6
+ import { EntitiesStorage } from '../../core/services/storage/entities-storage.service';
7
+ import { ENVIRONMENT } from '../../../environments/environment.class';
11
8
  import * as i0 from "@angular/core";
12
9
  import * as i1 from "../../core/graphql/graphql.service";
13
10
  import * as i2 from "../../core/services/platform.service";
14
- import * as i3 from "../../core/services/network.service";
15
- import * as i4 from "../../core/services/storage/entities-storage.service";
16
- export const PersonFragments = {
17
- lightPerson: gql `
18
- fragment LightPersonFragment on PersonVO {
19
- id
20
- firstName
21
- lastName
22
- avatar
23
- department {
24
- id
25
- label
26
- name
27
- __typename
28
- }
29
- __typename
30
- }
31
- `,
32
- person: gql `
33
- fragment PersonFragment on PersonVO {
34
- id
35
- firstName
36
- lastName
37
- email
38
- pubkey
39
- avatar
40
- statusId
41
- updateDate
42
- creationDate
43
- profiles
44
- username
45
- usernameExtranet
46
- department {
47
- id
48
- label
49
- name
50
- logo
51
- __typename
52
- }
53
- __typename
54
- }
55
- `,
56
- personFilter: gql `
57
- fragment PersonFilterFragment on PersonFilterVO {
58
- email
59
- pubkey
60
- searchText
61
- statusIds
62
- userProfiles
63
- includedIds
64
- excludedIds
65
- searchAttribute
66
- searchAttributes
67
- }
68
- `,
69
- };
70
- // Load persons query
71
- const PersonQueries = {
72
- loadAll: gql `
73
- query Persons($offset: Int, $size: Int, $sortBy: String, $sortDirection: String, $filter: PersonFilterVOInput) {
74
- data: persons(filter: $filter, offset: $offset, size: $size, sortBy: $sortBy, sortDirection: $sortDirection) {
75
- ...PersonFragment
76
- }
77
- }
78
- ${PersonFragments.person}
79
- `,
80
- loadAllWithTotal: gql `
81
- query PersonsWithTotal($offset: Int, $size: Int, $sortBy: String, $sortDirection: String, $filter: PersonFilterVOInput) {
82
- data: persons(filter: $filter, offset: $offset, size: $size, sortBy: $sortBy, sortDirection: $sortDirection) {
83
- ...PersonFragment
84
- }
85
- total: personsCount(filter: $filter)
86
- }
87
- ${PersonFragments.person}
88
- `,
89
- };
90
- const PersonMutations = {
91
- saveAll: gql `
92
- mutation savePersons($data: [PersonVOInput]) {
93
- data: savePersons(persons: $data) {
94
- ...PersonFragment
95
- }
96
- }
97
- ${PersonFragments.person}
98
- `,
99
- deleteAll: gql `
100
- mutation deletePersons($ids: [Int]) {
101
- deletePersons(ids: $ids)
102
- }
103
- `,
104
- };
105
- export class PersonService extends BaseEntityService {
106
- graphql;
107
- platform;
108
- network;
109
- entities;
110
- constructor(graphql, platform, network, entities) {
111
- super(graphql, platform, Person, PersonFilter, {
112
- queries: PersonQueries,
113
- mutations: PersonMutations,
114
- defaultSortBy: 'lastName',
115
- defaultSortDirection: 'asc',
116
- watchQueriesDeletePolicy: 'refetch-queries'
117
- });
118
- this.graphql = graphql;
119
- this.platform = platform;
120
- this.network = network;
121
- this.entities = entities;
11
+ export const APP_PERSON_SERVICE = new InjectionToken('PersonService');
12
+ // This class is under GPLv3 license
13
+ export class AbstractPersonService extends BaseEntityService {
14
+ dataType;
15
+ filterType;
16
+ options;
17
+ network = inject(NetworkService);
18
+ entities = inject(EntitiesStorage);
19
+ constructor(graphql, platform, dataType, filterType, options) {
20
+ super(graphql, platform, dataType, filterType, options);
21
+ this.dataType = dataType;
22
+ this.filterType = filterType;
23
+ this.options = options;
122
24
  // for DEV only -----
123
- this._debug = !environment.production;
25
+ this._debug = !inject(ENVIRONMENT).production;
124
26
  }
125
27
  async loadAll(offset, size, sortBy, sortDirection, filter, opts) {
126
28
  const offline = this.network.offline && (!opts || opts.fetchPolicy !== 'network-only');
@@ -136,9 +38,10 @@ export class PersonService extends BaseEntityService {
136
38
  size: size || 100,
137
39
  sortBy: sortBy || this.defaultSortBy,
138
40
  sortDirection: sortDirection || this.defaultSortDirection,
139
- filter: filter && filter.asFilterFn(),
41
+ filter: filter && filter.asFilterFn ? filter.asFilterFn() : filter,
140
42
  };
141
- const { data, total } = await this.entities.loadAll('PersonVO', variables);
43
+ const typename = this.dataType.TYPENAME || new this.dataType().__typename || 'PersonVO';
44
+ const { data, total } = await this.entities.loadAll(typename, variables);
142
45
  const entities = this.fromObjects(data, opts);
143
46
  const res = { data: entities, total };
144
47
  // Add fetch more function
@@ -149,37 +52,21 @@ export class PersonService extends BaseEntityService {
149
52
  return res;
150
53
  }
151
54
  async suggest(value, filter, sortBy, sortDirection, opts) {
152
- if (EntityUtils.isNotEmpty(value, 'id'))
55
+ if (value?.id != null)
153
56
  return { data: [value] };
154
57
  value = (typeof value === 'string' && value !== '*' && value) || undefined;
155
- sortBy = sortBy || filter.searchAttribute || (filter.searchAttributes && filter.searchAttributes[0]);
58
+ const f = filter || {};
59
+ sortBy = sortBy || f.searchAttribute || (f.searchAttributes && f.searchAttributes[0]);
156
60
  return this.loadAll(0, !value ? 30 : 10, sortBy, sortDirection, {
157
61
  ...filter,
158
62
  searchText: value,
159
- statusIds: (filter && filter.statusIds) || [StatusIds.ENABLE, StatusIds.TEMPORARY],
160
- userProfiles: filter && filter.userProfiles,
63
+ statusIds: (f && f.statusIds) || [StatusIds.ENABLE, StatusIds.TEMPORARY],
64
+ userProfiles: f && f.userProfiles,
161
65
  }, {
162
66
  withTotal: true /* need by autocomplete */,
163
67
  ...opts,
164
68
  });
165
69
  }
166
- async executeImport(filter, opts) {
167
- const maxProgression = (opts && opts.maxProgression) || 100;
168
- filter = {
169
- ...filter,
170
- statusIds: [StatusIds.ENABLE, StatusIds.TEMPORARY],
171
- userProfiles: ['SUPERVISOR', 'USER', 'GUEST'],
172
- };
173
- console.info('[person-service] Importing persons...');
174
- const res = await JobUtils.fetchAllPages((offset, size) => this.loadAll(offset, size, 'id', null, filter, {
175
- debug: false,
176
- fetchPolicy: 'no-cache', // Not need to keep result in the cache
177
- withTotal: offset === 0, // Compute total only once
178
- toEntity: false,
179
- }), { progression: opts?.progression, maxProgression: maxProgression * 0.9 });
180
- // Save result locally
181
- await this.entities.saveAll(res.data, { entityName: 'PersonVO', reset: true });
182
- }
183
70
  async loadById(id, opts) {
184
71
  const { data } = await this.loadAll(0, 1, null, null, { includedIds: [id] }, { withTotal: false, ...opts });
185
72
  const source = isNotEmptyArray(data) ? data[0] : { id };
@@ -190,24 +77,13 @@ export class PersonService extends BaseEntityService {
190
77
  const source = isNotEmptyArray(data) ? data[0] : { pubkey };
191
78
  return this.fromObject(source, opts);
192
79
  }
193
- /* -- protected methods -- */
194
80
  asObject(source) {
195
- if (!source)
196
- return undefined;
197
- if (!(source instanceof Person)) {
198
- source = Person.fromObject(source);
199
- }
200
- const target = source.asObject();
201
- // Not known in server GraphQL schema
202
- delete target.mainProfile;
203
- target.department = source.department?.asObject();
204
- return target;
81
+ return super.asObject(source);
205
82
  }
206
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PersonService, deps: [{ token: i1.GraphqlService }, { token: i2.PlatformService }, { token: i3.NetworkService }, { token: i4.EntitiesStorage }], target: i0.ɵɵFactoryTarget.Injectable });
207
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PersonService, providedIn: 'root' });
83
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AbstractPersonService, deps: "invalid", target: i0.ɵɵFactoryTarget.Directive });
84
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: AbstractPersonService, usesInheritance: true, ngImport: i0 });
208
85
  }
209
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PersonService, decorators: [{
210
- type: Injectable,
211
- args: [{ providedIn: 'root' }]
212
- }], ctorParameters: () => [{ type: i1.GraphqlService }, { type: i2.PlatformService }, { type: i3.NetworkService }, { type: i4.EntitiesStorage }] });
213
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyc29uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2FkbWluL3VzZXJzL3BlcnNvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBS3JDLE9BQU8sRUFBRSxNQUFNLEVBQW9CLE1BQU0sd0NBQXdDLENBQUM7QUFDbEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRWpFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUczRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3JFLE9BQU8sRUFBOEIsaUJBQWlCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUM5RyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDaEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7QUFFekQsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHO0lBQzdCLFdBQVcsRUFBRSxHQUFHLENBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY2Y7SUFFRCxNQUFNLEVBQUUsR0FBRyxDQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVCVjtJQUVELFlBQVksRUFBRSxHQUFHLENBQUE7Ozs7Ozs7Ozs7OztHQVloQjtDQUNGLENBQUM7QUFFRixxQkFBcUI7QUFDckIsTUFBTSxhQUFhLEdBQUc7SUFDcEIsT0FBTyxFQUFFLEdBQUcsQ0FBQTs7Ozs7O01BTVIsZUFBZSxDQUFDLE1BQU07R0FDekI7SUFFRCxnQkFBZ0IsRUFBRSxHQUFHLENBQUE7Ozs7Ozs7TUFPakIsZUFBZSxD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QUFRLEVBQUUsQ0FBQztRQUVqQyxxQ0FBcUM7UUFDckMsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUFDO1FBRTFCLE1BQU0sQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsQ0FBQztRQUVsRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO3dHQS9KVSxhQUFhOzRHQUFiLGFBQWEsY0FEQSxNQUFNOzs0RkFDbkIsYUFBYTtrQkFEekIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBncWwgfSBmcm9tICdhcG9sbG8tYW5ndWxhcic7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEdyYXBocWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9ncmFwaHFsL2dyYXBocWwuc2VydmljZSc7XG5pbXBvcnQgeyBOZXR3b3JrU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvbmV0d29yay5zZXJ2aWNlJztcbmltcG9ydCB7IEVudGl0aWVzU3RvcmFnZSB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvc3RvcmFnZS9lbnRpdGllcy1zdG9yYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGVyc29uLCBVc2VyUHJvZmlsZUxhYmVsIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9tb2RlbC9wZXJzb24ubW9kZWwnO1xuaW1wb3J0IHsgU3RhdHVzSWRzIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9tb2RlbC9tb2RlbC5lbnVtJztcbmltcG9ydCB7IFNvcnREaXJlY3Rpb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcbmltcG9ydCB7IEpvYlV0aWxzIH0gZnJvbSAnLi4vLi4vc2hhcmVkL3NlcnZpY2VzL2pvYi51dGlscyc7XG5pbXBvcnQgeyBFbnRpdGllc1NlcnZpY2VMb2FkT3B0aW9ucywgRW50aXR5U2VydmljZUxvYWRPcHRpb25zLCBMb2FkUmVzdWx0LCBTdWdnZXN0U2VydmljZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9zZXJ2aWNlcy9lbnRpdHktc2VydmljZS5jbGFzcyc7XG5pbXBvcnQgeyBQbGF0Zm9ybVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL3BsYXRmb3JtLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGVyc29uRmlsdGVyIH0gZnJvbSAnLi9wZXJzb24uZmlsdGVyJztcbmltcG9ydCB7IEVudGl0eVV0aWxzIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9tb2RlbC9lbnRpdHkubW9kZWwnO1xuaW1wb3J0IHsgQmFzZUVudGl0eUdyYXBocWxNdXRhdGlvbnMsIEJhc2VFbnRpdHlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9iYXNlLWVudGl0eS1zZXJ2aWNlLmNsYXNzJztcbmltcG9ydCB7IGVudmlyb25tZW50IH0gZnJvbSAnLi4vLi4vLi4vZW52aXJvbm1lbnRzL2Vudmlyb25tZW50JztcbmltcG9ydCB7IGlzTm90RW1wdHlBcnJheSB9IGZyb20gJy4uLy4uL3NoYXJlZC9mdW5jdGlvbnMnO1xuXG5leHBvcnQgY29uc3QgUGVyc29uRnJhZ21lbnRzID0ge1xuICBsaWdodFBlcnNvbjogZ3FsYFxuICAgIGZyYWdtZW50IExpZ2h0UGVyc29uRnJhZ21lbnQgb24gUGVyc29uVk8ge1xuICAgICAgaWRcbiAgICAgIGZpcnN0TmFtZVxuICAgICAgbGFzdE5hbWVcbiAgICAgIGF2YXRhclxuICAgICAgZGVwYXJ0bWVudCB7XG4gICAgICAgIGlkXG4gICAgICAgIGxhYmVsXG4gICAgICAgIG5hbWVcbiAgICAgICAgX190eXBlbmFtZVxuICAgICAgfVxuICAgICAgX190eXBlbmFtZVxuICAgIH1cbiAgYCxcblxuICBwZXJzb246IGdxbGBcbiAgICBmcmFnbWVudCBQZXJzb25GcmFnbWVudCBvbiBQZXJzb25WTyB7XG4gICAgICBpZFxuICAgICAgZmlyc3ROYW1lXG4gICAgICBsYXN0TmFtZVxuICAgICAgZW1haWxcbiAgICAgIHB1YmtleVxuICAgICAgYXZhdGFyXG4gICAgICBzdGF0dXNJZFxuICAgICAgdXBkYXRlRGF0ZVxuICAgICAgY3JlYXRpb25EYXRlXG4gICAgICBwcm9maWxlc1xuICAgICAgdXNlcm5hbWVcbiAgICAgIHVzZXJuYW1lRXh0cmFuZXRcbiAgICAgIGRlcGFydG1lbnQge1xuICAgICAgICBpZFxuICAgICAgICBsYWJlbFxuICAgICAgICBuYW1lXG4gICAgICAgIGxvZ29cbiAgICAgICAgX190eXBlbmFtZVxuICAgICAgfVxuICAgICAgX190eXBlbmFtZVxuICAgIH1cbiAgYCxcblxuICBwZXJzb25GaWx0ZXI6IGdxbGBcbiAgICBmcmFnbWVudCBQZXJzb25GaWx0ZXJGcmFnbWVudCBvbiBQZXJzb25GaWx0ZXJWTyB7XG4gICAgICBlbWFpbFxuICAgICAgcHVia2V5XG4gICAgICBzZWFyY2hUZXh0XG4gICAgICBzdGF0dXNJZHNcbiAgICAgIHVzZXJQcm9maWxlc1xuICAgICAgaW5jbHVkZWRJZHNcbiAgICAgIGV4Y2x1ZGVkSWRzXG4gICAgICBzZWFyY2hBdHRyaWJ1dGVcbiAgICAgIHNlYXJjaEF0dHJpYnV0ZXNcbiAgICB9XG4gIGAsXG59O1xuXG4vLyBMb2FkIHBlcnNvbnMgcXVlcnlcbmNvbnN0IFBlcnNvblF1ZXJpZXMgPSB7XG4gIGxvYWRBbGw6IGdxbGBcbiAgICBxdWVyeSBQZXJzb25zKCRvZmZzZXQ6IEludCwgJHNpemU6IEludCwgJHNvcnRCeTogU3RyaW5nLCAkc29ydERpcmVjdGlvbjogU3RyaW5nLCAkZmlsdGVyOiBQZXJzb25GaWx0ZXJWT0lucHV0KSB7XG4gICAgICBkYXRhOiBwZXJzb25zKGZpbHRlcjogJGZpbHRlciwgb2Zmc2V0OiAkb2Zmc2V0LCBzaXplOiAkc2l6ZSwgc29ydEJ5OiAkc29ydEJ5LCBzb3J0RGlyZWN0aW9uOiAkc29ydERpcmVjdGlvbikge1xuICAgICAgICAuLi5QZXJzb25GcmFnbWVudFxuICAgICAgfVxuICAgIH1cbiAgICAke1BlcnNvbkZyYWdtZW50cy5wZXJzb259XG4gIGAsXG5cbiAgbG9hZEFsbFdpdGhUb3RhbDogZ3FsYFxuICAgIHF1ZXJ5IFBlcnNvbnNXaXRoVG90YWwoJG9mZnNldDogSW50LCAkc2l6ZTogSW50LCAkc29ydEJ5OiBTdHJpbmcsICRzb3J0RGlyZWN0aW9uOiBTdHJpbmcsICRmaWx0ZXI6IFBlcnNvbkZpbHRlclZPSW5wdXQpIHtcbiAgICAgIGRhdGE6IHBlcnNvbnMoZmlsdGVyOiAkZmlsdGVyLCBvZmZzZXQ6ICRvZmZzZXQsIHNpemU6ICRzaXplLCBzb3J0Qnk6ICRzb3J0QnksIHNvcnREaXJlY3Rpb246ICRzb3J0RGlyZWN0aW9uKSB7XG4gICAgICAgIC4uLlBlcnNvbkZyYWdtZW50XG4gICAgICB9XG4gICAgICB0b3RhbDogcGVyc29uc0NvdW50KGZpbHRlcjogJGZpbHRlcilcbiAgICB9XG4gICAgJHtQZXJzb25GcmFnbWVudHMucGVyc29ufVxuICBgLFxufTtcblxuY29uc3QgUGVyc29uTXV0YXRpb25zOiBCYXNlRW50aXR5R3JhcGhxbE11dGF0aW9ucyA9IHtcbiAgc2F2ZUFsbDogZ3FsYFxuICAgIG11dGF0aW9uIHNhdmVQZXJzb25zKCRkYXRhOiBbUGVyc29uVk9JbnB1dF0pIHtcbiAgICAgIGRhdGE6IHNhdmVQZXJzb25zKHBlcnNvbnM6ICRkYXRhKSB7XG4gICAgICAgIC4uLlBlcnNvbkZyYWdtZW50XG4gICAgICB9XG4gICAgfVxuICAgICR7UGVyc29uRnJhZ21lbnRzLnBlcnNvbn1cbiAgYCxcbiAgZGVsZXRlQWxsOiBncWxgXG4gICAgbXV0YXRpb24gZGVsZXRlUGVyc29ucygkaWRzOiBbSW50XSkge1xuICAgICAgZGVsZXRlUGVyc29ucyhpZHM6ICRpZHMpXG4gICAgfVxuICBgLFxufTtcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBQZXJzb25TZXJ2aWNlIGV4dGVuZHMgQmFzZUVudGl0eVNlcnZpY2U8UGVyc29uLCBQZXJzb25GaWx0ZXI+IGltcGxlbWVudHMgU3VnZ2VzdFNlcnZpY2U8UGVyc29uLCBQZXJzb25GaWx0ZXI+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGdyYXBocWw6IEdyYXBocWxTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBwbGF0Zm9ybTogUGxhdGZvcm1TZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBuZXR3b3JrOiBOZXR3b3JrU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgZW50aXRpZXM6IEVudGl0aWVzU3RvcmFnZVxuICApIHtcbiAgICBzdXBlcihncmFwaHFsLCBwbGF0Zm9ybSwgUGVyc29uLCBQZXJzb25GaWx0ZXIsIHtcbiAgICAgIHF1ZXJpZXM6IFBlcnNvblF1ZXJpZXMsXG4gICAgICBtdXRhdGlvbnM6IFBlcnNvbk11dGF0aW9ucyxcbiAgICAgIGRlZmF1bHRTb3J0Qnk6ICdsYXN0TmFtZScsXG4gICAgICBkZWZhdWx0U29ydERpcmVjdGlvbjogJ2FzYycsXG4gICAgICB3YXRjaFF1ZXJpZXNEZWxldGVQb2xpY3k6ICdyZWZldGNoLXF1ZXJpZXMnXG4gICAgfSk7XG5cbiAgICAvLyBmb3IgREVWIG9ubHkgLS0tLS1cbiAgICB0aGlzLl9kZWJ1ZyA9ICFlbnZpcm9ubWVudC5wcm9kdWN0aW9uO1xuICB9XG5cbiAgYXN5bmMgbG9hZEFsbChcbiAgICBvZmZzZXQ6IG51bWJlcixcbiAgICBzaXplOiBudW1iZXIsXG4gICAgc29ydEJ5Pzoga2V5b2YgUGVyc29uIHwgc3RyaW5nLFxuICAgIHNvcnREaXJlY3Rpb24/OiBTb3J0RGlyZWN0aW9uLFxuICAgIGZpbHRlcj86IFBhcnRpYWw8UGVyc29uRmlsdGVyPixcbiAgICBvcHRzPzogRW50aXRpZXNTZXJ2aWNlTG9hZE9wdGlvbnMgJiB7XG4gICAgICBkZWJ1Zz86IGJvb2xlYW47XG4gICAgfVxuICApOiBQcm9taXNlPExvYWRSZXN1bHQ8UGVyc29uPj4ge1xuICAgIGNvbnN0IG9mZmxpbmUgPSB0aGlzLm5ldHdvcmsub2ZmbGluZSAmJiAoIW9wdHMgfHwgb3B0cy5mZXRjaFBvbGljeSAhPT0gJ25ldHdvcmstb25seScpO1xuICAgIGlmIChvZmZsaW5lKSB7XG4gICAgICByZXR1cm4gdGhpcy5sb2FkQWxsTG9jYWxseShvZmZzZXQsIHNpemUsIHNvcnRCeSwgc29ydERpcmVjdGlvbiwgZmlsdGVyLCBvcHRzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3VwZXIubG9hZEFsbChvZmZzZXQsIHNpemUsIHNvcnRCeSwgc29ydERpcmVjdGlvbiwgZmlsdGVyLCBvcHRzKTtcbiAgfVxuXG4gIGFzeW5jIGxvYWRBbGxMb2NhbGx5KFxuICAgIG9mZnNldDogbnVtYmVyLFxuICAgIHNpemU6IG51bWJlcixcbiAgICBzb3J0Qnk/OiBzdHJpbmcsXG4gICAgc29ydERpcmVjdGlvbj86IFNvcnREaXJlY3Rpb24sXG4gICAgZmlsdGVyPzogUGFydGlhbDxQZXJzb25GaWx0ZXI+LFxuICAgIG9wdHM/OiBFbnRpdGllc1NlcnZpY2VMb2FkT3B0aW9ucyAmIHtcbiAgICAgIGRlYnVnPzogYm9vbGVhbjtcbiAgICB9XG4gICk6IFByb21pc2U8TG9hZFJlc3VsdDxQZXJzb24+PiB7XG4gICAgZmlsdGVyID0gdGhpcy5hc0ZpbHRlcihmaWx0ZXIpO1xuXG4gICAgY29uc3QgdmFyaWFibGVzID0ge1xuICAgICAgb2Zmc2V0OiBvZmZzZXQgfHwgMCxcbiAgICAgIHNpemU6IHNpemUgfHwgMTAwLFxuICAgICAgc29ydEJ5OiBzb3J0QnkgfHwgdGhpcy5kZWZhdWx0U29ydEJ5LFxuICAgICAgc29ydERpcmVjdGlvbjogc29ydERpcmVjdGlvbiB8fCB0aGlzLmRlZmF1bHRTb3J0RGlyZWN0aW9uLFxuICAgICAgZmlsdGVyOiBmaWx0ZXIgJiYgZmlsdGVyLmFzRmlsdGVyRm4oKSxcbiAgICB9O1xuXG4gICAgY29uc3QgeyBkYXRhLCB0b3RhbCB9ID0gYXdhaXQgdGhpcy5lbnRpdGllcy5sb2FkQWxsPFBlcnNvbj4oJ1BlcnNvblZPJywgdmFyaWFibGVzKTtcblxuICAgIGNvbnN0IGVudGl0aWVzID0gdGhpcy5mcm9tT2JqZWN0cyhkYXRhLCBvcHRzKTtcblxuICAgIGNvbnN0IHJlczogTG9hZFJlc3VsdDxQZXJzb24+ID0geyBkYXRhOiBlbnRpdGllcywgdG90YWwgfTtcblxuICAgIC8vIEFkZCBmZXRjaCBtb3JlIGZ1bmN0aW9uXG4gICAgY29uc3QgbmV4dE9mZnNldCA9IChvZmZzZXQgfHwgMCkgKyBlbnRpdGllcy5sZW5ndGg7XG4gICAgaWYgKG5leHRPZmZzZXQgPCB0b3RhbCkge1xuICAgICAgcmVzLmZldGNoTW9yZSA9ICgpID0+IHRoaXMubG9hZEFsbExvY2FsbHkobmV4dE9mZnNldCwgc2l6ZSwgc29ydEJ5LCBzb3J0RGlyZWN0aW9uLCBmaWx0ZXIsIG9wdHMpO1xuICAgIH1cblxuICAgIHJldHVybiByZXM7XG4gIH1cblxuICBhc3luYyBzdWdnZXN0KFxuICAgIHZhbHVlOiBhbnksXG4gICAgZmlsdGVyPzogUGFydGlhbDxQZXJzb25GaWx0ZXI+LFxuICAgIHNvcnRCeT86IGtleW9mIFBlcnNvbiB8IHN0cmluZyxcbiAgICBzb3J0RGlyZWN0aW9uPzogU29ydERpcmVjdGlvbixcbiAgICBvcHRzPzogRW50aXRpZXNTZXJ2aWNlTG9hZE9wdGlvbnNcbiAgKTogUHJvbWlzZTxMb2FkUmVzdWx0PFBlcnNvbj4+IHtcbiAgICBpZiAoRW50aXR5VXRpbHMuaXNOb3RFbXB0eSh2YWx1ZSwgJ2lkJykpIHJldHVybiB7IGRhdGE6IFt2YWx1ZV0gfTtcbiAgICB2YWx1ZSA9ICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHZhbHVlICE9PSAnKicgJiYgdmFsdWUpIHx8IHVuZGVmaW5lZDtcbiAgICBzb3J0QnkgPSBzb3J0QnkgfHwgZmlsdGVyLnNlYXJjaEF0dHJpYnV0ZSB8fCAoZmlsdGVyLnNlYXJjaEF0dHJpYnV0ZXMgJiYgZmlsdGVyLnNlYXJjaEF0dHJpYnV0ZXNbMF0pO1xuICAgIHJldHVybiB0aGlzLmxvYWRBbGwoXG4gICAgICAwLFxuICAgICAgIXZhbHVlID8gMzAgOiAxMCxcbiAgICAgIHNvcnRCeSxcbiAgICAgIHNvcnREaXJlY3Rpb24sXG4gICAgICB7XG4gICAgICAgIC4uLmZpbHRlcixcbiAgICAgICAgc2VhcmNoVGV4dDogdmFsdWUgYXMgc3RyaW5nLFxuICAgICAgICBzdGF0dXNJZHM6IChmaWx0ZXIgJiYgZmlsdGVyLnN0YXR1c0lkcykgfHwgW1N0YXR1c0lkcy5FTkFCTEUsIFN0YXR1c0lkcy5URU1QT1JBUlldLFxuICAgICAgICB1c2VyUHJvZmlsZXM6IGZpbHRlciAmJiBmaWx0ZXIudXNlclByb2ZpbGVzLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgd2l0aFRvdGFsOiB0cnVlIC8qIG5lZWQgYnkgYXV0b2NvbXBsZXRlICovLFxuICAgICAgICAuLi5vcHRzLFxuICAgICAgfVxuICAgICk7XG4gIH1cblxuICBhc3luYyBleGVjdXRlSW1wb3J0KFxuICAgIGZpbHRlcjogUGFydGlhbDxQZXJzb25GaWx0ZXI+LFxuICAgIG9wdHM6IHtcbiAgICAgIHByb2dyZXNzaW9uPzogQmVoYXZpb3JTdWJqZWN0PG51bWJlcj47XG4gICAgICBtYXhQcm9ncmVzc2lvbj86IG51bWJlcjtcbiAgICB9XG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IG1heFByb2dyZXNzaW9uID0gKG9wdHMgJiYgb3B0cy5tYXhQcm9ncmVzc2lvbikgfHwgMTAwO1xuICAgIGZpbHRlciA9IHtcbiAgICAgIC4uLmZpbHRlcixcbiAgICAgIHN0YXR1c0lkczogW1N0YXR1c0lkcy5FTkFCTEUsIFN0YXR1c0lkcy5URU1QT1JBUlldLFxuICAgICAgdXNlclByb2ZpbGVzOiA8VXNlclByb2ZpbGVMYWJlbFtdPlsnU1VQRVJWSVNPUicsICdVU0VSJywgJ0dVRVNUJ10sXG4gICAgfTtcblxuICAgIGNvbnNvbGUuaW5mbygnW3BlcnNvbi1zZXJ2aWNlXSBJbXBvcnRpbmcgcGVyc29ucy4uLicpO1xuXG4gICAgY29uc3QgcmVzID0gYXdhaXQgSm9iVXRpbHMuZmV0Y2hBbGxQYWdlcyhcbiAgICAgIChvZmZzZXQsIHNpemUpID0+XG4gICAgICAgIHRoaXMubG9hZEFsbChvZmZzZXQsIHNpemUsICdpZCcsIG51bGwsIGZpbHRlciwge1xuICAgICAgICAgIGRlYnVnOiBmYWxzZSxcbiAgICAgICAgICBmZXRjaFBvbGljeTogJ25vLWNhY2hlJywgLy8gTm90IG5lZWQgdG8ga2VlcCByZXN1bHQgaW4gdGhlIGNhY2hlXG4gICAgICAgICAgd2l0aFRvdGFsOiBvZmZzZXQgPT09IDAsIC8vIENvbXB1dGUgdG90YWwgb25seSBvbmNlXG4gICAgICAgICAgdG9FbnRpdHk6IGZhbHNlLFxuICAgICAgICB9KSxcbiAgICAgIHsgcHJvZ3Jlc3Npb246IG9wdHM/LnByb2dyZXNzaW9uLCBtYXhQcm9ncmVzc2lvbjogbWF4UHJvZ3Jlc3Npb24gKiAwLjkgfVxuICAgICk7XG5cbiAgICAvLyBTYXZlIHJlc3VsdCBsb2NhbGx5XG4gICAgYXdhaXQgdGhpcy5lbnRpdGllcy5zYXZlQWxsKHJlcy5kYXRhLCB7IGVudGl0eU5hbWU6ICdQZXJzb25WTycsIHJlc2V0OiB0cnVlIH0pO1xuICB9XG5cbiAgYXN5bmMgbG9hZEJ5SWQoaWQ6IG51bWJlciwgb3B0cz86IEVudGl0eVNlcnZpY2VMb2FkT3B0aW9ucyk6IFByb21pc2U8UGVyc29uPiB7XG4gICAgY29uc3QgeyBkYXRhIH0gPSBhd2FpdCB0aGlzLmxvYWRBbGwoMCwgMSwgbnVsbCwgbnVsbCwgeyBpbmNsdWRlZElkczogW2lkXSB9LCB7IHdpdGhUb3RhbDogZmFsc2UsIC4uLm9wdHMgfSk7XG4gICAgY29uc3Qgc291cmNlID0gaXNOb3RFbXB0eUFycmF5KGRhdGEpID8gZGF0YVswXSA6IHsgaWQgfTtcbiAgICByZXR1cm4gdGhpcy5mcm9tT2JqZWN0KHNvdXJjZSwgb3B0cyk7XG4gIH1cblxuICBhc3luYyBsb2FkQnlQdWJrZXkocHVia2V5OiBzdHJpbmcsIG9wdHM/OiBFbnRpdHlTZXJ2aWNlTG9hZE9wdGlvbnMpOiBQcm9taXNlPFBlcnNvbj4ge1xuICAgIGNvbnN0IHsgZGF0YSB9ID0gYXdhaXQgdGhpcy5sb2FkQWxsKDAsIDEsIG51bGwsIG51bGwsIHsgcHVia2V5IH0sIHsgd2l0aFRvdGFsOiBmYWxzZSwgLi4ub3B0cyB9KTtcbiAgICBjb25zdCBzb3VyY2UgPSBpc05vdEVtcHR5QXJyYXkoZGF0YSkgPyBkYXRhWzBdIDogeyBwdWJrZXkgfTtcbiAgICByZXR1cm4gdGhpcy5mcm9tT2JqZWN0KHNvdXJjZSwgb3B0cyk7XG4gIH1cblxuICAvKiAtLSBwcm90ZWN0ZWQgbWV0aG9kcyAtLSAqL1xuXG4gIHByb3RlY3RlZCBhc09iamVjdChzb3VyY2U6IFBlcnNvbiB8IGFueSk6IGFueSB7XG4gICAgaWYgKCFzb3VyY2UpIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgICBpZiAoIShzb3VyY2UgaW5zdGFuY2VvZiBQZXJzb24pKSB7XG4gICAgICBzb3VyY2UgPSBQZXJzb24uZnJvbU9iamVjdChzb3VyY2UpO1xuICAgIH1cbiAgICBjb25zdCB0YXJnZXQgPSBzb3VyY2UuYXNPYmplY3QoKTtcblxuICAgIC8vIE5vdCBrbm93biBpbiBzZXJ2ZXIgR3JhcGhRTCBzY2hlbWFcbiAgICBkZWxldGUgdGFyZ2V0Lm1haW5Qcm9maWxlO1xuXG4gICAgdGFyZ2V0LmRlcGFydG1lbnQgPSBzb3VyY2UuZGVwYXJ0bWVudD8uYXNPYmplY3QoKTtcblxuICAgIHJldHVybiB0YXJnZXQ7XG4gIH1cbn1cbiJdfQ==
86
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AbstractPersonService, decorators: [{
87
+ type: Directive
88
+ }], ctorParameters: () => [{ type: i1.GraphqlService }, { type: i2.PlatformService }, { type: undefined }, { type: undefined }, { type: undefined }] });
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyc29uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2FkbWluL3VzZXJzL3BlcnNvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdsRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFZakUsT0FBTyxFQUlMLGlCQUFpQixHQUVsQixNQUFNLCtDQUErQyxDQUFDO0FBRXZELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDckUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQzs7OztBQUV0RSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLGNBQWMsQ0FBMkIsZUFBZSxDQUFDLENBQUM7QUFvQ2hHLG9DQUFvQztBQUVwQyxNQUFNLE9BQWdCLHFCQVVwQixTQUFRLGlCQUF1QztJQVNuQztJQUNBO0lBQ0E7SUFSRixPQUFPLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2pDLFFBQVEsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7SUFFN0MsWUFDRSxPQUF1QixFQUN2QixRQUF5QixFQUNmLFFBQXFCLEVBQ3JCLFVBQXVCLEVBQ3ZCLE9BQVU7UUFFcEIsS0FBSyxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUo5QyxhQUFRLEdBQVIsUUFBUSxDQUFhO1FBQ3JCLGVBQVUsR0FBVixVQUFVLENBQWE7UUFDdkIsWUFBTyxHQUFQLE9BQU8sQ0FBRztRQUlw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LENBQUMsTUFBTSxFQUFFLElBQVcsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxLQUFLLENBQUMsWUFBWSxDQUFDLE1BQWMsRUFBRSxJQUErQjtRQUNoRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBVyxFQUFFLElBQVcsRUFBRSxFQUFFLE1BQU0sRUFBUyxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxHQUFJLElBQVksRUFBRSxDQUFDLENBQUM7UUFDL0gsTUFBTSxNQUFNLEdBQUcsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBRSxJQUFJLENBQUMsQ0FBQyxDQUFTLENBQUMsQ0FBQyxDQUFFLEVBQUUsTUFBTSxFQUFVLENBQUM7UUFDOUUsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxJQUFXLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRVMsUUFBUSxDQUFDLE1BQWU7UUFDaEMsT0FBTyxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2hDLENBQUM7d0dBeEhtQixxQkFBcUI7NEZBQXJCLHFCQUFxQjs7NEZBQXJCLHFCQUFxQjtrQkFEMUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgaW5qZWN0LCBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgR3JhcGhxbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL2dyYXBocWwvZ3JhcGhxbC5zZXJ2aWNlJztcbmltcG9ydCB7IFBlcnNvbiB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvbW9kZWwvcGVyc29uLm1vZGVsJztcbmltcG9ydCB7IFN0YXR1c0lkcyB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvbW9kZWwvbW9kZWwuZW51bSc7XG5pbXBvcnQgeyBTb3J0RGlyZWN0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCc7XG5pbXBvcnQge1xuICBFbnRpdGllc1NlcnZpY2VMb2FkT3B0aW9ucyxcbiAgRW50aXRpZXNTZXJ2aWNlV2F0Y2hPcHRpb25zLFxuICBFbnRpdHlTZXJ2aWNlTG9hZE9wdGlvbnMsXG4gIElFbnRpdGllc1NlcnZpY2UsXG4gIExvYWRSZXN1bHQsXG4gIFN1Z2dlc3RTZXJ2aWNlLFxufSBmcm9tICcuLi8uLi9zaGFyZWQvc2VydmljZXMvZW50aXR5LXNlcnZpY2UuY2xhc3MnO1xuaW1wb3J0IHsgUGxhdGZvcm1TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9wbGF0Zm9ybS5zZXJ2aWNlJztcbmltcG9ydCB7IFBlcnNvbkZpbHRlciB9IGZyb20gJy4vcGVyc29uLmZpbHRlcic7XG5pbXBvcnQge1xuICBCYXNlRW50aXR5R3JhcGhxbE11dGF0aW9ucyxcbiAgQmFzZUVudGl0eUdyYXBocWxRdWVyaWVzLFxuICBCYXNlRW50aXR5R3JhcGhxbFN1YnNjcmlwdGlvbnMsXG4gIEJhc2VFbnRpdHlTZXJ2aWNlLFxuICBCYXNlRW50aXR5U2VydmljZU9wdGlvbnMsXG59IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvYmFzZS1lbnRpdHktc2VydmljZS5jbGFzcyc7XG5pbXBvcnQgeyBJU3RhcnRhYmxlU2VydmljZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9zZXJ2aWNlcy9zdGFydGFibGUtc2VydmljZS5jbGFzcyc7XG5pbXBvcnQgeyBpc05vdEVtcHR5QXJyYXkgfSBmcm9tICcuLi8uLi9zaGFyZWQvZnVuY3Rpb25zJztcbmltcG9ydCB7IE5ldHdvcmtTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9uZXR3b3JrLnNlcnZpY2UnO1xuaW1wb3J0IHsgRW50aXRpZXNTdG9yYWdlIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9zdG9yYWdlL2VudGl0aWVzLXN0b3JhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBFTlZJUk9OTUVOVCB9IGZyb20gJy4uLy4uLy4uL2Vudmlyb25tZW50cy9lbnZpcm9ubWVudC5jbGFzcyc7XG5cbmV4cG9ydCBjb25zdCBBUFBfUEVSU09OX1NFUlZJQ0UgPSBuZXcgSW5qZWN0aW9uVG9rZW48SVBlcnNvblNlcnZpY2U8YW55LCBhbnk+PignUGVyc29uU2VydmljZScpO1xuXG5leHBvcnQgaW50ZXJmYWNlIElQZXJzb25TZXJ2aWNlPFxuICBFIGV4dGVuZHMgUGVyc29uPEU+ID0gUGVyc29uPGFueT4sXG4gIEYgZXh0ZW5kcyBQZXJzb25GaWx0ZXIgPSBQZXJzb25GaWx0ZXIsXG4gIElEID0gbnVtYmVyLFxuICBXTyBleHRlbmRzIEVudGl0aWVzU2VydmljZVdhdGNoT3B0aW9uczxFPiA9IEVudGl0aWVzU2VydmljZVdhdGNoT3B0aW9uczxFPixcbiAgTE8gZXh0ZW5kcyBFbnRpdGllc1NlcnZpY2VMb2FkT3B0aW9uczxFPiA9IEVudGl0aWVzU2VydmljZUxvYWRPcHRpb25zPEU+LFxuPiBleHRlbmRzIElFbnRpdGllc1NlcnZpY2U8RSwgRiwgV08+LFxuICAgIFN1Z2dlc3RTZXJ2aWNlPEUsIEY+LFxuICAgIElTdGFydGFibGVTZXJ2aWNlIHtcbiAgbG9hZEFsbChcbiAgICBvZmZzZXQ6IG51bWJlcixcbiAgICBzaXplOiBudW1iZXIsXG4gICAgc29ydEJ5Pzoga2V5b2YgUGVyc29uIHwgc3RyaW5nLFxuICAgIHNvcnREaXJlY3Rpb24/OiBTb3J0RGlyZWN0aW9uLFxuICAgIGZpbHRlcj86IFBhcnRpYWw8UGVyc29uRmlsdGVyPixcbiAgICBvcHRzPzogTE8gJiB7XG4gICAgICBkZWJ1Zz86IGJvb2xlYW47XG4gICAgfVxuICApOiBQcm9taXNlPExvYWRSZXN1bHQ8UGVyc29uPj47XG5cbiAgbG9hZEJ5SWQoaWQ6IG51bWJlciwgb3B0cz86IEVudGl0eVNlcnZpY2VMb2FkT3B0aW9ucyk6IFByb21pc2U8UGVyc29uPjtcblxuICBsb2FkQnlQdWJrZXkocHVia2V5OiBzdHJpbmcsIG9wdHM/OiBFbnRpdHlTZXJ2aWNlTG9hZE9wdGlvbnMpOiBQcm9taXNlPFBlcnNvbj47XG5cbiAgY291bnRBbGwoZmlsdGVyPzogUGFydGlhbDxGPiwgb3B0cz86IExPKTogUHJvbWlzZTxudW1iZXI+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFic3RyYWN0UGVyc29uU2VydmljZU9wdGlvbnM8XG4gIFQgZXh0ZW5kcyBQZXJzb248YW55PixcbiAgUSBleHRlbmRzIEJhc2VFbnRpdHlHcmFwaHFsUXVlcmllcyA9IEJhc2VFbnRpdHlHcmFwaHFsUXVlcmllcyxcbiAgTSBleHRlbmRzIEJhc2VFbnRpdHlHcmFwaHFsTXV0YXRpb25zID0gQmFzZUVudGl0eUdyYXBocWxNdXRhdGlvbnMsXG4gIFMgZXh0ZW5kcyBCYXNlRW50aXR5R3JhcGhxbFN1YnNjcmlwdGlvbnMgPSBCYXNlRW50aXR5R3JhcGhxbFN1YnNjcmlwdGlvbnMsXG4+IGV4dGVuZHMgQmFzZUVudGl0eVNlcnZpY2VPcHRpb25zPFQsIG51bWJlciwgUSwgTSwgUz4ge31cblxuLy8gVGhpcyBjbGFzcyBpcyB1bmRlciBHUEx2MyBsaWNlbnNlXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdFBlcnNvblNlcnZpY2U8XG4gICAgRSBleHRlbmRzIFBlcnNvbjxFPiA9IFBlcnNvbjxhbnk+LFxuICAgIEYgZXh0ZW5kcyBQZXJzb25GaWx0ZXI8RiwgRT4gPSBQZXJzb25GaWx0ZXI8YW55LCBFPixcbiAgICBRIGV4dGVuZHMgQmFzZUVudGl0eUdyYXBocWxRdWVyaWVzID0gQmFzZUVudGl0eUdyYXBocWxRdWVyaWVzLFxuICAgIE0gZXh0ZW5kcyBCYXNlRW50aXR5R3JhcGhxbE11dGF0aW9ucyA9IEJhc2VFbnRpdHlHcmFwaHFsTXV0YXRpb25zLFxuICAgIFMgZXh0ZW5kcyBCYXNlRW50aXR5R3JhcGhxbFN1YnNjcmlwdGlvbnMgPSBCYXNlRW50aXR5R3JhcGhxbFN1YnNjcmlwdGlvbnMsXG4gICAgV08gZXh0ZW5kcyBFbnRpdGllc1NlcnZpY2VXYXRjaE9wdGlvbnM8RT4gPSBFbnRpdGllc1NlcnZpY2VXYXRjaE9wdGlvbnM8RT4sXG4gICAgTE8gZXh0ZW5kcyBFbnRpdGllc1NlcnZpY2VMb2FkT3B0aW9uczxFPiA9IEVudGl0aWVzU2VydmljZUxvYWRPcHRpb25zPEU+LFxuICAgIE8gZXh0ZW5kcyBBYnN0cmFjdFBlcnNvblNlcnZpY2VPcHRpb25zPEUsIFEsIE0sIFM+ID0gQWJzdHJhY3RQZXJzb25TZXJ2aWNlT3B0aW9uczxFLCBRLCBNLCBTPixcbiAgPlxuICBleHRlbmRzIEJhc2VFbnRpdHlTZXJ2aWNlPEUsIEYsIG51bWJlciwgV08sIExPPlxuICBpbXBsZW1lbnRzIElQZXJzb25TZXJ2aWNlPEUsIEY+XG57XG4gIHByb3RlY3RlZCBuZXR3b3JrID0gaW5qZWN0KE5ldHdvcmtTZXJ2aWNlKTtcbiAgcHJvdGVjdGVkIGVudGl0aWVzID0gaW5qZWN0KEVudGl0aWVzU3RvcmFnZSk7XG5cbiAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKFxuICAgIGdyYXBocWw6IEdyYXBocWxTZXJ2aWNlLFxuICAgIHBsYXRmb3JtOiBQbGF0Zm9ybVNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIGRhdGFUeXBlOiBuZXcgKCkgPT4gRSxcbiAgICBwcm90ZWN0ZWQgZmlsdGVyVHlwZTogbmV3ICgpID0+IEYsXG4gICAgcHJvdGVjdGVkIG9wdGlvbnM6IE9cbiAgKSB7XG4gICAgc3VwZXIoZ3JhcGhxbCwgcGxhdGZvcm0sIGRhdGFUeXBlLCBmaWx0ZXJUeXBlLCBvcHRpb25zKTtcblxuICAgIC8vIGZvciBERVYgb25seSAtLS0tLVxuICAgIHRoaXMuX2RlYnVnID0gIWluamVjdChFTlZJUk9OTUVOVCkucHJvZHVjdGlvbjtcbiAgfVxuXG4gIGFzeW5jIGxvYWRBbGwoXG4gICAgb2Zmc2V0OiBudW1iZXIsXG4gICAgc2l6ZTogbnVtYmVyLFxuICAgIHNvcnRCeT86IGtleW9mIEUgfCBzdHJpbmcsXG4gICAgc29ydERpcmVjdGlvbj86IFNvcnREaXJlY3Rpb24sXG4gICAgZmlsdGVyPzogUGFydGlhbDxGPixcbiAgICBvcHRzPzogRW50aXRpZXNTZXJ2aWNlTG9hZE9wdGlvbnMgJiB7IGRlYnVnPzogYm9vbGVhbiB9XG4gICk6IFByb21pc2U8TG9hZFJlc3VsdDxFPj4ge1xuICAgIGNvbnN0IG9mZmxpbmUgPSB0aGlzLm5ldHdvcmsub2ZmbGluZSAmJiAoIW9wdHMgfHwgb3B0cy5mZXRjaFBvbGljeSAhPT0gJ25ldHdvcmstb25seScpO1xuICAgIGlmIChvZmZsaW5lKSB7XG4gICAgICByZXR1cm4gdGhpcy5sb2FkQWxsTG9jYWxseShvZmZzZXQsIHNpemUsIHNvcnRCeSBhcyBzdHJpbmcsIHNvcnREaXJlY3Rpb24sIGZpbHRlciwgb3B0cyk7XG4gICAgfVxuICAgIHJldHVybiBzdXBlci5sb2FkQWxsKG9mZnNldCwgc2l6ZSwgc29ydEJ5IGFzIGFueSwgc29ydERpcmVjdGlvbiwgZmlsdGVyLCBvcHRzIGFzIGFueSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgbG9hZEFsbExvY2FsbHkoXG4gICAgb2Zmc2V0OiBudW1iZXIsXG4gICAgc2l6ZTogbnVtYmVyLFxuICAgIHNvcnRCeT86IHN0cmluZyxcbiAgICBzb3J0RGlyZWN0aW9uPzogU29ydERpcmVjdGlvbixcbiAgICBmaWx0ZXI/OiBQYXJ0aWFsPEY+LFxuICAgIG9wdHM/OiBFbnRpdGllc1NlcnZpY2VMb2FkT3B0aW9ucyAmIHsgZGVidWc/OiBib29sZWFuIH1cbiAgKTogUHJvbWlzZTxMb2FkUmVzdWx0PEU+PiB7XG4gICAgZmlsdGVyID0gdGhpcy5hc0ZpbHRlcihmaWx0ZXIpO1xuXG4gICAgY29uc3QgdmFyaWFibGVzID0ge1xuICAgICAgb2Zmc2V0OiBvZmZzZXQgfHwgMCxcbiAgICAgIHNpemU6IHNpemUgfHwgMTAwLFxuICAgICAgc29ydEJ5OiBzb3J0QnkgfHwgKHRoaXMuZGVmYXVsdFNvcnRCeSBhcyBzdHJpbmcpLFxuICAgICAgc29ydERpcmVjdGlvbjogc29ydERpcmVjdGlvbiB8fCB0aGlzLmRlZmF1bHRTb3J0RGlyZWN0aW9uLFxuICAgICAgZmlsdGVyOiAoZmlsdGVyIGFzIGFueSkgJiYgKGZpbHRlciBhcyBhbnkpLmFzRmlsdGVyRm4gPyAoZmlsdGVyIGFzIGFueSkuYXNGaWx0ZXJGbigpIDogZmlsdGVyLFxuICAgIH07XG5cbiAgICBjb25zdCB0eXBlbmFtZSA9ICh0aGlzLmRhdGFUeXBlIGFzIGFueSkuVFlQRU5BTUUgfHwgbmV3IHRoaXMuZGF0YVR5cGUoKS5fX3R5cGVuYW1lIHx8ICdQZXJzb25WTyc7XG4gICAgY29uc3QgeyBkYXRhLCB0b3RhbCB9ID0gYXdhaXQgdGhpcy5lbnRpdGllcy5sb2FkQWxsPEU+KHR5cGVuYW1lLCB2YXJpYWJsZXMpO1xuXG4gICAgY29uc3QgZW50aXRpZXMgPSB0aGlzLmZyb21PYmplY3RzKGRhdGEsIG9wdHMgYXMgYW55KTtcbiAgICBjb25zdCByZXM6IExvYWRSZXN1bHQ8RT4gPSB7IGRhdGE6IGVudGl0aWVzLCB0b3RhbCB9IGFzIGFueTtcblxuICAgIC8vIEFkZCBmZXRjaCBtb3JlIGZ1bmN0aW9uXG4gICAgY29uc3QgbmV4dE9mZnNldCA9IChvZmZzZXQgfHwgMCkgKyBlbnRpdGllcy5sZW5ndGg7XG4gICAgaWYgKG5leHRPZmZzZXQgPCB0b3RhbCkge1xuICAgICAgcmVzLmZldGNoTW9yZSA9ICgpID0+IHRoaXMubG9hZEFsbExvY2FsbHkobmV4dE9mZnNldCwgc2l6ZSwgc29ydEJ5LCBzb3J0RGlyZWN0aW9uLCBmaWx0ZXIsIG9wdHMpO1xuICAgIH1cblxuICAgIHJldHVybiByZXM7XG4gIH1cblxuICBhc3luYyBzdWdnZXN0KFxuICAgIHZhbHVlOiBhbnksXG4gICAgZmlsdGVyPzogUGFydGlhbDxGPixcbiAgICBzb3J0Qnk/OiBrZXlvZiBFIHwgc3RyaW5nLFxuICAgIHNvcnREaXJlY3Rpb24/OiBTb3J0RGlyZWN0aW9uLFxuICAgIG9wdHM/OiBFbnRpdGllc1NlcnZpY2VMb2FkT3B0aW9uc1xuICApOiBQcm9taXNlPExvYWRSZXN1bHQ8RT4+IHtcbiAgICBpZiAoKHZhbHVlIGFzIGFueSk/LmlkICE9IG51bGwpIHJldHVybiB7IGRhdGE6IFt2YWx1ZV0gfSBhcyBhbnk7XG4gICAgdmFsdWUgPSAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiB2YWx1ZSAhPT0gJyonICYmIHZhbHVlKSB8fCB1bmRlZmluZWQ7XG4gICAgY29uc3QgZiA9IChmaWx0ZXIgYXMgYW55KSB8fCB7fTtcbiAgICBzb3J0QnkgPSAoc29ydEJ5IGFzIGFueSkgfHwgZi5zZWFyY2hBdHRyaWJ1dGUgfHwgKGYuc2VhcmNoQXR0cmlidXRlcyAmJiBmLnNlYXJjaEF0dHJpYnV0ZXNbMF0pO1xuICAgIHJldHVybiB0aGlzLmxvYWRBbGwoXG4gICAgICAwLFxuICAgICAgIXZhbHVlID8gMzAgOiAxMCxcbiAgICAgIHNvcnRCeSxcbiAgICAgIHNvcnREaXJlY3Rpb24sXG4gICAgICB7XG4gICAgICAgIC4uLihmaWx0ZXIgYXMgYW55KSxcbiAgICAgICAgc2VhcmNoVGV4dDogdmFsdWUgYXMgc3RyaW5nLFxuICAgICAgICBzdGF0dXNJZHM6IChmICYmIGYuc3RhdHVzSWRzKSB8fCBbU3RhdHVzSWRzLkVOQUJMRSwgU3RhdHVzSWRzLlRFTVBPUkFSWV0sXG4gICAgICAgIHVzZXJQcm9maWxlczogZiAmJiBmLnVzZXJQcm9maWxlcyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHdpdGhUb3RhbDogdHJ1ZSAvKiBuZWVkIGJ5IGF1dG9jb21wbGV0ZSAqLyxcbiAgICAgICAgLi4uKG9wdHMgYXMgYW55KSxcbiAgICAgIH0gYXMgYW55XG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGxvYWRCeUlkKGlkOiBudW1iZXIsIG9wdHM/OiBFbnRpdHlTZXJ2aWNlTG9hZE9wdGlvbnMpOiBQcm9taXNlPEU+IHtcbiAgICBjb25zdCB7IGRhdGEgfSA9IGF3YWl0IHRoaXMubG9hZEFsbCgwLCAxLCBudWxsIGFzIGFueSwgbnVsbCBhcyBhbnksIHsgaW5jbHVkZWRJZHM6IFtpZF0gfSBhcyBhbnksIHsgd2l0aFRvdGFsOiBmYWxzZSwgLi4uKG9wdHMgYXMgYW55KSB9KTtcbiAgICBjb25zdCBzb3VyY2UgPSBpc05vdEVtcHR5QXJyYXkoZGF0YSkgPyAoZGF0YVswXSBhcyBhbnkpIDogKHsgaWQgfSBhcyBhbnkpO1xuICAgIHJldHVybiB0aGlzLmZyb21PYmplY3Qoc291cmNlLCBvcHRzIGFzIGFueSk7XG4gIH1cblxuICBhc3luYyBsb2FkQnlQdWJrZXkocHVia2V5OiBzdHJpbmcsIG9wdHM/OiBFbnRpdHlTZXJ2aWNlTG9hZE9wdGlvbnMpOiBQcm9taXNlPEU+IHtcbiAgICBjb25zdCB7IGRhdGEgfSA9IGF3YWl0IHRoaXMubG9hZEFsbCgwLCAxLCBudWxsIGFzIGFueSwgbnVsbCBhcyBhbnksIHsgcHVia2V5IH0gYXMgYW55LCB7IHdpdGhUb3RhbDogZmFsc2UsIC4uLihvcHRzIGFzIGFueSkgfSk7XG4gICAgY29uc3Qgc291cmNlID0gaXNOb3RFbXB0eUFycmF5KGRhdGEpID8gKGRhdGFbMF0gYXMgYW55KSA6ICh7IHB1YmtleSB9IGFzIGFueSk7XG4gICAgcmV0dXJuIHRoaXMuZnJvbU9iamVjdChzb3VyY2UsIG9wdHMgYXMgYW55KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc09iamVjdChzb3VyY2U6IEUgfCBhbnkpOiBhbnkge1xuICAgIHJldHVybiBzdXBlci5hc09iamVjdChzb3VyY2UpO1xuICB9XG59XG4iXX0=
@@ -25,10 +25,10 @@ export class PersonValidatorService extends AppValidatorService {
25
25
  email: [data?.email || null, Validators.compose([Validators.required, Validators.email])],
26
26
  mainProfile: [data?.mainProfile || PersonUtils.getMainProfile(data?.profiles) || 'GUEST', Validators.required],
27
27
  statusId: [data?.statusId || StatusIds.TEMPORARY, Validators.required],
28
- pubkey: [data?.pubkey || null, SharedValidators.pubkey],
28
+ pubkey: [data?.pubkey || null, SharedValidators.pubkey]
29
29
  };
30
30
  if (opts.withAvatar) {
31
- formConfig.avatar = [(data && data.avatar) || null];
31
+ formConfig.avatar = [data?.avatar || null];
32
32
  }
33
33
  if (opts.withUsername) {
34
34
  formConfig.username = [(data && data.username) || null, Validators.minLength(2)];
@@ -75,4 +75,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
75
75
  type: Injectable,
76
76
  args: [{ providedIn: 'root' }]
77
77
  }], ctorParameters: () => [{ type: i1.UntypedFormBuilder }, { type: i2.TranslateService }, { type: i3.AccountService }] });
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyc29uLnZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvYWRtaW4vdXNlcnMvcGVyc29uLnZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBbUMsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0UsT0FBTyxFQUFVLFdBQVcsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUdqRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvREFBb0QsQ0FBQzs7Ozs7QUFVekYsTUFBTSxPQUFPLHNCQUE2RyxTQUFRLG1CQUdqSTtJQUlhO0lBSFosWUFDRSxXQUErQixFQUMvQixTQUEyQixFQUNqQixjQUE4QjtRQUV4QyxLQUFLLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBRnBCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtJQUcxQyxDQUFDO0lBRUQsa0JBQWtCLENBQUMsSUFBUSxFQUFFLElBQVE7UUFDbkMsSUFBSSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVyQyxNQUFNLFVBQVUsR0FBNkI7WUFDM0MsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ1IsVUFBVSxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ2hCLFlBQVksRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNsQixRQUFRLEVBQUUsQ0FBQyxJQUFJLEVBQUUsUUFBUSxJQUFJLElBQUksRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FB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LEVBQUUsQ0FBQztZQUM5QixZQUFZLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQy9DLENBQUM7UUFFRCxPQUFPLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUMxSCxDQUFDO0lBRUQsNkJBQTZCO0lBRW5CLGtCQUFrQixDQUFDLElBQVE7UUFDbkMsT0FBTztZQUNMLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLFlBQVksRUFBRSxJQUFJO1lBQ2xCLG9CQUFvQixFQUFFLElBQUk7WUFDMUIsR0FBRyxJQUFJO1NBQ1IsQ0FBQztJQUNKLENBQUM7d0dBekVVLHNCQUFzQjs0R0FBdEIsc0JBQXNCLGNBRFQsTUFBTTs7NEZBQ25CLHNCQUFzQjtrQkFEbEMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUJ1aWxkZXIsIFZhbGlkYXRvckZuLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUGVyc29uLCBQZXJzb25VdGlscyB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvbW9kZWwvcGVyc29uLm1vZGVsJztcbmltcG9ydCB7IFNoYXJlZFZhbGlkYXRvcnMgfSBmcm9tICcuLi8uLi9zaGFyZWQvdmFsaWRhdG9yL3ZhbGlkYXRvcnMnO1xuaW1wb3J0IHsgU3RhdHVzSWRzIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9tb2RlbC9tb2RlbC5lbnVtJztcbmltcG9ydCB7IEFjY291bnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9hY2NvdW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9ybUZpZWxkRGVmaW5pdGlvbiB9IGZyb20gJy4uLy4uL3NoYXJlZC9mb3JtL2ZpZWxkLm1vZGVsJztcbmltcG9ydCB7IEFwcFZhbGlkYXRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL3ZhbGlkYXRvci9iYXNlLnZhbGlkYXRvci5jbGFzcyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGVyc29uVmFsaWRhdG9yT3B0aW9ucyB7XG4gIHdpdGhBdmF0YXI/OiBib29sZWFuO1xuICB3aXRoVXNlcm5hbWU/OiBib29sZWFuO1xuICB3aXRoVXNlcm5hbWVFeHRyYW5ldD86IGJvb2xlYW47XG59XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgUGVyc29uVmFsaWRhdG9yU2VydmljZTxUIGV4dGVuZHMgUGVyc29uID0gUGVyc29uLCBPIGV4dGVuZHMgUGVyc29uVmFsaWRhdG9yT3B0aW9ucyA9IFBlcnNvblZhbGlkYXRvck9wdGlvbnM+IGV4dGVuZHMgQXBwVmFsaWRhdG9yU2VydmljZTxcbiAgVCxcbiAgT1xuPiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIGZvcm1CdWlsZGVyOiBVbnR5cGVkRm9ybUJ1aWxkZXIsXG4gICAgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBhY2NvdW50U2VydmljZTogQWNjb3VudFNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoZm9ybUJ1aWxkZXIsIHRyYW5zbGF0ZSk7XG4gIH1cblxuICBnZXRGb3JtR3JvdXBDb25maWcoZGF0YT86IFQsIG9wdHM/OiBPKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSB7XG4gICAgb3B0cyA9IHRoaXMuZmlsbERlZmF1bHRPcHRpb25zKG9wdHMpO1xuXG4gICAgY29uc3QgZm9ybUNvbmZpZzogeyBba2V5OiBzdHJpbmddOiBhbnlbXSB9ID0ge1xuICAgICAgaWQ6IFsnJ10sXG4gICAgICB1cGRhdGVEYXRlOiBbJyddLFxuICAgICAgY3JlYXRpb25EYXRlOiBbJyddLFxuICAgICAgbGFzdE5hbWU6IFtkYXRhPy5sYXN0TmFtZSB8fCBudWxsLCBWYWxpZGF0b3JzLmNvbXBvc2UoW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWluTGVuZ3RoKDIpXSldLFxuICAgICAgZmlyc3ROYW1lOiBbZGF0YT8uZmlyc3ROYW1lIHx8IG51bGwsIFZhbGlkYXRvcnMuY29tcG9zZShbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW5MZW5ndGgoMildKV0sXG4gICAgICBlbWFpbDogW2RhdGE/LmVtYWlsIHx8IG51bGwsIFZhbGlkYXRvcnMuY29tcG9zZShbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5lbWFpbF0pXSxcbiAgICAgIG1haW5Qcm9maWxlOiBbZGF0YT8ubWFpblByb2ZpbGUgfHwgUGVyc29uVXRpbHMuZ2V0TWFpblByb2ZpbGUoZGF0YT8ucHJvZmlsZXMpIHx8ICdHVUVTVCcsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgc3RhdHVzSWQ6IFtkYXRhPy5zdGF0dXNJZCB8fCBTdGF0dXNJZHMuVEVNUE9SQVJZLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgIHB1YmtleTogW2RhdGE/LnB1YmtleSB8fCBudWxsLCBTaGFyZWRWYWxpZGF0b3JzLnB1YmtleV0sXG4gICAgfTtcblxuICAgIGlmIChvcHRzLndpdGhBdmF0YXIpIHtcbiAgICAgIGZvcm1Db25maWcuYXZhdGFyID0gWyhkYXRhICYmIGRhdGEuYXZhdGFyKSB8fCBudWxsXTtcbiAgICB9XG4gICAgaWYgKG9wdHMud2l0aFVzZXJuYW1lKSB7XG4gICAgICBmb3JtQ29uZmlnLnVzZXJuYW1lID0gWyhkYXRhICYmIGRhdGEudXNlcm5hbWUpIHx8IG51bGwsIFZhbGlkYXRvcnMubWluTGVuZ3RoKDIpXTtcbiAgICB9XG4gICAgaWYgKG9wdHMud2l0aFVzZXJuYW1lRXh0cmFuZXQpIHtcbiAgICAgIGZvcm1Db25maWcudXNlcm5hbWVFeHRyYW5ldCA9IFsoZGF0YSAmJiBkYXRhLnVzZXJuYW1lRXh0cmFuZXQpIHx8IG51bGwsIFZhbGlkYXRvcnMubWluTGVuZ3RoKDIpXTtcbiAgICB9XG5cbiAgICAvLyBBZGQgYWRkaXRpb25hbCBmaWVsZHNcbiAgICB0aGlzLmFjY291bnRTZXJ2aWNlLmFkZGl0aW9uYWxGaWVsZHNcbiAgICAgIC5maWx0ZXIoZmllbGQgPT4gZmllbGQuZXh0cmEucmVnaXN0cmF0aW9uIHx8IGZpZWxkLmV4dHJhLmFjY291bnQpXG4gICAgICAuZm9yRWFjaCgoZmllbGQpID0+IHtcbiAgICAgICAgLy9jb25zb2xlLmRlYnVnKFwiW3JlZ2lzdGVyLWZvcm1dIEFkZCBhZGRpdGlvbmFsIGZpZWxkIHtcIiArIGZpZWxkLm5hbWUgKyBcIn0gdG8gZm9ybVwiLCBmaWVsZCk7XG4gICAgICAgIGZvcm1Db25maWdbZmllbGQua2V5XSA9IFsoZGF0YSAmJiBkYXRhW2ZpZWxkLmtleV0pIHx8IG51bGwsIHRoaXMuZ2V0VmFsaWRhdG9ycyhmaWVsZCldO1xuICAgICAgfSk7XG5cbiAgICByZXR1cm4gZm9ybUNvbmZpZztcbiAgfVxuXG4gIGdldFZhbGlkYXRvcnMoZmllbGQ6IEZvcm1GaWVsZERlZmluaXRpb24sIHJlcXVpcmVkPzogYm9vbGVhbik6IFZhbGlkYXRvckZuIHwgVmFsaWRhdG9yRm5bXSB7XG4gICAgY29uc3QgdmFsaWRhdG9yRm5zOiBWYWxpZGF0b3JGbltdID0gW107XG4gICAgcmVxdWlyZWQgPSByZXF1aXJlZCA/PyBmaWVsZC5leHRyYT8uYWNjb3VudD8ucmVxdWlyZWQgPz8gZmFsc2U7XG4gICAgaWYgKHJlcXVpcmVkKSB7XG4gICAgICB2YWxpZGF0b3JGbnMucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICB9XG4gICAgaWYgKGZpZWxkLnR5cGUgPT09ICdlbnRpdHknKSB7XG4gICAgICB2YWxpZGF0b3JGbnMucHVzaChTaGFyZWRWYWxpZGF0b3JzLmVudGl0eSk7XG4gICAgfVxuICAgIGlmIChmaWVsZC50eXBlID09PSAnZW50aXRpZXMnKSB7XG4gICAgICB2YWxpZGF0b3JGbnMucHVzaChTaGFyZWRWYWxpZGF0b3JzLmVudGl0aWVzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsaWRhdG9yRm5zLmxlbmd0aCA/IFZhbGlkYXRvcnMuY29tcG9zZSh2YWxpZGF0b3JGbnMpIDogdmFsaWRhdG9yRm5zLmxlbmd0aCA9PT0gMSA/IHZhbGlkYXRvckZuc1swXSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qIC0tIHByb3RlY3RlZCBtZXRob2RzIC0tICovXG5cbiAgcHJvdGVjdGVkIGZpbGxEZWZhdWx0T3B0aW9ucyhvcHRzPzogTyk6IE8ge1xuICAgIHJldHVybiB7XG4gICAgICB3aXRoQXZhdGFyOiB0cnVlLFxuICAgICAgd2l0aFVzZXJuYW1lOiB0cnVlLFxuICAgICAgd2l0aFVzZXJuYW1lRXh0cmFuZXQ6IHRydWUsXG4gICAgICAuLi5vcHRzLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyc29uLnZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvYWRtaW4vdXNlcnMvcGVyc29uLnZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBbUMsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0UsT0FBTyxFQUFVLFdBQVcsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUdqRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvREFBb0QsQ0FBQzs7Ozs7QUFVekYsTUFBTSxPQUFPLHNCQUE2RyxTQUFRLG1CQUdqSTtJQUlhO0lBSFosWUFDRSxXQUErQixFQUMvQixTQUEyQixFQUNqQixjQUE4QjtRQUV4QyxLQUFLLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBRnBCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtJQUcxQyxDQUFDO0lBRUQsa0JBQWtCLENBQUMsSUFBUSxFQUFFLElBQVE7UUFDbkMsSUFBSSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVyQyxNQUFNLFVBQVUsR0FBNkI7WUFDM0MsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ1IsVUFBVSxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ2hCLFlBQVksRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNsQixRQUFRLEVBQUUsQ0FBQyxJQUFJLEVBQUUsUUFBUSxJQUFJLElBQUksRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FB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WSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMvQyxDQUFDO1FBRUQsT0FBTyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDMUgsQ0FBQztJQUVELDZCQUE2QjtJQUVuQixrQkFBa0IsQ0FBQyxJQUFRO1FBQ25DLE9BQU87WUFDTCxVQUFVLEVBQUUsSUFBSTtZQUNoQixZQUFZLEVBQUUsSUFBSTtZQUNsQixvQkFBb0IsRUFBRSxJQUFJO1lBQzFCLEdBQUcsSUFBSTtTQUNSLENBQUM7SUFDSixDQUFDO3dHQXpFVSxzQkFBc0I7NEdBQXRCLHNCQUFzQixjQURULE1BQU07OzRGQUNuQixzQkFBc0I7a0JBRGxDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1CdWlsZGVyLCBWYWxpZGF0b3JGbiwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFBlcnNvbiwgUGVyc29uVXRpbHMgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL21vZGVsL3BlcnNvbi5tb2RlbCc7XG5pbXBvcnQgeyBTaGFyZWRWYWxpZGF0b3JzIH0gZnJvbSAnLi4vLi4vc2hhcmVkL3ZhbGlkYXRvci92YWxpZGF0b3JzJztcbmltcG9ydCB7IFN0YXR1c0lkcyB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvbW9kZWwvbW9kZWwuZW51bSc7XG5pbXBvcnQgeyBBY2NvdW50U2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvYWNjb3VudC5zZXJ2aWNlJztcbmltcG9ydCB7IEZvcm1GaWVsZERlZmluaXRpb24gfSBmcm9tICcuLi8uLi9zaGFyZWQvZm9ybS9maWVsZC5tb2RlbCc7XG5pbXBvcnQgeyBBcHBWYWxpZGF0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy92YWxpZGF0b3IvYmFzZS52YWxpZGF0b3IuY2xhc3MnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBlcnNvblZhbGlkYXRvck9wdGlvbnMge1xuICB3aXRoQXZhdGFyPzogYm9vbGVhbjtcbiAgd2l0aFVzZXJuYW1lPzogYm9vbGVhbjtcbiAgd2l0aFVzZXJuYW1lRXh0cmFuZXQ/OiBib29sZWFuO1xufVxuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFBlcnNvblZhbGlkYXRvclNlcnZpY2U8VCBleHRlbmRzIFBlcnNvbiA9IFBlcnNvbiwgTyBleHRlbmRzIFBlcnNvblZhbGlkYXRvck9wdGlvbnMgPSBQZXJzb25WYWxpZGF0b3JPcHRpb25zPiBleHRlbmRzIEFwcFZhbGlkYXRvclNlcnZpY2U8XG4gIFQsXG4gIE9cbj4ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBmb3JtQnVpbGRlcjogVW50eXBlZEZvcm1CdWlsZGVyLFxuICAgIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgYWNjb3VudFNlcnZpY2U6IEFjY291bnRTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKGZvcm1CdWlsZGVyLCB0cmFuc2xhdGUpO1xuICB9XG5cbiAgZ2V0Rm9ybUdyb3VwQ29uZmlnKGRhdGE/OiBULCBvcHRzPzogTyk6IHsgW2tleTogc3RyaW5nXTogYW55IH0ge1xuICAgIG9wdHMgPSB0aGlzLmZpbGxEZWZhdWx0T3B0aW9ucyhvcHRzKTtcblxuICAgIGNvbnN0IGZvcm1Db25maWc6IHsgW2tleTogc3RyaW5nXTogYW55W10gfSA9IHtcbiAgICAgIGlkOiBbJyddLFxuICAgICAgdXBkYXRlRGF0ZTogWycnXSxcbiAgICAgIGNyZWF0aW9uRGF0ZTogWycnXSxcbiAgICAgIGxhc3ROYW1lOiBbZGF0YT8ubGFzdE5hbWUgfHwgbnVsbCwgVmFsaWRhdG9ycy5jb21wb3NlKFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbkxlbmd0aCgyKV0pXSxcbiAgICAgIGZpcnN0TmFtZTogW2RhdGE/LmZpcnN0TmFtZSB8fCBudWxsLCBWYWxpZGF0b3JzLmNvbXBvc2UoW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWluTGVuZ3RoKDIpXSldLFxuICAgICAgZW1haWw6IFtkYXRhPy5lbWFpbCB8fCBudWxsLCBWYWxpZGF0b3JzLmNvbXBvc2UoW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMuZW1haWxdKV0sXG4gICAgICBtYWluUHJvZmlsZTogW2RhdGE/Lm1haW5Qcm9maWxlIHx8IFBlcnNvblV0aWxzLmdldE1haW5Qcm9maWxlKGRhdGE/LnByb2ZpbGVzKSB8fCAnR1VFU1QnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgIHN0YXR1c0lkOiBbZGF0YT8uc3RhdHVzSWQgfHwgU3RhdHVzSWRzLlRFTVBPUkFSWSwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICBwdWJrZXk6IFtkYXRhPy5wdWJrZXkgfHwgbnVsbCwgU2hhcmVkVmFsaWRhdG9ycy5wdWJrZXldXG4gICAgfTtcblxuICAgIGlmIChvcHRzLndpdGhBdmF0YXIpIHtcbiAgICAgIGZvcm1Db25maWcuYXZhdGFyID0gW2RhdGE/LmF2YXRhciB8fCBudWxsXTtcbiAgICB9XG4gICAgaWYgKG9wdHMud2l0aFVzZXJuYW1lKSB7XG4gICAgICBmb3JtQ29uZmlnLnVzZXJuYW1lID0gWyhkYXRhICYmIGRhdGEudXNlcm5hbWUpIHx8IG51bGwsIFZhbGlkYXRvcnMubWluTGVuZ3RoKDIpXTtcbiAgICB9XG4gICAgaWYgKG9wdHMud2l0aFVzZXJuYW1lRXh0cmFuZXQpIHtcbiAgICAgIGZvcm1Db25maWcudXNlcm5hbWVFeHRyYW5ldCA9IFsoZGF0YSAmJiBkYXRhLnVzZXJuYW1lRXh0cmFuZXQpIHx8IG51bGwsIFZhbGlkYXRvcnMubWluTGVuZ3RoKDIpXTtcbiAgICB9XG5cbiAgICAvLyBBZGQgYWRkaXRpb25hbCBmaWVsZHNcbiAgICB0aGlzLmFjY291bnRTZXJ2aWNlLmFkZGl0aW9uYWxGaWVsZHNcbiAgICAgIC5maWx0ZXIoZmllbGQgPT4gZmllbGQuZXh0cmEucmVnaXN0cmF0aW9uIHx8IGZpZWxkLmV4dHJhLmFjY291bnQpXG4gICAgICAuZm9yRWFjaCgoZmllbGQpID0+IHtcbiAgICAgICAgLy9jb25zb2xlLmRlYnVnKFwiW3JlZ2lzdGVyLWZvcm1dIEFkZCBhZGRpdGlvbmFsIGZpZWxkIHtcIiArIGZpZWxkLm5hbWUgKyBcIn0gdG8gZm9ybVwiLCBmaWVsZCk7XG4gICAgICAgIGZvcm1Db25maWdbZmllbGQua2V5XSA9IFsoZGF0YSAmJiBkYXRhW2ZpZWxkLmtleV0pIHx8IG51bGwsIHRoaXMuZ2V0VmFsaWRhdG9ycyhmaWVsZCldO1xuICAgICAgfSk7XG5cbiAgICByZXR1cm4gZm9ybUNvbmZpZztcbiAgfVxuXG4gIGdldFZhbGlkYXRvcnMoZmllbGQ6IEZvcm1GaWVsZERlZmluaXRpb24sIHJlcXVpcmVkPzogYm9vbGVhbik6IFZhbGlkYXRvckZuIHwgVmFsaWRhdG9yRm5bXSB7XG4gICAgY29uc3QgdmFsaWRhdG9yRm5zOiBWYWxpZGF0b3JGbltdID0gW107XG4gICAgcmVxdWlyZWQgPSByZXF1aXJlZCA/PyBmaWVsZC5leHRyYT8uYWNjb3VudD8ucmVxdWlyZWQgPz8gZmFsc2U7XG4gICAgaWYgKHJlcXVpcmVkKSB7XG4gICAgICB2YWxpZGF0b3JGbnMucHVzaChWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICB9XG4gICAgaWYgKGZpZWxkLnR5cGUgPT09ICdlbnRpdHknKSB7XG4gICAgICB2YWxpZGF0b3JGbnMucHVzaChTaGFyZWRWYWxpZGF0b3JzLmVudGl0eSk7XG4gICAgfVxuICAgIGlmIChmaWVsZC50eXBlID09PSAnZW50aXRpZXMnKSB7XG4gICAgICB2YWxpZGF0b3JGbnMucHVzaChTaGFyZWRWYWxpZGF0b3JzLmVudGl0aWVzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsaWRhdG9yRm5zLmxlbmd0aCA/IFZhbGlkYXRvcnMuY29tcG9zZSh2YWxpZGF0b3JGbnMpIDogdmFsaWRhdG9yRm5zLmxlbmd0aCA9PT0gMSA/IHZhbGlkYXRvckZuc1swXSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qIC0tIHByb3RlY3RlZCBtZXRob2RzIC0tICovXG5cbiAgcHJvdGVjdGVkIGZpbGxEZWZhdWx0T3B0aW9ucyhvcHRzPzogTyk6IE8ge1xuICAgIHJldHVybiB7XG4gICAgICB3aXRoQXZhdGFyOiB0cnVlLFxuICAgICAgd2l0aFVzZXJuYW1lOiB0cnVlLFxuICAgICAgd2l0aFVzZXJuYW1lRXh0cmFuZXQ6IHRydWUsXG4gICAgICAuLi5vcHRzLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,128 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { AbstractPersonService } from '../person.service';
3
+ import { Person } from '../../../core/services/model/person.model';
4
+ import { PersonFilter } from '../person.filter';
5
+ import { gql } from 'apollo-angular';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "../../../core/graphql/graphql.service";
8
+ import * as i2 from "../../../core/services/platform.service";
9
+ export const PersonFragments = {
10
+ lightPerson: gql `
11
+ fragment LightPersonFragment on PersonVO {
12
+ id
13
+ firstName
14
+ lastName
15
+ avatar
16
+ department {
17
+ id
18
+ label
19
+ name
20
+ __typename
21
+ }
22
+ __typename
23
+ }
24
+ `,
25
+ person: gql `
26
+ fragment PersonFragment on PersonVO {
27
+ id
28
+ firstName
29
+ lastName
30
+ email
31
+ pubkey
32
+ avatar
33
+ statusId
34
+ updateDate
35
+ creationDate
36
+ profiles
37
+ username
38
+ usernameExtranet
39
+ department {
40
+ id
41
+ label
42
+ name
43
+ logo
44
+ __typename
45
+ }
46
+ __typename
47
+ }
48
+ `,
49
+ personFilter: gql `
50
+ fragment PersonFilterFragment on PersonFilterVO {
51
+ email
52
+ pubkey
53
+ searchText
54
+ statusIds
55
+ userProfiles
56
+ includedIds
57
+ excludedIds
58
+ searchAttribute
59
+ searchAttributes
60
+ }
61
+ `,
62
+ };
63
+ // Load persons query
64
+ const PersonQueries = {
65
+ loadAll: gql `
66
+ query Persons($offset: Int, $size: Int, $sortBy: String, $sortDirection: String, $filter: PersonFilterVOInput) {
67
+ data: persons(filter: $filter, offset: $offset, size: $size, sortBy: $sortBy, sortDirection: $sortDirection) {
68
+ ...PersonFragment
69
+ }
70
+ }
71
+ ${PersonFragments.person}
72
+ `,
73
+ loadAllWithTotal: gql `
74
+ query PersonsWithTotal($offset: Int, $size: Int, $sortBy: String, $sortDirection: String, $filter: PersonFilterVOInput) {
75
+ data: persons(filter: $filter, offset: $offset, size: $size, sortBy: $sortBy, sortDirection: $sortDirection) {
76
+ ...PersonFragment
77
+ }
78
+ total: personsCount(filter: $filter)
79
+ }
80
+ ${PersonFragments.person}
81
+ `,
82
+ };
83
+ const PersonMutations = {
84
+ saveAll: gql `
85
+ mutation savePersons($data: [PersonVOInput]) {
86
+ data: savePersons(persons: $data) {
87
+ ...PersonFragment
88
+ }
89
+ }
90
+ ${PersonFragments.person}
91
+ `,
92
+ deleteAll: gql `
93
+ mutation deletePersons($ids: [Int]) {
94
+ deletePersons(ids: $ids)
95
+ }
96
+ `,
97
+ };
98
+ export class PersonTestService extends AbstractPersonService {
99
+ constructor(graphql, platform) {
100
+ super(graphql, platform, Person, PersonFilter, {
101
+ queries: PersonQueries,
102
+ mutations: PersonMutations,
103
+ defaultSortBy: 'lastName',
104
+ defaultSortDirection: 'asc',
105
+ watchQueriesDeletePolicy: 'refetch-queries',
106
+ });
107
+ }
108
+ /* -- protected methods -- */
109
+ asObject(source) {
110
+ if (!source)
111
+ return undefined;
112
+ if (!(source instanceof Person)) {
113
+ source = Person.fromObject(source);
114
+ }
115
+ const target = source.asObject();
116
+ // Not known in server GraphQL schema
117
+ delete target.mainProfile;
118
+ target.department = source.department?.asObject();
119
+ return target;
120
+ }
121
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PersonTestService, deps: [{ token: i1.GraphqlService }, { token: i2.PlatformService }], target: i0.ɵɵFactoryTarget.Injectable });
122
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PersonTestService, providedIn: 'root' });
123
+ }
124
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PersonTestService, decorators: [{
125
+ type: Injectable,
126
+ args: [{ providedIn: 'root' }]
127
+ }], ctorParameters: () => [{ type: i1.GraphqlService }, { type: i2.PlatformService }] });
128
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyc29uLnRlc3Rpbmcuc2V2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9hZG1pbi91c2Vycy90ZXN0aW5nL3BlcnNvbi50ZXN0aW5nLnNldmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxxQkFBcUIsRUFBa0IsTUFBTSxtQkFBbUIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDbkUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBR2hELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUdyQyxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUc7SUFDN0IsV0FBVyxFQUFFLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7R0FjZjtJQUVELE1BQU0sRUFBRSxHQUFHLENBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdUJWO0lBRUQsWUFBWSxFQUFFLEdBQUcsQ0FBQTs7Ozs7Ozs7Ozs7O0dBWWhCO0NBQ0YsQ0FBQztBQUVGLHFCQUFxQjtBQUNyQixNQUFNLGFBQWEsR0FBRztJQUNwQixPQUFPLEVBQUUsR0FBRyxDQUFBOzs7Ozs7TUFNUixlQUFlLENBQUMsTUFBTTtHQUN6QjtJQUVELGdCQUFnQixFQUFFLEdBQUcsQ0FBQTs7Ozs7OztNQU9qQixlQUFlLENBQUMsTUFBTTtHQUN6QjtDQUNGLENBQUM7QUFFRixNQUFNLGVBQWUsR0FBK0I7SUFDbEQsT0FBTyxFQUFFLEdBQUcsQ0FBQTs7Ozs7O01BTVIsZUFBZSxDQUFDLE1BQU07R0FDekI7SUFDRCxTQUFTLEVBQUUsR0FBRyxDQUFBOzs7O0dBSWI7Q0FDRixDQUFDO0FBR0YsTUFBTSxPQUFPLGlCQUFrQixTQUFRLHFCQUEyQztJQUNoRixZQUFZLE9BQXVCLEVBQUUsUUFBeUI7UUFDNUQsS0FBSyxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRTtZQUM3QyxPQUFPLEVBQUUsYUFBYTtZQUN0QixTQUFTLEVBQUUsZUFBZTtZQUMxQixhQUFhLEVBQUUsVUFBVTtZQUN6QixvQkFBb0IsRUFBRSxLQUFLO1lBQzNCLHdCQUF3QixFQUFFLGlCQUFpQjtTQUM1QyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsNkJBQTZCO0lBRW5CLFFBQVEsQ0FBQyxNQUFvQjtRQUNyQyxJQUFJLENBQUMsTUFBTTtZQUFFLE9BQU8sU0FBUyxDQUFDO1FBRTlCLElBQUksQ0FBQyxDQUFDLE1BQU0sWUFBWSxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ2hDLE1BQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JDLENBQUM7UUFDRCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFakMscUNBQXFDO1FBQ3JDLE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FBQztRQUUxQixNQUFNLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLENBQUM7UUFFbEQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQzt3R0EzQlUsaUJBQWlCOzRHQUFqQixpQkFBaUIsY0FESixNQUFNOzs0RkFDbkIsaUJBQWlCO2tCQUQ3QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0UGVyc29uU2VydmljZSwgSVBlcnNvblNlcnZpY2UgfSBmcm9tICcuLi9wZXJzb24uc2VydmljZSc7XG5pbXBvcnQgeyBQZXJzb24gfSBmcm9tICcuLi8uLi8uLi9jb3JlL3NlcnZpY2VzL21vZGVsL3BlcnNvbi5tb2RlbCc7XG5pbXBvcnQgeyBQZXJzb25GaWx0ZXIgfSBmcm9tICcuLi9wZXJzb24uZmlsdGVyJztcbmltcG9ydCB7IEdyYXBocWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9ncmFwaHFsL2dyYXBocWwuc2VydmljZSc7XG5pbXBvcnQgeyBQbGF0Zm9ybVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3NlcnZpY2VzL3BsYXRmb3JtLnNlcnZpY2UnO1xuaW1wb3J0IHsgZ3FsIH0gZnJvbSAnYXBvbGxvLWFuZ3VsYXInO1xuaW1wb3J0IHsgQmFzZUVudGl0eUdyYXBocWxNdXRhdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3NlcnZpY2VzL2Jhc2UtZW50aXR5LXNlcnZpY2UuY2xhc3MnO1xuXG5leHBvcnQgY29uc3QgUGVyc29uRnJhZ21lbnRzID0ge1xuICBsaWdodFBlcnNvbjogZ3FsYFxuICAgIGZyYWdtZW50IExpZ2h0UGVyc29uRnJhZ21lbnQgb24gUGVyc29uVk8ge1xuICAgICAgaWRcbiAgICAgIGZpcnN0TmFtZVxuICAgICAgbGFzdE5hbWVcbiAgICAgIGF2YXRhclxuICAgICAgZGVwYXJ0bWVudCB7XG4gICAgICAgIGlkXG4gICAgICAgIGxhYmVsXG4gICAgICAgIG5hbWVcbiAgICAgICAgX190eXBlbmFtZVxuICAgICAgfVxuICAgICAgX190eXBlbmFtZVxuICAgIH1cbiAgYCxcblxuICBwZXJzb246IGdxbGBcbiAgICBmcmFnbWVudCBQZXJzb25GcmFnbWVudCBvbiBQZXJzb25WTyB7XG4gICAgICBpZFxuICAgICAgZmlyc3ROYW1lXG4gICAgICBsYXN0TmFtZVxuICAgICAgZW1haWxcbiAgICAgIHB1YmtleVxuICAgICAgYXZhdGFyXG4gICAgICBzdGF0dXNJZFxuICAgICAgdXBkYXRlRGF0ZVxuICAgICAgY3JlYXRpb25EYXRlXG4gICAgICBwcm9maWxlc1xuICAgICAgdXNlcm5hbWVcbiAgICAgIHVzZXJuYW1lRXh0cmFuZXRcbiAgICAgIGRlcGFydG1lbnQge1xuICAgICAgICBpZFxuICAgICAgICBsYWJlbFxuICAgICAgICBuYW1lXG4gICAgICAgIGxvZ29cbiAgICAgICAgX190eXBlbmFtZVxuICAgICAgfVxuICAgICAgX190eXBlbmFtZVxuICAgIH1cbiAgYCxcblxuICBwZXJzb25GaWx0ZXI6IGdxbGBcbiAgICBmcmFnbWVudCBQZXJzb25GaWx0ZXJGcmFnbWVudCBvbiBQZXJzb25GaWx0ZXJWTyB7XG4gICAgICBlbWFpbFxuICAgICAgcHVia2V5XG4gICAgICBzZWFyY2hUZXh0XG4gICAgICBzdGF0dXNJZHNcbiAgICAgIHVzZXJQcm9maWxlc1xuICAgICAgaW5jbHVkZWRJZHNcbiAgICAgIGV4Y2x1ZGVkSWRzXG4gICAgICBzZWFyY2hBdHRyaWJ1dGVcbiAgICAgIHNlYXJjaEF0dHJpYnV0ZXNcbiAgICB9XG4gIGAsXG59O1xuXG4vLyBMb2FkIHBlcnNvbnMgcXVlcnlcbmNvbnN0IFBlcnNvblF1ZXJpZXMgPSB7XG4gIGxvYWRBbGw6IGdxbGBcbiAgICBxdWVyeSBQZXJzb25zKCRvZmZzZXQ6IEludCwgJHNpemU6IEludCwgJHNvcnRCeTogU3RyaW5nLCAkc29ydERpcmVjdGlvbjogU3RyaW5nLCAkZmlsdGVyOiBQZXJzb25GaWx0ZXJWT0lucHV0KSB7XG4gICAgICBkYXRhOiBwZXJzb25zKGZpbHRlcjogJGZpbHRlciwgb2Zmc2V0OiAkb2Zmc2V0LCBzaXplOiAkc2l6ZSwgc29ydEJ5OiAkc29ydEJ5LCBzb3J0RGlyZWN0aW9uOiAkc29ydERpcmVjdGlvbikge1xuICAgICAgICAuLi5QZXJzb25GcmFnbWVudFxuICAgICAgfVxuICAgIH1cbiAgICAke1BlcnNvbkZyYWdtZW50cy5wZXJzb259XG4gIGAsXG5cbiAgbG9hZEFsbFdpdGhUb3RhbDogZ3FsYFxuICAgIHF1ZXJ5IFBlcnNvbnNXaXRoVG90YWwoJG9mZnNldDogSW50LCAkc2l6ZTogSW50LCAkc29ydEJ5OiBTdHJpbmcsICRzb3J0RGlyZWN0aW9uOiBTdHJpbmcsICRmaWx0ZXI6IFBlcnNvbkZpbHRlclZPSW5wdXQpIHtcbiAgICAgIGRhdGE6IHBlcnNvbnMoZmlsdGVyOiAkZmlsdGVyLCBvZmZzZXQ6ICRvZmZzZXQsIHNpemU6ICRzaXplLCBzb3J0Qnk6ICRzb3J0QnksIHNvcnREaXJlY3Rpb246ICRzb3J0RGlyZWN0aW9uKSB7XG4gICAgICAgIC4uLlBlcnNvbkZyYWdtZW50XG4gICAgICB9XG4gICAgICB0b3RhbDogcGVyc29uc0NvdW50KGZpbHRlcjogJGZpbHRlcilcbiAgICB9XG4gICAgJHtQZXJzb25GcmFnbWVudHMucGVyc29ufVxuICBgLFxufTtcblxuY29uc3QgUGVyc29uTXV0YXRpb25zOiBCYXNlRW50aXR5R3JhcGhxbE11dGF0aW9ucyA9IHtcbiAgc2F2ZUFsbDogZ3FsYFxuICAgIG11dGF0aW9uIHNhdmVQZXJzb25zKCRkYXRhOiBbUGVyc29uVk9JbnB1dF0pIHtcbiAgICAgIGRhdGE6IHNhdmVQZXJzb25zKHBlcnNvbnM6ICRkYXRhKSB7XG4gICAgICAgIC4uLlBlcnNvbkZyYWdtZW50XG4gICAgICB9XG4gICAgfVxuICAgICR7UGVyc29uRnJhZ21lbnRzLnBlcnNvbn1cbiAgYCxcbiAgZGVsZXRlQWxsOiBncWxgXG4gICAgbXV0YXRpb24gZGVsZXRlUGVyc29ucygkaWRzOiBbSW50XSkge1xuICAgICAgZGVsZXRlUGVyc29ucyhpZHM6ICRpZHMpXG4gICAgfVxuICBgLFxufTtcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBQZXJzb25UZXN0U2VydmljZSBleHRlbmRzIEFic3RyYWN0UGVyc29uU2VydmljZTxQZXJzb24sIFBlcnNvbkZpbHRlcj4gaW1wbGVtZW50cyBJUGVyc29uU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKGdyYXBocWw6IEdyYXBocWxTZXJ2aWNlLCBwbGF0Zm9ybTogUGxhdGZvcm1TZXJ2aWNlKSB7XG4gICAgc3VwZXIoZ3JhcGhxbCwgcGxhdGZvcm0sIFBlcnNvbiwgUGVyc29uRmlsdGVyLCB7XG4gICAgICBxdWVyaWVzOiBQZXJzb25RdWVyaWVzLFxuICAgICAgbXV0YXRpb25zOiBQZXJzb25NdXRhdGlvbnMsXG4gICAgICBkZWZhdWx0U29ydEJ5OiAnbGFzdE5hbWUnLFxuICAgICAgZGVmYXVsdFNvcnREaXJlY3Rpb246ICdhc2MnLFxuICAgICAgd2F0Y2hRdWVyaWVzRGVsZXRlUG9saWN5OiAncmVmZXRjaC1xdWVyaWVzJyxcbiAgICB9KTtcbiAgfVxuXG4gIC8qIC0tIHByb3RlY3RlZCBtZXRob2RzIC0tICovXG5cbiAgcHJvdGVjdGVkIGFzT2JqZWN0KHNvdXJjZTogUGVyc29uIHwgYW55KTogYW55IHtcbiAgICBpZiAoIXNvdXJjZSkgcmV0dXJuIHVuZGVmaW5lZDtcblxuICAgIGlmICghKHNvdXJjZSBpbnN0YW5jZW9mIFBlcnNvbikpIHtcbiAgICAgIHNvdXJjZSA9IFBlcnNvbi5mcm9tT2JqZWN0KHNvdXJjZSk7XG4gICAgfVxuICAgIGNvbnN0IHRhcmdldCA9IHNvdXJjZS5hc09iamVjdCgpO1xuXG4gICAgLy8gTm90IGtub3duIGluIHNlcnZlciBHcmFwaFFMIHNjaGVtYVxuICAgIGRlbGV0ZSB0YXJnZXQubWFpblByb2ZpbGU7XG5cbiAgICB0YXJnZXQuZGVwYXJ0bWVudCA9IHNvdXJjZS5kZXBhcnRtZW50Py5hc09iamVjdCgpO1xuXG4gICAgcmV0dXJuIHRhcmdldDtcbiAgfVxufVxuIl19