@quadrel-enterprise-ui/framework 18.25.4 → 18.25.6

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.
@@ -161,6 +161,12 @@ export class QdPushEventsService {
161
161
  if (!this._eventSource || this._eventSource.readyState === EventSource.CLOSED || reconnect)
162
162
  this._eventSource = new EventSourcePolyfill(url, options);
163
163
  this._eventSource.onerror = (err) => {
164
+ const status = err?.status || err?.target?.status;
165
+ if (status === 401) {
166
+ this.logError('SSE connection unauthorized (401):', err);
167
+ this._eventSource.close();
168
+ return;
169
+ }
164
170
  if (this._eventSource.readyState === EventSource.CLOSED)
165
171
  this.reconnect();
166
172
  this.logError('SSE connection error:', err);
@@ -188,4 +194,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
188
194
  type: Inject,
189
195
  args: ['QdAuthenticationService']
190
196
  }] }] });
191
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVzaC1ldmVudHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcWQtdWkvc3JjL2xpYi9jb3JlL3NlcnZpY2VzL3B1c2gtZXZlbnRzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVELE9BQU8sRUFBRSxLQUFLLEVBQWMsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQzs7QUFJaEU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJCRztBQUlILE1BQU0sT0FBTyxtQkFBbUI7SUFVOEM7SUFUcEUsWUFBWSxDQUFlO0lBQzNCLDBCQUEwQixHQUFHLElBQUksR0FBRyxFQUFpQyxDQUFDO0lBQ3RFLFVBQVUsR0FBZ0QsRUFBRSxDQUFDO0lBQzdELGlCQUFpQixDQUFpQztJQUNsRCxtQkFBbUIsR0FBRyxLQUFLLENBQUM7SUFDNUIsNEJBQTRCLEdBQUcsR0FBRyxDQUFDO0lBQ25DLGVBQWUsQ0FBZ0I7SUFDL0IsUUFBUSxDQUFpRTtJQUVqRixZQUE0RSxxQkFBMEI7UUFBMUIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUFLO0lBQUcsQ0FBQztJQUUxRzs7Ozs7OztPQU9HO0lBQ0gsT0FBTyxDQUFDLEdBQVcsRUFBRSxPQUE0QztRQUMvRCxJQUFJLElBQUksQ0FBQyx1QkFBdUIsRUFBRTtZQUFFLE9BQU87UUFFM0MsSUFBSSxDQUFDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztnQkFDaEMsSUFBSSxDQUFDLFFBQVEsQ0FDWCwySUFBMkksQ0FDNUksQ0FBQztnQkFFRixPQUFPO1lBQ1QsQ0FBQztZQUVELElBQUks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LFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsUUFBUSxHQUFHLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1FBQzVHLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLGlCQUFpQixHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFFdEYsSUFBSSxDQUFDLHlDQUF5QyxFQUFFLENBQUM7SUFDbkQsQ0FBQzt1R0FyTFUsbUJBQW1CLGtCQVVFLHlCQUF5QjsyR0FWOUMsbUJBQW1CLGNBRmxCLE1BQU07OzJGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQVdjLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRXZlbnRTb3VyY2VQb2x5ZmlsbCB9IGZyb20gJ2V2ZW50LXNvdXJjZS1wb2x5ZmlsbCc7XG5pbXBvcnQgeyBORVZFUiwgT2JzZXJ2YWJsZSwgU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCB0eXBlIEV2ZW50TmFtZSA9ICdSRVNPVVJDRV9DUkVBVEVEJyB8ICdSRVNPVVJDRV9VUERBVEVEJyB8ICdSRVNPVVJDRV9ERUxFVEVEJztcblxuLyoqXG4gKiBTZXJ2aWNlIGZvciBoYW5kbGluZyByZWFsLXRpbWUgc2VydmVyLXNlbnQgZXZlbnRzLlxuICpcbiAqICMjIyBCZW5lZml0c1xuICpcbiAqIC0gKipSZWFsLVRpbWUgSW50ZXJhY3Rpb24qKjogRW5hYmxlcyBsaXZlIHVwZGF0ZXMgd2l0aG91dCB1c2VyIGFjdGlvbnMgb3IgcG9sbGluZy5cbiAqIC0gKipTY2FsYWJsZSBhbmQgRmxleGlibGUqKjogVGhlIHN5c3RlbSBpcyBmbGV4aWJsZSBhbmQgZWFzaWx5IGV4cGFuZGFibGUgdG8gaGFuZGxlIG5ldyBldmVudHMuXG4gKiAtICoqQ29uc2lzdGVuY3kqKjogRW5zdXJlcyBzeW5jaHJvbml6YXRpb24gYmV0d2VlbiBzZXJ2ZXIgYW5kIGNsaWVudCBzdGF0ZXMgZm9yIGEgY29uc2lzdGVudCB1c2VyIGV4cGVyaWVuY2UuXG4gKiAtICoqQXV0aG9yaXphdGlvbioqOiBJdCB1c2VzIHRoZSB1c2VyJ3MgYXV0aGVudGljYXRpb24gKFFkQXV0aCkgdG8gc2VjdXJlIHRoZSBjb25uZWN0aW9uIGFnYWluc3QgdGhlIGJhY2tlbmQgb3V0LW9mLXRoZS1ib3guIFRoaXMgcmVxdWlyZXMgYSBwcm9wZXIgUWRBdXRoIHNldHVwLiBZb3UgY2FuIGRpc2FibGUgdGhpcyBmZWF0dXJlIHdoZW4gc3RhcnRpbmcgdGhlIGNvbm5lY3Rpb24uXG4gKlxuICogIyMjIFVzYWdlXG4gKlxuICogYGBgdHNcbiAqIC8vIFN0YXJ0IHRoZSBjb25uZWN0aW9uIHRvIHRoZSBldmVudHNcbiAqIHB1c2hFdmVudHNTZXJ2aWNlLmNvbm5lY3QoJ2h0dHA6Ly9zZXJ2aWNlLWVuZHBpbnQvZXZlbnRzJyk7XG4gKiAvLyBvciBzdGFydCB3aXRob3V0IGF1dGhlbnRpY2F0aW9uIGluIGNhc2UgeW91IGRvbid0IG5lZWQ6XG4gKiBwdXNoRXZlbnRzU2VydmljZS5jb25uZWN0KCdodHRwOi8vc2VydmljZS1lbmRwaW50L2V2ZW50cycsIHsgZGlzYWJsZUF1dGhlbnRpY2F0aW9uOiB0cnVlIH0pO1xuICpcbiAqIC8vIFN1YnNjcmliZSB0byB0aGUgZXZlbnQgKFNpZGUgRWZmZWN0KVxuICogY29uc3Qgc3Vic2NyaXB0aW9uID0gcHVzaEV2ZW50c1NlcnZpY2Uub2JzZXJ2ZSgnUkVTT1VSQ0VfVVBEQVRFRCcpLnN1YnNjcmliZShldmVudCA9PiBoYW5kbGVFdmVudChldmVudCkpO1xuICpcbiAqIC8vIFVuc3Vic2NyaWJlIHRvIHByZXZlbnQgbWVtb3J5IGxlYWtzXG4gKiBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAqXG4gKiAvLyBEaXNjb25uZWN0IHRoZSBjb25uZWN0aW9uXG4gKiBwdXNoRXZlbnRzU2VydmljZS5kaXNjb25uZWN0KCk7XG4gKiBgYGBcbiAqL1xuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUWRQdXNoRXZlbnRzU2VydmljZSB7XG4gIHByaXZhdGUgX2V2ZW50U291cmNlITogRXZlbnRTb3VyY2U7XG4gIHByaXZhdGUgX2V2ZW50U3Vic2NyaXB0aW9uU3ViamVjdHMgPSBuZXcgTWFwPHN0cmluZywgU3ViamVjdDxNZXNzYWdlRXZlbnQ+PigpO1xuICBwcml2YXRlIF9saXN0ZW5lcnM6IFtzdHJpbmcsIChtZXNzYWdlOiBNZXNzYWdlRXZlbnQpID0+IHZvaWRdW10gPSBbXTtcbiAgcHJpdmF0ZSBfaGVhcnRiZWF0VGltZW91dCE6IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+O1xuICBwcml2YXRlIF9yZWNvbm5lY3REZWxheVRpbWUgPSAxMDAwMDtcbiAgcHJpdmF0ZSBfaGVhcnRiZWF0UmVjb25uZWN0RGVsYXlUaW1lID0gMTAwO1xuICBwcml2YXRlIF9hY2Nlc3NUb2tlblN1Yj86IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBfb3B0aW9ucyE6IHsgdXJsOiBzdHJpbmc7IG9wdGlvbnM/OiB7IGRpc2FibGVBdXRoZW50aWNhdGlvbjogYm9vbGVhbiB9IH07XG5cbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQEluamVjdCgnUWRBdXRoZW50aWNhdGlvblNlcnZpY2UnKSBwcml2YXRlIHJlYWRvbmx5IGF1dGhlbnRpY2F0aW9uU2VydmljZTogYW55KSB7fVxuXG4gIC8qKlxuICAgKiBFc3RhYmxpc2hlcyBhbiBFdmVudFNvdXJjZSBjb25uZWN0aW9uIHRvIHRoZSBnaXZlbiBVUkwuXG4gICAqIEF1dG9tYXRpY2FsbHkgcmVjb25uZWN0cyBpZiBoZWFydGJlYXQgZmFpbHMgb3IgaXMgZGVsYXllZC5cbiAgICogU3Vic2NyaWJlcnMgYXJlIHJldGFpbmVkIGFjcm9zcyByZWNvbm5lY3Rpb25zLlxuICAgKlxuICAgKiBAcGFyYW0gdXJsIFRoZSBiYWNrZW5kIFVSTCBmb3IgdGhlIGV2ZW50IHN0cmVhbS5cbiAgICogQHBhcmFtIG9wdGlvbnMgT3B0aW9ucyBmb3IgdGhlIGNvbm5lY3Rpb25cbiAgICovXG4gIGNvbm5lY3QodXJsOiBzdHJpbmcsIG9wdGlvbnM/OiB7IGRpc2FibGVBdXRoZW50aWNhdGlvbjogYm9vbGVhbiB9KTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNDb25uZWN0ZWRPckNvbm5lY3RpbmcoKSkgcmV0dXJuO1xuXG4gICAgaWYgKCFvcHRpb25zPy5kaXNhYmxlQXV0aGVudGljYXRpb24pIHtcbiAgICAgIGlmICghdGhpcy5hdXRoZW50aWNhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgdGhpcy5sb2dFcnJvcihcbiAgICAgICAgICBcIkNhbid0IGNvbm5lY3QgdG8gU1NFIHdpdGhvdXQgUWRBdXRoIGFzIHRoZSBjb25uZWN0aW9uIGhhcyB0byBiZSBzZWN1cmVkLiBQbGVhc2UgaW5zdGFsbCBRZEF1dGggb3IgZGlzYWJsZSBhdXRoZW50aWNhdGlvbiB3aGVuIGNvbm5lY3RpbmcuXCJcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLl9hY2Nlc3NUb2tlblN1YikgdGhpcy5fYWNjZXNzVG9rZW5TdWIudW5zdWJzY3JpYmUoKTtcblxuICAgICAgdGhpcy5fYWNjZXNzVG9rZW5TdWIgPSB0aGlzLmF1dGhlbnRpY2F0aW9uU2VydmljZS5hY2Nlc3NUb2tlbiQuc3Vic2NyaWJlKCh0b2tlbjogc3RyaW5nKSA9PiB7XG4gICAgICAgIHRoaXMuX29wdGlvbnMgPSB7IHVybCwgb3B0aW9ucyB9O1xuICAgICAgICB0aGlzLmNvbm5lY3RFdmVudFNvdXJjZShcbiAgICAgICAgICB1cmwsXG4gICAgICAgICAge1xuICAgICAgICAgICAgaGVhZGVyczogeyBBdXRob3JpemF0aW9uOiBgQmVhcmVyICR7dG9rZW59YCB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICB0cnVlXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fb3B0aW9ucyA9IHsgdXJsLCBvcHRpb25zIH07XG4gICAgICB0aGlzLmNvbm5lY3RFdmVudFNvdXJjZSh1cmwpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZXMgdGhlIEV2ZW50U291cmNlIGNvbm5lY3Rpb24gYW5kIGNsZWFycyBhbGwgbGlzdGVuZXJzLlxuICAgKiBTdWJzY3JpYmVycyBhcmUgcHJlc2VydmVkIGZvciByZWNvbm5lY3Rpb24uXG4gICAqL1xuICBkaXNjb25uZWN0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fZXZlbnRTb3VyY2UpIHtcbiAgICAgIHRoaXMubG9nV2FybignTm8gYWN0aXZlIGNvbm5lY3Rpb24gdG8gZGlzY29ubmVjdC4nKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMucmVtb3ZlQWxsRXZlbnRMaXN0ZW5lcnNGcm9tRXZlbnRTb3VyY2UoKTtcblxuICAgIHRoaXMuX2V2ZW50U291cmNlLmNsb3NlKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhbiBPYnNlcnZhYmxlIGZvciB0aGUgc3BlY2lmaWVkIGV2ZW50IG5hbWUuXG4gICAqIElmIG5vdCBjb25uZWN0ZWQsIHJldHVybnMgYE5FVkVSYCBhbmQgbG9ncyBhbiBlcnJvci5cbiAgICogQXV0b21hdGljYWxseSBhZGRzIGEgbGlzdGVuZXIgZm9yIHRoZSBldmVudCBpZiBuZWVkZWQuXG4gICAqXG4gICAqIEBwYXJhbSBldmVudE5hbWUgVGhlIGV2ZW50IHR5cGUgKCdSRVNPVVJDRV9DUkVBVEVEJywgJ1JFU09VUkNFX1VQREFURUQnLCAnUkVTT1VSQ0VfREVMRVRFRCcpLlxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPE1lc3NhZ2VFdmVudD4gVGhlIGV2ZW50IHN0cmVhbS5cbiAgICovXG4gIG9ic2VydmUoZXZlbnROYW1lOiBFdmVudE5hbWUpOiBPYnNlcnZhYmxlPE1lc3NhZ2VFdmVudD4ge1xuICAgIGlmICghdGhpcy5fZXZlbnRTb3VyY2UpIHtcbiAgICAgIHRoaXMubG9nRXJyb3IoJ0Nhbm5vdCBvYnNlcnZlIGV2ZW50cyB3aXRob3V0IGEgY29ubmVjdGlvbi4gQ2FsbCBjb25uZWN0KCkgZmlyc3QuJyk7XG5cbiAgICAgIHJldHVybiBORVZFUjtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuX2V2ZW50U3Vic2NyaXB0aW9uU3ViamVjdHMuaGFzKGV2ZW50TmFtZSkpIHtcbiAgICAgIHRoaXMuX2V2ZW50U3Vic2NyaXB0aW9uU3ViamVjdHMuc2V0KGV2ZW50TmFtZSwgbmV3IFN1YmplY3Q8TWVzc2FnZUV2ZW50PigpKTtcblxuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyRm9yRXZlbnROYW1lKGV2ZW50TmFtZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuX2V2ZW50U3Vic2NyaXB0aW9uU3ViamVjdHMuZ2V0KGV2ZW50TmFtZSkhLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgYWxsIGxpc3RlbmVycyBhbmQgY2xlYXJzIGFsbCBzdWJzY3JpcHRpb25zLlxuICAgKiBUaGUgRXZlbnRTb3VyY2UgY29ubmVjdGlvbiByZW1haW5zIG9wZW4uXG4gICAqL1xuICB1bm9ic2VydmVBbGwoKTogdm9pZCB7XG4gICAgdGhpcy5yZW1vdmVBbGxFdmVudExpc3RlbmVyc0Zyb21FdmVudFNvdXJjZSgpO1xuICAgIHRoaXMuX2V2ZW50U3Vic2NyaXB0aW9uU3ViamVjdHMuY2xlYXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhlIEV2ZW50U291cmNlIGlzIGNvbm5lY3RlZCBvciBpbiB0aGUgcHJvY2VzcyBvZiBjb25uZWN0aW5nLlxuICAgKi9cbiAgaXNDb25uZWN0ZWRPckNvbm5lY3RpbmcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuX2V2ZW50U291cmNlICYmXG4gICAgICAodGhpcy5fZXZlbnRTb3VyY2UucmVhZHlTdGF0ZSA9PT0gRXZlbnRTb3VyY2UuT1BFTiB8fCB0aGlzLl9ldmVudFNvdXJjZS5yZWFkeVN0YXRlID09PSBFdmVudFNvdXJjZS5DT05ORUNUSU5HKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHJlY29ubmVjdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0Nvbm5lY3RlZE9yQ29ubmVjdGluZygpKSByZXR1cm47XG5cbiAgICB0aGlzLmRpc2Nvbm5lY3QoKTtcbiAgICB0aGlzLmNvbm5lY3QodGhpcy5fb3B0aW9ucy51cmwsIHRoaXMuX29wdGlvbnMub3B0aW9ucyk7XG4gIH1cblxuICBwcml2YXRlIGFkZEV2ZW50TGlzdGVuZXJGb3JFdmVudE5hbWUoZXZlbnROYW1lOiBFdmVudE5hbWUpOiB2b2lkIHtcbiAgICBjb25zdCBjYWxsYmFjayA9IChtZXNzYWdlRXZlbnQ6IE1lc3NhZ2VFdmVudCk6IHZvaWQgPT4ge1xuICAgICAgY29uc3Qgc3ViamVjdCA9IHRoaXMuX2V2ZW50U3Vic2NyaXB0aW9uU3ViamVjdHMuZ2V0KGV2ZW50TmFtZSk7XG5cbiAgICAgIGlmIChzdWJqZWN0KSBzdWJqZWN0Lm5leHQobWVzc2FnZUV2ZW50KTtcbiAgICB9O1xuXG4gICAgdGhpcy5fZXZlbnRTb3VyY2UuYWRkRXZlbnRMaXN0ZW5lcihldmVudE5hbWUsIGNhbGxiYWNrKTtcbiAgICB0aGlzLl9saXN0ZW5lcnMucHVzaChbZXZlbnROYW1lLCBjYWxsYmFja10pO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRFdmVudExpc3RlbmVyc0ZvckV4aXN0aW5nU3Vic2NyaXB0aW9ucygpOiB2b2lkIHtcbiAgICB0aGlzLl9ldmVudFN1YnNjcmlwdGlvblN1YmplY3RzLmZvckVhY2goKHN1YmplY3QsIGV2ZW50TmFtZSkgPT5cbiAgICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lclRvRXZlbnRTb3VyY2UoZXZlbnROYW1lIGFzIEV2ZW50TmFtZSwgKG1lc3NhZ2VFdmVudDogTWVzc2FnZUV2ZW50KSA9PlxuICAgICAgICBzdWJqZWN0Lm5leHQobWVzc2FnZUV2ZW50KVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGFkZEV2ZW50TGlzdGVuZXJUb0V2ZW50U291cmNlKGV2ZW50TmFtZTogRXZlbnROYW1lLCBjYWxsYmFjazogKG1lc3NhZ2VFdmVudDogTWVzc2FnZUV2ZW50KSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5fZXZlbnRTb3VyY2UuYWRkRXZlbnRMaXN0ZW5lcihldmVudE5hbWUsIGNhbGxiYWNrKTtcbiAgICB0aGlzLl9saXN0ZW5lcnMucHVzaChbZXZlbnROYW1lLCBjYWxsYmFja10pO1xuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVBbGxFdmVudExpc3RlbmVyc0Zyb21FdmVudFNvdXJjZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2V2ZW50U291cmNlKSB7XG4gICAgICB0aGlzLmxvZ1dhcm4oJ0Nhbm5vdCByZW1vdmUgbGlzdGVuZXJzOiBObyBhY3RpdmUgY29ubmVjdGlvbi4nKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX2xpc3RlbmVycy5mb3JFYWNoKChbZXZlbnROYW1lLCBjYWxsYmFja10pID0+IHRoaXMuX2V2ZW50U291cmNlLnJlbW92ZUV2ZW50TGlzdGVuZXIoZXZlbnROYW1lLCBjYWxsYmFjaykpO1xuICAgIHRoaXMuX2xpc3RlbmVycyA9IFtdO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2dXYXJuKG1lc3NhZ2U6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnNvbGUud2FybihgUUQtVUkgfCBRZFB1c2hFdmVudHNTZXJ2aWNlIC0gJHttZXNzYWdlfWApO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2dFcnJvcihtZXNzYWdlOiBzdHJpbmcsIGVycj86IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc29sZS5lcnJvcihgUUQtVUkgfCBRZFB1c2hFdmVudHNTZXJ2aWNlIC0gJHttZXNzYWdlfWAsIGVycik7XG4gIH1cblxuICBwcml2YXRlIGNvbm5lY3RFdmVudFNvdXJjZSh1cmw6IHN0cmluZywgb3B0aW9uczogdW5rbm93biA9IHt9LCByZWNvbm5lY3Q/OiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2V2ZW50U291cmNlICYmIHRoaXMuX2V2ZW50U291cmNlLnJlYWR5U3RhdGUgIT09IEV2ZW50U291cmNlLkNMT1NFRCkgdGhpcy5fZXZlbnRTb3VyY2UuY2xvc2UoKTtcblxuICAgIGlmICghdGhpcy5fZXZlbnRTb3VyY2UgfHwgdGhpcy5fZXZlbnRTb3VyY2UucmVhZHlTdGF0ZSA9PT0gRXZlbnRTb3VyY2UuQ0xPU0VEIHx8IHJlY29ubmVjdClcbiAgICAgIHRoaXMuX2V2ZW50U291cmNlID0gbmV3IEV2ZW50U291cmNlUG9seWZpbGwodXJsLCBvcHRpb25zKTtcblxuICAgIHRoaXMuX2V2ZW50U291cmNlLm9uZXJyb3IgPSAoZXJyOiBFdmVudCk6IHZvaWQgPT4ge1xuICAgICAgaWYgKHRoaXMuX2V2ZW50U291cmNlLnJlYWR5U3RhdGUgPT09IEV2ZW50U291cmNlLkNMT1NFRCkgdGhpcy5yZWNvbm5lY3QoKTtcblxuICAgICAgdGhpcy5sb2dFcnJvcignU1NFIGNvbm5lY3Rpb24gZXJyb3I6JywgZXJyKTtcbiAgICB9O1xuXG4gICAgdGhpcy5fZXZlbnRTb3VyY2UuYWRkRXZlbnRMaXN0ZW5lcignSEVBUlRCRUFUJywgKG1lc3NhZ2U6IE1lc3NhZ2VFdmVudCkgPT4ge1xuICAgICAgaWYgKHRoaXMuX2hlYXJ0YmVhdFRpbWVvdXQpIGNsZWFyVGltZW91dCh0aGlzLl9oZWFydGJlYXRUaW1lb3V0KTtcblxuICAgICAgY29uc3QgaW50ZXJ2YWwgPSBKU09OLnBhcnNlKG1lc3NhZ2UuZGF0YSkuaW50ZXJ2YWw7XG4gICAgICB0aGlzLl9oZWFydGJlYXRUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB0aGlzLnJlY29ubmVjdCgpLCBpbnRlcnZhbCArIHRoaXMuX2hlYXJ0YmVhdFJlY29ubmVjdERlbGF5VGltZSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLl9oZWFydGJlYXRUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB0aGlzLnJlY29ubmVjdCgpLCB0aGlzLl9yZWNvbm5lY3REZWxheVRpbWUpO1xuXG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyc0ZvckV4aXN0aW5nU3Vic2NyaXB0aW9ucygpO1xuICB9XG59XG4iXX0=
197
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVzaC1ldmVudHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcWQtdWkvc3JjL2xpYi9jb3JlL3NlcnZpY2VzL3B1c2gtZXZlbnRzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVELE9BQU8sRUFBRSxLQUFLLEVBQWMsT0FBTyxFQUFnQixNQUFNLE1BQU0sQ0FBQzs7QUFJaEU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJCRztBQUlILE1BQU0sT0FBTyxtQkFBbUI7SUFVOEM7SUFUcEUsWUFBWSxDQUFlO0lBQzNCLDBCQUEwQixHQUFHLElBQUksR0FBRyxFQUFpQyxDQUFDO0lBQ3RFLFVBQVUsR0FBZ0QsRUFBRSxDQUFDO0lBQzdELGlCQUFpQixDQUFpQztJQUNsRCxtQkFBbUIsR0FBRyxLQUFLLENBQUM7SUFDNUIsNEJBQTRCLEdBQUcsR0FBRyxDQUFDO0lBQ25DLGVBQWUsQ0FBZ0I7SUFDL0IsUUFBUSxDQUFpRTtJQUVqRixZQUE0RSxxQkFBMEI7UUFBMUIsMEJBQXFCLEdBQXJCLHFCQUFxQixDQUFLO0lBQUcsQ0FBQztJQUUxRzs7Ozs7OztPQU9HO0lBQ0gsT0FBTyxDQUFDLEdBQVcsRUFBRSxPQUE0QztRQUMvRCxJQUFJLElBQUksQ0FBQyx1QkFBdUIsRUFBRTtZQUFFLE9BQU87UUFFM0MsSUFBSSxDQUFDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxDQUFDO1lBQ3BDLElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztnQkFDaEMsSUFBSSxDQUFDLFFBQVEsQ0FDWCwySUFBMkksQ0FDNUksQ0FBQztnQkFFRixPQUFPO1lBQ1QsQ0FBQztZQUVELElBQUksSUFBSSxDQUFDLGVBQWU7Z0JBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUU3RCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBYSxFQUFFLEVBQUU7Z0JBQ3pGLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLENBQUM7Z0JBQ2pDLElBQUksQ0FBQyxrQkFBa0IsQ0FDckIsR0FBRyxFQUNIO29CQUNFLE9BQU8sRUFBRSxFQUFFLGFBQWEsRUFBRSxVQUFVLEtBQUssRUFBRSxFQUFFO2lCQUM5QyxFQUNELElBQUksQ0FDTCxDQUFDO1lBQ0osQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQy9CLENBQUM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsVUFBVTtRQUNSLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxxQ0FBcUMsQ0FBQyxDQUFDO1lBRXBELE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLHNDQUFzQyxFQUFFLENBQUM7UUFFOUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUM1QixDQUFDO0lBRUQ7Ozs7Ozs7T0FPRztJQUNILE9BQU8sQ0FBQyxTQUFvQjtRQUMxQixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxRQUFRLENBQUMsbUVBQW1FLENBQUMsQ0FBQztZQUVuRixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQ3BELElBQUksQ0FBQywwQkFBMEIsQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLElBQUksT0FBTyxFQUFnQixDQUFDLENBQUM7WUFFNUUsSUFBSSxDQUFDLDRCQUE0QixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQy9DLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFFLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDeEUsQ0FBQztJQUVEOzs7T0FHRztJQUNILFlBQVk7UUFDVixJQUFJLENBQUMsc0NBQXNDLEVBQUUsQ0FBQztRQUM5QyxJQUFJLENBQUMsMEJBQTBCLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsdUJBQXVCO1FBQ3JCLE9BQU8sQ0FDTCxJQUFJLENBQUMsWUFBWTtZQUNqQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxLQUFLLFdBQVcsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLEtBQUssV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUMvRyxDQUFDO0lBQ0osQ0FBQztJQUVPLFNBQVM7UUFDZixJQUFJLElBQUksQ0FBQyx1QkFBdUIsRUFBRTtZQUFFLE9BQU87UUFFM0MsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRU8sNEJBQTRCLENBQUMsU0FBb0I7UUFDdkQsTUFBTSxRQUFRLEdBQUcsQ0FBQyxZQUEwQixFQUFRLEVBQUU7WUFDcEQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLDBCQUEwQixDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUUvRCxJQUFJLE9BQU87Z0JBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMxQyxDQUFDLENBQUM7UUFFRixJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFTyx5Q0FBeUM7UUFDL0MsSUFBSSxDQUFDLDBCQUEwQixDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsRUFBRSxDQUM3RCxJQUFJLENBQUMsNkJBQTZCLENBQUMsU0FBc0IsRUFBRSxDQUFDLFlBQTBCLEVBQUUsRUFBRSxDQUN4RixPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUMzQixDQUNGLENBQUM7SUFDSixDQUFDO0lBRU8sNkJBQTZCLENBQUMsU0FBb0IsRUFBRSxRQUE4QztRQUN4RyxJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQztRQUN4RCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFTyxzQ0FBc0M7UUFDNUMsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN2QixJQUFJLENBQUMsT0FBTyxDQUFDLGdEQUFnRCxDQUFDLENBQUM7WUFFL0QsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQy9HLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFTyxPQUFPLENBQUMsT0FBZTtRQUM3QixPQUFPLENBQUMsSUFBSSxDQUFDLGlDQUFpQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFTyxRQUFRLENBQUMsT0FBZSxFQUFFLEdBQVc7UUFDM0MsT0FBTyxDQUFDLEtBQUssQ0FBQyxpQ0FBaUMsT0FBTyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVPLGtCQUFrQixDQUFDLEdBQVcsRUFBRSxVQUFtQixFQUFFLEVBQUUsU0FBbUI7UUFDaEYsSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxLQUFLLFdBQVcsQ0FBQyxNQUFNO1lBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUV4RyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsS0FBSyxXQUFXLENBQUMsTUFBTSxJQUFJLFNBQVM7WUFDeEYsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUU1RCxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sR0FBRyxDQUFDLEdBQVEsRUFBUSxFQUFFO1lBQzdDLE1BQU0sTUFBTSxHQUFHLEdBQUcsRUFBRSxNQUFNLElBQUksR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUM7WUFFbEQsSUFBSSxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUM7Z0JBQ25CLElBQUksQ0FBQyxRQUFRLENBQUMsb0NBQW9DLEVBQUUsR0FBRyxDQUFDLENBQUM7Z0JBQ3pELElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUM7Z0JBRTFCLE9BQU87WUFDVCxDQUFDO1lBRUQsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsS0FBSyxXQUFXLENBQUMsTUFBTTtnQkFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFFMUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyx1QkFBdUIsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUM5QyxDQUFDLENBQUM7UUFFRixJQUFJLENBQUMsWUFBWSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQXFCLEVBQUUsRUFBRTtZQUN4RSxJQUFJLElBQUksQ0FBQyxpQkFBaUI7Z0JBQUUsWUFBWSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1lBRWpFLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQztZQUNuRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxRQUFRLEdBQUcsSUFBSSxDQUFDLDRCQUE0QixDQUFDLENBQUM7UUFDNUcsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUV0RixJQUFJLENBQUMseUNBQXlDLEVBQUUsQ0FBQztJQUNuRCxDQUFDO3VHQTlMVSxtQkFBbUIsa0JBVUUseUJBQXlCOzJHQVY5QyxtQkFBbUIsY0FGbEIsTUFBTTs7MkZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBV2MsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFdmVudFNvdXJjZVBvbHlmaWxsIH0gZnJvbSAnZXZlbnQtc291cmNlLXBvbHlmaWxsJztcbmltcG9ydCB7IE5FVkVSLCBPYnNlcnZhYmxlLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IHR5cGUgRXZlbnROYW1lID0gJ1JFU09VUkNFX0NSRUFURUQnIHwgJ1JFU09VUkNFX1VQREFURUQnIHwgJ1JFU09VUkNFX0RFTEVURUQnO1xuXG4vKipcbiAqIFNlcnZpY2UgZm9yIGhhbmRsaW5nIHJlYWwtdGltZSBzZXJ2ZXItc2VudCBldmVudHMuXG4gKlxuICogIyMjIEJlbmVmaXRzXG4gKlxuICogLSAqKlJlYWwtVGltZSBJbnRlcmFjdGlvbioqOiBFbmFibGVzIGxpdmUgdXBkYXRlcyB3aXRob3V0IHVzZXIgYWN0aW9ucyBvciBwb2xsaW5nLlxuICogLSAqKlNjYWxhYmxlIGFuZCBGbGV4aWJsZSoqOiBUaGUgc3lzdGVtIGlzIGZsZXhpYmxlIGFuZCBlYXNpbHkgZXhwYW5kYWJsZSB0byBoYW5kbGUgbmV3IGV2ZW50cy5cbiAqIC0gKipDb25zaXN0ZW5jeSoqOiBFbnN1cmVzIHN5bmNocm9uaXphdGlvbiBiZXR3ZWVuIHNlcnZlciBhbmQgY2xpZW50IHN0YXRlcyBmb3IgYSBjb25zaXN0ZW50IHVzZXIgZXhwZXJpZW5jZS5cbiAqIC0gKipBdXRob3JpemF0aW9uKio6IEl0IHVzZXMgdGhlIHVzZXIncyBhdXRoZW50aWNhdGlvbiAoUWRBdXRoKSB0byBzZWN1cmUgdGhlIGNvbm5lY3Rpb24gYWdhaW5zdCB0aGUgYmFja2VuZCBvdXQtb2YtdGhlLWJveC4gVGhpcyByZXF1aXJlcyBhIHByb3BlciBRZEF1dGggc2V0dXAuIFlvdSBjYW4gZGlzYWJsZSB0aGlzIGZlYXR1cmUgd2hlbiBzdGFydGluZyB0aGUgY29ubmVjdGlvbi5cbiAqXG4gKiAjIyMgVXNhZ2VcbiAqXG4gKiBgYGB0c1xuICogLy8gU3RhcnQgdGhlIGNvbm5lY3Rpb24gdG8gdGhlIGV2ZW50c1xuICogcHVzaEV2ZW50c1NlcnZpY2UuY29ubmVjdCgnaHR0cDovL3NlcnZpY2UtZW5kcGludC9ldmVudHMnKTtcbiAqIC8vIG9yIHN0YXJ0IHdpdGhvdXQgYXV0aGVudGljYXRpb24gaW4gY2FzZSB5b3UgZG9uJ3QgbmVlZDpcbiAqIHB1c2hFdmVudHNTZXJ2aWNlLmNvbm5lY3QoJ2h0dHA6Ly9zZXJ2aWNlLWVuZHBpbnQvZXZlbnRzJywgeyBkaXNhYmxlQXV0aGVudGljYXRpb246IHRydWUgfSk7XG4gKlxuICogLy8gU3Vic2NyaWJlIHRvIHRoZSBldmVudCAoU2lkZSBFZmZlY3QpXG4gKiBjb25zdCBzdWJzY3JpcHRpb24gPSBwdXNoRXZlbnRzU2VydmljZS5vYnNlcnZlKCdSRVNPVVJDRV9VUERBVEVEJykuc3Vic2NyaWJlKGV2ZW50ID0+IGhhbmRsZUV2ZW50KGV2ZW50KSk7XG4gKlxuICogLy8gVW5zdWJzY3JpYmUgdG8gcHJldmVudCBtZW1vcnkgbGVha3NcbiAqIHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICpcbiAqIC8vIERpc2Nvbm5lY3QgdGhlIGNvbm5lY3Rpb25cbiAqIHB1c2hFdmVudHNTZXJ2aWNlLmRpc2Nvbm5lY3QoKTtcbiAqIGBgYFxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBRZFB1c2hFdmVudHNTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBfZXZlbnRTb3VyY2UhOiBFdmVudFNvdXJjZTtcbiAgcHJpdmF0ZSBfZXZlbnRTdWJzY3JpcHRpb25TdWJqZWN0cyA9IG5ldyBNYXA8c3RyaW5nLCBTdWJqZWN0PE1lc3NhZ2VFdmVudD4+KCk7XG4gIHByaXZhdGUgX2xpc3RlbmVyczogW3N0cmluZywgKG1lc3NhZ2U6IE1lc3NhZ2VFdmVudCkgPT4gdm9pZF1bXSA9IFtdO1xuICBwcml2YXRlIF9oZWFydGJlYXRUaW1lb3V0ITogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD47XG4gIHByaXZhdGUgX3JlY29ubmVjdERlbGF5VGltZSA9IDEwMDAwO1xuICBwcml2YXRlIF9oZWFydGJlYXRSZWNvbm5lY3REZWxheVRpbWUgPSAxMDA7XG4gIHByaXZhdGUgX2FjY2Vzc1Rva2VuU3ViPzogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIF9vcHRpb25zITogeyB1cmw6IHN0cmluZzsgb3B0aW9ucz86IHsgZGlzYWJsZUF1dGhlbnRpY2F0aW9uOiBib29sZWFuIH0gfTtcblxuICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBASW5qZWN0KCdRZEF1dGhlbnRpY2F0aW9uU2VydmljZScpIHByaXZhdGUgcmVhZG9ubHkgYXV0aGVudGljYXRpb25TZXJ2aWNlOiBhbnkpIHt9XG5cbiAgLyoqXG4gICAqIEVzdGFibGlzaGVzIGFuIEV2ZW50U291cmNlIGNvbm5lY3Rpb24gdG8gdGhlIGdpdmVuIFVSTC5cbiAgICogQXV0b21hdGljYWxseSByZWNvbm5lY3RzIGlmIGhlYXJ0YmVhdCBmYWlscyBvciBpcyBkZWxheWVkLlxuICAgKiBTdWJzY3JpYmVycyBhcmUgcmV0YWluZWQgYWNyb3NzIHJlY29ubmVjdGlvbnMuXG4gICAqXG4gICAqIEBwYXJhbSB1cmwgVGhlIGJhY2tlbmQgVVJMIGZvciB0aGUgZXZlbnQgc3RyZWFtLlxuICAgKiBAcGFyYW0gb3B0aW9ucyBPcHRpb25zIGZvciB0aGUgY29ubmVjdGlvblxuICAgKi9cbiAgY29ubmVjdCh1cmw6IHN0cmluZywgb3B0aW9ucz86IHsgZGlzYWJsZUF1dGhlbnRpY2F0aW9uOiBib29sZWFuIH0pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0Nvbm5lY3RlZE9yQ29ubmVjdGluZygpKSByZXR1cm47XG5cbiAgICBpZiAoIW9wdGlvbnM/LmRpc2FibGVBdXRoZW50aWNhdGlvbikge1xuICAgICAgaWYgKCF0aGlzLmF1dGhlbnRpY2F0aW9uU2VydmljZSkge1xuICAgICAgICB0aGlzLmxvZ0Vycm9yKFxuICAgICAgICAgIFwiQ2FuJ3QgY29ubmVjdCB0byBTU0Ugd2l0aG91dCBRZEF1dGggYXMgdGhlIGNvbm5lY3Rpb24gaGFzIHRvIGJlIHNlY3VyZWQuIFBsZWFzZSBpbnN0YWxsIFFkQXV0aCBvciBkaXNhYmxlIGF1dGhlbnRpY2F0aW9uIHdoZW4gY29ubmVjdGluZy5cIlxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuX2FjY2Vzc1Rva2VuU3ViKSB0aGlzLl9hY2Nlc3NUb2tlblN1Yi51bnN1YnNjcmliZSgpO1xuXG4gICAgICB0aGlzLl9hY2Nlc3NUb2tlblN1YiA9IHRoaXMuYXV0aGVudGljYXRpb25TZXJ2aWNlLmFjY2Vzc1Rva2VuJC5zdWJzY3JpYmUoKHRva2VuOiBzdHJpbmcpID0+IHtcbiAgICAgICAgdGhpcy5fb3B0aW9ucyA9IHsgdXJsLCBvcHRpb25zIH07XG4gICAgICAgIHRoaXMuY29ubmVjdEV2ZW50U291cmNlKFxuICAgICAgICAgIHVybCxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBoZWFkZXJzOiB7IEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHt0b2tlbn1gIH1cbiAgICAgICAgICB9LFxuICAgICAgICAgIHRydWVcbiAgICAgICAgKTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9vcHRpb25zID0geyB1cmwsIG9wdGlvbnMgfTtcbiAgICAgIHRoaXMuY29ubmVjdEV2ZW50U291cmNlKHVybCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlcyB0aGUgRXZlbnRTb3VyY2UgY29ubmVjdGlvbiBhbmQgY2xlYXJzIGFsbCBsaXN0ZW5lcnMuXG4gICAqIFN1YnNjcmliZXJzIGFyZSBwcmVzZXJ2ZWQgZm9yIHJlY29ubmVjdGlvbi5cbiAgICovXG4gIGRpc2Nvbm5lY3QoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLl9ldmVudFNvdXJjZSkge1xuICAgICAgdGhpcy5sb2dXYXJuKCdObyBhY3RpdmUgY29ubmVjdGlvbiB0byBkaXNjb25uZWN0LicpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5yZW1vdmVBbGxFdmVudExpc3RlbmVyc0Zyb21FdmVudFNvdXJjZSgpO1xuXG4gICAgdGhpcy5fZXZlbnRTb3VyY2UuY2xvc2UoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGFuIE9ic2VydmFibGUgZm9yIHRoZSBzcGVjaWZpZWQgZXZlbnQgbmFtZS5cbiAgICogSWYgbm90IGNvbm5lY3RlZCwgcmV0dXJucyBgTkVWRVJgIGFuZCBsb2dzIGFuIGVycm9yLlxuICAgKiBBdXRvbWF0aWNhbGx5IGFkZHMgYSBsaXN0ZW5lciBmb3IgdGhlIGV2ZW50IGlmIG5lZWRlZC5cbiAgICpcbiAgICogQHBhcmFtIGV2ZW50TmFtZSBUaGUgZXZlbnQgdHlwZSAoJ1JFU09VUkNFX0NSRUFURUQnLCAnUkVTT1VSQ0VfVVBEQVRFRCcsICdSRVNPVVJDRV9ERUxFVEVEJykuXG4gICAqIEByZXR1cm5zIE9ic2VydmFibGU8TWVzc2FnZUV2ZW50PiBUaGUgZXZlbnQgc3RyZWFtLlxuICAgKi9cbiAgb2JzZXJ2ZShldmVudE5hbWU6IEV2ZW50TmFtZSk6IE9ic2VydmFibGU8TWVzc2FnZUV2ZW50PiB7XG4gICAgaWYgKCF0aGlzLl9ldmVudFNvdXJjZSkge1xuICAgICAgdGhpcy5sb2dFcnJvcignQ2Fubm90IG9ic2VydmUgZXZlbnRzIHdpdGhvdXQgYSBjb25uZWN0aW9uLiBDYWxsIGNvbm5lY3QoKSBmaXJzdC4nKTtcblxuICAgICAgcmV0dXJuIE5FVkVSO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5fZXZlbnRTdWJzY3JpcHRpb25TdWJqZWN0cy5oYXMoZXZlbnROYW1lKSkge1xuICAgICAgdGhpcy5fZXZlbnRTdWJzY3JpcHRpb25TdWJqZWN0cy5zZXQoZXZlbnROYW1lLCBuZXcgU3ViamVjdDxNZXNzYWdlRXZlbnQ+KCkpO1xuXG4gICAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXJGb3JFdmVudE5hbWUoZXZlbnROYW1lKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5fZXZlbnRTdWJzY3JpcHRpb25TdWJqZWN0cy5nZXQoZXZlbnROYW1lKSEuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlcyBhbGwgbGlzdGVuZXJzIGFuZCBjbGVhcnMgYWxsIHN1YnNjcmlwdGlvbnMuXG4gICAqIFRoZSBFdmVudFNvdXJjZSBjb25uZWN0aW9uIHJlbWFpbnMgb3Blbi5cbiAgICovXG4gIHVub2JzZXJ2ZUFsbCgpOiB2b2lkIHtcbiAgICB0aGlzLnJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzRnJvbUV2ZW50U291cmNlKCk7XG4gICAgdGhpcy5fZXZlbnRTdWJzY3JpcHRpb25TdWJqZWN0cy5jbGVhcigpO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrcyBpZiB0aGUgRXZlbnRTb3VyY2UgaXMgY29ubmVjdGVkIG9yIGluIHRoZSBwcm9jZXNzIG9mIGNvbm5lY3RpbmcuXG4gICAqL1xuICBpc0Nvbm5lY3RlZE9yQ29ubmVjdGluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5fZXZlbnRTb3VyY2UgJiZcbiAgICAgICh0aGlzLl9ldmVudFNvdXJjZS5yZWFkeVN0YXRlID09PSBFdmVudFNvdXJjZS5PUEVOIHx8IHRoaXMuX2V2ZW50U291cmNlLnJlYWR5U3RhdGUgPT09IEV2ZW50U291cmNlLkNPTk5FQ1RJTkcpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVjb25uZWN0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzQ29ubmVjdGVkT3JDb25uZWN0aW5nKCkpIHJldHVybjtcblxuICAgIHRoaXMuZGlzY29ubmVjdCgpO1xuICAgIHRoaXMuY29ubmVjdCh0aGlzLl9vcHRpb25zLnVybCwgdGhpcy5fb3B0aW9ucy5vcHRpb25zKTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkRXZlbnRMaXN0ZW5lckZvckV2ZW50TmFtZShldmVudE5hbWU6IEV2ZW50TmFtZSk6IHZvaWQge1xuICAgIGNvbnN0IGNhbGxiYWNrID0gKG1lc3NhZ2VFdmVudDogTWVzc2FnZUV2ZW50KTogdm9pZCA9PiB7XG4gICAgICBjb25zdCBzdWJqZWN0ID0gdGhpcy5fZXZlbnRTdWJzY3JpcHRpb25TdWJqZWN0cy5nZXQoZXZlbnROYW1lKTtcblxuICAgICAgaWYgKHN1YmplY3QpIHN1YmplY3QubmV4dChtZXNzYWdlRXZlbnQpO1xuICAgIH07XG5cbiAgICB0aGlzLl9ldmVudFNvdXJjZS5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgY2FsbGJhY2spO1xuICAgIHRoaXMuX2xpc3RlbmVycy5wdXNoKFtldmVudE5hbWUsIGNhbGxiYWNrXSk7XG4gIH1cblxuICBwcml2YXRlIGFkZEV2ZW50TGlzdGVuZXJzRm9yRXhpc3RpbmdTdWJzY3JpcHRpb25zKCk6IHZvaWQge1xuICAgIHRoaXMuX2V2ZW50U3Vic2NyaXB0aW9uU3ViamVjdHMuZm9yRWFjaCgoc3ViamVjdCwgZXZlbnROYW1lKSA9PlxuICAgICAgdGhpcy5hZGRFdmVudExpc3RlbmVyVG9FdmVudFNvdXJjZShldmVudE5hbWUgYXMgRXZlbnROYW1lLCAobWVzc2FnZUV2ZW50OiBNZXNzYWdlRXZlbnQpID0+XG4gICAgICAgIHN1YmplY3QubmV4dChtZXNzYWdlRXZlbnQpXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkRXZlbnRMaXN0ZW5lclRvRXZlbnRTb3VyY2UoZXZlbnROYW1lOiBFdmVudE5hbWUsIGNhbGxiYWNrOiAobWVzc2FnZUV2ZW50OiBNZXNzYWdlRXZlbnQpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLl9ldmVudFNvdXJjZS5hZGRFdmVudExpc3RlbmVyKGV2ZW50TmFtZSwgY2FsbGJhY2spO1xuICAgIHRoaXMuX2xpc3RlbmVycy5wdXNoKFtldmVudE5hbWUsIGNhbGxiYWNrXSk7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZUFsbEV2ZW50TGlzdGVuZXJzRnJvbUV2ZW50U291cmNlKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fZXZlbnRTb3VyY2UpIHtcbiAgICAgIHRoaXMubG9nV2FybignQ2Fubm90IHJlbW92ZSBsaXN0ZW5lcnM6IE5vIGFjdGl2ZSBjb25uZWN0aW9uLicpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fbGlzdGVuZXJzLmZvckVhY2goKFtldmVudE5hbWUsIGNhbGxiYWNrXSkgPT4gdGhpcy5fZXZlbnRTb3VyY2UucmVtb3ZlRXZlbnRMaXN0ZW5lcihldmVudE5hbWUsIGNhbGxiYWNrKSk7XG4gICAgdGhpcy5fbGlzdGVuZXJzID0gW107XG4gIH1cblxuICBwcml2YXRlIGxvZ1dhcm4obWVzc2FnZTogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc29sZS53YXJuKGBRRC1VSSB8IFFkUHVzaEV2ZW50c1NlcnZpY2UgLSAke21lc3NhZ2V9YCk7XG4gIH1cblxuICBwcml2YXRlIGxvZ0Vycm9yKG1lc3NhZ2U6IHN0cmluZywgZXJyPzogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zb2xlLmVycm9yKGBRRC1VSSB8IFFkUHVzaEV2ZW50c1NlcnZpY2UgLSAke21lc3NhZ2V9YCwgZXJyKTtcbiAgfVxuXG4gIHByaXZhdGUgY29ubmVjdEV2ZW50U291cmNlKHVybDogc3RyaW5nLCBvcHRpb25zOiB1bmtub3duID0ge30sIHJlY29ubmVjdD86IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fZXZlbnRTb3VyY2UgJiYgdGhpcy5fZXZlbnRTb3VyY2UucmVhZHlTdGF0ZSAhPT0gRXZlbnRTb3VyY2UuQ0xPU0VEKSB0aGlzLl9ldmVudFNvdXJjZS5jbG9zZSgpO1xuXG4gICAgaWYgKCF0aGlzLl9ldmVudFNvdXJjZSB8fCB0aGlzLl9ldmVudFNvdXJjZS5yZWFkeVN0YXRlID09PSBFdmVudFNvdXJjZS5DTE9TRUQgfHwgcmVjb25uZWN0KVxuICAgICAgdGhpcy5fZXZlbnRTb3VyY2UgPSBuZXcgRXZlbnRTb3VyY2VQb2x5ZmlsbCh1cmwsIG9wdGlvbnMpO1xuXG4gICAgdGhpcy5fZXZlbnRTb3VyY2Uub25lcnJvciA9IChlcnI6IGFueSk6IHZvaWQgPT4ge1xuICAgICAgY29uc3Qgc3RhdHVzID0gZXJyPy5zdGF0dXMgfHwgZXJyPy50YXJnZXQ/LnN0YXR1cztcblxuICAgICAgaWYgKHN0YXR1cyA9PT0gNDAxKSB7XG4gICAgICAgIHRoaXMubG9nRXJyb3IoJ1NTRSBjb25uZWN0aW9uIHVuYXV0aG9yaXplZCAoNDAxKTonLCBlcnIpO1xuICAgICAgICB0aGlzLl9ldmVudFNvdXJjZS5jbG9zZSgpO1xuXG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuX2V2ZW50U291cmNlLnJlYWR5U3RhdGUgPT09IEV2ZW50U291cmNlLkNMT1NFRCkgdGhpcy5yZWNvbm5lY3QoKTtcblxuICAgICAgdGhpcy5sb2dFcnJvcignU1NFIGNvbm5lY3Rpb24gZXJyb3I6JywgZXJyKTtcbiAgICB9O1xuXG4gICAgdGhpcy5fZXZlbnRTb3VyY2UuYWRkRXZlbnRMaXN0ZW5lcignSEVBUlRCRUFUJywgKG1lc3NhZ2U6IE1lc3NhZ2VFdmVudCkgPT4ge1xuICAgICAgaWYgKHRoaXMuX2hlYXJ0YmVhdFRpbWVvdXQpIGNsZWFyVGltZW91dCh0aGlzLl9oZWFydGJlYXRUaW1lb3V0KTtcblxuICAgICAgY29uc3QgaW50ZXJ2YWwgPSBKU09OLnBhcnNlKG1lc3NhZ2UuZGF0YSkuaW50ZXJ2YWw7XG4gICAgICB0aGlzLl9oZWFydGJlYXRUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB0aGlzLnJlY29ubmVjdCgpLCBpbnRlcnZhbCArIHRoaXMuX2hlYXJ0YmVhdFJlY29ubmVjdERlbGF5VGltZSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLl9oZWFydGJlYXRUaW1lb3V0ID0gc2V0VGltZW91dCgoKSA9PiB0aGlzLnJlY29ubmVjdCgpLCB0aGlzLl9yZWNvbm5lY3REZWxheVRpbWUpO1xuXG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyc0ZvckV4aXN0aW5nU3Vic2NyaXB0aW9ucygpO1xuICB9XG59XG4iXX0=
@@ -1,4 +1,4 @@
1
- import { Component, ElementRef, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';
1
+ import { ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';
2
2
  import { v4 as uuid } from 'uuid';
3
3
  import { QdFilterService } from '../filter/filter-service/filter.service';
4
4
  import { QdSearchService } from '../search/services/search.service';
@@ -68,6 +68,7 @@ export class QdSectionComponent {
68
68
  actionService;
69
69
  filterService;
70
70
  elementRef;
71
+ cdr;
71
72
  /**
72
73
  * The configuration of the section.
73
74
  */
@@ -104,17 +105,21 @@ export class QdSectionComponent {
104
105
  filterValueChangeOutput = new EventEmitter();
105
106
  noHorizontalPaddingMobile = false;
106
107
  _outputSubscriptions = [];
107
- constructor(searchService, actionService, filterService, elementRef) {
108
+ constructor(searchService, actionService, filterService, elementRef, cdr) {
108
109
  this.searchService = searchService;
109
110
  this.actionService = actionService;
110
111
  this.filterService = filterService;
111
112
  this.elementRef = elementRef;
113
+ this.cdr = cdr;
112
114
  }
113
115
  ngOnInit() {
114
116
  this.subscribeForOutputs();
115
117
  }
116
118
  ngAfterViewInit() {
117
- this.noHorizontalPaddingMobile = !!this.elementRef.nativeElement.querySelector('[data-qd-no-horizontal-padding-small]');
119
+ Promise.resolve().then(() => {
120
+ this.noHorizontalPaddingMobile = !!this.elementRef.nativeElement.querySelector('[data-qd-no-horizontal-padding-small]');
121
+ this.cdr.detectChanges();
122
+ });
118
123
  }
119
124
  ngOnChanges(changes) {
120
125
  if (changes['config'] && !changes['config'].firstChange) {
@@ -158,7 +163,7 @@ export class QdSectionComponent {
158
163
  this._outputSubscriptions.forEach(subscription => subscription.unsubscribe());
159
164
  this._outputSubscriptions = [];
160
165
  }
161
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdSectionComponent, deps: [{ token: i1.QdSearchService }, { token: i2.QdSectionToolbarActionService }, { token: i3.QdFilterService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
166
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdSectionComponent, deps: [{ token: i1.QdSearchService }, { token: i2.QdSectionToolbarActionService }, { token: i3.QdFilterService }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
162
167
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: QdSectionComponent, selector: "qd-section", inputs: { config: "config" }, outputs: { searchQueryStringOutput: "searchQueryStringOutput", searchPostBodyOutput: "searchPostBodyOutput", actionOutput: "actionOutput", filterQueryStringOutput: "filterQueryStringOutput", filterPostBodyOutput: "filterPostBodyOutput", filterValueChangeOutput: "filterValueChangeOutput" }, host: { properties: { "class.no-horizontal-padding-mobile": "noHorizontalPaddingMobile" }, classAttribute: "qd-section" }, providers: [QdSectionToolbarActionService, QdSearchService, QdToolbarComponentsService], usesOnChanges: true, ngImport: i0, template: "<section>\n <qd-section-toolbar [className]=\"'qd-section__toolbar'\" [config]=\"config\"></qd-section-toolbar>\n\n <div *ngIf=\"!config.collapse?.isContentHidden\" class=\"qd-section__content\"><ng-content></ng-content></div>\n</section>\n", styles: ["qd-section{display:block;padding:.9375rem 1.25rem 3.125rem;background-color:#efefef}@media (max-width: 599.98px){qd-section{padding:.9375rem .9375rem 3.125rem}qd-section.no-horizontal-padding-mobile{padding:.9375rem 0 3.125rem}qd-section.no-horizontal-padding-mobile qd-section-toolbar{margin:0 .9375rem .3125rem}}.qd-section{display:block}.qd-section:has(+.qd-section){border-bottom:rgb(213,213,213) solid .0625rem}@media (max-width: 959.98px){.qd-section{padding:.75rem}}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i5.QdSectionToolbarComponent, selector: "qd-section-toolbar", inputs: ["config"] }], encapsulation: i0.ViewEncapsulation.None });
163
168
  }
164
169
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdSectionComponent, decorators: [{
@@ -167,7 +172,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
167
172
  class: 'qd-section',
168
173
  '[class.no-horizontal-padding-mobile]': 'noHorizontalPaddingMobile'
169
174
  }, encapsulation: ViewEncapsulation.None, template: "<section>\n <qd-section-toolbar [className]=\"'qd-section__toolbar'\" [config]=\"config\"></qd-section-toolbar>\n\n <div *ngIf=\"!config.collapse?.isContentHidden\" class=\"qd-section__content\"><ng-content></ng-content></div>\n</section>\n", styles: ["qd-section{display:block;padding:.9375rem 1.25rem 3.125rem;background-color:#efefef}@media (max-width: 599.98px){qd-section{padding:.9375rem .9375rem 3.125rem}qd-section.no-horizontal-padding-mobile{padding:.9375rem 0 3.125rem}qd-section.no-horizontal-padding-mobile qd-section-toolbar{margin:0 .9375rem .3125rem}}.qd-section{display:block}.qd-section:has(+.qd-section){border-bottom:rgb(213,213,213) solid .0625rem}@media (max-width: 959.98px){.qd-section{padding:.75rem}}\n"] }]
170
- }], ctorParameters: () => [{ type: i1.QdSearchService }, { type: i2.QdSectionToolbarActionService }, { type: i3.QdFilterService }, { type: i0.ElementRef }], propDecorators: { config: [{
175
+ }], ctorParameters: () => [{ type: i1.QdSearchService }, { type: i2.QdSectionToolbarActionService }, { type: i3.QdFilterService }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }], propDecorators: { config: [{
171
176
  type: Input
172
177
  }], searchQueryStringOutput: [{
173
178
  type: Output
@@ -182,4 +187,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
182
187
  }], filterValueChangeOutput: [{
183
188
  type: Output
184
189
  }] } });
185
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3FkLXVpL3NyYy9saWIvc2VjdGlvbi9zZWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYnMvcWQtdWkvc3JjL2xpYi9zZWN0aW9uL3NlY3Rpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFJTCxNQUFNLEVBRU4saUJBQWlCLEVBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxFQUFFLElBQUksSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWxDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUcxRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFcEUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDMUYsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7Ozs7Ozs7QUFFbkY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FvREc7QUFZSCxNQUFNLE9BQU8sa0JBQWtCO0lBK0NWO0lBQ0E7SUFDQTtJQUNBO0lBakRuQjs7T0FFRztJQUNNLE1BQU0sR0FBb0IsRUFBRSxDQUFDO0lBRXRDOzs7T0FHRztJQUNPLHVCQUF1QixHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7SUFFL0Q7OztPQUdHO0lBQ08sb0JBQW9CLEdBQUcsSUFBSSxZQUFZLEVBQXdCLENBQUM7SUFFMUU7Ozs7T0FJRztJQUNPLFlBQVksR0FBRyxJQUFJLFlBQVksRUFBOEIsQ0FBQztJQUV4RTs7O09BR0c7SUFDTyx1QkFBdUIsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lB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c0JBQTdCLE1BQU07Z0JBT0csWUFBWTtzQkFBckIsTUFBTTtnQkFNRyx1QkFBdUI7c0JBQWhDLE1BQU07Z0JBTUcsb0JBQW9CO3NCQUE3QixNQUFNO2dCQUtHLHVCQUF1QjtzQkFBaEMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdjQgYXMgdXVpZCB9IGZyb20gJ3V1aWQnO1xuXG5pbXBvcnQgeyBRZEZpbHRlclNlcnZpY2UgfSBmcm9tICcuLi9maWx0ZXIvZmlsdGVyLXNlcnZpY2UvZmlsdGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgUWRGaWx0ZXJQb3N0Qm9keURhdGEgfSBmcm9tICcuLi9maWx0ZXIvbW9kZWwvZmlsdGVyLXBvc3QtYm9keS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUWRTZWFyY2hQb3N0Qm9keURhdGEgfSBmcm9tICcuLi9zZWFyY2gvbW9kZWwvc2VhcmNoLXBvc3QtYm9keSc7XG5pbXBvcnQgeyBRZFNlYXJjaFNlcnZpY2UgfSBmcm9tICcuLi9zZWFyY2gvc2VydmljZXMvc2VhcmNoLnNlcnZpY2UnO1xuaW1wb3J0IHsgUWRTZWN0aW9uQWN0aW9uVHlwZSwgUWRTZWN0aW9uQ29uZmlnIH0gZnJvbSAnLi9tb2RlbC9zZWN0aW9uLWNvbmZpZy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUWRTZWN0aW9uVG9vbGJhckFjdGlvblNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3NlY3Rpb24tdG9vbGJhci1hY3Rpb24uc2VydmljZSc7XG5pbXBvcnQgeyBRZFRvb2xiYXJDb21wb25lbnRzU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvdG9vbGJhci1jb21wb25lbnRzLnNlcnZpY2UnO1xuXG4vKipcbiAqICoqUWRTZWN0aW9uQ29tcG9uZW50KiogaXMgYSBmbGV4aWJsZSBjb250YWluZXIgcGF0dGVybiBmb3Igb3JnYW5pemluZyBVSSBlbGVtZW50cyBsaWtlIHRhYmxlcyBvciBmb3Jtcy5cbiAqIEl0IGlzIGEgcGFydCBvZiB0aGUgKipRdWFkcmVsIExheW91dCBTeXN0ZW0gKFFMUykqKiBhbmQgc3VwcG9ydHMgcmVzcG9uc2l2ZSBkZXNpZ24gYW5kIGluY2x1ZGVzIGJ1aWx0LWluIGZlYXR1cmVzIGZvciBhY3Rpb25zLCBzZWFyY2gsIGFuZCBmaWx0ZXJpbmcuXG4gKlxuICogIyMjIyAqKkZlYXR1cmVzKipcbiAqXG4gKiAtICoqQ3VzdG9taXphYmxlKio6IEZ1bGx5IGNvbmZpZ3VyYWJsZSB3aXRoIHRoZSBgUWRTZWN0aW9uQ29uZmlnYCBBUEkuXG4gKiAtICoqVG9vbGJhciBJbnRlZ3JhdGlvbioqOiBBZGQgYWN0aW9ucywgc2VhcmNoLCBhbmQgZmlsdGVycyBkaXJlY3RseSB0byB0aGUgdG9vbGJhci5cbiAqIC0gKipBY3Rpb24gTWFuYWdlbWVudCoqOiBVc2UgcHJlZGVmaW5lZCBvciBjdXN0b20gYWN0aW9ucyBmb3IgdXNlciBpbnRlcmFjdGlvbnMuXG4gKiAtICoqU2VhcmNoIGFuZCBGaWx0ZXIqKjogSW1wcm92ZSBkYXRhIHByZXNlbnRhdGlvbiB3aXRoIGludGVncmF0ZWQgc2VhcmNoIGFuZCBmaWx0ZXJpbmcuXG4gKlxuICogIyMjIyAqKkludGVyYWN0aW9ucyoqXG4gKlxuICogLSAqKkFjdGlvbnMqKjogRGVmaW5lIGFjdGlvbnMgd2l0aCBjdXN0b20gbGFiZWxzLCBpY29ucywgYW5kIGhhbmRsZXJzLlxuICogLSAqKlNlYXJjaCoqOiBBZGQgYSBmaWVsZCB0byBzZWFyY2ggcXVlcmllcyBhbmQgcmVzdWx0cy5cbiAqIC0gKipGaWx0ZXIqKjogVXNlIGZpbHRlcnMgdG8gcmVmaW5lIHRoZSBzZWN0aW9u4oCZcyBkaXNwbGF5ZWQgZGF0YS5cbiAqXG4gKiAjIyMjICoqVG9vbGJhciBmb3IgSW50ZXJhY3Rpb24qKlxuICpcbiAqIFRoZSAqKlFkU2VjdGlvbioqIHN1cHBvcnRzIHRvb2xiYXIgdG9vbHMgdGhhdCBpbnRlcmFjdCBkaXJlY3RseSB3aXRoIGl0cyBjb250ZW50LlxuICpcbiAqIC0gVG9vbHMgbGlrZSAqKlFkRmlsdGVyKiogYW5kICoqUWRTZWFyY2gqKiBjYW4gZmlsdGVyIG9yIHNlYXJjaCBhICoqUWRUYWJsZSoqIGR5bmFtaWNhbGx5LlxuICogLSBVc2UgZGlyZWN0aXZlcyBzdWNoIGFzIENvbm5lY3RUb0ZpbHRlciwgQ29ubmVjdFRvU2VhcmNoLCBDb25uZWN0VG9Db250ZXh0IG9uIHRoZSB0YXJnZXQgY29tcG9uZW50IHRvIGVuYWJsZSB0aGlzIGludGVyYWN0aW9uLlxuICogLSBUaGVzZSBjb25uZWN0aW9ucyBlbnN1cmUgc21vb3RoIGNvbW11bmljYXRpb24gYmV0d2VlbiB0aGUgdG9vbGJhciBhbmQgdGhlIHNlY3Rpb24gY29udGVudC5cbiAqIC0gQW5kIG11Y2ggbW9yZS4uLlxuICpcbiAqICMjIyMgKipDb250ZW50IFVzYWdlIFJ1bGVzKipcbiAqXG4gKiBFYWNoICoqUWRTZWN0aW9uKiogc2hvdWxkIGNvbnRhaW4gKipvbmx5IG9uZSB0eXBlIG9mIGNvbnRlbnQqKi5cbiAqIEZvciBpbnN0YW5jZTpcbiAqIC0gVXNlIGEgKipRZFRhYmxlKiogb3IgKipRZEZvcm0qKiBjb21wb25lbnRzIHdpdGhpbiBhICoqUWRTZWN0aW9uKiosIGJ1dCBub3QgYm90aCBhdCB0aGUgc2FtZSB0aW1lLlxuICogLSBGb3IgbXVsdGlwbGUgY29udGVudCB0eXBlcywgY3JlYXRlIHNlcGFyYXRlIGluc3RhbmNlcyBvZiAqKlFkU2VjdGlvbkNvbXBvbmVudCoqLlxuICpcbiAqIFRoaXMgZW5zdXJlcyBjbGVhbiBkZXNpZ24gYW5kIHNlcGFyYXRpb24gb2YgY29uY2VybnMgaW4geW91ciBVSS5cbiAqXG4gKiAjIyMjICoqVXNhZ2UqKlxuICpcbiAqIGBgYHR5cGVzY3JpcHRcbiAqIEBDb21wb25lbnQoe1xuICogICBzZWxlY3RvcjogJ2FwcC1teS1zZWN0aW9uJyxcbiAqICAgdGVtcGxhdGU6IGBcbiAqICAgICA8cWQtc2VjdGlvbiBbY29uZmlnXT1cInNlY3Rpb25Db25maWdcIj5cbiAqICAgICAgIDwhLS0gWW91ciBjb250ZW50IGhlcmUgLS0+XG4gKiAgICAgPC9xZC1zZWN0aW9uPlxuICogICBgXG4gKiB9KVxuICogZXhwb3J0IGNsYXNzIE15U2VjdGlvbkNvbXBvbmVudCB7XG4gKiAgIHNlY3Rpb25Db25maWc6IFFkU2VjdGlvbkNvbmZpZyA9IHtcbiAqICAgICAvLyBDb25maWd1cmF0aW9uIG9wdGlvbnMgaGVyZVxuICogICB9O1xuICogfVxuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3FkLXNlY3Rpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VjdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlY3Rpb24uY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbUWRTZWN0aW9uVG9vbGJhckFjdGlvblNlcnZpY2UsIFFkU2VhcmNoU2VydmljZSwgUWRUb29sYmFyQ29tcG9uZW50c1NlcnZpY2VdLFxuICBob3N0OiB7XG4gICAgY2xhc3M6ICdxZC1zZWN0aW9uJyxcbiAgICAnW2NsYXNzLm5vLWhvcml6b250YWwtcGFkZGluZy1tb2JpbGVdJzogJ25vSG9yaXpvbnRhbFBhZGRpbmdNb2JpbGUnXG4gIH0sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgUWRTZWN0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gIC8qKlxuICAgKiBUaGUgY29uZmlndXJhdGlvbiBvZiB0aGUgc2VjdGlvbi5cbiAgICovXG4gIEBJbnB1dCgpIGNvbmZpZzogUWRTZWN0aW9uQ29uZmlnID0ge307XG5cbiAgLyoqXG4gICAqIEVtaXRzIGFuIGV2ZW50IHdoZW4gdGhlIHNlYXJjaCBmdW5jdGlvbmFsaXR5IGludGVncmF0ZWQgaW4gdGhlIHRvb2xiYXIgaGFzIGJlZW4gdHJpZ2dlcmVkLiA8YnIgLz5cbiAgICogUmV0dXJuIHZhbHVlIGlzIHRoZSBxdWVyeSBzdHJpbmcgb2YgdGhlIHNlYXJjaC5cbiAgICovXG4gIEBPdXRwdXQoKSBzZWFyY2hRdWVyeVN0cmluZ091dHB1dCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIC8qKlxuICAgKiBFbWl0cyBhbiBldmVudCB3aGVuIHRoZSBzZWFyY2ggZnVuY3Rpb25hbGl0eSBpbnRlZ3JhdGVkIGluIHRoZSB0b29sYmFyIGhhcyBiZWVuIHRyaWdnZXJlZC4gPGJyIC8+XG4gICAqIFJldHVybiB2YWx1ZSBpcyB0aGUgcmVzdWx0IG9iamVjdCBvZiB0aGUgc2VhcmNoLlxuICAgKi9cbiAgQE91dHB1dCgpIHNlYXJjaFBvc3RCb2R5T3V0cHV0ID0gbmV3IEV2ZW50RW1pdHRlcjxRZFNlYXJjaFBvc3RCb2R5RGF0YT4oKTtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIFNlbmRzIGFuIGV2ZW50IHdoZW4gdGhlIHRvb2xiYXIgYWN0aW9uIGJ1dHRvbiBpcyBjbGlja2VkIG9yIHRhcHBlZC5cbiAgICpcbiAgICogVGhlIGV2ZW50IGluY2x1ZGVzIHRoZSBhY3Rpb24gdHlwZSBvciBgbnVsbGAgaWYgbm8gc3BlY2lmaWMgYWN0aW9uIHR5cGUgaXMgZGVmaW5lZC5cbiAgICovXG4gIEBPdXRwdXQoKSBhY3Rpb25PdXRwdXQgPSBuZXcgRXZlbnRFbWl0dGVyPFFkU2VjdGlvbkFjdGlvblR5cGUgfCBudWxsPigpO1xuXG4gIC8qKlxuICAgKiBFbWl0cyBldmVudCBvbiBjbGljay90YXAgb2YgdGhlIGZpbHRlci9yZXNldCBidXR0b24gb2YgdGhlIGZpbHRlciBvciBvbiBkZWxldGlvbiBvZiBhbiBhY3RpdmUgaXRlbS4gPGJyIC8+XG4gICAqIFJldHVybiB2YWx1ZSBpcyB0aGUgcXVlcnkgc3RyaW5nIG9mIHRoZSBmaWx0ZXIuIFRoZSBmaWx0ZXIgaXMgaW50ZWdyYXRlZCBpbiB0aGUgdG9vbGJhci5cbiAgICovXG4gIEBPdXRwdXQoKSBmaWx0ZXJRdWVyeVN0cmluZ091dHB1dCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIC8qKlxuICAgKiBFbWl0cyBldmVudCBvbiBjbGljay90YXAgb2YgdGhlIGZpbHRlci9yZXNldCBidXR0b24gb2YgdGhlIGZpbHRlciBvciBvbiBkZWxldGlvbiBvZiBhbiBhY3RpdmUgaXRlbS4gPGJyIC8+XG4gICAqIFJldHVybiB2YWx1ZSBpcyB0aGUgcmVzdWx0IG9iamVjdCBvZiB0aGUgZmlsdGVyLiBUaGUgZmlsdGVyIGlzIGludGVncmF0ZWQgaW4gdGhlIHRvb2xiYXIuXG4gICAqL1xuICBAT3V0cHV0KCkgZmlsdGVyUG9zdEJvZHlPdXRwdXQgPSBuZXcgRXZlbnRFbWl0dGVyPFFkRmlsdGVyUG9zdEJvZHlEYXRhPigpO1xuXG4gIC8qKlxuICAgKiBFbWl0cyBldmVudCB3aGVuIHRoZSB2YWx1ZXMgb2YgdGhlIGZpbHRlciBjaGFuZ2UuIFJldHVybiB2YWx1ZSBtYXRjaGVzIHRoZSBjdXJyZW50IG9iamVjdCBvZiB0aGUgZmlsdGVyLlxuICAgKi9cbiAgQE91dHB1dCgpIGZpbHRlclZhbHVlQ2hhbmdlT3V0cHV0ID0gbmV3IEV2ZW50RW1pdHRlcjxRZEZpbHRlclBvc3RCb2R5RGF0YT4oKTtcblxuICBub0hvcml6b250YWxQYWRkaW5nTW9iaWxlID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBfb3V0cHV0U3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNlYXJjaFNlcnZpY2U6IFFkU2VhcmNoU2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFjdGlvblNlcnZpY2U6IFFkU2VjdGlvblRvb2xiYXJBY3Rpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZmlsdGVyU2VydmljZTogUWRGaWx0ZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZlxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpYmVGb3JPdXRwdXRzKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5ub0hvcml6b250YWxQYWRkaW5nTW9iaWxlID0gISF0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKFxuICAgICAgJ1tkYXRhLXFkLW5vLWhvcml6b250YWwtcGFkZGluZy1zbWFsbF0nXG4gICAgKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snY29uZmlnJ10gJiYgIWNoYW5nZXNbJ2NvbmZpZyddLmZpcnN0Q2hhbmdlKSB7XG4gICAgICB0aGlzLnVuc3Vic2NyaWJlT3V0cHV0U3Vic2NyaXB0aW9ucygpO1xuICAgICAgdGhpcy5zdWJzY3JpYmVGb3JPdXRwdXRzKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy51bnN1YnNjcmliZU91dHB1dFN1YnNjcmlwdGlvbnMoKTtcbiAgfVxuXG4gIHByaXZhdGUgc3Vic2NyaWJlRm9yT3V0cHV0cygpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmliZUZvclNlYXJjaE91dHB1dHMoKTtcbiAgICB0aGlzLnN1YnNjcmliZUZvckFjdGlvbk91dHB1dCgpO1xuICAgIHRoaXMuc3Vic2NyaWJlRm9yRmlsdGVyT3V0cHV0cygpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdWJzY3JpYmVGb3JTZWFyY2hPdXRwdXRzKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5jb25maWcuc2VhcmNoKSByZXR1cm47XG5cbiAgICB0aGlzLl9vdXRwdXRTdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLnNlYXJjaFNlcnZpY2Uuc2VhcmNoUXVlcnlTdHJpbmckLnN1YnNjcmliZShxdWVyeVN0cmluZyA9PiB0aGlzLnNlYXJjaFF1ZXJ5U3RyaW5nT3V0cHV0LmVtaXQocXVlcnlTdHJpbmcpKVxuICAgICk7XG5cbiAgICB0aGlzLl9vdXRwdXRTdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLnNlYXJjaFNlcnZpY2Uuc2VhcmNoUG9zdEJvZHkkLnN1YnNjcmliZShwb3N0Qm9keSA9PiB0aGlzLnNlYXJjaFBvc3RCb2R5T3V0cHV0LmVtaXQocG9zdEJvZHkpKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHN1YnNjcmliZUZvckFjdGlvbk91dHB1dCgpOiB2b2lkIHtcbiAgICB0aGlzLl9vdXRwdXRTdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLmFjdGlvblNlcnZpY2UuYWN0aW9uJC5zdWJzY3JpYmUoKHR5cGU/KSA9PiB0aGlzLmFjdGlvbk91dHB1dC5lbWl0KHR5cGUgfHwgbnVsbCkpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgc3Vic2NyaWJlRm9yRmlsdGVyT3V0cHV0cygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuY29uZmlnLmZpbHRlcikgcmV0dXJuO1xuXG4gICAgaWYgKCF0aGlzLmNvbmZpZy5maWx0ZXIudWlkKSB0aGlzLmNvbmZpZy5maWx0ZXIudWlkID0gdXVpZCgpO1xuXG4gICAgdGhpcy5fb3V0cHV0U3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgdGhpcy5maWx0ZXJTZXJ2aWNlXG4gICAgICAgIC5nZXRRdWVyeVN0cmluZyQodGhpcy5jb25maWcuZmlsdGVyLnVpZClcbiAgICAgICAgLnN1YnNjcmliZShxdWVyeVN0cmluZyA9PiB0aGlzLmZpbHRlclF1ZXJ5U3RyaW5nT3V0cHV0LmVtaXQocXVlcnlTdHJpbmcpKVxuICAgICk7XG5cbiAgICB0aGlzLl9vdXRwdXRTdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLmZpbHRlclNlcnZpY2VcbiAgICAgICAgLmdldFBvc3RCb2R5JCh0aGlzLmNvbmZpZy5maWx0ZXIudWlkKVxuICAgICAgICAuc3Vic2NyaWJlKHBvc3RCb2R5ID0+IHRoaXMuZmlsdGVyUG9zdEJvZHlPdXRwdXQuZW1pdChwb3N0Qm9keSkpXG4gICAgKTtcblxuICAgIHRoaXMuX291dHB1dFN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMuZmlsdGVyU2VydmljZVxuICAgICAgICAuZ2V0Q3VycmVudFBvc3RCb2R5KHRoaXMuY29uZmlnLmZpbHRlci51aWQpXG4gICAgICAgIC5zdWJzY3JpYmUoZmlsdGVyVmFsdWUgPT4gdGhpcy5maWx0ZXJWYWx1ZUNoYW5nZU91dHB1dC5lbWl0KGZpbHRlclZhbHVlKSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSB1bnN1YnNjcmliZU91dHB1dFN1YnNjcmlwdGlvbnMoKTogdm9pZCB7XG4gICAgdGhpcy5fb3V0cHV0U3Vic2NyaXB0aW9ucy5mb3JFYWNoKHN1YnNjcmlwdGlvbiA9PiBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSk7XG5cbiAgICB0aGlzLl9vdXRwdXRTdWJzY3JpcHRpb25zID0gW107XG4gIH1cbn1cbiIsIjxzZWN0aW9uPlxuICA8cWQtc2VjdGlvbi10b29sYmFyIFtjbGFzc05hbWVdPVwiJ3FkLXNlY3Rpb25fX3Rvb2xiYXInXCIgW2NvbmZpZ109XCJjb25maWdcIj48L3FkLXNlY3Rpb24tdG9vbGJhcj5cblxuICA8ZGl2ICpuZ0lmPVwiIWNvbmZpZy5jb2xsYXBzZT8uaXNDb250ZW50SGlkZGVuXCIgY2xhc3M9XCJxZC1zZWN0aW9uX19jb250ZW50XCI+PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PjwvZGl2PlxuPC9zZWN0aW9uPlxuIl19
190
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL3FkLXVpL3NyYy9saWIvc2VjdGlvbi9zZWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2xpYnMvcWQtdWkvc3JjL2xpYi9zZWN0aW9uL3NlY3Rpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBSUwsTUFBTSxFQUVOLGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsRUFBRSxJQUFJLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVsQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFHMUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRXBFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzFGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOzs7Ozs7O0FBRW5GOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0RHO0FBWUgsTUFBTSxPQUFPLGtCQUFrQjtJQStDVjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBbERuQjs7T0FFRztJQUNNLE1BQU0sR0FBb0IsRUFBRSxDQUFDO0lBRXRDOzs7T0FHRztJQUNPLHVCQUF1QixHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7SUFFL0Q7OztPQUdHO0lBQ08sb0JBQW9CLEdBQUcsSUFBSSxZQUFZLEVBQXdCLENBQUM7SUFFMUU7Ozs7T0FJRztJQUNPLFlBQVksR0FBRyxJQUFJLFlBQVksRUFBOEIsQ0FBQztJQUV4RTs7O09BR0c7SUFDTyx1QkFBdUIsR0FBRyxJQUFJ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QUUsZUFBZSxFQUFFLDBCQUEwQixDQUFDLFFBQ2pGO3dCQUNKLEtBQUssRUFBRSxZQUFZO3dCQUNuQixzQ0FBc0MsRUFBRSwyQkFBMkI7cUJBQ3BFLGlCQUNjLGlCQUFpQixDQUFDLElBQUk7dU5BTTVCLE1BQU07c0JBQWQsS0FBSztnQkFNSSx1QkFBdUI7c0JBQWhDLE1BQU07Z0JBTUcsb0JBQW9CO3NCQUE3QixNQUFNO2dCQU9HLFlBQVk7c0JBQXJCLE1BQU07Z0JBTUcsdUJBQXVCO3NCQUFoQyxNQUFNO2dCQU1HLG9CQUFvQjtzQkFBN0IsTUFBTTtnQkFLRyx1QkFBdUI7c0JBQWhDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB2NCBhcyB1dWlkIH0gZnJvbSAndXVpZCc7XG5cbmltcG9ydCB7IFFkRmlsdGVyU2VydmljZSB9IGZyb20gJy4uL2ZpbHRlci9maWx0ZXItc2VydmljZS9maWx0ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBRZEZpbHRlclBvc3RCb2R5RGF0YSB9IGZyb20gJy4uL2ZpbHRlci9tb2RlbC9maWx0ZXItcG9zdC1ib2R5LmludGVyZmFjZSc7XG5pbXBvcnQgeyBRZFNlYXJjaFBvc3RCb2R5RGF0YSB9IGZyb20gJy4uL3NlYXJjaC9tb2RlbC9zZWFyY2gtcG9zdC1ib2R5JztcbmltcG9ydCB7IFFkU2VhcmNoU2VydmljZSB9IGZyb20gJy4uL3NlYXJjaC9zZXJ2aWNlcy9zZWFyY2guc2VydmljZSc7XG5pbXBvcnQgeyBRZFNlY3Rpb25BY3Rpb25UeXBlLCBRZFNlY3Rpb25Db25maWcgfSBmcm9tICcuL21vZGVsL3NlY3Rpb24tY29uZmlnLmludGVyZmFjZSc7XG5pbXBvcnQgeyBRZFNlY3Rpb25Ub29sYmFyQWN0aW9uU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvc2VjdGlvbi10b29sYmFyLWFjdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFFkVG9vbGJhckNvbXBvbmVudHNTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy90b29sYmFyLWNvbXBvbmVudHMuc2VydmljZSc7XG5cbi8qKlxuICogKipRZFNlY3Rpb25Db21wb25lbnQqKiBpcyBhIGZsZXhpYmxlIGNvbnRhaW5lciBwYXR0ZXJuIGZvciBvcmdhbml6aW5nIFVJIGVsZW1lbnRzIGxpa2UgdGFibGVzIG9yIGZvcm1zLlxuICogSXQgaXMgYSBwYXJ0IG9mIHRoZSAqKlF1YWRyZWwgTGF5b3V0IFN5c3RlbSAoUUxTKSoqIGFuZCBzdXBwb3J0cyByZXNwb25zaXZlIGRlc2lnbiBhbmQgaW5jbHVkZXMgYnVpbHQtaW4gZmVhdHVyZXMgZm9yIGFjdGlvbnMsIHNlYXJjaCwgYW5kIGZpbHRlcmluZy5cbiAqXG4gKiAjIyMjICoqRmVhdHVyZXMqKlxuICpcbiAqIC0gKipDdXN0b21pemFibGUqKjogRnVsbHkgY29uZmlndXJhYmxlIHdpdGggdGhlIGBRZFNlY3Rpb25Db25maWdgIEFQSS5cbiAqIC0gKipUb29sYmFyIEludGVncmF0aW9uKio6IEFkZCBhY3Rpb25zLCBzZWFyY2gsIGFuZCBmaWx0ZXJzIGRpcmVjdGx5IHRvIHRoZSB0b29sYmFyLlxuICogLSAqKkFjdGlvbiBNYW5hZ2VtZW50Kio6IFVzZSBwcmVkZWZpbmVkIG9yIGN1c3RvbSBhY3Rpb25zIGZvciB1c2VyIGludGVyYWN0aW9ucy5cbiAqIC0gKipTZWFyY2ggYW5kIEZpbHRlcioqOiBJbXByb3ZlIGRhdGEgcHJlc2VudGF0aW9uIHdpdGggaW50ZWdyYXRlZCBzZWFyY2ggYW5kIGZpbHRlcmluZy5cbiAqXG4gKiAjIyMjICoqSW50ZXJhY3Rpb25zKipcbiAqXG4gKiAtICoqQWN0aW9ucyoqOiBEZWZpbmUgYWN0aW9ucyB3aXRoIGN1c3RvbSBsYWJlbHMsIGljb25zLCBhbmQgaGFuZGxlcnMuXG4gKiAtICoqU2VhcmNoKio6IEFkZCBhIGZpZWxkIHRvIHNlYXJjaCBxdWVyaWVzIGFuZCByZXN1bHRzLlxuICogLSAqKkZpbHRlcioqOiBVc2UgZmlsdGVycyB0byByZWZpbmUgdGhlIHNlY3Rpb27igJlzIGRpc3BsYXllZCBkYXRhLlxuICpcbiAqICMjIyMgKipUb29sYmFyIGZvciBJbnRlcmFjdGlvbioqXG4gKlxuICogVGhlICoqUWRTZWN0aW9uKiogc3VwcG9ydHMgdG9vbGJhciB0b29scyB0aGF0IGludGVyYWN0IGRpcmVjdGx5IHdpdGggaXRzIGNvbnRlbnQuXG4gKlxuICogLSBUb29scyBsaWtlICoqUWRGaWx0ZXIqKiBhbmQgKipRZFNlYXJjaCoqIGNhbiBmaWx0ZXIgb3Igc2VhcmNoIGEgKipRZFRhYmxlKiogZHluYW1pY2FsbHkuXG4gKiAtIFVzZSBkaXJlY3RpdmVzIHN1Y2ggYXMgQ29ubmVjdFRvRmlsdGVyLCBDb25uZWN0VG9TZWFyY2gsIENvbm5lY3RUb0NvbnRleHQgb24gdGhlIHRhcmdldCBjb21wb25lbnQgdG8gZW5hYmxlIHRoaXMgaW50ZXJhY3Rpb24uXG4gKiAtIFRoZXNlIGNvbm5lY3Rpb25zIGVuc3VyZSBzbW9vdGggY29tbXVuaWNhdGlvbiBiZXR3ZWVuIHRoZSB0b29sYmFyIGFuZCB0aGUgc2VjdGlvbiBjb250ZW50LlxuICogLSBBbmQgbXVjaCBtb3JlLi4uXG4gKlxuICogIyMjIyAqKkNvbnRlbnQgVXNhZ2UgUnVsZXMqKlxuICpcbiAqIEVhY2ggKipRZFNlY3Rpb24qKiBzaG91bGQgY29udGFpbiAqKm9ubHkgb25lIHR5cGUgb2YgY29udGVudCoqLlxuICogRm9yIGluc3RhbmNlOlxuICogLSBVc2UgYSAqKlFkVGFibGUqKiBvciAqKlFkRm9ybSoqIGNvbXBvbmVudHMgd2l0aGluIGEgKipRZFNlY3Rpb24qKiwgYnV0IG5vdCBib3RoIGF0IHRoZSBzYW1lIHRpbWUuXG4gKiAtIEZvciBtdWx0aXBsZSBjb250ZW50IHR5cGVzLCBjcmVhdGUgc2VwYXJhdGUgaW5zdGFuY2VzIG9mICoqUWRTZWN0aW9uQ29tcG9uZW50KiouXG4gKlxuICogVGhpcyBlbnN1cmVzIGNsZWFuIGRlc2lnbiBhbmQgc2VwYXJhdGlvbiBvZiBjb25jZXJucyBpbiB5b3VyIFVJLlxuICpcbiAqICMjIyMgKipVc2FnZSoqXG4gKlxuICogYGBgdHlwZXNjcmlwdFxuICogQENvbXBvbmVudCh7XG4gKiAgIHNlbGVjdG9yOiAnYXBwLW15LXNlY3Rpb24nLFxuICogICB0ZW1wbGF0ZTogYFxuICogICAgIDxxZC1zZWN0aW9uIFtjb25maWddPVwic2VjdGlvbkNvbmZpZ1wiPlxuICogICAgICAgPCEtLSBZb3VyIGNvbnRlbnQgaGVyZSAtLT5cbiAqICAgICA8L3FkLXNlY3Rpb24+XG4gKiAgIGBcbiAqIH0pXG4gKiBleHBvcnQgY2xhc3MgTXlTZWN0aW9uQ29tcG9uZW50IHtcbiAqICAgc2VjdGlvbkNvbmZpZzogUWRTZWN0aW9uQ29uZmlnID0ge1xuICogICAgIC8vIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBoZXJlXG4gKiAgIH07XG4gKiB9XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncWQtc2VjdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWN0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2VjdGlvbi5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtRZFNlY3Rpb25Ub29sYmFyQWN0aW9uU2VydmljZSwgUWRTZWFyY2hTZXJ2aWNlLCBRZFRvb2xiYXJDb21wb25lbnRzU2VydmljZV0sXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ3FkLXNlY3Rpb24nLFxuICAgICdbY2xhc3Mubm8taG9yaXpvbnRhbC1wYWRkaW5nLW1vYmlsZV0nOiAnbm9Ib3Jpem9udGFsUGFkZGluZ01vYmlsZSdcbiAgfSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBRZFNlY3Rpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgLyoqXG4gICAqIFRoZSBjb25maWd1cmF0aW9uIG9mIHRoZSBzZWN0aW9uLlxuICAgKi9cbiAgQElucHV0KCkgY29uZmlnOiBRZFNlY3Rpb25Db25maWcgPSB7fTtcblxuICAvKipcbiAgICogRW1pdHMgYW4gZXZlbnQgd2hlbiB0aGUgc2VhcmNoIGZ1bmN0aW9uYWxpdHkgaW50ZWdyYXRlZCBpbiB0aGUgdG9vbGJhciBoYXMgYmVlbiB0cmlnZ2VyZWQuIDxiciAvPlxuICAgKiBSZXR1cm4gdmFsdWUgaXMgdGhlIHF1ZXJ5IHN0cmluZyBvZiB0aGUgc2VhcmNoLlxuICAgKi9cbiAgQE91dHB1dCgpIHNlYXJjaFF1ZXJ5U3RyaW5nT3V0cHV0ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgLyoqXG4gICAqIEVtaXRzIGFuIGV2ZW50IHdoZW4gdGhlIHNlYXJjaCBmdW5jdGlvbmFsaXR5IGludGVncmF0ZWQgaW4gdGhlIHRvb2xiYXIgaGFzIGJlZW4gdHJpZ2dlcmVkLiA8YnIgLz5cbiAgICogUmV0dXJuIHZhbHVlIGlzIHRoZSByZXN1bHQgb2JqZWN0IG9mIHRoZSBzZWFyY2guXG4gICAqL1xuICBAT3V0cHV0KCkgc2VhcmNoUG9zdEJvZHlPdXRwdXQgPSBuZXcgRXZlbnRFbWl0dGVyPFFkU2VhcmNoUG9zdEJvZHlEYXRhPigpO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gU2VuZHMgYW4gZXZlbnQgd2hlbiB0aGUgdG9vbGJhciBhY3Rpb24gYnV0dG9uIGlzIGNsaWNrZWQgb3IgdGFwcGVkLlxuICAgKlxuICAgKiBUaGUgZXZlbnQgaW5jbHVkZXMgdGhlIGFjdGlvbiB0eXBlIG9yIGBudWxsYCBpZiBubyBzcGVjaWZpYyBhY3Rpb24gdHlwZSBpcyBkZWZpbmVkLlxuICAgKi9cbiAgQE91dHB1dCgpIGFjdGlvbk91dHB1dCA9IG5ldyBFdmVudEVtaXR0ZXI8UWRTZWN0aW9uQWN0aW9uVHlwZSB8IG51bGw+KCk7XG5cbiAgLyoqXG4gICAqIEVtaXRzIGV2ZW50IG9uIGNsaWNrL3RhcCBvZiB0aGUgZmlsdGVyL3Jlc2V0IGJ1dHRvbiBvZiB0aGUgZmlsdGVyIG9yIG9uIGRlbGV0aW9uIG9mIGFuIGFjdGl2ZSBpdGVtLiA8YnIgLz5cbiAgICogUmV0dXJuIHZhbHVlIGlzIHRoZSBxdWVyeSBzdHJpbmcgb2YgdGhlIGZpbHRlci4gVGhlIGZpbHRlciBpcyBpbnRlZ3JhdGVkIGluIHRoZSB0b29sYmFyLlxuICAgKi9cbiAgQE91dHB1dCgpIGZpbHRlclF1ZXJ5U3RyaW5nT3V0cHV0ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgLyoqXG4gICAqIEVtaXRzIGV2ZW50IG9uIGNsaWNrL3RhcCBvZiB0aGUgZmlsdGVyL3Jlc2V0IGJ1dHRvbiBvZiB0aGUgZmlsdGVyIG9yIG9uIGRlbGV0aW9uIG9mIGFuIGFjdGl2ZSBpdGVtLiA8YnIgLz5cbiAgICogUmV0dXJuIHZhbHVlIGlzIHRoZSByZXN1bHQgb2JqZWN0IG9mIHRoZSBmaWx0ZXIuIFRoZSBmaWx0ZXIgaXMgaW50ZWdyYXRlZCBpbiB0aGUgdG9vbGJhci5cbiAgICovXG4gIEBPdXRwdXQoKSBmaWx0ZXJQb3N0Qm9keU91dHB1dCA9IG5ldyBFdmVudEVtaXR0ZXI8UWRGaWx0ZXJQb3N0Qm9keURhdGE+KCk7XG5cbiAgLyoqXG4gICAqIEVtaXRzIGV2ZW50IHdoZW4gdGhlIHZhbHVlcyBvZiB0aGUgZmlsdGVyIGNoYW5nZS4gUmV0dXJuIHZhbHVlIG1hdGNoZXMgdGhlIGN1cnJlbnQgb2JqZWN0IG9mIHRoZSBmaWx0ZXIuXG4gICAqL1xuICBAT3V0cHV0KCkgZmlsdGVyVmFsdWVDaGFuZ2VPdXRwdXQgPSBuZXcgRXZlbnRFbWl0dGVyPFFkRmlsdGVyUG9zdEJvZHlEYXRhPigpO1xuXG4gIG5vSG9yaXpvbnRhbFBhZGRpbmdNb2JpbGUgPSBmYWxzZTtcblxuICBwcml2YXRlIF9vdXRwdXRTdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2VhcmNoU2VydmljZTogUWRTZWFyY2hTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYWN0aW9uU2VydmljZTogUWRTZWN0aW9uVG9vbGJhckFjdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBmaWx0ZXJTZXJ2aWNlOiBRZEZpbHRlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpYmVGb3JPdXRwdXRzKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XG4gICAgICB0aGlzLm5vSG9yaXpvbnRhbFBhZGRpbmdNb2JpbGUgPSAhIXRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAgICdbZGF0YS1xZC1uby1ob3Jpem9udGFsLXBhZGRpbmctc21hbGxdJ1xuICAgICAgKTtcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlc1snY29uZmlnJ10gJiYgIWNoYW5nZXNbJ2NvbmZpZyddLmZpcnN0Q2hhbmdlKSB7XG4gICAgICB0aGlzLnVuc3Vic2NyaWJlT3V0cHV0U3Vic2NyaXB0aW9ucygpO1xuICAgICAgdGhpcy5zdWJzY3JpYmVGb3JPdXRwdXRzKCk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy51bnN1YnNjcmliZU91dHB1dFN1YnNjcmlwdGlvbnMoKTtcbiAgfVxuXG4gIHByaXZhdGUgc3Vic2NyaWJlRm9yT3V0cHV0cygpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmliZUZvclNlYXJjaE91dHB1dHMoKTtcbiAgICB0aGlzLnN1YnNjcmliZUZvckFjdGlvbk91dHB1dCgpO1xuICAgIHRoaXMuc3Vic2NyaWJlRm9yRmlsdGVyT3V0cHV0cygpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdWJzY3JpYmVGb3JTZWFyY2hPdXRwdXRzKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5jb25maWcuc2VhcmNoKSByZXR1cm47XG5cbiAgICB0aGlzLl9vdXRwdXRTdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLnNlYXJjaFNlcnZpY2Uuc2VhcmNoUXVlcnlTdHJpbmckLnN1YnNjcmliZShxdWVyeVN0cmluZyA9PiB0aGlzLnNlYXJjaFF1ZXJ5U3RyaW5nT3V0cHV0LmVtaXQocXVlcnlTdHJpbmcpKVxuICAgICk7XG5cbiAgICB0aGlzLl9vdXRwdXRTdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLnNlYXJjaFNlcnZpY2Uuc2VhcmNoUG9zdEJvZHkkLnN1YnNjcmliZShwb3N0Qm9keSA9PiB0aGlzLnNlYXJjaFBvc3RCb2R5T3V0cHV0LmVtaXQocG9zdEJvZHkpKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHN1YnNjcmliZUZvckFjdGlvbk91dHB1dCgpOiB2b2lkIHtcbiAgICB0aGlzLl9vdXRwdXRTdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLmFjdGlvblNlcnZpY2UuYWN0aW9uJC5zdWJzY3JpYmUoKHR5cGU/KSA9PiB0aGlzLmFjdGlvbk91dHB1dC5lbWl0KHR5cGUgfHwgbnVsbCkpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgc3Vic2NyaWJlRm9yRmlsdGVyT3V0cHV0cygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuY29uZmlnLmZpbHRlcikgcmV0dXJuO1xuXG4gICAgaWYgKCF0aGlzLmNvbmZpZy5maWx0ZXIudWlkKSB0aGlzLmNvbmZpZy5maWx0ZXIudWlkID0gdXVpZCgpO1xuXG4gICAgdGhpcy5fb3V0cHV0U3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgdGhpcy5maWx0ZXJTZXJ2aWNlXG4gICAgICAgIC5nZXRRdWVyeVN0cmluZyQodGhpcy5jb25maWcuZmlsdGVyLnVpZClcbiAgICAgICAgLnN1YnNjcmliZShxdWVyeVN0cmluZyA9PiB0aGlzLmZpbHRlclF1ZXJ5U3RyaW5nT3V0cHV0LmVtaXQocXVlcnlTdHJpbmcpKVxuICAgICk7XG5cbiAgICB0aGlzLl9vdXRwdXRTdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLmZpbHRlclNlcnZpY2VcbiAgICAgICAgLmdldFBvc3RCb2R5JCh0aGlzLmNvbmZpZy5maWx0ZXIudWlkKVxuICAgICAgICAuc3Vic2NyaWJlKHBvc3RCb2R5ID0+IHRoaXMuZmlsdGVyUG9zdEJvZHlPdXRwdXQuZW1pdChwb3N0Qm9keSkpXG4gICAgKTtcblxuICAgIHRoaXMuX291dHB1dFN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMuZmlsdGVyU2VydmljZVxuICAgICAgICAuZ2V0Q3VycmVudFBvc3RCb2R5KHRoaXMuY29uZmlnLmZpbHRlci51aWQpXG4gICAgICAgIC5zdWJzY3JpYmUoZmlsdGVyVmFsdWUgPT4gdGhpcy5maWx0ZXJWYWx1ZUNoYW5nZU91dHB1dC5lbWl0KGZpbHRlclZhbHVlKSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSB1bnN1YnNjcmliZU91dHB1dFN1YnNjcmlwdGlvbnMoKTogdm9pZCB7XG4gICAgdGhpcy5fb3V0cHV0U3Vic2NyaXB0aW9ucy5mb3JFYWNoKHN1YnNjcmlwdGlvbiA9PiBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSk7XG5cbiAgICB0aGlzLl9vdXRwdXRTdWJzY3JpcHRpb25zID0gW107XG4gIH1cbn1cbiIsIjxzZWN0aW9uPlxuICA8cWQtc2VjdGlvbi10b29sYmFyIFtjbGFzc05hbWVdPVwiJ3FkLXNlY3Rpb25fX3Rvb2xiYXInXCIgW2NvbmZpZ109XCJjb25maWdcIj48L3FkLXNlY3Rpb24tdG9vbGJhcj5cblxuICA8ZGl2ICpuZ0lmPVwiIWNvbmZpZy5jb2xsYXBzZT8uaXNDb250ZW50SGlkZGVuXCIgY2xhc3M9XCJxZC1zZWN0aW9uX19jb250ZW50XCI+PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PjwvZGl2PlxuPC9zZWN0aW9uPlxuIl19
@@ -8265,6 +8265,12 @@ class QdPushEventsService {
8265
8265
  if (!this._eventSource || this._eventSource.readyState === EventSource.CLOSED || reconnect)
8266
8266
  this._eventSource = new EventSourcePolyfill(url, options);
8267
8267
  this._eventSource.onerror = (err) => {
8268
+ const status = err?.status || err?.target?.status;
8269
+ if (status === 401) {
8270
+ this.logError('SSE connection unauthorized (401):', err);
8271
+ this._eventSource.close();
8272
+ return;
8273
+ }
8268
8274
  if (this._eventSource.readyState === EventSource.CLOSED)
8269
8275
  this.reconnect();
8270
8276
  this.logError('SSE connection error:', err);
@@ -31812,6 +31818,7 @@ class QdSectionComponent {
31812
31818
  actionService;
31813
31819
  filterService;
31814
31820
  elementRef;
31821
+ cdr;
31815
31822
  /**
31816
31823
  * The configuration of the section.
31817
31824
  */
@@ -31848,17 +31855,21 @@ class QdSectionComponent {
31848
31855
  filterValueChangeOutput = new EventEmitter();
31849
31856
  noHorizontalPaddingMobile = false;
31850
31857
  _outputSubscriptions = [];
31851
- constructor(searchService, actionService, filterService, elementRef) {
31858
+ constructor(searchService, actionService, filterService, elementRef, cdr) {
31852
31859
  this.searchService = searchService;
31853
31860
  this.actionService = actionService;
31854
31861
  this.filterService = filterService;
31855
31862
  this.elementRef = elementRef;
31863
+ this.cdr = cdr;
31856
31864
  }
31857
31865
  ngOnInit() {
31858
31866
  this.subscribeForOutputs();
31859
31867
  }
31860
31868
  ngAfterViewInit() {
31861
- this.noHorizontalPaddingMobile = !!this.elementRef.nativeElement.querySelector('[data-qd-no-horizontal-padding-small]');
31869
+ Promise.resolve().then(() => {
31870
+ this.noHorizontalPaddingMobile = !!this.elementRef.nativeElement.querySelector('[data-qd-no-horizontal-padding-small]');
31871
+ this.cdr.detectChanges();
31872
+ });
31862
31873
  }
31863
31874
  ngOnChanges(changes) {
31864
31875
  if (changes['config'] && !changes['config'].firstChange) {
@@ -31902,7 +31913,7 @@ class QdSectionComponent {
31902
31913
  this._outputSubscriptions.forEach(subscription => subscription.unsubscribe());
31903
31914
  this._outputSubscriptions = [];
31904
31915
  }
31905
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdSectionComponent, deps: [{ token: QdSearchService }, { token: QdSectionToolbarActionService }, { token: QdFilterService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
31916
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdSectionComponent, deps: [{ token: QdSearchService }, { token: QdSectionToolbarActionService }, { token: QdFilterService }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
31906
31917
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.9", type: QdSectionComponent, selector: "qd-section", inputs: { config: "config" }, outputs: { searchQueryStringOutput: "searchQueryStringOutput", searchPostBodyOutput: "searchPostBodyOutput", actionOutput: "actionOutput", filterQueryStringOutput: "filterQueryStringOutput", filterPostBodyOutput: "filterPostBodyOutput", filterValueChangeOutput: "filterValueChangeOutput" }, host: { properties: { "class.no-horizontal-padding-mobile": "noHorizontalPaddingMobile" }, classAttribute: "qd-section" }, providers: [QdSectionToolbarActionService, QdSearchService, QdToolbarComponentsService], usesOnChanges: true, ngImport: i0, template: "<section>\n <qd-section-toolbar [className]=\"'qd-section__toolbar'\" [config]=\"config\"></qd-section-toolbar>\n\n <div *ngIf=\"!config.collapse?.isContentHidden\" class=\"qd-section__content\"><ng-content></ng-content></div>\n</section>\n", styles: ["qd-section{display:block;padding:.9375rem 1.25rem 3.125rem;background-color:#efefef}@media (max-width: 599.98px){qd-section{padding:.9375rem .9375rem 3.125rem}qd-section.no-horizontal-padding-mobile{padding:.9375rem 0 3.125rem}qd-section.no-horizontal-padding-mobile qd-section-toolbar{margin:0 .9375rem .3125rem}}.qd-section{display:block}.qd-section:has(+.qd-section){border-bottom:rgb(213,213,213) solid .0625rem}@media (max-width: 959.98px){.qd-section{padding:.75rem}}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: QdSectionToolbarComponent, selector: "qd-section-toolbar", inputs: ["config"] }], encapsulation: i0.ViewEncapsulation.None });
31907
31918
  }
31908
31919
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: QdSectionComponent, decorators: [{
@@ -31911,7 +31922,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImpor
31911
31922
  class: 'qd-section',
31912
31923
  '[class.no-horizontal-padding-mobile]': 'noHorizontalPaddingMobile'
31913
31924
  }, encapsulation: ViewEncapsulation.None, template: "<section>\n <qd-section-toolbar [className]=\"'qd-section__toolbar'\" [config]=\"config\"></qd-section-toolbar>\n\n <div *ngIf=\"!config.collapse?.isContentHidden\" class=\"qd-section__content\"><ng-content></ng-content></div>\n</section>\n", styles: ["qd-section{display:block;padding:.9375rem 1.25rem 3.125rem;background-color:#efefef}@media (max-width: 599.98px){qd-section{padding:.9375rem .9375rem 3.125rem}qd-section.no-horizontal-padding-mobile{padding:.9375rem 0 3.125rem}qd-section.no-horizontal-padding-mobile qd-section-toolbar{margin:0 .9375rem .3125rem}}.qd-section{display:block}.qd-section:has(+.qd-section){border-bottom:rgb(213,213,213) solid .0625rem}@media (max-width: 959.98px){.qd-section{padding:.75rem}}\n"] }]
31914
- }], ctorParameters: () => [{ type: QdSearchService }, { type: QdSectionToolbarActionService }, { type: QdFilterService }, { type: i0.ElementRef }], propDecorators: { config: [{
31925
+ }], ctorParameters: () => [{ type: QdSearchService }, { type: QdSectionToolbarActionService }, { type: QdFilterService }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }], propDecorators: { config: [{
31915
31926
  type: Input
31916
31927
  }], searchQueryStringOutput: [{
31917
31928
  type: Output