@elderbyte/ngx-starter 16.2.7 → 16.2.8

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.
@@ -276,4 +276,4 @@ export class RestClientContinuable extends RestClient {
276
276
  }, []));
277
277
  }
278
278
  }
279
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdC1jbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21tb24vZGF0YS9kYXRhc291cmNlL3Jlc3QvcmVzdC1jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLEtBQUssRUFBRSxRQUFRLEVBQWMsRUFBRSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3JELE9BQU8sRUFBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUU1RCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDNUMsT0FBTyxFQUFPLFFBQVEsRUFBQyxNQUFNLFlBQVksQ0FBQztBQUMxQyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFFbkQsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFFNUQsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQy9DLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ2xFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUVuRCxNQUFNLE9BQU8sd0JBQXdCO0lBS25DLFlBQVksVUFBNkI7UUFIbEMsWUFBTyxHQUFHLElBQUksQ0FBQztRQUNmLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFHdEIsSUFBSSxVQUFVLEVBQUU7WUFDZCxJQUFJLFVBQVUsQ0FBQyxPQUFPLEVBQUU7Z0JBQ3RCLElBQUksQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQzthQUNuQztZQUNELElBQUksVUFBVSxDQUFDLFFBQVEs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SSxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsRUFDM0MsTUFBTSxDQUNQLENBQUMsSUFBSSxDQUNKLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ2pCLE9BQU8sT0FBTyxDQUFDLHFCQUFxQixDQUFDLHdGQUF3RjtnQkFDM0gsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FDdkIsSUFBSSxpQkFBaUIsQ0FBQyxPQUFPLENBQUMscUJBQXFCLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxFQUNwRSxNQUFNLENBQ1A7Z0JBQ0QsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUNaLENBQUMsQ0FBQyxFQUNGLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFDL0IsTUFBTSxDQUNKLENBQUMsR0FBRyxFQUFFLE9BQU8sRUFBRSxFQUFFO1lBQ2YsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDO1lBQ3JCLE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxFQUNJLEVBQUUsQ0FDUixDQUNGLENBQUM7SUFDSixDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0h0dHBDbGllbnQsIEh0dHBQYXJhbXN9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7RU1QVFksIGZvcmtKb2luLCBPYnNlcnZhYmxlLCBvZn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2V4cGFuZCwgbWFwLCByZWR1Y2UsIHRhcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtIdHRwUGFyYW1zQnVpbGRlcn0gZnJvbSAnLi4vLi4vaHR0cC1wYXJhbXMtYnVpbGRlcic7XG5pbXBvcnQge1NvcnR9IGZyb20gJy4uLy4uL3NvcnQnO1xuaW1wb3J0IHtGaWx0ZXJ9IGZyb20gJy4uLy4uL2ZpbHRlcnMvZmlsdGVyJztcbmltcG9ydCB7UGFnZSwgUGFnZWFibGV9IGZyb20gJy4uLy4uL3BhZ2UnO1xuaW1wb3J0IHtMb2dnZXJGYWN0b3J5fSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcic7XG5pbXBvcnQge0NvbnRpbnVhYmxlTGlzdGluZ30gZnJvbSAnLi4vLi4vY29udGludWFibGUtbGlzdGluZyc7XG5pbXBvcnQge1Rva2VuQ2h1bmtSZXF1ZXN0fSBmcm9tICcuLi8uLi90b2tlbi1jaHVuay1yZXF1ZXN0JztcbmltcG9ydCB7SUNvbnRpbnVhYmxlRGF0YVNvdXJjZSwgSURhdGFTb3VyY2UsIElMaXN0RGF0YVNvdXJjZSwgSVBhZ2VkRGF0YVNvdXJjZX0gZnJvbSAnLi4vZGF0YS1zb3VyY2UnO1xuaW1wb3J0IHtCYXRjaGVyfSBmcm9tICcuLi8uLi8uLi91dGlscy9iYXRjaGVyJztcbmltcG9ydCB7RGF0YVNvdXJjZUNoYW5nZUV2ZW50fSBmcm9tICcuLi9kYXRhLXNvdXJjZS1jaGFuZ2UtZXZlbnQnO1xuaW1wb3J0IHtEYXRhU291cmNlQmFzZX0gZnJvbSAnLi4vZGF0YS1zb3VyY2UtYmFzZSc7XG5cbmV4cG9ydCBjbGFzcyBJbnRlcm5hbFJlc3RDbGllbnRDb25maWcge1xuXG4gIHB1YmxpYyBpZEZpZWxkID0gJ2lkJztcbiAgcHVibGljIGlkc1BhcmFtID0gJ2lkcyc7XG5cbiAgY29uc3RydWN0b3IodXNlckNvbmZpZz86IFJlc3RDbGllbnRDb25maWcpIHtcbiAgICBpZiAodXNlckNvbmZpZykge1xuICAgICAgaWYgKHVzZXJDb25maWcuaWRGaWVsZCkge1xuICAgICAgICB0aGlzLmlkRmllbGQgPSB1c2VyQ29uZmlnLmlkRmllbGQ7XG4gICAgICB9XG4gICAgICBpZiAodXNlckNvbmZpZy5pZHNQYXJhbSkge1xuICAgICAgICB0aGlzLmlkc1BhcmFtID0gdXNlckNvbmZpZy5pZHNQYXJhbTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBBbGxvd3MgdG8gY3VzdG9taXplIHRoZSByZXN0IGNsaWVudFxuICovXG5leHBvcnQgY2xhc3MgUmVzdENsaWVudENvbmZpZyB7XG5cbiAgLyoqXG4gICAqIFRoZSBmaWVsZCB0byB1c2UgYXMgaWQuIERlZmF1bHRzIHRvICdpZCcuXG4gICAqL1xuICBwdWJsaWMgaWRGaWVsZD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHF1ZXJ5IHBhcmFtIHRvIHVzZSBmb3IgbXVsdGlwbGUgaWRzLiBEZWZhdWx0cyB0byAnaWRzJ1xuICAgKi9cbiAgcHVibGljIGlkc1BhcmFtPzogc3RyaW5nO1xufVxuXG5cbmV4cG9ydCBjbGFzcyBSZXN0Q2xpZW50PFQsIFRJRD4gZXh0ZW5kcyBEYXRhU291cmNlQmFzZTxUPiBpbXBsZW1lbnRzIElEYXRhU291cmNlPFQ+IHtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHJlYWRvbmx5IF9sb2dnZXIgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBjb25maWc6IEludGVybmFsUmVzdENsaWVudENvbmZpZztcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgcmVzdEVuZHBvaW50OiBzdHJpbmcsXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGh0dHA6IEh0dHBDbGllbnQsXG4gICAgY29uZmlnPzogUmVzdENsaWVudENvbmZpZ1xuICApIHtcbiAgICBzdXBlcihuZXcgSW50ZXJuYWxSZXN0Q2xpZW50Q29uZmlnKGNvbmZpZykuaWRGaWVsZCk7XG4gICAgdGhpcy5jb25maWcgPSBuZXcgSW50ZXJuYWxSZXN0Q2xpZW50Q29uZmlnKGNvbmZpZyk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgZmluZEJ5SWQoaWQ6IFRJRCwgcGFyYW1zPzogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8VD4ge1xuICAgIHBhcmFtcyA9IEh0dHBQYXJhbXNCdWlsZGVyLnN0YXJ0KHBhcmFtcykuYnVpbGQoKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxUPih0aGlzLmdldEVudGl0eVVybChpZCksIHtwYXJhbXM6IHBhcmFtc30pO1xuICB9XG5cbiAgcHVibGljIGZpbmRCeUlkcyhpZHM6IGFueVtdLCBwYXJhbXM/OiBIdHRwUGFyYW1zKTogT2JzZXJ2YWJsZTxUW10+IHtcbiAgICB0aGlzLl9sb2dnZXIud2FybignVmVyeSBpbmVmZmljaWVudCBmaW5kQnlJZHMgaGFuZGxpbmcgJyArIGlkcy5sZW5ndGgpO1xuICAgIHJldHVybiBmb3JrSm9pbihcbiAgICAgIGlkcy5tYXAoaWQgPT4gdGhpcy5maW5kQnlJZChpZCwgcGFyYW1zKSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgb3IgVXBkYXRlcyB0aGUgZ2l2ZW4gZW50aXR5IGRlcGVuZGluZyBpZiBpdCBhbHJlYWR5IGhhcyBhIHZhbGlkIGlkLlxuICAgKi9cbiAgcHVibGljIHNhdmUoZW50aXR5OiBULCBwYXJhbXM/OiBIdHRwUGFyYW1zKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgY29uc3QgaWQgPSB0aGlzLmdldElkKGVudGl0eSk7XG4gICAgcmV0dXJuICgoISFpZCkgPyB0aGlzLnVwZGF0ZShlbnRpdHksIHBhcmFtcykgOiB0aGlzLmNyZWF0ZShlbnRpdHksIHBhcmFtcykpO1xuICB9XG5cbiAgcHVibGljIGNyZWF0ZTxUQyA9IFQ+KG5ld0VudGl0eTogVEMsIHBhcmFtcz86IEh0dHBQYXJhbXMpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8VD4odGhpcy5yZXN0RW5kcG9pbnQsIG5ld0VudGl0eSwge1xuICAgICAgcGFyYW1zOiBwYXJhbXNcbiAgICB9KS5waXBlKFxuICAgICAgICB0YXAoZSA9PiB0aGlzLnB1Ymxpc2hDaGFuZ2VFdmVudChcbiAgICAgICAgICBEYXRhU291cmNlQ2hhbmdlRXZlbnQuY3JlYXRlZChbZV0pXG4gICAgICAgICkpXG4gICAgICApO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZTxURW50aXR5VXBkYXRlPih1cGRhdGU6IFRFbnRpdHlVcGRhdGUsIHBhcmFtcz86IEh0dHBQYXJhbXMpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxUPihcbiAgICAgIHRoaXMuZ2V0RW50aXR5VXJsQnkoPFQ+PHVua25vd24+dXBkYXRlKSxcbiAgICAgIHVwZGF0ZSxcbiAgICAgIHtcbiAgICAgICAgcGFyYW1zOiBwYXJhbXNcbiAgICAgIH1cbiAgICApLnBpcGUoXG4gICAgICAgIHRhcChlID0+IHRoaXMucHVibGlzaENoYW5nZUV2ZW50KFxuICAgICAgICAgIERhdGFTb3VyY2VDaGFuZ2VFdmVudC5tb2RpZmllZChbZV0pXG4gICAgICAgICkpXG4gICAgICApO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZUFsbDxURW50aXR5VXBkYXRlPih1cGRhdGVkRW50aXRpZXM6IFRFbnRpdHlVcGRhdGVbXSwgcGFyYW1zPzogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8VFtdPiB7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxUW10+KFxuICAgICAgdGhpcy5yZXN0RW5kcG9pbnQsIHVwZGF0ZWRFbnRpdGllcywge1xuICAgICAgICBwYXJhbXM6IHBhcmFtc1xuICAgICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoZW50aXRpZXMgPT4gdGhpcy5wdWJsaXNoQ2hhbmdlRXZlbnQoXG4gICAgICAgICAgRGF0YVNvdXJjZUNoYW5nZUV2ZW50Lm1vZGlmaWVkKGVudGl0aWVzKVxuICAgICAgICApKVxuICAgICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBkZWxldGUoZW50aXR5OiBULCBwYXJhbXM/OiBIdHRwUGFyYW1zKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZShcbiAgICAgIHRoaXMuZ2V0RW50aXR5VXJsQnkoZW50aXR5KSxcbiAgICAgIHtcbiAgICAgICAgcmVzcG9uc2VUeXBlOiAndGV4dCcsXG4gICAgICAgIHBhcmFtczogcGFyYW1zXG4gICAgICB9XG4gICAgKS5waXBlKFxuICAgICAgdGFwKCgpID0+IHRoaXMucHVibGlzaENoYW5nZUV2ZW50KFxuICAgICAgICBEYXRhU291cmNlQ2hhbmdlRXZlbnQuZGVsZXRlZChbdGhpcy5nZXRJZChlbnRpdHkpXSkpXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBkZWxldGVBbGwoZW50aXRpZXM6IFRbXSwgcGFyYW1zPzogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3QgaWRzID0gZW50aXRpZXMubWFwKGUgPT4gU3RyaW5nKHRoaXMuZ2V0SWQoZSkpKTtcblxuICAgIGNvbnN0IG1heEJhdGNoU2l6ZSA9IDEwMDtcbiAgICBjb25zdCBkZWxldGVSZXF1ZXN0cyA9IEJhdGNoZXIuYmF0Y2hNYXAoXG4gICAgICBpZHMsXG4gICAgICBtYXhCYXRjaFNpemUsXG4gICAgICBiYXRjaCA9PiB0aGlzLmRlbGV0ZUlkQmF0Y2goYmF0Y2gsIHBhcmFtcylcbiAgICApO1xuICAgIHRoaXMuX2xvZ2dlci5kZWJ1ZygnRGVsZXRpbmcgJyArIGVudGl0aWVzLmxlbmd0aCArICcgaW4gJyArIGRlbGV0ZVJlcXVlc3RzLmxlbmd0aCArICcgYmF0Y2hlczogJywgZGVsZXRlUmVxdWVzdHMpO1xuICAgIHJldHVybiBmb3JrSm9pbihkZWxldGVSZXF1ZXN0cyk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogU3ViIFJlc291cmNlIEJ1aWxkZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgc3ViUmVzb3VyY2VMaXN0PFRTLCBUU0lEPihwYXJlbnQ6IFQsIHN1YlBhdGg6IHN0cmluZywgY29uZmlnPzogUmVzdENsaWVudENvbmZpZyk6IFJlc3RDbGllbnRMaXN0PFRTLCBUU0lEPiB7XG4gICAgcmV0dXJuIG5ldyBSZXN0Q2xpZW50TGlzdChcbiAgICAgIHRoaXMuZ2V0RW50aXR5VXJsQnkocGFyZW50KSArICcvJyArIHN1YlBhdGgsXG4gICAgICB0aGlzLmh0dHAsXG4gICAgICBjb25maWdcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHN1YlJlc291cmNlUGFnZWQ8VFMsIFRTSUQ+KHBhcmVudDogVCwgc3ViUGF0aDogc3RyaW5nLCBjb25maWc/OiBSZXN0Q2xpZW50Q29uZmlnKTogUmVzdENsaWVudFBhZ2VkPFRTLCBUU0lEPiB7XG4gICAgcmV0dXJuIG5ldyBSZXN0Q2xpZW50UGFnZWQoXG4gICAgICB0aGlzLmdldEVudGl0eVVybEJ5KHBhcmVudCkgKyAnLycgKyBzdWJQYXRoLFxuICAgICAgdGhpcy5odHRwLFxuICAgICAgY29uZmlnXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBzdWJSZXNvdXJjZUNvbnRpbnVhYmxlPFRTLCBUU0lEPihwYXJlbnQ6IFQsIHN1YlBhdGg6IHN0cmluZywgY29uZmlnPzogUmVzdENsaWVudENvbmZpZyk6IFJlc3RDbGllbnRDb250aW51YWJsZTxUUywgVFNJRD4ge1xuICAgIHJldHVybiBuZXcgUmVzdENsaWVudENvbnRpbnVhYmxlKFxuICAgICAgdGhpcy5nZXRFbnRpdHlVcmxCeShwYXJlbnQpICsgJy8nICsgc3ViUGF0aCxcbiAgICAgIHRoaXMuaHR0cCxcbiAgICAgIGNvbmZpZ1xuICAgICk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJvdGVjdGVkIG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcm90ZWN0ZWQgcGF0Y2hJbnRlcm5hbDxQPihpZDogVElELCBlbnRpdHlQYXRjaDogUCwgcGFyYW1zPzogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8VD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucGF0Y2g8VD4oXG4gICAgICB0aGlzLmdldEVudGl0eVVybChpZCksXG4gICAgICBlbnRpdHlQYXRjaCxcbiAgICAgIHtcbiAgICAgICAgcGFyYW1zOiBwYXJhbXNcbiAgICAgIH1cbiAgICApLnBpcGUoXG4gICAgICB0YXAoZSA9PiB0aGlzLnB1Ymxpc2hDaGFuZ2VFdmVudChcbiAgICAgICAgRGF0YVNvdXJjZUNoYW5nZUV2ZW50Lm1vZGlmaWVkKFtlXSkpXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBwYXRjaEFsbEludGVybmFsPFA+KGVudGl0eVBhdGNoZXM6IFBbXSwgcGFyYW1zPzogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8VFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wYXRjaDxUW10+KFxuICAgICAgdGhpcy5yZXN0RW5kcG9pbnQsXG4gICAgICBlbnRpdHlQYXRjaGVzLFxuICAgICAge1xuICAgICAgICBwYXJhbXM6IHBhcmFtc1xuICAgICAgfVxuICAgICkucGlwZShcbiAgICAgIHRhcChlID0+IHRoaXMucHVibGlzaENoYW5nZUV2ZW50KERhdGFTb3VyY2VDaGFuZ2VFdmVudC5tb2RpZmllZChlKSkpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBTd2l0Y2ggdG8gcHVibGlzaENoYW5nZUV2ZW50XG4gICAqL1xuICBwcm90ZWN0ZWQgb25Mb2NhbENoYW5nZWQoZW50aXR5PzogVCk6IHZvaWQge1xuICAgIHRoaXMucHVibGlzaENoYW5nZUV2ZW50KERhdGFTb3VyY2VDaGFuZ2VFdmVudC51bmtub3duQ2hhbmdlcygpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRFbnRpdHlVcmxCeShlbnRpdHk6IFQpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldEVudGl0eVVybCh0aGlzLmdldElkKGVudGl0eSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldEVudGl0eVVybChpZDogVElEKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yZXN0RW5kcG9pbnQgKyAnLycgKyBpZDtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBEZWxldGVzIHRoZSBnaXZlbiBpZHMgaW4gYSBiYXRjaCBjYWxsLlxuICAgKiBOb3RlIHRoYXQgZHVlIEhUVFAgUmVxdWVzdCBVUkkgbGltaXRhdGlvbnMsXG4gICAqIHRoZSBudW1iZXIgb2YgaWRzIHRoYXQgY2FuIGJlIGRlbGV0ZWQgaW4gYSBzaW5nbGUgYmF0Y2ggaXNcbiAgICogbGltaXRlZCAoYXJvdW5kIDE1MCwgZGVwZW5kaW5nIG9uIGlkIGxlbmd0aCwgc2luY2UgdGhleSBhcmVcbiAgICogcGFydCBvZiB0aGUgcmVxdWVzdCB1cmkgcGFyYW1ldGVycy5cbiAgICovXG4gIHByaXZhdGUgZGVsZXRlSWRCYXRjaChpZHM6IHN0cmluZ1tdLCBwYXJhbXM/OiBIdHRwUGFyYW1zKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBidWlsZGVyID0gSHR0cFBhcmFtc0J1aWxkZXIuc3RhcnQocGFyYW1zKTtcbiAgICBidWlsZGVyLmFwcGVuZEZpbHRlcihuZXcgRmlsdGVyKHRoaXMuY29uZmlnLmlkc1BhcmFtLCBpZHMpKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZSh0aGlzLnJlc3RFbmRwb2ludCxcbiAgICAgIHtcbiAgICAgICAgcGFyYW1zOiBidWlsZGVyLmJ1aWxkKCksXG4gICAgICAgIHJlc3BvbnNlVHlwZTogJ3RleHQnXG4gICAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgoKSA9PiAgdGhpcy5wdWJsaXNoQ2hhbmdlRXZlbnQoRGF0YVNvdXJjZUNoYW5nZUV2ZW50LmRlbGV0ZWQoaWRzKSkpXG4gICAgICApO1xuICB9XG59XG5cblxuZXhwb3J0IGNsYXNzIFJlc3RDbGllbnRMaXN0PFQsIFRJRD4gZXh0ZW5kcyBSZXN0Q2xpZW50PFQsIFRJRD4gaW1wbGVtZW50cyBJTGlzdERhdGFTb3VyY2U8VD4ge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHJlc3RFbmRwb2ludDogc3RyaW5nLFxuICAgIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgY29uZmlnPzogUmVzdENsaWVudENvbmZpZ1xuICApIHtcbiAgICBzdXBlcihyZXN0RW5kcG9pbnQsIGh0dHAsIGNvbmZpZyk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgZmluZEFsbEZpbHRlcmVkKFxuICAgIGZpbHRlcnM/OiBGaWx0ZXJbXSxcbiAgICBzb3J0cz86IFNvcnRbXSxcbiAgICBwYXJhbXM/OiBIdHRwUGFyYW1zXG4gICk6IE9ic2VydmFibGU8VFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuZmluZEFsbChcbiAgICAgIEh0dHBQYXJhbXNCdWlsZGVyLnN0YXJ0KHBhcmFtcylcbiAgICAgICAgLmFwcGVuZEZpbHRlcnMoZmlsdGVycylcbiAgICAgICAgLmFwcGVuZFNvcnRzKHNvcnRzKVxuICAgICAgICAuYnVpbGQoKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZmluZEJ5SWRzKGlkczogYW55W10sIHBhcmFtcz86IEh0dHBQYXJhbXMpOiBPYnNlcnZhYmxlPFRbXT4ge1xuICAgIGlmIChpZHM/Lmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiB0aGlzLmZpbmRBbGxGaWx0ZXJlZChcbiAgICAgICAgW25ldyBGaWx0ZXIodGhpcy5jb25maWcuaWRzUGFyYW0sIGlkcyldLFxuICAgICAgICBbXSxcbiAgICAgICAgcGFyYW1zXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gb2YoW10pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBmaW5kQWxsKHBhcmFtcz86IEh0dHBQYXJhbXMpOiBPYnNlcnZhYmxlPFRbXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFRbXT4odGhpcy5yZXN0RW5kcG9pbnQsIHtcbiAgICAgIHBhcmFtczogcGFyYW1zXG4gICAgfSk7XG4gIH1cblxuXG59XG5cbmV4cG9ydCBjbGFzcyBSZXN0Q2xpZW50UGFnZWQ8VCwgVElEPiBleHRlbmRzIFJlc3RDbGllbnQ8VCwgVElEPiBpbXBsZW1lbnRzIElQYWdlZERhdGFTb3VyY2U8VD4ge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHJlc3RFbmRwb2ludDogc3RyaW5nLFxuICAgIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgY29uZmlnPzogUmVzdENsaWVudENvbmZpZ1xuICApIHtcbiAgICBzdXBlcihyZXN0RW5kcG9pbnQsIGh0dHAsIGNvbmZpZyk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgZmluZEFsbFBhZ2VkKHBhZ2VhYmxlOiBQYWdlYWJsZSwgZmlsdGVycz86IEZpbHRlcltdLCBwYXJhbXM/OiBIdHRwUGFyYW1zKTogT2JzZXJ2YWJsZTxQYWdlPFQ+PiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0UGFnZWQodGhpcy5yZXN0RW5kcG9pbnQsIHBhZ2VhYmxlLCBmaWx0ZXJzLCBwYXJhbXMpO1xuICB9XG5cbiAgcHVibGljIGZpbmRCeUlkcyhpZHM6IGFueVtdLCBwYXJhbXM/OiBIdHRwUGFyYW1zKTogT2JzZXJ2YWJsZTxUW10+IHtcbiAgICBpZiAoaWRzPy5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gdGhpcy5maW5kQWxsUGFnZWQoXG4gICAgICAgIG5ldyBQYWdlYWJsZSgwLCBpZHMubGVuZ3RoKSxcbiAgICAgICAgW25ldyBGaWx0ZXIodGhpcy5jb25maWcuaWRzUGFyYW0sIGlkcyldLFxuICAgICAgICBwYXJhbXNcbiAgICAgICkucGlwZShcbiAgICAgICAgbWFwKHBhZ2UgPT4gcGFnZS5jb250ZW50KVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIG9mKFtdKTtcbiAgICB9XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSBtZXRob2RzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSByZXF1ZXN0ZWQgZGF0YSBwYWdlIGFzIFBhZ2U8VD5cbiAgICogQHBhcmFtIHVybCBUaGUgcmVzb3VyY2UgdXJsXG4gICAqIEBwYXJhbSBwYWdlYWJsZSBUaGUgcGFnZSByZXF1ZXN0XG4gICAqIEBwYXJhbSBmaWx0ZXJzIFRoZSBmaWx0ZXJzU25hcHNob3QgcmVxdWVzdFxuICAgKiBAcGFyYW0gcGFyYW1zIEFkZGl0aW9uYWwgcGFyYW1ldGVyc1xuICAgKi9cbiAgcHJpdmF0ZSBnZXRQYWdlZCh1cmw6IHN0cmluZywgcGFnZWFibGU6IFBhZ2VhYmxlLCBmaWx0ZXJzPzogRmlsdGVyW10sIHBhcmFtcz86IEh0dHBQYXJhbXMpOiBPYnNlcnZhYmxlPFBhZ2U8VD4+IHtcbiAgICBwYXJhbXMgPSBIdHRwUGFyYW1zQnVpbGRlci5zdGFydChwYXJhbXMpXG4gICAgICAuYXBwZW5kUGFnZWFibGUocGFnZWFibGUpXG4gICAgICAuYXBwZW5kRmlsdGVycyhmaWx0ZXJzKVxuICAgICAgLmJ1aWxkKCk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8UGFnZTxUPj4odXJsLCB7cGFyYW1zOiBwYXJhbXN9KTtcbiAgfVxuXG59XG5cbmV4cG9ydCBjbGFzcyBSZXN0Q2xpZW50Q29udGludWFibGU8VCwgVElEPiBleHRlbmRzIFJlc3RDbGllbnQ8VCwgVElEPiBpbXBsZW1lbnRzIElDb250aW51YWJsZURhdGFTb3VyY2U8VD4ge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHJlc3RFbmRwb2ludDogc3RyaW5nLFxuICAgIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgY29uZmlnPzogUmVzdENsaWVudENvbmZpZ1xuICApIHtcbiAgICBzdXBlcihyZXN0RW5kcG9pbnQsIGh0dHAsIGNvbmZpZyk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgZmluZEFsbENvbnRpbnVhYmxlKHJlcXVlc3Q6IFRva2VuQ2h1bmtSZXF1ZXN0LCBwYXJhbXM/OiBIdHRwUGFyYW1zKTogT2JzZXJ2YWJsZTxDb250aW51YWJsZUxpc3Rpbmc8VD4+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxDb250aW51YWJsZUxpc3Rpbmc8VD4+KHRoaXMucmVzdEVuZHBvaW50LFxuICAgICAge1xuICAgICAgICBwYXJhbXM6IEh0dHBQYXJhbXNCdWlsZGVyLnN0YXJ0KHBhcmFtcylcbiAgICAgICAgICAuYXBwZW5kQ29udGludWF0aW9uUmVxdWVzdChyZXF1ZXN0KVxuICAgICAgICAgIC5idWlsZCgpXG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBmaW5kQnlJZHMoaWRzOiBhbnlbXSwgcGFyYW1zPzogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8VFtdPiB7XG4gICAgaWYgKGlkcz8ubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIHRoaXMubG9hZEFsbChcbiAgICAgICAgW25ldyBGaWx0ZXIodGhpcy5jb25maWcuaWRzUGFyYW0sIGlkcyldLFxuICAgICAgICBbXSxcbiAgICAgICAgcGFyYW1zXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gb2YoW10pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbG9hZEFsbChcbiAgICBmaWx0ZXJzPzogRmlsdGVyW10sXG4gICAgc29ydHM/OiBTb3J0W10sXG4gICAgcGFyYW1zPzogSHR0cFBhcmFtc1xuICApOiBPYnNlcnZhYmxlPFRbXT4ge1xuICAgIHJldHVybiB0aGlzLmZpbmRBbGxDb250aW51YWJsZShcbiAgICAgIG5ldyBUb2tlbkNodW5rUmVxdWVzdChudWxsLCBmaWx0ZXJzLCBzb3J0cyksXG4gICAgICBwYXJhbXNcbiAgICApLnBpcGUoXG4gICAgICBleHBhbmQoKGxpc3RpbmcpID0+IHsgLy8gdGhlIHByZXZpb3VzIFwibGlzdGluZ1wiIC0+IFRoaXMgaXMgcmVjdXJzaXZlXG4gICAgICAgIHJldHVybiBsaXN0aW5nLm5leHRDb250aW51YXRpb25Ub2tlbiAvLyBpZiB0aGVyZSdzIFwibmV4dENvbnRpbnVhdGlvblRva2VuXCIsIHdlIHJlZmV0Y2ggb3Igd2UgRU1QVFkgdG8gY29tcGxldGUgdGhlIFwiZXhwYW5kKClcIlxuICAgICAgICAgID8gdGhpcy5maW5kQWxsQ29udGludWFibGUoXG4gICAgICAgICAgICBuZXcgVG9rZW5DaHVua1JlcXVlc3QobGlzdGluZy5uZXh0Q29udGludWF0aW9uVG9rZW4sIGZpbHRlcnMsIHNvcnRzKSxcbiAgICAgICAgICAgIHBhcmFtc1xuICAgICAgICAgIClcbiAgICAgICAgICA6IEVNUFRZO1xuICAgICAgfSksXG4gICAgICBtYXAobGlzdGluZyA9PiBsaXN0aW5nLmNvbnRlbnQpLFxuICAgICAgcmVkdWNlKFxuICAgICAgICAoYWdnLCBsaXN0aW5nKSA9PiB7XG4gICAgICAgICAgYWdnLnB1c2goLi4ubGlzdGluZyk7XG4gICAgICAgICAgcmV0dXJuIGFnZztcbiAgICAgICAgfSxcbiAgICAgICAgPFRbXT5bXVxuICAgICAgKVxuICAgICk7XG4gIH1cblxufVxuIl19
279
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdC1jbGllbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lbGRlcmJ5dGUvbmd4LXN0YXJ0ZXIvc3JjL2xpYi9jb21tb24vZGF0YS9kYXRhc291cmNlL3Jlc3QvcmVzdC1jbGllbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLEtBQUssRUFBRSxRQUFRLEVBQWMsRUFBRSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3JELE9BQU8sRUFBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQUU1RCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDNUMsT0FBTyxFQUFPLFFBQVEsRUFBQyxNQUFNLFlBQVksQ0FBQztBQUMxQyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFFbkQsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFFNUQsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQy9DLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ2xFLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUVuRCxNQUFNLE9BQU8sd0JBQXdCO0lBS25DLFlBQVksVUFBNkI7UUFIbEMsWUFBTyxHQUFHLElBQUksQ0FBQztRQUNmLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFHdEIsSUFBSSxVQUFVLEVBQUU7WUFDZCxJQUFJLFVBQVUsQ0FBQyxPQUFPLEVBQUU7Z0JBQ3RCLElBQUksQ0FBQyxPQUFPLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQzthQUNuQztZQUNELElBQUksVUFBVSxDQUFDLFFBQVEs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SSxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsRUFDM0MsTUFBTSxDQUNQLENBQUMsSUFBSSxDQUNKLE1BQU0sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ2pCLE9BQU8sT0FBTyxDQUFDLHFCQUFxQixDQUFDLHdGQUF3RjtnQkFDM0gsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FDdkIsSUFBSSxpQkFBaUIsQ0FBQyxPQUFPLENBQUMscUJBQXFCLEVBQUUsT0FBTyxFQUFFLEtBQUssQ0FBQyxFQUNwRSxNQUFNLENBQ1A7Z0JBQ0QsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUNaLENBQUMsQ0FBQyxFQUNGLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFDL0IsTUFBTSxDQUNKLENBQUMsR0FBRyxFQUFFLE9BQU8sRUFBRSxFQUFFO1lBQ2YsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDO1lBQ3JCLE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxFQUNJLEVBQUUsQ0FDUixDQUNGLENBQUM7SUFDSixDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0h0dHBDbGllbnQsIEh0dHBQYXJhbXN9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7RU1QVFksIGZvcmtKb2luLCBPYnNlcnZhYmxlLCBvZn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2V4cGFuZCwgbWFwLCByZWR1Y2UsIHRhcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtIdHRwUGFyYW1zQnVpbGRlcn0gZnJvbSAnLi4vLi4vaHR0cC1wYXJhbXMtYnVpbGRlcic7XG5pbXBvcnQge1NvcnR9IGZyb20gJy4uLy4uL3NvcnQnO1xuaW1wb3J0IHtGaWx0ZXJ9IGZyb20gJy4uLy4uL2ZpbHRlcnMvZmlsdGVyJztcbmltcG9ydCB7UGFnZSwgUGFnZWFibGV9IGZyb20gJy4uLy4uL3BhZ2UnO1xuaW1wb3J0IHtMb2dnZXJGYWN0b3J5fSBmcm9tICdAZWxkZXJieXRlL3RzLWxvZ2dlcic7XG5pbXBvcnQge0NvbnRpbnVhYmxlTGlzdGluZ30gZnJvbSAnLi4vLi4vY29udGludWFibGUtbGlzdGluZyc7XG5pbXBvcnQge1Rva2VuQ2h1bmtSZXF1ZXN0fSBmcm9tICcuLi8uLi90b2tlbi1jaHVuay1yZXF1ZXN0JztcbmltcG9ydCB7SUNvbnRpbnVhYmxlRGF0YVNvdXJjZSwgSURhdGFTb3VyY2UsIElMaXN0RGF0YVNvdXJjZSwgSVBhZ2VkRGF0YVNvdXJjZX0gZnJvbSAnLi4vZGF0YS1zb3VyY2UnO1xuaW1wb3J0IHtCYXRjaGVyfSBmcm9tICcuLi8uLi8uLi91dGlscy9iYXRjaGVyJztcbmltcG9ydCB7RGF0YVNvdXJjZUNoYW5nZUV2ZW50fSBmcm9tICcuLi9kYXRhLXNvdXJjZS1jaGFuZ2UtZXZlbnQnO1xuaW1wb3J0IHtEYXRhU291cmNlQmFzZX0gZnJvbSAnLi4vZGF0YS1zb3VyY2UtYmFzZSc7XG5cbmV4cG9ydCBjbGFzcyBJbnRlcm5hbFJlc3RDbGllbnRDb25maWcge1xuXG4gIHB1YmxpYyBpZEZpZWxkID0gJ2lkJztcbiAgcHVibGljIGlkc1BhcmFtID0gJ2lkcyc7XG5cbiAgY29uc3RydWN0b3IodXNlckNvbmZpZz86IFJlc3RDbGllbnRDb25maWcpIHtcbiAgICBpZiAodXNlckNvbmZpZykge1xuICAgICAgaWYgKHVzZXJDb25maWcuaWRGaWVsZCkge1xuICAgICAgICB0aGlzLmlkRmllbGQgPSB1c2VyQ29uZmlnLmlkRmllbGQ7XG4gICAgICB9XG4gICAgICBpZiAodXNlckNvbmZpZy5pZHNQYXJhbSkge1xuICAgICAgICB0aGlzLmlkc1BhcmFtID0gdXNlckNvbmZpZy5pZHNQYXJhbTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuLyoqXG4gKiBBbGxvd3MgdG8gY3VzdG9taXplIHRoZSByZXN0IGNsaWVudFxuICovXG5leHBvcnQgY2xhc3MgUmVzdENsaWVudENvbmZpZyB7XG5cbiAgLyoqXG4gICAqIFRoZSBmaWVsZCB0byB1c2UgYXMgaWQuIERlZmF1bHRzIHRvICdpZCcuXG4gICAqL1xuICBwdWJsaWMgaWRGaWVsZD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHF1ZXJ5IHBhcmFtIHRvIHVzZSBmb3IgbXVsdGlwbGUgaWRzLiBEZWZhdWx0cyB0byAnaWRzJ1xuICAgKi9cbiAgcHVibGljIGlkc1BhcmFtPzogc3RyaW5nO1xufVxuXG5cbmV4cG9ydCBjbGFzcyBSZXN0Q2xpZW50PFQsIFRJRD4gZXh0ZW5kcyBEYXRhU291cmNlQmFzZTxUPiBpbXBsZW1lbnRzIElEYXRhU291cmNlPFQ+IHtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHJlYWRvbmx5IF9sb2dnZXIgPSBMb2dnZXJGYWN0b3J5LmdldExvZ2dlcih0aGlzLmNvbnN0cnVjdG9yLm5hbWUpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBjb25maWc6IEludGVybmFsUmVzdENsaWVudENvbmZpZztcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgcmVzdEVuZHBvaW50OiBzdHJpbmcsXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGh0dHA6IEh0dHBDbGllbnQsXG4gICAgY29uZmlnPzogUmVzdENsaWVudENvbmZpZ1xuICApIHtcbiAgICBzdXBlcihuZXcgSW50ZXJuYWxSZXN0Q2xpZW50Q29uZmlnKGNvbmZpZykuaWRGaWVsZCk7XG4gICAgdGhpcy5jb25maWcgPSBuZXcgSW50ZXJuYWxSZXN0Q2xpZW50Q29uZmlnKGNvbmZpZyk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgZmluZEJ5SWQoaWQ6IFRJRCwgcGFyYW1zPzogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8VD4ge1xuICAgIHBhcmFtcyA9IEh0dHBQYXJhbXNCdWlsZGVyLnN0YXJ0KHBhcmFtcykuYnVpbGQoKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxUPih0aGlzLmdldEVudGl0eVVybChpZCksIHtwYXJhbXM6IHBhcmFtc30pO1xuICB9XG5cbiAgcHVibGljIGZpbmRCeUlkcyhpZHM6IGFueVtdLCBwYXJhbXM/OiBIdHRwUGFyYW1zKTogT2JzZXJ2YWJsZTxUW10+IHtcbiAgICB0aGlzLl9sb2dnZXIud2FybignVmVyeSBpbmVmZmljaWVudCBmaW5kQnlJZHMgaGFuZGxpbmcgJyArIGlkcy5sZW5ndGgpO1xuICAgIHJldHVybiBmb3JrSm9pbihcbiAgICAgIGlkcy5tYXAoaWQgPT4gdGhpcy5maW5kQnlJZChpZCwgcGFyYW1zKSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgb3IgVXBkYXRlcyB0aGUgZ2l2ZW4gZW50aXR5IGRlcGVuZGluZyBpZiBpdCBhbHJlYWR5IGhhcyBhIHZhbGlkIGlkLlxuICAgKi9cbiAgcHVibGljIHNhdmUoZW50aXR5OiBULCBwYXJhbXM/OiBIdHRwUGFyYW1zKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgY29uc3QgaWQgPSB0aGlzLmdldElkKGVudGl0eSk7XG4gICAgcmV0dXJuICgoISFpZCkgPyB0aGlzLnVwZGF0ZShlbnRpdHksIHBhcmFtcykgOiB0aGlzLmNyZWF0ZShlbnRpdHksIHBhcmFtcykpO1xuICB9XG5cbiAgcHVibGljIGNyZWF0ZTxUQyA9IFQ+KG5ld0VudGl0eTogVEMsIHBhcmFtcz86IEh0dHBQYXJhbXMpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8VD4odGhpcy5yZXN0RW5kcG9pbnQsIG5ld0VudGl0eSwge1xuICAgICAgcGFyYW1zOiBwYXJhbXNcbiAgICB9KS5waXBlKFxuICAgICAgICB0YXAoZSA9PiB0aGlzLnB1Ymxpc2hDaGFuZ2VFdmVudChcbiAgICAgICAgICBEYXRhU291cmNlQ2hhbmdlRXZlbnQuY3JlYXRlZChbZV0pXG4gICAgICAgICkpXG4gICAgICApO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZTxURW50aXR5VXBkYXRlPih1cGRhdGU6IFRFbnRpdHlVcGRhdGUsIHBhcmFtcz86IEh0dHBQYXJhbXMpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxUPihcbiAgICAgIHRoaXMuZ2V0RW50aXR5VXJsQnkoPFQ+PHVua25vd24+dXBkYXRlKSxcbiAgICAgIHVwZGF0ZSxcbiAgICAgIHtcbiAgICAgICAgcGFyYW1zOiBwYXJhbXNcbiAgICAgIH1cbiAgICApLnBpcGUoXG4gICAgICAgIHRhcChlID0+IHRoaXMucHVibGlzaENoYW5nZUV2ZW50KFxuICAgICAgICAgIERhdGFTb3VyY2VDaGFuZ2VFdmVudC5tb2RpZmllZChbZV0pXG4gICAgICAgICkpXG4gICAgICApO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZUFsbDxURW50aXR5VXBkYXRlPih1cGRhdGVkRW50aXRpZXM6IFRFbnRpdHlVcGRhdGVbXSwgcGFyYW1zPzogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8VFtdPiB7XG5cbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDxUW10+KFxuICAgICAgdGhpcy5yZXN0RW5kcG9pbnQsIHVwZGF0ZWRFbnRpdGllcywge1xuICAgICAgICBwYXJhbXM6IHBhcmFtc1xuICAgICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoZW50aXRpZXMgPT4gdGhpcy5wdWJsaXNoQ2hhbmdlRXZlbnQoXG4gICAgICAgICAgRGF0YVNvdXJjZUNoYW5nZUV2ZW50Lm1vZGlmaWVkKGVudGl0aWVzKVxuICAgICAgICApKVxuICAgICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBkZWxldGUoZW50aXR5OiBULCBwYXJhbXM/OiBIdHRwUGFyYW1zKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZShcbiAgICAgIHRoaXMuZ2V0RW50aXR5VXJsQnkoZW50aXR5KSxcbiAgICAgIHtcbiAgICAgICAgcmVzcG9uc2VUeXBlOiAndGV4dCcsXG4gICAgICAgIHBhcmFtczogcGFyYW1zXG4gICAgICB9XG4gICAgKS5waXBlKFxuICAgICAgdGFwKCgpID0+IHRoaXMucHVibGlzaENoYW5nZUV2ZW50KFxuICAgICAgICBEYXRhU291cmNlQ2hhbmdlRXZlbnQuZGVsZXRlZChbdGhpcy5nZXRJZChlbnRpdHkpXSkpXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBkZWxldGVBbGwoZW50aXRpZXM6IFRbXSwgcGFyYW1zPzogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3QgaWRzID0gZW50aXRpZXMubWFwKGUgPT4gU3RyaW5nKHRoaXMuZ2V0SWQoZSkpKTtcblxuICAgIGNvbnN0IG1heEJhdGNoU2l6ZSA9IDEwMDtcbiAgICBjb25zdCBkZWxldGVSZXF1ZXN0cyA9IEJhdGNoZXIuYmF0Y2hNYXAoXG4gICAgICBpZHMsXG4gICAgICBtYXhCYXRjaFNpemUsXG4gICAgICBiYXRjaCA9PiB0aGlzLmRlbGV0ZUlkQmF0Y2goYmF0Y2gsIHBhcmFtcylcbiAgICApO1xuICAgIHRoaXMuX2xvZ2dlci5kZWJ1ZygnRGVsZXRpbmcgJyArIGVudGl0aWVzLmxlbmd0aCArICcgaW4gJyArIGRlbGV0ZVJlcXVlc3RzLmxlbmd0aCArICcgYmF0Y2hlczogJywgZGVsZXRlUmVxdWVzdHMpO1xuICAgIHJldHVybiBmb3JrSm9pbihkZWxldGVSZXF1ZXN0cyk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogU3ViIFJlc291cmNlIEJ1aWxkZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgc3ViUmVzb3VyY2VMaXN0PFRTLCBUU0lEPihwYXJlbnQ6IFQsIHN1YlBhdGg6IHN0cmluZywgY29uZmlnPzogUmVzdENsaWVudENvbmZpZyk6IFJlc3RDbGllbnRMaXN0PFRTLCBUU0lEPiB7XG4gICAgcmV0dXJuIG5ldyBSZXN0Q2xpZW50TGlzdChcbiAgICAgIHRoaXMuZ2V0RW50aXR5VXJsQnkocGFyZW50KSArICcvJyArIHN1YlBhdGgsXG4gICAgICB0aGlzLmh0dHAsXG4gICAgICBjb25maWdcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHN1YlJlc291cmNlUGFnZWQ8VFMsIFRTSUQ+KHBhcmVudDogVCwgc3ViUGF0aDogc3RyaW5nLCBjb25maWc/OiBSZXN0Q2xpZW50Q29uZmlnKTogUmVzdENsaWVudFBhZ2VkPFRTLCBUU0lEPiB7XG4gICAgcmV0dXJuIG5ldyBSZXN0Q2xpZW50UGFnZWQoXG4gICAgICB0aGlzLmdldEVudGl0eVVybEJ5KHBhcmVudCkgKyAnLycgKyBzdWJQYXRoLFxuICAgICAgdGhpcy5odHRwLFxuICAgICAgY29uZmlnXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBzdWJSZXNvdXJjZUNvbnRpbnVhYmxlPFRTLCBUU0lEPihwYXJlbnQ6IFQsIHN1YlBhdGg6IHN0cmluZywgY29uZmlnPzogUmVzdENsaWVudENvbmZpZyk6IFJlc3RDbGllbnRDb250aW51YWJsZTxUUywgVFNJRD4ge1xuICAgIHJldHVybiBuZXcgUmVzdENsaWVudENvbnRpbnVhYmxlKFxuICAgICAgdGhpcy5nZXRFbnRpdHlVcmxCeShwYXJlbnQpICsgJy8nICsgc3ViUGF0aCxcbiAgICAgIHRoaXMuaHR0cCxcbiAgICAgIGNvbmZpZ1xuICAgICk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJvdGVjdGVkIG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcm90ZWN0ZWQgcGF0Y2hJbnRlcm5hbDxQPihpZDogVElELCBlbnRpdHlQYXRjaDogUCwgcGFyYW1zPzogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8VD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAucGF0Y2g8VD4oXG4gICAgICB0aGlzLmdldEVudGl0eVVybChpZCksXG4gICAgICBlbnRpdHlQYXRjaCxcbiAgICAgIHtcbiAgICAgICAgcGFyYW1zOiBwYXJhbXNcbiAgICAgIH1cbiAgICApLnBpcGUoXG4gICAgICB0YXAoZSA9PiB0aGlzLnB1Ymxpc2hDaGFuZ2VFdmVudChcbiAgICAgICAgRGF0YVNvdXJjZUNoYW5nZUV2ZW50Lm1vZGlmaWVkKFtlXSkpXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBwYXRjaEFsbEludGVybmFsPFA+KGVudGl0eVBhdGNoZXM6IFBbXSwgcGFyYW1zPzogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8VFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wYXRjaDxUW10+KFxuICAgICAgdGhpcy5yZXN0RW5kcG9pbnQsXG4gICAgICBlbnRpdHlQYXRjaGVzLFxuICAgICAge1xuICAgICAgICBwYXJhbXM6IHBhcmFtc1xuICAgICAgfVxuICAgICkucGlwZShcbiAgICAgIHRhcChlID0+IHRoaXMucHVibGlzaENoYW5nZUV2ZW50KERhdGFTb3VyY2VDaGFuZ2VFdmVudC5tb2RpZmllZChlKSkpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBTd2l0Y2ggdG8gcHVibGlzaENoYW5nZUV2ZW50XG4gICAqL1xuICBwcm90ZWN0ZWQgb25Mb2NhbENoYW5nZWQoZW50aXR5PzogVCk6IHZvaWQge1xuICAgIHRoaXMucHVibGlzaENoYW5nZUV2ZW50KERhdGFTb3VyY2VDaGFuZ2VFdmVudC51bmtub3duQ2hhbmdlcygpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRFbnRpdHlVcmxCeShlbnRpdHk6IFQpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldEVudGl0eVVybCh0aGlzLmdldElkKGVudGl0eSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldEVudGl0eVVybChpZDogVElEKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yZXN0RW5kcG9pbnQgKyAnLycgKyBpZDtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIC8qKlxuICAgKiBEZWxldGVzIHRoZSBnaXZlbiBpZHMgaW4gYSBiYXRjaCBjYWxsLlxuICAgKiBOb3RlIHRoYXQgZHVlIEhUVFAgUmVxdWVzdCBVUkkgbGltaXRhdGlvbnMsXG4gICAqIHRoZSBudW1iZXIgb2YgaWRzIHRoYXQgY2FuIGJlIGRlbGV0ZWQgaW4gYSBzaW5nbGUgYmF0Y2ggaXNcbiAgICogbGltaXRlZCAoYXJvdW5kIDE1MCwgZGVwZW5kaW5nIG9uIGlkIGxlbmd0aCwgc2luY2UgdGhleSBhcmVcbiAgICogcGFydCBvZiB0aGUgcmVxdWVzdCB1cmkgcGFyYW1ldGVycy5cbiAgICovXG4gIHByaXZhdGUgZGVsZXRlSWRCYXRjaChpZHM6IHN0cmluZ1tdLCBwYXJhbXM/OiBIdHRwUGFyYW1zKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBidWlsZGVyID0gSHR0cFBhcmFtc0J1aWxkZXIuc3RhcnQocGFyYW1zKTtcbiAgICBidWlsZGVyLmFwcGVuZEZpbHRlcihuZXcgRmlsdGVyKHRoaXMuY29uZmlnLmlkc1BhcmFtLCBpZHMpKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZSh0aGlzLnJlc3RFbmRwb2ludCxcbiAgICAgIHtcbiAgICAgICAgcGFyYW1zOiBidWlsZGVyLmJ1aWxkKCksXG4gICAgICAgIHJlc3BvbnNlVHlwZTogJ3RleHQnXG4gICAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcCgoKSA9PiAgdGhpcy5wdWJsaXNoQ2hhbmdlRXZlbnQoRGF0YVNvdXJjZUNoYW5nZUV2ZW50LmRlbGV0ZWQoaWRzKSkpXG4gICAgICApO1xuICB9XG59XG5cblxuZXhwb3J0IGNsYXNzIFJlc3RDbGllbnRMaXN0PFQsIFRJRD4gZXh0ZW5kcyBSZXN0Q2xpZW50PFQsIFRJRD4gaW1wbGVtZW50cyBJTGlzdERhdGFTb3VyY2U8VD4ge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBDb25zdHJ1Y3RvciAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHJlc3RFbmRwb2ludDogc3RyaW5nLFxuICAgIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgY29uZmlnPzogUmVzdENsaWVudENvbmZpZ1xuICApIHtcbiAgICBzdXBlcihyZXN0RW5kcG9pbnQsIGh0dHAsIGNvbmZpZyk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHVibGljIEFQSSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgZmluZEFsbEZpbHRlcmVkKFxuICAgIGZpbHRlcnM/OiBGaWx0ZXJbXSxcbiAgICBzb3J0cz86IFNvcnRbXSxcbiAgICBwYXJhbXM/OiBIdHRwUGFyYW1zXG4gICk6IE9ic2VydmFibGU8VFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuZmluZEFsbChcbiAgICAgIEh0dHBQYXJhbXNCdWlsZGVyLnN0YXJ0KHBhcmFtcylcbiAgICAgICAgLmFwcGVuZEZpbHRlcnMoZmlsdGVycylcbiAgICAgICAgLmFwcGVuZFNvcnRzKHNvcnRzKVxuICAgICAgICAuYnVpbGQoKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZmluZEJ5SWRzKGlkczogYW55W10sIHBhcmFtcz86IEh0dHBQYXJhbXMpOiBPYnNlcnZhYmxlPFRbXT4ge1xuICAgIGlmIChpZHM/Lmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiB0aGlzLmZpbmRBbGxGaWx0ZXJlZChcbiAgICAgICAgW25ldyBGaWx0ZXIodGhpcy5jb25maWcuaWRzUGFyYW0sIGlkcyldLFxuICAgICAgICBbXSxcbiAgICAgICAgcGFyYW1zXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gb2YoW10pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBmaW5kQWxsKHBhcmFtcz86IEh0dHBQYXJhbXMpOiBPYnNlcnZhYmxlPFRbXT4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFRbXT4odGhpcy5yZXN0RW5kcG9pbnQsIHtcbiAgICAgIHBhcmFtczogcGFyYW1zXG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFJlc3RDbGllbnRQYWdlZDxULCBUSUQ+IGV4dGVuZHMgUmVzdENsaWVudDxULCBUSUQ+IGltcGxlbWVudHMgSVBhZ2VkRGF0YVNvdXJjZTxUPiB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcmVzdEVuZHBvaW50OiBzdHJpbmcsXG4gICAgaHR0cDogSHR0cENsaWVudCxcbiAgICBjb25maWc/OiBSZXN0Q2xpZW50Q29uZmlnXG4gICkge1xuICAgIHN1cGVyKHJlc3RFbmRwb2ludCwgaHR0cCwgY29uZmlnKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBmaW5kQWxsUGFnZWQocGFnZWFibGU6IFBhZ2VhYmxlLCBmaWx0ZXJzPzogRmlsdGVyW10sIHBhcmFtcz86IEh0dHBQYXJhbXMpOiBPYnNlcnZhYmxlPFBhZ2U8VD4+IHtcbiAgICByZXR1cm4gdGhpcy5nZXRQYWdlZCh0aGlzLnJlc3RFbmRwb2ludCwgcGFnZWFibGUsIGZpbHRlcnMsIHBhcmFtcyk7XG4gIH1cblxuICBwdWJsaWMgZmluZEJ5SWRzKGlkczogYW55W10sIHBhcmFtcz86IEh0dHBQYXJhbXMpOiBPYnNlcnZhYmxlPFRbXT4ge1xuICAgIGlmIChpZHM/Lmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiB0aGlzLmZpbmRBbGxQYWdlZChcbiAgICAgICAgbmV3IFBhZ2VhYmxlKDAsIGlkcy5sZW5ndGgpLFxuICAgICAgICBbbmV3IEZpbHRlcih0aGlzLmNvbmZpZy5pZHNQYXJhbSwgaWRzKV0sXG4gICAgICAgIHBhcmFtc1xuICAgICAgKS5waXBlKFxuICAgICAgICBtYXAocGFnZSA9PiBwYWdlLmNvbnRlbnQpXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gb2YoW10pO1xuICAgIH1cbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcml2YXRlIG1ldGhvZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHJlcXVlc3RlZCBkYXRhIHBhZ2UgYXMgUGFnZTxUPlxuICAgKiBAcGFyYW0gdXJsIFRoZSByZXNvdXJjZSB1cmxcbiAgICogQHBhcmFtIHBhZ2VhYmxlIFRoZSBwYWdlIHJlcXVlc3RcbiAgICogQHBhcmFtIGZpbHRlcnMgVGhlIGZpbHRlcnNTbmFwc2hvdCByZXF1ZXN0XG4gICAqIEBwYXJhbSBwYXJhbXMgQWRkaXRpb25hbCBwYXJhbWV0ZXJzXG4gICAqL1xuICBwcml2YXRlIGdldFBhZ2VkKHVybDogc3RyaW5nLCBwYWdlYWJsZTogUGFnZWFibGUsIGZpbHRlcnM/OiBGaWx0ZXJbXSwgcGFyYW1zPzogSHR0cFBhcmFtcyk6IE9ic2VydmFibGU8UGFnZTxUPj4ge1xuICAgIHBhcmFtcyA9IEh0dHBQYXJhbXNCdWlsZGVyLnN0YXJ0KHBhcmFtcylcbiAgICAgIC5hcHBlbmRQYWdlYWJsZShwYWdlYWJsZSlcbiAgICAgIC5hcHBlbmRGaWx0ZXJzKGZpbHRlcnMpXG4gICAgICAuYnVpbGQoKTtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxQYWdlPFQ+Pih1cmwsIHtwYXJhbXM6IHBhcmFtc30pO1xuICB9XG5cbn1cblxuZXhwb3J0IGNsYXNzIFJlc3RDbGllbnRDb250aW51YWJsZTxULCBUSUQ+IGV4dGVuZHMgUmVzdENsaWVudDxULCBUSUQ+IGltcGxlbWVudHMgSUNvbnRpbnVhYmxlRGF0YVNvdXJjZTxUPiB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcmVzdEVuZHBvaW50OiBzdHJpbmcsXG4gICAgaHR0cDogSHR0cENsaWVudCxcbiAgICBjb25maWc/OiBSZXN0Q2xpZW50Q29uZmlnXG4gICkge1xuICAgIHN1cGVyKHJlc3RFbmRwb2ludCwgaHR0cCwgY29uZmlnKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBmaW5kQWxsQ29udGludWFibGUocmVxdWVzdDogVG9rZW5DaHVua1JlcXVlc3QsIHBhcmFtcz86IEh0dHBQYXJhbXMpOiBPYnNlcnZhYmxlPENvbnRpbnVhYmxlTGlzdGluZzxUPj4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PENvbnRpbnVhYmxlTGlzdGluZzxUPj4odGhpcy5yZXN0RW5kcG9pbnQsXG4gICAgICB7XG4gICAgICAgIHBhcmFtczogSHR0cFBhcmFtc0J1aWxkZXIuc3RhcnQocGFyYW1zKVxuICAgICAgICAgIC5hcHBlbmRDb250aW51YXRpb25SZXF1ZXN0KHJlcXVlc3QpXG4gICAgICAgICAgLmJ1aWxkKClcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgcHVibGljIGZpbmRCeUlkcyhpZHM6IGFueVtdLCBwYXJhbXM/OiBIdHRwUGFyYW1zKTogT2JzZXJ2YWJsZTxUW10+IHtcbiAgICBpZiAoaWRzPy5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gdGhpcy5sb2FkQWxsKFxuICAgICAgICBbbmV3IEZpbHRlcih0aGlzLmNvbmZpZy5pZHNQYXJhbSwgaWRzKV0sXG4gICAgICAgIFtdLFxuICAgICAgICBwYXJhbXNcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBvZihbXSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBsb2FkQWxsKFxuICAgIGZpbHRlcnM/OiBGaWx0ZXJbXSxcbiAgICBzb3J0cz86IFNvcnRbXSxcbiAgICBwYXJhbXM/OiBIdHRwUGFyYW1zXG4gICk6IE9ic2VydmFibGU8VFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuZmluZEFsbENvbnRpbnVhYmxlKFxuICAgICAgbmV3IFRva2VuQ2h1bmtSZXF1ZXN0KG51bGwsIGZpbHRlcnMsIHNvcnRzKSxcbiAgICAgIHBhcmFtc1xuICAgICkucGlwZShcbiAgICAgIGV4cGFuZCgobGlzdGluZykgPT4geyAvLyB0aGUgcHJldmlvdXMgXCJsaXN0aW5nXCIgLT4gVGhpcyBpcyByZWN1cnNpdmVcbiAgICAgICAgcmV0dXJuIGxpc3RpbmcubmV4dENvbnRpbnVhdGlvblRva2VuIC8vIGlmIHRoZXJlJ3MgXCJuZXh0Q29udGludWF0aW9uVG9rZW5cIiwgd2UgcmVmZXRjaCBvciB3ZSBFTVBUWSB0byBjb21wbGV0ZSB0aGUgXCJleHBhbmQoKVwiXG4gICAgICAgICAgPyB0aGlzLmZpbmRBbGxDb250aW51YWJsZShcbiAgICAgICAgICAgIG5ldyBUb2tlbkNodW5rUmVxdWVzdChsaXN0aW5nLm5leHRDb250aW51YXRpb25Ub2tlbiwgZmlsdGVycywgc29ydHMpLFxuICAgICAgICAgICAgcGFyYW1zXG4gICAgICAgICAgKVxuICAgICAgICAgIDogRU1QVFk7XG4gICAgICB9KSxcbiAgICAgIG1hcChsaXN0aW5nID0+IGxpc3RpbmcuY29udGVudCksXG4gICAgICByZWR1Y2UoXG4gICAgICAgIChhZ2csIGxpc3RpbmcpID0+IHtcbiAgICAgICAgICBhZ2cucHVzaCguLi5saXN0aW5nKTtcbiAgICAgICAgICByZXR1cm4gYWdnO1xuICAgICAgICB9LFxuICAgICAgICA8VFtdPltdXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG59XG4iXX0=
@@ -1,6 +1,6 @@
1
1
  import { Directive, Input } from "@angular/core";
2
2
  import { LoggerFactory } from "@elderbyte/ts-logger";
3
- import { filter, first, map, skip, takeUntil } from "rxjs/operators";
3
+ import { filter, first, map, takeUntil } from "rxjs/operators";
4
4
  import { Subject } from "rxjs/internal/Subject";
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "./elder-search-context.directive";
@@ -35,8 +35,7 @@ export class ElderSearchContextUrlBindingDirective {
35
35
  this.urlBindingService.initialSearchMap$.pipe(first(), takeUntil(this._unsubscribe$), filter(searchMap => searchMap.has(this._urlBinding)), map(searchMap => searchMap.get(this._urlBinding)), map(filterMap => Array.from(filterMap.filters.values()))).subscribe(filters => {
36
36
  this.searchContext.registerInitialFilters(filters);
37
37
  });
38
- this.searchContext.filters$.pipe(takeUntil(this._unsubscribe$), skip(2) //Skip empty and skip initial filter
39
- ).subscribe(filters => this.urlBindingService.updateFiltersForContext(this._urlBinding, filters));
38
+ this.searchContext.filters$.pipe(takeUntil(this._unsubscribe$)).subscribe(filters => this.urlBindingService.updateFiltersForContext(this._urlBinding, filters));
40
39
  }
41
40
  ngOnDestroy() {
42
41
  this._unsubscribe$.next();
@@ -65,4 +64,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
65
64
  }], ctorParameters: function () { return [{ type: i1.ElderSearchContextDirective }, { type: i2.ElderSearchUrlBindingService }]; }, propDecorators: { elderSearchContextUrlBinding: [{
66
65
  type: Input
67
66
  }] } });
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItc2VhcmNoLWNvbnRleHQtdXJsLWJpbmRpbmcuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9mb3Jtcy9zZWFyY2gvZWxkZXItc2VhcmNoLWNvbnRleHQtdXJsLWJpbmRpbmcuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDckQsT0FBTyxFQUFnQixNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7O0FBSWhEOzs7R0FHRztBQUtILE1BQU0sT0FBTyxxQ0FBcUM7SUFlaEQ7Ozs7Z0ZBSTRFO0lBRTVFLFlBQ1UsYUFBMEMsRUFDMUMsaUJBQStDO1FBRC9DLGtCQUFhLEdBQWIsYUFBYSxDQUE2QjtRQUMxQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQThCO1FBcEJ6RDs7OztvRkFJNEU7UUFFM0QsUUFBRyxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVyRCxrQkFBYSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFjckQsQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUVyRSxlQUFlO1FBQ3BCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQzNDLEtBQUssRUFBRSxFQUNQLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQzdCLE1BQU0sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQ3BELEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQ2pELEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQ3pELENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxhQUFhLENBQUMsc0JBQXNCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckQsQ0FBQyxDQUNGLENBQUM7UUFFRixJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQzlCLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQzdCLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxvQ0FBb0M7U0FDN0MsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FDcEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQzFFLENBQUM7SUFDSixDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUU1RSxJQUNXLDRCQUE0QixDQUFDLEtBQWE7UUFDbkQsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQVcsNEJBQTRCO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDOzhHQXZFVSxxQ0FBcUM7a0dBQXJDLHFDQUFxQzs7MkZBQXJDLHFDQUFxQztrQkFKakQsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0NBQWdDO29CQUMxQyxRQUFRLEVBQUUsOEJBQThCO2lCQUN6Qzs2SkFrRVksNEJBQTRCO3NCQUR0QyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBJbnB1dCwgT25EZXN0cm95IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IExvZ2dlckZhY3RvcnkgfSBmcm9tIFwiQGVsZGVyYnl0ZS90cy1sb2dnZXJcIjtcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZmlsdGVyLCBmaXJzdCwgbWFwLCBza2lwLCB0YWtlVW50aWwgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tIFwicnhqcy9pbnRlcm5hbC9TdWJqZWN0XCI7XG5pbXBvcnQgeyBFbGRlclNlYXJjaFVybEJpbmRpbmdTZXJ2aWNlIH0gZnJvbSBcIi4vc2VhcmNoLWJveC9lbGRlci1zZWFyY2gtdXJsLWJpbmRpbmcuc2VydmljZVwiO1xuaW1wb3J0IHsgRWxkZXJTZWFyY2hDb250ZXh0RGlyZWN0aXZlIH0gZnJvbSBcIi4vZWxkZXItc2VhcmNoLWNvbnRleHQuZGlyZWN0aXZlXCI7XG5cbi8qKlxuICogVGhlIHNlYXJjaCBjb250YWluZXIgbWFuYWdlcyBhIGdyb3VwIG9mIHNlYXJjaC1pbnB1dHNcbiAqIGFuZCBob2xkcyB0aGVpciB2YWx1ZXMgaW4gYSBjZW50cmFsIHNlYXJjaCBtb2RlbC5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiBcIltlbGRlclNlYXJjaENvbnRleHRVcmxCaW5kaW5nXVwiLFxuICBleHBvcnRBczogXCJlbGRlclNlYXJjaENvbnRleHRVcmxCaW5kaW5nXCJcbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJTZWFyY2hDb250ZXh0VXJsQmluZGluZ0RpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG5cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHJlYWRvbmx5IGxvZyA9IExvZ2dlckZhY3RvcnkuZ2V0TG9nZ2VyKHRoaXMuY29uc3RydWN0b3IubmFtZSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfdW5zdWJzY3JpYmUkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwcml2YXRlIF91cmxCaW5kaW5nOiBzdHJpbmc7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzZWFyY2hDb250ZXh0OiBFbGRlclNlYXJjaENvbnRleHREaXJlY3RpdmUsXG4gICAgcHJpdmF0ZSB1cmxCaW5kaW5nU2VydmljZTogRWxkZXJTZWFyY2hVcmxCaW5kaW5nU2VydmljZVxuICApIHtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBMaWZlIEN5Y2xlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy51cmxCaW5kaW5nU2VydmljZS5pbml0aWFsU2VhcmNoTWFwJC5waXBlKFxuICAgICAgZmlyc3QoKSxcbiAgICAgIHRha2VVbnRpbCh0aGlzLl91bnN1YnNjcmliZSQpLFxuICAgICAgZmlsdGVyKHNlYXJjaE1hcCA9PiBzZWFyY2hNYXAuaGFzKHRoaXMuX3VybEJpbmRpbmcpKSxcbiAgICAgIG1hcChzZWFyY2hNYXAgPT4gc2VhcmNoTWFwLmdldCh0aGlzLl91cmxCaW5kaW5nKSksXG4gICAgICBtYXAoZmlsdGVyTWFwID0+IEFycmF5LmZyb20oZmlsdGVyTWFwLmZpbHRlcnMudmFsdWVzKCkpKSxcbiAgICApLnN1YnNjcmliZShmaWx0ZXJzID0+IHtcbiAgICAgICAgdGhpcy5zZWFyY2hDb250ZXh0LnJlZ2lzdGVySW5pdGlhbEZpbHRlcnMoZmlsdGVycyk7XG4gICAgICB9XG4gICAgKTtcblxuICAgIHRoaXMuc2VhcmNoQ29udGV4dC5maWx0ZXJzJC5waXBlKFxuICAgICAgdGFrZVVudGlsKHRoaXMuX3Vuc3Vic2NyaWJlJCksXG4gICAgICBza2lwKDIpIC8vU2tpcCBlbXB0eSBhbmQgc2tpcCBpbml0aWFsIGZpbHRlclxuICAgICkuc3Vic2NyaWJlKGZpbHRlcnMgPT5cbiAgICAgIHRoaXMudXJsQmluZGluZ1NlcnZpY2UudXBkYXRlRmlsdGVyc0ZvckNvbnRleHQodGhpcy5fdXJsQmluZGluZywgZmlsdGVycylcbiAgICApO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX3Vuc3Vic2NyaWJlJC5uZXh0KCk7XG4gICAgdGhpcy5fdW5zdWJzY3JpYmUkLmNvbXBsZXRlKCk7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJvcGVydGllcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGVsZGVyU2VhcmNoQ29udGV4dFVybEJpbmRpbmcodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX3VybEJpbmRpbmcgPSB2YWx1ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZWxkZXJTZWFyY2hDb250ZXh0VXJsQmluZGluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl91cmxCaW5kaW5nO1xuICB9XG59XG5cbiJdfQ==
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItc2VhcmNoLWNvbnRleHQtdXJsLWJpbmRpbmcuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9mb3Jtcy9zZWFyY2gvZWxkZXItc2VhcmNoLWNvbnRleHQtdXJsLWJpbmRpbmcuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDckQsT0FBTyxFQUFnQixNQUFNLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBUSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7QUFJaEQ7OztHQUdHO0FBS0gsTUFBTSxPQUFPLHFDQUFxQztJQWVoRDs7OztnRkFJNEU7SUFFNUUsWUFDVSxhQUEwQyxFQUMxQyxpQkFBK0M7UUFEL0Msa0JBQWEsR0FBYixhQUFhLENBQTZCO1FBQzFDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBOEI7UUFwQnpEOzs7O29GQUk0RTtRQUUzRCxRQUFHLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXJELGtCQUFhLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQWNyRCxDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRXJFLGVBQWU7UUFDcEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FDM0MsS0FBSyxFQUFFLEVBQ1AsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFDN0IsTUFBTSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsRUFDcEQsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsRUFDakQsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FDekQsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDbEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyRCxDQUFDLENBQ0YsQ0FBQztRQUVGLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLElBQUksQ0FDOUIsU0FBUyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FDOUIsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FDcEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQzFFLENBQUM7SUFDSixDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUU1RSxJQUNXLDRCQUE0QixDQUFDLEtBQWE7UUFDbkQsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQUVELElBQVcsNEJBQTRCO1FBQ3JDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUMxQixDQUFDOzhHQXRFVSxxQ0FBcUM7a0dBQXJDLHFDQUFxQzs7MkZBQXJDLHFDQUFxQztrQkFKakQsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0NBQWdDO29CQUMxQyxRQUFRLEVBQUUsOEJBQThCO2lCQUN6Qzs2SkFpRVksNEJBQTRCO3NCQUR0QyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBJbnB1dCwgT25EZXN0cm95IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IExvZ2dlckZhY3RvcnkgfSBmcm9tIFwiQGVsZGVyYnl0ZS90cy1sb2dnZXJcIjtcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZmlsdGVyLCBmaXJzdCwgbWFwLCBza2lwLCB0YWtlVW50aWwgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tIFwicnhqcy9pbnRlcm5hbC9TdWJqZWN0XCI7XG5pbXBvcnQgeyBFbGRlclNlYXJjaFVybEJpbmRpbmdTZXJ2aWNlIH0gZnJvbSBcIi4vc2VhcmNoLWJveC9lbGRlci1zZWFyY2gtdXJsLWJpbmRpbmcuc2VydmljZVwiO1xuaW1wb3J0IHsgRWxkZXJTZWFyY2hDb250ZXh0RGlyZWN0aXZlIH0gZnJvbSBcIi4vZWxkZXItc2VhcmNoLWNvbnRleHQuZGlyZWN0aXZlXCI7XG5cbi8qKlxuICogVGhlIHNlYXJjaCBjb250YWluZXIgbWFuYWdlcyBhIGdyb3VwIG9mIHNlYXJjaC1pbnB1dHNcbiAqIGFuZCBob2xkcyB0aGVpciB2YWx1ZXMgaW4gYSBjZW50cmFsIHNlYXJjaCBtb2RlbC5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiBcIltlbGRlclNlYXJjaENvbnRleHRVcmxCaW5kaW5nXVwiLFxuICBleHBvcnRBczogXCJlbGRlclNlYXJjaENvbnRleHRVcmxCaW5kaW5nXCJcbn0pXG5leHBvcnQgY2xhc3MgRWxkZXJTZWFyY2hDb250ZXh0VXJsQmluZGluZ0RpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG5cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogRmllbGRzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHJlYWRvbmx5IGxvZyA9IExvZ2dlckZhY3RvcnkuZ2V0TG9nZ2VyKHRoaXMuY29uc3RydWN0b3IubmFtZSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfdW5zdWJzY3JpYmUkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwcml2YXRlIF91cmxCaW5kaW5nOiBzdHJpbmc7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzZWFyY2hDb250ZXh0OiBFbGRlclNlYXJjaENvbnRleHREaXJlY3RpdmUsXG4gICAgcHJpdmF0ZSB1cmxCaW5kaW5nU2VydmljZTogRWxkZXJTZWFyY2hVcmxCaW5kaW5nU2VydmljZVxuICApIHtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBMaWZlIEN5Y2xlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy51cmxCaW5kaW5nU2VydmljZS5pbml0aWFsU2VhcmNoTWFwJC5waXBlKFxuICAgICAgZmlyc3QoKSxcbiAgICAgIHRha2VVbnRpbCh0aGlzLl91bnN1YnNjcmliZSQpLFxuICAgICAgZmlsdGVyKHNlYXJjaE1hcCA9PiBzZWFyY2hNYXAuaGFzKHRoaXMuX3VybEJpbmRpbmcpKSxcbiAgICAgIG1hcChzZWFyY2hNYXAgPT4gc2VhcmNoTWFwLmdldCh0aGlzLl91cmxCaW5kaW5nKSksXG4gICAgICBtYXAoZmlsdGVyTWFwID0+IEFycmF5LmZyb20oZmlsdGVyTWFwLmZpbHRlcnMudmFsdWVzKCkpKSxcbiAgICApLnN1YnNjcmliZShmaWx0ZXJzID0+IHtcbiAgICAgICAgdGhpcy5zZWFyY2hDb250ZXh0LnJlZ2lzdGVySW5pdGlhbEZpbHRlcnMoZmlsdGVycyk7XG4gICAgICB9XG4gICAgKTtcblxuICAgIHRoaXMuc2VhcmNoQ29udGV4dC5maWx0ZXJzJC5waXBlKFxuICAgICAgdGFrZVVudGlsKHRoaXMuX3Vuc3Vic2NyaWJlJCksXG4gICAgKS5zdWJzY3JpYmUoZmlsdGVycyA9PlxuICAgICAgdGhpcy51cmxCaW5kaW5nU2VydmljZS51cGRhdGVGaWx0ZXJzRm9yQ29udGV4dCh0aGlzLl91cmxCaW5kaW5nLCBmaWx0ZXJzKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fdW5zdWJzY3JpYmUkLm5leHQoKTtcbiAgICB0aGlzLl91bnN1YnNjcmliZSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZWxkZXJTZWFyY2hDb250ZXh0VXJsQmluZGluZyh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fdXJsQmluZGluZyA9IHZhbHVlO1xuICB9XG5cbiAgcHVibGljIGdldCBlbGRlclNlYXJjaENvbnRleHRVcmxCaW5kaW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3VybEJpbmRpbmc7XG4gIH1cbn1cblxuIl19
@@ -1,6 +1,6 @@
1
1
  import { ContentChildren, Directive, Input, Optional, SkipSelf } from "@angular/core";
2
2
  import { LoggerFactory } from "@elderbyte/ts-logger";
3
- import { combineLatestWith, debounceTime, map, skip, startWith, switchMap, takeUntil } from "rxjs/operators";
3
+ import { combineLatestWith, debounceTime, map, startWith, switchMap, takeUntil } from "rxjs/operators";
4
4
  import { BehaviorSubject } from "rxjs/internal/BehaviorSubject";
5
5
  import { Subject } from "rxjs/internal/Subject";
6
6
  import { combineLatest } from "rxjs";
@@ -22,6 +22,7 @@ export class ElderSearchContextDirective {
22
22
  this.parentContext = parentContext;
23
23
  this.childSearchInputs$ = new BehaviorSubject([]);
24
24
  this.forcedFilters$ = new BehaviorSubject([]);
25
+ this.startFilters$ = new BehaviorSubject([]);
25
26
  this.log = LoggerFactory.getLogger(this.constructor.name);
26
27
  this._unsubscribe$ = new Subject();
27
28
  this._searchStates = new BehaviorSubject([]);
@@ -71,6 +72,9 @@ export class ElderSearchContextDirective {
71
72
  get forcedFilters() {
72
73
  return this.forcedFilters$.getValue();
73
74
  }
75
+ set startFilters(filters) {
76
+ this.startFilters$.next(filters);
77
+ }
74
78
  get attributes() {
75
79
  return this.searchInputs.changes.pipe(map(inputs => inputs), map(inputs => inputs.toArray()));
76
80
  }
@@ -153,9 +157,10 @@ export class ElderSearchContextDirective {
153
157
  return [...inputs, ...childInputs];
154
158
  }
155
159
  subscribeInitialFilters() {
156
- this.initialFilters$.pipe(takeUntil(this._unsubscribe$), combineLatestWith(this.childSearchInputs$), skip(1)).subscribe(([initialFilters, childSearchInputs]) => {
160
+ this.initialFilters$.pipe(takeUntil(this._unsubscribe$), combineLatestWith(this.childSearchInputs$, this.startFilters$)).subscribe(([initialFilters, childSearchInputs, startFilters]) => {
157
161
  var searchInputs = this.zipInputsWithChildInputs(this.searchInputs.toArray(), childSearchInputs);
158
- searchInputs.forEach(input => input.setInitialFilter(initialFilters));
162
+ var filters = [...initialFilters, ...startFilters];
163
+ searchInputs.forEach(input => input.setInitialFilter(filters));
159
164
  });
160
165
  }
161
166
  convertToFilters(states) {
@@ -171,7 +176,7 @@ export class ElderSearchContextDirective {
171
176
  }
172
177
  }
173
178
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ElderSearchContextDirective, deps: [{ token: ElderSearchContextDirective, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Directive }); }
174
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.9", type: ElderSearchContextDirective, selector: "[elderSearchContext]", inputs: { filterContext: ["elderSearchContext", "filterContext"], forcedFilters: "forcedFilters" }, queries: [{ propertyName: "searchInputs", predicate: ElderSearchInputDirective, descendants: true }], exportAs: ["elderSearchContext"], ngImport: i0 }); }
179
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.9", type: ElderSearchContextDirective, selector: "[elderSearchContext]", inputs: { filterContext: ["elderSearchContext", "filterContext"], forcedFilters: "forcedFilters", startFilters: "startFilters" }, queries: [{ propertyName: "searchInputs", predicate: ElderSearchInputDirective, descendants: true }], exportAs: ["elderSearchContext"], ngImport: i0 }); }
175
180
  }
176
181
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ElderSearchContextDirective, decorators: [{
177
182
  type: Directive,
@@ -191,5 +196,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
191
196
  args: ["elderSearchContext"]
192
197
  }], forcedFilters: [{
193
198
  type: Input
199
+ }], startFilters: [{
200
+ type: Input
194
201
  }] } });
195
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItc2VhcmNoLWNvbnRleHQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9mb3Jtcy9zZWFyY2gvZWxkZXItc2VhcmNoLWNvbnRleHQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxlQUFlLEVBQ2YsU0FBUyxFQUNULEtBQUssRUFFTCxRQUFRLEVBRVIsUUFBUSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3RyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDaEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2hELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckMsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUU1RSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7QUFFM0U7OztHQUdHO0FBS0gsTUFBTSxPQUFPLDJCQUEyQjtJQXVCdEM7Ozs7Z0ZBSTRFO0lBRTVFLFlBQW1ELGFBQTBDO1FBQTFDLGtCQUFhLEdBQWIsYUFBYSxDQUE2QjtRQXBCckYsdUJBQWtCLEdBQUcsSUFBSSxlQUFlLENBQThCLEVBQUUsQ0FBQyxDQUFDO1FBRTFFLG1CQUFjLEdBQUcsSUFBSSxlQUFlLENBQVcsRUFB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QVFyQix5QkFBeUI7OzJGQVIvQiwyQkFBMkI7a0JBSnZDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtvQkFDaEMsUUFBUSxFQUFFLG9CQUFvQjtpQkFDL0I7OzBCQThCcUIsUUFBUTs7MEJBQUksUUFBUTs0Q0FyQjJCLFlBQVk7c0JBQTlFLGVBQWU7dUJBQUMseUJBQXlCLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO2dCQXVEdEQsYUFBYTtzQkFEdkIsS0FBSzt1QkFBQyxvQkFBb0I7Z0JBZ0JoQixhQUFhO3NCQUR2QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBEaXJlY3RpdmUsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksIE9uSW5pdCxcbiAgT3B0aW9uYWwsXG4gIFF1ZXJ5TGlzdCxcbiAgU2tpcFNlbGZcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IExvZ2dlckZhY3RvcnkgfSBmcm9tIFwiQGVsZGVyYnl0ZS90cy1sb2dnZXJcIjtcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tIFwicnhqcy9pbnRlcm5hbC9PYnNlcnZhYmxlXCI7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0V2l0aCwgZGVib3VuY2VUaW1lLCBtYXAsIHNraXAsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YWtlVW50aWwgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcbmltcG9ydCB7IFNlYXJjaElucHV0IH0gZnJvbSBcIi4vbW9kZWwvc2VhcmNoLWlucHV0XCI7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tIFwicnhqcy9pbnRlcm5hbC9CZWhhdmlvclN1YmplY3RcIjtcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tIFwicnhqcy9pbnRlcm5hbC9TdWJqZWN0XCI7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0IH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IEZpbHRlciB9IGZyb20gXCIuLi8uLi8uLi9jb21tb24vZGF0YS9maWx0ZXJzL2ZpbHRlclwiO1xuaW1wb3J0IHsgRmlsdGVyQ29udGV4dCB9IGZyb20gXCIuLi8uLi8uLi9jb21tb24vZGF0YS9maWx0ZXJzL2ZpbHRlci1jb250ZXh0XCI7XG5pbXBvcnQgeyBTZWFyY2hJbnB1dFN0YXRlIH0gZnJvbSBcIi4vbW9kZWwvc2VhcmNoLWlucHV0LXN0YXRlXCI7XG5pbXBvcnQgeyBFbGRlclNlYXJjaElucHV0RGlyZWN0aXZlIH0gZnJvbSBcIi4vZWxkZXItc2VhcmNoLWlucHV0LmRpcmVjdGl2ZVwiO1xuXG4vKipcbiAqIFRoZSBzZWFyY2ggY29udGFpbmVyIG1hbmFnZXMgYSBncm91cCBvZiBzZWFyY2gtaW5wdXRzXG4gKiBhbmQgaG9sZHMgdGhlaXIgdmFsdWVzIGluIGEgY2VudHJhbCBzZWFyY2ggbW9kZWwuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogXCJbZWxkZXJTZWFyY2hDb250ZXh0XVwiLFxuICBleHBvcnRBczogXCJlbGRlclNlYXJjaENvbnRleHRcIlxufSlcbmV4cG9ydCBjbGFzcyBFbGRlclNlYXJjaENvbnRleHREaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIEFmdGVyQ29udGVudEluaXQge1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBGaWVsZHMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oRWxkZXJTZWFyY2hJbnB1dERpcmVjdGl2ZSwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KSBzZWFyY2hJbnB1dHMhOiBRdWVyeUxpc3Q8RWxkZXJTZWFyY2hJbnB1dERpcmVjdGl2ZT47XG4gIHByaXZhdGUgY2hpbGRTZWFyY2hJbnB1dHMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxFbGRlclNlYXJjaElucHV0RGlyZWN0aXZlW10+KFtdKTtcblxuICBwcml2YXRlIGZvcmNlZEZpbHRlcnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxGaWx0ZXJbXT4oW10pO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9nID0gTG9nZ2VyRmFjdG9yeS5nZXRMb2dnZXIodGhpcy5jb25zdHJ1Y3Rvci5uYW1lKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF91bnN1YnNjcmliZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX3NlYXJjaFN0YXRlcyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8U2VhcmNoSW5wdXRTdGF0ZVtdPihbXSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2ZpbHRlcnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxGaWx0ZXJbXT4oW10pO1xuICBwcml2YXRlIHJlYWRvbmx5IF9pbml0aWFsRmlsdGVycyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEZpbHRlcltdPihbXSk7XG5cbiAgcHJpdmF0ZSBfZmlsdGVyQ29udGV4dDogRmlsdGVyQ29udGV4dDtcblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogQ29uc3RydWN0b3IgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgY29uc3RydWN0b3IoQFNraXBTZWxmKCkgQE9wdGlvbmFsKCkgcHJpdmF0ZSBwYXJlbnRDb250ZXh0OiBFbGRlclNlYXJjaENvbnRleHREaXJlY3RpdmUpIHtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBMaWZlIEN5Y2xlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgaWYoIXRoaXMuaXNQYXJlbnRDb250ZXh0TnVsbCgpKSB7XG4gICAgICB0aGlzLnJlZ2lzdGVySW5wdXRzVG9QYXJlbnRDb250ZXh0KClcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzUGFyZW50Q29udGV4dE51bGwoKSkge1xuICAgICAgdGhpcy5zdWJzY3JpYmVTZWFyY2hJbnB1dHMoKTtcbiAgICAgIHRoaXMuc3Vic2NyaWJlSW5pdGlhbEZpbHRlcnMoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fdW5zdWJzY3JpYmUkLm5leHQoKTtcbiAgICB0aGlzLl91bnN1YnNjcmliZSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIEBJbnB1dChcImVsZGVyU2VhcmNoQ29udGV4dFwiKVxuICBwdWJsaWMgc2V0IGZpbHRlckNvbnRleHQodmFsdWU6IEZpbHRlckNvbnRleHQgfCBzdHJpbmcpIHtcbiAgICB0aGlzLl9maWx0ZXJDb250ZXh0ID0gdmFsdWUgaW5zdGFuY2VvZiBGaWx0ZXJDb250ZXh0ID8gdmFsdWUgOiBudWxsO1xuICB9XG5cbiAgcHVibGljIGdldCBmaWx0ZXJDb250ZXh0KCk6IEZpbHRlckNvbnRleHQge1xuICAgIHJldHVybiB0aGlzLl9maWx0ZXJDb250ZXh0O1xuICB9XG5cbiAgLyoqXG4gICAqIEZvcmNlZCBmaWx0ZXJzIGFyZSBhbHdheXMgbWVyZ2VkIGludG8gdGhlIGZpbmFsIEZpbHRlckNvbnRleHQuXG4gICAqXG4gICAqIFRoaXMgbWVhbnMgdGhleSBvdmVycmlkZSB1c2VyIGRlZmluZWQgZmlsdGVycywgYnV0IGF0dGVtcHRcbiAgICogdG8gYWxzbyBrZWVwIHRoZSB1c2VycyBpbnRlbnQgKGJ5IG1lcmdpbmcpIHRoZW0uXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGZvcmNlZEZpbHRlcnMoZmlsdGVyczogRmlsdGVyW10pIHtcbiAgICB0aGlzLmZvcmNlZEZpbHRlcnMkLm5leHQoZmlsdGVycyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGZvcmNlZEZpbHRlcnMoKTogRmlsdGVyW10ge1xuICAgIHJldHVybiB0aGlzLmZvcmNlZEZpbHRlcnMkLmdldFZhbHVlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGF0dHJpYnV0ZXMoKTogT2JzZXJ2YWJsZTxTZWFyY2hJbnB1dFtdPiB7XG4gICAgcmV0dXJuIHRoaXMuc2VhcmNoSW5wdXRzLmNoYW5nZXMucGlwZShcbiAgICAgIG1hcChpbnB1dHMgPT4gaW5wdXRzIGFzIFF1ZXJ5TGlzdDxFbGRlclNlYXJjaElucHV0RGlyZWN0aXZlPiksXG4gICAgICBtYXAoaW5wdXRzID0+IGlucHV0cy50b0FycmF5KCkpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYXR0cmlidXRlc1NuYXBzaG90KCk6IFNlYXJjaElucHV0W10ge1xuICAgIHJldHVybiB0aGlzLnppcElucHV0c1dpdGhDaGlsZElucHV0cyhcbiAgICAgIHRoaXMuc2VhcmNoSW5wdXRzLnRvQXJyYXkoKSxcbiAgICAgIHRoaXMuY2hpbGRTZWFyY2hJbnB1dHMkLmdldFZhbHVlKClcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldCBzdGF0ZXMkKCk6IE9ic2VydmFibGU8U2VhcmNoSW5wdXRTdGF0ZVtdPiB7XG4gICAgcmV0dXJuIHRoaXMuX3NlYXJjaFN0YXRlcy5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc3RhdGVzU25hcHNob3QoKTogU2VhcmNoSW5wdXRTdGF0ZVtdIHtcbiAgICByZXR1cm4gdGhpcy5fc2VhcmNoU3RhdGVzLmdldFZhbHVlKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgY3VycmVudCB1c2VyIHRvdWNoZWQgYXR0cmlidXRlcy4gKGlnbm9yaW5nIGZhbGxiYWNrcylcbiAgICovXG4gIHB1YmxpYyBnZXQgdXNlckRlZmluZWRBdHRyaWJ1dGVzJCgpOiBPYnNlcnZhYmxlPFNlYXJjaElucHV0U3RhdGVbXT4ge1xuICAgIHJldHVybiB0aGlzLnN0YXRlcyQucGlwZShcbiAgICAgIG1hcChzdGF0ZXMgPT4gc3RhdGVzLmZpbHRlcihzID0+ICFzLnByaXN0aW5lKSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGN1cnJlbnQgYWN0aXZlIGZpbHRlcnNcbiAgICovXG4gIHB1YmxpYyBnZXQgZmlsdGVycyQoKTogT2JzZXJ2YWJsZTxGaWx0ZXJbXT4ge1xuICAgIHJldHVybiB0aGlzLl9maWx0ZXJzJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaW5pdGlhbEZpbHRlcnMkKCk6IE9ic2VydmFibGU8RmlsdGVyW10+IHtcbiAgICByZXR1cm4gdGhpcy5faW5pdGlhbEZpbHRlcnMkLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldCBmaWx0ZXJzU25hcHNob3QoKTogRmlsdGVyW10ge1xuICAgIHJldHVybiB0aGlzLl9maWx0ZXJzJC5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIFB1YmxpYyBBUEkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIHJlZ2lzdGVySW5wdXQoc2VhcmNoSW5wdXRzOiBFbGRlclNlYXJjaElucHV0RGlyZWN0aXZlW10pIHtcbiAgICB0aGlzLmNoaWxkU2VhcmNoSW5wdXRzJC5uZXh0KFsuLi50aGlzLmNoaWxkU2VhcmNoSW5wdXRzJC5nZXRWYWx1ZSgpLCAuLi5zZWFyY2hJbnB1dHNdKTtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3RlckluaXRpYWxGaWx0ZXJzKGZpbHRlcnM6IEZpbHRlcltdKSB7XG4gICAgdGhpcy5faW5pdGlhbEZpbHRlcnMkLm5leHQoZmlsdGVycyk7XG4gIH1cblxuICBwdWJsaWMgcmVzZXQoKTogdm9pZCB7XG4gICAgaWYodGhpcy5pc1BhcmVudENvbnRleHROdWxsKCkpIHtcbiAgICAgIHRoaXMucmVzZXRJbnB1dHMoKVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnBhcmVudENvbnRleHQucmVzZXQoKTtcbiAgICB9XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHJlc2V0SW5wdXRzKCkge1xuICAgIHRoaXMuYXR0cmlidXRlc1NuYXBzaG90XG4gICAgICAuZmlsdGVyKGF0dHIgPT4gIWF0dHIucmVhZG9ubHkpXG4gICAgICAuZm9yRWFjaChhID0+IHtcbiAgICAgICAgYS5yZXNldCgpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlZ2lzdGVySW5wdXRzVG9QYXJlbnRDb250ZXh0KCkge1xuICAgIGlmKCF0aGlzLmlzUGFyZW50Q29udGV4dE51bGwoKSkge1xuICAgICAgdGhpcy5wYXJlbnRDb250ZXh0LnJlZ2lzdGVySW5wdXQodGhpcy5zZWFyY2hJbnB1dHMudG9BcnJheSgpKVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaXNQYXJlbnRDb250ZXh0TnVsbCgpIHtcbiAgICByZXR1cm4gdGhpcy5wYXJlbnRDb250ZXh0ID09PSBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBzdWJzY3JpYmVTZWFyY2hJbnB1dHMoKSB7XG4gICAgdGhpcy5zZWFyY2hJbnB1dHMuY2hhbmdlc1xuICAgICAgLnBpcGUoXG4gICAgICAgIHN0YXJ0V2l0aCh0aGlzLnNlYXJjaElucHV0cyksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl91bnN1YnNjcmliZSQpLFxuICAgICAgICBtYXAoaW5wdXQgPT4gaW5wdXQgYXMgUXVlcnlMaXN0PEVsZGVyU2VhcmNoSW5wdXREaXJlY3RpdmU+KSxcbiAgICAgICAgY29tYmluZUxhdGVzdFdpdGgodGhpcy5jaGlsZFNlYXJjaElucHV0cyQpLFxuICAgICAgICBtYXAoKFtpbnB1dHMsIGNoaWxkSW5wdXRzXSkgPT4gdGhpcy56aXBJbnB1dHNXaXRoQ2hpbGRJbnB1dHMoaW5wdXRzLnRvQXJyYXkoKSwgY2hpbGRJbnB1dHMpKSxcbiAgICAgICAgc3dpdGNoTWFwKGlucHV0cyA9PiBjb21iaW5lTGF0ZXN0KGlucHV0cy5tYXAoaSA9PiBpLnN0YXRlJCkpKSxcbiAgICAgICAgY29tYmluZUxhdGVzdFdpdGgodGhpcy5mb3JjZWRGaWx0ZXJzJCksXG4gICAgICAgIGRlYm91bmNlVGltZSg1KVxuICAgICAgKS5zdWJzY3JpYmUoKFtzdGF0ZXMsIGZvcmNlZEZpbHRlcnNdKSA9PiB7XG4gICAgICB0aGlzLl9zZWFyY2hTdGF0ZXMubmV4dChzdGF0ZXMpO1xuICAgICAgY29uc3QgdXNlckZpbHRlcnMgPSB0aGlzLmNvbnZlcnRUb0ZpbHRlcnMoc3RhdGVzKTtcbiAgICAgIHRoaXMuX2ZpbHRlcnMkLm5leHQodXNlckZpbHRlcnMpO1xuICAgICAgdGhpcy5hcHBseUZpbHRlcnModXNlckZpbHRlcnMsIGZvcmNlZEZpbHRlcnMpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB6aXBJbnB1dHNXaXRoQ2hpbGRJbnB1dHMoXG4gICAgaW5wdXRzOiBFbGRlclNlYXJjaElucHV0RGlyZWN0aXZlW10sXG4gICAgY2hpbGRJbnB1dHM6IEVsZGVyU2VhcmNoSW5wdXREaXJlY3RpdmVbXVxuICApIHtcbiAgICByZXR1cm4gWy4uLmlucHV0cywgLi4uY2hpbGRJbnB1dHNdO1xuICB9XG5cbiAgcHJpdmF0ZSBzdWJzY3JpYmVJbml0aWFsRmlsdGVycygpIHtcbiAgICB0aGlzLmluaXRpYWxGaWx0ZXJzJC5waXBlKFxuICAgICAgdGFrZVVudGlsKHRoaXMuX3Vuc3Vic2NyaWJlJCksXG4gICAgICBjb21iaW5lTGF0ZXN0V2l0aCh0aGlzLmNoaWxkU2VhcmNoSW5wdXRzJCksXG4gICAgICBza2lwKDEpXG4gICAgKS5zdWJzY3JpYmUoKFtpbml0aWFsRmlsdGVycywgY2hpbGRTZWFyY2hJbnB1dHNdKSA9PiB7XG4gICAgICB2YXIgc2VhcmNoSW5wdXRzID0gdGhpcy56aXBJbnB1dHNXaXRoQ2hpbGRJbnB1dHModGhpcy5zZWFyY2hJbnB1dHMudG9BcnJheSgpLCBjaGlsZFNlYXJjaElucHV0cyk7XG4gICAgICBzZWFyY2hJbnB1dHMuZm9yRWFjaChpbnB1dCA9PiBpbnB1dC5zZXRJbml0aWFsRmlsdGVyKGluaXRpYWxGaWx0ZXJzKSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNvbnZlcnRUb0ZpbHRlcnMoc3RhdGVzOiBTZWFyY2hJbnB1dFN0YXRlW10pOiBGaWx0ZXJbXSB7XG4gICAgcmV0dXJuIHN0YXRlc1xuICAgICAgLm1hcChzID0+IG5ldyBGaWx0ZXIocy5xdWVyeUtleSwgcy5xdWVyeVZhbHVlKSk7XG4gIH1cblxuICBwcml2YXRlIGFwcGx5RmlsdGVycyhcbiAgICB1c2VyRmlsdGVyczogRmlsdGVyW10sXG4gICAgZm9yY2VkRmlsdGVyczogRmlsdGVyW11cbiAgKTogdm9pZCB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZmlsdGVyQ29udGV4dDtcbiAgICBpZiAoY29udGV4dCkge1xuICAgICAgY29udGV4dC51cGRhdGVGaWx0ZXJzKHVzZXJGaWx0ZXJzKTtcbiAgICAgIGNvbnRleHQubWVyZ2VGaWx0ZXJzKGZvcmNlZEZpbHRlcnMpO1xuICAgICAgdGhpcy5sb2cudHJhY2UoXCJTZWFyY2gtTW9kZWwgZmlsdGVycyB1cGRhdGVkOlwiLCBBcnJheS5mcm9tKGNvbnRleHQuZmlsdGVyc1NuYXBzaG90KSk7XG4gICAgfVxuICB9XG59XG5cbiJdfQ==
202
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxkZXItc2VhcmNoLWNvbnRleHQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWxkZXJieXRlL25neC1zdGFydGVyL3NyYy9saWIvY29tcG9uZW50cy9mb3Jtcy9zZWFyY2gvZWxkZXItc2VhcmNoLWNvbnRleHQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFHTCxlQUFlLEVBQ2YsU0FBUyxFQUNULEtBQUssRUFFTCxRQUFRLEVBRVIsUUFBUSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXZHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDN0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBRTVFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOztBQUUzRTs7O0dBR0c7QUFLSCxNQUFNLE9BQU8sMkJBQTJCO0lBd0J0Qzs7OztnRkFJNEU7SUFFNUUsWUFBbUQsYUFBMEM7UUFBMUMsa0JBQWEsR0FBYixhQUFhLENBQTZCO1FBckJyRix1QkFBa0IsR0FBRyxJQUFJLGVBQWUsQ0FBOEIsRUFBRSxDQUFDLENBQUM7UUFFMUUsbUJBQWMsR0FBRyxJQUFJLGVBQWUsQ0FBVyxFQUFFLENBQUMsQ0FBQztRQUNuRCxrQkFBYSxHQUFHLElBQUksZUFBZSxDQUFXLEVBQUUsQ0FBQyxDQUFDO1FBRXpDLFFBQUcsR0FBRyxhQUFhLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFckQsa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBRXBDLGtCQUFhLEdBQUcsSUFBSSxlQUFlLENBQXFCLEVBQUUsQ0FBQyxDQUFDO1FBQzVELGNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FBVyxFQUFFLENBQUMsQ0FBQztRQUM5QyxxQkFBZ0IsR0FBRyxJQUFJLGVBQWUsQ0FBVyxFQUFFLENBQUMsQ0FBQztJQVd0RSxDQUFDO0lBRUQ7Ozs7Z0ZBSTRFO0lBRXJFLGtCQUFrQjtRQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLEVBQUU7WUFDL0IsSUFBSSxDQUFDLDZCQUE2QixFQUFFLENBQUM7U0FDdEM7SUFDSCxDQUFDO0lBRU0sZUFBZTtRQUNwQixJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxFQUFFO1lBQzlCLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1NBQ2hDO0lBQ0gsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMxQixJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7OztnRkFJNEU7SUFFNUUsSUFDVyxhQUFhLENBQUMsS0FBNkI7UUFDcEQsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLFlBQVksYUFBYSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUN0RSxDQUFDO0lBRUQsSUFBVyxhQUFhO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUM3QixDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxJQUNXLGFBQWEsQ0FBQyxPQUFpQjtRQUN4QyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsSUFBVyxhQUFhO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQsSUFDVyxZQUFZLENBQUMsT0FBaUI7UUFDdkMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELElBQVcsVUFBVTtRQUNuQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FDbkMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBOEMsQ0FBQyxFQUM3RCxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FDaEMsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFXLGtCQUFrQjtRQUMzQixPQUFPLElBQUksQ0FBQyx3QkFBd0IsQ0FDbEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsRUFDM0IsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxDQUNuQyxDQUFDO0lBQ0osQ0FBQztJQUVELElBQVcsT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVELElBQVcsY0FBYztRQUN2QixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxzQkFBc0I7UUFDL0IsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FDdEIsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQy9DLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLFFBQVE7UUFDakIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxJQUFXLGVBQWU7UUFDeEIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDOUMsQ0FBQztJQUVELElBQVcsZUFBZTtRQUN4QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUVyRSxhQUFhLENBQUMsWUFBeUM7UUFDNUQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxFQUFFLEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQztJQUN6RixDQUFDO0lBRU0sc0JBQXNCLENBQUMsT0FBaUI7UUFDN0MsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRU0sS0FBSztRQUNWLElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFLEVBQUU7WUFDOUIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQ3BCO2FBQU07WUFDTCxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQzVCO0lBQ0gsQ0FBQztJQUVEOzs7O2dGQUk0RTtJQUVwRSxXQUFXO1FBQ2pCLElBQUksQ0FBQyxrQkFBa0I7YUFDcEIsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO2FBQzlCLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNYLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNaLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLDZCQUE2QjtRQUNuQyxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLEVBQUU7WUFDL0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1NBQy9EO0lBQ0gsQ0FBQztJQUVPLG1CQUFtQjtRQUN6QixPQUFPLElBQUksQ0FBQyxhQUFhLEtBQUssSUFBSSxDQUFDO0lBQ3JDLENBQUM7SUFFTyxxQkFBcUI7UUFDM0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPO2FBQ3RCLElBQUksQ0FDSCxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUM1QixTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUM3QixHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUE2QyxDQUFDLEVBQzNELGlCQUFpQixDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxFQUMxQyxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxXQUFXLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQyxFQUM1RixTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQzdELGlCQUFpQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsRUFDdEMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUNoQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLGFBQWEsQ0FBQyxFQUFFLEVBQUU7WUFDeEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDaEMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ2xELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ2pDLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQ2hELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLHdCQUF3QixDQUM5QixNQUFtQyxFQUNuQyxXQUF3QztRQUV4QyxPQUFPLENBQUMsR0FBRyxNQUFNLEVBQUUsR0FBRyxXQUFXLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRU8sdUJBQXVCO1FBQzdCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUN2QixTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUM3QixpQkFBaUIsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUMvRCxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsY0FBYyxFQUFFLGlCQUFpQixFQUFFLFlBQVksQ0FBQyxFQUFFLEVBQUU7WUFDaEUsSUFBSSxZQUFZLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztZQUNqRyxJQUFJLE9BQU8sR0FBRyxDQUFDLEdBQUcsY0FBYyxFQUFFLEdBQUcsWUFBWSxDQUFDLENBQUM7WUFDbkQsWUFBWSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ2pFLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGdCQUFnQixDQUFDLE1BQTBCO1FBQ2pELE9BQU8sTUFBTTthQUNWLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVPLFlBQVksQ0FDbEIsV0FBcUIsRUFDckIsYUFBdUI7UUFFdkIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUNuQyxJQUFJLE9BQU8sRUFBRTtZQUNYLE9BQU8sQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDbkMsT0FBTyxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUNwQyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQywrQkFBK0IsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO1NBQ3RGO0lBQ0gsQ0FBQzs4R0E1T1UsMkJBQTJCO2tHQUEzQiwyQkFBMkIsMk5BUXJCLHlCQUF5Qjs7MkZBUi9CLDJCQUEyQjtrQkFKdkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsc0JBQXNCO29CQUNoQyxRQUFRLEVBQUUsb0JBQW9CO2lCQUMvQjs7MEJBK0JxQixRQUFROzswQkFBSSxRQUFROzRDQXRCMkIsWUFBWTtzQkFBOUUsZUFBZTt1QkFBQyx5QkFBeUIsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7Z0JBd0R0RCxhQUFhO3NCQUR2QixLQUFLO3VCQUFDLG9CQUFvQjtnQkFnQmhCLGFBQWE7c0JBRHZCLEtBQUs7Z0JBVUssWUFBWTtzQkFEdEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIEFmdGVyVmlld0luaXQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRGlyZWN0aXZlLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPcHRpb25hbCxcbiAgUXVlcnlMaXN0LFxuICBTa2lwU2VsZlxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgTG9nZ2VyRmFjdG9yeSB9IGZyb20gXCJAZWxkZXJieXRlL3RzLWxvZ2dlclwiO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzL2ludGVybmFsL09ic2VydmFibGVcIjtcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3RXaXRoLCBkZWJvdW5jZVRpbWUsIG1hcCwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAsIHRha2VVbnRpbCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuaW1wb3J0IHsgU2VhcmNoSW5wdXQgfSBmcm9tIFwiLi9tb2RlbC9zZWFyY2gtaW5wdXRcIjtcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gXCJyeGpzL2ludGVybmFsL0JlaGF2aW9yU3ViamVjdFwiO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gXCJyeGpzL2ludGVybmFsL1N1YmplY3RcIjtcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgRmlsdGVyIH0gZnJvbSBcIi4uLy4uLy4uL2NvbW1vbi9kYXRhL2ZpbHRlcnMvZmlsdGVyXCI7XG5pbXBvcnQgeyBGaWx0ZXJDb250ZXh0IH0gZnJvbSBcIi4uLy4uLy4uL2NvbW1vbi9kYXRhL2ZpbHRlcnMvZmlsdGVyLWNvbnRleHRcIjtcbmltcG9ydCB7IFNlYXJjaElucHV0U3RhdGUgfSBmcm9tIFwiLi9tb2RlbC9zZWFyY2gtaW5wdXQtc3RhdGVcIjtcbmltcG9ydCB7IEVsZGVyU2VhcmNoSW5wdXREaXJlY3RpdmUgfSBmcm9tIFwiLi9lbGRlci1zZWFyY2gtaW5wdXQuZGlyZWN0aXZlXCI7XG5cbi8qKlxuICogVGhlIHNlYXJjaCBjb250YWluZXIgbWFuYWdlcyBhIGdyb3VwIG9mIHNlYXJjaC1pbnB1dHNcbiAqIGFuZCBob2xkcyB0aGVpciB2YWx1ZXMgaW4gYSBjZW50cmFsIHNlYXJjaCBtb2RlbC5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiBcIltlbGRlclNlYXJjaENvbnRleHRdXCIsXG4gIGV4cG9ydEFzOiBcImVsZGVyU2VhcmNoQ29udGV4dFwiXG59KVxuZXhwb3J0IGNsYXNzIEVsZGVyU2VhcmNoQ29udGV4dERpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSwgQWZ0ZXJDb250ZW50SW5pdCB7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIEZpZWxkcyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgQENvbnRlbnRDaGlsZHJlbihFbGRlclNlYXJjaElucHV0RGlyZWN0aXZlLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pIHNlYXJjaElucHV0cyE6IFF1ZXJ5TGlzdDxFbGRlclNlYXJjaElucHV0RGlyZWN0aXZlPjtcbiAgcHJpdmF0ZSBjaGlsZFNlYXJjaElucHV0cyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEVsZGVyU2VhcmNoSW5wdXREaXJlY3RpdmVbXT4oW10pO1xuXG4gIHByaXZhdGUgZm9yY2VkRmlsdGVycyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEZpbHRlcltdPihbXSk7XG4gIHByaXZhdGUgc3RhcnRGaWx0ZXJzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RmlsdGVyW10+KFtdKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGxvZyA9IExvZ2dlckZhY3RvcnkuZ2V0TG9nZ2VyKHRoaXMuY29uc3RydWN0b3IubmFtZSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfdW5zdWJzY3JpYmUkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9zZWFyY2hTdGF0ZXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNlYXJjaElucHV0U3RhdGVbXT4oW10pO1xuICBwcml2YXRlIHJlYWRvbmx5IF9maWx0ZXJzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RmlsdGVyW10+KFtdKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfaW5pdGlhbEZpbHRlcnMkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxGaWx0ZXJbXT4oW10pO1xuXG4gIHByaXZhdGUgX2ZpbHRlckNvbnRleHQ6IEZpbHRlckNvbnRleHQ7XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqIENvbnN0cnVjdG9yICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKEBTa2lwU2VsZigpIEBPcHRpb25hbCgpIHByaXZhdGUgcGFyZW50Q29udGV4dDogRWxkZXJTZWFyY2hDb250ZXh0RGlyZWN0aXZlKSB7XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogTGlmZSBDeWNsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIGlmICghdGhpcy5pc1BhcmVudENvbnRleHROdWxsKCkpIHtcbiAgICAgIHRoaXMucmVnaXN0ZXJJbnB1dHNUb1BhcmVudENvbnRleHQoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzUGFyZW50Q29udGV4dE51bGwoKSkge1xuICAgICAgdGhpcy5zdWJzY3JpYmVTZWFyY2hJbnB1dHMoKTtcbiAgICAgIHRoaXMuc3Vic2NyaWJlSW5pdGlhbEZpbHRlcnMoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fdW5zdWJzY3JpYmUkLm5leHQoKTtcbiAgICB0aGlzLl91bnN1YnNjcmliZSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQcm9wZXJ0aWVzICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIEBJbnB1dChcImVsZGVyU2VhcmNoQ29udGV4dFwiKVxuICBwdWJsaWMgc2V0IGZpbHRlckNvbnRleHQodmFsdWU6IEZpbHRlckNvbnRleHQgfCBzdHJpbmcpIHtcbiAgICB0aGlzLl9maWx0ZXJDb250ZXh0ID0gdmFsdWUgaW5zdGFuY2VvZiBGaWx0ZXJDb250ZXh0ID8gdmFsdWUgOiBudWxsO1xuICB9XG5cbiAgcHVibGljIGdldCBmaWx0ZXJDb250ZXh0KCk6IEZpbHRlckNvbnRleHQge1xuICAgIHJldHVybiB0aGlzLl9maWx0ZXJDb250ZXh0O1xuICB9XG5cbiAgLyoqXG4gICAqIEZvcmNlZCBmaWx0ZXJzIGFyZSBhbHdheXMgbWVyZ2VkIGludG8gdGhlIGZpbmFsIEZpbHRlckNvbnRleHQuXG4gICAqXG4gICAqIFRoaXMgbWVhbnMgdGhleSBvdmVycmlkZSB1c2VyIGRlZmluZWQgZmlsdGVycywgYnV0IGF0dGVtcHRcbiAgICogdG8gYWxzbyBrZWVwIHRoZSB1c2VycyBpbnRlbnQgKGJ5IG1lcmdpbmcpIHRoZW0uXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGZvcmNlZEZpbHRlcnMoZmlsdGVyczogRmlsdGVyW10pIHtcbiAgICB0aGlzLmZvcmNlZEZpbHRlcnMkLm5leHQoZmlsdGVycyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGZvcmNlZEZpbHRlcnMoKTogRmlsdGVyW10ge1xuICAgIHJldHVybiB0aGlzLmZvcmNlZEZpbHRlcnMkLmdldFZhbHVlKCk7XG4gIH1cblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IHN0YXJ0RmlsdGVycyhmaWx0ZXJzOiBGaWx0ZXJbXSkge1xuICAgIHRoaXMuc3RhcnRGaWx0ZXJzJC5uZXh0KGZpbHRlcnMpO1xuICB9XG5cbiAgcHVibGljIGdldCBhdHRyaWJ1dGVzKCk6IE9ic2VydmFibGU8U2VhcmNoSW5wdXRbXT4ge1xuICAgIHJldHVybiB0aGlzLnNlYXJjaElucHV0cy5jaGFuZ2VzLnBpcGUoXG4gICAgICBtYXAoaW5wdXRzID0+IGlucHV0cyBhcyBRdWVyeUxpc3Q8RWxkZXJTZWFyY2hJbnB1dERpcmVjdGl2ZT4pLFxuICAgICAgbWFwKGlucHV0cyA9PiBpbnB1dHMudG9BcnJheSgpKVxuICAgICk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGF0dHJpYnV0ZXNTbmFwc2hvdCgpOiBTZWFyY2hJbnB1dFtdIHtcbiAgICByZXR1cm4gdGhpcy56aXBJbnB1dHNXaXRoQ2hpbGRJbnB1dHMoXG4gICAgICB0aGlzLnNlYXJjaElucHV0cy50b0FycmF5KCksXG4gICAgICB0aGlzLmNoaWxkU2VhcmNoSW5wdXRzJC5nZXRWYWx1ZSgpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc3RhdGVzJCgpOiBPYnNlcnZhYmxlPFNlYXJjaElucHV0U3RhdGVbXT4ge1xuICAgIHJldHVybiB0aGlzLl9zZWFyY2hTdGF0ZXMuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHN0YXRlc1NuYXBzaG90KCk6IFNlYXJjaElucHV0U3RhdGVbXSB7XG4gICAgcmV0dXJuIHRoaXMuX3NlYXJjaFN0YXRlcy5nZXRWYWx1ZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGN1cnJlbnQgdXNlciB0b3VjaGVkIGF0dHJpYnV0ZXMuIChpZ25vcmluZyBmYWxsYmFja3MpXG4gICAqL1xuICBwdWJsaWMgZ2V0IHVzZXJEZWZpbmVkQXR0cmlidXRlcyQoKTogT2JzZXJ2YWJsZTxTZWFyY2hJbnB1dFN0YXRlW10+IHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZXMkLnBpcGUoXG4gICAgICBtYXAoc3RhdGVzID0+IHN0YXRlcy5maWx0ZXIocyA9PiAhcy5wcmlzdGluZSkpXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBjdXJyZW50IGFjdGl2ZSBmaWx0ZXJzXG4gICAqL1xuICBwdWJsaWMgZ2V0IGZpbHRlcnMkKCk6IE9ic2VydmFibGU8RmlsdGVyW10+IHtcbiAgICByZXR1cm4gdGhpcy5fZmlsdGVycyQuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGluaXRpYWxGaWx0ZXJzJCgpOiBPYnNlcnZhYmxlPEZpbHRlcltdPiB7XG4gICAgcmV0dXJuIHRoaXMuX2luaXRpYWxGaWx0ZXJzJC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZmlsdGVyc1NuYXBzaG90KCk6IEZpbHRlcltdIHtcbiAgICByZXR1cm4gdGhpcy5fZmlsdGVycyQuZ2V0VmFsdWUoKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiBQdWJsaWMgQVBJICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHB1YmxpYyByZWdpc3RlcklucHV0KHNlYXJjaElucHV0czogRWxkZXJTZWFyY2hJbnB1dERpcmVjdGl2ZVtdKSB7XG4gICAgdGhpcy5jaGlsZFNlYXJjaElucHV0cyQubmV4dChbLi4udGhpcy5jaGlsZFNlYXJjaElucHV0cyQuZ2V0VmFsdWUoKSwgLi4uc2VhcmNoSW5wdXRzXSk7XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJJbml0aWFsRmlsdGVycyhmaWx0ZXJzOiBGaWx0ZXJbXSkge1xuICAgIHRoaXMuX2luaXRpYWxGaWx0ZXJzJC5uZXh0KGZpbHRlcnMpO1xuICB9XG5cbiAgcHVibGljIHJlc2V0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzUGFyZW50Q29udGV4dE51bGwoKSkge1xuICAgICAgdGhpcy5yZXNldElucHV0cygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnBhcmVudENvbnRleHQucmVzZXQoKTtcbiAgICB9XG4gIH1cblxuICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpcbiAgICogUHJpdmF0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIHJlc2V0SW5wdXRzKCkge1xuICAgIHRoaXMuYXR0cmlidXRlc1NuYXBzaG90XG4gICAgICAuZmlsdGVyKGF0dHIgPT4gIWF0dHIucmVhZG9ubHkpXG4gICAgICAuZm9yRWFjaChhID0+IHtcbiAgICAgICAgYS5yZXNldCgpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHJlZ2lzdGVySW5wdXRzVG9QYXJlbnRDb250ZXh0KCkge1xuICAgIGlmICghdGhpcy5pc1BhcmVudENvbnRleHROdWxsKCkpIHtcbiAgICAgIHRoaXMucGFyZW50Q29udGV4dC5yZWdpc3RlcklucHV0KHRoaXMuc2VhcmNoSW5wdXRzLnRvQXJyYXkoKSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpc1BhcmVudENvbnRleHROdWxsKCkge1xuICAgIHJldHVybiB0aGlzLnBhcmVudENvbnRleHQgPT09IG51bGw7XG4gIH1cblxuICBwcml2YXRlIHN1YnNjcmliZVNlYXJjaElucHV0cygpIHtcbiAgICB0aGlzLnNlYXJjaElucHV0cy5jaGFuZ2VzXG4gICAgICAucGlwZShcbiAgICAgICAgc3RhcnRXaXRoKHRoaXMuc2VhcmNoSW5wdXRzKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX3Vuc3Vic2NyaWJlJCksXG4gICAgICAgIG1hcChpbnB1dCA9PiBpbnB1dCBhcyBRdWVyeUxpc3Q8RWxkZXJTZWFyY2hJbnB1dERpcmVjdGl2ZT4pLFxuICAgICAgICBjb21iaW5lTGF0ZXN0V2l0aCh0aGlzLmNoaWxkU2VhcmNoSW5wdXRzJCksXG4gICAgICAgIG1hcCgoW2lucHV0cywgY2hpbGRJbnB1dHNdKSA9PiB0aGlzLnppcElucHV0c1dpdGhDaGlsZElucHV0cyhpbnB1dHMudG9BcnJheSgpLCBjaGlsZElucHV0cykpLFxuICAgICAgICBzd2l0Y2hNYXAoaW5wdXRzID0+IGNvbWJpbmVMYXRlc3QoaW5wdXRzLm1hcChpID0+IGkuc3RhdGUkKSkpLFxuICAgICAgICBjb21iaW5lTGF0ZXN0V2l0aCh0aGlzLmZvcmNlZEZpbHRlcnMkKSxcbiAgICAgICAgZGVib3VuY2VUaW1lKDUpXG4gICAgICApLnN1YnNjcmliZSgoW3N0YXRlcywgZm9yY2VkRmlsdGVyc10pID0+IHtcbiAgICAgIHRoaXMuX3NlYXJjaFN0YXRlcy5uZXh0KHN0YXRlcyk7XG4gICAgICBjb25zdCB1c2VyRmlsdGVycyA9IHRoaXMuY29udmVydFRvRmlsdGVycyhzdGF0ZXMpO1xuICAgICAgdGhpcy5fZmlsdGVycyQubmV4dCh1c2VyRmlsdGVycyk7XG4gICAgICB0aGlzLmFwcGx5RmlsdGVycyh1c2VyRmlsdGVycywgZm9yY2VkRmlsdGVycyk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHppcElucHV0c1dpdGhDaGlsZElucHV0cyhcbiAgICBpbnB1dHM6IEVsZGVyU2VhcmNoSW5wdXREaXJlY3RpdmVbXSxcbiAgICBjaGlsZElucHV0czogRWxkZXJTZWFyY2hJbnB1dERpcmVjdGl2ZVtdXG4gICkge1xuICAgIHJldHVybiBbLi4uaW5wdXRzLCAuLi5jaGlsZElucHV0c107XG4gIH1cblxuICBwcml2YXRlIHN1YnNjcmliZUluaXRpYWxGaWx0ZXJzKCkge1xuICAgIHRoaXMuaW5pdGlhbEZpbHRlcnMkLnBpcGUoXG4gICAgICB0YWtlVW50aWwodGhpcy5fdW5zdWJzY3JpYmUkKSxcbiAgICAgIGNvbWJpbmVMYXRlc3RXaXRoKHRoaXMuY2hpbGRTZWFyY2hJbnB1dHMkLCB0aGlzLnN0YXJ0RmlsdGVycyQpXG4gICAgKS5zdWJzY3JpYmUoKFtpbml0aWFsRmlsdGVycywgY2hpbGRTZWFyY2hJbnB1dHMsIHN0YXJ0RmlsdGVyc10pID0+IHtcbiAgICAgIHZhciBzZWFyY2hJbnB1dHMgPSB0aGlzLnppcElucHV0c1dpdGhDaGlsZElucHV0cyh0aGlzLnNlYXJjaElucHV0cy50b0FycmF5KCksIGNoaWxkU2VhcmNoSW5wdXRzKTtcbiAgICAgIHZhciBmaWx0ZXJzID0gWy4uLmluaXRpYWxGaWx0ZXJzLCAuLi5zdGFydEZpbHRlcnNdO1xuICAgICAgc2VhcmNoSW5wdXRzLmZvckVhY2goaW5wdXQgPT4gaW5wdXQuc2V0SW5pdGlhbEZpbHRlcihmaWx0ZXJzKSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNvbnZlcnRUb0ZpbHRlcnMoc3RhdGVzOiBTZWFyY2hJbnB1dFN0YXRlW10pOiBGaWx0ZXJbXSB7XG4gICAgcmV0dXJuIHN0YXRlc1xuICAgICAgLm1hcChzID0+IG5ldyBGaWx0ZXIocy5xdWVyeUtleSwgcy5xdWVyeVZhbHVlKSk7XG4gIH1cblxuICBwcml2YXRlIGFwcGx5RmlsdGVycyhcbiAgICB1c2VyRmlsdGVyczogRmlsdGVyW10sXG4gICAgZm9yY2VkRmlsdGVyczogRmlsdGVyW11cbiAgKTogdm9pZCB7XG4gICAgY29uc3QgY29udGV4dCA9IHRoaXMuZmlsdGVyQ29udGV4dDtcbiAgICBpZiAoY29udGV4dCkge1xuICAgICAgY29udGV4dC51cGRhdGVGaWx0ZXJzKHVzZXJGaWx0ZXJzKTtcbiAgICAgIGNvbnRleHQubWVyZ2VGaWx0ZXJzKGZvcmNlZEZpbHRlcnMpO1xuICAgICAgdGhpcy5sb2cudHJhY2UoXCJTZWFyY2gtTW9kZWwgZmlsdGVycyB1cGRhdGVkOlwiLCBBcnJheS5mcm9tKGNvbnRleHQuZmlsdGVyc1NuYXBzaG90KSk7XG4gICAgfVxuICB9XG59XG5cbiJdfQ==
@@ -92,7 +92,7 @@ export class ElderSearchBoxComponent {
92
92
  this.searchModel.reset();
93
93
  }
94
94
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ElderSearchBoxComponent, deps: [{ token: i1.ElderSearchContextDirective }], target: i0.ɵɵFactoryTarget.Component }); }
95
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: ElderSearchBoxComponent, selector: "elder-search-box", inputs: { autoPanel: "autoPanel", name: "name", queryKey: "queryKey", placeholder: "placeholder", label: "label", hint: "hint", autocomplete: "autocomplete", appearance: "appearance", dense: "dense" }, host: { classAttribute: "elder-form-field-host" }, queries: [{ propertyName: "advancedSearch", first: true, predicate: ElderSearchPanelComponent, descendants: true }], viewQueries: [{ propertyName: "search", first: true, predicate: ["search"], descendants: true }], exportAs: ["elderSearchBox"], ngImport: i0, template: "<div class=\"layout-row place-stretch-center full flex\" style=\"overflow: hidden\" elderSearchContext>\n <mat-form-field\n *ngIf=\"overlayState$ | async as overlayState\"\n [appearance]=\"appearance\"\n class=\"elder-search-box-field flex-auto\" subscriptSizing=\"dynamic\"\n [elderDense]=\"dense\">\n\n <button matPrefix mat-icon-button type=\"button\"\n [elderOverlayTrigger]=\"searchPanel\" (click)=\"blurFocus($event)\"\n >\n <mat-icon>search</mat-icon>\n </button>\n\n <input matInput type=\"text\" [name]=\"name\" [placeholder]=\"placeholder\" #search cdkFocusInitial\n ngModel\n elderSearchInput [elderSearchInputKey]=\"queryKey\" #searchInput=\"elderSearchInput\"\n [autocomplete]=\"(autoPanel && overlayState.hasOverlay) ? 'off' : autocomplete\"\n [elderOverlayOrigin]=\"searchPanel\"\n [elderOverlayTrigger]=\"searchPanel\"\n [elderOverlayTriggerType]=\"'focus'\"\n [elderOverlayTriggerEnabled]=\"autoPanel && overlayState.hasOverlay && (searchInput?.state$ | async)?.pristine\"\n >\n <mat-hint *ngIf=\"hint\">{{hint}}</mat-hint>\n\n <div class=\"layout-row\" matSuffix *ngIf=\"searchModel.userDefinedAttributes$ | async as userDefinedFilters\">\n\n <button mat-icon-button type=\"button\"\n *ngIf=\"userDefinedFilters.length > 0\"\n (click)=\"clearSearch($event)\"\n name=\"clear\" aria-label=\"Clear\">\n <mat-icon>close</mat-icon>\n </button>\n\n <button mat-icon-button type=\"button\"\n *ngIf=\"overlayState.hasOverlay\" name=\"openPanel\"\n [elderOverlayTrigger]=\"searchPanel\" (click)=\"blurFocus($event)\">\n <mat-icon\n [matBadge]=\"userDefinedFilters.length\"\n matBadgeSize=\"small\"\n [matBadgeOverlap]=\"true\"\n [matBadgeHidden]=\"userDefinedFilters.length == 0\"\n matBadgeColor=\"accent\"\n [color]=\"userDefinedFilters.length > 0 ? 'accent' : undefined\"\n >\n filter_list\n </mat-icon>\n </button>\n </div>\n </mat-form-field>\n</div>\n\n\n<!-- Overlay Panel for advanced search -->\n<elder-overlay #searchPanel=\"elderOverlay\">\n <elder-dialog-panel class=\"elder-search-panel-container\">\n\n <!-- Project the users search inputs here -->\n <ng-content select=\"elder-search-panel\"></ng-content>\n\n <div class=\"layout-row place-between-center\">\n <button mat-raised-button type=\"button\" name=\"clear\"\n (click)=\"clearSearch($event)\">{{'context.reset' | translate}}\n </button>\n\n <button mat-raised-button type=\"button\" name=\"ok\" color=\"primary\"\n (click)=\"searchPanel.closeOverlay()\">Ok\n </button>\n </div>\n </elder-dialog-panel>\n</elder-overlay>\n", styles: [".elder-search-box-field{margin-top:4px;margin-bottom:4px}.elder-search-panel-container{min-width:250px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i5.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i5.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i8.MatBadge, selector: "[matBadge]", inputs: ["matBadgeDisabled", "matBadgeColor", "matBadgeOverlap", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "component", type: i9.ElderOverlayComponent, selector: "elder-overlay", inputs: ["originX", "originY", "overlayX", "overlayY", "offsetY", "offsetX", "backdrop", "backdropVisible", "origin", "positionStrategy", "overlaySize"], outputs: ["keydownEvents", "attachedChange"], exportAs: ["elderOverlay"] }, { kind: "directive", type: i10.ElderOverlayTriggerDirective, selector: "[elderOverlayTrigger]", inputs: ["elderOverlayTrigger", "elderOverlayTriggerType", "elderOverlayTriggerEnabled"] }, { kind: "directive", type: i11.ElderOverlayOriginDirective, selector: "[elderOverlayOrigin]", inputs: ["elderOverlayOrigin"] }, { kind: "component", type: i12.ElderDialogPanelComponent, selector: "elder-dialog-panel" }, { kind: "directive", type: i13.ElderFormFieldDenseDirective, selector: "mat-form-field[elderDense]", inputs: ["elderDense", "subscriptSizing", "floatLabel"] }, { kind: "directive", type: i1.ElderSearchContextDirective, selector: "[elderSearchContext]", inputs: ["elderSearchContext", "forcedFilters"], exportAs: ["elderSearchContext"] }, { kind: "directive", type: i14.ElderSearchInputDirective, selector: "[elderSearchInput]", inputs: ["elderSearchInputKey", "elderSearchInputTransform", "elderSearchInput", "dataSource", "elderSearchInputFallback", "valueAsId"], exportAs: ["elderSearchInput"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i15.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
95
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: ElderSearchBoxComponent, selector: "elder-search-box", inputs: { autoPanel: "autoPanel", name: "name", queryKey: "queryKey", placeholder: "placeholder", label: "label", hint: "hint", autocomplete: "autocomplete", appearance: "appearance", dense: "dense" }, host: { classAttribute: "elder-form-field-host" }, queries: [{ propertyName: "advancedSearch", first: true, predicate: ElderSearchPanelComponent, descendants: true }], viewQueries: [{ propertyName: "search", first: true, predicate: ["search"], descendants: true }], exportAs: ["elderSearchBox"], ngImport: i0, template: "<div class=\"layout-row place-stretch-center full flex\" style=\"overflow: hidden\" elderSearchContext>\n <mat-form-field\n *ngIf=\"overlayState$ | async as overlayState\"\n [appearance]=\"appearance\"\n class=\"elder-search-box-field flex-auto\" subscriptSizing=\"dynamic\"\n [elderDense]=\"dense\">\n\n <button matPrefix mat-icon-button type=\"button\"\n [elderOverlayTrigger]=\"searchPanel\" (click)=\"blurFocus($event)\"\n >\n <mat-icon>search</mat-icon>\n </button>\n\n <input matInput type=\"text\" [name]=\"name\" [placeholder]=\"placeholder\" #search cdkFocusInitial\n ngModel\n elderSearchInput [elderSearchInputKey]=\"queryKey\" #searchInput=\"elderSearchInput\"\n [autocomplete]=\"(autoPanel && overlayState.hasOverlay) ? 'off' : autocomplete\"\n [elderOverlayOrigin]=\"searchPanel\"\n [elderOverlayTrigger]=\"searchPanel\"\n [elderOverlayTriggerType]=\"'focus'\"\n [elderOverlayTriggerEnabled]=\"autoPanel && overlayState.hasOverlay && (searchInput?.state$ | async)?.pristine\"\n >\n <mat-hint *ngIf=\"hint\">{{hint}}</mat-hint>\n\n <div class=\"layout-row\" matSuffix *ngIf=\"searchModel.userDefinedAttributes$ | async as userDefinedFilters\">\n\n <button mat-icon-button type=\"button\"\n *ngIf=\"userDefinedFilters.length > 0\"\n (click)=\"clearSearch($event)\"\n name=\"clear\" aria-label=\"Clear\">\n <mat-icon>close</mat-icon>\n </button>\n\n <button mat-icon-button type=\"button\"\n *ngIf=\"overlayState.hasOverlay\" name=\"openPanel\"\n [elderOverlayTrigger]=\"searchPanel\" (click)=\"blurFocus($event)\">\n <mat-icon\n [matBadge]=\"userDefinedFilters.length\"\n matBadgeSize=\"small\"\n [matBadgeOverlap]=\"true\"\n [matBadgeHidden]=\"userDefinedFilters.length == 0\"\n matBadgeColor=\"accent\"\n [color]=\"userDefinedFilters.length > 0 ? 'accent' : undefined\"\n >\n filter_list\n </mat-icon>\n </button>\n </div>\n </mat-form-field>\n</div>\n\n\n<!-- Overlay Panel for advanced search -->\n<elder-overlay #searchPanel=\"elderOverlay\">\n <elder-dialog-panel class=\"elder-search-panel-container\">\n\n <!-- Project the users search inputs here -->\n <ng-content select=\"elder-search-panel\"></ng-content>\n\n <div class=\"layout-row place-between-center\">\n <button mat-raised-button type=\"button\" name=\"clear\"\n (click)=\"clearSearch($event)\">{{'context.reset' | translate}}\n </button>\n\n <button mat-raised-button type=\"button\" name=\"ok\" color=\"primary\"\n (click)=\"searchPanel.closeOverlay()\">Ok\n </button>\n </div>\n </elder-dialog-panel>\n</elder-overlay>\n", styles: [".elder-search-box-field{margin-top:4px;margin-bottom:4px}.elder-search-panel-container{min-width:250px}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i5.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i5.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i6.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i8.MatBadge, selector: "[matBadge]", inputs: ["matBadgeDisabled", "matBadgeColor", "matBadgeOverlap", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "component", type: i9.ElderOverlayComponent, selector: "elder-overlay", inputs: ["originX", "originY", "overlayX", "overlayY", "offsetY", "offsetX", "backdrop", "backdropVisible", "origin", "positionStrategy", "overlaySize"], outputs: ["keydownEvents", "attachedChange"], exportAs: ["elderOverlay"] }, { kind: "directive", type: i10.ElderOverlayTriggerDirective, selector: "[elderOverlayTrigger]", inputs: ["elderOverlayTrigger", "elderOverlayTriggerType", "elderOverlayTriggerEnabled"] }, { kind: "directive", type: i11.ElderOverlayOriginDirective, selector: "[elderOverlayOrigin]", inputs: ["elderOverlayOrigin"] }, { kind: "component", type: i12.ElderDialogPanelComponent, selector: "elder-dialog-panel" }, { kind: "directive", type: i13.ElderFormFieldDenseDirective, selector: "mat-form-field[elderDense]", inputs: ["elderDense", "subscriptSizing", "floatLabel"] }, { kind: "directive", type: i1.ElderSearchContextDirective, selector: "[elderSearchContext]", inputs: ["elderSearchContext", "forcedFilters", "startFilters"], exportAs: ["elderSearchContext"] }, { kind: "directive", type: i14.ElderSearchInputDirective, selector: "[elderSearchInput]", inputs: ["elderSearchInputKey", "elderSearchInputTransform", "elderSearchInput", "dataSource", "elderSearchInputFallback", "valueAsId"], exportAs: ["elderSearchInput"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i15.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
96
96
  }
97
97
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ElderSearchBoxComponent, decorators: [{
98
98
  type: Component,
@@ -25888,6 +25888,7 @@ class ElderSearchContextDirective {
25888
25888
  this.parentContext = parentContext;
25889
25889
  this.childSearchInputs$ = new BehaviorSubject$1([]);
25890
25890
  this.forcedFilters$ = new BehaviorSubject$1([]);
25891
+ this.startFilters$ = new BehaviorSubject$1([]);
25891
25892
  this.log = LoggerFactory.getLogger(this.constructor.name);
25892
25893
  this._unsubscribe$ = new Subject$1();
25893
25894
  this._searchStates = new BehaviorSubject$1([]);
@@ -25937,6 +25938,9 @@ class ElderSearchContextDirective {
25937
25938
  get forcedFilters() {
25938
25939
  return this.forcedFilters$.getValue();
25939
25940
  }
25941
+ set startFilters(filters) {
25942
+ this.startFilters$.next(filters);
25943
+ }
25940
25944
  get attributes() {
25941
25945
  return this.searchInputs.changes.pipe(map(inputs => inputs), map(inputs => inputs.toArray()));
25942
25946
  }
@@ -26019,9 +26023,10 @@ class ElderSearchContextDirective {
26019
26023
  return [...inputs, ...childInputs];
26020
26024
  }
26021
26025
  subscribeInitialFilters() {
26022
- this.initialFilters$.pipe(takeUntil(this._unsubscribe$), combineLatestWith(this.childSearchInputs$), skip(1)).subscribe(([initialFilters, childSearchInputs]) => {
26026
+ this.initialFilters$.pipe(takeUntil(this._unsubscribe$), combineLatestWith(this.childSearchInputs$, this.startFilters$)).subscribe(([initialFilters, childSearchInputs, startFilters]) => {
26023
26027
  var searchInputs = this.zipInputsWithChildInputs(this.searchInputs.toArray(), childSearchInputs);
26024
- searchInputs.forEach(input => input.setInitialFilter(initialFilters));
26028
+ var filters = [...initialFilters, ...startFilters];
26029
+ searchInputs.forEach(input => input.setInitialFilter(filters));
26025
26030
  });
26026
26031
  }
26027
26032
  convertToFilters(states) {
@@ -26037,7 +26042,7 @@ class ElderSearchContextDirective {
26037
26042
  }
26038
26043
  }
26039
26044
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ElderSearchContextDirective, deps: [{ token: ElderSearchContextDirective, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Directive }); }
26040
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.9", type: ElderSearchContextDirective, selector: "[elderSearchContext]", inputs: { filterContext: ["elderSearchContext", "filterContext"], forcedFilters: "forcedFilters" }, queries: [{ propertyName: "searchInputs", predicate: ElderSearchInputDirective, descendants: true }], exportAs: ["elderSearchContext"], ngImport: i0 }); }
26045
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.9", type: ElderSearchContextDirective, selector: "[elderSearchContext]", inputs: { filterContext: ["elderSearchContext", "filterContext"], forcedFilters: "forcedFilters", startFilters: "startFilters" }, queries: [{ propertyName: "searchInputs", predicate: ElderSearchInputDirective, descendants: true }], exportAs: ["elderSearchContext"], ngImport: i0 }); }
26041
26046
  }
26042
26047
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ElderSearchContextDirective, decorators: [{
26043
26048
  type: Directive,
@@ -26057,6 +26062,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImpor
26057
26062
  args: ["elderSearchContext"]
26058
26063
  }], forcedFilters: [{
26059
26064
  type: Input
26065
+ }], startFilters: [{
26066
+ type: Input
26060
26067
  }] } });
26061
26068
 
26062
26069
  class ElderSearchPanelComponent {
@@ -26452,7 +26459,7 @@ class ElderSearchBoxComponent {
26452
26459
  this.searchModel.reset();
26453
26460
  }
26454
26461
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ElderSearchBoxComponent, deps: [{ token: ElderSearchContextDirective }], target: i0.ɵɵFactoryTarget.Component }); }
26455
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: ElderSearchBoxComponent, selector: "elder-search-box", inputs: { autoPanel: "autoPanel", name: "name", queryKey: "queryKey", placeholder: "placeholder", label: "label", hint: "hint", autocomplete: "autocomplete", appearance: "appearance", dense: "dense" }, host: { classAttribute: "elder-form-field-host" }, queries: [{ propertyName: "advancedSearch", first: true, predicate: ElderSearchPanelComponent, descendants: true }], viewQueries: [{ propertyName: "search", first: true, predicate: ["search"], descendants: true }], exportAs: ["elderSearchBox"], ngImport: i0, template: "<div class=\"layout-row place-stretch-center full flex\" style=\"overflow: hidden\" elderSearchContext>\n <mat-form-field\n *ngIf=\"overlayState$ | async as overlayState\"\n [appearance]=\"appearance\"\n class=\"elder-search-box-field flex-auto\" subscriptSizing=\"dynamic\"\n [elderDense]=\"dense\">\n\n <button matPrefix mat-icon-button type=\"button\"\n [elderOverlayTrigger]=\"searchPanel\" (click)=\"blurFocus($event)\"\n >\n <mat-icon>search</mat-icon>\n </button>\n\n <input matInput type=\"text\" [name]=\"name\" [placeholder]=\"placeholder\" #search cdkFocusInitial\n ngModel\n elderSearchInput [elderSearchInputKey]=\"queryKey\" #searchInput=\"elderSearchInput\"\n [autocomplete]=\"(autoPanel && overlayState.hasOverlay) ? 'off' : autocomplete\"\n [elderOverlayOrigin]=\"searchPanel\"\n [elderOverlayTrigger]=\"searchPanel\"\n [elderOverlayTriggerType]=\"'focus'\"\n [elderOverlayTriggerEnabled]=\"autoPanel && overlayState.hasOverlay && (searchInput?.state$ | async)?.pristine\"\n >\n <mat-hint *ngIf=\"hint\">{{hint}}</mat-hint>\n\n <div class=\"layout-row\" matSuffix *ngIf=\"searchModel.userDefinedAttributes$ | async as userDefinedFilters\">\n\n <button mat-icon-button type=\"button\"\n *ngIf=\"userDefinedFilters.length > 0\"\n (click)=\"clearSearch($event)\"\n name=\"clear\" aria-label=\"Clear\">\n <mat-icon>close</mat-icon>\n </button>\n\n <button mat-icon-button type=\"button\"\n *ngIf=\"overlayState.hasOverlay\" name=\"openPanel\"\n [elderOverlayTrigger]=\"searchPanel\" (click)=\"blurFocus($event)\">\n <mat-icon\n [matBadge]=\"userDefinedFilters.length\"\n matBadgeSize=\"small\"\n [matBadgeOverlap]=\"true\"\n [matBadgeHidden]=\"userDefinedFilters.length == 0\"\n matBadgeColor=\"accent\"\n [color]=\"userDefinedFilters.length > 0 ? 'accent' : undefined\"\n >\n filter_list\n </mat-icon>\n </button>\n </div>\n </mat-form-field>\n</div>\n\n\n<!-- Overlay Panel for advanced search -->\n<elder-overlay #searchPanel=\"elderOverlay\">\n <elder-dialog-panel class=\"elder-search-panel-container\">\n\n <!-- Project the users search inputs here -->\n <ng-content select=\"elder-search-panel\"></ng-content>\n\n <div class=\"layout-row place-between-center\">\n <button mat-raised-button type=\"button\" name=\"clear\"\n (click)=\"clearSearch($event)\">{{'context.reset' | translate}}\n </button>\n\n <button mat-raised-button type=\"button\" name=\"ok\" color=\"primary\"\n (click)=\"searchPanel.closeOverlay()\">Ok\n </button>\n </div>\n </elder-dialog-panel>\n</elder-overlay>\n", styles: [".elder-search-box-field{margin-top:4px;margin-bottom:4px}.elder-search-panel-container{min-width:250px}\n"], dependencies: [{ kind: "directive", type: i1$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i5.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i5.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i5$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5$1.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i2$3.MatBadge, selector: "[matBadge]", inputs: ["matBadgeDisabled", "matBadgeColor", "matBadgeOverlap", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "component", type: ElderOverlayComponent, selector: "elder-overlay", inputs: ["originX", "originY", "overlayX", "overlayY", "offsetY", "offsetX", "backdrop", "backdropVisible", "origin", "positionStrategy", "overlaySize"], outputs: ["keydownEvents", "attachedChange"], exportAs: ["elderOverlay"] }, { kind: "directive", type: ElderOverlayTriggerDirective, selector: "[elderOverlayTrigger]", inputs: ["elderOverlayTrigger", "elderOverlayTriggerType", "elderOverlayTriggerEnabled"] }, { kind: "directive", type: ElderOverlayOriginDirective, selector: "[elderOverlayOrigin]", inputs: ["elderOverlayOrigin"] }, { kind: "component", type: ElderDialogPanelComponent, selector: "elder-dialog-panel" }, { kind: "directive", type: ElderFormFieldDenseDirective, selector: "mat-form-field[elderDense]", inputs: ["elderDense", "subscriptSizing", "floatLabel"] }, { kind: "directive", type: ElderSearchContextDirective, selector: "[elderSearchContext]", inputs: ["elderSearchContext", "forcedFilters"], exportAs: ["elderSearchContext"] }, { kind: "directive", type: ElderSearchInputDirective, selector: "[elderSearchInput]", inputs: ["elderSearchInputKey", "elderSearchInputTransform", "elderSearchInput", "dataSource", "elderSearchInputFallback", "valueAsId"], exportAs: ["elderSearchInput"] }, { kind: "pipe", type: i1$4.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
26462
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.9", type: ElderSearchBoxComponent, selector: "elder-search-box", inputs: { autoPanel: "autoPanel", name: "name", queryKey: "queryKey", placeholder: "placeholder", label: "label", hint: "hint", autocomplete: "autocomplete", appearance: "appearance", dense: "dense" }, host: { classAttribute: "elder-form-field-host" }, queries: [{ propertyName: "advancedSearch", first: true, predicate: ElderSearchPanelComponent, descendants: true }], viewQueries: [{ propertyName: "search", first: true, predicate: ["search"], descendants: true }], exportAs: ["elderSearchBox"], ngImport: i0, template: "<div class=\"layout-row place-stretch-center full flex\" style=\"overflow: hidden\" elderSearchContext>\n <mat-form-field\n *ngIf=\"overlayState$ | async as overlayState\"\n [appearance]=\"appearance\"\n class=\"elder-search-box-field flex-auto\" subscriptSizing=\"dynamic\"\n [elderDense]=\"dense\">\n\n <button matPrefix mat-icon-button type=\"button\"\n [elderOverlayTrigger]=\"searchPanel\" (click)=\"blurFocus($event)\"\n >\n <mat-icon>search</mat-icon>\n </button>\n\n <input matInput type=\"text\" [name]=\"name\" [placeholder]=\"placeholder\" #search cdkFocusInitial\n ngModel\n elderSearchInput [elderSearchInputKey]=\"queryKey\" #searchInput=\"elderSearchInput\"\n [autocomplete]=\"(autoPanel && overlayState.hasOverlay) ? 'off' : autocomplete\"\n [elderOverlayOrigin]=\"searchPanel\"\n [elderOverlayTrigger]=\"searchPanel\"\n [elderOverlayTriggerType]=\"'focus'\"\n [elderOverlayTriggerEnabled]=\"autoPanel && overlayState.hasOverlay && (searchInput?.state$ | async)?.pristine\"\n >\n <mat-hint *ngIf=\"hint\">{{hint}}</mat-hint>\n\n <div class=\"layout-row\" matSuffix *ngIf=\"searchModel.userDefinedAttributes$ | async as userDefinedFilters\">\n\n <button mat-icon-button type=\"button\"\n *ngIf=\"userDefinedFilters.length > 0\"\n (click)=\"clearSearch($event)\"\n name=\"clear\" aria-label=\"Clear\">\n <mat-icon>close</mat-icon>\n </button>\n\n <button mat-icon-button type=\"button\"\n *ngIf=\"overlayState.hasOverlay\" name=\"openPanel\"\n [elderOverlayTrigger]=\"searchPanel\" (click)=\"blurFocus($event)\">\n <mat-icon\n [matBadge]=\"userDefinedFilters.length\"\n matBadgeSize=\"small\"\n [matBadgeOverlap]=\"true\"\n [matBadgeHidden]=\"userDefinedFilters.length == 0\"\n matBadgeColor=\"accent\"\n [color]=\"userDefinedFilters.length > 0 ? 'accent' : undefined\"\n >\n filter_list\n </mat-icon>\n </button>\n </div>\n </mat-form-field>\n</div>\n\n\n<!-- Overlay Panel for advanced search -->\n<elder-overlay #searchPanel=\"elderOverlay\">\n <elder-dialog-panel class=\"elder-search-panel-container\">\n\n <!-- Project the users search inputs here -->\n <ng-content select=\"elder-search-panel\"></ng-content>\n\n <div class=\"layout-row place-between-center\">\n <button mat-raised-button type=\"button\" name=\"clear\"\n (click)=\"clearSearch($event)\">{{'context.reset' | translate}}\n </button>\n\n <button mat-raised-button type=\"button\" name=\"ok\" color=\"primary\"\n (click)=\"searchPanel.closeOverlay()\">Ok\n </button>\n </div>\n </elder-dialog-panel>\n</elder-overlay>\n", styles: [".elder-search-box-field{margin-top:4px;margin-bottom:4px}.elder-search-panel-container{min-width:250px}\n"], dependencies: [{ kind: "directive", type: i1$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i4$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i5.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i5.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i5$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5$1.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i2$3.MatBadge, selector: "[matBadge]", inputs: ["matBadgeDisabled", "matBadgeColor", "matBadgeOverlap", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "component", type: ElderOverlayComponent, selector: "elder-overlay", inputs: ["originX", "originY", "overlayX", "overlayY", "offsetY", "offsetX", "backdrop", "backdropVisible", "origin", "positionStrategy", "overlaySize"], outputs: ["keydownEvents", "attachedChange"], exportAs: ["elderOverlay"] }, { kind: "directive", type: ElderOverlayTriggerDirective, selector: "[elderOverlayTrigger]", inputs: ["elderOverlayTrigger", "elderOverlayTriggerType", "elderOverlayTriggerEnabled"] }, { kind: "directive", type: ElderOverlayOriginDirective, selector: "[elderOverlayOrigin]", inputs: ["elderOverlayOrigin"] }, { kind: "component", type: ElderDialogPanelComponent, selector: "elder-dialog-panel" }, { kind: "directive", type: ElderFormFieldDenseDirective, selector: "mat-form-field[elderDense]", inputs: ["elderDense", "subscriptSizing", "floatLabel"] }, { kind: "directive", type: ElderSearchContextDirective, selector: "[elderSearchContext]", inputs: ["elderSearchContext", "forcedFilters", "startFilters"], exportAs: ["elderSearchContext"] }, { kind: "directive", type: ElderSearchInputDirective, selector: "[elderSearchInput]", inputs: ["elderSearchInputKey", "elderSearchInputTransform", "elderSearchInput", "dataSource", "elderSearchInputFallback", "valueAsId"], exportAs: ["elderSearchInput"] }, { kind: "pipe", type: i1$4.AsyncPipe, name: "async" }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
26456
26463
  }
26457
26464
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.9", ngImport: i0, type: ElderSearchBoxComponent, decorators: [{
26458
26465
  type: Component,
@@ -26682,8 +26689,7 @@ class ElderSearchContextUrlBindingDirective {
26682
26689
  this.urlBindingService.initialSearchMap$.pipe(first(), takeUntil(this._unsubscribe$), filter(searchMap => searchMap.has(this._urlBinding)), map(searchMap => searchMap.get(this._urlBinding)), map(filterMap => Array.from(filterMap.filters.values()))).subscribe(filters => {
26683
26690
  this.searchContext.registerInitialFilters(filters);
26684
26691
  });
26685
- this.searchContext.filters$.pipe(takeUntil(this._unsubscribe$), skip(2) //Skip empty and skip initial filter
26686
- ).subscribe(filters => this.urlBindingService.updateFiltersForContext(this._urlBinding, filters));
26692
+ this.searchContext.filters$.pipe(takeUntil(this._unsubscribe$)).subscribe(filters => this.urlBindingService.updateFiltersForContext(this._urlBinding, filters));
26687
26693
  }
26688
26694
  ngOnDestroy() {
26689
26695
  this._unsubscribe$.next();