@sumaris-net/ngx-components 1.15.10 → 1.15.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.
package/doc/changelog.md CHANGED
@@ -257,3 +257,9 @@
257
257
  # 1.15.9
258
258
  [fix] Editor listenChanges() should not update the cache, but call reload() when changes detected.
259
259
  This will allow fetching partial graph in subscriptions
260
+ [enh] Editor: show a toast when remote changes are detected
261
+ [fix] Cache: minor fix
262
+
263
+ # 1.15.13
264
+ [fix] File upload component: fix file/event management
265
+ [enh] Add new pipe 'formGetGroup:<name>'
@@ -199,12 +199,12 @@ export class ConfigService extends BaseGraphqlService {
199
199
  return __awaiter(this, void 0, void 0, function* () {
200
200
  const now = Date.now();
201
201
  console.debug('[config] Clear server cache...');
202
- const variables = { name: opts && opts.cacheName } || undefined;
202
+ const variables = opts && opts.cacheName && { name: opts.cacheName } || undefined;
203
203
  const res = yield this.graphql.query({
204
204
  query: ClearCache,
205
205
  variables,
206
206
  error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
207
- fetchPolicy: 'network-only'
207
+ fetchPolicy: 'no-cache'
208
208
  });
209
209
  const data = res && res.clearCache || undefined;
210
210
  console.info(`[config] Clear server cache in ${Date.now() - now}ms:`, data);
@@ -381,4 +381,4 @@ ConfigService.ctorParameters = () => [
381
381
  { type: undefined, decorators: [{ type: Inject, args: [ENVIRONMENT,] }] },
382
382
  { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [APP_CONFIG_OPTIONS,] }] }
383
383
  ];
384
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvcmUvc2VydmljZXMvY29uZmlnLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3hDLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkMsT0FBTyxFQUFDLGVBQWUsRUFBYyxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDMUQsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUNwQyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFFMUQsT0FBTyxFQUFDLGVBQWUsRUFBRSxRQUFRLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0QsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBQyxRQUFRLEVBQUUsZUFBZSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekQsT0FBTyxFQUFtQixNQUFNLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNuRSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEMsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FB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QUcsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO3lCQUN2RjtxQkFDRjtpQkFDRjtnQkFFRCwyQkFBMkI7Z0JBQzNCO29CQUNFLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztvQkFDaEMsSUFBSSxJQUFJLENBQUMsTUFBTTt3QkFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLDhDQUE4QyxDQUFDLENBQUM7b0JBQy9FLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMseUJBQXlCLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7b0JBQ25FLElBQUksSUFBSSxDQUFDLE1BQU07d0JBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxxREFBcUQsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUM7aUJBQzNHO2FBQ0Y7UUFDSCxDQUFDO0tBQUE7SUFFZSxTQUFTLENBQUMsSUFBc0I7O1lBQzlDLE1BQU0sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDaEUsQ0FBQztLQUFBOzs7O1lBbFVGLFVBQVUsU0FBQztnQkFDVixVQUFVLEVBQUUsTUFBTTtnQkFDbEIsSUFBSSxFQUFFLENBQUMsa0JBQWtCLENBQUM7YUFDM0I7OztZQWhGTyxRQUFRO1lBTlIsY0FBYztZQUhkLE9BQU87WUFPUCxjQUFjO1lBRGQsV0FBVztZQUdELGVBQWU7WUFFekIsZ0JBQWdCO1lBTWhCLGNBQWM7NENBK0ZqQixNQUFNLFNBQUMsV0FBVzs0Q0FDbEIsUUFBUSxZQUFJLE1BQU0sU0FBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4sIE9wdGlvbmFsfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Z3FsfSBmcm9tICdAYXBvbGxvL2NsaWVudC9jb3JlJztcbmltcG9ydCB7Q29uZmlndXJhdGlvbn0gZnJvbSAnLi9tb2RlbC9jb25maWcubW9kZWwnO1xuaW1wb3J0IHtTdG9yYWdlfSBmcm9tICdAaW9uaWMvc3RvcmFnZSc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgU3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0Vycm9yQ29kZXN9IGZyb20gJy4vZXJyb3JzJztcbmltcG9ydCB7R3JhcGhxbFNlcnZpY2V9IGZyb20gJy4uL2dyYXBocWwvZ3JhcGhxbC5zZXJ2aWNlJztcbmltcG9ydCB7Rm9ybUZpZWxkRGVmaW5pdGlvbiwgRm9ybUZpZWxkRGVmaW5pdGlvbk1hcH0gZnJvbSAnLi4vLi4vc2hhcmVkL2Zvcm0vZmllbGQubW9kZWwnO1xuaW1wb3J0IHtpc05vdEVtcHR5QXJyYXksIGlzTm90TmlsfSBmcm9tICcuLi8uLi9zaGFyZWQvZnVuY3Rpb25zJztcbmltcG9ydCB7RmlsZVNlcnZpY2V9IGZyb20gJy4uLy4uL3NoYXJlZC9maWxlL2ZpbGUuc2VydmljZSc7XG5pbXBvcnQge05ldHdvcmtTZXJ2aWNlfSBmcm9tICcuL25ldHdvcmsuc2VydmljZSc7XG5pbXBvcnQge0NPUkVfQ09ORklHX09QVElPTlN9IGZyb20gJy4vY29uZmlnL2NvcmUuY29uZmlnJztcbmltcG9ydCB7UGxhdGZvcm0sIFRvYXN0Q29udHJvbGxlcn0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHtTaG93VG9hc3RPcHRpb25zLCBUb2FzdHN9IGZyb20gJy4uLy4uL3NoYXJlZC90b2FzdC90b2FzdHMnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7ZmlsdGVyfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0VudGl0eVNlcnZpY2VMb2FkT3B0aW9ucywgSUVudGl0eVNlcnZpY2V9IGZyb20gJy4uLy4uL3NoYXJlZC9zZXJ2aWNlcy9lbnRpdHktc2VydmljZS5jbGFzcyc7XG5pbXBvcnQge0VOVklST05NRU5UfSBmcm9tICcuLi8uLi8uLi9lbnZpcm9ubWVudHMvZW52aXJvbm1lbnQuY2xhc3MnO1xuaW1wb3J0IHtCYXNlR3JhcGhxbFNlcnZpY2V9IGZyb20gJy4vYmFzZS1ncmFwaHFsLXNlcnZpY2UuY2xhc3MnO1xuaW1wb3J0IHtJU3RhcnRhYmxlU2VydmljZX0gZnJvbSAnLi4vLi4vc2hhcmVkL3NlcnZpY2VzL3N0YXJ0YWJsZS1zZXJ2aWNlLmNsYXNzJztcbmltcG9ydCB7QWNjb3VudFNlcnZpY2V9IGZyb20gJy4vYWNjb3VudC5zZXJ2aWNlJztcblxuXG5jb25zdCBDT05GSUdVUkFUSU9OX1NUT1JBR0VfS0VZID0gJ2NvbmZpZ3VyYXRpb24nO1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS1cbiAqIEdyYXBoUUwgcXVlcmllc1xuICogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi9cbmV4cG9ydCBjb25zdCBGcmFnbWVudHMgPSB7XG4gIGNvbmZpZzogZ3FsYFxuICAgIGZyYWdtZW50IENvbmZpZ0ZyYWdtZW50IG9uIENvbmZpZ3VyYXRpb25WTyB7XG4gICAgICBpZFxuICAgICAgbGFiZWxcbiAgICAgIG5hbWVcbiAgICAgIGRlc2NyaXB0aW9uXG4gICAgICBjb21tZW50c1xuICAgICAgcHJvcGVydGllc1xuICAgICAgc21hbGxMb2dvXG4gICAgICBsYXJnZUxvZ29cbiAgICAgIGJhY2tncm91bmRJbWFnZXNcbiAgICAgIHBhcnRuZXJzIHtcbiAgICAgICAgaWRcbiAgICAgICAgbGFiZWxcbiAgICAgICAgbmFtZVxuICAgICAgICBsb2dvXG4gICAgICAgIHNpdGVVcmxcbiAgICAgICAgX190eXBlbmFtZVxuICAgICAgfVxuICAgICAgdXBkYXRlRGF0ZVxuICAgICAgY3JlYXRpb25EYXRlXG4gICAgICBzdGF0dXNJZFxuICAgICAgX190eXBlbmFtZVxuICAgIH1cbiAgYFxufTtcblxuY29uc3QgTG9hZFF1ZXJ5OiBhbnkgPSBncWxgXG5xdWVyeSBDb25maWd1cmF0aW9ue1xuICBkYXRhOiBjb25maWd1cmF0aW9ue1xuICAgIC4uLkNvbmZpZ0ZyYWdtZW50XG4gIH1cbn1cbiAgJHtGcmFnbWVudHMuY29uZmlnfVxuYDtcblxuLy8gU2F2ZSAoY3JlYXRlIG9yIHVwZGF0ZSkgYWNjb3VudCBtdXRhdGlvblxuY29uc3QgU2F2ZU11dGF0aW9uOiBhbnkgPSBncWxgXG4gIG11dGF0aW9uIFNhdmVDb25maWd1cmF0aW9uKCRkYXRhOiBDb25maWd1cmF0aW9uVk9JbnB1dCl7XG4gICAgZGF0YTogc2F2ZUNvbmZpZ3VyYXRpb24oY29uZmlnOiAkZGF0YSl7XG4gICAgICAgLi4uQ29uZmlnRnJhZ21lbnRcbiAgICB9XG4gIH1cbiAgJHtGcmFnbWVudHMuY29uZmlnfVxuYDtcblxuY29uc3QgQ2xlYXJDYWNoZTogYW55ID0gZ3FsYFxuICBxdWVyeSBDbGVhckNhY2hlKCRuYW1lOiBTdHJpbmcpIHtcbiAgICBjbGVhckNhY2hlKG5hbWU6ICRuYW1lKVxuICB9XG5gO1xuXG5jb25zdCBDYWNoZVN0YXRpc3RpY3M6IGFueSA9IGdxbGBcbiAgcXVlcnkgQ2FjaGVTdGF0aXN0aWNzIHtcbiAgICBjYWNoZVN0YXRpc3RpY3NcbiAgfVxuYDtcblxuZXhwb3J0IGNvbnN0IEFQUF9DT05GSUdfT1BUSU9OUyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxGb3JtRmllbGREZWZpbml0aW9uTWFwPignZGVmYXVsdE9wdGlvbnMnKTtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG4gIGRlcHM6IFtBUFBfQ09ORklHX09QVElPTlNdXG59KVxuZXhwb3J0IGNsYXNzIENvbmZpZ1NlcnZpY2VcbiAgZXh0ZW5kcyBCYXNlR3JhcGhxbFNlcnZpY2U8Q29uZmlndXJhdGlvbiwgYW55LCBudW1iZXIsIENvbmZpZ3VyYXRpb24+XG4gIGltcGxlbWVudHMgSUVudGl0eVNlcnZpY2U8Q29uZmlndXJhdGlvbj4sIElTdGFydGFibGVTZXJ2aWNlPENvbmZpZ3VyYXRpb24+IHtcblxuICBwcml2YXRlIF9vcHRpb25EZWZzOiBGb3JtRmllbGREZWZpbml0aW9uW107XG4gIHByaXZhdGUgJGRhdGEgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PENvbmZpZ3VyYXRpb24+KG51bGwpO1xuXG4gIGdldCBjb25maWcoKTogT2JzZXJ2YWJsZTxDb25maWd1cmF0aW9uPiB7XG4gICAgLy8gSWYgZmlyc3QgY2FsbDogc3RhcnQgbG9hZGluZ1xuICAgIGlmICghdGhpcy5zdGFydGVkKSB0aGlzLnN0YXJ0KCk7XG4gICAgcmV0dXJuIHRoaXMuJGRhdGEucGlwZShmaWx0ZXIoaXNOb3ROaWwpKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBwbGF0Zm9ybTogUGxhdGZvcm0sXG4gICAgcHJvdGVjdGVkIGdyYXBocWw6IEdyYXBocWxTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBzdG9yYWdlOiBTdG9yYWdlLFxuICAgIHByb3RlY3RlZCBuZXR3b3JrOiBOZXR3b3JrU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgZmlsZTogRmlsZVNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIHRvYXN0Q29udHJvbGxlcjogVG9hc3RDb250cm9sbGVyLFxuICAgIHByb3RlY3RlZCB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIGFjY291bnRTZXJ2aWNlOiBBY2NvdW50U2VydmljZSxcbiAgICBASW5qZWN0KEVOVklST05NRU5UKSBwcm90ZWN0ZWQgZW52aXJvbm1lbnQsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChBUFBfQ09ORklHX09QVElPTlMpIGRlZmF1bHRPcHRpb25zTWFwOiBGb3JtRmllbGREZWZpbml0aW9uTWFwXG4gICkge1xuICAgIHN1cGVyKGdyYXBocWwsIGVudmlyb25tZW50KTtcblxuICAgIHRoaXMuX2RlYnVnID0gIWVudmlyb25tZW50LnByb2R1Y3Rpb247XG4gICAgaWYgKHRoaXMuX2RlYnVnKSBjb25zb2xlLmRlYnVnKCdbY29uZmlnXSBDcmVhdGluZyBzZXJ2aWNlJyk7XG5cbiAgICB0aGlzLl9vcHRpb25EZWZzID0gT2JqZWN0LnZhbHVlcyh7Li4uQ09SRV9DT05GSUdfT1BUSU9OUywgLi4uZGVmYXVsdE9wdGlvbnNNYXB9KTtcblxuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIG5nT25TdGFydCgpOiBQcm9taXNlPENvbmZpZ3VyYXRpb24+IHtcbiAgICBjb25zb2xlLmluZm8oJ1tjb25maWddIFN0YXJ0aW5nIGNvbmZpZ3VyYXRpb24uLi4nKTtcblxuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLmxvYWRPclJlc3RvcmVMb2NhbGx5KCk7XG4gICAgdGhpcy4kZGF0YS5uZXh0KGRhdGEpO1xuXG4gICAgLy8gUmVzdGFydCBpZiBncmFwaHFsIHNlcnZpY2UgcmVzdGFydFxuICAgIHRoaXMucmVnaXN0ZXJTdWJzY3JpcHRpb24oXG4gICAgICB0aGlzLmdyYXBocWwub25TdGFydC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5yZXN0YXJ0KCkpXG4gICAgKTtcblxuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgYXN5bmMgbG9hZERlZmF1bHQoXG4gICAgb3B0cz86IEVudGl0eVNlcnZpY2VMb2FkT3B0aW9ucyk6IFByb21pc2U8Q29uZmlndXJhdGlvbj4ge1xuICAgIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG4gICAgY29uc29sZS5kZWJ1ZygnW2NvbmZpZ10gTG9hZGluZyBQb2QgY29uZmlndXJhdGlvbi4uLicpO1xuXG4gICAgY29uc3QgcXVlcnkgPSBvcHRzICYmIG9wdHMucXVlcnkgfHwgTG9hZFF1ZXJ5O1xuICAgIGNvbnN0IHZhcmlhYmxlcyA9IG9wdHMgJiYgb3B0cy52YXJpYWJsZXMgfHwgdW5kZWZpbmVkO1xuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMuZ3JhcGhxbC5xdWVyeTx7IGRhdGE6IGFueSB9Pih7XG4gICAgICBxdWVyeSxcbiAgICAgIHZhcmlhYmxlcyxcbiAgICAgIGVycm9yOiB7Y29kZTogRXJyb3JDb2Rlcy5MT0FEX0NPTkZJR19FUlJPUiwgbWVzc2FnZTogJ0VSUk9SLkxPQURfQ09ORklHX0VSUk9SJ30sXG4gICAgICBmZXRjaFBvbGljeTogb3B0cyAmJiBvcHRzLmZldGNoUG9saWN5IHx8IHVuZGVmaW5lZC8qZGVmYXVsdCovXG4gICAgfSk7XG5cbiAgICBjb25zdCBkYXRhID0gcmVzICYmIHJlcy5kYXRhID8gQ29uZmlndXJhdGlvbi5mcm9tT2JqZWN0KHJlcy5kYXRhKSA6IHVuZGVmaW5lZDtcbiAgICBjb25zb2xlLmluZm8oYFtjb25maWddIFBvZCBjb25maWd1cmF0aW9uIGxvYWRlZCBpbiAke0RhdGUubm93KCkgLSBub3d9bXM6YCwgZGF0YSk7XG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICBhc3luYyBsb2FkKFxuICAgIGlkOiBudW1iZXIsXG4gICAgb3B0cz86IEVudGl0eVNlcnZpY2VMb2FkT3B0aW9ucyAmIHsgcXVlcnk/OiBhbnkgfSk6IFByb21pc2U8Q29uZmlndXJhdGlvbj4ge1xuICAgIGNvbnNvbGUud2FybignW2NvbmZpZ10gSW52YWxpZCBjYWxsIG9mIGNvbmZpZ1NlcnZpY2UubG9hZChpZCkuIFBsZWFzZSB1c2UgbG9hZERlZmF1bHQoKSBpbnN0ZWFkJyk7XG5cbiAgICByZXR1cm4gdGhpcy5sb2FkRGVmYXVsdCgpO1xuICB9XG5cbiAgY2FuVXNlcldyaXRlKGRhdGE6IENvbmZpZ3VyYXRpb24sIG9wdHM/OiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5hY2NvdW50U2VydmljZS5pc0FkbWluKCk7XG4gIH1cblxuICAvKipcbiAgICogU2F2ZSBhIGNvbmZpZ3VyYXRpb25cbiAgICpcbiAgICogQHBhcmFtIGNvbmZpZ1xuICAgKi9cbiAgYXN5bmMgc2F2ZShjb25maWc6IENvbmZpZ3VyYXRpb24pOiBQcm9taXNlPENvbmZpZ3VyYXRpb24+IHtcblxuICAgIGNvbnNvbGUuZGVidWcoJ1tjb25maWddIFNhdmluZyBQb2QgY29uZmlndXJhdGlvbi4uLicsIGNvbmZpZyk7XG5cbiAgICBjb25zdCBqc29uID0gY29uZmlnLmFzT2JqZWN0KCk7XG5cbiAgICAvLyBFeGVjdXRlIG11dGF0aW9uXG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5ncmFwaHFsLm11dGF0ZTx7IGRhdGE6IGFueSB9Pih7XG4gICAgICBtdXRhdGlvbjogU2F2ZU11dGF0aW9uLFxuICAgICAgdmFyaWFibGVzOiB7XG4gICAgICAgIGRhdGE6IGpzb25cbiAgICAgIH0sXG4gICAgICBlcnJvcjoge1xuICAgICAgICBjb2RlOiBFcnJvckNvZGVzLlNBVkVfQ09ORklHX0VSUk9SLFxuICAgICAgICBtZXNzYWdlOiAnRVJST1IuU0FWRV9DT05GSUdfRVJST1InXG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBjb25zdCBzYXZlZENvbmZpZyA9IHJlcyAmJiByZXMuZGF0YTtcblxuICAgIC8vIENvcHkgdXBkYXRlIHByb3BlcnRpZXNcbiAgICBjb25maWcuaWQgPSBzYXZlZENvbmZpZyAmJiBzYXZlZENvbmZpZy5pZCB8fCBjb25maWcuaWQ7XG4gICAgY29uZmlnLnVwZGF0ZURhdGUgPSBzYXZlZENvbmZpZyAmJiBzYXZlZENvbmZpZy51cGRhdGVEYXRlIHx8IGNvbmZpZy51cGRhdGVEYXRlO1xuXG4gICAgY29uc29sZS5kZWJ1ZygnW2NvbmZpZ10gUG9kIGNvbmZpZ3VyYXRpb24gc2F2ZWQhJyk7XG5cbiAgICBjb25zdCByZWxvYWRlZENvbmZpZyA9IGF3YWl0IHRoaXMubG9hZERlZmF1bHQoe2ZldGNoUG9saWN5OiAnbmV0d29yay1vbmx5J30pO1xuXG4gICAgLy8gSWYgdGhpcyBpcyB0aGUgZGVmYXVsdCBjb25maWdcbiAgICBjb25zdCBkZWZhdWx0Q29uZmlnID0gdGhpcy4kZGF0YS52YWx1ZTtcbiAgICBpZiAoaXNOb3ROaWwoZGVmYXVsdENvbmZpZykgJiYgcmVsb2FkZWRDb25maWcubGFiZWwgPT09IGRlZmF1bHRDb25maWcubGFiZWwpIHtcblxuICAgICAgLy8gRW1pdCB1cGRhdGUgZXZlbnQgd2hlbiBpcyBkZWZhdWx0IGNvbmZpZ1xuICAgICAgdGhpcy4kZGF0YS5uZXh0KHJlbG9hZGVkQ29uZmlnKTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVsb2FkZWRDb25maWc7XG4gIH1cblxuICBhc3luYyBnZXRDYWNoZVN0YXRpc3RpY3MoKTogUHJvbWlzZTxzdHJpbmc+IHtcblxuICAgIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG4gICAgY29uc29sZS5kZWJ1ZygnW2NvbmZpZ10gTG9hZGluZyBzZXJ2ZXIgY2FjaGUgc3RhdGlzdGljcy4uLicpO1xuXG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5ncmFwaHFsLnF1ZXJ5PHsgY2FjaGVTdGF0aXN0aWNzOiBhbnkgfT4oe1xuICAgICAgcXVlcnk6IENhY2hlU3RhdGlzdGljcyxcbiAgICAgIHZhcmlhYmxlczogbnVsbCxcbiAgICAgIGVycm9yOiB7Y29kZTogRXJyb3JDb2Rlcy5MT0FEX0NPTkZJR19FUlJPUiwgbWVzc2FnZTogJ0VSUk9SLkxPQURfQ09ORklHX0VSUk9SJ30sXG4gICAgICBmZXRjaFBvbGljeTogJ25ldHdvcmstb25seSdcbiAgICB9KTtcblxuICAgIGNvbnN0IGRhdGEgPSByZXMgJiYgcmVzLmNhY2hlU3RhdGlzdGljcyB8fCB1bmRlZmluZWQ7XG4gICAgY29uc29sZS5pbmZvKGBbY29uZmlnXSBTZXJ2ZXIgY2FjaGUgc3RhdGlzdGljcyBsb2FkZWQgaW4gJHtEYXRlLm5vdygpIC0gbm93fW1zOmAsIGRhdGEpO1xuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgYXN5bmMgY2xlYXJDYWNoZShvcHRzPzoge2NhY2hlTmFtZT86IHN0cmluZ30pIHtcbiAgICBjb25zdCBub3cgPSBEYXRlLm5vdygpO1xuICAgIGNvbnNvbGUuZGVidWcoJ1tjb25maWddIENsZWFyIHNlcnZlciBjYWNoZS4uLicpO1xuXG4gICAgY29uc3QgdmFyaWFibGVzID0ge25hbWU6IG9wdHMgJiYgb3B0cy5jYWNoZU5hbWV9IHx8IHVuZGVmaW5lZDtcblxuICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMuZ3JhcGhxbC5xdWVyeTx7IGNsZWFyQ2FjaGU6IGJvb2xlYW4gfT4oe1xuICAgICAgcXVlcnk6IENsZWFyQ2FjaGUsXG4gICAgICB2YXJpYWJsZXMsXG4gICAgICBlcnJvcjoge2NvZGU6IEVycm9yQ29kZXMuTE9BRF9DT05GSUdfRVJST1IsIG1lc3NhZ2U6ICdFUlJPUi5MT0FEX0NPTkZJR19FUlJPUid9LFxuICAgICAgZmV0Y2hQb2xpY3k6ICduZXR3b3JrLW9ubHknXG4gICAgfSk7XG5cbiAgICBjb25zdCBkYXRhID0gcmVzICYmIHJlcy5jbGVhckNhY2hlIHx8IHVuZGVmaW5lZDtcbiAgICBjb25zb2xlLmluZm8oYFtjb25maWddIENsZWFyIHNlcnZlciBjYWNoZSBpbiAke0RhdGUubm93KCkgLSBub3d9bXM6YCwgZGF0YSk7XG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICBkZWxldGUoZGF0YTogQ29uZmlndXJhdGlvbiwgb3B0aW9ucz86IGFueSk6IFByb21pc2U8YW55PiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdOb3QgaW1wbGVtZW50ZWQgeWV0IScpO1xuICB9XG5cbiAgbGlzdGVuQ2hhbmdlcyhpZDogbnVtYmVyLCBvcHRpb25zPzogYW55KTogT2JzZXJ2YWJsZTxDb25maWd1cmF0aW9uIHwgdW5kZWZpbmVkPiB7XG4gICAgcmV0dXJuIG5ldyBTdWJqZWN0KCk7IC8vIFRPRE9cbiAgfVxuXG4gIGdldCBvcHRpb25EZWZzKCk6IEZvcm1GaWVsZERlZmluaXRpb25bXSB7XG4gICAgcmV0dXJuIHRoaXMuX29wdGlvbkRlZnM7XG4gIH1cblxuICAvKiAtLSBwcm90ZWN0ZWQgbWV0aG9kIC0tICovXG5cbiAgcHJpdmF0ZSBhc3luYyBsb2FkT3JSZXN0b3JlTG9jYWxseSgpOiBQcm9taXNlPENvbmZpZ3VyYXRpb24+IHtcbiAgICBsZXQgZGF0YTtcbiAgICBsZXQgd2FzSnVzdExvYWRlZCA9IGZhbHNlO1xuICAgIHRyeSB7XG4gICAgICBkYXRhID0gYXdhaXQgdGhpcy5sb2FkRGVmYXVsdCh7IGZldGNoUG9saWN5OiAnbmV0d29yay1vbmx5JyB9KTtcbiAgICAgIHdhc0p1c3RMb2FkZWQgPSB0cnVlO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgLy8gTG9nLCB0aGVuIGNvbnRpbnVlXG4gICAgICBjb25zb2xlLmVycm9yKGVyciAmJiBlcnIubWVzc2FnZSB8fCBlcnIsIGVycik7XG4gICAgfVxuXG4gICAgLy8gU2F2ZSBpdCBpbnRvIGxvY2FsIHN0b3JhZ2UsIGZvciBuZXh0IHN0YXJ0dXBcbiAgICBpZiAoZGF0YSkge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnN0b3JlTG9jYWxseShkYXRhKSwgMTAwMCk7XG4gICAgfVxuXG4gICAgLy8gSWYgbm90IGxvYWRlZCByZW1vdGVseTogdHJ5IHRvIHJlc3RvcmUgaXRcbiAgICBlbHNlIHtcbiAgICAgIGRhdGEgPSBhd2FpdCB0aGlzLnJlc3RvcmVMb2NhbGx5KCk7XG4gICAgfVxuXG4gICAgLy8gTWFrZSBzdXJlIGxhYmVsIGhhcyBiZWVuIGZpbGxlZFxuICAgIGRhdGEubGFiZWwgPSBkYXRhLmxhYmVsIHx8IHRoaXMuZW52aXJvbm1lbnQubmFtZTtcblxuICAgIC8vIFJlc2V0IG5hbWUgKGlmIHNhbWUgYXMgbGFiZWwpXG4gICAgZGF0YS5uYW1lID0gKGRhdGEubmFtZSAhPT0gZGF0YS5sYWJlbCkgPyBkYXRhLm5hbWUgOiB1bmRlZmluZWQ7XG5cbiAgICAvLyBDaGVjayBjb21wYXRpYmxlIHZlcnNpb25cbiAgICBpZiAod2FzSnVzdExvYWRlZCkge1xuICAgICAgLy8gVE9ET1xuICAgIH1cblxuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyByZXN0b3JlTG9jYWxseSgpOiBQcm9taXNlPENvbmZpZ3VyYXRpb24+IHtcbiAgICBsZXQgZGF0YTogQ29uZmlndXJhdGlvbjtcblxuICAgIC8vIFRyeSB0byBsb2FkIGZyb20gbG9jYWwgc3RvcmFnZVxuICAgIGNvbnN0IHZhbHVlOiBhbnkgPSBhd2FpdCB0aGlzLnN0b3JhZ2UuZ2V0KENPTkZJR1VSQVRJT05fU1RPUkFHRV9LRVkpO1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgY29uc29sZS5kZWJ1ZygnW2NvbmZpZ10gUmVzdG9yaW5nIGNvbmZpZ3VyYXRpb24gZnJvbSBsb2NhbCBzdG9yYWdlLi4uJyk7XG4gICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGRhdGEgPSBDb25maWd1cmF0aW9uLmZyb21PYmplY3QoSlNPTi5wYXJzZSh2YWx1ZSkpO1xuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGBGYWlsZWQgdG8gcGFyc2UgY29uZmlnIGZvdW5kIGluIGxvY2FsIHN0b3JhZ2U6ICR7ZXJyICYmIGVyci5tZXNzYWdlIHx8IGVycn1gLCBlcnIpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgICAgIGRhdGEgPSBDb25maWd1cmF0aW9uLmZyb21PYmplY3QodmFsdWUpO1xuICAgICAgfVxuXG4gICAgICBjb25zb2xlLmRlYnVnKCdbY29uZmlnXSBSZXN0b3JpbmcgY29uZmlndXJhdGlvbiBbT0tdJyk7XG4gICAgfVxuXG4gICAgLy8gT3IgbG9hZCBkZWZhdWx0IHZhbHVlLCBmcm9tIHRoZSBlbnZpcm9ubWVudFxuICAgIGlmICghZGF0YSkge1xuICAgICAgY29uc29sZS5kZWJ1ZygnW2NvbmZpZ10gTm8gY29uZmlndXJhdGlvbiBmb3VuZC4gVXNpbmcgZW52aXJvbm1lbnQuLi4nKTtcbiAgICAgIGRhdGEgPSBDb25maWd1cmF0aW9uLmZyb21PYmplY3QodGhpcy5lbnZpcm9ubWVudCBhcyBhbnkpO1xuICAgIH1cblxuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzdG9yZUxvY2FsbHkoZGF0YT86IENvbmZpZ3VyYXRpb24pIHtcbiAgICAvLyBOb3RoaW5nIHRvIHN0b3JlIDogcmVzZXRcbiAgICBpZiAoIWRhdGEpIHtcbiAgICAgIGF3YWl0IHRoaXMuc3RvcmFnZS5yZW1vdmUoQ09ORklHVVJBVElPTl9TVE9SQUdFX0tFWSk7XG4gICAgfVxuICAgIC8vIENvbmZpZyBleGlzdHM6IHN0b3JlIGl0IGluIHRoZSBsb2NhbCBzdG9yYWdlXG4gICAgZWxzZSB7XG4gICAgICBsZXQgbm93ID0gdGhpcy5fZGVidWcgJiYgRGF0ZS5ub3coKTtcblxuICAgICAgLy8gQ29udmVydCBpbWFnZXMsIGZvciBvZmZsaW5lIHVzYWdlXG4gICAgICBpZiAodGhpcy5uZXR3b3JrLm9ubGluZSAmJiB0aGlzLnBsYXRmb3JtLmlzKCdtb2JpbGUnKSkge1xuICAgICAgICBjb25zdCBqb2JzID0gW107XG5cbiAgICAgICAgLy8gRG93bmxvYWQgbG9nb3NcbiAgICAgICAgaWYgKGRhdGEubGFyZ2VMb2dvICYmIGRhdGEubGFyZ2VMb2dvLnN0YXJ0c1dpdGgoJ2h0dHAnKSkge1xuICAgICAgICAgIGpvYnMucHVzaCh0aGlzLmZpbGUuZ2V0SW1hZ2UoZGF0YS5sYXJnZUxvZ28pXG4gICAgICAgICAgICAudGhlbihpbWdVcmwgPT4gZGF0YS5sYXJnZUxvZ28gPSBpbWdVcmwpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5zbWFsbExvZ28gJiYgZGF0YS5zbWFsbExvZ28uc3RhcnRzV2l0aCgnaHR0cCcpKSB7XG4gICAgICAgICAgam9icy5wdXNoKHRoaXMuZmlsZS5nZXRJbWFnZShkYXRhLnNtYWxsTG9nbylcbiAgICAgICAgICAgIC50aGVuKGltZ1VybCA9PiBkYXRhLnNtYWxsTG9nbyA9IGltZ1VybCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQmFja2dyb3VuZCBpbWFnZXNcbiAgICAgICAgaWYgKGlzTm90RW1wdHlBcnJheShkYXRhLmJhY2tncm91bmRJbWFnZXMpKSB7XG4gICAgICAgICAgY29uc3Qgb3B0aW9ucyA9IHtcbiAgICAgICAgICAgIG1heFdpZHRoOiB0aGlzLnBsYXRmb3JtLndpZHRoKCksXG4gICAgICAgICAgICBtYXhIZWlnaHQ6IHRoaXMucGxhdGZvcm0uaGVpZ2h0KClcbiAgICAgICAgICB9O1xuXG4gICAgICAgICAgLy8gQ29udmVydCB0aGUgRklSU1QgaW1hZ2UgZm91bmRcbiAgICAgICAgICAvLyBXQVJOOiBpdCdzIE5PVCBuZWNlc3NhcnkgdG8gY29udmVydCBBTCBpbWFnZSwgYnV0IG9ubHkgb25lLCBmb3Igc21hbGxlciBtZW1vcnkgZm9vdHByaW50XG4gICAgICAgICAgY29uc3QgaW5kZXggPSBkYXRhLmJhY2tncm91bmRJbWFnZXMuZmluZEluZGV4KChpbWcpID0+IGltZyAmJiBpbWcuc3RhcnRzV2l0aCgnaHR0cCcpKTtcbiAgICAgICAgICBpZiAoaW5kZXggIT09IC0xKSB7XG4gICAgICAgICAgICBkYXRhLmJhY2tncm91bmRJbWFnZXMgPSBkYXRhLmJhY2tncm91bmRJbWFnZXMuc2xpY2UoKTsgLy8gQ29weVxuICAgICAgICAgICAgam9icy5wdXNoKFxuICAgICAgICAgICAgICB0aGlzLmZpbGUuZ2V0SW1hZ2UoZGF0YS5iYWNrZ3JvdW5kSW1hZ2VzW2luZGV4XSwgb3B0aW9ucylcbiAgICAgICAgICAgICAgICAudGhlbihkYXRhVXJsID0+IGRhdGEuYmFja2dyb3VuZEltYWdlc1tpbmRleF0gPSBkYXRhVXJsKSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICAvLyBQYXJ0bmVyc1xuICAgICAgICBpZiAoaXNOb3RFbXB0eUFycmF5KGRhdGEucGFydG5lcnMpKSB7XG4gICAgICAgICAgZGF0YS5wYXJ0bmVycy5mb3JFYWNoKChkZXAsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBpZiAoZGVwICYmIGRlcC5sb2dvICYmIGRlcC5sb2dvLnN0YXJ0c1dpdGgoJ2h0dHAnKSkge1xuICAgICAgICAgICAgICBqb2JzLnB1c2godGhpcy5maWxlLmdldEltYWdlKGRlcC5sb2dvLCB7XG4gICAgICAgICAgICAgICAgbWF4SGVpZ2h0OiA1MC8qc2VlIGhvbWUgcGFnZSBDU1MgKi9cbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgLnRoZW4oaW1nID0+IGRlcC5sb2dvID0gaW1nKVxuICAgICAgICAgICAgICAuY2F0Y2goZXJyID0+IHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGVyciAmJiBlcnIubWVzc2FnZSB8fCBlcnIpO1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBkZXAubG9nbztcbiAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGpvYnMubGVuZ3RoKSB7XG4gICAgICAgICAgaWYgKHRoaXMuX2RlYnVnKSBjb25zb2xlLmRlYnVnKGBbY29uZmlnXSBGZXRjaGluZyAke2pvYnMubGVuZ3RofSBpbWFnZXMuLi5gKTtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5hbGwoam9icyk7XG4gICAgICAgICAgICBpZiAodGhpcy5fZGVidWcpIGNvbnNvbGUuZGVidWcoYFtjb25maWddIEZldGNoaW5nICR7am9icy5sZW5ndGh9IGltYWdlcyBbT0tdIGluICR7RGF0ZS5ub3coKSAtIG5vd31tc2ApO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGBbY29uZmlnXSBGYWlsZWQgdG8gZmV0Y2ggaW1hZ2Uocyk6ICR7ZXJyICYmIGVyci5tZXNzYWdlIHx8IGVycn1gLCBlcnIpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBTYXZpbmcgY29uZmlnIHRvIHN0b3JhZ2VcbiAgICAgIHtcbiAgICAgICAgbm93ID0gdGhpcy5fZGVidWcgJiYgRGF0ZS5ub3coKTtcbiAgICAgICAgaWYgKHRoaXMuX2RlYnVnKSBjb25zb2xlLmRlYnVnKCdbY29uZmlnXSBTYXZpbmcgY29uZmlnIGludG8gbG9jYWwgc3RvcmFnZS4uLicpO1xuICAgICAgICBhd2FpdCB0aGlzLnN0b3JhZ2Uuc2V0KENPTkZJR1VSQVRJT05fU1RPUkFHRV9LRVksIGRhdGEuYXNPYmplY3QoKSk7XG4gICAgICAgIGlmICh0aGlzLl9kZWJ1ZykgY29uc29sZS5kZWJ1ZyhgW2NvbmZpZ10gU2F2aW5nIGNvbmZpZyBpbnRvIGxvY2FsIHN0b3JhZ2UgW09LXSBpbiAke0RhdGUubm93KCkgLSBub3d9bXNgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgc2hvd1RvYXN0KG9wdHM6IFNob3dUb2FzdE9wdGlvbnMpIHtcbiAgICBhd2FpdCBUb2FzdHMuc2hvdyh0aGlzLnRvYXN0Q29udHJvbGxlciwgdGhpcy50cmFuc2xhdGUsIG9wdHMpO1xuICB9XG59XG4iXX0=
384
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvcmUvc2VydmljZXMvY29uZmlnLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDM0UsT0FBTyxFQUFDLEdBQUcsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3hDLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkMsT0FBTyxFQUFDLGVBQWUsRUFBYyxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDMUQsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUNwQyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFFMUQsT0FBTyxFQUFDLGVBQWUsRUFBRSxRQUFRLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0QsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ3pELE9BQU8sRUFBQyxRQUFRLEVBQUUsZUFBZSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekQsT0FBTyxFQUFtQixNQUFNLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUNuRSxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNyRCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFdEMsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLHlDQUF5QyxDQUFDO0FB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QUcsQ0FBQyxPQUFPLElBQUksR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7eUJBQ3ZGO3FCQUNGO2lCQUNGO2dCQUVELDJCQUEyQjtnQkFDM0I7b0JBQ0UsR0FBRyxHQUFHLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO29CQUNoQyxJQUFJLElBQUksQ0FBQyxNQUFNO3dCQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsOENBQThDLENBQUMsQ0FBQztvQkFDL0UsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyx5QkFBeUIsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztvQkFDbkUsSUFBSSxJQUFJLENBQUMsTUFBTTt3QkFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLHFEQUFxRCxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxJQUFJLENBQUMsQ0FBQztpQkFDM0c7YUFDRjtRQUNILENBQUM7S0FBQTtJQUVlLFNBQVMsQ0FBQyxJQUFzQjs7WUFDOUMsTUFBTSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNoRSxDQUFDO0tBQUE7Ozs7WUFsVUYsVUFBVSxTQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2dCQUNsQixJQUFJLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQzthQUMzQjs7O1lBaEZPLFFBQVE7WUFOUixjQUFjO1lBSGQsT0FBTztZQU9QLGNBQWM7WUFEZCxXQUFXO1lBR0QsZUFBZTtZQUV6QixnQkFBZ0I7WUFNaEIsY0FBYzs0Q0ErRmpCLE1BQU0sU0FBQyxXQUFXOzRDQUNsQixRQUFRLFlBQUksTUFBTSxTQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiwgT3B0aW9uYWx9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtncWx9IGZyb20gJ0BhcG9sbG8vY2xpZW50L2NvcmUnO1xuaW1wb3J0IHtDb25maWd1cmF0aW9ufSBmcm9tICcuL21vZGVsL2NvbmZpZy5tb2RlbCc7XG5pbXBvcnQge1N0b3JhZ2V9IGZyb20gJ0Bpb25pYy9zdG9yYWdlJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7RXJyb3JDb2Rlc30gZnJvbSAnLi9lcnJvcnMnO1xuaW1wb3J0IHtHcmFwaHFsU2VydmljZX0gZnJvbSAnLi4vZ3JhcGhxbC9ncmFwaHFsLnNlcnZpY2UnO1xuaW1wb3J0IHtGb3JtRmllbGREZWZpbml0aW9uLCBGb3JtRmllbGREZWZpbml0aW9uTWFwfSBmcm9tICcuLi8uLi9zaGFyZWQvZm9ybS9maWVsZC5tb2RlbCc7XG5pbXBvcnQge2lzTm90RW1wdHlBcnJheSwgaXNOb3ROaWx9IGZyb20gJy4uLy4uL3NoYXJlZC9mdW5jdGlvbnMnO1xuaW1wb3J0IHtGaWxlU2VydmljZX0gZnJvbSAnLi4vLi4vc2hhcmVkL2ZpbGUvZmlsZS5zZXJ2aWNlJztcbmltcG9ydCB7TmV0d29ya1NlcnZpY2V9IGZyb20gJy4vbmV0d29yay5zZXJ2aWNlJztcbmltcG9ydCB7Q09SRV9DT05GSUdfT1BUSU9OU30gZnJvbSAnLi9jb25maWcvY29yZS5jb25maWcnO1xuaW1wb3J0IHtQbGF0Zm9ybSwgVG9hc3RDb250cm9sbGVyfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQge1Nob3dUb2FzdE9wdGlvbnMsIFRvYXN0c30gZnJvbSAnLi4vLi4vc2hhcmVkL3RvYXN0L3RvYXN0cyc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtmaWx0ZXJ9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7RW50aXR5U2VydmljZUxvYWRPcHRpb25zLCBJRW50aXR5U2VydmljZX0gZnJvbSAnLi4vLi4vc2hhcmVkL3NlcnZpY2VzL2VudGl0eS1zZXJ2aWNlLmNsYXNzJztcbmltcG9ydCB7RU5WSVJPTk1FTlR9IGZyb20gJy4uLy4uLy4uL2Vudmlyb25tZW50cy9lbnZpcm9ubWVudC5jbGFzcyc7XG5pbXBvcnQge0Jhc2VHcmFwaHFsU2VydmljZX0gZnJvbSAnLi9iYXNlLWdyYXBocWwtc2VydmljZS5jbGFzcyc7XG5pbXBvcnQge0lTdGFydGFibGVTZXJ2aWNlfSBmcm9tICcuLi8uLi9zaGFyZWQvc2VydmljZXMvc3RhcnRhYmxlLXNlcnZpY2UuY2xhc3MnO1xuaW1wb3J0IHtBY2NvdW50U2VydmljZX0gZnJvbSAnLi9hY2NvdW50LnNlcnZpY2UnO1xuXG5cbmNvbnN0IENPTkZJR1VSQVRJT05fU1RPUkFHRV9LRVkgPSAnY29uZmlndXJhdGlvbic7XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogR3JhcGhRTCBxdWVyaWVzXG4gKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qL1xuZXhwb3J0IGNvbnN0IEZyYWdtZW50cyA9IHtcbiAgY29uZmlnOiBncWxgXG4gICAgZnJhZ21lbnQgQ29uZmlnRnJhZ21lbnQgb24gQ29uZmlndXJhdGlvblZPIHtcbiAgICAgIGlkXG4gICAgICBsYWJlbFxuICAgICAgbmFtZVxuICAgICAgZGVzY3JpcHRpb25cbiAgICAgIGNvbW1lbnRzXG4gICAgICBwcm9wZXJ0aWVzXG4gICAgICBzbWFsbExvZ29cbiAgICAgIGxhcmdlTG9nb1xuICAgICAgYmFja2dyb3VuZEltYWdlc1xuICAgICAgcGFydG5lcnMge1xuICAgICAgICBpZFxuICAgICAgICBsYWJlbFxuICAgICAgICBuYW1lXG4gICAgICAgIGxvZ29cbiAgICAgICAgc2l0ZVVybFxuICAgICAgICBfX3R5cGVuYW1lXG4gICAgICB9XG4gICAgICB1cGRhdGVEYXRlXG4gICAgICBjcmVhdGlvbkRhdGVcbiAgICAgIHN0YXR1c0lkXG4gICAgICBfX3R5cGVuYW1lXG4gICAgfVxuICBgXG59O1xuXG5jb25zdCBMb2FkUXVlcnk6IGFueSA9IGdxbGBcbnF1ZXJ5IENvbmZpZ3VyYXRpb257XG4gIGRhdGE6IGNvbmZpZ3VyYXRpb257XG4gICAgLi4uQ29uZmlnRnJhZ21lbnRcbiAgfVxufVxuICAke0ZyYWdtZW50cy5jb25maWd9XG5gO1xuXG4vLyBTYXZlIChjcmVhdGUgb3IgdXBkYXRlKSBhY2NvdW50IG11dGF0aW9uXG5jb25zdCBTYXZlTXV0YXRpb246IGFueSA9IGdxbGBcbiAgbXV0YXRpb24gU2F2ZUNvbmZpZ3VyYXRpb24oJGRhdGE6IENvbmZpZ3VyYXRpb25WT0lucHV0KXtcbiAgICBkYXRhOiBzYXZlQ29uZmlndXJhdGlvbihjb25maWc6ICRkYXRhKXtcbiAgICAgICAuLi5Db25maWdGcmFnbWVudFxuICAgIH1cbiAgfVxuICAke0ZyYWdtZW50cy5jb25maWd9XG5gO1xuXG5jb25zdCBDbGVhckNhY2hlOiBhbnkgPSBncWxgXG4gIHF1ZXJ5IENsZWFyQ2FjaGUoJG5hbWU6IFN0cmluZykge1xuICAgIGNsZWFyQ2FjaGUobmFtZTogJG5hbWUpXG4gIH1cbmA7XG5cbmNvbnN0IENhY2hlU3RhdGlzdGljczogYW55ID0gZ3FsYFxuICBxdWVyeSBDYWNoZVN0YXRpc3RpY3Mge1xuICAgIGNhY2hlU3RhdGlzdGljc1xuICB9XG5gO1xuXG5leHBvcnQgY29uc3QgQVBQX0NPTkZJR19PUFRJT05TID0gbmV3IEluamVjdGlvblRva2VuPEZvcm1GaWVsZERlZmluaXRpb25NYXA+KCdkZWZhdWx0T3B0aW9ucycpO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290JyxcbiAgZGVwczogW0FQUF9DT05GSUdfT1BUSU9OU11cbn0pXG5leHBvcnQgY2xhc3MgQ29uZmlnU2VydmljZVxuICBleHRlbmRzIEJhc2VHcmFwaHFsU2VydmljZTxDb25maWd1cmF0aW9uLCBhbnksIG51bWJlciwgQ29uZmlndXJhdGlvbj5cbiAgaW1wbGVtZW50cyBJRW50aXR5U2VydmljZTxDb25maWd1cmF0aW9uPiwgSVN0YXJ0YWJsZVNlcnZpY2U8Q29uZmlndXJhdGlvbj4ge1xuXG4gIHByaXZhdGUgX29wdGlvbkRlZnM6IEZvcm1GaWVsZERlZmluaXRpb25bXTtcbiAgcHJpdmF0ZSAkZGF0YSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Q29uZmlndXJhdGlvbj4obnVsbCk7XG5cbiAgZ2V0IGNvbmZpZygpOiBPYnNlcnZhYmxlPENvbmZpZ3VyYXRpb24+IHtcbiAgICAvLyBJZiBmaXJzdCBjYWxsOiBzdGFydCBsb2FkaW5nXG4gICAgaWYgKCF0aGlzLnN0YXJ0ZWQpIHRoaXMuc3RhcnQoKTtcbiAgICByZXR1cm4gdGhpcy4kZGF0YS5waXBlKGZpbHRlcihpc05vdE5pbCkpO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIHBsYXRmb3JtOiBQbGF0Zm9ybSxcbiAgICBwcm90ZWN0ZWQgZ3JhcGhxbDogR3JhcGhxbFNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIHN0b3JhZ2U6IFN0b3JhZ2UsXG4gICAgcHJvdGVjdGVkIG5ldHdvcms6IE5ldHdvcmtTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBmaWxlOiBGaWxlU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgdG9hc3RDb250cm9sbGVyOiBUb2FzdENvbnRyb2xsZXIsXG4gICAgcHJvdGVjdGVkIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgYWNjb3VudFNlcnZpY2U6IEFjY291bnRTZXJ2aWNlLFxuICAgIEBJbmplY3QoRU5WSVJPTk1FTlQpIHByb3RlY3RlZCBlbnZpcm9ubWVudCxcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEFQUF9DT05GSUdfT1BUSU9OUykgZGVmYXVsdE9wdGlvbnNNYXA6IEZvcm1GaWVsZERlZmluaXRpb25NYXBcbiAgKSB7XG4gICAgc3VwZXIoZ3JhcGhxbCwgZW52aXJvbm1lbnQpO1xuXG4gICAgdGhpcy5fZGVidWcgPSAhZW52aXJvbm1lbnQucHJvZHVjdGlvbjtcbiAgICBpZiAodGhpcy5fZGVidWcpIGNvbnNvbGUuZGVidWcoJ1tjb25maWddIENyZWF0aW5nIHNlcnZpY2UnKTtcblxuICAgIHRoaXMuX29wdGlvbkRlZnMgPSBPYmplY3QudmFsdWVzKHsuLi5DT1JFX0NPTkZJR19PUFRJT05TLCAuLi5kZWZhdWx0T3B0aW9uc01hcH0pO1xuXG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgbmdPblN0YXJ0KCk6IFByb21pc2U8Q29uZmlndXJhdGlvbj4ge1xuICAgIGNvbnNvbGUuaW5mbygnW2NvbmZpZ10gU3RhcnRpbmcgY29uZmlndXJhdGlvbi4uLicpO1xuXG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IHRoaXMubG9hZE9yUmVzdG9yZUxvY2FsbHkoKTtcbiAgICB0aGlzLiRkYXRhLm5leHQoZGF0YSk7XG5cbiAgICAvLyBSZXN0YXJ0IGlmIGdyYXBocWwgc2VydmljZSByZXN0YXJ0XG4gICAgdGhpcy5yZWdpc3RlclN1YnNjcmlwdGlvbihcbiAgICAgIHRoaXMuZ3JhcGhxbC5vblN0YXJ0LnN1YnNjcmliZSgoKSA9PiB0aGlzLnJlc3RhcnQoKSlcbiAgICApO1xuXG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICBhc3luYyBsb2FkRGVmYXVsdChcbiAgICBvcHRzPzogRW50aXR5U2VydmljZUxvYWRPcHRpb25zKTogUHJvbWlzZTxDb25maWd1cmF0aW9uPiB7XG4gICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgICBjb25zb2xlLmRlYnVnKCdbY29uZmlnXSBMb2FkaW5nIFBvZCBjb25maWd1cmF0aW9uLi4uJyk7XG5cbiAgICBjb25zdCBxdWVyeSA9IG9wdHMgJiYgb3B0cy5xdWVyeSB8fCBMb2FkUXVlcnk7XG4gICAgY29uc3QgdmFyaWFibGVzID0gb3B0cyAmJiBvcHRzLnZhcmlhYmxlcyB8fCB1bmRlZmluZWQ7XG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5ncmFwaHFsLnF1ZXJ5PHsgZGF0YTogYW55IH0+KHtcbiAgICAgIHF1ZXJ5LFxuICAgICAgdmFyaWFibGVzLFxuICAgICAgZXJyb3I6IHtjb2RlOiBFcnJvckNvZGVzLkxPQURfQ09ORklHX0VSUk9SLCBtZXNzYWdlOiAnRVJST1IuTE9BRF9DT05GSUdfRVJST1InfSxcbiAgICAgIGZldGNoUG9saWN5OiBvcHRzICYmIG9wdHMuZmV0Y2hQb2xpY3kgfHwgdW5kZWZpbmVkLypkZWZhdWx0Ki9cbiAgICB9KTtcblxuICAgIGNvbnN0IGRhdGEgPSByZXMgJiYgcmVzLmRhdGEgPyBDb25maWd1cmF0aW9uLmZyb21PYmplY3QocmVzLmRhdGEpIDogdW5kZWZpbmVkO1xuICAgIGNvbnNvbGUuaW5mbyhgW2NvbmZpZ10gUG9kIGNvbmZpZ3VyYXRpb24gbG9hZGVkIGluICR7RGF0ZS5ub3coKSAtIG5vd31tczpgLCBkYXRhKTtcbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIGFzeW5jIGxvYWQoXG4gICAgaWQ6IG51bWJlcixcbiAgICBvcHRzPzogRW50aXR5U2VydmljZUxvYWRPcHRpb25zICYgeyBxdWVyeT86IGFueSB9KTogUHJvbWlzZTxDb25maWd1cmF0aW9uPiB7XG4gICAgY29uc29sZS53YXJuKCdbY29uZmlnXSBJbnZhbGlkIGNhbGwgb2YgY29uZmlnU2VydmljZS5sb2FkKGlkKS4gUGxlYXNlIHVzZSBsb2FkRGVmYXVsdCgpIGluc3RlYWQnKTtcblxuICAgIHJldHVybiB0aGlzLmxvYWREZWZhdWx0KCk7XG4gIH1cblxuICBjYW5Vc2VyV3JpdGUoZGF0YTogQ29uZmlndXJhdGlvbiwgb3B0cz86IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmFjY291bnRTZXJ2aWNlLmlzQWRtaW4oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTYXZlIGEgY29uZmlndXJhdGlvblxuICAgKlxuICAgKiBAcGFyYW0gY29uZmlnXG4gICAqL1xuICBhc3luYyBzYXZlKGNvbmZpZzogQ29uZmlndXJhdGlvbik6IFByb21pc2U8Q29uZmlndXJhdGlvbj4ge1xuXG4gICAgY29uc29sZS5kZWJ1ZygnW2NvbmZpZ10gU2F2aW5nIFBvZCBjb25maWd1cmF0aW9uLi4uJywgY29uZmlnKTtcblxuICAgIGNvbnN0IGpzb24gPSBjb25maWcuYXNPYmplY3QoKTtcblxuICAgIC8vIEV4ZWN1dGUgbXV0YXRpb25cbiAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLmdyYXBocWwubXV0YXRlPHsgZGF0YTogYW55IH0+KHtcbiAgICAgIG11dGF0aW9uOiBTYXZlTXV0YXRpb24sXG4gICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgZGF0YToganNvblxuICAgICAgfSxcbiAgICAgIGVycm9yOiB7XG4gICAgICAgIGNvZGU6IEVycm9yQ29kZXMuU0FWRV9DT05GSUdfRVJST1IsXG4gICAgICAgIG1lc3NhZ2U6ICdFUlJPUi5TQVZFX0NPTkZJR19FUlJPUidcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGNvbnN0IHNhdmVkQ29uZmlnID0gcmVzICYmIHJlcy5kYXRhO1xuXG4gICAgLy8gQ29weSB1cGRhdGUgcHJvcGVydGllc1xuICAgIGNvbmZpZy5pZCA9IHNhdmVkQ29uZmlnICYmIHNhdmVkQ29uZmlnLmlkIHx8IGNvbmZpZy5pZDtcbiAgICBjb25maWcudXBkYXRlRGF0ZSA9IHNhdmVkQ29uZmlnICYmIHNhdmVkQ29uZmlnLnVwZGF0ZURhdGUgfHwgY29uZmlnLnVwZGF0ZURhdGU7XG5cbiAgICBjb25zb2xlLmRlYnVnKCdbY29uZmlnXSBQb2QgY29uZmlndXJhdGlvbiBzYXZlZCEnKTtcblxuICAgIGNvbnN0IHJlbG9hZGVkQ29uZmlnID0gYXdhaXQgdGhpcy5sb2FkRGVmYXVsdCh7ZmV0Y2hQb2xpY3k6ICduZXR3b3JrLW9ubHknfSk7XG5cbiAgICAvLyBJZiB0aGlzIGlzIHRoZSBkZWZhdWx0IGNvbmZpZ1xuICAgIGNvbnN0IGRlZmF1bHRDb25maWcgPSB0aGlzLiRkYXRhLnZhbHVlO1xuICAgIGlmIChpc05vdE5pbChkZWZhdWx0Q29uZmlnKSAmJiByZWxvYWRlZENvbmZpZy5sYWJlbCA9PT0gZGVmYXVsdENvbmZpZy5sYWJlbCkge1xuXG4gICAgICAvLyBFbWl0IHVwZGF0ZSBldmVudCB3aGVuIGlzIGRlZmF1bHQgY29uZmlnXG4gICAgICB0aGlzLiRkYXRhLm5leHQocmVsb2FkZWRDb25maWcpO1xuICAgIH1cblxuICAgIHJldHVybiByZWxvYWRlZENvbmZpZztcbiAgfVxuXG4gIGFzeW5jIGdldENhY2hlU3RhdGlzdGljcygpOiBQcm9taXNlPHN0cmluZz4ge1xuXG4gICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgICBjb25zb2xlLmRlYnVnKCdbY29uZmlnXSBMb2FkaW5nIHNlcnZlciBjYWNoZSBzdGF0aXN0aWNzLi4uJyk7XG5cbiAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLmdyYXBocWwucXVlcnk8eyBjYWNoZVN0YXRpc3RpY3M6IGFueSB9Pih7XG4gICAgICBxdWVyeTogQ2FjaGVTdGF0aXN0aWNzLFxuICAgICAgdmFyaWFibGVzOiBudWxsLFxuICAgICAgZXJyb3I6IHtjb2RlOiBFcnJvckNvZGVzLkxPQURfQ09ORklHX0VSUk9SLCBtZXNzYWdlOiAnRVJST1IuTE9BRF9DT05GSUdfRVJST1InfSxcbiAgICAgIGZldGNoUG9saWN5OiAnbmV0d29yay1vbmx5J1xuICAgIH0pO1xuXG4gICAgY29uc3QgZGF0YSA9IHJlcyAmJiByZXMuY2FjaGVTdGF0aXN0aWNzIHx8IHVuZGVmaW5lZDtcbiAgICBjb25zb2xlLmluZm8oYFtjb25maWddIFNlcnZlciBjYWNoZSBzdGF0aXN0aWNzIGxvYWRlZCBpbiAke0RhdGUubm93KCkgLSBub3d9bXM6YCwgZGF0YSk7XG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICBhc3luYyBjbGVhckNhY2hlKG9wdHM/OiB7Y2FjaGVOYW1lPzogc3RyaW5nfSkge1xuICAgIGNvbnN0IG5vdyA9IERhdGUubm93KCk7XG4gICAgY29uc29sZS5kZWJ1ZygnW2NvbmZpZ10gQ2xlYXIgc2VydmVyIGNhY2hlLi4uJyk7XG5cbiAgICBjb25zdCB2YXJpYWJsZXMgPSBvcHRzICYmIG9wdHMuY2FjaGVOYW1lICYmIHtuYW1lOiBvcHRzLmNhY2hlTmFtZX0gfHwgdW5kZWZpbmVkO1xuXG4gICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5ncmFwaHFsLnF1ZXJ5PHsgY2xlYXJDYWNoZTogYm9vbGVhbiB9Pih7XG4gICAgICBxdWVyeTogQ2xlYXJDYWNoZSxcbiAgICAgIHZhcmlhYmxlcyxcbiAgICAgIGVycm9yOiB7Y29kZTogRXJyb3JDb2Rlcy5MT0FEX0NPTkZJR19FUlJPUiwgbWVzc2FnZTogJ0VSUk9SLkxPQURfQ09ORklHX0VSUk9SJ30sXG4gICAgICBmZXRjaFBvbGljeTogJ25vLWNhY2hlJ1xuICAgIH0pO1xuXG4gICAgY29uc3QgZGF0YSA9IHJlcyAmJiByZXMuY2xlYXJDYWNoZSB8fCB1bmRlZmluZWQ7XG4gICAgY29uc29sZS5pbmZvKGBbY29uZmlnXSBDbGVhciBzZXJ2ZXIgY2FjaGUgaW4gJHtEYXRlLm5vdygpIC0gbm93fW1zOmAsIGRhdGEpO1xuICAgIHJldHVybiBkYXRhO1xuICB9XG5cbiAgZGVsZXRlKGRhdGE6IENvbmZpZ3VyYXRpb24sIG9wdGlvbnM/OiBhbnkpOiBQcm9taXNlPGFueT4ge1xuICAgIHRocm93IG5ldyBFcnJvcignTm90IGltcGxlbWVudGVkIHlldCEnKTtcbiAgfVxuXG4gIGxpc3RlbkNoYW5nZXMoaWQ6IG51bWJlciwgb3B0aW9ucz86IGFueSk6IE9ic2VydmFibGU8Q29uZmlndXJhdGlvbiB8IHVuZGVmaW5lZD4ge1xuICAgIHJldHVybiBuZXcgU3ViamVjdCgpOyAvLyBUT0RPXG4gIH1cblxuICBnZXQgb3B0aW9uRGVmcygpOiBGb3JtRmllbGREZWZpbml0aW9uW10ge1xuICAgIHJldHVybiB0aGlzLl9vcHRpb25EZWZzO1xuICB9XG5cbiAgLyogLS0gcHJvdGVjdGVkIG1ldGhvZCAtLSAqL1xuXG4gIHByaXZhdGUgYXN5bmMgbG9hZE9yUmVzdG9yZUxvY2FsbHkoKTogUHJvbWlzZTxDb25maWd1cmF0aW9uPiB7XG4gICAgbGV0IGRhdGE7XG4gICAgbGV0IHdhc0p1c3RMb2FkZWQgPSBmYWxzZTtcbiAgICB0cnkge1xuICAgICAgZGF0YSA9IGF3YWl0IHRoaXMubG9hZERlZmF1bHQoeyBmZXRjaFBvbGljeTogJ25ldHdvcmstb25seScgfSk7XG4gICAgICB3YXNKdXN0TG9hZGVkID0gdHJ1ZTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIC8vIExvZywgdGhlbiBjb250aW51ZVxuICAgICAgY29uc29sZS5lcnJvcihlcnIgJiYgZXJyLm1lc3NhZ2UgfHwgZXJyLCBlcnIpO1xuICAgIH1cblxuICAgIC8vIFNhdmUgaXQgaW50byBsb2NhbCBzdG9yYWdlLCBmb3IgbmV4dCBzdGFydHVwXG4gICAgaWYgKGRhdGEpIHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5zdG9yZUxvY2FsbHkoZGF0YSksIDEwMDApO1xuICAgIH1cblxuICAgIC8vIElmIG5vdCBsb2FkZWQgcmVtb3RlbHk6IHRyeSB0byByZXN0b3JlIGl0XG4gICAgZWxzZSB7XG4gICAgICBkYXRhID0gYXdhaXQgdGhpcy5yZXN0b3JlTG9jYWxseSgpO1xuICAgIH1cblxuICAgIC8vIE1ha2Ugc3VyZSBsYWJlbCBoYXMgYmVlbiBmaWxsZWRcbiAgICBkYXRhLmxhYmVsID0gZGF0YS5sYWJlbCB8fCB0aGlzLmVudmlyb25tZW50Lm5hbWU7XG5cbiAgICAvLyBSZXNldCBuYW1lIChpZiBzYW1lIGFzIGxhYmVsKVxuICAgIGRhdGEubmFtZSA9IChkYXRhLm5hbWUgIT09IGRhdGEubGFiZWwpID8gZGF0YS5uYW1lIDogdW5kZWZpbmVkO1xuXG4gICAgLy8gQ2hlY2sgY29tcGF0aWJsZSB2ZXJzaW9uXG4gICAgaWYgKHdhc0p1c3RMb2FkZWQpIHtcbiAgICAgIC8vIFRPRE9cbiAgICB9XG5cbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcmVzdG9yZUxvY2FsbHkoKTogUHJvbWlzZTxDb25maWd1cmF0aW9uPiB7XG4gICAgbGV0IGRhdGE6IENvbmZpZ3VyYXRpb247XG5cbiAgICAvLyBUcnkgdG8gbG9hZCBmcm9tIGxvY2FsIHN0b3JhZ2VcbiAgICBjb25zdCB2YWx1ZTogYW55ID0gYXdhaXQgdGhpcy5zdG9yYWdlLmdldChDT05GSUdVUkFUSU9OX1NUT1JBR0VfS0VZKTtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIGNvbnNvbGUuZGVidWcoJ1tjb25maWddIFJlc3RvcmluZyBjb25maWd1cmF0aW9uIGZyb20gbG9jYWwgc3RvcmFnZS4uLicpO1xuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBkYXRhID0gQ29uZmlndXJhdGlvbi5mcm9tT2JqZWN0KEpTT04ucGFyc2UodmFsdWUpKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgY29uc29sZS5lcnJvcihgRmFpbGVkIHRvIHBhcnNlIGNvbmZpZyBmb3VuZCBpbiBsb2NhbCBzdG9yYWdlOiAke2VyciAmJiBlcnIubWVzc2FnZSB8fCBlcnJ9YCwgZXJyKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0Jykge1xuICAgICAgICBkYXRhID0gQ29uZmlndXJhdGlvbi5mcm9tT2JqZWN0KHZhbHVlKTtcbiAgICAgIH1cblxuICAgICAgY29uc29sZS5kZWJ1ZygnW2NvbmZpZ10gUmVzdG9yaW5nIGNvbmZpZ3VyYXRpb24gW09LXScpO1xuICAgIH1cblxuICAgIC8vIE9yIGxvYWQgZGVmYXVsdCB2YWx1ZSwgZnJvbSB0aGUgZW52aXJvbm1lbnRcbiAgICBpZiAoIWRhdGEpIHtcbiAgICAgIGNvbnNvbGUuZGVidWcoJ1tjb25maWddIE5vIGNvbmZpZ3VyYXRpb24gZm91bmQuIFVzaW5nIGVudmlyb25tZW50Li4uJyk7XG4gICAgICBkYXRhID0gQ29uZmlndXJhdGlvbi5mcm9tT2JqZWN0KHRoaXMuZW52aXJvbm1lbnQgYXMgYW55KTtcbiAgICB9XG5cbiAgICByZXR1cm4gZGF0YTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgc3RvcmVMb2NhbGx5KGRhdGE/OiBDb25maWd1cmF0aW9uKSB7XG4gICAgLy8gTm90aGluZyB0byBzdG9yZSA6IHJlc2V0XG4gICAgaWYgKCFkYXRhKSB7XG4gICAgICBhd2FpdCB0aGlzLnN0b3JhZ2UucmVtb3ZlKENPTkZJR1VSQVRJT05fU1RPUkFHRV9LRVkpO1xuICAgIH1cbiAgICAvLyBDb25maWcgZXhpc3RzOiBzdG9yZSBpdCBpbiB0aGUgbG9jYWwgc3RvcmFnZVxuICAgIGVsc2Uge1xuICAgICAgbGV0IG5vdyA9IHRoaXMuX2RlYnVnICYmIERhdGUubm93KCk7XG5cbiAgICAgIC8vIENvbnZlcnQgaW1hZ2VzLCBmb3Igb2ZmbGluZSB1c2FnZVxuICAgICAgaWYgKHRoaXMubmV0d29yay5vbmxpbmUgJiYgdGhpcy5wbGF0Zm9ybS5pcygnbW9iaWxlJykpIHtcbiAgICAgICAgY29uc3Qgam9icyA9IFtdO1xuXG4gICAgICAgIC8vIERvd25sb2FkIGxvZ29zXG4gICAgICAgIGlmIChkYXRhLmxhcmdlTG9nbyAmJiBkYXRhLmxhcmdlTG9nby5zdGFydHNXaXRoKCdodHRwJykpIHtcbiAgICAgICAgICBqb2JzLnB1c2godGhpcy5maWxlLmdldEltYWdlKGRhdGEubGFyZ2VMb2dvKVxuICAgICAgICAgICAgLnRoZW4oaW1nVXJsID0+IGRhdGEubGFyZ2VMb2dvID0gaW1nVXJsKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRhdGEuc21hbGxMb2dvICYmIGRhdGEuc21hbGxMb2dvLnN0YXJ0c1dpdGgoJ2h0dHAnKSkge1xuICAgICAgICAgIGpvYnMucHVzaCh0aGlzLmZpbGUuZ2V0SW1hZ2UoZGF0YS5zbWFsbExvZ28pXG4gICAgICAgICAgICAudGhlbihpbWdVcmwgPT4gZGF0YS5zbWFsbExvZ28gPSBpbWdVcmwpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEJhY2tncm91bmQgaW1hZ2VzXG4gICAgICAgIGlmIChpc05vdEVtcHR5QXJyYXkoZGF0YS5iYWNrZ3JvdW5kSW1hZ2VzKSkge1xuICAgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7XG4gICAgICAgICAgICBtYXhXaWR0aDogdGhpcy5wbGF0Zm9ybS53aWR0aCgpLFxuICAgICAgICAgICAgbWF4SGVpZ2h0OiB0aGlzLnBsYXRmb3JtLmhlaWdodCgpXG4gICAgICAgICAgfTtcblxuICAgICAgICAgIC8vIENvbnZlcnQgdGhlIEZJUlNUIGltYWdlIGZvdW5kXG4gICAgICAgICAgLy8gV0FSTjogaXQncyBOT1QgbmVjZXNzYXJ5IHRvIGNvbnZlcnQgQUwgaW1hZ2UsIGJ1dCBvbmx5IG9uZSwgZm9yIHNtYWxsZXIgbWVtb3J5IGZvb3RwcmludFxuICAgICAgICAgIGNvbnN0IGluZGV4ID0gZGF0YS5iYWNrZ3JvdW5kSW1hZ2VzLmZpbmRJbmRleCgoaW1nKSA9PiBpbWcgJiYgaW1nLnN0YXJ0c1dpdGgoJ2h0dHAnKSk7XG4gICAgICAgICAgaWYgKGluZGV4ICE9PSAtMSkge1xuICAgICAgICAgICAgZGF0YS5iYWNrZ3JvdW5kSW1hZ2VzID0gZGF0YS5iYWNrZ3JvdW5kSW1hZ2VzLnNsaWNlKCk7IC8vIENvcHlcbiAgICAgICAgICAgIGpvYnMucHVzaChcbiAgICAgICAgICAgICAgdGhpcy5maWxlLmdldEltYWdlKGRhdGEuYmFja2dyb3VuZEltYWdlc1tpbmRleF0sIG9wdGlvbnMpXG4gICAgICAgICAgICAgICAgLnRoZW4oZGF0YVVybCA9PiBkYXRhLmJhY2tncm91bmRJbWFnZXNbaW5kZXhdID0gZGF0YVVybCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gUGFydG5lcnNcbiAgICAgICAgaWYgKGlzTm90RW1wdHlBcnJheShkYXRhLnBhcnRuZXJzKSkge1xuICAgICAgICAgIGRhdGEucGFydG5lcnMuZm9yRWFjaCgoZGVwLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgaWYgKGRlcCAmJiBkZXAubG9nbyAmJiBkZXAubG9nby5zdGFydHNXaXRoKCdodHRwJykpIHtcbiAgICAgICAgICAgICAgam9icy5wdXNoKHRoaXMuZmlsZS5nZXRJbWFnZShkZXAubG9nbywge1xuICAgICAgICAgICAgICAgIG1heEhlaWdodDogNTAvKnNlZSBob21lIHBhZ2UgQ1NTICovXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIC50aGVuKGltZyA9PiBkZXAubG9nbyA9IGltZylcbiAgICAgICAgICAgICAgLmNhdGNoKGVyciA9PiB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnIgJiYgZXJyLm1lc3NhZ2UgfHwgZXJyKTtcbiAgICAgICAgICAgICAgICBkZWxldGUgZGVwLmxvZ287XG4gICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChqb2JzLmxlbmd0aCkge1xuICAgICAgICAgIGlmICh0aGlzLl9kZWJ1ZykgY29uc29sZS5kZWJ1ZyhgW2NvbmZpZ10gRmV0Y2hpbmcgJHtqb2JzLmxlbmd0aH0gaW1hZ2VzLi4uYCk7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGF3YWl0IFByb21pc2UuYWxsKGpvYnMpO1xuICAgICAgICAgICAgaWYgKHRoaXMuX2RlYnVnKSBjb25zb2xlLmRlYnVnKGBbY29uZmlnXSBGZXRjaGluZyAke2pvYnMubGVuZ3RofSBpbWFnZXMgW09LXSBpbiAke0RhdGUubm93KCkgLSBub3d9bXNgKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihgW2NvbmZpZ10gRmFpbGVkIHRvIGZldGNoIGltYWdlKHMpOiAke2VyciAmJiBlcnIubWVzc2FnZSB8fCBlcnJ9YCwgZXJyKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gU2F2aW5nIGNvbmZpZyB0byBzdG9yYWdlXG4gICAgICB7XG4gICAgICAgIG5vdyA9IHRoaXMuX2RlYnVnICYmIERhdGUubm93KCk7XG4gICAgICAgIGlmICh0aGlzLl9kZWJ1ZykgY29uc29sZS5kZWJ1ZygnW2NvbmZpZ10gU2F2aW5nIGNvbmZpZyBpbnRvIGxvY2FsIHN0b3JhZ2UuLi4nKTtcbiAgICAgICAgYXdhaXQgdGhpcy5zdG9yYWdlLnNldChDT05GSUdVUkFUSU9OX1NUT1JBR0VfS0VZLCBkYXRhLmFzT2JqZWN0KCkpO1xuICAgICAgICBpZiAodGhpcy5fZGVidWcpIGNvbnNvbGUuZGVidWcoYFtjb25maWddIFNhdmluZyBjb25maWcgaW50byBsb2NhbCBzdG9yYWdlIFtPS10gaW4gJHtEYXRlLm5vdygpIC0gbm93fW1zYCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIHNob3dUb2FzdChvcHRzOiBTaG93VG9hc3RPcHRpb25zKSB7XG4gICAgYXdhaXQgVG9hc3RzLnNob3codGhpcy50b2FzdENvbnRyb2xsZXIsIHRoaXMudHJhbnNsYXRlLCBvcHRzKTtcbiAgfVxufVxuIl19
@@ -104,4 +104,16 @@ FormGetArrayPipe.decorators = [
104
104
  },] },
105
105
  { type: Injectable, args: [{ providedIn: 'root' },] }
106
106
  ];
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5waXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL3BpcGVzL2Zvcm0ucGlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGlCQUFpQixFQUFFLFVBQVUsRUFBYSxJQUFJLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBRTVGLE9BQU8sRUFBQyxtQkFBbUIsRUFBNkIsTUFBTSx1Q0FBdUMsQ0FBQztBQUV0RyxPQUFPLEVBQUMsTUFBTSxFQUFvQixNQUFNLGNBQWMsQ0FBQzs7QUFNdkQsTUFBTSxPQUFPLHNCQUFzQjtJQVFqQyxZQUNVLE9BQTRCLEVBQzVCLElBQXVCO1FBRHZCLFlBQU8sR0FBUCxPQUFPLENBQXFCO1FBQzVCLFNBQUksR0FBSixJQUFJLENBQW1CO1FBUmpDLFVBQUssR0FBVyxFQUFFLENBQUM7UUFFWCxjQUFTLEdBQXFCLElBQUksQ0FBQztRQUNuQyxpQkFBWSxHQUFzQyxJQUFJLENBQUM7SUFPL0QsQ0FBQztJQUVELFNBQVMsQ0FBQyxJQUFlLEVBQUUsSUFBaUM7UUFDMUQsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNULElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNoQixPQUFPLEVBQUUsQ0FBQztTQUNYO1FBRUQsMkVBQTJFO1FBQzNFLElBQUksSUFBSSxLQUFLLElBQUksQ0FBQyxTQUFTLElBQUksTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUU7WUFDOUQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQ25CO1FBRUQsc0NBQXNDO1FBQ3RDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBRXRCLHdDQUF3QztRQUN4QyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUV6QixnQkFBZ0I7UUFDaEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFOUIsdURBQXVEO1FBQ3ZELElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUVoQiwwRUFBMEU7UUFDMUUsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtZQUM3QixJQUFJLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtnQkFDakUsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1lBQ3hDLENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFFRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQUVPLFlBQVksQ0FBQyxJQUFlLEVBQUUsSUFBaUMsRUFBRSxNQUFZO1FBQ25GLElBQUksTUFBTSxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ3hDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDMUQsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUMxQjthQUNJLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxTQUFTLEVBQUU7WUFDakMsSUFBSSxDQUFDLEtBQUssR0FBRyxTQUFTLENBQUM7WUFDdkIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUMxQjtJQUNILENBQUM7SUFFRDs7T0FFRztJQUNLLFFBQVE7UUFDZCxJQUFJLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixLQUFLLFdBQVcsRUFBRTtZQUNuRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDdkMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLFNBQVMsQ0FBQztTQUN0QztJQUNILENBQUM7OztZQTFFRixJQUFJLFNBQUM7Z0JBQ0osSUFBSSxFQUFFLG9CQUFvQjtnQkFDMUIsSUFBSSxFQUFFLEtBQUs7YUFDWjs7O1lBUE8sbUJBQW1CO1lBRm5CLGlCQUFpQjs7QUF1RnpCLE1BQU0sT0FBTyxXQUFXO0lBRXRCLFNBQVMsQ0FBQyxJQUFxQixFQUFFLElBQXFDO1FBQ3BFLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QixDQUFDOzs7O1lBUkYsSUFBSSxTQUFDO2dCQUNKLElBQUksRUFBRSxTQUFTO2FBQ2hCO1lBQ0EsVUFBVSxTQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQzs7QUFZaEMsTUFBTSxPQUFPLGtCQUFrQjtJQUU3QixTQUFTLENBQUMsSUFBcUIsRUFBRSxJQUFxQztRQUNwRSxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFnQixDQUFDO0lBQ3ZDLENBQUM7Ozs7WUFSRixJQUFJLFNBQUM7Z0JBQ0osSUFBSSxFQUFFLGdCQUFnQjthQUN2QjtZQUNBLFVBQVUsU0FBQyxFQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUM7O0FBWWhDLE1BQU0sT0FBTyxnQkFBZ0I7SUFFM0IsU0FBUyxDQUFDLElBQXFCLEVBQUUsSUFBcUM7UUFDcEUsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBYyxDQUFDO0lBQ3JDLENBQUM7Ozs7WUFSRixJQUFJLFNBQUM7Z0JBQ0osSUFBSSxFQUFFLGNBQWM7YUFDckI7WUFDQSxVQUFVLFNBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3RvclJlZiwgSW5qZWN0YWJsZSwgT25EZXN0cm95LCBQaXBlLCBQaXBlVHJhbnNmb3JtfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QWJzdHJhY3RDb250cm9sLCBGb3JtQXJyYXksIEZvcm1Db250cm9sLCBGb3JtR3JvdXB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7Rm9ybUVycm9yVHJhbnNsYXRvciwgRm9ybUVycm9yVHJhbnNsYXRvck9wdGlvbnN9IGZyb20gJy4uL3ZhbGlkYXRvci9mb3JtLWVycm9yLWFkYXB0ZXIuY2xhc3MnO1xuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtlcXVhbHMsIGdldFByb3BlcnR5QnlQYXRofSBmcm9tICcuLi9mdW5jdGlvbnMnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICd0cmFuc2xhdGVGb3JtRXJyb3InLFxuICBwdXJlOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBGb3JtRXJyb3JUcmFuc2xhdGVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSwgT25EZXN0cm95IHtcblxuICB2YWx1ZTogc3RyaW5nID0gJyc7XG5cbiAgcHJpdmF0ZSBfbGFzdEZvcm06IEZvcm1Hcm91cCB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIF9sYXN0T3B0aW9uczogRm9ybUVycm9yVHJhbnNsYXRvck9wdGlvbnMgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfb25Gb3JtU3RhdHVzQ2hhbmdlOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhZGFwdGVyOiBGb3JtRXJyb3JUcmFuc2xhdG9yLFxuICAgIHByaXZhdGUgX3JlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7XG4gIH1cblxuICB0cmFuc2Zvcm0oZm9ybTogRm9ybUdyb3VwLCBvcHRzPzogRm9ybUVycm9yVHJhbnNsYXRvck9wdGlvbnMpOiBzdHJpbmcge1xuICAgIGlmICghZm9ybSkge1xuICAgICAgdGhpcy5fZGlzcG9zZSgpO1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIC8vIGlmIHdlIGFzayBhbm90aGVyIHRpbWUgZm9yIHRoZSBzYW1lIGZvcm0gYW5kIG9wdHMsIHJldHVybiB0aGUgbGFzdCB2YWx1ZVxuICAgIGlmIChmb3JtID09PSB0aGlzLl9sYXN0Rm9ybSAmJiBlcXVhbHMob3B0cywgdGhpcy5fbGFzdE9wdGlvbnMpKSB7XG4gICAgICByZXR1cm4gdGhpcy52YWx1ZTtcbiAgICB9XG5cbiAgICAvLyBzdG9yZSB0aGUgcXVlcnksIGluIGNhc2UgaXQgY2hhbmdlc1xuICAgIHRoaXMuX2xhc3RGb3JtID0gZm9ybTtcblxuICAgIC8vIHN0b3JlIHRoZSBwYXJhbXMsIGluIGNhc2UgdGhleSBjaGFuZ2VcbiAgICB0aGlzLl9sYXN0T3B0aW9ucyA9IG9wdHM7XG5cbiAgICAvLyBzZXQgdGhlIHZhbHVlXG4gICAgdGhpcy5fdXBkYXRlVmFsdWUoZm9ybSwgb3B0cyk7XG5cbiAgICAvLyBpZiB0aGVyZSBpcyBhIHN1YnNjcmlwdGlvbiB0byBvbkxhbmdDaGFuZ2UsIGNsZWFuIGl0XG4gICAgdGhpcy5fZGlzcG9zZSgpO1xuXG4gICAgLy8gc3Vic2NyaWJlIHRvIG9uVHJhbnNsYXRpb25DaGFuZ2UgZXZlbnQsIGluIGNhc2UgdGhlIHRyYW5zbGF0aW9ucyBjaGFuZ2VcbiAgICBpZiAoIXRoaXMuX29uRm9ybVN0YXR1c0NoYW5nZSkge1xuICAgICAgdGhpcy5fb25Gb3JtU3RhdHVzQ2hhbmdlID0gZm9ybS5zdGF0dXNDaGFuZ2VzLnN1YnNjcmliZSgoc3RhdHVzKSA9PiB7XG4gICAgICAgIHRoaXMuX3VwZGF0ZVZhbHVlKGZvcm0sIG9wdHMsIHN0YXR1cyk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy52YWx1ZTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2Rpc3Bvc2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZVZhbHVlKGZvcm06IEZvcm1Hcm91cCwgb3B0cz86IEZvcm1FcnJvclRyYW5zbGF0b3JPcHRpb25zLCBzdGF0dXM/OiBhbnkpIHtcbiAgICBpZiAoc3RhdHVzID09PSAnSU5WQUxJRCcgfHwgZm9ybS5pbnZhbGlkKSB7XG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy5hZGFwdGVyLnRyYW5zbGF0ZUZvcm1FcnJvcnMoZm9ybSwgb3B0cyk7XG4gICAgICB0aGlzLl9yZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICAgIGVsc2UgaWYgKHRoaXMudmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy52YWx1ZSA9IHVuZGVmaW5lZDtcbiAgICAgIHRoaXMuX3JlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2xlYW4gYW55IGV4aXN0aW5nIHN1YnNjcmlwdGlvbiB0byBjaGFuZ2UgZXZlbnRzXG4gICAqL1xuICBwcml2YXRlIF9kaXNwb3NlKCk6IHZvaWQge1xuICAgIGlmICh0eXBlb2YgdGhpcy5fb25Gb3JtU3RhdHVzQ2hhbmdlICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgdGhpcy5fb25Gb3JtU3RhdHVzQ2hhbmdlLnVuc3Vic2NyaWJlKCk7XG4gICAgICB0aGlzLl9vbkZvcm1TdGF0dXNDaGFuZ2UgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG59XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2Zvcm1HZXQnXG59KVxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5leHBvcnQgY2xhc3MgRm9ybUdldFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcblxuICB0cmFuc2Zvcm0oZm9ybTogQWJzdHJhY3RDb250cm9sLCBwYXRoOiBBcnJheTxzdHJpbmcgfCBudW1iZXI+IHwgc3RyaW5nICk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgcmV0dXJuIGZvcm0uZ2V0KHBhdGgpO1xuICB9XG59XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2Zvcm1HZXRDb250cm9sJ1xufSlcbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxuZXhwb3J0IGNsYXNzIEZvcm1HZXRDb250cm9sUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuXG4gIHRyYW5zZm9ybShmb3JtOiBBYnN0cmFjdENvbnRyb2wsIHBhdGg6IEFycmF5PHN0cmluZyB8IG51bWJlcj4gfCBzdHJpbmcgKTogRm9ybUNvbnRyb2wge1xuICAgIHJldHVybiBmb3JtLmdldChwYXRoKSBhcyBGb3JtQ29udHJvbDtcbiAgfVxufVxuXG5AUGlwZSh7XG4gIG5hbWU6ICdmb3JtR2V0QXJyYXknXG59KVxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5leHBvcnQgY2xhc3MgRm9ybUdldEFycmF5UGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuXG4gIHRyYW5zZm9ybShmb3JtOiBBYnN0cmFjdENvbnRyb2wsIHBhdGg6IEFycmF5PHN0cmluZyB8IG51bWJlcj4gfCBzdHJpbmcgKTogRm9ybUFycmF5IHtcbiAgICByZXR1cm4gZm9ybS5nZXQocGF0aCkgYXMgRm9ybUFycmF5O1xuICB9XG59XG4iXX0=
107
+ export class FormGetGroupPipe {
108
+ transform(form, path) {
109
+ return form.get(path);
110
+ }
111
+ }
112
+ FormGetGroupPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function FormGetGroupPipe_Factory() { return new FormGetGroupPipe(); }, token: FormGetGroupPipe, providedIn: "root" });
113
+ FormGetGroupPipe.decorators = [
114
+ { type: Pipe, args: [{
115
+ name: 'formGetGroup'
116
+ },] },
117
+ { type: Injectable, args: [{ providedIn: 'root' },] }
118
+ ];
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5waXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL3BpcGVzL2Zvcm0ucGlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGlCQUFpQixFQUFFLFVBQVUsRUFBYSxJQUFJLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBRTVGLE9BQU8sRUFBQyxtQkFBbUIsRUFBNkIsTUFBTSx1Q0FBdUMsQ0FBQztBQUV0RyxPQUFPLEVBQUMsTUFBTSxFQUFvQixNQUFNLGNBQWMsQ0FBQzs7QUFNdkQsTUFBTSxPQUFPLHNCQUFzQjtJQVFqQyxZQUNVLE9BQTRCLEVBQzVCLElBQXVCO1FBRHZCLFlBQU8sR0FBUCxPQUFPLENBQXFCO1FBQzVCLFNBQUksR0FBSixJQUFJLENBQW1CO1FBUmpDLFVBQUssR0FBVyxFQUFFLENBQUM7UUFFWCxjQUFTLEdBQXFCLElBQUksQ0FBQztRQUNuQyxpQkFBWSxHQUFzQyxJQUFJLENBQUM7SUFPL0QsQ0FBQztJQUVELFNBQVMsQ0FBQyxJQUFlLEVBQUUsSUFBaUM7UUFDMUQsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNULElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNoQixPQUFPLEVBQUUsQ0FBQztTQUNYO1FBRUQsMkVBQTJFO1FBQzNFLElBQUksSUFBSSxLQUFLLElBQUksQ0FBQyxTQUFTLElBQUksTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUU7WUFDOUQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO1NBQ25CO1FBRUQsc0NBQXNDO1FBQ3RDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBRXRCLHdDQUF3QztRQUN4QyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUV6QixnQkFBZ0I7UUFDaEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7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RGV0ZWN0b3JSZWYsIEluamVjdGFibGUsIE9uRGVzdHJveSwgUGlwZSwgUGlwZVRyYW5zZm9ybX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Fic3RyYWN0Q29udHJvbCwgRm9ybUFycmF5LCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge0Zvcm1FcnJvclRyYW5zbGF0b3IsIEZvcm1FcnJvclRyYW5zbGF0b3JPcHRpb25zfSBmcm9tICcuLi92YWxpZGF0b3IvZm9ybS1lcnJvci1hZGFwdGVyLmNsYXNzJztcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7ZXF1YWxzLCBnZXRQcm9wZXJ0eUJ5UGF0aH0gZnJvbSAnLi4vZnVuY3Rpb25zJztcblxuQFBpcGUoe1xuICBuYW1lOiAndHJhbnNsYXRlRm9ybUVycm9yJyxcbiAgcHVyZTogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUVycm9yVHJhbnNsYXRlUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0sIE9uRGVzdHJveSB7XG5cbiAgdmFsdWU6IHN0cmluZyA9ICcnO1xuXG4gIHByaXZhdGUgX2xhc3RGb3JtOiBGb3JtR3JvdXAgfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfbGFzdE9wdGlvbnM6IEZvcm1FcnJvclRyYW5zbGF0b3JPcHRpb25zIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX29uRm9ybVN0YXR1c0NoYW5nZTogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYWRhcHRlcjogRm9ybUVycm9yVHJhbnNsYXRvcixcbiAgICBwcml2YXRlIF9yZWY6IENoYW5nZURldGVjdG9yUmVmXG4gICkge1xuICB9XG5cbiAgdHJhbnNmb3JtKGZvcm06IEZvcm1Hcm91cCwgb3B0cz86IEZvcm1FcnJvclRyYW5zbGF0b3JPcHRpb25zKTogc3RyaW5nIHtcbiAgICBpZiAoIWZvcm0pIHtcbiAgICAgIHRoaXMuX2Rpc3Bvc2UoKTtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG5cbiAgICAvLyBpZiB3ZSBhc2sgYW5vdGhlciB0aW1lIGZvciB0aGUgc2FtZSBmb3JtIGFuZCBvcHRzLCByZXR1cm4gdGhlIGxhc3QgdmFsdWVcbiAgICBpZiAoZm9ybSA9PT0gdGhpcy5fbGFzdEZvcm0gJiYgZXF1YWxzKG9wdHMsIHRoaXMuX2xhc3RPcHRpb25zKSkge1xuICAgICAgcmV0dXJuIHRoaXMudmFsdWU7XG4gICAgfVxuXG4gICAgLy8gc3RvcmUgdGhlIHF1ZXJ5LCBpbiBjYXNlIGl0IGNoYW5nZXNcbiAgICB0aGlzLl9sYXN0Rm9ybSA9IGZvcm07XG5cbiAgICAvLyBzdG9yZSB0aGUgcGFyYW1zLCBpbiBjYXNlIHRoZXkgY2hhbmdlXG4gICAgdGhpcy5fbGFzdE9wdGlvbnMgPSBvcHRzO1xuXG4gICAgLy8gc2V0IHRoZSB2YWx1ZVxuICAgIHRoaXMuX3VwZGF0ZVZhbHVlKGZvcm0sIG9wdHMpO1xuXG4gICAgLy8gaWYgdGhlcmUgaXMgYSBzdWJzY3JpcHRpb24gdG8gb25MYW5nQ2hhbmdlLCBjbGVhbiBpdFxuICAgIHRoaXMuX2Rpc3Bvc2UoKTtcblxuICAgIC8vIHN1YnNjcmliZSB0byBvblRyYW5zbGF0aW9uQ2hhbmdlIGV2ZW50LCBpbiBjYXNlIHRoZSB0cmFuc2xhdGlvbnMgY2hhbmdlXG4gICAgaWYgKCF0aGlzLl9vbkZvcm1TdGF0dXNDaGFuZ2UpIHtcbiAgICAgIHRoaXMuX29uRm9ybVN0YXR1c0NoYW5nZSA9IGZvcm0uc3RhdHVzQ2hhbmdlcy5zdWJzY3JpYmUoKHN0YXR1cykgPT4ge1xuICAgICAgICB0aGlzLl91cGRhdGVWYWx1ZShmb3JtLCBvcHRzLCBzdGF0dXMpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMudmFsdWU7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9kaXNwb3NlKCk7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVWYWx1ZShmb3JtOiBGb3JtR3JvdXAsIG9wdHM/OiBGb3JtRXJyb3JUcmFuc2xhdG9yT3B0aW9ucywgc3RhdHVzPzogYW55KSB7XG4gICAgaWYgKHN0YXR1cyA9PT0gJ0lOVkFMSUQnIHx8IGZvcm0uaW52YWxpZCkge1xuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuYWRhcHRlci50cmFuc2xhdGVGb3JtRXJyb3JzKGZvcm0sIG9wdHMpO1xuICAgICAgdGhpcy5fcmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgICBlbHNlIGlmICh0aGlzLnZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMudmFsdWUgPSB1bmRlZmluZWQ7XG4gICAgICB0aGlzLl9yZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENsZWFuIGFueSBleGlzdGluZyBzdWJzY3JpcHRpb24gdG8gY2hhbmdlIGV2ZW50c1xuICAgKi9cbiAgcHJpdmF0ZSBfZGlzcG9zZSgpOiB2b2lkIHtcbiAgICBpZiAodHlwZW9mIHRoaXMuX29uRm9ybVN0YXR1c0NoYW5nZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHRoaXMuX29uRm9ybVN0YXR1c0NoYW5nZS51bnN1YnNjcmliZSgpO1xuICAgICAgdGhpcy5fb25Gb3JtU3RhdHVzQ2hhbmdlID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxufVxuXG5AUGlwZSh7XG4gIG5hbWU6ICdmb3JtR2V0J1xufSlcbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxuZXhwb3J0IGNsYXNzIEZvcm1HZXRQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG5cbiAgdHJhbnNmb3JtKGZvcm06IEFic3RyYWN0Q29udHJvbCwgcGF0aDogQXJyYXk8c3RyaW5nIHwgbnVtYmVyPiB8IHN0cmluZyApOiBBYnN0cmFjdENvbnRyb2wge1xuICAgIHJldHVybiBmb3JtLmdldChwYXRoKTtcbiAgfVxufVxuXG5AUGlwZSh7XG4gIG5hbWU6ICdmb3JtR2V0Q29udHJvbCdcbn0pXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogJ3Jvb3QnfSlcbmV4cG9ydCBjbGFzcyBGb3JtR2V0Q29udHJvbFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcblxuICB0cmFuc2Zvcm0oZm9ybTogQWJzdHJhY3RDb250cm9sLCBwYXRoOiBBcnJheTxzdHJpbmcgfCBudW1iZXI+IHwgc3RyaW5nICk6IEZvcm1Db250cm9sIHtcbiAgICByZXR1cm4gZm9ybS5nZXQocGF0aCkgYXMgRm9ybUNvbnRyb2w7XG4gIH1cbn1cblxuQFBpcGUoe1xuICBuYW1lOiAnZm9ybUdldEFycmF5J1xufSlcbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxuZXhwb3J0IGNsYXNzIEZvcm1HZXRBcnJheVBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcblxuICB0cmFuc2Zvcm0oZm9ybTogQWJzdHJhY3RDb250cm9sLCBwYXRoOiBBcnJheTxzdHJpbmcgfCBudW1iZXI+IHwgc3RyaW5nICk6IEZvcm1BcnJheSB7XG4gICAgcmV0dXJuIGZvcm0uZ2V0KHBhdGgpIGFzIEZvcm1BcnJheTtcbiAgfVxufVxuXG5AUGlwZSh7XG4gIG5hbWU6ICdmb3JtR2V0R3JvdXAnXG59KVxuQEluamVjdGFibGUoe3Byb3ZpZGVkSW46ICdyb290J30pXG5leHBvcnQgY2xhc3MgRm9ybUdldEdyb3VwUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuXG4gIHRyYW5zZm9ybShmb3JtOiBBYnN0cmFjdENvbnRyb2wsIHBhdGg6IEFycmF5PHN0cmluZyB8IG51bWJlcj4gfCBzdHJpbmcgKTogRm9ybUdyb3VwIHtcbiAgICByZXR1cm4gZm9ybS5nZXQocGF0aCkgYXMgRm9ybUdyb3VwO1xuICB9XG59XG4iXX0=
@@ -17,7 +17,7 @@ import { IsNilOrBlankPipe, IsNotNilOrBlankPipe, StrIncludesPipe, StrLengthPipe,
17
17
  import { TranslatablePipe, TranslateContextPipe } from './translate-context.pipe';
18
18
  import { PropertyGetPipe } from './properties.pipe';
19
19
  import { NgInitDirective } from './ng-init.pipe';
20
- import { FormGetPipe, FormErrorTranslatePipe, FormGetControlPipe, FormGetArrayPipe } from './form.pipes';
20
+ import { FormGetPipe, FormErrorTranslatePipe, FormGetControlPipe, FormGetArrayPipe, FormGetGroupPipe } from './form.pipes';
21
21
  export class SharedPipesModule {
22
22
  }
23
23
  SharedPipesModule.decorators = [
@@ -63,7 +63,8 @@ SharedPipesModule.decorators = [
63
63
  FormErrorTranslatePipe,
64
64
  FormGetPipe,
65
65
  FormGetControlPipe,
66
- FormGetArrayPipe
66
+ FormGetArrayPipe,
67
+ FormGetGroupPipe
67
68
  ],
68
69
  exports: [
69
70
  PropertyGetPipe,
@@ -101,8 +102,9 @@ SharedPipesModule.decorators = [
101
102
  FormErrorTranslatePipe,
102
103
  FormGetPipe,
103
104
  FormGetControlPipe,
104
- FormGetArrayPipe
105
+ FormGetArrayPipe,
106
+ FormGetGroupPipe
105
107
  ]
106
108
  },] }
107
109
  ];
108
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvcGlwZXMvcGlwZXMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQy9ELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDL0MsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQzlDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsUUFBUSxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDNUQsT0FBTyxFQUFDLGVBQWUsRUFBRSxjQUFjLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDckosT0FBTyxFQUFDLFVBQVUsRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFDLE1BQU0sYUFBYSxDQUFDO0FBQ25FLE9BQU8sRUFBQyxnQkFBZ0IsRUFBRSxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ25ILE9BQU8sRUFBQyxnQkFBZ0IsRUFBRSxvQkFBb0IsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ2hGLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0MsT0FBTyxFQUFDLFdBQVcsRUFBRSxzQkFBc0IsRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQXFGdkcsTUFBTSxPQUFPLGlCQUFpQjs7O1lBbkY3QixRQUFRLFNBQUM7Z0JBQ1IsT0FBTyxFQUFFO29CQUNQLFlBQVk7b0JBQ1osV0FBVztvQkFDWCxlQUFlO2lCQUNoQjtnQkFDRCxZQUFZLEVBQUU7b0JBQ1osZUFBZTtvQkFDZixjQUFjO29CQUNkLG9CQUFvQjtvQkFDcEIsWUFBWTtvQkFDWixlQUFlO29CQUNmLGlCQUFpQjtvQkFDakIsa0JBQWtCO29CQUNsQixtQkFBbUI7b0JBQ25CLGFBQWE7b0JBQ2IsZ0JBQWdCO29CQUNoQixZQUFZO29CQUNaLFdBQVc7b0JBQ1gsT0FBTztvQkFDUCxRQUFRO29CQUNSLGlCQUFpQjtvQkFDakIsY0FBYztvQkFDZCxlQUFlO29CQUNmLGNBQWM7b0JBQ2QsY0FBYztvQkFDZCxpQkFBaUI7b0JBQ2pCLGVBQWU7b0JBQ2YsVUFBVTtvQkFDVixXQUFXO29CQUNYLGFBQWE7b0JBQ2IsZ0JBQWdCO29CQUNoQixtQkFBbUI7b0JBQ25CLFlBQVk7b0JBQ1osYUFBYTtvQkFDYixlQUFlO29CQUNmLG9CQUFvQjtvQkFDcEIsZ0JBQWdCO29CQUNoQixlQUFlO29CQUNmLHNCQUFzQjtvQkFDdEIsV0FBVztvQkFDWCxrQkFBa0I7b0JBQ2xCLGdCQUFnQjtpQkFDakI7Z0JBQ0QsT0FBTyxFQUFFO29CQUNQLGVBQWU7b0JBQ2YsY0FBYztvQkFDZCxlQUFlO29CQUNmLG9CQUFvQjtvQkFDcEIsWUFBWTtvQkFDWixpQkFBaUI7b0JBQ2pCLGtCQUFrQjtvQkFDbEIsbUJBQW1CO29CQUNuQixhQUFhO29CQUNiLGdCQUFnQjtvQkFDaEIsWUFBWTtvQkFDWixXQUFXO29CQUNYLE9BQU87b0JBQ1AsUUFBUTtvQkFDUixpQkFBaUI7b0JBQ2pCLGNBQWM7b0JBQ2QsZUFBZTtvQkFDZixjQUFjO29CQUNkLGNBQWM7b0JBQ2QsVUFBVTtvQkFDVixXQUFXO29CQUNYLGFBQWE7b0JBQ2IsZ0JBQWdCO29CQUNoQixtQkFBbUI7b0JBQ25CLFlBQVk7b0JBQ1osYUFBYTtvQkFDYixlQUFlO29CQUNmLGlCQUFpQjtvQkFDakIsZUFBZTtvQkFDZixvQkFBb0I7b0JBQ3BCLGdCQUFnQjtvQkFDaEIsZUFBZTtvQkFDZixzQkFBc0I7b0JBQ3RCLFdBQVc7b0JBQ1gsa0JBQWtCO29CQUNsQixnQkFBZ0I7aUJBQ2pCO2FBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtUcmFuc2xhdGVNb2R1bGV9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtJb25pY01vZHVsZX0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHtEYXRlRm9ybWF0UGlwZX0gZnJvbSAnLi9kYXRlLWZvcm1hdC5waXBlJztcbmltcG9ydCB7RGF0ZURpZmZEdXJhdGlvblBpcGV9IGZyb20gJy4vZGF0ZS1kaWZmLWR1cmF0aW9uLnBpcGUnO1xuaW1wb3J0IHtEYXRlRnJvbU5vd1BpcGV9IGZyb20gJy4vZGF0ZS1mcm9tLW5vdy5waXBlJztcbmltcG9ydCB7TGF0aXR1ZGVGb3JtYXRQaXBlLCBMYXRMb25nRm9ybWF0UGlwZSwgTG9uZ2l0dWRlRm9ybWF0UGlwZX0gZnJvbSAnLi9sYXRsb25nLWZvcm1hdC5waXBlJztcbmltcG9ydCB7TnVtYmVyRm9ybWF0UGlwZX0gZnJvbSAnLi9udW1iZXItZm9ybWF0LnBpcGUnO1xuaW1wb3J0IHtIaWdobGlnaHRQaXBlfSBmcm9tICcuL2hpZ2hsaWdodC5waXBlJztcbmltcG9ydCB7RmlsZVNpemVQaXBlfSBmcm9tICcuL2ZpbGUtc2l6ZS5waXBlJztcbmltcG9ydCB7RHVyYXRpb25QaXBlfSBmcm9tICcuL2R1cmF0aW9uLnBpcGUnO1xuaW1wb3J0IHtFdmVuUGlwZSwgTWF0aEFic1BpcGUsIE9kZFBpcGV9IGZyb20gJy4vbWF0aC5waXBlcyc7XG5pbXBvcnQge0FycmF5RmlsdGVyUGlwZSwgQXJyYXlGaXJzdFBpcGUsIEFycmF5SW5jbHVkZXNQaXBlLCBBcnJheUxlbmd0aFBpcGUsIEFycmF5UGx1Y2tQaXBlLCBFbXB0eUFycmF5UGlwZSwgTm90RW1wdHlBcnJheVBpcGV9IGZyb20gJy4vYXJyYXlzLnBpcGUnO1xuaW1wb3J0IHtNYXBHZXRQaXBlLCBNYXBLZXlzUGlwZSwgTWFwVmFsdWVzUGlwZX0gZnJvbSAnLi9tYXBzLnBpcGUnO1xuaW1wb3J0IHtJc05pbE9yQmxhbmtQaXBlLCBJc05vdE5pbE9yQmxhbmtQaXBlLCBTdHJJbmNsdWRlc1BpcGUsIFN0ckxlbmd0aFBpcGUsIFRvU3RyaW5nUGlwZX0gZnJvbSAnLi9zdHJpbmcucGlwZXMnO1xuaW1wb3J0IHtUcmFuc2xhdGFibGVQaXBlLCBUcmFuc2xhdGVDb250ZXh0UGlwZX0gZnJvbSAnLi90cmFuc2xhdGUtY29udGV4dC5waXBlJztcbmltcG9ydCB7UHJvcGVydHlHZXRQaXBlfSBmcm9tICcuL3Byb3BlcnRpZXMucGlwZSc7XG5pbXBvcnQge05nSW5pdERpcmVjdGl2ZX0gZnJvbSAnLi9uZy1pbml0LnBpcGUnO1xuaW1wb3J0IHtGb3JtR2V0UGlwZSwgRm9ybUVycm9yVHJhbnNsYXRlUGlwZSwgRm9ybUdldENvbnRyb2xQaXBlLCBGb3JtR2V0QXJyYXlQaXBlfSBmcm9tICcuL2Zvcm0ucGlwZXMnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIElvbmljTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZVxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBQcm9wZXJ0eUdldFBpcGUsXG4gICAgRGF0ZUZvcm1hdFBpcGUsXG4gICAgRGF0ZURpZmZEdXJhdGlvblBpcGUsXG4gICAgRHVyYXRpb25QaXBlLFxuICAgIERhdGVGcm9tTm93UGlwZSxcbiAgICBMYXRMb25nRm9ybWF0UGlwZSxcbiAgICBMYXRpdHVkZUZvcm1hdFBpcGUsXG4gICAgTG9uZ2l0dWRlRm9ybWF0UGlwZSxcbiAgICBIaWdobGlnaHRQaXBlLFxuICAgIE51bWJlckZvcm1hdFBpcGUsXG4gICAgRmlsZVNpemVQaXBlLFxuICAgIE1hdGhBYnNQaXBlLFxuICAgIE9kZFBpcGUsXG4gICAgRXZlblBpcGUsXG4gICAgTm90RW1wdHlBcnJheVBpcGUsXG4gICAgRW1wdHlBcnJheVBpcGUsXG4gICAgQXJyYXlMZW5ndGhQaXBlLFxuICAgIEFycmF5Rmlyc3RQaXBlLFxuICAgIEFycmF5UGx1Y2tQaXBlLFxuICAgIEFycmF5SW5jbHVkZXNQaXBlLFxuICAgIEFycmF5RmlsdGVyUGlwZSxcbiAgICBNYXBHZXRQaXBlLFxuICAgIE1hcEtleXNQaXBlLFxuICAgIE1hcFZhbHVlc1BpcGUsXG4gICAgSXNOaWxPckJsYW5rUGlwZSxcbiAgICBJc05vdE5pbE9yQmxhbmtQaXBlLFxuICAgIFRvU3RyaW5nUGlwZSxcbiAgICBTdHJMZW5ndGhQaXBlLFxuICAgIFN0ckluY2x1ZGVzUGlwZSxcbiAgICBUcmFuc2xhdGVDb250ZXh0UGlwZSxcbiAgICBUcmFuc2xhdGFibGVQaXBlLFxuICAgIE5nSW5pdERpcmVjdGl2ZSxcbiAgICBGb3JtRXJyb3JUcmFuc2xhdGVQaXBlLFxuICAgIEZvcm1HZXRQaXBlLFxuICAgIEZvcm1HZXRDb250cm9sUGlwZSxcbiAgICBGb3JtR2V0QXJyYXlQaXBlXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBQcm9wZXJ0eUdldFBpcGUsXG4gICAgRGF0ZUZvcm1hdFBpcGUsXG4gICAgRGF0ZUZyb21Ob3dQaXBlLFxuICAgIERhdGVEaWZmRHVyYXRpb25QaXBlLFxuICAgIER1cmF0aW9uUGlwZSxcbiAgICBMYXRMb25nRm9ybWF0UGlwZSxcbiAgICBMYXRpdHVkZUZvcm1hdFBpcGUsXG4gICAgTG9uZ2l0dWRlRm9ybWF0UGlwZSxcbiAgICBIaWdobGlnaHRQaXBlLFxuICAgIE51bWJlckZvcm1hdFBpcGUsXG4gICAgRmlsZVNpemVQaXBlLFxuICAgIE1hdGhBYnNQaXBlLFxuICAgIE9kZFBpcGUsXG4gICAgRXZlblBpcGUsXG4gICAgTm90RW1wdHlBcnJheVBpcGUsXG4gICAgRW1wdHlBcnJheVBpcGUsXG4gICAgQXJyYXlMZW5ndGhQaXBlLFxuICAgIEFycmF5Rmlyc3RQaXBlLFxuICAgIEFycmF5UGx1Y2tQaXBlLFxuICAgIE1hcEdldFBpcGUsXG4gICAgTWFwS2V5c1BpcGUsXG4gICAgTWFwVmFsdWVzUGlwZSxcbiAgICBJc05pbE9yQmxhbmtQaXBlLFxuICAgIElzTm90TmlsT3JCbGFua1BpcGUsXG4gICAgVG9TdHJpbmdQaXBlLFxuICAgIFN0ckxlbmd0aFBpcGUsXG4gICAgU3RySW5jbHVkZXNQaXBlLFxuICAgIEFycmF5SW5jbHVkZXNQaXBlLFxuICAgIEFycmF5RmlsdGVyUGlwZSxcbiAgICBUcmFuc2xhdGVDb250ZXh0UGlwZSxcbiAgICBUcmFuc2xhdGFibGVQaXBlLFxuICAgIE5nSW5pdERpcmVjdGl2ZSxcbiAgICBGb3JtRXJyb3JUcmFuc2xhdGVQaXBlLFxuICAgIEZvcm1HZXRQaXBlLFxuICAgIEZvcm1HZXRDb250cm9sUGlwZSxcbiAgICBGb3JtR2V0QXJyYXlQaXBlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgU2hhcmVkUGlwZXNNb2R1bGUge1xuXG59XG4iXX0=
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvcGlwZXMvcGlwZXMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQ2xELE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLDJCQUEyQixDQUFDO0FBQy9ELE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRCxPQUFPLEVBQUMsa0JBQWtCLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNqRyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDL0MsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQzlDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsUUFBUSxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDNUQsT0FBTyxFQUFDLGVBQWUsRUFBRSxjQUFjLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDckosT0FBTyxFQUFDLFVBQVUsRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFDLE1BQU0sYUFBYSxDQUFDO0FBQ25FLE9BQU8sRUFBQyxnQkFBZ0IsRUFBRSxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ25ILE9BQU8sRUFBQyxnQkFBZ0IsRUFBRSxvQkFBb0IsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ2hGLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUNsRCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDL0MsT0FBTyxFQUFDLFdBQVcsRUFBRSxzQkFBc0IsRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBQyxNQUFNLGNBQWMsQ0FBQztBQXdGekgsTUFBTSxPQUFPLGlCQUFpQjs7O1lBckY3QixRQUFRLFNBQUM7Z0JBQ1IsT0FBTyxFQUFFO29CQUNQLFlBQVk7b0JBQ1osV0FBVztvQkFDWCxlQUFlO2lCQUNoQjtnQkFDRCxZQUFZLEVBQUU7b0JBQ1osZUFBZTtvQkFDZixjQUFjO29CQUNkLG9CQUFvQjtvQkFDcEIsWUFBWTtvQkFDWixlQUFlO29CQUNmLGlCQUFpQjtvQkFDakIsa0JBQWtCO29CQUNsQixtQkFBbUI7b0JBQ25CLGFBQWE7b0JBQ2IsZ0JBQWdCO29CQUNoQixZQUFZO29CQUNaLFdBQVc7b0JBQ1gsT0FBTztvQkFDUCxRQUFRO29CQUNSLGlCQUFpQjtvQkFDakIsY0FBYztvQkFDZCxlQUFlO29CQUNmLGNBQWM7b0JBQ2QsY0FBYztvQkFDZCxpQkFBaUI7b0JBQ2pCLGVBQWU7b0JBQ2YsVUFBVTtvQkFDVixXQUFXO29CQUNYLGFBQWE7b0JBQ2IsZ0JBQWdCO29CQUNoQixtQkFBbUI7b0JBQ25CLFlBQVk7b0JBQ1osYUFBYTtvQkFDYixlQUFlO29CQUNmLG9CQUFvQjtvQkFDcEIsZ0JBQWdCO29CQUNoQixlQUFlO29CQUNmLHNCQUFzQjtvQkFDdEIsV0FBVztvQkFDWCxrQkFBa0I7b0JBQ2xCLGdCQUFnQjtvQkFDaEIsZ0JBQWdCO2lCQUNqQjtnQkFDRCxPQUFPLEVBQUU7b0JBQ1AsZUFBZTtvQkFDZixjQUFjO29CQUNkLGVBQWU7b0JBQ2Ysb0JBQW9CO29CQUNwQixZQUFZO29CQUNaLGlCQUFpQjtvQkFDakIsa0JBQWtCO29CQUNsQixtQkFBbUI7b0JBQ25CLGFBQWE7b0JBQ2IsZ0JBQWdCO29CQUNoQixZQUFZO29CQUNaLFdBQVc7b0JBQ1gsT0FBTztvQkFDUCxRQUFRO29CQUNSLGlCQUFpQjtvQkFDakIsY0FBYztvQkFDZCxlQUFlO29CQUNmLGNBQWM7b0JBQ2QsY0FBYztvQkFDZCxVQUFVO29CQUNWLFdBQVc7b0JBQ1gsYUFBYTtvQkFDYixnQkFBZ0I7b0JBQ2hCLG1CQUFtQjtvQkFDbkIsWUFBWTtvQkFDWixhQUFhO29CQUNiLGVBQWU7b0JBQ2YsaUJBQWlCO29CQUNqQixlQUFlO29CQUNmLG9CQUFvQjtvQkFDcEIsZ0JBQWdCO29CQUNoQixlQUFlO29CQUNmLHNCQUFzQjtvQkFDdEIsV0FBVztvQkFDWCxrQkFBa0I7b0JBQ2xCLGdCQUFnQjtvQkFDaEIsZ0JBQWdCO2lCQUNqQjthQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0NvbW1vbk1vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7VHJhbnNsYXRlTW9kdWxlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7SW9uaWNNb2R1bGV9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7RGF0ZUZvcm1hdFBpcGV9IGZyb20gJy4vZGF0ZS1mb3JtYXQucGlwZSc7XG5pbXBvcnQge0RhdGVEaWZmRHVyYXRpb25QaXBlfSBmcm9tICcuL2RhdGUtZGlmZi1kdXJhdGlvbi5waXBlJztcbmltcG9ydCB7RGF0ZUZyb21Ob3dQaXBlfSBmcm9tICcuL2RhdGUtZnJvbS1ub3cucGlwZSc7XG5pbXBvcnQge0xhdGl0dWRlRm9ybWF0UGlwZSwgTGF0TG9uZ0Zvcm1hdFBpcGUsIExvbmdpdHVkZUZvcm1hdFBpcGV9IGZyb20gJy4vbGF0bG9uZy1mb3JtYXQucGlwZSc7XG5pbXBvcnQge051bWJlckZvcm1hdFBpcGV9IGZyb20gJy4vbnVtYmVyLWZvcm1hdC5waXBlJztcbmltcG9ydCB7SGlnaGxpZ2h0UGlwZX0gZnJvbSAnLi9oaWdobGlnaHQucGlwZSc7XG5pbXBvcnQge0ZpbGVTaXplUGlwZX0gZnJvbSAnLi9maWxlLXNpemUucGlwZSc7XG5pbXBvcnQge0R1cmF0aW9uUGlwZX0gZnJvbSAnLi9kdXJhdGlvbi5waXBlJztcbmltcG9ydCB7RXZlblBpcGUsIE1hdGhBYnNQaXBlLCBPZGRQaXBlfSBmcm9tICcuL21hdGgucGlwZXMnO1xuaW1wb3J0IHtBcnJheUZpbHRlclBpcGUsIEFycmF5Rmlyc3RQaXBlLCBBcnJheUluY2x1ZGVzUGlwZSwgQXJyYXlMZW5ndGhQaXBlLCBBcnJheVBsdWNrUGlwZSwgRW1wdHlBcnJheVBpcGUsIE5vdEVtcHR5QXJyYXlQaXBlfSBmcm9tICcuL2FycmF5cy5waXBlJztcbmltcG9ydCB7TWFwR2V0UGlwZSwgTWFwS2V5c1BpcGUsIE1hcFZhbHVlc1BpcGV9IGZyb20gJy4vbWFwcy5waXBlJztcbmltcG9ydCB7SXNOaWxPckJsYW5rUGlwZSwgSXNOb3ROaWxPckJsYW5rUGlwZSwgU3RySW5jbHVkZXNQaXBlLCBTdHJMZW5ndGhQaXBlLCBUb1N0cmluZ1BpcGV9IGZyb20gJy4vc3RyaW5nLnBpcGVzJztcbmltcG9ydCB7VHJhbnNsYXRhYmxlUGlwZSwgVHJhbnNsYXRlQ29udGV4dFBpcGV9IGZyb20gJy4vdHJhbnNsYXRlLWNvbnRleHQucGlwZSc7XG5pbXBvcnQge1Byb3BlcnR5R2V0UGlwZX0gZnJvbSAnLi9wcm9wZXJ0aWVzLnBpcGUnO1xuaW1wb3J0IHtOZ0luaXREaXJlY3RpdmV9IGZyb20gJy4vbmctaW5pdC5waXBlJztcbmltcG9ydCB7Rm9ybUdldFBpcGUsIEZvcm1FcnJvclRyYW5zbGF0ZVBpcGUsIEZvcm1HZXRDb250cm9sUGlwZSwgRm9ybUdldEFycmF5UGlwZSwgRm9ybUdldEdyb3VwUGlwZX0gZnJvbSAnLi9mb3JtLnBpcGVzJztcbmltcG9ydCB7Rm9ybUdyb3VwfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgSW9uaWNNb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIFByb3BlcnR5R2V0UGlwZSxcbiAgICBEYXRlRm9ybWF0UGlwZSxcbiAgICBEYXRlRGlmZkR1cmF0aW9uUGlwZSxcbiAgICBEdXJhdGlvblBpcGUsXG4gICAgRGF0ZUZyb21Ob3dQaXBlLFxuICAgIExhdExvbmdGb3JtYXRQaXBlLFxuICAgIExhdGl0dWRlRm9ybWF0UGlwZSxcbiAgICBMb25naXR1ZGVGb3JtYXRQaXBlLFxuICAgIEhpZ2hsaWdodFBpcGUsXG4gICAgTnVtYmVyRm9ybWF0UGlwZSxcbiAgICBGaWxlU2l6ZVBpcGUsXG4gICAgTWF0aEFic1BpcGUsXG4gICAgT2RkUGlwZSxcbiAgICBFdmVuUGlwZSxcbiAgICBOb3RFbXB0eUFycmF5UGlwZSxcbiAgICBFbXB0eUFycmF5UGlwZSxcbiAgICBBcnJheUxlbmd0aFBpcGUsXG4gICAgQXJyYXlGaXJzdFBpcGUsXG4gICAgQXJyYXlQbHVja1BpcGUsXG4gICAgQXJyYXlJbmNsdWRlc1BpcGUsXG4gICAgQXJyYXlGaWx0ZXJQaXBlLFxuICAgIE1hcEdldFBpcGUsXG4gICAgTWFwS2V5c1BpcGUsXG4gICAgTWFwVmFsdWVzUGlwZSxcbiAgICBJc05pbE9yQmxhbmtQaXBlLFxuICAgIElzTm90TmlsT3JCbGFua1BpcGUsXG4gICAgVG9TdHJpbmdQaXBlLFxuICAgIFN0ckxlbmd0aFBpcGUsXG4gICAgU3RySW5jbHVkZXNQaXBlLFxuICAgIFRyYW5zbGF0ZUNvbnRleHRQaXBlLFxuICAgIFRyYW5zbGF0YWJsZVBpcGUsXG4gICAgTmdJbml0RGlyZWN0aXZlLFxuICAgIEZvcm1FcnJvclRyYW5zbGF0ZVBpcGUsXG4gICAgRm9ybUdldFBpcGUsXG4gICAgRm9ybUdldENvbnRyb2xQaXBlLFxuICAgIEZvcm1HZXRBcnJheVBpcGUsXG4gICAgRm9ybUdldEdyb3VwUGlwZVxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgUHJvcGVydHlHZXRQaXBlLFxuICAgIERhdGVGb3JtYXRQaXBlLFxuICAgIERhdGVGcm9tTm93UGlwZSxcbiAgICBEYXRlRGlmZkR1cmF0aW9uUGlwZSxcbiAgICBEdXJhdGlvblBpcGUsXG4gICAgTGF0TG9uZ0Zvcm1hdFBpcGUsXG4gICAgTGF0aXR1ZGVGb3JtYXRQaXBlLFxuICAgIExvbmdpdHVkZUZvcm1hdFBpcGUsXG4gICAgSGlnaGxpZ2h0UGlwZSxcbiAgICBOdW1iZXJGb3JtYXRQaXBlLFxuICAgIEZpbGVTaXplUGlwZSxcbiAgICBNYXRoQWJzUGlwZSxcbiAgICBPZGRQaXBlLFxuICAgIEV2ZW5QaXBlLFxuICAgIE5vdEVtcHR5QXJyYXlQaXBlLFxuICAgIEVtcHR5QXJyYXlQaXBlLFxuICAgIEFycmF5TGVuZ3RoUGlwZSxcbiAgICBBcnJheUZpcnN0UGlwZSxcbiAgICBBcnJheVBsdWNrUGlwZSxcbiAgICBNYXBHZXRQaXBlLFxuICAgIE1hcEtleXNQaXBlLFxuICAgIE1hcFZhbHVlc1BpcGUsXG4gICAgSXNOaWxPckJsYW5rUGlwZSxcbiAgICBJc05vdE5pbE9yQmxhbmtQaXBlLFxuICAgIFRvU3RyaW5nUGlwZSxcbiAgICBTdHJMZW5ndGhQaXBlLFxuICAgIFN0ckluY2x1ZGVzUGlwZSxcbiAgICBBcnJheUluY2x1ZGVzUGlwZSxcbiAgICBBcnJheUZpbHRlclBpcGUsXG4gICAgVHJhbnNsYXRlQ29udGV4dFBpcGUsXG4gICAgVHJhbnNsYXRhYmxlUGlwZSxcbiAgICBOZ0luaXREaXJlY3RpdmUsXG4gICAgRm9ybUVycm9yVHJhbnNsYXRlUGlwZSxcbiAgICBGb3JtR2V0UGlwZSxcbiAgICBGb3JtR2V0Q29udHJvbFBpcGUsXG4gICAgRm9ybUdldEFycmF5UGlwZSxcbiAgICBGb3JtR2V0R3JvdXBQaXBlXG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgU2hhcmVkUGlwZXNNb2R1bGUge1xuXG59XG4iXX0=
@@ -1,6 +1,5 @@
1
1
  import { __awaiter } from "tslib";
2
2
  import { ChangeDetectorRef, Component, Input, ViewChild } from '@angular/core';
3
- import { HttpEventType } from '@angular/common/http';
4
3
  import { catchError, debounceTime, filter, first, map, switchMap, tap } from 'rxjs/operators';
5
4
  import { BehaviorSubject, forkJoin, of, Subject } from 'rxjs';
6
5
  import { TranslateService } from '@ngx-translate/core';
@@ -116,7 +115,7 @@ export class UploadFileComponent {
116
115
  });
117
116
  const jobs = files
118
117
  .map(f => f)
119
- .filter(file => isNil(file.progress) && !file.error) // Skip if already started or in error
118
+ .filter(file => file && isNil(file.progress) && !file.error) // Skip if already started or in error
120
119
  .map((file, i) => {
121
120
  // Wait if need
122
121
  if (isNotNil(this.maxParallelUpload)) {
@@ -134,12 +133,12 @@ export class UploadFileComponent {
134
133
  file.progress = 0;
135
134
  return of(file);
136
135
  })
137
- .map(file$ => file$.pipe(
136
+ .map(file$ => file$.pipe(filter(isNotNil),
138
137
  // Log
139
138
  tap(file => console.debug(`[upload-file] ${file.name}: uploading...`)),
140
139
  // Start uploading
141
140
  switchMap(file => this.uploadFn(file)
142
- .pipe(map((event) => {
141
+ .pipe(filter(isNotNil), map((event) => {
143
142
  // Progress event
144
143
  if (isProgressEvent(event)) {
145
144
  if (isNotNil(event.loaded) && event.loaded >= 0) {
@@ -149,10 +148,6 @@ export class UploadFileComponent {
149
148
  file.progress = -1; // Indeterminate progression
150
149
  }
151
150
  }
152
- // User event
153
- else if (event.type === HttpEventType.User) {
154
- file.progress = -1; // Indeterminate progression
155
- }
156
151
  // Response event
157
152
  else if (isResponseEvent(event)) {
158
153
  file.progress = 1;
@@ -204,4 +199,4 @@ UploadFileComponent.propDecorators = {
204
199
  deleteFn: [{ type: Input }],
205
200
  maxParallelUpload: [{ type: Input }]
206
201
  };
207
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLWZpbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvdXBsb2FkLWZpbGUvdXBsb2FkLWZpbGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekYsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RixPQUFPLEVBQUMsZUFBZSxFQUFFLFFBQVEsRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3hFLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBNkIsZUFBZSxFQUFFLGVBQWUsRUFBYSxNQUFNLHFCQUFxQixDQUFDO0FBQzdHLE9BQU8sRUFBQyxLQUFLLEVBQUUsUUFBUSxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBQzdDLE9BQU8sRUFBQyxPQUFPLEVBQWlCLE1BQU0sZ0JBQWdCLENBQUM7QUFPdkQsTUFBTSxPQUFPLG1CQUFtQjtJQXlCOUIsWUFBc0IsRUFBcUIsRUFBWSxTQUEyQjtRQUE1RCxPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQUFZLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBcEJ6RSxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ25CLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBSy9CLFVBQUssR0FBc0IsRUFBRSxDQUFDO0lBY3VELENBQUM7SUFadEYsSUFBSSxlQUFlO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxN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QUFJLENBQUMsQ0FBQztZQUNsQixDQUFDLENBQUMsRUFDRixHQUFHLENBQUMsR0FBRyxFQUFFO2dCQUNQLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDaEIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN6QixDQUFDLENBQUMsQ0FDSCxDQUNGLENBQ0osQ0FBQyxDQUFDO1lBRUgsc0JBQXNCO1lBQ3RCLE9BQU8sUUFBUSxDQUFDLElBQUksQ0FBQztpQkFDbEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO2lCQUNuQyxTQUFTLEVBQUUsQ0FBQztRQUNqQixDQUFDO0tBQUE7SUFFRCxRQUFRLENBQUMsSUFBcUI7UUFDNUIsT0FBTyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLG9CQUFvQixLQUFLLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM5RCxDQUFDOzs7WUFuTkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxpQkFBaUI7Z0JBQzNCLGt4REFBMkM7O2FBRTVDOzs7WUFiTyxpQkFBaUI7WUFJakIsZ0JBQWdCOzs7eUJBWXJCLFNBQVMsU0FBQyxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFOzRCQUUxQyxLQUFLO3lCQUNMLEtBQUs7NEJBQ0wsS0FBSzt1QkFDTCxLQUFLO3VCQUNMLEtBQUs7Z0NBQ0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSW5wdXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0h0dHBFdmVudFR5cGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7Y2F0Y2hFcnJvciwgZGVib3VuY2VUaW1lLCBmaWx0ZXIsIGZpcnN0LCBtYXAsIHN3aXRjaE1hcCwgdGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgZm9ya0pvaW4sIE9ic2VydmFibGUsIG9mLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge0ZpbGVEZWxldGVGbiwgRmlsZVVwbG9hZEZuLCBpc1Byb2dyZXNzRXZlbnQsIGlzUmVzcG9uc2VFdmVudCwgVXBsb2FkRmlsZX0gZnJvbSAnLi91cGxvYWQtZmlsZS5tb2RlbCc7XG5pbXBvcnQge2lzTmlsLCBpc05vdE5pbH0gZnJvbSAnLi4vZnVuY3Rpb25zJztcbmltcG9ydCB7d2FpdEZvciwgV2FpdEZvck9wdGlvbnN9IGZyb20gJy4uL29ic2VydmFibGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXVwbG9hZC1maWxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3VwbG9hZC1maWxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdXBsb2FkLWZpbGUuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgVXBsb2FkRmlsZUNvbXBvbmVudCB7XG5cbiAgQFZpZXdDaGlsZCgnZmlsZURyb3BSZWYnLCB7IHN0YXRpYzogZmFsc2UgfSkgZmlsZURyb3BFbDogRWxlbWVudFJlZjtcblxuICBASW5wdXQoKSBmaWxlRXh0ZW5zaW9uOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHVuaXF1ZUZpbGUgPSBmYWxzZTtcbiAgQElucHV0KCkgaW5zdGFudFVwbG9hZCA9IGZhbHNlO1xuICBASW5wdXQoKSB1cGxvYWRGbjogRmlsZVVwbG9hZEZuPGFueT47XG4gIEBJbnB1dCgpIGRlbGV0ZUZuOiBGaWxlRGVsZXRlRm48YW55PjtcbiAgQElucHV0KCkgbWF4UGFyYWxsZWxVcGxvYWQ6IG51bWJlcjtcblxuICBmaWxlczogVXBsb2FkRmlsZTxhbnk+W10gPSBbXTtcblxuICBnZXQgcHJvY2Vzc2luZ0ZpbGVzKCk6IFVwbG9hZEZpbGU8YW55PltdIHtcbiAgICByZXR1cm4gdGhpcy5maWxlcy5maWx0ZXIoZiA9PiAhZi5kZWxldGluZyAmJiBpc05vdE5pbChmLnByb2dyZXNzKSAmJiBmLnByb2dyZXNzIDwgMSlcbiAgfVxuXG4gIGdldCBwcm9jZXNzZWRGaWxlcygpOiBVcGxvYWRGaWxlPGFueT5bXSB7XG4gICAgcmV0dXJuIHRoaXMuZmlsZXMuZmlsdGVyKGYgPT4gIWYuZGVsZXRpbmcgJiYgZi5wcm9ncmVzcyA9PT0gMSk7XG4gIH1cblxuICBnZXQgcHJvY2Vzc2luZ0ZpbGVzQ291bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5wcm9jZXNzaW5nRmlsZXMubGVuZ3RoO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGNkOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHJvdGVjdGVkIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSkge31cblxuICAvKipcbiAgICogb24gZmlsZSBkcm9wIGhhbmRsZXJcbiAgICovXG4gIG9uRmlsZURyb3BwZWQoZXZlbnQpIHtcbiAgICB0aGlzLnByZXBhcmVGaWxlc0xpc3QoZXZlbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIGhhbmRsZSBmaWxlIGZyb20gYnJvd3NpbmdcbiAgICovXG4gIGZpbGVCcm93c2VIYW5kbGVyKGZpbGVzKSB7XG4gICAgdGhpcy5wcmVwYXJlRmlsZXNMaXN0KGZpbGVzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWxldGUgZmlsZSBmcm9tIGZpbGVzIGxpc3RcbiAgICpcbiAgICogQHBhcmFtIGluZGV4IChGaWxlIGluZGV4KVxuICAgKi9cbiAgYXN5bmMgZGVsZXRlRmlsZShpbmRleDogbnVtYmVyKSB7XG4gICAgY29uc3QgZmlsZSA9IHRoaXMuZmlsZXNbaW5kZXhdO1xuXG4gICAgaWYgKGZpbGUucHJvZ3Jlc3MgPT09IDEgJiYgdGhpcy5kZWxldGVGbikge1xuICAgICAgaWYgKGZpbGUuZGVsZXRpbmcpIHtcbiAgICAgICAgY29uc29sZS53YXJuKGBbdXBsb2FkLWZpbGVdIFRoaXMgZmlsZSBhbHJlYWR5IGRlbGV0aW5nYCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRyeSB7XG4gICAgICAgIGZpbGUuZGVsZXRpbmcgPSB0cnVlXG4gICAgICAgIGNvbnN0IGRlbGV0ZWQgPSBhd2FpdCB0aGlzLmRlbGV0ZUZuKGZpbGUpO1xuICAgICAgICBpZiAoIWRlbGV0ZWQpIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGNhdGNoKGVycikge1xuICAgICAgICBjb25zb2xlLmVycm9yKGVyciAmJiBlcnIubWVzc2FnZSB8fCBlcnIpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBmaW5hbGx5IHtcbiAgICAgICAgZmlsZS5kZWxldGluZyA9IGZhbHNlO1xuICAgICAgfVxuXG4gICAgICAvLyBNYWtlIHN1cmUgaW5kZXggbm90IGNoYW5nZWRcbiAgICAgIGluZGV4ID0gdGhpcy5maWxlcy5pbmRleE9mKGZpbGUpO1xuICAgICAgaWYgKGluZGV4ID09PSAtMSkgcmV0dXJuOyAvLyBOb3QgZm91bmQgKGFscmVhZHkgcmVtb3ZlZCA/KVxuICAgIH1cbiAgICBlbHNlIGlmIChmaWxlLnByb2dyZXNzID4gMCkge1xuICAgICAgY29uc29sZS53YXJuKGBbdXBsb2FkLWZpbGVdIENhbm5vdCByZW1vdmUgdGhpcyBmaWxlIHdoaWxlIHVwbG9hZGluZ2ApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuZmlsZXMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnQgRmlsZXMgbGlzdCB0byBub3JtYWwgYXJyYXkgbGlzdFxuICAgKlxuICAgKiBAcGFyYW0gZmlsZXMgKEZpbGVzIExpc3QpXG4gICAqL1xuICBwcmVwYXJlRmlsZXNMaXN0KGZpbGVzOiBGaWxlTGlzdCB8IEZpbGVbXSkge1xuICAgIGxldCBpdGVtczogRmlsZVtdO1xuICAgIGlmIChmaWxlcyBpbnN0YW5jZW9mIEZpbGVMaXN0KSB7XG4gICAgICBpdGVtcyA9IFtdO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmaWxlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBpdGVtID0gZmlsZXMuaXRlbShpKTtcbiAgICAgICAgaXRlbXMucHVzaChpdGVtKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICBpdGVtcyA9IGZpbGVzO1xuICAgIH1cbiAgICB0aGlzLmZpbGVzLnB1c2goLi4uaXRlbXMpO1xuXG4gICAgdGhpcy5maWxlRHJvcEVsLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSAnJztcblxuICAgIC8vIFN0YXJ0IHVwbG9hZFxuICAgIGlmICh0aGlzLmluc3RhbnRVcGxvYWQpIHtcbiAgICAgIHRoaXMudXBsb2FkRmlsZXMoaXRlbXMpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBFeGVjdXRlIHVwbG9hZFxuICAgKi9cbiAgYXN5bmMgdXBsb2FkRmlsZXMoZmlsZXM/OiBGaWxlW10pOiBQcm9taXNlPFVwbG9hZEZpbGU8YW55PltdPiB7XG5cbiAgICBpZiAoIWZpbGVzKSB7XG4gICAgICBjb25zb2xlLmluZm8oJ1t1cGxvYWQtZmlsZV0gVXBsb2FkaW5nIGFsbCBmaWxlcy4uLicpO1xuICAgICAgZmlsZXMgPSB0aGlzLmZpbGVzO1xuICAgIH1cblxuICAgIGNvbnN0ICRwcm9jZXNzaW5nRmlsZUNvdW50Q2hhbmdlID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0aGlzLnByb2Nlc3NpbmdGaWxlc0NvdW50KTtcbiAgICBjb25zdCAkY2hhbmdlcyA9IG5ldyBTdWJqZWN0KCk7XG4gICAgJGNoYW5nZXMuc3Vic2NyaWJlKF8gPT4ge1xuICAgICAgdGhpcy5jZC5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICRwcm9jZXNzaW5nRmlsZUNvdW50Q2hhbmdlLm5leHQodGhpcy5wcm9jZXNzaW5nRmlsZXNDb3VudCk7XG4gICAgfSk7XG5cbiAgICBjb25zdCBqb2JzOiBPYnNlcnZhYmxlPFVwbG9hZEZpbGU8YW55Pj5bXSA9IGZpbGVzXG4gICAgICAubWFwKGYgPT4gZiBhcyBVcGxvYWRGaWxlPGFueT4pXG4gICAgICAuZmlsdGVyKGZpbGUgPT4gaXNOaWwoZmlsZS5wcm9ncmVzcykgJiYgIWZpbGUuZXJyb3IpIC8vIFNraXAgaWYgYWxyZWFkeSBzdGFydGVkIG9yIGluIGVycm9yXG4gICAgICAubWFwKChmaWxlLCBpKSA9PiB7XG4gICAgICAgICAgLy8gV2FpdCBpZiBuZWVkXG4gICAgICAgICAgaWYgKGlzTm90TmlsKHRoaXMubWF4UGFyYWxsZWxVcGxvYWQpKSB7XG4gICAgICAgICAgICByZXR1cm4gJHByb2Nlc3NpbmdGaWxlQ291bnRDaGFuZ2UucGlwZShcbiAgICAgICAgICAgICAgZGVib3VuY2VUaW1lKGkpLCAvLyBjYWxsIG9mIGZpbHRlcigpIG11c3QgYmUgZGlmZmVyZW50IGZvciB3YWl0aW5nIGpvYlxuICAgICAgICAgICAgICBmaWx0ZXIoY291bnQgPT4gY291bnQgPCB0aGlzLm1heFBhcmFsbGVsVXBsb2FkKSxcbiAgICAgICAgICAgICAgbWFwKF8gPT4ge1xuICAgICAgICAgICAgICAgIC8vIFN0YXJ0IHVwbG9hZGluZ1xuICAgICAgICAgICAgICAgIGlmIChpc05pbChmaWxlLnByb2dyZXNzKSkgZmlsZS5wcm9ncmVzcyA9IDA7XG4gICAgICAgICAgICAgICAgJGNoYW5nZXMubmV4dCgpO1xuICAgICAgICAgICAgICAgIHJldHVybiBmaWxlO1xuICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgZmlyc3QoKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgLy8gU3RhcnQgdXBsb2FkaW5nXG4gICAgICAgICAgaWYgKGlzTmlsKGZpbGUucHJvZ3Jlc3MpKSBmaWxlLnByb2dyZXNzID0gMDtcbiAgICAgICAgICByZXR1cm4gb2YoZmlsZSk7XG4gICAgICAgIH0pXG5cbiAgICAgIC5tYXAoZmlsZSQgPT4gZmlsZSQucGlwZShcbiAgICAgICAgLy8gTG9nXG4gICAgICAgIHRhcChmaWxlID0+IGNvbnNvbGUuZGVidWcoYFt1cGxvYWQtZmlsZV0gJHtmaWxlLm5hbWV9OiB1cGxvYWRpbmcuLi5gKSksXG5cbiAgICAgICAgLy8gU3RhcnQgdXBsb2FkaW5nXG4gICAgICAgIHN3aXRjaE1hcChmaWxlID0+IHRoaXMudXBsb2FkRm4oZmlsZSlcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIG1hcCgoZXZlbnQpID0+IHtcblxuICAgICAgICAgICAgICAvLyBQcm9ncmVzcyBldmVudFxuICAgICAgICAgICAgICBpZiAoaXNQcm9ncmVzc0V2ZW50KGV2ZW50KSkge1xuICAgICAgICAgICAgICAgIGlmIChpc05vdE5pbChldmVudC5sb2FkZWQpICYmIGV2ZW50LmxvYWRlZCA+PSAwKSB7XG4gICAgICAgICAgICAgICAgICBmaWxlLnByb2dyZXNzID0gTWF0aC5taW4oMSwgZXZlbnQubG9hZGVkIC8gKGV2ZW50LnRvdGFsIHx8IDEpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICBmaWxlLnByb2dyZXNzID0gLTE7IC8vIEluZGV0ZXJtaW5hdGUgcHJvZ3Jlc3Npb25cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAvLyBVc2VyIGV2ZW50XG4gICAgICAgICAgICAgIGVsc2UgaWYgKGV2ZW50LnR5cGUgPT09IEh0dHBFdmVudFR5cGUuVXNlcikge1xuICAgICAgICAgICAgICAgIGZpbGUucHJvZ3Jlc3MgPSAtMTsgLy8gSW5kZXRlcm1pbmF0ZSBwcm9ncmVzc2lvblxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgLy8gUmVzcG9uc2UgZXZlbnRcbiAgICAgICAgICAgICAgZWxzZSBpZiAoaXNSZXNwb25zZUV2ZW50KGV2ZW50KSkge1xuICAgICAgICAgICAgICAgIGZpbGUucHJvZ3Jlc3MgPSAxO1xuICAgICAgICAgICAgICAgIGZpbGUucmVzcG9uc2UgPSBldmVudDtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmRlYnVnKGBbdXBsb2FkLWZpbGVdICR7ZmlsZS5uYW1lfTogJHtldmVudC5zdGF0dXNUZXh0IHx8ICdPSyd9YCwgZmlsZS5yZXNwb25zZSk7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAvLyBPdGhlciBldmVudHM6IGlnbm9yZVxuICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBERUJVR1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoJ1t1cGxvYWQtZmlsZV0gSWdub3JpbmcgYSBmaWxlIGV2ZW50OiAnLCBldmVudCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgcmV0dXJuIGZpbGU7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xuICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycik7XG4gICAgICAgICAgICAgIGZpbGUuZXJyb3IgPSBlcnIgJiYgKGVyci5tZXNzYWdlIHx8IGVyci5lcnJvcj8ubWVzc2FnZSkgfHwgJ0ZJTEUuVVBMT0FELkVSUk9SJztcbiAgICAgICAgICAgICAgcmV0dXJuIG9mKGZpbGUpO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgICAgICAkY2hhbmdlcy5uZXh0KCk7XG4gICAgICAgICAgICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICB9KVxuICAgICAgICAgIClcbiAgICAgICAgKVxuICAgICkpO1xuXG4gICAgLy8gV2FpdCBqb2JzIHRvIGZpbmlzaFxuICAgIHJldHVybiBmb3JrSm9pbihqb2JzKVxuICAgICAgLnBpcGUodGFwKF8gPT4gJGNoYW5nZXMuY29tcGxldGUoKSkpXG4gICAgICAudG9Qcm9taXNlKCk7XG4gIH1cblxuICB3YWl0SWRsZShvcHRzPzogV2FpdEZvck9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gd2FpdEZvcigoKSA9PiB0aGlzLnByb2Nlc3NpbmdGaWxlc0NvdW50ID09PSAwLCBvcHRzKTtcbiAgfVxufVxuIl19
202
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLWZpbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvdXBsb2FkLWZpbGUvdXBsb2FkLWZpbGUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekYsT0FBTyxFQUFDLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzVGLE9BQU8sRUFBQyxlQUFlLEVBQUUsUUFBUSxFQUFjLEVBQUUsRUFBRSxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDeEUsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUE2QixlQUFlLEVBQUUsZUFBZSxFQUFhLE1BQU0scUJBQXFCLENBQUM7QUFDN0csT0FBTyxFQUFDLEtBQUssRUFBRSxRQUFRLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFDN0MsT0FBTyxFQUFDLE9BQU8sRUFBaUIsTUFBTSxnQkFBZ0IsQ0FBQztBQU92RCxNQUFNLE9BQU8sbUJBQW1CO0lBeUI5QixZQUFzQixFQUFxQixFQUFZLFNBQTJCO1FBQTVELE9BQUUsR0FBRixFQUFFLENBQW1CO1FBQVksY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFwQnpFLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbkIsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFLL0IsVUFBSyxHQUFzQixFQUFFLENBQUM7SUFjdUQsQ0FBQztJQVp0RixJQUFJLGVBQWU7UUFDakIsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFD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QUFFLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDekIsQ0FBQyxDQUFDLENBQ0gsQ0FDRixDQUNKLENBQUMsQ0FBQztZQUVILHNCQUFzQjtZQUN0QixPQUFPLFFBQVEsQ0FBQyxJQUFJLENBQUM7aUJBQ2xCLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztpQkFDbkMsU0FBUyxFQUFFLENBQUM7UUFDakIsQ0FBQztLQUFBO0lBRUQsUUFBUSxDQUFDLElBQXFCO1FBQzVCLE9BQU8sT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsS0FBSyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDOUQsQ0FBQzs7O1lBaE5GLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsaUJBQWlCO2dCQUMzQixreERBQTJDOzthQUU1Qzs7O1lBWk8saUJBQWlCO1lBR2pCLGdCQUFnQjs7O3lCQVlyQixTQUFTLFNBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTs0QkFFMUMsS0FBSzt5QkFDTCxLQUFLOzRCQUNMLEtBQUs7dUJBQ0wsS0FBSzt1QkFDTCxLQUFLO2dDQUNMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtjYXRjaEVycm9yLCBkZWJvdW5jZVRpbWUsIGZpbHRlciwgZmlyc3QsIG1hcCwgc3dpdGNoTWFwLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBmb3JrSm9pbiwgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7RmlsZURlbGV0ZUZuLCBGaWxlVXBsb2FkRm4sIGlzUHJvZ3Jlc3NFdmVudCwgaXNSZXNwb25zZUV2ZW50LCBVcGxvYWRGaWxlfSBmcm9tICcuL3VwbG9hZC1maWxlLm1vZGVsJztcbmltcG9ydCB7aXNOaWwsIGlzTm90TmlsfSBmcm9tICcuLi9mdW5jdGlvbnMnO1xuaW1wb3J0IHt3YWl0Rm9yLCBXYWl0Rm9yT3B0aW9uc30gZnJvbSAnLi4vb2JzZXJ2YWJsZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtdXBsb2FkLWZpbGUnLFxuICB0ZW1wbGF0ZVVybDogJy4vdXBsb2FkLWZpbGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi91cGxvYWQtZmlsZS5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBVcGxvYWRGaWxlQ29tcG9uZW50IHtcblxuICBAVmlld0NoaWxkKCdmaWxlRHJvcFJlZicsIHsgc3RhdGljOiBmYWxzZSB9KSBmaWxlRHJvcEVsOiBFbGVtZW50UmVmO1xuXG4gIEBJbnB1dCgpIGZpbGVFeHRlbnNpb246IHN0cmluZztcbiAgQElucHV0KCkgdW5pcXVlRmlsZSA9IGZhbHNlO1xuICBASW5wdXQoKSBpbnN0YW50VXBsb2FkID0gZmFsc2U7XG4gIEBJbnB1dCgpIHVwbG9hZEZuOiBGaWxlVXBsb2FkRm48YW55PjtcbiAgQElucHV0KCkgZGVsZXRlRm46IEZpbGVEZWxldGVGbjxhbnk+O1xuICBASW5wdXQoKSBtYXhQYXJhbGxlbFVwbG9hZDogbnVtYmVyO1xuXG4gIGZpbGVzOiBVcGxvYWRGaWxlPGFueT5bXSA9IFtdO1xuXG4gIGdldCBwcm9jZXNzaW5nRmlsZXMoKTogVXBsb2FkRmlsZTxhbnk+W10ge1xuICAgIHJldHVybiB0aGlzLmZpbGVzLmZpbHRlcihmID0+ICFmLmRlbGV0aW5nICYmIGlzTm90TmlsKGYucHJvZ3Jlc3MpICYmIGYucHJvZ3Jlc3MgPCAxKVxuICB9XG5cbiAgZ2V0IHByb2Nlc3NlZEZpbGVzKCk6IFVwbG9hZEZpbGU8YW55PltdIHtcbiAgICByZXR1cm4gdGhpcy5maWxlcy5maWx0ZXIoZiA9PiAhZi5kZWxldGluZyAmJiBmLnByb2dyZXNzID09PSAxKTtcbiAgfVxuXG4gIGdldCBwcm9jZXNzaW5nRmlsZXNDb3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnByb2Nlc3NpbmdGaWxlcy5sZW5ndGg7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgY2Q6IENoYW5nZURldGVjdG9yUmVmLCBwcm90ZWN0ZWQgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlKSB7fVxuXG4gIC8qKlxuICAgKiBvbiBmaWxlIGRyb3AgaGFuZGxlclxuICAgKi9cbiAgb25GaWxlRHJvcHBlZChldmVudCkge1xuICAgIHRoaXMucHJlcGFyZUZpbGVzTGlzdChldmVudCk7XG4gIH1cblxuICAvKipcbiAgICogaGFuZGxlIGZpbGUgZnJvbSBicm93c2luZ1xuICAgKi9cbiAgZmlsZUJyb3dzZUhhbmRsZXIoZmlsZXMpIHtcbiAgICB0aGlzLnByZXBhcmVGaWxlc0xpc3QoZmlsZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlbGV0ZSBmaWxlIGZyb20gZmlsZXMgbGlzdFxuICAgKlxuICAgKiBAcGFyYW0gaW5kZXggKEZpbGUgaW5kZXgpXG4gICAqL1xuICBhc3luYyBkZWxldGVGaWxlKGluZGV4OiBudW1iZXIpIHtcbiAgICBjb25zdCBmaWxlID0gdGhpcy5maWxlc1tpbmRleF07XG5cbiAgICBpZiAoZmlsZS5wcm9ncmVzcyA9PT0gMSAmJiB0aGlzLmRlbGV0ZUZuKSB7XG4gICAgICBpZiAoZmlsZS5kZWxldGluZykge1xuICAgICAgICBjb25zb2xlLndhcm4oYFt1cGxvYWQtZmlsZV0gVGhpcyBmaWxlIGFscmVhZHkgZGVsZXRpbmdgKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdHJ5IHtcbiAgICAgICAgZmlsZS5kZWxldGluZyA9IHRydWVcbiAgICAgICAgY29uc3QgZGVsZXRlZCA9IGF3YWl0IHRoaXMuZGVsZXRlRm4oZmlsZSk7XG4gICAgICAgIGlmICghZGVsZXRlZCkgcmV0dXJuO1xuICAgICAgfVxuICAgICAgY2F0Y2goZXJyKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyICYmIGVyci5tZXNzYWdlIHx8IGVycik7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGZpbmFsbHkge1xuICAgICAgICBmaWxlLmRlbGV0aW5nID0gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIC8vIE1ha2Ugc3VyZSBpbmRleCBub3QgY2hhbmdlZFxuICAgICAgaW5kZXggPSB0aGlzLmZpbGVzLmluZGV4T2YoZmlsZSk7XG4gICAgICBpZiAoaW5kZXggPT09IC0xKSByZXR1cm47IC8vIE5vdCBmb3VuZCAoYWxyZWFkeSByZW1vdmVkID8pXG4gICAgfVxuICAgIGVsc2UgaWYgKGZpbGUucHJvZ3Jlc3MgPiAwKSB7XG4gICAgICBjb25zb2xlLndhcm4oYFt1cGxvYWQtZmlsZV0gQ2Fubm90IHJlbW92ZSB0aGlzIGZpbGUgd2hpbGUgdXBsb2FkaW5nYCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5maWxlcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydCBGaWxlcyBsaXN0IHRvIG5vcm1hbCBhcnJheSBsaXN0XG4gICAqXG4gICAqIEBwYXJhbSBmaWxlcyAoRmlsZXMgTGlzdClcbiAgICovXG4gIHByZXBhcmVGaWxlc0xpc3QoZmlsZXM6IEZpbGVMaXN0IHwgRmlsZVtdKSB7XG4gICAgbGV0IGl0ZW1zOiBGaWxlW107XG4gICAgaWYgKGZpbGVzIGluc3RhbmNlb2YgRmlsZUxpc3QpIHtcbiAgICAgIGl0ZW1zID0gW107XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZpbGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGl0ZW0gPSBmaWxlcy5pdGVtKGkpO1xuICAgICAgICBpdGVtcy5wdXNoKGl0ZW0pO1xuICAgICAgfVxuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIGl0ZW1zID0gZmlsZXM7XG4gICAgfVxuICAgIHRoaXMuZmlsZXMucHVzaCguLi5pdGVtcyk7XG5cbiAgICB0aGlzLmZpbGVEcm9wRWwubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xuXG4gICAgLy8gU3RhcnQgdXBsb2FkXG4gICAgaWYgKHRoaXMuaW5zdGFudFVwbG9hZCkge1xuICAgICAgdGhpcy51cGxvYWRGaWxlcyhpdGVtcyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEV4ZWN1dGUgdXBsb2FkXG4gICAqL1xuICBhc3luYyB1cGxvYWRGaWxlcyhmaWxlcz86IEZpbGVbXSk6IFByb21pc2U8VXBsb2FkRmlsZTxhbnk+W10+IHtcblxuICAgIGlmICghZmlsZXMpIHtcbiAgICAgIGNvbnNvbGUuaW5mbygnW3VwbG9hZC1maWxlXSBVcGxvYWRpbmcgYWxsIGZpbGVzLi4uJyk7XG4gICAgICBmaWxlcyA9IHRoaXMuZmlsZXM7XG4gICAgfVxuXG4gICAgY29uc3QgJHByb2Nlc3NpbmdGaWxlQ291bnRDaGFuZ2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KHRoaXMucHJvY2Vzc2luZ0ZpbGVzQ291bnQpO1xuICAgIGNvbnN0ICRjaGFuZ2VzID0gbmV3IFN1YmplY3QoKTtcbiAgICAkY2hhbmdlcy5zdWJzY3JpYmUoXyA9PiB7XG4gICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICAgICAgJHByb2Nlc3NpbmdGaWxlQ291bnRDaGFuZ2UubmV4dCh0aGlzLnByb2Nlc3NpbmdGaWxlc0NvdW50KTtcbiAgICB9KTtcblxuICAgIGNvbnN0IGpvYnM6IE9ic2VydmFibGU8VXBsb2FkRmlsZTxhbnk+PltdID0gZmlsZXNcbiAgICAgIC5tYXAoZiA9PiBmIGFzIFVwbG9hZEZpbGU8YW55PilcbiAgICAgIC5maWx0ZXIoZmlsZSA9PiBmaWxlICYmIGlzTmlsKGZpbGUucHJvZ3Jlc3MpICYmICFmaWxlLmVycm9yKSAvLyBTa2lwIGlmIGFscmVhZHkgc3RhcnRlZCBvciBpbiBlcnJvclxuICAgICAgLm1hcCgoZmlsZSwgaSkgPT4ge1xuICAgICAgICAgIC8vIFdhaXQgaWYgbmVlZFxuICAgICAgICAgIGlmIChpc05vdE5pbCh0aGlzLm1heFBhcmFsbGVsVXBsb2FkKSkge1xuICAgICAgICAgICAgcmV0dXJuICRwcm9jZXNzaW5nRmlsZUNvdW50Q2hhbmdlLnBpcGUoXG4gICAgICAgICAgICAgIGRlYm91bmNlVGltZShpKSwgLy8gY2FsbCBvZiBmaWx0ZXIoKSBtdXN0IGJlIGRpZmZlcmVudCBmb3Igd2FpdGluZyBqb2JcbiAgICAgICAgICAgICAgZmlsdGVyKGNvdW50ID0+IGNvdW50IDwgdGhpcy5tYXhQYXJhbGxlbFVwbG9hZCksXG4gICAgICAgICAgICAgIG1hcChfID0+IHtcbiAgICAgICAgICAgICAgICAvLyBTdGFydCB1cGxvYWRpbmdcbiAgICAgICAgICAgICAgICBpZiAoaXNOaWwoZmlsZS5wcm9ncmVzcykpIGZpbGUucHJvZ3Jlc3MgPSAwO1xuICAgICAgICAgICAgICAgICRjaGFuZ2VzLm5leHQoKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmlsZTtcbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgIGZpcnN0KClcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfVxuICAgICAgICAgIC8vIFN0YXJ0IHVwbG9hZGluZ1xuICAgICAgICAgIGlmIChpc05pbChmaWxlLnByb2dyZXNzKSkgZmlsZS5wcm9ncmVzcyA9IDA7XG4gICAgICAgICAgcmV0dXJuIG9mKGZpbGUpO1xuICAgICAgICB9KVxuXG4gICAgICAubWFwKGZpbGUkID0+IGZpbGUkLnBpcGUoXG4gICAgICAgIGZpbHRlcihpc05vdE5pbCksXG4gICAgICAgIC8vIExvZ1xuICAgICAgICB0YXAoZmlsZSA9PiBjb25zb2xlLmRlYnVnKGBbdXBsb2FkLWZpbGVdICR7ZmlsZS5uYW1lfTogdXBsb2FkaW5nLi4uYCkpLFxuXG4gICAgICAgIC8vIFN0YXJ0IHVwbG9hZGluZ1xuICAgICAgICBzd2l0Y2hNYXAoZmlsZSA9PiB0aGlzLnVwbG9hZEZuKGZpbGUpXG4gICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICBmaWx0ZXIoaXNOb3ROaWwpLFxuICAgICAgICAgICAgbWFwKChldmVudCkgPT4ge1xuXG4gICAgICAgICAgICAgIC8vIFByb2dyZXNzIGV2ZW50XG4gICAgICAgICAgICAgIGlmIChpc1Byb2dyZXNzRXZlbnQoZXZlbnQpKSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzTm90TmlsKGV2ZW50LmxvYWRlZCkgJiYgZXZlbnQubG9hZGVkID49IDApIHtcbiAgICAgICAgICAgICAgICAgIGZpbGUucHJvZ3Jlc3MgPSBNYXRoLm1pbigxLCBldmVudC5sb2FkZWQgLyAoZXZlbnQudG90YWwgfHwgMSkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIGZpbGUucHJvZ3Jlc3MgPSAtMTsgLy8gSW5kZXRlcm1pbmF0ZSBwcm9ncmVzc2lvblxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIC8vIFJlc3BvbnNlIGV2ZW50XG4gICAgICAgICAgICAgIGVsc2UgaWYgKGlzUmVzcG9uc2VFdmVudChldmVudCkpIHtcbiAgICAgICAgICAgICAgICBmaWxlLnByb2dyZXNzID0gMTtcbiAgICAgICAgICAgICAgICBmaWxlLnJlc3BvbnNlID0gZXZlbnQ7XG4gICAgICAgICAgICAgICAgY29uc29sZS5kZWJ1ZyhgW3VwbG9hZC1maWxlXSAke2ZpbGUubmFtZX06ICR7ZXZlbnQuc3RhdHVzVGV4dCB8fCAnT0snfWAsIGZpbGUucmVzcG9uc2UpO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgLy8gT3RoZXIgZXZlbnRzOiBpZ25vcmVcbiAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gREVCVUdcbiAgICAgICAgICAgICAgICBjb25zb2xlLmRlYnVnKCdbdXBsb2FkLWZpbGVdIElnbm9yaW5nIGEgZmlsZSBldmVudDogJywgZXZlbnQpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHJldHVybiBmaWxlO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnIpID0+IHtcbiAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xuICAgICAgICAgICAgICBmaWxlLmVycm9yID0gZXJyICYmIChlcnIubWVzc2FnZSB8fCBlcnIuZXJyb3I/Lm1lc3NhZ2UpIHx8ICdGSUxFLlVQTE9BRC5FUlJPUic7XG4gICAgICAgICAgICAgIHJldHVybiBvZihmaWxlKTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICAgICAgJGNoYW5nZXMubmV4dCgpO1xuICAgICAgICAgICAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICApKTtcblxuICAgIC8vIFdhaXQgam9icyB0byBmaW5pc2hcbiAgICByZXR1cm4gZm9ya0pvaW4oam9icylcbiAgICAgIC5waXBlKHRhcChfID0+ICRjaGFuZ2VzLmNvbXBsZXRlKCkpKVxuICAgICAgLnRvUHJvbWlzZSgpO1xuICB9XG5cbiAgd2FpdElkbGUob3B0cz86IFdhaXRGb3JPcHRpb25zKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHdhaXRGb3IoKCkgPT4gdGhpcy5wcm9jZXNzaW5nRmlsZXNDb3VudCA9PT0gMCwgb3B0cyk7XG4gIH1cbn1cbiJdfQ==
@@ -11,10 +11,10 @@ export class FileResponse {
11
11
  }
12
12
  }
13
13
  export function isProgressEvent(event) {
14
- return event.type === HttpEventType.UploadProgress
15
- || event.type === HttpEventType.DownloadProgress;
14
+ return event && (event.type === HttpEventType.UploadProgress
15
+ || event.type === HttpEventType.DownloadProgress);
16
16
  }
17
17
  export function isResponseEvent(event) {
18
- return event.type === HttpEventType.Response;
18
+ return event && event.type === HttpEventType.Response;
19
19
  }
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLWZpbGUubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC91cGxvYWQtZmlsZS91cGxvYWQtZmlsZS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQVksYUFBYSxFQUFrQyxNQUFNLHNCQUFzQixDQUFDO0FBQy9GLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFFdEMsTUFBTSxPQUFPLFVBQWMsU0FBUSxJQUFJO0NBTXRDO0FBVUQsTUFBTSxPQUFPLFlBQVk7SUFLdkIsWUFBWSxJQUE0RDtRQUgvRCxTQUFJLEdBQUcsYUFBYSxDQUFDLFFBQVEsQ0FBQztRQUlyQyxJQUFJLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLGFBQUosSUFBSSx1QkFBSixJQUFJLENBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNwRCxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUEsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLE1BQU0sS0FBSSxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFBLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRSxVQUFVLEtBQUksSUFBSSxDQUFDO0lBQzdDLENBQUM7Q0FDRjtBQUlELE1BQU0sVUFBVSxlQUFlLENBQUMsS0FBdUM7SUFDckUsT0FBTyxLQUFLLENBQUMsSUFBSSxLQUFLLGFBQWEsQ0FBQyxjQUFjO1dBQzdDLEtBQUssQ0FBQyxJQUFJLEtBQUssYUFBYSxDQUFDLGdCQUFnQixDQUFDO0FBQ3JELENBQUM7QUFDRCxNQUFNLFVBQVUsZUFBZSxDQUFJLEtBQWtDO0lBQ25FLE9BQU8sS0FBSyxDQUFDLElBQUksS0FBSyxhQUFhLENBQUMsUUFBUSxDQUFDO0FBQy9DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtIdHRwRXZlbnQsIEh0dHBFdmVudFR5cGUsIEh0dHBQcm9ncmVzc0V2ZW50LCBIdHRwUmVzcG9uc2V9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7aXNOb3ROaWx9IGZyb20gJy4uL2Z1bmN0aW9ucyc7XG5cbmV4cG9ydCBjbGFzcyBVcGxvYWRGaWxlPFQ+IGV4dGVuZHMgRmlsZSB7XG4gIHByb2dyZXNzPzogbnVtYmVyO1xuICBkZWxldGluZz86IGJvb2xlYW47XG4gIGVycm9yPzogc3RyaW5nO1xuXG4gIHJlc3BvbnNlPzogRmlsZVJlc3BvbnNlPFQ+IHwgSHR0cFJlc3BvbnNlPFQ+O1xufVxuXG5leHBvcnQgdHlwZSBGaWxlVXBsb2FkRm48VD4gPSAoZmlsZTogRmlsZSkgPT4gT2JzZXJ2YWJsZTxGaWxlRXZlbnQ8VD4gfCBIdHRwRXZlbnQ8VD4+O1xuZXhwb3J0IHR5cGUgRmlsZURlbGV0ZUZuPFQ+ID0gKGZpbGU6IFVwbG9hZEZpbGU8VD4pID0+IFByb21pc2U8Ym9vbGVhbj47XG5leHBvcnQgaW50ZXJmYWNlIEZpbGVQcm9ncmVzc0V2ZW50IHtcbiAgdHlwZTogSHR0cEV2ZW50VHlwZS5Eb3dubG9hZFByb2dyZXNzIHwgSHR0cEV2ZW50VHlwZS5VcGxvYWRQcm9ncmVzcztcbiAgbG9hZGVkOiBudW1iZXI7XG4gIHRvdGFsPzogbnVtYmVyO1xuICBzdGF0dXNUZXh0Pzogc3RyaW5nO1xufVxuZXhwb3J0IGNsYXNzIEZpbGVSZXNwb25zZTxUPiB7XG4gIHJlYWRvbmx5IGJvZHk6IFR8bnVsbDtcbiAgcmVhZG9ubHkgdHlwZSA9IEh0dHBFdmVudFR5cGUuUmVzcG9uc2U7XG4gIHJlYWRvbmx5IHN0YXR1czogbnVtYmVyO1xuICByZWFkb25seSBzdGF0dXNUZXh0OiBzdHJpbmc7XG4gIGNvbnN0cnVjdG9yKGluaXQ/OiB7Ym9keT86IFR8bnVsbDsgc3RhdHVzVGV4dD86IHN0cmluZzsgc3RhdHVzPzogbnVtYmVyfSkge1xuICAgIHRoaXMuYm9keSA9IGlzTm90TmlsKGluaXQ/LmJvZHkpID8gaW5pdC5ib2R5IDogbnVsbDtcbiAgICB0aGlzLnN0YXR1cyA9IGluaXQ/LnN0YXR1cyB8fCAwO1xuICAgIHRoaXMuc3RhdHVzVGV4dCA9IGluaXQ/LnN0YXR1c1RleHQgfHwgJ09LJztcbiAgfVxufVxuXG5leHBvcnQgZGVjbGFyZSB0eXBlIEZpbGVFdmVudDxUPiA9IEh0dHBQcm9ncmVzc0V2ZW50IHwgSHR0cFJlc3BvbnNlPFQ+IHwgRmlsZVByb2dyZXNzRXZlbnQgfCBGaWxlUmVzcG9uc2U8VD4gO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNQcm9ncmVzc0V2ZW50KGV2ZW50OiAgSHR0cEV2ZW50PGFueT4gfCBGaWxlRXZlbnQ8YW55Pik6IGV2ZW50IGlzIEh0dHBQcm9ncmVzc0V2ZW50IHwgRmlsZVByb2dyZXNzRXZlbnQge1xuICByZXR1cm4gZXZlbnQudHlwZSA9PT0gSHR0cEV2ZW50VHlwZS5VcGxvYWRQcm9ncmVzc1xuICAgIHx8IGV2ZW50LnR5cGUgPT09IEh0dHBFdmVudFR5cGUuRG93bmxvYWRQcm9ncmVzcztcbn1cbmV4cG9ydCBmdW5jdGlvbiBpc1Jlc3BvbnNlRXZlbnQ8VD4oZXZlbnQ6IEh0dHBFdmVudDxUPiB8IEZpbGVFdmVudDxUPik6IGV2ZW50IGlzIEh0dHBSZXNwb25zZTxUPiB8IEZpbGVSZXNwb25zZTxUPiB7XG4gIHJldHVybiBldmVudC50eXBlID09PSBIdHRwRXZlbnRUeXBlLlJlc3BvbnNlO1xufVxuIl19
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLWZpbGUubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC91cGxvYWQtZmlsZS91cGxvYWQtZmlsZS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQVksYUFBYSxFQUFrQyxNQUFNLHNCQUFzQixDQUFDO0FBQy9GLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxjQUFjLENBQUM7QUFFdEMsTUFBTSxPQUFPLFVBQWMsU0FBUSxJQUFJO0NBTXRDO0FBVUQsTUFBTSxPQUFPLFlBQVk7SUFLdkIsWUFBWSxJQUE0RDtRQUgvRCxTQUFJLEdBQUcsYUFBYSxDQUFDLFFBQVEsQ0FBQztRQUlyQyxJQUFJLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLGFBQUosSUFBSSx1QkFBSixJQUFJLENBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNwRCxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUEsSUFBSSxhQUFKLElBQUksdUJBQUosSUFBSSxDQUFFLE1BQU0sS0FBSSxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFBLElBQUksYUFBSixJQUFJLHVCQUFKLElBQUksQ0FBRSxVQUFVLEtBQUksSUFBSSxDQUFDO0lBQzdDLENBQUM7Q0FDRjtBQUlELE1BQU0sVUFBVSxlQUFlLENBQUMsS0FBdUM7SUFDckUsT0FBTyxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLGFBQWEsQ0FBQyxjQUFjO1dBQ3ZELEtBQUssQ0FBQyxJQUFJLEtBQUssYUFBYSxDQUFDLGdCQUFnQixDQUFDLENBQUM7QUFDdEQsQ0FBQztBQUNELE1BQU0sVUFBVSxlQUFlLENBQUksS0FBa0M7SUFDbkUsT0FBTyxLQUFLLElBQUksS0FBSyxDQUFDLElBQUksS0FBSyxhQUFhLENBQUMsUUFBUSxDQUFDO0FBQ3hELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtIdHRwRXZlbnQsIEh0dHBFdmVudFR5cGUsIEh0dHBQcm9ncmVzc0V2ZW50LCBIdHRwUmVzcG9uc2V9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7aXNOb3ROaWx9IGZyb20gJy4uL2Z1bmN0aW9ucyc7XG5cbmV4cG9ydCBjbGFzcyBVcGxvYWRGaWxlPFQ+IGV4dGVuZHMgRmlsZSB7XG4gIHByb2dyZXNzPzogbnVtYmVyO1xuICBkZWxldGluZz86IGJvb2xlYW47XG4gIGVycm9yPzogc3RyaW5nO1xuXG4gIHJlc3BvbnNlPzogRmlsZVJlc3BvbnNlPFQ+IHwgSHR0cFJlc3BvbnNlPFQ+O1xufVxuXG5leHBvcnQgdHlwZSBGaWxlVXBsb2FkRm48VD4gPSAoZmlsZTogRmlsZSkgPT4gT2JzZXJ2YWJsZTxGaWxlRXZlbnQ8VD4gfCBIdHRwRXZlbnQ8VD4+O1xuZXhwb3J0IHR5cGUgRmlsZURlbGV0ZUZuPFQ+ID0gKGZpbGU6IFVwbG9hZEZpbGU8VD4pID0+IFByb21pc2U8Ym9vbGVhbj47XG5leHBvcnQgaW50ZXJmYWNlIEZpbGVQcm9ncmVzc0V2ZW50IHtcbiAgdHlwZTogSHR0cEV2ZW50VHlwZS5Eb3dubG9hZFByb2dyZXNzIHwgSHR0cEV2ZW50VHlwZS5VcGxvYWRQcm9ncmVzcztcbiAgbG9hZGVkOiBudW1iZXI7XG4gIHRvdGFsPzogbnVtYmVyO1xuICBzdGF0dXNUZXh0Pzogc3RyaW5nO1xufVxuZXhwb3J0IGNsYXNzIEZpbGVSZXNwb25zZTxUPiB7XG4gIHJlYWRvbmx5IGJvZHk6IFR8bnVsbDtcbiAgcmVhZG9ubHkgdHlwZSA9IEh0dHBFdmVudFR5cGUuUmVzcG9uc2U7XG4gIHJlYWRvbmx5IHN0YXR1czogbnVtYmVyO1xuICByZWFkb25seSBzdGF0dXNUZXh0OiBzdHJpbmc7XG4gIGNvbnN0cnVjdG9yKGluaXQ/OiB7Ym9keT86IFR8bnVsbDsgc3RhdHVzVGV4dD86IHN0cmluZzsgc3RhdHVzPzogbnVtYmVyfSkge1xuICAgIHRoaXMuYm9keSA9IGlzTm90TmlsKGluaXQ/LmJvZHkpID8gaW5pdC5ib2R5IDogbnVsbDtcbiAgICB0aGlzLnN0YXR1cyA9IGluaXQ/LnN0YXR1cyB8fCAwO1xuICAgIHRoaXMuc3RhdHVzVGV4dCA9IGluaXQ/LnN0YXR1c1RleHQgfHwgJ09LJztcbiAgfVxufVxuXG5leHBvcnQgZGVjbGFyZSB0eXBlIEZpbGVFdmVudDxUPiA9IEh0dHBQcm9ncmVzc0V2ZW50IHwgSHR0cFJlc3BvbnNlPFQ+IHwgRmlsZVByb2dyZXNzRXZlbnQgfCBGaWxlUmVzcG9uc2U8VD4gO1xuXG5leHBvcnQgZnVuY3Rpb24gaXNQcm9ncmVzc0V2ZW50KGV2ZW50OiAgSHR0cEV2ZW50PGFueT4gfCBGaWxlRXZlbnQ8YW55Pik6IGV2ZW50IGlzIEh0dHBQcm9ncmVzc0V2ZW50IHwgRmlsZVByb2dyZXNzRXZlbnQge1xuICByZXR1cm4gZXZlbnQgJiYgKGV2ZW50LnR5cGUgPT09IEh0dHBFdmVudFR5cGUuVXBsb2FkUHJvZ3Jlc3NcbiAgICB8fCBldmVudC50eXBlID09PSBIdHRwRXZlbnRUeXBlLkRvd25sb2FkUHJvZ3Jlc3MpO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGlzUmVzcG9uc2VFdmVudDxUPihldmVudDogSHR0cEV2ZW50PFQ+IHwgRmlsZUV2ZW50PFQ+KTogZXZlbnQgaXMgSHR0cFJlc3BvbnNlPFQ+IHwgRmlsZVJlc3BvbnNlPFQ+IHtcbiAgcmV0dXJuIGV2ZW50ICYmIGV2ZW50LnR5cGUgPT09IEh0dHBFdmVudFR5cGUuUmVzcG9uc2U7XG59XG4iXX0=
@@ -4025,6 +4025,18 @@ FormGetArrayPipe.decorators = [
4025
4025
  },] },
4026
4026
  { type: Injectable, args: [{ providedIn: 'root' },] }
4027
4027
  ];
4028
+ class FormGetGroupPipe {
4029
+ transform(form, path) {
4030
+ return form.get(path);
4031
+ }
4032
+ }
4033
+ FormGetGroupPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function FormGetGroupPipe_Factory() { return new FormGetGroupPipe(); }, token: FormGetGroupPipe, providedIn: "root" });
4034
+ FormGetGroupPipe.decorators = [
4035
+ { type: Pipe, args: [{
4036
+ name: 'formGetGroup'
4037
+ },] },
4038
+ { type: Injectable, args: [{ providedIn: 'root' },] }
4039
+ ];
4028
4040
 
4029
4041
  class SharedPipesModule {
4030
4042
  }
@@ -4071,7 +4083,8 @@ SharedPipesModule.decorators = [
4071
4083
  FormErrorTranslatePipe,
4072
4084
  FormGetPipe,
4073
4085
  FormGetControlPipe,
4074
- FormGetArrayPipe
4086
+ FormGetArrayPipe,
4087
+ FormGetGroupPipe
4075
4088
  ],
4076
4089
  exports: [
4077
4090
  PropertyGetPipe,
@@ -4109,7 +4122,8 @@ SharedPipesModule.decorators = [
4109
4122
  FormErrorTranslatePipe,
4110
4123
  FormGetPipe,
4111
4124
  FormGetControlPipe,
4112
- FormGetArrayPipe
4125
+ FormGetArrayPipe,
4126
+ FormGetGroupPipe
4113
4127
  ]
4114
4128
  },] }
4115
4129
  ];
@@ -15380,12 +15394,12 @@ class ConfigService extends BaseGraphqlService {
15380
15394
  return __awaiter(this, void 0, void 0, function* () {
15381
15395
  const now = Date.now();
15382
15396
  console.debug('[config] Clear server cache...');
15383
- const variables = { name: opts && opts.cacheName } || undefined;
15397
+ const variables = opts && opts.cacheName && { name: opts.cacheName } || undefined;
15384
15398
  const res = yield this.graphql.query({
15385
15399
  query: ClearCache,
15386
15400
  variables,
15387
15401
  error: { code: ErrorCodes$2.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
15388
- fetchPolicy: 'network-only'
15402
+ fetchPolicy: 'no-cache'
15389
15403
  });
15390
15404
  const data = res && res.clearCache || undefined;
15391
15405
  console.info(`[config] Clear server cache in ${Date.now() - now}ms:`, data);
@@ -16113,11 +16127,11 @@ class FileResponse {
16113
16127
  }
16114
16128
  }
16115
16129
  function isProgressEvent(event) {
16116
- return event.type === HttpEventType.UploadProgress
16117
- || event.type === HttpEventType.DownloadProgress;
16130
+ return event && (event.type === HttpEventType.UploadProgress
16131
+ || event.type === HttpEventType.DownloadProgress);
16118
16132
  }
16119
16133
  function isResponseEvent(event) {
16120
- return event.type === HttpEventType.Response;
16134
+ return event && event.type === HttpEventType.Response;
16121
16135
  }
16122
16136
 
16123
16137
  class UploadFileComponent {
@@ -16229,7 +16243,7 @@ class UploadFileComponent {
16229
16243
  });
16230
16244
  const jobs = files
16231
16245
  .map(f => f)
16232
- .filter(file => isNil(file.progress) && !file.error) // Skip if already started or in error
16246
+ .filter(file => file && isNil(file.progress) && !file.error) // Skip if already started or in error
16233
16247
  .map((file, i) => {
16234
16248
  // Wait if need
16235
16249
  if (isNotNil(this.maxParallelUpload)) {
@@ -16247,12 +16261,12 @@ class UploadFileComponent {
16247
16261
  file.progress = 0;
16248
16262
  return of(file);
16249
16263
  })
16250
- .map(file$ => file$.pipe(
16264
+ .map(file$ => file$.pipe(filter(isNotNil),
16251
16265
  // Log
16252
16266
  tap(file => console.debug(`[upload-file] ${file.name}: uploading...`)),
16253
16267
  // Start uploading
16254
16268
  switchMap(file => this.uploadFn(file)
16255
- .pipe(map((event) => {
16269
+ .pipe(filter(isNotNil), map((event) => {
16256
16270
  // Progress event
16257
16271
  if (isProgressEvent(event)) {
16258
16272
  if (isNotNil(event.loaded) && event.loaded >= 0) {
@@ -16262,10 +16276,6 @@ class UploadFileComponent {
16262
16276
  file.progress = -1; // Indeterminate progression
16263
16277
  }
16264
16278
  }
16265
- // User event
16266
- else if (event.type === HttpEventType.User) {
16267
- file.progress = -1; // Indeterminate progression
16268
- }
16269
16279
  // Response event
16270
16280
  else if (isResponseEvent(event)) {
16271
16281
  file.progress = 1;
@@ -27024,5 +27034,5 @@ CoreTestingModule.decorators = [
27024
27034
  * Generated bundle index. Do not edit.
27025
27035
  */
27026
27036
 
27027
- export { APP_ABOUT_DEVELOPERS, APP_ABOUT_PARTNERS, APP_CONFIG_OPTIONS, APP_FORM_ERROR_I18N_KEYS, APP_GRAPHQL_TYPE_POLICIES, APP_HOME_BUTTONS, APP_LOCALES, APP_LOCAL_SETTINGS, APP_LOCAL_SETTINGS_OPTIONS, APP_LOCAL_STORAGE_TYPE_POLICIES, APP_MENU_ITEMS, APP_TESTING_PAGES, AboutModal, Account, AccountPage, AccountService, AccountToStringPipe, ActionsColumnComponent, AdminModule, AdminRoutingModule, Alerts, AndroidOsEnvironment, AnimationState, AppEditor, AppEditorOptions, AppEntityEditor, AppForm, AppFormField, AppFormProvider, AppFormUtils, AppGestureConfig, AppGraphQLModule, AppHelpModal, AppInMemoryTable, AppInstallUpgradeCard, AppListForm, AppLoadingSpinner, AppMenuModule, AppNullForm, AppPropertiesForm, AppTabEditor, AppTabEditorOptions, AppTable, AppTableDataSourceOptions, AppTableUtils, AppValidatorService, AppendToInputDirective, ArrayFilterPipe, ArrayFirstPipe, ArrayIncludesPipe, ArrayLengthPipe, ArrayPluckPipe, AudioProvider, AuthForm, AuthGuardService, AuthModal, AutocompleteTestPage, AutofocusDirective, Base58, BaseEntityService, BaseGraphqlService, BaseGraphqlServiceOptions, BaseReferential, Beans, CORE_CONFIG_OPTIONS, CORE_TESTING_PAGES, CellValueChangeListener, ChipsTestPage, Color, ColorScale, ComponentDirtyGuard, ConfigService, Configuration, CoreModule, CoreTestingModule, CryptoService, DATE_ISO_PATTERN, DATE_UNIX_MS_TIMESTAMP, DATE_UNIX_TIMESTAMP, DEFAULT_PAGE_SIZE, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_PLACEHOLDER_CHAR, DEFAULT_REQUIRED_COLUMNS, DateDiffDurationPipe, DateFormatPipe, DateFromNowPipe, DateTimeTestPage, DateUtils, Department, DepartmentToStringPipe, DragAndDropDirective, DurationPipe, ENTITIES_STORAGE_KEY_PREFIX, ENVIRONMENT, EmptyArrayPipe, EntitiesService, EntitiesStorage, EntitiesTableDataSource, Entity, EntityClass, EntityClasses, EntityFilter, EntityFilterUtils, EntityMetadataComponent, EntityStore, EntityUtils, Environment, ErrorCodes, EvenPipe, FileResponse, FileService, FileSizePipe, FilesUtils, FormArrayHelper, FormButtonsBarComponent, FormButtonsBarToken, FormErrorTranslatePipe, FormErrorTranslator, FormFieldValuesHolder, FormGetArrayPipe, FormGetControlPipe, FormGetPipe, Fragments, GraphqlService, HAMMER_PRESS_TIME, HAMMER_TAP_TIME, HighlightPipe, HomePage, Hotkeys, HotkeysDialogComponent, InMemoryEntitiesService, IsLoginAccountPipe, IsNilOrBlankPipe, IsNotNilOrBlankPipe, IsNotOnFieldModePipe, IsOnFieldModePipe, JobUtils, KEYBOARD_HIDE_DELAY_MS, LAT_LONG_DEFAULT_MAX_DECIMALS, LAT_LONG_PATTERNS, LatLongFormatPipe, LatLongTestPage, LatitudeFormatPipe, LocalSettingsService, LongitudeFormatPipe, MINIFY_ENTITY_FOR_LOCAL_STORAGE, MINIFY_ENTITY_FOR_POD, MapGetPipe, MapKeysPipe, MapValuesPipe, MatAutocompleteConfigHolder, MatAutocompleteField, MatBadgeIconDirective, MatBooleanField, MatChipsField, MatDate, MatDateShort, MatDateTime, MatDuration, MatLatLongField, MatNumpadComponent, MatNumpadContainerComponent, MatNumpadContent, MatPaginatorI18n, MatStepperI18n, MatSwipeField, MaterialTestingModule, MathAbsPipe, MenuComponent, MenuItems, MenuService, ModalToolbarComponent, NetworkService, NgInitDirective, NgVarDirective, NotEmptyArrayPipe, NumberFormatPipe, NumpadDirective, OddPipe, PRIORITIZED_AUTHORITIES, PUBKEY_REGEXP, Peer, Person, PersonFilter, PersonFragments, PersonService, PersonToStringPipe, PersonUtils, PersonValidatorService, PlatformService, ProgressBarService, ProgressInterceptor, PropertyGetPipe, RESERVED_END_COLUMNS, RESERVED_START_COLUMNS, Referential, ReferentialFilter, ReferentialRef, ReferentialUtils, ReferentialValidatorService, RegisterConfirmPage, SETTINGS_DISPLAY_COLUMNS, SETTINGS_FILTER, SETTINGS_PAGE_SIZE, SETTINGS_SORTED_COLUMN, SETTINGS_STORAGE_KEY, SETTINGS_TRANSIENT_PROPERTIES, SHARED_MATERIAL_TESTING_PAGES, SHARED_TESTING_PAGES, SPACE_PLACEHOLDER_CHAR, SelectPeerModal, SettingsPage, SharedAsyncValidators, SharedDirectivesModule, SharedFormArrayValidators, SharedFormGroupValidators, SharedHotkeysModule, SharedMatAutocompleteModule, SharedMatBadgeIconModule, SharedMatBooleanModule, SharedMatChipsModule, SharedMatDateTimeModule, SharedMatDurationModule, SharedMatLatLongModule, SharedMatNumpadModule, SharedMatSwipeModule, SharedMaterialModule, SharedModule, SharedPipesModule, SharedRoutingModule, SharedTestingModule, SharedTestsPage, SharedValidators, SocialModule, Software, StartableService, StatusById, StatusIds, StatusList, StrIncludesPipe, StrLengthPipe, SwipeTestPage, TableSelectColumnsComponent, TableTestPage, TableTestingModule, TextForm, TextPopover, TextPopoverTestingModule, TextPopoverTestingPage, ToStringPipe, Toasts, ToolbarComponent, ToolbarToken, TranslatablePipe, TranslateContextPipe, TranslateContextService, UploadFile, UploadFileComponent, UploadFilePopover, UploadFileTestingModule, UploadFileTestingPage, UserEvent, UserEventFilter, UserEventService, UserEventTypes, UserEventsTable, UserSettings, UsersPage, accountToString, adaptValueToControl, addValueInArray, arrayDistinct, arrayGroupBy, arraySize, asInputElement, canHaveFocus, capitalizeFirstLetter, chainPromises, changeCaseToUnderscore, clearValueInArray, copyEntity2Form, createPromiseEvent, createPromiseEventEmitter, departmentToString, departmentsToString, disableControls, emitPromiseEvent, entityToString, equals, equalsOrNil, fadeInAnimation, fadeInOutAnimation, filterFalse, filterNotNil, filterNumberInput, filterTrue, firstArrayValue, firstFalse, firstFalsePromise, firstNotNil, firstNotNilPromise, firstTrue, firstTruePromise, focusInput, focusNextInput, focusPreviousInput, formatLatitude, formatLongitude, fromDateISOString, fromScrollEndEvent, fromUnixMsTimestamp, fromUnixTimestamp, getCaretPosition, getColorContrast, getColorShade, getColorTint, getConnectionType, getControlFromPath, getFocusableInputElements, getFormErrors, getFormValueFromEntity, getProperty, getPropertyByPath, getPropertyByPathAsString, getRandomImage, hexToRgb, hexToRgbArray, isAndroid, isControlHasInput, isCordova, isEmptyArray, isIOS, isInputElement, isInstanceOf, isInt, isMobile, isNil, isNilOrBlank, isNilOrNaN, isNotEmptyArray, isNotNil, isNotNilOrBlank, isNotNilOrNaN, isNotNilString, isNumber, isNumberRange, isProgressEvent, isResponseEvent, isTouchUi, isWindows, joinProperties, joinPropertiesPath, logFormErrors, markAllAsTouched, markAsUntouched, markControlAsTouched, markFormGroupAsTouched, matchMedia, matchUpperCase, mergeLoadResult, mixHex, moveInputCaretToSeparator, noTrailingSlash, notNilOrDefault, nullIfUndefined, parseLatitudeOrLongitude, propertiesPathComparator, propertyComparator, propertyPathComparator, referentialToString, referentialsToString, remove, removeAll, removeDiacritics, removeDuplicatesFromArray, removeEnd, removeValueInArray, replaceAll, resetCalculatedValue, resizeArray, rgbArrayToHex, rgbToHex, round, scrollFactory, selectInputContent, selectInputRange, setCalculatedValue, setTabIndex, sleep, slideInOutAnimation, slideUpDownAnimation, sort, splitById, splitByProperty, startsWithUpperCase, suggestFromArray, suggestFromStringArray, tabindexComparator, testUserAgent, toBoolean, toDateISOString, toDuration, toFloat, toInt, toNotNil, toNumber, trimEmptyToNull, uncapitalizeFirstLetter, updateValueAndValidity, waitFor, waitForTrue, waitIdle, waitWhilePending, ɵ0$b as ɵ0, CustomReuseStrategy as ɵa, MatNumpadDomService as ɵb, isFocusableElement as ɵc, RegisterForm as ɵd, AccountValidatorService as ɵe, RegisterModal as ɵf, UserSettingsValidatorService as ɵg, LocalSettingsValidatorService as ɵh, AppIconComponent as ɵi, DateTestPage as ɵj, NumpadTestPage as ɵk, MatBadgeIconTestPage as ɵl, ToastTestingModule as ɵm, ToastTestingPage as ɵn };
27037
+ export { APP_ABOUT_DEVELOPERS, APP_ABOUT_PARTNERS, APP_CONFIG_OPTIONS, APP_FORM_ERROR_I18N_KEYS, APP_GRAPHQL_TYPE_POLICIES, APP_HOME_BUTTONS, APP_LOCALES, APP_LOCAL_SETTINGS, APP_LOCAL_SETTINGS_OPTIONS, APP_LOCAL_STORAGE_TYPE_POLICIES, APP_MENU_ITEMS, APP_TESTING_PAGES, AboutModal, Account, AccountPage, AccountService, AccountToStringPipe, ActionsColumnComponent, AdminModule, AdminRoutingModule, Alerts, AndroidOsEnvironment, AnimationState, AppEditor, AppEditorOptions, AppEntityEditor, AppForm, AppFormField, AppFormProvider, AppFormUtils, AppGestureConfig, AppGraphQLModule, AppHelpModal, AppInMemoryTable, AppInstallUpgradeCard, AppListForm, AppLoadingSpinner, AppMenuModule, AppNullForm, AppPropertiesForm, AppTabEditor, AppTabEditorOptions, AppTable, AppTableDataSourceOptions, AppTableUtils, AppValidatorService, AppendToInputDirective, ArrayFilterPipe, ArrayFirstPipe, ArrayIncludesPipe, ArrayLengthPipe, ArrayPluckPipe, AudioProvider, AuthForm, AuthGuardService, AuthModal, AutocompleteTestPage, AutofocusDirective, Base58, BaseEntityService, BaseGraphqlService, BaseGraphqlServiceOptions, BaseReferential, Beans, CORE_CONFIG_OPTIONS, CORE_TESTING_PAGES, CellValueChangeListener, ChipsTestPage, Color, ColorScale, ComponentDirtyGuard, ConfigService, Configuration, CoreModule, CoreTestingModule, CryptoService, DATE_ISO_PATTERN, DATE_UNIX_MS_TIMESTAMP, DATE_UNIX_TIMESTAMP, DEFAULT_PAGE_SIZE, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_PLACEHOLDER_CHAR, DEFAULT_REQUIRED_COLUMNS, DateDiffDurationPipe, DateFormatPipe, DateFromNowPipe, DateTimeTestPage, DateUtils, Department, DepartmentToStringPipe, DragAndDropDirective, DurationPipe, ENTITIES_STORAGE_KEY_PREFIX, ENVIRONMENT, EmptyArrayPipe, EntitiesService, EntitiesStorage, EntitiesTableDataSource, Entity, EntityClass, EntityClasses, EntityFilter, EntityFilterUtils, EntityMetadataComponent, EntityStore, EntityUtils, Environment, ErrorCodes, EvenPipe, FileResponse, FileService, FileSizePipe, FilesUtils, FormArrayHelper, FormButtonsBarComponent, FormButtonsBarToken, FormErrorTranslatePipe, FormErrorTranslator, FormFieldValuesHolder, FormGetArrayPipe, FormGetControlPipe, FormGetGroupPipe, FormGetPipe, Fragments, GraphqlService, HAMMER_PRESS_TIME, HAMMER_TAP_TIME, HighlightPipe, HomePage, Hotkeys, HotkeysDialogComponent, InMemoryEntitiesService, IsLoginAccountPipe, IsNilOrBlankPipe, IsNotNilOrBlankPipe, IsNotOnFieldModePipe, IsOnFieldModePipe, JobUtils, KEYBOARD_HIDE_DELAY_MS, LAT_LONG_DEFAULT_MAX_DECIMALS, LAT_LONG_PATTERNS, LatLongFormatPipe, LatLongTestPage, LatitudeFormatPipe, LocalSettingsService, LongitudeFormatPipe, MINIFY_ENTITY_FOR_LOCAL_STORAGE, MINIFY_ENTITY_FOR_POD, MapGetPipe, MapKeysPipe, MapValuesPipe, MatAutocompleteConfigHolder, MatAutocompleteField, MatBadgeIconDirective, MatBooleanField, MatChipsField, MatDate, MatDateShort, MatDateTime, MatDuration, MatLatLongField, MatNumpadComponent, MatNumpadContainerComponent, MatNumpadContent, MatPaginatorI18n, MatStepperI18n, MatSwipeField, MaterialTestingModule, MathAbsPipe, MenuComponent, MenuItems, MenuService, ModalToolbarComponent, NetworkService, NgInitDirective, NgVarDirective, NotEmptyArrayPipe, NumberFormatPipe, NumpadDirective, OddPipe, PRIORITIZED_AUTHORITIES, PUBKEY_REGEXP, Peer, Person, PersonFilter, PersonFragments, PersonService, PersonToStringPipe, PersonUtils, PersonValidatorService, PlatformService, ProgressBarService, ProgressInterceptor, PropertyGetPipe, RESERVED_END_COLUMNS, RESERVED_START_COLUMNS, Referential, ReferentialFilter, ReferentialRef, ReferentialUtils, ReferentialValidatorService, RegisterConfirmPage, SETTINGS_DISPLAY_COLUMNS, SETTINGS_FILTER, SETTINGS_PAGE_SIZE, SETTINGS_SORTED_COLUMN, SETTINGS_STORAGE_KEY, SETTINGS_TRANSIENT_PROPERTIES, SHARED_MATERIAL_TESTING_PAGES, SHARED_TESTING_PAGES, SPACE_PLACEHOLDER_CHAR, SelectPeerModal, SettingsPage, SharedAsyncValidators, SharedDirectivesModule, SharedFormArrayValidators, SharedFormGroupValidators, SharedHotkeysModule, SharedMatAutocompleteModule, SharedMatBadgeIconModule, SharedMatBooleanModule, SharedMatChipsModule, SharedMatDateTimeModule, SharedMatDurationModule, SharedMatLatLongModule, SharedMatNumpadModule, SharedMatSwipeModule, SharedMaterialModule, SharedModule, SharedPipesModule, SharedRoutingModule, SharedTestingModule, SharedTestsPage, SharedValidators, SocialModule, Software, StartableService, StatusById, StatusIds, StatusList, StrIncludesPipe, StrLengthPipe, SwipeTestPage, TableSelectColumnsComponent, TableTestPage, TableTestingModule, TextForm, TextPopover, TextPopoverTestingModule, TextPopoverTestingPage, ToStringPipe, Toasts, ToolbarComponent, ToolbarToken, TranslatablePipe, TranslateContextPipe, TranslateContextService, UploadFile, UploadFileComponent, UploadFilePopover, UploadFileTestingModule, UploadFileTestingPage, UserEvent, UserEventFilter, UserEventService, UserEventTypes, UserEventsTable, UserSettings, UsersPage, accountToString, adaptValueToControl, addValueInArray, arrayDistinct, arrayGroupBy, arraySize, asInputElement, canHaveFocus, capitalizeFirstLetter, chainPromises, changeCaseToUnderscore, clearValueInArray, copyEntity2Form, createPromiseEvent, createPromiseEventEmitter, departmentToString, departmentsToString, disableControls, emitPromiseEvent, entityToString, equals, equalsOrNil, fadeInAnimation, fadeInOutAnimation, filterFalse, filterNotNil, filterNumberInput, filterTrue, firstArrayValue, firstFalse, firstFalsePromise, firstNotNil, firstNotNilPromise, firstTrue, firstTruePromise, focusInput, focusNextInput, focusPreviousInput, formatLatitude, formatLongitude, fromDateISOString, fromScrollEndEvent, fromUnixMsTimestamp, fromUnixTimestamp, getCaretPosition, getColorContrast, getColorShade, getColorTint, getConnectionType, getControlFromPath, getFocusableInputElements, getFormErrors, getFormValueFromEntity, getProperty, getPropertyByPath, getPropertyByPathAsString, getRandomImage, hexToRgb, hexToRgbArray, isAndroid, isControlHasInput, isCordova, isEmptyArray, isIOS, isInputElement, isInstanceOf, isInt, isMobile, isNil, isNilOrBlank, isNilOrNaN, isNotEmptyArray, isNotNil, isNotNilOrBlank, isNotNilOrNaN, isNotNilString, isNumber, isNumberRange, isProgressEvent, isResponseEvent, isTouchUi, isWindows, joinProperties, joinPropertiesPath, logFormErrors, markAllAsTouched, markAsUntouched, markControlAsTouched, markFormGroupAsTouched, matchMedia, matchUpperCase, mergeLoadResult, mixHex, moveInputCaretToSeparator, noTrailingSlash, notNilOrDefault, nullIfUndefined, parseLatitudeOrLongitude, propertiesPathComparator, propertyComparator, propertyPathComparator, referentialToString, referentialsToString, remove, removeAll, removeDiacritics, removeDuplicatesFromArray, removeEnd, removeValueInArray, replaceAll, resetCalculatedValue, resizeArray, rgbArrayToHex, rgbToHex, round, scrollFactory, selectInputContent, selectInputRange, setCalculatedValue, setTabIndex, sleep, slideInOutAnimation, slideUpDownAnimation, sort, splitById, splitByProperty, startsWithUpperCase, suggestFromArray, suggestFromStringArray, tabindexComparator, testUserAgent, toBoolean, toDateISOString, toDuration, toFloat, toInt, toNotNil, toNumber, trimEmptyToNull, uncapitalizeFirstLetter, updateValueAndValidity, waitFor, waitForTrue, waitIdle, waitWhilePending, ɵ0$b as ɵ0, CustomReuseStrategy as ɵa, MatNumpadDomService as ɵb, isFocusableElement as ɵc, RegisterForm as ɵd, AccountValidatorService as ɵe, RegisterModal as ɵf, UserSettingsValidatorService as ɵg, LocalSettingsValidatorService as ɵh, AppIconComponent as ɵi, DateTestPage as ɵj, NumpadTestPage as ɵk, MatBadgeIconTestPage as ɵl, ToastTestingModule as ɵm, ToastTestingPage as ɵn };
27028
27038
  //# sourceMappingURL=sumaris-net.ngx-components.js.map