valtech-components 4.0.550 → 4.0.551

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.
@@ -187,13 +187,15 @@ export class NotificationsService {
187
187
  * @param limit - Máximo de notificaciones (default: 50)
188
188
  */
189
189
  getUnread(limit = DEFAULT_LIMIT) {
190
- if (!this.collection)
191
- return of([]);
192
- return this.collection.watchAll({
193
- where: [{ field: 'isRead', operator: '==', value: false }],
194
- orderBy: [{ field: 'createdAt', direction: 'desc' }],
195
- limit,
196
- });
190
+ return this.collectionWhenAuthReady$().pipe(switchMap(collection => {
191
+ if (!collection)
192
+ return of([]);
193
+ return collection.watchAll({
194
+ where: [{ field: 'isRead', operator: '==', value: false }],
195
+ orderBy: [{ field: 'createdAt', direction: 'desc' }],
196
+ limit,
197
+ });
198
+ }));
197
199
  }
198
200
  /**
199
201
  * Cuenta notificaciones no leídas usando server-side aggregation query.
@@ -278,4 +280,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
278
280
  }], ctorParameters: () => [{ type: i0.Injector }, { type: i1.FirestoreCollectionFactory, decorators: [{
279
281
  type: Optional
280
282
  }] }] });
281
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9maXJlYmFzZS9ub3RpZmljYXRpb25zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7QUFFSCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBWSxRQUFRLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWhELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7OztBQUlyRCxvREFBb0Q7QUFDcEQsTUFBTSxhQUFhLEdBQUcsRUFBRSxDQUFDO0FBMkJ6Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JHO0FBRUgsTUFBTSxPQUFPLG9CQUFvQjtJQWUvQixZQUNVLFFBQWtCLEVBQ04saUJBQTZDO1FBRHpELGFBQVEsR0FBUixRQUFRLENBQVU7UUFDTixzQkFBaUIsR0FBakIsaUJBQWlCLENBQTRCO1FBaEIzRCxlQUFVLEdBQWlELElBQUksQ0FBQztRQUNoRSxrQkFBYSxHQUFrQixJQUFJLENBQUM7UUFDcEMscUJBQWdCLEdBQUcsSUFBSSxlQUFlLENBQzVDLElBQUksQ0FDTCxDQUFDO1FBRUYsOERBQThEO1FBQ3RELGdCQUFXLEdBQXVCLElBQUksQ0FBQztRQUUvQyx3RUFBd0U7UUFDeEUsNkVBQTZFO1FBQzdFLHlCQUF5QjtRQUNqQixvQkFBZSxHQUEyQixJQUFJLENBQUM7UUFNckQsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMs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QixNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDM0MsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDaEQsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSztRQUNILElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQzFCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkMsQ0FBQzsrR0E1UVUsb0JBQW9CO21IQUFwQixvQkFBb0IsY0FEUCxNQUFNOzs0RkFDbkIsb0JBQW9CO2tCQURoQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7MEJBa0I3QixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBOb3RpZmljYXRpb25zIFNlcnZpY2VcbiAqXG4gKiBTZXJ2aWNpbyBwYXJhIGxlZXIgbm90aWZpY2FjaW9uZXMgZGVzZGUgRmlyZXN0b3JlLlxuICogRWwgYmFja2VuZCBlc2NyaWJlIGxhcyBub3RpZmljYWNpb25lcywgZWwgZnJvbnRlbmQgc29sbyBsYXMgbGVlIHkgYWN0dWFsaXphIGVzdGFkby5cbiAqXG4gKiBTZSBhdXRvLWluaWNpYWxpemEgY3VhbmRvIEF1dGhTZXJ2aWNlIHRpZW5lIHVuIHVzdWFyaW8gYXV0ZW50aWNhZG8uXG4gKiBUYW1iacOpbiBwdWVkZSBpbmljaWFsaXphcnNlIG1hbnVhbG1lbnRlIGNvbiBgaW5pdGlhbGl6ZSh1c2VySWQpYC5cbiAqL1xuXG5pbXBvcnQgeyBlZmZlY3QsIEluamVjdGFibGUsIEluamVjdG9yLCBPcHRpb25hbCwgcnVuSW5JbmplY3Rpb25Db250ZXh0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIEVNUFRZLCBmcm9tLCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSAnLi4vYXV0aC9hdXRoLnNlcnZpY2UnO1xuaW1wb3J0IHsgRmlyZWJhc2VTZXJ2aWNlIH0gZnJvbSAnLi9maXJlYmFzZS5zZXJ2aWNlJztcbmltcG9ydCB7IEZpcmVzdG9yZUNvbGxlY3Rpb25GYWN0b3J5LCBUeXBlZENvbGxlY3Rpb24gfSBmcm9tICcuL2ZpcmVzdG9yZS1jb2xsZWN0aW9uJztcbmltcG9ydCB7IEZpcmVzdG9yZURvY3VtZW50IH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKiBMw61taXRlIHBvciBkZWZlY3RvIGRlIG5vdGlmaWNhY2lvbmVzIGEgY2FyZ2FyICovXG5jb25zdCBERUZBVUxUX0xJTUlUID0gNTA7XG5cbi8qKlxuICogRG9jdW1lbnRvIGRlIG5vdGlmaWNhY2nDs24gZW4gRmlyZXN0b3JlLlxuICogRXN0cnVjdHVyYSBlc2NyaXRhIHBvciBlbCBiYWNrZW5kLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5vdGlmaWNhdGlvbkRvY3VtZW50IGV4dGVuZHMgRmlyZXN0b3JlRG9jdW1lbnQge1xuICAvKiogVMOtdHVsbyBkZSBsYSBub3RpZmljYWNpw7NuICovXG4gIHRpdGxlPzogc3RyaW5nO1xuICAvKiogQ3VlcnBvIGRlbCBtZW5zYWplICovXG4gIGJvZHk/OiBzdHJpbmc7XG4gIC8qKiBEYXRvcyBwZXJzb25hbGl6YWRvcyAoZWo6IHJvdXRlLCBhY3Rpb25UeXBlKS4gTGVnYWN5IOKAlCBwcmVmZXJpciBhY3Rpb25Sb3V0ZSArIHBheWxvYWQgKi9cbiAgZGF0YT86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIC8qKiBUaXBvIGRlIG5vdGlmaWNhY2nDs24gKi9cbiAgdHlwZT86ICdmY20nIHwgJ3N5c3RlbScgfCAncmVtaW5kZXInIHwgc3RyaW5nO1xuICAvKiogU2kgbGEgbm90aWZpY2FjacOzbiBmdWUgbGXDrWRhICovXG4gIGlzUmVhZDogYm9vbGVhbjtcbiAgLyoqIEFwcElEIG9yaWdlbiAoZWo6ICdzaG93Y2FzZScsICdzaWdpZnknKS4gUGVybWl0ZSBjcm9zcy1hcHAgcm91dGluZyAqL1xuICBhcHBJZD86IHN0cmluZztcbiAgLyoqIE9yZ0lEIGFzb2NpYWRvIChzaSBsYSBub3RpZiBlcyBvcmctc2NvcGVkKS4gSGFiaWxpdGEgc3dpdGNoLW9yZyBhbCBhYnJpciAqL1xuICBvcmdJZD86IHN0cmluZztcbiAgLyoqIFJvdXRlIGRlc3Rpbm8gYWwgY2xpY2sgKGVqOiAnL2FwcC9kb2NzLzEyMycpICovXG4gIGFjdGlvblJvdXRlPzogc3RyaW5nO1xuICAvKiogUGF5bG9hZCBlc3RydWN0dXJhZG8gcGFyYSBhY2Npb25lcyAocmVlbXBsYXpvIHRpcGFkbyBkZSBgZGF0YWApICovXG4gIHBheWxvYWQ/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbn1cblxuLyoqXG4gKiBTZXJ2aWNpbyBwYXJhIGxlZXIgbm90aWZpY2FjaW9uZXMgZGVzZGUgRmlyZXN0b3JlLlxuICpcbiAqIFNlIGF1dG8taW5pY2lhbGl6YSBjdWFuZG8gQXV0aFNlcnZpY2UgdGllbmUgdW4gdXN1YXJpbyBhdXRlbnRpY2Fkby5cbiAqIE5vIHJlcXVpZXJlIGxsYW1hciBhIGBpbml0aWFsaXplKClgIG1hbnVhbG1lbnRlIHNpIEF1dGhTZXJ2aWNlIGVzdMOhIGNvbmZpZ3VyYWRvLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0eXBlc2NyaXB0XG4gKiAvLyBDb24gQXV0aFNlcnZpY2UgY29uZmlndXJhZG86IGF1dG8taW5pY2lhbGl6YWNpw7NuXG4gKiAvLyBTb2xvIGlueWVjdGFyIHkgdXNhciBkaXJlY3RhbWVudGVcbiAqIHByaXZhdGUgbm90aWZpY2F0aW9ucyA9IGluamVjdChOb3RpZmljYXRpb25zU2VydmljZSk7XG4gKlxuICogbm90aWZpY2F0aW9ucyQgPSB0aGlzLm5vdGlmaWNhdGlvbnMuZ2V0QWxsKCk7XG4gKiB1bnJlYWRDb3VudCQgPSB0aGlzLm5vdGlmaWNhdGlvbnMuZ2V0VW5yZWFkQ291bnQoKTtcbiAqXG4gKiAvLyBTaW4gQXV0aFNlcnZpY2U6IGluaWNpYWxpemFjacOzbiBtYW51YWxcbiAqIHRoaXMubm90aWZpY2F0aW9ucy5pbml0aWFsaXplKHVzZXJJZCk7XG4gKiBgYGBcbiAqL1xuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBOb3RpZmljYXRpb25zU2VydmljZSB7XG4gIHByaXZhdGUgY29sbGVjdGlvbjogVHlwZWRDb2xsZWN0aW9uPE5vdGlmaWNhdGlvbkRvY3VtZW50PiB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGN1cnJlbnRVc2VySWQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGNvbGxlY3Rpb25SZWFkeSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFR5cGVkQ29sbGVjdGlvbjxOb3RpZmljYXRpb25Eb2N1bWVudD4gfCBudWxsPihcbiAgICBudWxsXG4gICk7XG5cbiAgLy8gSW55ZWNjacOzbiBvcGNpb25hbCAtIEF1dGhTZXJ2aWNlIHB1ZWRlIG5vIGVzdGFyIGNvbmZpZ3VyYWRvXG4gIHByaXZhdGUgYXV0aFNlcnZpY2U6IEF1dGhTZXJ2aWNlIHwgbnVsbCA9IG51bGw7XG5cbiAgLy8gSW55ZWNjacOzbiBvcGNpb25hbCAtIEZpcmViYXNlU2VydmljZSBnYXRlYSBsb3MgbGlzdGVuZXJzIGhhc3RhIHF1ZSBsYVxuICAvLyBzZXNpw7NuIGRlIEZpcmViYXNlIEF1dGggZXN0w6kgbGlzdGEgKGNpZXJyYSBsYSB2ZW50YW5hIGRlIHBlcm1pc3Npb24tZGVuaWVkXG4gIC8vIGVuIGNvbGQgc3RhcnQgZGUgUFdBKS5cbiAgcHJpdmF0ZSBmaXJlYmFzZVNlcnZpY2U6IEZpcmViYXNlU2VydmljZSB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgY29sbGVjdGlvbkZhY3Rvcnk6IEZpcmVzdG9yZUNvbGxlY3Rpb25GYWN0b3J5XG4gICkge1xuICAgIHRoaXMuZmlyZWJhc2VTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQoRmlyZWJhc2VTZXJ2aWNlLCBudWxsKTtcbiAgICAvLyBJbnRlbnRhciBvYnRlbmVyIEF1dGhTZXJ2aWNlIGRlIGZvcm1hIGxhenkgKHB1ZWRlIG5vIGVzdGFyIGNvbmZpZ3VyYWRvKVxuICAgIHRoaXMuc2V0dXBBdXRvSW5pdGlhbGl6YXRpb24oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHYXRlIGRlIEZpcmViYXNlIEF1dGg6IGVtaXRlIGxhIGNvbGVjY2nDs24gbGlzdGEgU09MTyBjdWFuZG8gbGEgc2VzacOzbiBkZVxuICAgKiBGaXJlYmFzZSBBdXRoIGVzdMOhIGNvbmZpcm1hZGEuIFNpbiBGaXJlYmFzZVNlcnZpY2UgZGlzcG9uaWJsZSwgbm8gZ2F0ZWFcbiAgICogKGRlZ3JhZGEgYWwgY29tcG9ydGFtaWVudG8gcHJldmlvKS4gRXNwZXJhIGEgcXVlIGBmaXJlYmFzZUF1dGhSZWFkeSRgXG4gICAqIGVtaXRhIGFudGVzIGRlIHByb3BhZ2FyIGxhIGNvbGVjY2nDs24g4oCUIGFzw60gZWwgbGlzdGVuZXIgRmlyZXN0b3JlIG51bmNhIHNlXG4gICAqIGFkanVudGEgYW50ZXMgZGUgcXVlIGByZXF1ZXN0LmF1dGhgIGVzdMOpIGRpc3BvbmlibGUuXG4gICAqL1xuICBwcml2YXRlIGNvbGxlY3Rpb25XaGVuQXV0aFJlYWR5JCgpOiBPYnNlcnZhYmxlPFR5cGVkQ29sbGVjdGlvbjxOb3RpZmljYXRpb25Eb2N1bWVudD4gfCBudWxsPiB7XG4gICAgY29uc3QgZmIgPSB0aGlzLmZpcmViYXNlU2VydmljZTtcbiAgICBpZiAoIWZiKSB7XG4gICAgICByZXR1cm4gdGhpcy5jb2xsZWN0aW9uUmVhZHkkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5jb2xsZWN0aW9uUmVhZHkkLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoY29sbGVjdGlvbiA9PiB7XG4gICAgICAgIGlmICghY29sbGVjdGlvbikge1xuICAgICAgICAgIGNvbnNvbGUubG9nKCdbTm90aWZzXSBjb2xsZWN0aW9uV2hlbkF1dGhSZWFkeSQg4oCUIGNvbGxlY3Rpb24gaXMgbnVsbCAobm90IGluaXRpYWxpemVkKScpO1xuICAgICAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zb2xlLmxvZygnW05vdGlmc10gY29sbGVjdGlvbldoZW5BdXRoUmVhZHkkIOKAlCBjb2xsZWN0aW9uIHJlYWR5LCBhd2FpdGluZyBGaXJlYmFzZSBBdXRoJyk7XG4gICAgICAgIHJldHVybiBmcm9tKGZiLndoZW5GaXJlYmFzZUF1dGhSZWFkeSgpKS5waXBlKG1hcCgoKSA9PiBjb2xsZWN0aW9uKSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ29uZmlndXJhIGF1dG8taW5pY2lhbGl6YWNpw7NuIG9ic2VydmFuZG8gZWwgZXN0YWRvIGRlIEF1dGhTZXJ2aWNlLlxuICAgKiBTZSBlamVjdXRhIGVuIGVsIGNvbnRleHRvIGRlbCBpbmplY3RvciBwYXJhIHBvZGVyIHVzYXIgZWZmZWN0KCkuXG4gICAqL1xuICBwcml2YXRlIHNldHVwQXV0b0luaXRpYWxpemF0aW9uKCk6IHZvaWQge1xuICAgIC8vIE9idGVuZXIgQXV0aFNlcnZpY2UgZGUgZm9ybWEgbGF6eVxuICAgIHRyeSB7XG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQoQXV0aFNlcnZpY2UsIG51bGwpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gQXV0aFNlcnZpY2Ugbm8gZXN0w6EgY29uZmlndXJhZG8sIG5vIGhheSBhdXRvLWluaWNpYWxpemFjacOzblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5hdXRoU2VydmljZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIFVzYXIgcnVuSW5JbmplY3Rpb25Db250ZXh0IHBhcmEgcG9kZXIgY3JlYXIgZWwgZWZmZWN0XG4gICAgcnVuSW5JbmplY3Rpb25Db250ZXh0KHRoaXMuaW5qZWN0b3IsICgpID0+IHtcbiAgICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IHVzZXIgPSB0aGlzLmF1dGhTZXJ2aWNlIS51c2VyKCk7XG5cbiAgICAgICAgaWYgKHVzZXI/LnVzZXJJZCAmJiB0aGlzLmN1cnJlbnRVc2VySWQgIT09IHVzZXIudXNlcklkKSB7XG4gICAgICAgICAgLy8gVXN1YXJpbyBhdXRlbnRpY2FkbzogaW5pY2lhbGl6YXIgY29uIHN1IElEXG4gICAgICAgICAgdGhpcy5pbml0aWFsaXplKHVzZXIudXNlcklkKTtcbiAgICAgICAgfSBlbHNlIGlmICghdXNlciAmJiB0aGlzLmN1cnJlbnRVc2VySWQpIHtcbiAgICAgICAgICAvLyBMb2dvdXQ6IGxpbXBpYXIgZXN0YWRvXG4gICAgICAgICAgdGhpcy5yZXNldCgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbmljaWFsaXphIGVsIHNlcnZpY2lvIHBhcmEgdW4gdXN1YXJpbyBlc3BlY8OtZmljby5cbiAgICpcbiAgICogTk9UQTogU2UgbGxhbWEgYXV0b23DoXRpY2FtZW50ZSBzaSBBdXRoU2VydmljZSBlc3TDoSBjb25maWd1cmFkby5cbiAgICogU29sbyB1c2FyIG1hbnVhbG1lbnRlIHNpIEF1dGhTZXJ2aWNlIG5vIGVzdMOhIGRpc3BvbmlibGUgbyBzZSBuZWNlc2l0YVxuICAgKiB1biB1c2VySWQgZGlmZXJlbnRlIGFsIGRlbCB1c3VhcmlvIGF1dGVudGljYWRvLlxuICAgKi9cbiAgaW5pdGlhbGl6ZSh1c2VySWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnNvbGUubG9nKGBbTm90aWZzXSBpbml0aWFsaXplIHVpZD0ke3VzZXJJZH1gKTtcbiAgICBpZiAoIXRoaXMuY29sbGVjdGlvbkZhY3RvcnkpIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgJ1tOb3RpZmljYXRpb25zXSBGaXJlc3RvcmVDb2xsZWN0aW9uRmFjdG9yeSBub3QgYXZhaWxhYmxlLiBFbnN1cmUgcHJvdmlkZVZhbHRlY2hGaXJlYmFzZSgpIGlzIGNvbmZpZ3VyZWQuJ1xuICAgICAgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmN1cnJlbnRVc2VySWQgPSB1c2VySWQ7XG5cbiAgICAvLyBQYXRoIGdsb2JhbCBjcm9zcy1hcHA6IC91c2Vycy97dWlkfS9ub3RpZmljYXRpb25zIChzaW4gcHJlZmlqbyBhcHBzL3thcHBJZH0vKS5cbiAgICAvLyBza2lwQXBwUHJlZml4IGJ5cGFzc2EgRmlyZXN0b3JlU2VydmljZS5wcmVmaXhDb2xsZWN0aW9uUGF0aCBwYXJhIGZhbi1vdXQgY29tcGFydGlkby5cbiAgICBjb25zdCBiYXNlUGF0aCA9IGB1c2Vycy8ke3VzZXJJZH0vbm90aWZpY2F0aW9uc2A7XG5cbiAgICB0aGlzLmNvbGxlY3Rpb24gPSB0aGlzLmNvbGxlY3Rpb25GYWN0b3J5LmNyZWF0ZTxOb3RpZmljYXRpb25Eb2N1bWVudD4oYmFzZVBhdGgsIHtcbiAgICAgIHRpbWVzdGFtcHM6IHRydWUsXG4gICAgICBza2lwQXBwUHJlZml4OiB0cnVlLFxuICAgIH0pO1xuICAgIHRoaXMuY29sbGVjdGlvblJlYWR5JC5uZXh0KHRoaXMuY29sbGVjdGlvbik7XG5cbiAgICBjb25zb2xlLmxvZygnW05vdGlmaWNhdGlvbnNdIEluaXRpYWxpemVkIHdpdGggcGF0aDonLCBiYXNlUGF0aCk7XG4gIH1cblxuICAvKipcbiAgICogVmVyaWZpY2Egc2kgZWwgc2VydmljaW8gZXN0w6EgaW5pY2lhbGl6YWRvLlxuICAgKi9cbiAgZ2V0IGlzUmVhZHkoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY29sbGVjdGlvbiAhPT0gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiBPYnRpZW5lIGVsIElEIGRlbCB1c3VhcmlvIGFjdHVhbC5cbiAgICovXG4gIGdldCB1c2VySWQoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudFVzZXJJZDtcbiAgfVxuXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAvLyBMRUNUVVJBXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8qKlxuICAgKiBPYnRpZW5lIG5vdGlmaWNhY2lvbmVzIG9yZGVuYWRhcyBwb3IgZmVjaGEgZGVzY2VuZGVudGUgKHJlYWwtdGltZSkuXG4gICAqIFNlIGFjdHVhbGl6YSBhdXRvbcOhdGljYW1lbnRlIGN1YW5kbyBjYW1iaWFuIGxvcyBkYXRvcy5cbiAgICpcbiAgICogRWwgbGlzdGVuZXIgRmlyZXN0b3JlIE5PIHNlIGFkanVudGEgaGFzdGEgcXVlIGxhIHNlc2nDs24gZGUgRmlyZWJhc2UgQXV0aFxuICAgKiBlc3TDqSBjb25maXJtYWRhIChgRmlyZWJhc2VTZXJ2aWNlLmZpcmViYXNlQXV0aFJlYWR5YCkuIEVzdG8gY2llcnJhIGxhXG4gICAqIHZlbnRhbmEgZGUgYHBlcm1pc3Npb24tZGVuaWVkYCBlbiBjb2xkIHN0YXJ0IGRlIFBXQSwgZG9uZGUgZWwgSldUIGRlbFxuICAgKiBiYWNrZW5kIHB1ZWRlIGVzdGFyIGxpc3RvIGFudGVzIHF1ZSBsYSBzZXNpw7NuIGRlIEZpcmViYXNlIEF1dGguXG4gICAqXG4gICAqIEBwYXJhbSBsaW1pdCAtIE3DoXhpbW8gZGUgbm90aWZpY2FjaW9uZXMgYSBjYXJnYXIgKGRlZmF1bHQ6IDUwKVxuICAgKi9cbiAgZ2V0QWxsKGxpbWl0ID0gREVGQVVMVF9MSU1JVCk6IE9ic2VydmFibGU8Tm90aWZpY2F0aW9uRG9jdW1lbnRbXT4ge1xuICAgIHJldHVybiB0aGlzLmNvbGxlY3Rpb25XaGVuQXV0aFJlYWR5JCgpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoY29sbGVjdGlvbiA9PiB7XG4gICAgICAgIGlmICghY29sbGVjdGlvbikge1xuICAgICAgICAgIGNvbnNvbGUud2FybignW05vdGlmc10gZ2V0QWxsIOKAlCBjb2xsZWN0aW9uIG51bGwg4oaSIHJldHVybmluZyBFTVBUWSAobm8gZW1pc3Npb24pJyk7XG4gICAgICAgICAgcmV0dXJuIEVNUFRZO1xuICAgICAgICB9XG4gICAgICAgIGNvbnNvbGUubG9nKCdbTm90aWZzXSBnZXRBbGwg4oCUIGF0dGFjaGluZyBGaXJlc3RvcmUgd2F0Y2hBbGwgbGlzdGVuZXInKTtcbiAgICAgICAgcmV0dXJuIGNvbGxlY3Rpb24ud2F0Y2hBbGwoe1xuICAgICAgICAgIG9yZGVyQnk6IFt7IGZpZWxkOiAnY3JlYXRlZEF0JywgZGlyZWN0aW9uOiAnZGVzYycgfV0sXG4gICAgICAgICAgbGltaXQsXG4gICAgICAgIH0pO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIE9idGllbmUgbm90aWZpY2FjaW9uZXMgKG9uZS10aW1lIGZldGNoIHNpbiBsaXN0ZW5lcikuXG4gICAqIMOadGlsIHBhcmEgY2FyZ2FzIGluaWNpYWxlcyBzaW4gbmVjZXNpZGFkIGRlIHVwZGF0ZXMgZW4gdGllbXBvIHJlYWwuXG4gICAqXG4gICAqIEBwYXJhbSBsaW1pdCAtIE3DoXhpbW8gZGUgbm90aWZpY2FjaW9uZXMgYSBjYXJnYXIgKGRlZmF1bHQ6IDUwKVxuICAgKi9cbiAgYXN5bmMgZ2V0QWxsT25jZShsaW1pdCA9IERFRkFVTFRfTElNSVQpOiBQcm9taXNlPE5vdGlmaWNhdGlvbkRvY3VtZW50W10+IHtcbiAgICBpZiAoIXRoaXMuY29sbGVjdGlvbikgcmV0dXJuIFtdO1xuXG4gICAgcmV0dXJuIHRoaXMuY29sbGVjdGlvbi5nZXRBbGxPbmNlKHtcbiAgICAgIG9yZGVyQnk6IFt7IGZpZWxkOiAnY3JlYXRlZEF0JywgZGlyZWN0aW9uOiAnZGVzYycgfV0sXG4gICAgICBsaW1pdCxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPYnRpZW5lIHNvbG8gbm90aWZpY2FjaW9uZXMgbm8gbGXDrWRhcyAocmVhbC10aW1lLCBmaWx0cmFkbyBzZXJ2ZXItc2lkZSkuXG4gICAqXG4gICAqIEBwYXJhbSBsaW1pdCAtIE3DoXhpbW8gZGUgbm90aWZpY2FjaW9uZXMgKGRlZmF1bHQ6IDUwKVxuICAgKi9cbiAgZ2V0VW5yZWFkKGxpbWl0ID0gREVGQVVMVF9MSU1JVCk6IE9ic2VydmFibGU8Tm90aWZpY2F0aW9uRG9jdW1lbnRbXT4ge1xuICAgIGlmICghdGhpcy5jb2xsZWN0aW9uKSByZXR1cm4gb2YoW10pO1xuXG4gICAgcmV0dXJuIHRoaXMuY29sbGVjdGlvbi53YXRjaEFsbCh7XG4gICAgICB3aGVyZTogW3sgZmllbGQ6ICdpc1JlYWQnLCBvcGVyYXRvcjogJz09JywgdmFsdWU6IGZhbHNlIH1dLFxuICAgICAgb3JkZXJCeTogW3sgZmllbGQ6ICdjcmVhdGVkQXQnLCBkaXJlY3Rpb246ICdkZXNjJyB9XSxcbiAgICAgIGxpbWl0LFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEN1ZW50YSBub3RpZmljYWNpb25lcyBubyBsZcOtZGFzIHVzYW5kbyBzZXJ2ZXItc2lkZSBhZ2dyZWdhdGlvbiBxdWVyeS5cbiAgICogTm8gZGVzY2FyZ2EgZG9jdW1lbnRvcyDigJQgZWZpY2llbnRlIHBhcmEgYmFkZ2VzIGVuIFVJLlxuICAgKlxuICAgKiBHYXRlYWRvIHBvciBgZmlyZWJhc2VBdXRoUmVhZHlgIOKAlCBsYSBhZ2dyZWdhdGlvbiBxdWVyeSBubyBzZSBlamVjdXRhIGhhc3RhXG4gICAqIHF1ZSBsYSBzZXNpw7NuIGRlIEZpcmViYXNlIEF1dGggZXN0w6kgbGlzdGEuXG4gICAqL1xuICBnZXRVbnJlYWRDb3VudCgpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgIHJldHVybiB0aGlzLmNvbGxlY3Rpb25XaGVuQXV0aFJlYWR5JCgpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoY29sbGVjdGlvbiA9PiB7XG4gICAgICAgIGlmICghY29sbGVjdGlvbikgcmV0dXJuIG9mKDApO1xuICAgICAgICByZXR1cm4gZnJvbShcbiAgICAgICAgICBjb2xsZWN0aW9uLmNvdW50KHtcbiAgICAgICAgICAgIHdoZXJlOiBbeyBmaWVsZDogJ2lzUmVhZCcsIG9wZXJhdG9yOiAnPT0nLCB2YWx1ZTogZmFsc2UgfV0sXG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBPYnRpZW5lIHVuYSBub3RpZmljYWNpw7NuIHBvciBJRC5cbiAgICovXG4gIGFzeW5jIGdldEJ5SWQobm90aWZpY2F0aW9uSWQ6IHN0cmluZyk6IFByb21pc2U8Tm90aWZpY2F0aW9uRG9jdW1lbnQgfCBudWxsPiB7XG4gICAgaWYgKCF0aGlzLmNvbGxlY3Rpb24pIHJldHVybiBudWxsO1xuICAgIHJldHVybiB0aGlzLmNvbGxlY3Rpb24uZ2V0QnlJZChub3RpZmljYXRpb25JZCk7XG4gIH1cblxuICAvLyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgLy8gQUNDSU9ORVNcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIE1hcmNhIHVuYSBub3RpZmljYWNpw7NuIGNvbW8gbGXDrWRhLlxuICAgKi9cbiAgYXN5bmMgbWFya0FzUmVhZChub3RpZmljYXRpb25JZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLmNvbGxlY3Rpb24pIHJldHVybjtcbiAgICBhd2FpdCB0aGlzLmNvbGxlY3Rpb24udXBkYXRlKG5vdGlmaWNhdGlvbklkLCB7IGlzUmVhZDogdHJ1ZSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYXJjYSB0b2RhcyBsYXMgbm90aWZpY2FjaW9uZXMgbm8gbGXDrWRhcyBjb21vIGxlw61kYXMgKGJhdGNoIHdyaXRlKS5cbiAgICovXG4gIGFzeW5jIG1hcmtBbGxBc1JlYWQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLmNvbGxlY3Rpb24pIHJldHVybjtcblxuICAgIGNvbnN0IHVucmVhZCA9IGF3YWl0IHRoaXMuY29sbGVjdGlvbi5xdWVyeSh7XG4gICAgICB3aGVyZTogW3sgZmllbGQ6ICdpc1JlYWQnLCBvcGVyYXRvcjogJz09JywgdmFsdWU6IGZhbHNlIH1dLFxuICAgIH0pO1xuXG4gICAgY29uc3QgaWRzID0gdW5yZWFkLm1hcChuID0+IG4uaWQhKS5maWx0ZXIoQm9vbGVhbik7XG4gICAgYXdhaXQgdGhpcy5jb2xsZWN0aW9uLmJhdGNoVXBkYXRlKGlkcywgeyBpc1JlYWQ6IHRydWUgfSk7XG4gIH1cblxuICAvKipcbiAgICogRWxpbWluYSB1bmEgbm90aWZpY2FjacOzbi5cbiAgICovXG4gIGFzeW5jIGRlbGV0ZShub3RpZmljYXRpb25JZDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLmNvbGxlY3Rpb24pIHJldHVybjtcbiAgICBhd2FpdCB0aGlzLmNvbGxlY3Rpb24uZGVsZXRlKG5vdGlmaWNhdGlvbklkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbGltaW5hIHRvZGFzIGxhcyBub3RpZmljYWNpb25lcyBkZWwgdXN1YXJpbyAoYmF0Y2ggZGVsZXRlKS5cbiAgICovXG4gIGFzeW5jIGRlbGV0ZUFsbCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIXRoaXMuY29sbGVjdGlvbikgcmV0dXJuO1xuXG4gICAgY29uc3QgYWxsID0gYXdhaXQgdGhpcy5jb2xsZWN0aW9uLmdldEFsbCgpO1xuICAgIGNvbnN0IGlkcyA9IGFsbC5tYXAobiA9PiBuLmlkISkuZmlsdGVyKEJvb2xlYW4pO1xuICAgIGF3YWl0IHRoaXMuY29sbGVjdGlvbi5iYXRjaERlbGV0ZShpZHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIExpbXBpYSBlbCBlc3RhZG8gZGVsIHNlcnZpY2lvLlxuICAgKiDDmnRpbCBwYXJhIGxvZ291dC5cbiAgICovXG4gIHJlc2V0KCk6IHZvaWQge1xuICAgIHRoaXMuY29sbGVjdGlvbiA9IG51bGw7XG4gICAgdGhpcy5jdXJyZW50VXNlcklkID0gbnVsbDtcbiAgICB0aGlzLmNvbGxlY3Rpb25SZWFkeSQubmV4dChudWxsKTtcbiAgfVxufVxuIl19
283
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9ucy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9zZXJ2aWNlcy9maXJlYmFzZS9ub3RpZmljYXRpb25zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7O0dBUUc7QUFFSCxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBWSxRQUFRLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNwRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWhELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7OztBQUlyRCxvREFBb0Q7QUFDcEQsTUFBTSxhQUFhLEdBQUcsRUFBRSxDQUFDO0FBMkJ6Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JHO0FBRUgsTUFBTSxPQUFPLG9CQUFvQjtJQWUvQixZQUNVLFFBQWtCLEVBQ04saUJBQTZDO1FBRHpELGFBQVEsR0FBUixRQUFRLENBQVU7UUFDTixzQkFBaUIsR0FBakIsaUJBQWlCLENBQTRCO1FBaEIzRCxlQUFVLEdBQWlELElBQUksQ0FBQztRQUNoRSxrQkFBYSxHQUFrQixJQUFJLENBQUM7UUFDcEMscUJBQWdCLEdBQUcsSUFBSSxlQUFlLENBQzVDLElBQUksQ0FDTCxDQUFDO1FBRUYsOERBQThEO1FBQ3RELGdCQUFXLEdBQXVCLElBQUksQ0FBQztRQUUvQyx3RUFBd0U7UUFDeEUsNkVBQTZFO1FBQzdFLHlCQUF5QjtRQUNqQixvQkFBZSxHQUEyQixJQUFJLENBQUM7UUFNckQsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMs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L0MsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLFNBQVM7UUFDYixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVU7WUFBRSxPQUFPO1FBRTdCLE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUMzQyxNQUFNLEdBQUcsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoRCxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxLQUFLO1FBQ0gsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7UUFDdkIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7UUFDMUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuQyxDQUFDOytHQS9RVSxvQkFBb0I7bUhBQXBCLG9CQUFvQixjQURQLE1BQU07OzRGQUNuQixvQkFBb0I7a0JBRGhDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOzswQkFrQjdCLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIE5vdGlmaWNhdGlvbnMgU2VydmljZVxuICpcbiAqIFNlcnZpY2lvIHBhcmEgbGVlciBub3RpZmljYWNpb25lcyBkZXNkZSBGaXJlc3RvcmUuXG4gKiBFbCBiYWNrZW5kIGVzY3JpYmUgbGFzIG5vdGlmaWNhY2lvbmVzLCBlbCBmcm9udGVuZCBzb2xvIGxhcyBsZWUgeSBhY3R1YWxpemEgZXN0YWRvLlxuICpcbiAqIFNlIGF1dG8taW5pY2lhbGl6YSBjdWFuZG8gQXV0aFNlcnZpY2UgdGllbmUgdW4gdXN1YXJpbyBhdXRlbnRpY2Fkby5cbiAqIFRhbWJpw6luIHB1ZWRlIGluaWNpYWxpemFyc2UgbWFudWFsbWVudGUgY29uIGBpbml0aWFsaXplKHVzZXJJZClgLlxuICovXG5cbmltcG9ydCB7IGVmZmVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIE9wdGlvbmFsLCBydW5JbkluamVjdGlvbkNvbnRleHQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgRU1QVFksIGZyb20sIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICcuLi9hdXRoL2F1dGguc2VydmljZSc7XG5pbXBvcnQgeyBGaXJlYmFzZVNlcnZpY2UgfSBmcm9tICcuL2ZpcmViYXNlLnNlcnZpY2UnO1xuaW1wb3J0IHsgRmlyZXN0b3JlQ29sbGVjdGlvbkZhY3RvcnksIFR5cGVkQ29sbGVjdGlvbiB9IGZyb20gJy4vZmlyZXN0b3JlLWNvbGxlY3Rpb24nO1xuaW1wb3J0IHsgRmlyZXN0b3JlRG9jdW1lbnQgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqIEzDrW1pdGUgcG9yIGRlZmVjdG8gZGUgbm90aWZpY2FjaW9uZXMgYSBjYXJnYXIgKi9cbmNvbnN0IERFRkFVTFRfTElNSVQgPSA1MDtcblxuLyoqXG4gKiBEb2N1bWVudG8gZGUgbm90aWZpY2FjacOzbiBlbiBGaXJlc3RvcmUuXG4gKiBFc3RydWN0dXJhIGVzY3JpdGEgcG9yIGVsIGJhY2tlbmQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTm90aWZpY2F0aW9uRG9jdW1lbnQgZXh0ZW5kcyBGaXJlc3RvcmVEb2N1bWVudCB7XG4gIC8qKiBUw610dWxvIGRlIGxhIG5vdGlmaWNhY2nDs24gKi9cbiAgdGl0bGU/OiBzdHJpbmc7XG4gIC8qKiBDdWVycG8gZGVsIG1lbnNhamUgKi9cbiAgYm9keT86IHN0cmluZztcbiAgLyoqIERhdG9zIHBlcnNvbmFsaXphZG9zIChlajogcm91dGUsIGFjdGlvblR5cGUpLiBMZWdhY3kg4oCUIHByZWZlcmlyIGFjdGlvblJvdXRlICsgcGF5bG9hZCAqL1xuICBkYXRhPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgLyoqIFRpcG8gZGUgbm90aWZpY2FjacOzbiAqL1xuICB0eXBlPzogJ2ZjbScgfCAnc3lzdGVtJyB8ICdyZW1pbmRlcicgfCBzdHJpbmc7XG4gIC8qKiBTaSBsYSBub3RpZmljYWNpw7NuIGZ1ZSBsZcOtZGEgKi9cbiAgaXNSZWFkOiBib29sZWFuO1xuICAvKiogQXBwSUQgb3JpZ2VuIChlajogJ3Nob3djYXNlJywgJ3NpZ2lmeScpLiBQZXJtaXRlIGNyb3NzLWFwcCByb3V0aW5nICovXG4gIGFwcElkPzogc3RyaW5nO1xuICAvKiogT3JnSUQgYXNvY2lhZG8gKHNpIGxhIG5vdGlmIGVzIG9yZy1zY29wZWQpLiBIYWJpbGl0YSBzd2l0Y2gtb3JnIGFsIGFicmlyICovXG4gIG9yZ0lkPzogc3RyaW5nO1xuICAvKiogUm91dGUgZGVzdGlubyBhbCBjbGljayAoZWo6ICcvYXBwL2RvY3MvMTIzJykgKi9cbiAgYWN0aW9uUm91dGU/OiBzdHJpbmc7XG4gIC8qKiBQYXlsb2FkIGVzdHJ1Y3R1cmFkbyBwYXJhIGFjY2lvbmVzIChyZWVtcGxhem8gdGlwYWRvIGRlIGBkYXRhYCkgKi9cbiAgcGF5bG9hZD86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xufVxuXG4vKipcbiAqIFNlcnZpY2lvIHBhcmEgbGVlciBub3RpZmljYWNpb25lcyBkZXNkZSBGaXJlc3RvcmUuXG4gKlxuICogU2UgYXV0by1pbmljaWFsaXphIGN1YW5kbyBBdXRoU2VydmljZSB0aWVuZSB1biB1c3VhcmlvIGF1dGVudGljYWRvLlxuICogTm8gcmVxdWllcmUgbGxhbWFyIGEgYGluaXRpYWxpemUoKWAgbWFudWFsbWVudGUgc2kgQXV0aFNlcnZpY2UgZXN0w6EgY29uZmlndXJhZG8uXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIC8vIENvbiBBdXRoU2VydmljZSBjb25maWd1cmFkbzogYXV0by1pbmljaWFsaXphY2nDs25cbiAqIC8vIFNvbG8gaW55ZWN0YXIgeSB1c2FyIGRpcmVjdGFtZW50ZVxuICogcHJpdmF0ZSBub3RpZmljYXRpb25zID0gaW5qZWN0KE5vdGlmaWNhdGlvbnNTZXJ2aWNlKTtcbiAqXG4gKiBub3RpZmljYXRpb25zJCA9IHRoaXMubm90aWZpY2F0aW9ucy5nZXRBbGwoKTtcbiAqIHVucmVhZENvdW50JCA9IHRoaXMubm90aWZpY2F0aW9ucy5nZXRVbnJlYWRDb3VudCgpO1xuICpcbiAqIC8vIFNpbiBBdXRoU2VydmljZTogaW5pY2lhbGl6YWNpw7NuIG1hbnVhbFxuICogdGhpcy5ub3RpZmljYXRpb25zLmluaXRpYWxpemUodXNlcklkKTtcbiAqIGBgYFxuICovXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIE5vdGlmaWNhdGlvbnNTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBjb2xsZWN0aW9uOiBUeXBlZENvbGxlY3Rpb248Tm90aWZpY2F0aW9uRG9jdW1lbnQ+IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgY3VycmVudFVzZXJJZDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgY29sbGVjdGlvblJlYWR5JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VHlwZWRDb2xsZWN0aW9uPE5vdGlmaWNhdGlvbkRvY3VtZW50PiB8IG51bGw+KFxuICAgIG51bGxcbiAgKTtcblxuICAvLyBJbnllY2Npw7NuIG9wY2lvbmFsIC0gQXV0aFNlcnZpY2UgcHVlZGUgbm8gZXN0YXIgY29uZmlndXJhZG9cbiAgcHJpdmF0ZSBhdXRoU2VydmljZTogQXV0aFNlcnZpY2UgfCBudWxsID0gbnVsbDtcblxuICAvLyBJbnllY2Npw7NuIG9wY2lvbmFsIC0gRmlyZWJhc2VTZXJ2aWNlIGdhdGVhIGxvcyBsaXN0ZW5lcnMgaGFzdGEgcXVlIGxhXG4gIC8vIHNlc2nDs24gZGUgRmlyZWJhc2UgQXV0aCBlc3TDqSBsaXN0YSAoY2llcnJhIGxhIHZlbnRhbmEgZGUgcGVybWlzc2lvbi1kZW5pZWRcbiAgLy8gZW4gY29sZCBzdGFydCBkZSBQV0EpLlxuICBwcml2YXRlIGZpcmViYXNlU2VydmljZTogRmlyZWJhc2VTZXJ2aWNlIHwgbnVsbCA9IG51bGw7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBjb2xsZWN0aW9uRmFjdG9yeTogRmlyZXN0b3JlQ29sbGVjdGlvbkZhY3RvcnlcbiAgKSB7XG4gICAgdGhpcy5maXJlYmFzZVNlcnZpY2UgPSB0aGlzLmluamVjdG9yLmdldChGaXJlYmFzZVNlcnZpY2UsIG51bGwpO1xuICAgIC8vIEludGVudGFyIG9idGVuZXIgQXV0aFNlcnZpY2UgZGUgZm9ybWEgbGF6eSAocHVlZGUgbm8gZXN0YXIgY29uZmlndXJhZG8pXG4gICAgdGhpcy5zZXR1cEF1dG9Jbml0aWFsaXphdGlvbigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdhdGUgZGUgRmlyZWJhc2UgQXV0aDogZW1pdGUgbGEgY29sZWNjacOzbiBsaXN0YSBTT0xPIGN1YW5kbyBsYSBzZXNpw7NuIGRlXG4gICAqIEZpcmViYXNlIEF1dGggZXN0w6EgY29uZmlybWFkYS4gU2luIEZpcmViYXNlU2VydmljZSBkaXNwb25pYmxlLCBubyBnYXRlYVxuICAgKiAoZGVncmFkYSBhbCBjb21wb3J0YW1pZW50byBwcmV2aW8pLiBFc3BlcmEgYSBxdWUgYGZpcmViYXNlQXV0aFJlYWR5JGBcbiAgICogZW1pdGEgYW50ZXMgZGUgcHJvcGFnYXIgbGEgY29sZWNjacOzbiDigJQgYXPDrSBlbCBsaXN0ZW5lciBGaXJlc3RvcmUgbnVuY2Egc2VcbiAgICogYWRqdW50YSBhbnRlcyBkZSBxdWUgYHJlcXVlc3QuYXV0aGAgZXN0w6kgZGlzcG9uaWJsZS5cbiAgICovXG4gIHByaXZhdGUgY29sbGVjdGlvbldoZW5BdXRoUmVhZHkkKCk6IE9ic2VydmFibGU8VHlwZWRDb2xsZWN0aW9uPE5vdGlmaWNhdGlvbkRvY3VtZW50PiB8IG51bGw+IHtcbiAgICBjb25zdCBmYiA9IHRoaXMuZmlyZWJhc2VTZXJ2aWNlO1xuICAgIGlmICghZmIpIHtcbiAgICAgIHJldHVybiB0aGlzLmNvbGxlY3Rpb25SZWFkeSQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNvbGxlY3Rpb25SZWFkeSQucGlwZShcbiAgICAgIHN3aXRjaE1hcChjb2xsZWN0aW9uID0+IHtcbiAgICAgICAgaWYgKCFjb2xsZWN0aW9uKSB7XG4gICAgICAgICAgY29uc29sZS5sb2coJ1tOb3RpZnNdIGNvbGxlY3Rpb25XaGVuQXV0aFJlYWR5JCDigJQgY29sbGVjdGlvbiBpcyBudWxsIChub3QgaW5pdGlhbGl6ZWQpJyk7XG4gICAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnNvbGUubG9nKCdbTm90aWZzXSBjb2xsZWN0aW9uV2hlbkF1dGhSZWFkeSQg4oCUIGNvbGxlY3Rpb24gcmVhZHksIGF3YWl0aW5nIEZpcmViYXNlIEF1dGgnKTtcbiAgICAgICAgcmV0dXJuIGZyb20oZmIud2hlbkZpcmViYXNlQXV0aFJlYWR5KCkpLnBpcGUobWFwKCgpID0+IGNvbGxlY3Rpb24pKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb25maWd1cmEgYXV0by1pbmljaWFsaXphY2nDs24gb2JzZXJ2YW5kbyBlbCBlc3RhZG8gZGUgQXV0aFNlcnZpY2UuXG4gICAqIFNlIGVqZWN1dGEgZW4gZWwgY29udGV4dG8gZGVsIGluamVjdG9yIHBhcmEgcG9kZXIgdXNhciBlZmZlY3QoKS5cbiAgICovXG4gIHByaXZhdGUgc2V0dXBBdXRvSW5pdGlhbGl6YXRpb24oKTogdm9pZCB7XG4gICAgLy8gT2J0ZW5lciBBdXRoU2VydmljZSBkZSBmb3JtYSBsYXp5XG4gICAgdHJ5IHtcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UgPSB0aGlzLmluamVjdG9yLmdldChBdXRoU2VydmljZSwgbnVsbCk7XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBBdXRoU2VydmljZSBubyBlc3TDoSBjb25maWd1cmFkbywgbm8gaGF5IGF1dG8taW5pY2lhbGl6YWNpw7NuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmF1dGhTZXJ2aWNlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gVXNhciBydW5JbkluamVjdGlvbkNvbnRleHQgcGFyYSBwb2RlciBjcmVhciBlbCBlZmZlY3RcbiAgICBydW5JbkluamVjdGlvbkNvbnRleHQodGhpcy5pbmplY3RvciwgKCkgPT4ge1xuICAgICAgZWZmZWN0KCgpID0+IHtcbiAgICAgICAgY29uc3QgdXNlciA9IHRoaXMuYXV0aFNlcnZpY2UhLnVzZXIoKTtcblxuICAgICAgICBpZiAodXNlcj8udXNlcklkICYmIHRoaXMuY3VycmVudFVzZXJJZCAhPT0gdXNlci51c2VySWQpIHtcbiAgICAgICAgICAvLyBVc3VhcmlvIGF1dGVudGljYWRvOiBpbmljaWFsaXphciBjb24gc3UgSURcbiAgICAgICAgICB0aGlzLmluaXRpYWxpemUodXNlci51c2VySWQpO1xuICAgICAgICB9IGVsc2UgaWYgKCF1c2VyICYmIHRoaXMuY3VycmVudFVzZXJJZCkge1xuICAgICAgICAgIC8vIExvZ291dDogbGltcGlhciBlc3RhZG9cbiAgICAgICAgICB0aGlzLnJlc2V0KCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaWNpYWxpemEgZWwgc2VydmljaW8gcGFyYSB1biB1c3VhcmlvIGVzcGVjw61maWNvLlxuICAgKlxuICAgKiBOT1RBOiBTZSBsbGFtYSBhdXRvbcOhdGljYW1lbnRlIHNpIEF1dGhTZXJ2aWNlIGVzdMOhIGNvbmZpZ3VyYWRvLlxuICAgKiBTb2xvIHVzYXIgbWFudWFsbWVudGUgc2kgQXV0aFNlcnZpY2Ugbm8gZXN0w6EgZGlzcG9uaWJsZSBvIHNlIG5lY2VzaXRhXG4gICAqIHVuIHVzZXJJZCBkaWZlcmVudGUgYWwgZGVsIHVzdWFyaW8gYXV0ZW50aWNhZG8uXG4gICAqL1xuICBpbml0aWFsaXplKHVzZXJJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc29sZS5sb2coYFtOb3RpZnNdIGluaXRpYWxpemUgdWlkPSR7dXNlcklkfWApO1xuICAgIGlmICghdGhpcy5jb2xsZWN0aW9uRmFjdG9yeSkge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAnW05vdGlmaWNhdGlvbnNdIEZpcmVzdG9yZUNvbGxlY3Rpb25GYWN0b3J5IG5vdCBhdmFpbGFibGUuIEVuc3VyZSBwcm92aWRlVmFsdGVjaEZpcmViYXNlKCkgaXMgY29uZmlndXJlZC4nXG4gICAgICApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuY3VycmVudFVzZXJJZCA9IHVzZXJJZDtcblxuICAgIC8vIFBhdGggZ2xvYmFsIGNyb3NzLWFwcDogL3VzZXJzL3t1aWR9L25vdGlmaWNhdGlvbnMgKHNpbiBwcmVmaWpvIGFwcHMve2FwcElkfS8pLlxuICAgIC8vIHNraXBBcHBQcmVmaXggYnlwYXNzYSBGaXJlc3RvcmVTZXJ2aWNlLnByZWZpeENvbGxlY3Rpb25QYXRoIHBhcmEgZmFuLW91dCBjb21wYXJ0aWRvLlxuICAgIGNvbnN0IGJhc2VQYXRoID0gYHVzZXJzLyR7dXNlcklkfS9ub3RpZmljYXRpb25zYDtcblxuICAgIHRoaXMuY29sbGVjdGlvbiA9IHRoaXMuY29sbGVjdGlvbkZhY3RvcnkuY3JlYXRlPE5vdGlmaWNhdGlvbkRvY3VtZW50PihiYXNlUGF0aCwge1xuICAgICAgdGltZXN0YW1wczogdHJ1ZSxcbiAgICAgIHNraXBBcHBQcmVmaXg6IHRydWUsXG4gICAgfSk7XG4gICAgdGhpcy5jb2xsZWN0aW9uUmVhZHkkLm5leHQodGhpcy5jb2xsZWN0aW9uKTtcblxuICAgIGNvbnNvbGUubG9nKCdbTm90aWZpY2F0aW9uc10gSW5pdGlhbGl6ZWQgd2l0aCBwYXRoOicsIGJhc2VQYXRoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBWZXJpZmljYSBzaSBlbCBzZXJ2aWNpbyBlc3TDoSBpbmljaWFsaXphZG8uXG4gICAqL1xuICBnZXQgaXNSZWFkeSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5jb2xsZWN0aW9uICE9PSBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIE9idGllbmUgZWwgSUQgZGVsIHVzdWFyaW8gYWN0dWFsLlxuICAgKi9cbiAgZ2V0IHVzZXJJZCgpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50VXNlcklkO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIExFQ1RVUkFcbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5cbiAgLyoqXG4gICAqIE9idGllbmUgbm90aWZpY2FjaW9uZXMgb3JkZW5hZGFzIHBvciBmZWNoYSBkZXNjZW5kZW50ZSAocmVhbC10aW1lKS5cbiAgICogU2UgYWN0dWFsaXphIGF1dG9tw6F0aWNhbWVudGUgY3VhbmRvIGNhbWJpYW4gbG9zIGRhdG9zLlxuICAgKlxuICAgKiBFbCBsaXN0ZW5lciBGaXJlc3RvcmUgTk8gc2UgYWRqdW50YSBoYXN0YSBxdWUgbGEgc2VzacOzbiBkZSBGaXJlYmFzZSBBdXRoXG4gICAqIGVzdMOpIGNvbmZpcm1hZGEgKGBGaXJlYmFzZVNlcnZpY2UuZmlyZWJhc2VBdXRoUmVhZHlgKS4gRXN0byBjaWVycmEgbGFcbiAgICogdmVudGFuYSBkZSBgcGVybWlzc2lvbi1kZW5pZWRgIGVuIGNvbGQgc3RhcnQgZGUgUFdBLCBkb25kZSBlbCBKV1QgZGVsXG4gICAqIGJhY2tlbmQgcHVlZGUgZXN0YXIgbGlzdG8gYW50ZXMgcXVlIGxhIHNlc2nDs24gZGUgRmlyZWJhc2UgQXV0aC5cbiAgICpcbiAgICogQHBhcmFtIGxpbWl0IC0gTcOheGltbyBkZSBub3RpZmljYWNpb25lcyBhIGNhcmdhciAoZGVmYXVsdDogNTApXG4gICAqL1xuICBnZXRBbGwobGltaXQgPSBERUZBVUxUX0xJTUlUKTogT2JzZXJ2YWJsZTxOb3RpZmljYXRpb25Eb2N1bWVudFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuY29sbGVjdGlvbldoZW5BdXRoUmVhZHkkKCkucGlwZShcbiAgICAgIHN3aXRjaE1hcChjb2xsZWN0aW9uID0+IHtcbiAgICAgICAgaWYgKCFjb2xsZWN0aW9uKSB7XG4gICAgICAgICAgY29uc29sZS53YXJuKCdbTm90aWZzXSBnZXRBbGwg4oCUIGNvbGxlY3Rpb24gbnVsbCDihpIgcmV0dXJuaW5nIEVNUFRZIChubyBlbWlzc2lvbiknKTtcbiAgICAgICAgICByZXR1cm4gRU1QVFk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc29sZS5sb2coJ1tOb3RpZnNdIGdldEFsbCDigJQgYXR0YWNoaW5nIEZpcmVzdG9yZSB3YXRjaEFsbCBsaXN0ZW5lcicpO1xuICAgICAgICByZXR1cm4gY29sbGVjdGlvbi53YXRjaEFsbCh7XG4gICAgICAgICAgb3JkZXJCeTogW3sgZmllbGQ6ICdjcmVhdGVkQXQnLCBkaXJlY3Rpb246ICdkZXNjJyB9XSxcbiAgICAgICAgICBsaW1pdCxcbiAgICAgICAgfSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogT2J0aWVuZSBub3RpZmljYWNpb25lcyAob25lLXRpbWUgZmV0Y2ggc2luIGxpc3RlbmVyKS5cbiAgICogw5p0aWwgcGFyYSBjYXJnYXMgaW5pY2lhbGVzIHNpbiBuZWNlc2lkYWQgZGUgdXBkYXRlcyBlbiB0aWVtcG8gcmVhbC5cbiAgICpcbiAgICogQHBhcmFtIGxpbWl0IC0gTcOheGltbyBkZSBub3RpZmljYWNpb25lcyBhIGNhcmdhciAoZGVmYXVsdDogNTApXG4gICAqL1xuICBhc3luYyBnZXRBbGxPbmNlKGxpbWl0ID0gREVGQVVMVF9MSU1JVCk6IFByb21pc2U8Tm90aWZpY2F0aW9uRG9jdW1lbnRbXT4ge1xuICAgIGlmICghdGhpcy5jb2xsZWN0aW9uKSByZXR1cm4gW107XG5cbiAgICByZXR1cm4gdGhpcy5jb2xsZWN0aW9uLmdldEFsbE9uY2Uoe1xuICAgICAgb3JkZXJCeTogW3sgZmllbGQ6ICdjcmVhdGVkQXQnLCBkaXJlY3Rpb246ICdkZXNjJyB9XSxcbiAgICAgIGxpbWl0LFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIE9idGllbmUgc29sbyBub3RpZmljYWNpb25lcyBubyBsZcOtZGFzIChyZWFsLXRpbWUsIGZpbHRyYWRvIHNlcnZlci1zaWRlKS5cbiAgICpcbiAgICogQHBhcmFtIGxpbWl0IC0gTcOheGltbyBkZSBub3RpZmljYWNpb25lcyAoZGVmYXVsdDogNTApXG4gICAqL1xuICBnZXRVbnJlYWQobGltaXQgPSBERUZBVUxUX0xJTUlUKTogT2JzZXJ2YWJsZTxOb3RpZmljYXRpb25Eb2N1bWVudFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuY29sbGVjdGlvbldoZW5BdXRoUmVhZHkkKCkucGlwZShcbiAgICAgIHN3aXRjaE1hcChjb2xsZWN0aW9uID0+IHtcbiAgICAgICAgaWYgKCFjb2xsZWN0aW9uKSByZXR1cm4gb2YoW10pO1xuICAgICAgICByZXR1cm4gY29sbGVjdGlvbi53YXRjaEFsbCh7XG4gICAgICAgICAgd2hlcmU6IFt7IGZpZWxkOiAnaXNSZWFkJywgb3BlcmF0b3I6ICc9PScsIHZhbHVlOiBmYWxzZSB9XSxcbiAgICAgICAgICBvcmRlckJ5OiBbeyBmaWVsZDogJ2NyZWF0ZWRBdCcsIGRpcmVjdGlvbjogJ2Rlc2MnIH1dLFxuICAgICAgICAgIGxpbWl0LFxuICAgICAgICB9KTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDdWVudGEgbm90aWZpY2FjaW9uZXMgbm8gbGXDrWRhcyB1c2FuZG8gc2VydmVyLXNpZGUgYWdncmVnYXRpb24gcXVlcnkuXG4gICAqIE5vIGRlc2NhcmdhIGRvY3VtZW50b3Mg4oCUIGVmaWNpZW50ZSBwYXJhIGJhZGdlcyBlbiBVSS5cbiAgICpcbiAgICogR2F0ZWFkbyBwb3IgYGZpcmViYXNlQXV0aFJlYWR5YCDigJQgbGEgYWdncmVnYXRpb24gcXVlcnkgbm8gc2UgZWplY3V0YSBoYXN0YVxuICAgKiBxdWUgbGEgc2VzacOzbiBkZSBGaXJlYmFzZSBBdXRoIGVzdMOpIGxpc3RhLlxuICAgKi9cbiAgZ2V0VW5yZWFkQ291bnQoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICByZXR1cm4gdGhpcy5jb2xsZWN0aW9uV2hlbkF1dGhSZWFkeSQoKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKGNvbGxlY3Rpb24gPT4ge1xuICAgICAgICBpZiAoIWNvbGxlY3Rpb24pIHJldHVybiBvZigwKTtcbiAgICAgICAgcmV0dXJuIGZyb20oXG4gICAgICAgICAgY29sbGVjdGlvbi5jb3VudCh7XG4gICAgICAgICAgICB3aGVyZTogW3sgZmllbGQ6ICdpc1JlYWQnLCBvcGVyYXRvcjogJz09JywgdmFsdWU6IGZhbHNlIH1dLFxuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogT2J0aWVuZSB1bmEgbm90aWZpY2FjacOzbiBwb3IgSUQuXG4gICAqL1xuICBhc3luYyBnZXRCeUlkKG5vdGlmaWNhdGlvbklkOiBzdHJpbmcpOiBQcm9taXNlPE5vdGlmaWNhdGlvbkRvY3VtZW50IHwgbnVsbD4ge1xuICAgIGlmICghdGhpcy5jb2xsZWN0aW9uKSByZXR1cm4gbnVsbDtcbiAgICByZXR1cm4gdGhpcy5jb2xsZWN0aW9uLmdldEJ5SWQobm90aWZpY2F0aW9uSWQpO1xuICB9XG5cbiAgLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gIC8vIEFDQ0lPTkVTXG4gIC8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuXG4gIC8qKlxuICAgKiBNYXJjYSB1bmEgbm90aWZpY2FjacOzbiBjb21vIGxlw61kYS5cbiAgICovXG4gIGFzeW5jIG1hcmtBc1JlYWQobm90aWZpY2F0aW9uSWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICghdGhpcy5jb2xsZWN0aW9uKSByZXR1cm47XG4gICAgYXdhaXQgdGhpcy5jb2xsZWN0aW9uLnVwZGF0ZShub3RpZmljYXRpb25JZCwgeyBpc1JlYWQ6IHRydWUgfSk7XG4gIH1cblxuICAvKipcbiAgICogTWFyY2EgdG9kYXMgbGFzIG5vdGlmaWNhY2lvbmVzIG5vIGxlw61kYXMgY29tbyBsZcOtZGFzIChiYXRjaCB3cml0ZSkuXG4gICAqL1xuICBhc3luYyBtYXJrQWxsQXNSZWFkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICghdGhpcy5jb2xsZWN0aW9uKSByZXR1cm47XG5cbiAgICBjb25zdCB1bnJlYWQgPSBhd2FpdCB0aGlzLmNvbGxlY3Rpb24ucXVlcnkoe1xuICAgICAgd2hlcmU6IFt7IGZpZWxkOiAnaXNSZWFkJywgb3BlcmF0b3I6ICc9PScsIHZhbHVlOiBmYWxzZSB9XSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGlkcyA9IHVucmVhZC5tYXAobiA9PiBuLmlkISkuZmlsdGVyKEJvb2xlYW4pO1xuICAgIGF3YWl0IHRoaXMuY29sbGVjdGlvbi5iYXRjaFVwZGF0ZShpZHMsIHsgaXNSZWFkOiB0cnVlIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEVsaW1pbmEgdW5hIG5vdGlmaWNhY2nDs24uXG4gICAqL1xuICBhc3luYyBkZWxldGUobm90aWZpY2F0aW9uSWQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICghdGhpcy5jb2xsZWN0aW9uKSByZXR1cm47XG4gICAgYXdhaXQgdGhpcy5jb2xsZWN0aW9uLmRlbGV0ZShub3RpZmljYXRpb25JZCk7XG4gIH1cblxuICAvKipcbiAgICogRWxpbWluYSB0b2RhcyBsYXMgbm90aWZpY2FjaW9uZXMgZGVsIHVzdWFyaW8gKGJhdGNoIGRlbGV0ZSkuXG4gICAqL1xuICBhc3luYyBkZWxldGVBbGwoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLmNvbGxlY3Rpb24pIHJldHVybjtcblxuICAgIGNvbnN0IGFsbCA9IGF3YWl0IHRoaXMuY29sbGVjdGlvbi5nZXRBbGwoKTtcbiAgICBjb25zdCBpZHMgPSBhbGwubWFwKG4gPT4gbi5pZCEpLmZpbHRlcihCb29sZWFuKTtcbiAgICBhd2FpdCB0aGlzLmNvbGxlY3Rpb24uYmF0Y2hEZWxldGUoaWRzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaW1waWEgZWwgZXN0YWRvIGRlbCBzZXJ2aWNpby5cbiAgICogw5p0aWwgcGFyYSBsb2dvdXQuXG4gICAqL1xuICByZXNldCgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbGxlY3Rpb24gPSBudWxsO1xuICAgIHRoaXMuY3VycmVudFVzZXJJZCA9IG51bGw7XG4gICAgdGhpcy5jb2xsZWN0aW9uUmVhZHkkLm5leHQobnVsbCk7XG4gIH1cbn1cbiJdfQ==
@@ -2,5 +2,5 @@
2
2
  * Current version of valtech-components.
3
3
  * This is automatically updated during the publish process.
4
4
  */
5
- export const VERSION = '4.0.550';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuMC41NTAnO1xuIl19
5
+ export const VERSION = '4.0.551';
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDdXJyZW50IHZlcnNpb24gb2YgdmFsdGVjaC1jb21wb25lbnRzLlxuICogVGhpcyBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIHRoZSBwdWJsaXNoIHByb2Nlc3MuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gJzQuMC41NTEnO1xuIl19
@@ -59,7 +59,7 @@ import fixWebmDuration from 'fix-webm-duration';
59
59
  * Current version of valtech-components.
60
60
  * This is automatically updated during the publish process.
61
61
  */
62
- const VERSION = '4.0.550';
62
+ const VERSION = '4.0.551';
63
63
 
64
64
  // Control de estado de refresco (singleton a nivel de módulo)
65
65
  let isRefreshing = false;
@@ -6563,13 +6563,15 @@ class NotificationsService {
6563
6563
  * @param limit - Máximo de notificaciones (default: 50)
6564
6564
  */
6565
6565
  getUnread(limit = DEFAULT_LIMIT) {
6566
- if (!this.collection)
6567
- return of([]);
6568
- return this.collection.watchAll({
6569
- where: [{ field: 'isRead', operator: '==', value: false }],
6570
- orderBy: [{ field: 'createdAt', direction: 'desc' }],
6571
- limit,
6572
- });
6566
+ return this.collectionWhenAuthReady$().pipe(switchMap(collection => {
6567
+ if (!collection)
6568
+ return of([]);
6569
+ return collection.watchAll({
6570
+ where: [{ field: 'isRead', operator: '==', value: false }],
6571
+ orderBy: [{ field: 'createdAt', direction: 'desc' }],
6572
+ limit,
6573
+ });
6574
+ }));
6573
6575
  }
6574
6576
  /**
6575
6577
  * Cuenta notificaciones no leídas usando server-side aggregation query.