@dereekb/dbx-firebase 12.6.21 → 12.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/esm2022/lib/auth/login/login.email.form.component.mjs +1 -1
  2. package/esm2022/lib/development/development.directive.mjs +6 -5
  3. package/esm2022/lib/development/development.popup.content.component.mjs +7 -13
  4. package/esm2022/lib/model/modules/model/entities/model.entities.component.mjs +4 -6
  5. package/esm2022/lib/model/modules/model/entities/model.entities.entity.component.mjs +4 -7
  6. package/esm2022/lib/model/modules/model/entities/model.entities.widget.entity.debug.component.mjs +3 -6
  7. package/esm2022/lib/model/modules/model/model.types.view.directive.mjs +9 -9
  8. package/esm2022/lib/model/modules/store/store.collection.change.directive.mjs +6 -9
  9. package/esm2022/lib/model/modules/store/store.collection.directive.mjs +6 -10
  10. package/esm2022/lib/model/modules/store/store.collection.list.directive.mjs +9 -10
  11. package/esm2022/lib/model/modules/store/store.document.directive.mjs +6 -11
  12. package/esm2022/lib/model/modules/store/store.document.twoway.key.directive.mjs +5 -6
  13. package/esm2022/lib/model/modules/store/store.subcollection.directive.mjs +5 -9
  14. package/esm2022/lib/model/system/systemstate.document.store.accessor.mjs +1 -4
  15. package/esm2022/lib/modules/notification/store/notification.item.store.mjs +1 -1
  16. package/esm2022/lib/modules/storagefile/container/storagefile.upload.action.handler.directive.mjs +12 -19
  17. package/esm2022/lib/modules/storagefile/container/storagefile.upload.initialize.document.directive.mjs +7 -12
  18. package/esm2022/lib/modules/storagefile/container/storagefile.upload.store.directive.mjs +5 -10
  19. package/esm2022/lib/modules/storagefile/container/storagefile.upload.sync.directive.mjs +5 -13
  20. package/esm2022/lib/modules/storagefile/store/storagefile.upload.store.mjs +1 -1
  21. package/fesm2022/dereekb-dbx-firebase.mjs +62 -126
  22. package/fesm2022/dereekb-dbx-firebase.mjs.map +1 -1
  23. package/lib/auth/login/login.email.form.component.d.ts +1 -2
  24. package/lib/development/development.directive.d.ts +3 -3
  25. package/lib/development/development.popup.content.component.d.ts +2 -5
  26. package/lib/model/modules/model/entities/model.entities.component.d.ts +1 -3
  27. package/lib/model/modules/model/entities/model.entities.entity.component.d.ts +1 -3
  28. package/lib/model/modules/model/entities/model.entities.widget.entity.debug.component.d.ts +3 -4
  29. package/lib/model/modules/model/model.types.view.directive.d.ts +2 -4
  30. package/lib/model/modules/store/store.collection.change.directive.d.ts +2 -4
  31. package/lib/model/modules/store/store.collection.directive.d.ts +2 -4
  32. package/lib/model/modules/store/store.collection.list.directive.d.ts +1 -4
  33. package/lib/model/modules/store/store.document.directive.d.ts +2 -4
  34. package/lib/model/modules/store/store.document.twoway.key.directive.d.ts +1 -2
  35. package/lib/model/modules/store/store.subcollection.directive.d.ts +2 -4
  36. package/lib/model/system/systemstate.document.store.accessor.d.ts +1 -3
  37. package/lib/modules/notification/store/notification.item.store.d.ts +1 -2
  38. package/lib/modules/storagefile/container/storagefile.upload.action.handler.directive.d.ts +2 -8
  39. package/lib/modules/storagefile/container/storagefile.upload.initialize.document.directive.d.ts +1 -4
  40. package/lib/modules/storagefile/container/storagefile.upload.store.directive.d.ts +1 -5
  41. package/lib/modules/storagefile/container/storagefile.upload.sync.directive.d.ts +1 -6
  42. package/lib/modules/storagefile/store/storagefile.upload.store.d.ts +1 -2
  43. package/package.json +1 -1
@@ -24,4 +24,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
24
24
  standalone: true
25
25
  }]
26
26
  }] });
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uZW1haWwuZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9hdXRoL2xvZ2luL2xvZ2luLmVtYWlsLmZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDOUUsT0FBTyxFQUEyQiwyQkFBMkIsRUFBbUMsc0NBQXNDLEVBQUUsa0NBQWtDLEVBQUUsbUNBQW1DLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUc1USxPQUFPLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFDOzs7QUFrQnZDLE1BQU0sT0FBTyw2QkFBOEIsU0FBUSxzQ0FBNkY7SUFDckksT0FBTyxHQUEyQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FDakYsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7UUFDYixNQUFNLFNBQVMsR0FBRyxNQUFNLEVBQUUsU0FBUyxJQUFJLE9BQU8sQ0FBQztRQUMvQyxNQUFNLGNBQWMsR0FBRyxNQUFNLEVBQUUsY0FBYyxDQUFDO1FBRTlDLE1BQU0sTUFBTSxHQUF3QiwyQkFBMkIsQ0FBQyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsU0FBUyxLQUFLLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFDM0osT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQyxDQUFDLENBQ0gsQ0FBQzt3R0FUUyw2QkFBNkI7NEZBQTdCLDZCQUE2QixzRUFKN0IsK0JBQStCLEVBQUUsdUlBRGxDLG1DQUFtQzs7NEZBS2xDLDZCQUE2QjtrQkFSekMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUseUJBQXlCO29CQUNuQyxRQUFRLEVBQUUsa0NBQWtDO29CQUM1QyxPQUFPLEVBQUUsQ0FBQyxtQ0FBbUMsQ0FBQztvQkFDOUMsU0FBUyxFQUFFLCtCQUErQixFQUFFO29CQUM1QyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUZXh0UGFzc3dvcmRGaWVsZENvbmZpZywgdXNlcm5hbWVQYXNzd29yZExvZ2luRmllbGRzLCBEZWZhdWx0VXNlcm5hbWVMb2dpbkZpZWxkc1ZhbHVlLCBBYnN0cmFjdENvbmZpZ0FzeW5jRm9ybWx5Rm9ybURpcmVjdGl2ZSwgREJYX0ZPUk1MWV9GT1JNX0NPTVBPTkVOVF9URU1QTEFURSwgRGJ4Rm9ybWx5Rm9ybUNvbXBvbmVudEltcG9ydHNNb2R1bGUsIGRieEZvcm1seUZvcm1Db21wb25lbnRQcm92aWRlcnMgfSBmcm9tICdAZGVyZWVrYi9kYngtZm9ybSc7XG5pbXBvcnQgeyB0eXBlIE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyBGb3JtbHlGaWVsZENvbmZpZyB9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZUxvZ2luTW9kZSB9IGZyb20gJy4vbG9naW4nO1xuXG5leHBvcnQgdHlwZSBEYnhGaXJlYmFzZUVtYWlsRm9ybVZhbHVlID0gRGVmYXVsdFVzZXJuYW1lTG9naW5GaWVsZHNWYWx1ZTtcblxuZXhwb3J0IGludGVyZmFjZSBEYnhGaXJlYmFzZUVtYWlsRm9ybUNvbmZpZyB7XG4gIHJlYWRvbmx5IGxvZ2luTW9kZTogRGJ4RmlyZWJhc2VMb2dpbk1vZGU7XG4gIHJlYWRvbmx5IHBhc3N3b3JkQ29uZmlnPzogVGV4dFBhc3N3b3JkRmllbGRDb25maWc7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RieC1maXJlYmFzZS1lbWFpbC1mb3JtJyxcbiAgdGVtcGxhdGU6IERCWF9GT1JNTFlfRk9STV9DT01QT05FTlRfVEVNUExBVEUsXG4gIGltcG9ydHM6IFtEYnhGb3JtbHlGb3JtQ29tcG9uZW50SW1wb3J0c01vZHVsZV0sXG4gIHByb3ZpZGVyczogZGJ4Rm9ybWx5Rm9ybUNvbXBvbmVudFByb3ZpZGVycygpLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBEYnhGaXJlYmFzZUVtYWlsRm9ybUNvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0Q29uZmlnQXN5bmNGb3JtbHlGb3JtRGlyZWN0aXZlPERieEZpcmViYXNlRW1haWxGb3JtVmFsdWUsIERieEZpcmViYXNlRW1haWxGb3JtQ29uZmlnPiBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHJlYWRvbmx5IGZpZWxkcyQ6IE9ic2VydmFibGU8TWF5YmU8Rm9ybWx5RmllbGRDb25maWdbXT4+ID0gdGhpcy5jdXJyZW50Q29uZmlnJC5waXBlKFxuICAgIG1hcCgoY29uZmlnKSA9PiB7XG4gICAgICBjb25zdCBsb2dpbk1vZGUgPSBjb25maWc/LmxvZ2luTW9kZSA/PyAnbG9naW4nO1xuICAgICAgY29uc3QgcGFzc3dvcmRDb25maWcgPSBjb25maWc/LnBhc3N3b3JkQ29uZmlnO1xuXG4gICAgICBjb25zdCBmaWVsZHM6IEZvcm1seUZpZWxkQ29uZmlnW10gPSB1c2VybmFtZVBhc3N3b3JkTG9naW5GaWVsZHMoeyB1c2VybmFtZTogJ2VtYWlsJywgcGFzc3dvcmQ6IHBhc3N3b3JkQ29uZmlnLCB2ZXJpZnlQYXNzd29yZDogbG9naW5Nb2RlID09PSAncmVnaXN0ZXInIH0pO1xuICAgICAgcmV0dXJuIGZpZWxkcztcbiAgICB9KVxuICApO1xufVxuIl19
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uZW1haWwuZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9hdXRoL2xvZ2luL2xvZ2luLmVtYWlsLmZvcm0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkUsT0FBTyxFQUEyQiwyQkFBMkIsRUFBbUMsc0NBQXNDLEVBQUUsa0NBQWtDLEVBQUUsbUNBQW1DLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUc1USxPQUFPLEVBQUUsR0FBRyxFQUFjLE1BQU0sTUFBTSxDQUFDOzs7QUFrQnZDLE1BQU0sT0FBTyw2QkFBOEIsU0FBUSxzQ0FBNkY7SUFDckksT0FBTyxHQUEyQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FDakYsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7UUFDYixNQUFNLFNBQVMsR0FBRyxNQUFNLEVBQUUsU0FBUyxJQUFJLE9BQU8sQ0FBQztRQUMvQyxNQUFNLGNBQWMsR0FBRyxNQUFNLEVBQUUsY0FBYyxDQUFDO1FBRTlDLE1BQU0sTUFBTSxHQUF3QiwyQkFBMkIsQ0FBQyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsU0FBUyxLQUFLLFVBQVUsRUFBRSxDQUFDLENBQUM7UUFDM0osT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQyxDQUFDLENBQ0gsQ0FBQzt3R0FUUyw2QkFBNkI7NEZBQTdCLDZCQUE2QixzRUFKN0IsK0JBQStCLEVBQUUsdUlBRGxDLG1DQUFtQzs7NEZBS2xDLDZCQUE2QjtrQkFSekMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUseUJBQXlCO29CQUNuQyxRQUFRLEVBQUUsa0NBQWtDO29CQUM1QyxPQUFPLEVBQUUsQ0FBQyxtQ0FBbUMsQ0FBQztvQkFDOUMsU0FBUyxFQUFFLCtCQUErQixFQUFFO29CQUM1QyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGV4dFBhc3N3b3JkRmllbGRDb25maWcsIHVzZXJuYW1lUGFzc3dvcmRMb2dpbkZpZWxkcywgRGVmYXVsdFVzZXJuYW1lTG9naW5GaWVsZHNWYWx1ZSwgQWJzdHJhY3RDb25maWdBc3luY0Zvcm1seUZvcm1EaXJlY3RpdmUsIERCWF9GT1JNTFlfRk9STV9DT01QT05FTlRfVEVNUExBVEUsIERieEZvcm1seUZvcm1Db21wb25lbnRJbXBvcnRzTW9kdWxlLCBkYnhGb3JtbHlGb3JtQ29tcG9uZW50UHJvdmlkZXJzIH0gZnJvbSAnQGRlcmVla2IvZGJ4LWZvcm0nO1xuaW1wb3J0IHsgdHlwZSBNYXliZSB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgRm9ybWx5RmllbGRDb25maWcgfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7IG1hcCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VMb2dpbk1vZGUgfSBmcm9tICcuL2xvZ2luJztcblxuZXhwb3J0IHR5cGUgRGJ4RmlyZWJhc2VFbWFpbEZvcm1WYWx1ZSA9IERlZmF1bHRVc2VybmFtZUxvZ2luRmllbGRzVmFsdWU7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGJ4RmlyZWJhc2VFbWFpbEZvcm1Db25maWcge1xuICByZWFkb25seSBsb2dpbk1vZGU6IERieEZpcmViYXNlTG9naW5Nb2RlO1xuICByZWFkb25seSBwYXNzd29yZENvbmZpZz86IFRleHRQYXNzd29yZEZpZWxkQ29uZmlnO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkYngtZmlyZWJhc2UtZW1haWwtZm9ybScsXG4gIHRlbXBsYXRlOiBEQlhfRk9STUxZX0ZPUk1fQ09NUE9ORU5UX1RFTVBMQVRFLFxuICBpbXBvcnRzOiBbRGJ4Rm9ybWx5Rm9ybUNvbXBvbmVudEltcG9ydHNNb2R1bGVdLFxuICBwcm92aWRlcnM6IGRieEZvcm1seUZvcm1Db21wb25lbnRQcm92aWRlcnMoKSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgRGJ4RmlyZWJhc2VFbWFpbEZvcm1Db21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdENvbmZpZ0FzeW5jRm9ybWx5Rm9ybURpcmVjdGl2ZTxEYnhGaXJlYmFzZUVtYWlsRm9ybVZhbHVlLCBEYnhGaXJlYmFzZUVtYWlsRm9ybUNvbmZpZz4ge1xuICByZWFkb25seSBmaWVsZHMkOiBPYnNlcnZhYmxlPE1heWJlPEZvcm1seUZpZWxkQ29uZmlnW10+PiA9IHRoaXMuY3VycmVudENvbmZpZyQucGlwZShcbiAgICBtYXAoKGNvbmZpZykgPT4ge1xuICAgICAgY29uc3QgbG9naW5Nb2RlID0gY29uZmlnPy5sb2dpbk1vZGUgPz8gJ2xvZ2luJztcbiAgICAgIGNvbnN0IHBhc3N3b3JkQ29uZmlnID0gY29uZmlnPy5wYXNzd29yZENvbmZpZztcblxuICAgICAgY29uc3QgZmllbGRzOiBGb3JtbHlGaWVsZENvbmZpZ1tdID0gdXNlcm5hbWVQYXNzd29yZExvZ2luRmllbGRzKHsgdXNlcm5hbWU6ICdlbWFpbCcsIHBhc3N3b3JkOiBwYXNzd29yZENvbmZpZywgdmVyaWZ5UGFzc3dvcmQ6IGxvZ2luTW9kZSA9PT0gJ3JlZ2lzdGVyJyB9KTtcbiAgICAgIHJldHVybiBmaWVsZHM7XG4gICAgfSlcbiAgKTtcbn1cbiJdfQ==
@@ -3,6 +3,7 @@ import { MatSnackBar } from '@angular/material/snack-bar';
3
3
  import { DbxPopupService } from '@dereekb/dbx-web';
4
4
  import { DbxFirebaseDevelopmentPopupComponent } from './development.popup.component';
5
5
  import { DbxFirebaseDevelopmentService } from './development.service';
6
+ import { clean } from '@dereekb/dbx-core';
6
7
  import * as i0 from "@angular/core";
7
8
  /**
8
9
  * Directive for showing the development tools snackbar when the app opens up and listening for keybindings for opening the popup.
@@ -15,6 +16,9 @@ export class DbxFirebaseDevelopmentDirective {
15
16
  get enabled() {
16
17
  return this.dbxFirebaseDevelopmentService.enabled;
17
18
  }
19
+ constructor() {
20
+ clean(() => this.closePopup());
21
+ }
18
22
  handleKeyboardEvent(event) {
19
23
  if (this.enabled && event.shiftKey && event.altKey && event.code === 'KeyD') {
20
24
  this.togglePopup();
@@ -59,9 +63,6 @@ export class DbxFirebaseDevelopmentDirective {
59
63
  });
60
64
  }
61
65
  }
62
- ngOnDestroy() {
63
- this.closePopup();
64
- }
65
66
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseDevelopmentDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
66
67
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: DbxFirebaseDevelopmentDirective, isStandalone: true, selector: "[dbxFirebaseDevelopment]", host: { listeners: { "window:keydown": "handleKeyboardEvent($event)" } }, ngImport: i0 });
67
68
  }
@@ -71,8 +72,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
71
72
  selector: '[dbxFirebaseDevelopment]',
72
73
  standalone: true
73
74
  }]
74
- }], propDecorators: { handleKeyboardEvent: [{
75
+ }], ctorParameters: () => [], propDecorators: { handleKeyboardEvent: [{
75
76
  type: HostListener,
76
77
  args: ['window:keydown', ['$event']]
77
78
  }] } });
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2ZWxvcG1lbnQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvZGV2ZWxvcG1lbnQvZGV2ZWxvcG1lbnQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYSxZQUFZLEVBQWlCLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzFELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVuRCxPQUFPLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNyRixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFFdEU7O0dBRUc7QUFLSCxNQUFNLE9BQU8sK0JBQStCO0lBQ2pDLFlBQVksR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDdkMsV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNsQyw2QkFBNkIsR0FBRyxNQUFNLENBQUMsNkJBQTZCLENBQUMsQ0FBQztJQUUvRSxHQUFHLENBQTBCO0lBRTdCLElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLDZCQUE2QixDQUFDLE9BQU8sQ0FBQztJQUNwRCxDQUFDO0lBR0QsbUJBQW1CLENBQUMsS0FBb0I7UUFDdEMsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxRQUFRLElBQUksS0FBSyxDQUFDLE1BQU0sSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQzVFLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNuQixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDekIsQ0FBQztJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDYixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDcEIsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDbkIsQ0FBQztJQUNILENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNkLE1BQU0sR0FBRyxHQUFHLG9DQUFvQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDOUUsR0FBRyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUM5QixJQUFJLElBQUksQ0FBQyxHQUFHLEtBQUssR0FBRyxFQUFFLENBQUM7b0JBQ3JCLElBQUksQ0FBQyxHQUFHLEdBQUcsU0FBUyxDQUFDO2dCQUN2QixDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNqQixDQUFDO0lBQ0gsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLElBQUksQ0FBQyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNuQixDQUFDO0lBQ0gsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsV0FBVztpQkFDYixJQUFJLENBQUMsbUNBQW1DLEVBQUUsTUFBTSxFQUFFO2dCQUNqRCxrQkFBa0IsRUFBRSxRQUFRO2dCQUM1QixnQkFBZ0IsRUFBRSxRQUFRO2dCQUMxQixRQUFRLEVBQUUsQ0FBQyxHQUFHLElBQUk7YUFDbkIsQ0FBQztpQkFDRCxRQUFRLEVBQUU7aUJBQ1YsU0FBUyxDQUFDLEdBQUcsRUFBRTtnQkFDZCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbkIsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEIsQ0FBQzt3R0EvRFUsK0JBQStCOzRGQUEvQiwrQkFBK0I7OzRGQUEvQiwrQkFBK0I7a0JBSjNDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLDBCQUEwQjtvQkFDcEMsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOzhCQWFDLG1CQUFtQjtzQkFEbEIsWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9uRGVzdHJveSwgSG9zdExpc3RlbmVyLCBBZnRlclZpZXdJbml0LCBEaXJlY3RpdmUsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0U25hY2tCYXIgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zbmFjay1iYXInO1xuaW1wb3J0IHsgRGJ4UG9wdXBTZXJ2aWNlIH0gZnJvbSAnQGRlcmVla2IvZGJ4LXdlYic7XG5pbXBvcnQgeyBOZ1BvcG92ZXJSZWYgfSBmcm9tICduZy1vdmVybGF5LWNvbnRhaW5lcic7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZURldmVsb3BtZW50UG9wdXBDb21wb25lbnQgfSBmcm9tICcuL2RldmVsb3BtZW50LnBvcHVwLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZURldmVsb3BtZW50U2VydmljZSB9IGZyb20gJy4vZGV2ZWxvcG1lbnQuc2VydmljZSc7XG5cbi8qKlxuICogRGlyZWN0aXZlIGZvciBzaG93aW5nIHRoZSBkZXZlbG9wbWVudCB0b29scyBzbmFja2JhciB3aGVuIHRoZSBhcHAgb3BlbnMgdXAgYW5kIGxpc3RlbmluZyBmb3Iga2V5YmluZGluZ3MgZm9yIG9wZW5pbmcgdGhlIHBvcHVwLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZGJ4RmlyZWJhc2VEZXZlbG9wbWVudF0nLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIERieEZpcmViYXNlRGV2ZWxvcG1lbnREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xuICByZWFkb25seSBwb3B1cFNlcnZpY2UgPSBpbmplY3QoRGJ4UG9wdXBTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgbWF0U25hY2tCYXIgPSBpbmplY3QoTWF0U25hY2tCYXIpO1xuICByZWFkb25seSBkYnhGaXJlYmFzZURldmVsb3BtZW50U2VydmljZSA9IGluamVjdChEYnhGaXJlYmFzZURldmVsb3BtZW50U2VydmljZSk7XG5cbiAgcmVmPzogTmdQb3BvdmVyUmVmPGFueSwgYW55PjtcblxuICBnZXQgZW5hYmxlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5kYnhGaXJlYmFzZURldmVsb3BtZW50U2VydmljZS5lbmFibGVkO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OmtleWRvd24nLCBbJyRldmVudCddKVxuICBoYW5kbGVLZXlib2FyZEV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKHRoaXMuZW5hYmxlZCAmJiBldmVudC5zaGlmdEtleSAmJiBldmVudC5hbHRLZXkgJiYgZXZlbnQuY29kZSA9PT0gJ0tleUQnKSB7XG4gICAgICB0aGlzLnRvZ2dsZVBvcHVwKCk7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgfVxuXG4gIHRvZ2dsZVBvcHVwKCkge1xuICAgIGlmICh0aGlzLnJlZikge1xuICAgICAgdGhpcy5jbG9zZVBvcHVwKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub3BlblBvcHVwKCk7XG4gICAgfVxuICB9XG5cbiAgb3BlblBvcHVwKCkge1xuICAgIGlmICghdGhpcy5yZWYpIHtcbiAgICAgIGNvbnN0IHJlZiA9IERieEZpcmViYXNlRGV2ZWxvcG1lbnRQb3B1cENvbXBvbmVudC5vcGVuUG9wdXAodGhpcy5wb3B1cFNlcnZpY2UpO1xuICAgICAgcmVmLmFmdGVyQ2xvc2VkJC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5yZWYgPT09IHJlZikge1xuICAgICAgICAgIHRoaXMucmVmID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5yZWYgPSByZWY7XG4gICAgfVxuICB9XG5cbiAgY2xvc2VQb3B1cCgpIHtcbiAgICBpZiAodGhpcy5yZWYgIT0gbnVsbCkge1xuICAgICAgdGhpcy5yZWYuY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZW5hYmxlZCkge1xuICAgICAgdGhpcy5tYXRTbmFja0JhclxuICAgICAgICAub3BlbignRGV2IFRvb2xzOiBhbHQvb3B0aW9uICsgc2hpZnQgKyBEJywgJ09wZW4nLCB7XG4gICAgICAgICAgaG9yaXpvbnRhbFBvc2l0aW9uOiAnY2VudGVyJyxcbiAgICAgICAgICB2ZXJ0aWNhbFBvc2l0aW9uOiAnYm90dG9tJyxcbiAgICAgICAgICBkdXJhdGlvbjogOCAqIDEwMDBcbiAgICAgICAgfSlcbiAgICAgICAgLm9uQWN0aW9uKClcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5vcGVuUG9wdXAoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5jbG9zZVBvcHVwKCk7XG4gIH1cbn1cbiJdfQ==
79
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2ZWxvcG1lbnQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvZGV2ZWxvcG1lbnQvZGV2ZWxvcG1lbnQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQWlCLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzFELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVuRCxPQUFPLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNyRixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBRTFDOztHQUVHO0FBS0gsTUFBTSxPQUFPLCtCQUErQjtJQUNqQyxZQUFZLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ3ZDLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbEMsNkJBQTZCLEdBQUcsTUFBTSxDQUFDLDZCQUE2QixDQUFDLENBQUM7SUFFL0UsR0FBRyxDQUEwQjtJQUU3QixJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyw2QkFBNkIsQ0FBQyxPQUFPLENBQUM7SUFDcEQsQ0FBQztJQUVEO1FBQ0UsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFHRCxtQkFBbUIsQ0FBQyxLQUFvQjtRQUN0QyxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLFFBQVEsSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLEtBQUssQ0FBQyxJQUFJLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDNUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ25CLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN6QixDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUNiLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNwQixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNuQixDQUFDO0lBQ0gsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ2QsTUFBTSxHQUFHLEdBQUcsb0NBQW9DLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUM5RSxHQUFHLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQzlCLElBQUksSUFBSSxDQUFDLEdBQUcsS0FBSyxHQUFHLEVBQUUsQ0FBQztvQkFDckIsSUFBSSxDQUFDLEdBQUcsR0FBRyxTQUFTLENBQUM7Z0JBQ3ZCLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztZQUVILElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxDQUFDO1FBQ2pCLENBQUM7SUFDSCxDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksSUFBSSxDQUFDLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ25CLENBQUM7SUFDSCxDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxXQUFXO2lCQUNiLElBQUksQ0FBQyxtQ0FBbUMsRUFBRSxNQUFNLEVBQUU7Z0JBQ2pELGtCQUFrQixFQUFFLFFBQVE7Z0JBQzVCLGdCQUFnQixFQUFFLFFBQVE7Z0JBQzFCLFFBQVEsRUFBRSxDQUFDLEdBQUcsSUFBSTthQUNuQixDQUFDO2lCQUNELFFBQVEsRUFBRTtpQkFDVixTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUNkLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNuQixDQUFDLENBQUMsQ0FBQztRQUNQLENBQUM7SUFDSCxDQUFDO3dHQS9EVSwrQkFBK0I7NEZBQS9CLCtCQUErQjs7NEZBQS9CLCtCQUErQjtrQkFKM0MsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsMEJBQTBCO29CQUNwQyxVQUFVLEVBQUUsSUFBSTtpQkFDakI7d0RBaUJDLG1CQUFtQjtzQkFEbEIsWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEhvc3RMaXN0ZW5lciwgQWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdFNuYWNrQmFyIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc25hY2stYmFyJztcbmltcG9ydCB7IERieFBvcHVwU2VydmljZSB9IGZyb20gJ0BkZXJlZWtiL2RieC13ZWInO1xuaW1wb3J0IHsgTmdQb3BvdmVyUmVmIH0gZnJvbSAnbmctb3ZlcmxheS1jb250YWluZXInO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VEZXZlbG9wbWVudFBvcHVwQ29tcG9uZW50IH0gZnJvbSAnLi9kZXZlbG9wbWVudC5wb3B1cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VEZXZlbG9wbWVudFNlcnZpY2UgfSBmcm9tICcuL2RldmVsb3BtZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgY2xlYW4gfSBmcm9tICdAZGVyZWVrYi9kYngtY29yZSc7XG5cbi8qKlxuICogRGlyZWN0aXZlIGZvciBzaG93aW5nIHRoZSBkZXZlbG9wbWVudCB0b29scyBzbmFja2JhciB3aGVuIHRoZSBhcHAgb3BlbnMgdXAgYW5kIGxpc3RlbmluZyBmb3Iga2V5YmluZGluZ3MgZm9yIG9wZW5pbmcgdGhlIHBvcHVwLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZGJ4RmlyZWJhc2VEZXZlbG9wbWVudF0nLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIERieEZpcmViYXNlRGV2ZWxvcG1lbnREaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgcmVhZG9ubHkgcG9wdXBTZXJ2aWNlID0gaW5qZWN0KERieFBvcHVwU2VydmljZSk7XG4gIHJlYWRvbmx5IG1hdFNuYWNrQmFyID0gaW5qZWN0KE1hdFNuYWNrQmFyKTtcbiAgcmVhZG9ubHkgZGJ4RmlyZWJhc2VEZXZlbG9wbWVudFNlcnZpY2UgPSBpbmplY3QoRGJ4RmlyZWJhc2VEZXZlbG9wbWVudFNlcnZpY2UpO1xuXG4gIHJlZj86IE5nUG9wb3ZlclJlZjxhbnksIGFueT47XG5cbiAgZ2V0IGVuYWJsZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGJ4RmlyZWJhc2VEZXZlbG9wbWVudFNlcnZpY2UuZW5hYmxlZDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGNsZWFuKCgpID0+IHRoaXMuY2xvc2VQb3B1cCgpKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzprZXlkb3duJywgWyckZXZlbnQnXSlcbiAgaGFuZGxlS2V5Ym9hcmRFdmVudChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmICh0aGlzLmVuYWJsZWQgJiYgZXZlbnQuc2hpZnRLZXkgJiYgZXZlbnQuYWx0S2V5ICYmIGV2ZW50LmNvZGUgPT09ICdLZXlEJykge1xuICAgICAgdGhpcy50b2dnbGVQb3B1cCgpO1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gIH1cblxuICB0b2dnbGVQb3B1cCgpIHtcbiAgICBpZiAodGhpcy5yZWYpIHtcbiAgICAgIHRoaXMuY2xvc2VQb3B1cCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9wZW5Qb3B1cCgpO1xuICAgIH1cbiAgfVxuXG4gIG9wZW5Qb3B1cCgpIHtcbiAgICBpZiAoIXRoaXMucmVmKSB7XG4gICAgICBjb25zdCByZWYgPSBEYnhGaXJlYmFzZURldmVsb3BtZW50UG9wdXBDb21wb25lbnQub3BlblBvcHVwKHRoaXMucG9wdXBTZXJ2aWNlKTtcbiAgICAgIHJlZi5hZnRlckNsb3NlZCQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMucmVmID09PSByZWYpIHtcbiAgICAgICAgICB0aGlzLnJlZiA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMucmVmID0gcmVmO1xuICAgIH1cbiAgfVxuXG4gIGNsb3NlUG9wdXAoKSB7XG4gICAgaWYgKHRoaXMucmVmICE9IG51bGwpIHtcbiAgICAgIHRoaXMucmVmLmNsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmVuYWJsZWQpIHtcbiAgICAgIHRoaXMubWF0U25hY2tCYXJcbiAgICAgICAgLm9wZW4oJ0RldiBUb29sczogYWx0L29wdGlvbiArIHNoaWZ0ICsgRCcsICdPcGVuJywge1xuICAgICAgICAgIGhvcml6b250YWxQb3NpdGlvbjogJ2NlbnRlcicsXG4gICAgICAgICAgdmVydGljYWxQb3NpdGlvbjogJ2JvdHRvbScsXG4gICAgICAgICAgZHVyYXRpb246IDggKiAxMDAwXG4gICAgICAgIH0pXG4gICAgICAgIC5vbkFjdGlvbigpXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIHRoaXMub3BlblBvcHVwKCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -1,7 +1,6 @@
1
- import { DbxActionAutoTriggerDirective, DbxActionDirective, DbxActionEnforceModifiedDirective, DbxActionHandlerDirective, DbxAuthService } from '@dereekb/dbx-core';
1
+ import { DbxActionAutoTriggerDirective, DbxActionDirective, DbxActionEnforceModifiedDirective, DbxActionHandlerDirective, DbxAuthService, cleanSubscription, completeOnDestroy } from '@dereekb/dbx-core';
2
2
  import { Component, computed, inject } from '@angular/core';
3
3
  import { DbxAnchorComponent, DbxTwoBlockComponent, DbxTwoColumnComponent, DbxTwoColumnFullLeftDirective, DbxTwoColumnRightComponent, DbxWidgetViewComponent, TwoColumnsContextStore } from '@dereekb/dbx-web';
4
- import { SubscriptionObject } from '@dereekb/rxjs';
5
4
  import { first, BehaviorSubject, distinctUntilChanged, map, shareReplay, combineLatest } from 'rxjs';
6
5
  import { DbxFirebaseDevelopmentWidgetService } from './development.widget.service';
7
6
  import { DbxFirebaseDevelopmentSchedulerService } from './development.scheduler.service';
@@ -20,11 +19,10 @@ export class DbxFirebaseDevelopmentPopupContentComponent {
20
19
  dbxFirebaseDevelopmentWidgetService = inject(DbxFirebaseDevelopmentWidgetService);
21
20
  dbxFirebaseDevelopmentSchedulerService = inject(DbxFirebaseDevelopmentSchedulerService);
22
21
  dbxFirebaseEmulatorService = inject(DbxFirebaseEmulatorService);
23
- _backSub = new SubscriptionObject();
24
22
  showEmulatorButton = this.dbxFirebaseEmulatorService.useEmulators === true;
25
23
  emulatorUIAnchor = this.dbxFirebaseEmulatorService.emulatorUIAnchor ?? {};
26
24
  entries = this.dbxFirebaseDevelopmentWidgetService.getEntries();
27
- _activeEntrySelector = new BehaviorSubject(DEVELOPMENT_FIREBASE_SERVER_SCHEDULER_WIDGET_KEY);
25
+ _activeEntrySelector = completeOnDestroy(new BehaviorSubject(DEVELOPMENT_FIREBASE_SERVER_SCHEDULER_WIDGET_KEY));
28
26
  isLoggedIn$ = this.dbxAuthService.isLoggedIn$;
29
27
  entries$ = this.isLoggedIn$.pipe(distinctUntilChanged(), map((isLoggedIn) => this.entries), shareReplay(1));
30
28
  formConfig$ = this.entries$.pipe(map((entries) => ({ entries })));
@@ -49,15 +47,11 @@ export class DbxFirebaseDevelopmentPopupContentComponent {
49
47
  }
50
48
  return widgetConfig;
51
49
  });
52
- ngOnInit() {
50
+ constructor() {
53
51
  this.twoColumnsContextStore.setShowRight(this.showRight$);
54
- this._backSub.subscription = this.twoColumnsContextStore.back$.subscribe(() => {
52
+ cleanSubscription(this.twoColumnsContextStore.back$.subscribe(() => {
55
53
  this.clearSelection();
56
- });
57
- }
58
- ngOnDestroy() {
59
- this._backSub.destroy();
60
- this._activeEntrySelector.complete();
54
+ }));
61
55
  }
62
56
  handleFormUpdate = (value, context) => {
63
57
  this._activeEntrySelector.next(value.specifier);
@@ -75,5 +69,5 @@ export class DbxFirebaseDevelopmentPopupContentComponent {
75
69
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseDevelopmentPopupContentComponent, decorators: [{
76
70
  type: Component,
77
71
  args: [{ selector: 'dbx-firebase-development-popup-content', imports: [DbxAnchorComponent, DbxTwoColumnFullLeftDirective, DbxWidgetViewComponent, DbxTwoColumnComponent, DbxTwoBlockComponent, DbxTwoColumnRightComponent, DbxWidgetViewComponent, DbxFirebaseDevelopmentPopupContentFormComponent, DbxActionDirective, DbxActionEnforceModifiedDirective, DbxActionHandlerDirective, DbxActionFormDirective, DbxFormSourceDirective, DbxActionAutoTriggerDirective, MatButtonModule], providers: [TwoColumnsContextStore], standalone: true, template: "<dbx-two-column class=\"dbx-firebase-development-popup-content\" [dbxTwoColumnFullLeft]=\"true\">\n <dbx-two-block left>\n <div>\n <h4>Info</h4>\n <p>Scheduler (Running): {{ schedulerRunningSignal() }} : {{ schedulerIntervalSignal() }}s : {{ schedulerErrorSignal() }}</p>\n <div>\n @if (showEmulatorButton) {\n <dbx-anchor [anchor]=\"emulatorUIAnchor\">\n <button mat-flat-button color=\"accent\">Emulator Enabled</button>\n </dbx-anchor>\n }\n </div>\n </div>\n <div>\n <h4>Tools</h4>\n <div dbxAction dbxActionEnforceModified dbxActionAutoTrigger useInstantTriggerPreset [dbxActionHandler]=\"handleFormUpdate\">\n <dbx-firebase-development-popup-content-form [config]=\"formConfig$\" dbxActionForm [dbxActionFormIsModified]=\"isFormModified\" [dbxFormSource]=\"formData$\" dbxFormSourceMode=\"always\"></dbx-firebase-development-popup-content-form>\n </div>\n </div>\n </dbx-two-block>\n <dbx-two-column-right right [header]=\"rightTitleSignal()\">\n <dbx-widget-view [config]=\"widgetConfigSignal()\"></dbx-widget-view>\n </dbx-two-column-right>\n</dbx-two-column>\n", styles: [".dbx-firebase-development-popup-content{height:400px;overflow:hidden}\n"] }]
78
- }] });
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2ZWxvcG1lbnQucG9wdXAuY29udGVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9kZXZlbG9wbWVudC9kZXZlbG9wbWVudC5wb3B1cC5jb250ZW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL2RldmVsb3BtZW50L2RldmVsb3BtZW50LnBvcHVwLmNvbnRlbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFtQiw2QkFBNkIsRUFBRSxrQkFBa0IsRUFBRSxpQ0FBaUMsRUFBRSx5QkFBeUIsRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNyTCxPQUFPLEVBQUUsU0FBUyxFQUFxQixRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxvQkFBb0IsRUFBRSxxQkFBcUIsRUFBRSw2QkFBNkIsRUFBRSwwQkFBMEIsRUFBcUIsc0JBQXNCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVqTyxPQUFPLEVBQXdDLGtCQUFrQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpGLE9BQU8sRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ2pILE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ25GLE9BQU8sRUFBRSxzQ0FBc0MsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSwrQ0FBK0MsRUFBK0MsTUFBTSw0Q0FBNEMsQ0FBQztBQUMxSixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxnREFBZ0QsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzVHLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7OztBQVUzRCxNQUFNLE9BQU8sMkNBQTJDO0lBQzdDLHNCQUFzQixHQUFHLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0lBQ3hELGNBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDeEMsbUNBQW1DLEdBQUcsTUFBTSxDQUFDLG1DQUFtQyxDQUFDLENBQUM7SUFDbEYsc0NBQXNDLEdBQUcsTUFBTSxDQUFDLHNDQUFzQyxDQUFDLENBQUM7SUFDeEYsMEJBQTBCLEdBQUcsTUFBTSxDQUFDLDBCQUEwQixDQUFDLENBQUM7SUFFeEQsUUFBUSxHQUFHLElBQUksa0JBQWtCLEVBQUUsQ0FBQztJQUU1QyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsMEJBQTBCLENBQUMsWUFBWSxLQUFLLElBQUksQ0FBQztJQUMzRSxnQkFBZ0IsR0FBb0IsSUFBSSxDQUFDLDBCQUEwQixDQUFDLGdCQUFnQixJQUFJLEVBQUUsQ0FBQztJQUUzRixPQUFPLEdBQUcsSUFBSSxDQUFDLG1DQUFtQyxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBRXhELG9CQUFvQixHQUFHLElBQUksZUFBZSxDQUE4QyxnREFBZ0QsQ0FBQyxDQUFDO0lBRWxKLFdBQVcsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsQ0FBQztJQUU5QyxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQ3ZDLG9CQUFvQixFQUFFLEVBQ3RCLEdBQUcsQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUNqQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztJQUVPLFdBQVcsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNsRSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUMsQ0FBQztJQUM5RSxtQkFBbUIsR0FBRyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUMzRixHQUFHLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUN0RyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztJQUVPLFVBQVUsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDbEUsWUFBWSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUVyRixpQkFBaUIsR0FBRyxJQUFJLENBQUMsc0NBQXNDLENBQUMsUUFBUSxDQUFDO0lBQ3pFLGtCQUFrQixHQUFHLElBQUksQ0FBQyxzQ0FBc0MsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUMzRixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUMxQixXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztJQUNPLGVBQWUsR0FBRyxJQUFJLENBQUMsc0NBQXNDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FDaEYsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUN4QyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztJQUVPLFNBQVMsR0FBNEQsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FDMUcsb0JBQW9CLEVBQUUsRUFDdEIsR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUNwQyxDQUFDO0lBRU8sc0JBQXNCLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQzFELHVCQUF1QixHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUM1RCxvQkFBb0IsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBRXRELGlCQUFpQixHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDaEQsZ0JBQWdCLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ25FLGtCQUFrQixHQUFHLFFBQVEsQ0FBMkIsR0FBRyxFQUFFO1FBQ3BFLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sQ0FBQztRQUNoRCxJQUFJLFlBQVksR0FBNkIsU0FBUyxDQUFDO1FBRXZELElBQUksTUFBTSxFQUFFLENBQUM7WUFDWCxZQUFZLEdBQUcsRUFBRSxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUM7UUFDeEQsQ0FBQztRQUVELE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUTtRQUNOLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUM1RSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDeEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFUSxnQkFBZ0IsR0FBd0UsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLEVBQUU7UUFDbEgsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDaEQsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3BCLENBQUMsQ0FBQztJQUVPLGNBQWMsR0FBb0UsQ0FBQyxLQUFLLEVBQUUsRUFBRTtRQUNuRyxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQ25DLEdBQUcsQ0FBQyxDQUFDLGVBQWUsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFNBQVMsS0FBSyxlQUFlLENBQUMsRUFDN0QsS0FBSyxFQUFFLENBQ1IsQ0FBQztJQUNKLENBQUMsQ0FBQztJQUVGLGNBQWM7UUFDWixJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzVDLENBQUM7d0dBNUZVLDJDQUEyQzs0RkFBM0MsMkNBQTJDLHFGQUgzQyxDQUFDLHNCQUFzQixDQUFDLDBCQ3RCckMsdXBDQXdCQSxpSURIWSxrQkFBa0Isd0ZBQUUsNkJBQTZCLHFHQUFFLHNCQUFzQixnRkFBRSxxQkFBcUIsaUpBQUUsb0JBQW9CLGdGQUFFLDBCQUEwQixtSUFBMEIsK0NBQStDLHdGQUFFLGtCQUFrQiw0SUFBRSxpQ0FBaUMsNkdBQUUseUJBQXlCLDZGQUFFLHNCQUFzQiw0TUFBRSxzQkFBc0IsNEdBQUUsNkJBQTZCLGtSQUFFLGVBQWU7OzRGQUk1WSwyQ0FBMkM7a0JBUnZELFNBQVM7K0JBQ0Usd0NBQXdDLFdBR3pDLENBQUMsa0JBQWtCLEVBQUUsNkJBQTZCLEVBQUUsc0JBQXNCLEVBQUUscUJBQXFCLEVBQUUsb0JBQW9CLEVBQUUsMEJBQTBCLEVBQUUsc0JBQXNCLEVBQUUsK0NBQStDLEVBQUUsa0JBQWtCLEVBQUUsaUNBQWlDLEVBQUUseUJBQXlCLEVBQUUsc0JBQXNCLEVBQUUsc0JBQXNCLEVBQUUsNkJBQTZCLEVBQUUsZUFBZSxDQUFDLGFBQzdZLENBQUMsc0JBQXNCLENBQUMsY0FDdkIsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENsaWNrYWJsZUFuY2hvciwgRGJ4QWN0aW9uQXV0b1RyaWdnZXJEaXJlY3RpdmUsIERieEFjdGlvbkRpcmVjdGl2ZSwgRGJ4QWN0aW9uRW5mb3JjZU1vZGlmaWVkRGlyZWN0aXZlLCBEYnhBY3Rpb25IYW5kbGVyRGlyZWN0aXZlLCBEYnhBdXRoU2VydmljZSB9IGZyb20gJ0BkZXJlZWtiL2RieC1jb3JlJztcbmltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQsIGNvbXB1dGVkLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERieEFuY2hvckNvbXBvbmVudCwgRGJ4VHdvQmxvY2tDb21wb25lbnQsIERieFR3b0NvbHVtbkNvbXBvbmVudCwgRGJ4VHdvQ29sdW1uRnVsbExlZnREaXJlY3RpdmUsIERieFR3b0NvbHVtblJpZ2h0Q29tcG9uZW50LCBEYnhXaWRnZXREYXRhUGFpciwgRGJ4V2lkZ2V0Vmlld0NvbXBvbmVudCwgVHdvQ29sdW1uc0NvbnRleHRTdG9yZSB9IGZyb20gJ0BkZXJlZWtiL2RieC13ZWInO1xuaW1wb3J0IHsgRGV2ZWxvcG1lbnRGaXJlYmFzZUZ1bmN0aW9uU3BlY2lmaWVyIH0gZnJvbSAnQGRlcmVla2IvZmlyZWJhc2UnO1xuaW1wb3J0IHsgV29ya1VzaW5nQ29udGV4dCwgSXNNb2RpZmllZEZ1bmN0aW9uLCBTdWJzY3JpcHRpb25PYmplY3QgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcbmltcG9ydCB7IHR5cGUgTWF5YmUgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IGZpcnN0LCBCZWhhdmlvclN1YmplY3QsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHNoYXJlUmVwbGF5LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZURldmVsb3BtZW50V2lkZ2V0U2VydmljZSB9IGZyb20gJy4vZGV2ZWxvcG1lbnQud2lkZ2V0LnNlcnZpY2UnO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VEZXZlbG9wbWVudFNjaGVkdWxlclNlcnZpY2UgfSBmcm9tICcuL2RldmVsb3BtZW50LnNjaGVkdWxlci5zZXJ2aWNlJztcbmltcG9ydCB7IERieEZpcmViYXNlRGV2ZWxvcG1lbnRQb3B1cENvbnRlbnRGb3JtQ29tcG9uZW50LCBEYnhGaXJlYmFzZURldmVsb3BtZW50UG9wdXBDb250ZW50Rm9ybVZhbHVlIH0gZnJvbSAnLi9kZXZlbG9wbWVudC5wb3B1cC5jb250ZW50LmZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IG1zVG9TZWNvbmRzIH0gZnJvbSAnQGRlcmVla2IvZGF0ZSc7XG5pbXBvcnQgeyBERVZFTE9QTUVOVF9GSVJFQkFTRV9TRVJWRVJfU0NIRURVTEVSX1dJREdFVF9LRVkgfSBmcm9tICcuL2RldmVsb3BtZW50LnNjaGVkdWxlci53aWRnZXQuY29tcG9uZW50JztcbmltcG9ydCB7IERieEZpcmViYXNlRW11bGF0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vZmlyZWJhc2UvZmlyZWJhc2UuZW11bGF0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IERieEFjdGlvbkZvcm1EaXJlY3RpdmUsIERieEZvcm1Tb3VyY2VEaXJlY3RpdmUgfSBmcm9tICdAZGVyZWVrYi9kYngtZm9ybSc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkYngtZmlyZWJhc2UtZGV2ZWxvcG1lbnQtcG9wdXAtY29udGVudCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9kZXZlbG9wbWVudC5wb3B1cC5jb250ZW50LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGV2ZWxvcG1lbnQucG9wdXAuY29tcG9uZW50LnNjc3MnXSxcbiAgaW1wb3J0czogW0RieEFuY2hvckNvbXBvbmVudCwgRGJ4VHdvQ29sdW1uRnVsbExlZnREaXJlY3RpdmUsIERieFdpZGdldFZpZXdDb21wb25lbnQsIERieFR3b0NvbHVtbkNvbXBvbmVudCwgRGJ4VHdvQmxvY2tDb21wb25lbnQsIERieFR3b0NvbHVtblJpZ2h0Q29tcG9uZW50LCBEYnhXaWRnZXRWaWV3Q29tcG9uZW50LCBEYnhGaXJlYmFzZURldmVsb3BtZW50UG9wdXBDb250ZW50Rm9ybUNvbXBvbmVudCwgRGJ4QWN0aW9uRGlyZWN0aXZlLCBEYnhBY3Rpb25FbmZvcmNlTW9kaWZpZWREaXJlY3RpdmUsIERieEFjdGlvbkhhbmRsZXJEaXJlY3RpdmUsIERieEFjdGlvbkZvcm1EaXJlY3RpdmUsIERieEZvcm1Tb3VyY2VEaXJlY3RpdmUsIERieEFjdGlvbkF1dG9UcmlnZ2VyRGlyZWN0aXZlLCBNYXRCdXR0b25Nb2R1bGVdLFxuICBwcm92aWRlcnM6IFtUd29Db2x1bW5zQ29udGV4dFN0b3JlXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBEYnhGaXJlYmFzZURldmVsb3BtZW50UG9wdXBDb250ZW50Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICByZWFkb25seSB0d29Db2x1bW5zQ29udGV4dFN0b3JlID0gaW5qZWN0KFR3b0NvbHVtbnNDb250ZXh0U3RvcmUpO1xuICByZWFkb25seSBkYnhBdXRoU2VydmljZSA9IGluamVjdChEYnhBdXRoU2VydmljZSk7XG4gIHJlYWRvbmx5IGRieEZpcmViYXNlRGV2ZWxvcG1lbnRXaWRnZXRTZXJ2aWNlID0gaW5qZWN0KERieEZpcmViYXNlRGV2ZWxvcG1lbnRXaWRnZXRTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgZGJ4RmlyZWJhc2VEZXZlbG9wbWVudFNjaGVkdWxlclNlcnZpY2UgPSBpbmplY3QoRGJ4RmlyZWJhc2VEZXZlbG9wbWVudFNjaGVkdWxlclNlcnZpY2UpO1xuICByZWFkb25seSBkYnhGaXJlYmFzZUVtdWxhdG9yU2VydmljZSA9IGluamVjdChEYnhGaXJlYmFzZUVtdWxhdG9yU2VydmljZSk7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfYmFja1N1YiA9IG5ldyBTdWJzY3JpcHRpb25PYmplY3QoKTtcblxuICByZWFkb25seSBzaG93RW11bGF0b3JCdXR0b24gPSB0aGlzLmRieEZpcmViYXNlRW11bGF0b3JTZXJ2aWNlLnVzZUVtdWxhdG9ycyA9PT0gdHJ1ZTtcbiAgcmVhZG9ubHkgZW11bGF0b3JVSUFuY2hvcjogQ2xpY2thYmxlQW5jaG9yID0gdGhpcy5kYnhGaXJlYmFzZUVtdWxhdG9yU2VydmljZS5lbXVsYXRvclVJQW5jaG9yID8/IHt9O1xuXG4gIHJlYWRvbmx5IGVudHJpZXMgPSB0aGlzLmRieEZpcmViYXNlRGV2ZWxvcG1lbnRXaWRnZXRTZXJ2aWNlLmdldEVudHJpZXMoKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IF9hY3RpdmVFbnRyeVNlbGVjdG9yID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNYXliZTxEZXZlbG9wbWVudEZpcmViYXNlRnVuY3Rpb25TcGVjaWZpZXI+PihERVZFTE9QTUVOVF9GSVJFQkFTRV9TRVJWRVJfU0NIRURVTEVSX1dJREdFVF9LRVkpO1xuXG4gIHJlYWRvbmx5IGlzTG9nZ2VkSW4kID0gdGhpcy5kYnhBdXRoU2VydmljZS5pc0xvZ2dlZEluJDtcblxuICByZWFkb25seSBlbnRyaWVzJCA9IHRoaXMuaXNMb2dnZWRJbiQucGlwZShcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIG1hcCgoaXNMb2dnZWRJbikgPT4gdGhpcy5lbnRyaWVzKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGZvcm1Db25maWckID0gdGhpcy5lbnRyaWVzJC5waXBlKG1hcCgoZW50cmllcykgPT4gKHsgZW50cmllcyB9KSkpO1xuICByZWFkb25seSBhY3RpdmVFbnRyeVNlbGVjdG9yJCA9IHRoaXMuX2FjdGl2ZUVudHJ5U2VsZWN0b3IucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcbiAgcmVhZG9ubHkgY3VycmVudEFjdGl2ZUVudHJ5JCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuZW50cmllcyQsIHRoaXMuYWN0aXZlRW50cnlTZWxlY3RvciRdKS5waXBlKFxuICAgIG1hcCgoW2VudHJpZXMsIHNlbGVjdG9yXSkgPT4gKHNlbGVjdG9yID8gZW50cmllcy5maW5kKChlKSA9PiBlLndpZGdldC50eXBlID09PSBzZWxlY3RvcikgOiB1bmRlZmluZWQpKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IHNob3dSaWdodCQgPSB0aGlzLmN1cnJlbnRBY3RpdmVFbnRyeSQucGlwZShtYXAoKHgpID0+IHggIT0gbnVsbCkpO1xuICByZWFkb25seSBhY3RpdmVFbnRyeSQgPSB0aGlzLmN1cnJlbnRBY3RpdmVFbnRyeSQucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCBzaGFyZVJlcGxheSgxKSk7XG5cbiAgcmVhZG9ubHkgc2NoZWR1bGVyUnVubmluZyQgPSB0aGlzLmRieEZpcmViYXNlRGV2ZWxvcG1lbnRTY2hlZHVsZXJTZXJ2aWNlLnJ1bm5pbmckO1xuICByZWFkb25seSBzY2hlZHVsZXJJbnRlcnZhbCQgPSB0aGlzLmRieEZpcmViYXNlRGV2ZWxvcG1lbnRTY2hlZHVsZXJTZXJ2aWNlLnRpbWVySW50ZXJ2YWwkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiBtc1RvU2Vjb25kcyh4KSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcbiAgcmVhZG9ubHkgc2NoZWR1bGVyRXJyb3IkID0gdGhpcy5kYnhGaXJlYmFzZURldmVsb3BtZW50U2NoZWR1bGVyU2VydmljZS5lcnJvciQucGlwZShcbiAgICBtYXAoKHgpID0+ICh4ID8gJ0Vycm9yIE9jY3VyZWQnIDogJ09rJykpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgZm9ybURhdGEkOiBPYnNlcnZhYmxlPERieEZpcmViYXNlRGV2ZWxvcG1lbnRQb3B1cENvbnRlbnRGb3JtVmFsdWU+ID0gdGhpcy5fYWN0aXZlRW50cnlTZWxlY3Rvci5waXBlKFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgbWFwKChzcGVjaWZpZXIpID0+ICh7IHNwZWNpZmllciB9KSlcbiAgKTtcblxuICByZWFkb25seSBzY2hlZHVsZXJSdW5uaW5nU2lnbmFsID0gdG9TaWduYWwodGhpcy5zY2hlZHVsZXJSdW5uaW5nJCk7XG4gIHJlYWRvbmx5IHNjaGVkdWxlckludGVydmFsU2lnbmFsID0gdG9TaWduYWwodGhpcy5zY2hlZHVsZXJJbnRlcnZhbCQpO1xuICByZWFkb25seSBzY2hlZHVsZXJFcnJvclNpZ25hbCA9IHRvU2lnbmFsKHRoaXMuc2NoZWR1bGVyRXJyb3IkKTtcblxuICByZWFkb25seSBhY3RpdmVFbnRyeVNpZ25hbCA9IHRvU2lnbmFsKHRoaXMuYWN0aXZlRW50cnkkKTtcbiAgcmVhZG9ubHkgcmlnaHRUaXRsZVNpZ25hbCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuYWN0aXZlRW50cnlTaWduYWwoKT8ubGFiZWwpO1xuICByZWFkb25seSB3aWRnZXRDb25maWdTaWduYWwgPSBjb21wdXRlZDxNYXliZTxEYnhXaWRnZXREYXRhUGFpcj4+KCgpID0+IHtcbiAgICBjb25zdCB3aWRnZXQgPSB0aGlzLmFjdGl2ZUVudHJ5U2lnbmFsKCk/LndpZGdldDtcbiAgICBsZXQgd2lkZ2V0Q29uZmlnOiBNYXliZTxEYnhXaWRnZXREYXRhUGFpcj4gPSB1bmRlZmluZWQ7XG5cbiAgICBpZiAod2lkZ2V0KSB7XG4gICAgICB3aWRnZXRDb25maWcgPSB7IHR5cGU6IHdpZGdldC50eXBlLCBkYXRhOiB1bmRlZmluZWQgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gd2lkZ2V0Q29uZmlnO1xuICB9KTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnR3b0NvbHVtbnNDb250ZXh0U3RvcmUuc2V0U2hvd1JpZ2h0KHRoaXMuc2hvd1JpZ2h0JCk7XG4gICAgdGhpcy5fYmFja1N1Yi5zdWJzY3JpcHRpb24gPSB0aGlzLnR3b0NvbHVtbnNDb250ZXh0U3RvcmUuYmFjayQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuY2xlYXJTZWxlY3Rpb24oKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX2JhY2tTdWIuZGVzdHJveSgpO1xuICAgIHRoaXMuX2FjdGl2ZUVudHJ5U2VsZWN0b3IuY29tcGxldGUoKTtcbiAgfVxuXG4gIHJlYWRvbmx5IGhhbmRsZUZvcm1VcGRhdGU6IFdvcmtVc2luZ0NvbnRleHQ8RGJ4RmlyZWJhc2VEZXZlbG9wbWVudFBvcHVwQ29udGVudEZvcm1WYWx1ZSwgdm9pZD4gPSAodmFsdWUsIGNvbnRleHQpID0+IHtcbiAgICB0aGlzLl9hY3RpdmVFbnRyeVNlbGVjdG9yLm5leHQodmFsdWUuc3BlY2lmaWVyKTtcbiAgICBjb250ZXh0LnN1Y2Nlc3MoKTtcbiAgfTtcblxuICByZWFkb25seSBpc0Zvcm1Nb2RpZmllZDogSXNNb2RpZmllZEZ1bmN0aW9uPERieEZpcmViYXNlRGV2ZWxvcG1lbnRQb3B1cENvbnRlbnRGb3JtVmFsdWU+ID0gKHZhbHVlKSA9PiB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2ZUVudHJ5U2VsZWN0b3IucGlwZShcbiAgICAgIG1hcCgoY3VycmVudFNlbGVjdG9yKSA9PiB2YWx1ZS5zcGVjaWZpZXIgIT09IGN1cnJlbnRTZWxlY3RvciksXG4gICAgICBmaXJzdCgpXG4gICAgKTtcbiAgfTtcblxuICBjbGVhclNlbGVjdGlvbigpIHtcbiAgICB0aGlzLl9hY3RpdmVFbnRyeVNlbGVjdG9yLm5leHQodW5kZWZpbmVkKTtcbiAgfVxufVxuIiwiPGRieC10d28tY29sdW1uIGNsYXNzPVwiZGJ4LWZpcmViYXNlLWRldmVsb3BtZW50LXBvcHVwLWNvbnRlbnRcIiBbZGJ4VHdvQ29sdW1uRnVsbExlZnRdPVwidHJ1ZVwiPlxuICA8ZGJ4LXR3by1ibG9jayBsZWZ0PlxuICAgIDxkaXY+XG4gICAgICA8aDQ+SW5mbzwvaDQ+XG4gICAgICA8cD5TY2hlZHVsZXIgKFJ1bm5pbmcpOiB7eyBzY2hlZHVsZXJSdW5uaW5nU2lnbmFsKCkgfX0gOiB7eyBzY2hlZHVsZXJJbnRlcnZhbFNpZ25hbCgpIH19cyA6IHt7IHNjaGVkdWxlckVycm9yU2lnbmFsKCkgfX08L3A+XG4gICAgICA8ZGl2PlxuICAgICAgICBAaWYgKHNob3dFbXVsYXRvckJ1dHRvbikge1xuICAgICAgICAgIDxkYngtYW5jaG9yIFthbmNob3JdPVwiZW11bGF0b3JVSUFuY2hvclwiPlxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gY29sb3I9XCJhY2NlbnRcIj5FbXVsYXRvciBFbmFibGVkPC9idXR0b24+XG4gICAgICAgICAgPC9kYngtYW5jaG9yPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2PlxuICAgICAgPGg0PlRvb2xzPC9oND5cbiAgICAgIDxkaXYgZGJ4QWN0aW9uIGRieEFjdGlvbkVuZm9yY2VNb2RpZmllZCBkYnhBY3Rpb25BdXRvVHJpZ2dlciB1c2VJbnN0YW50VHJpZ2dlclByZXNldCBbZGJ4QWN0aW9uSGFuZGxlcl09XCJoYW5kbGVGb3JtVXBkYXRlXCI+XG4gICAgICAgIDxkYngtZmlyZWJhc2UtZGV2ZWxvcG1lbnQtcG9wdXAtY29udGVudC1mb3JtIFtjb25maWddPVwiZm9ybUNvbmZpZyRcIiBkYnhBY3Rpb25Gb3JtIFtkYnhBY3Rpb25Gb3JtSXNNb2RpZmllZF09XCJpc0Zvcm1Nb2RpZmllZFwiIFtkYnhGb3JtU291cmNlXT1cImZvcm1EYXRhJFwiIGRieEZvcm1Tb3VyY2VNb2RlPVwiYWx3YXlzXCI+PC9kYngtZmlyZWJhc2UtZGV2ZWxvcG1lbnQtcG9wdXAtY29udGVudC1mb3JtPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGJ4LXR3by1ibG9jaz5cbiAgPGRieC10d28tY29sdW1uLXJpZ2h0IHJpZ2h0IFtoZWFkZXJdPVwicmlnaHRUaXRsZVNpZ25hbCgpXCI+XG4gICAgPGRieC13aWRnZXQtdmlldyBbY29uZmlnXT1cIndpZGdldENvbmZpZ1NpZ25hbCgpXCI+PC9kYngtd2lkZ2V0LXZpZXc+XG4gIDwvZGJ4LXR3by1jb2x1bW4tcmlnaHQ+XG48L2RieC10d28tY29sdW1uPlxuIl19
72
+ }], ctorParameters: () => [] });
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2ZWxvcG1lbnQucG9wdXAuY29udGVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9kZXZlbG9wbWVudC9kZXZlbG9wbWVudC5wb3B1cC5jb250ZW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL2RldmVsb3BtZW50L2RldmVsb3BtZW50LnBvcHVwLmNvbnRlbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFtQiw2QkFBNkIsRUFBRSxrQkFBa0IsRUFBRSxpQ0FBaUMsRUFBRSx5QkFBeUIsRUFBRSxjQUFjLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMzTixPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLG9CQUFvQixFQUFFLHFCQUFxQixFQUFFLDZCQUE2QixFQUFFLDBCQUEwQixFQUFxQixzQkFBc0IsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBSWpPLE9BQU8sRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ2pILE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ25GLE9BQU8sRUFBRSxzQ0FBc0MsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSwrQ0FBK0MsRUFBK0MsTUFBTSw0Q0FBNEMsQ0FBQztBQUMxSixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxnREFB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QUFFLDZCQUE2QixrUkFBRSxlQUFlOzs0RkFJNVksMkNBQTJDO2tCQVJ2RCxTQUFTOytCQUNFLHdDQUF3QyxXQUd6QyxDQUFDLGtCQUFrQixFQUFFLDZCQUE2QixFQUFFLHNCQUFzQixFQUFFLHFCQUFxQixFQUFFLG9CQUFvQixFQUFFLDBCQUEwQixFQUFFLHNCQUFzQixFQUFFLCtDQUErQyxFQUFFLGtCQUFrQixFQUFFLGlDQUFpQyxFQUFFLHlCQUF5QixFQUFFLHNCQUFzQixFQUFFLHNCQUFzQixFQUFFLDZCQUE2QixFQUFFLGVBQWUsQ0FBQyxhQUM3WSxDQUFDLHNCQUFzQixDQUFDLGNBQ3ZCLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDbGlja2FibGVBbmNob3IsIERieEFjdGlvbkF1dG9UcmlnZ2VyRGlyZWN0aXZlLCBEYnhBY3Rpb25EaXJlY3RpdmUsIERieEFjdGlvbkVuZm9yY2VNb2RpZmllZERpcmVjdGl2ZSwgRGJ4QWN0aW9uSGFuZGxlckRpcmVjdGl2ZSwgRGJ4QXV0aFNlcnZpY2UsIGNsZWFuU3Vic2NyaXB0aW9uLCBjb21wbGV0ZU9uRGVzdHJveSB9IGZyb20gJ0BkZXJlZWtiL2RieC1jb3JlJztcbmltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGJ4QW5jaG9yQ29tcG9uZW50LCBEYnhUd29CbG9ja0NvbXBvbmVudCwgRGJ4VHdvQ29sdW1uQ29tcG9uZW50LCBEYnhUd29Db2x1bW5GdWxsTGVmdERpcmVjdGl2ZSwgRGJ4VHdvQ29sdW1uUmlnaHRDb21wb25lbnQsIERieFdpZGdldERhdGFQYWlyLCBEYnhXaWRnZXRWaWV3Q29tcG9uZW50LCBUd29Db2x1bW5zQ29udGV4dFN0b3JlIH0gZnJvbSAnQGRlcmVla2IvZGJ4LXdlYic7XG5pbXBvcnQgeyBEZXZlbG9wbWVudEZpcmViYXNlRnVuY3Rpb25TcGVjaWZpZXIgfSBmcm9tICdAZGVyZWVrYi9maXJlYmFzZSc7XG5pbXBvcnQgeyBXb3JrVXNpbmdDb250ZXh0LCBJc01vZGlmaWVkRnVuY3Rpb24gfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcbmltcG9ydCB7IHR5cGUgTWF5YmUgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IGZpcnN0LCBCZWhhdmlvclN1YmplY3QsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHNoYXJlUmVwbGF5LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZURldmVsb3BtZW50V2lkZ2V0U2VydmljZSB9IGZyb20gJy4vZGV2ZWxvcG1lbnQud2lkZ2V0LnNlcnZpY2UnO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VEZXZlbG9wbWVudFNjaGVkdWxlclNlcnZpY2UgfSBmcm9tICcuL2RldmVsb3BtZW50LnNjaGVkdWxlci5zZXJ2aWNlJztcbmltcG9ydCB7IERieEZpcmViYXNlRGV2ZWxvcG1lbnRQb3B1cENvbnRlbnRGb3JtQ29tcG9uZW50LCBEYnhGaXJlYmFzZURldmVsb3BtZW50UG9wdXBDb250ZW50Rm9ybVZhbHVlIH0gZnJvbSAnLi9kZXZlbG9wbWVudC5wb3B1cC5jb250ZW50LmZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IG1zVG9TZWNvbmRzIH0gZnJvbSAnQGRlcmVla2IvZGF0ZSc7XG5pbXBvcnQgeyBERVZFTE9QTUVOVF9GSVJFQkFTRV9TRVJWRVJfU0NIRURVTEVSX1dJREdFVF9LRVkgfSBmcm9tICcuL2RldmVsb3BtZW50LnNjaGVkdWxlci53aWRnZXQuY29tcG9uZW50JztcbmltcG9ydCB7IERieEZpcmViYXNlRW11bGF0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vZmlyZWJhc2UvZmlyZWJhc2UuZW11bGF0b3Iuc2VydmljZSc7XG5pbXBvcnQgeyB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IERieEFjdGlvbkZvcm1EaXJlY3RpdmUsIERieEZvcm1Tb3VyY2VEaXJlY3RpdmUgfSBmcm9tICdAZGVyZWVrYi9kYngtZm9ybSc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkYngtZmlyZWJhc2UtZGV2ZWxvcG1lbnQtcG9wdXAtY29udGVudCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9kZXZlbG9wbWVudC5wb3B1cC5jb250ZW50LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZGV2ZWxvcG1lbnQucG9wdXAuY29tcG9uZW50LnNjc3MnXSxcbiAgaW1wb3J0czogW0RieEFuY2hvckNvbXBvbmVudCwgRGJ4VHdvQ29sdW1uRnVsbExlZnREaXJlY3RpdmUsIERieFdpZGdldFZpZXdDb21wb25lbnQsIERieFR3b0NvbHVtbkNvbXBvbmVudCwgRGJ4VHdvQmxvY2tDb21wb25lbnQsIERieFR3b0NvbHVtblJpZ2h0Q29tcG9uZW50LCBEYnhXaWRnZXRWaWV3Q29tcG9uZW50LCBEYnhGaXJlYmFzZURldmVsb3BtZW50UG9wdXBDb250ZW50Rm9ybUNvbXBvbmVudCwgRGJ4QWN0aW9uRGlyZWN0aXZlLCBEYnhBY3Rpb25FbmZvcmNlTW9kaWZpZWREaXJlY3RpdmUsIERieEFjdGlvbkhhbmRsZXJEaXJlY3RpdmUsIERieEFjdGlvbkZvcm1EaXJlY3RpdmUsIERieEZvcm1Tb3VyY2VEaXJlY3RpdmUsIERieEFjdGlvbkF1dG9UcmlnZ2VyRGlyZWN0aXZlLCBNYXRCdXR0b25Nb2R1bGVdLFxuICBwcm92aWRlcnM6IFtUd29Db2x1bW5zQ29udGV4dFN0b3JlXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBEYnhGaXJlYmFzZURldmVsb3BtZW50UG9wdXBDb250ZW50Q29tcG9uZW50IHtcbiAgcmVhZG9ubHkgdHdvQ29sdW1uc0NvbnRleHRTdG9yZSA9IGluamVjdChUd29Db2x1bW5zQ29udGV4dFN0b3JlKTtcbiAgcmVhZG9ubHkgZGJ4QXV0aFNlcnZpY2UgPSBpbmplY3QoRGJ4QXV0aFNlcnZpY2UpO1xuICByZWFkb25seSBkYnhGaXJlYmFzZURldmVsb3BtZW50V2lkZ2V0U2VydmljZSA9IGluamVjdChEYnhGaXJlYmFzZURldmVsb3BtZW50V2lkZ2V0U2VydmljZSk7XG4gIHJlYWRvbmx5IGRieEZpcmViYXNlRGV2ZWxvcG1lbnRTY2hlZHVsZXJTZXJ2aWNlID0gaW5qZWN0KERieEZpcmViYXNlRGV2ZWxvcG1lbnRTY2hlZHVsZXJTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgZGJ4RmlyZWJhc2VFbXVsYXRvclNlcnZpY2UgPSBpbmplY3QoRGJ4RmlyZWJhc2VFbXVsYXRvclNlcnZpY2UpO1xuXG4gIHJlYWRvbmx5IHNob3dFbXVsYXRvckJ1dHRvbiA9IHRoaXMuZGJ4RmlyZWJhc2VFbXVsYXRvclNlcnZpY2UudXNlRW11bGF0b3JzID09PSB0cnVlO1xuICByZWFkb25seSBlbXVsYXRvclVJQW5jaG9yOiBDbGlja2FibGVBbmNob3IgPSB0aGlzLmRieEZpcmViYXNlRW11bGF0b3JTZXJ2aWNlLmVtdWxhdG9yVUlBbmNob3IgPz8ge307XG5cbiAgcmVhZG9ubHkgZW50cmllcyA9IHRoaXMuZGJ4RmlyZWJhc2VEZXZlbG9wbWVudFdpZGdldFNlcnZpY2UuZ2V0RW50cmllcygpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2FjdGl2ZUVudHJ5U2VsZWN0b3IgPSBjb21wbGV0ZU9uRGVzdHJveShuZXcgQmVoYXZpb3JTdWJqZWN0PE1heWJlPERldmVsb3BtZW50RmlyZWJhc2VGdW5jdGlvblNwZWNpZmllcj4+KERFVkVMT1BNRU5UX0ZJUkVCQVNFX1NFUlZFUl9TQ0hFRFVMRVJfV0lER0VUX0tFWSkpO1xuXG4gIHJlYWRvbmx5IGlzTG9nZ2VkSW4kID0gdGhpcy5kYnhBdXRoU2VydmljZS5pc0xvZ2dlZEluJDtcblxuICByZWFkb25seSBlbnRyaWVzJCA9IHRoaXMuaXNMb2dnZWRJbiQucGlwZShcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIG1hcCgoaXNMb2dnZWRJbikgPT4gdGhpcy5lbnRyaWVzKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGZvcm1Db25maWckID0gdGhpcy5lbnRyaWVzJC5waXBlKG1hcCgoZW50cmllcykgPT4gKHsgZW50cmllcyB9KSkpO1xuICByZWFkb25seSBhY3RpdmVFbnRyeVNlbGVjdG9yJCA9IHRoaXMuX2FjdGl2ZUVudHJ5U2VsZWN0b3IucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcbiAgcmVhZG9ubHkgY3VycmVudEFjdGl2ZUVudHJ5JCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuZW50cmllcyQsIHRoaXMuYWN0aXZlRW50cnlTZWxlY3RvciRdKS5waXBlKFxuICAgIG1hcCgoW2VudHJpZXMsIHNlbGVjdG9yXSkgPT4gKHNlbGVjdG9yID8gZW50cmllcy5maW5kKChlKSA9PiBlLndpZGdldC50eXBlID09PSBzZWxlY3RvcikgOiB1bmRlZmluZWQpKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IHNob3dSaWdodCQgPSB0aGlzLmN1cnJlbnRBY3RpdmVFbnRyeSQucGlwZShtYXAoKHgpID0+IHggIT0gbnVsbCkpO1xuICByZWFkb25seSBhY3RpdmVFbnRyeSQgPSB0aGlzLmN1cnJlbnRBY3RpdmVFbnRyeSQucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCBzaGFyZVJlcGxheSgxKSk7XG5cbiAgcmVhZG9ubHkgc2NoZWR1bGVyUnVubmluZyQgPSB0aGlzLmRieEZpcmViYXNlRGV2ZWxvcG1lbnRTY2hlZHVsZXJTZXJ2aWNlLnJ1bm5pbmckO1xuICByZWFkb25seSBzY2hlZHVsZXJJbnRlcnZhbCQgPSB0aGlzLmRieEZpcmViYXNlRGV2ZWxvcG1lbnRTY2hlZHVsZXJTZXJ2aWNlLnRpbWVySW50ZXJ2YWwkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiBtc1RvU2Vjb25kcyh4KSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcbiAgcmVhZG9ubHkgc2NoZWR1bGVyRXJyb3IkID0gdGhpcy5kYnhGaXJlYmFzZURldmVsb3BtZW50U2NoZWR1bGVyU2VydmljZS5lcnJvciQucGlwZShcbiAgICBtYXAoKHgpID0+ICh4ID8gJ0Vycm9yIE9jY3VyZWQnIDogJ09rJykpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgZm9ybURhdGEkOiBPYnNlcnZhYmxlPERieEZpcmViYXNlRGV2ZWxvcG1lbnRQb3B1cENvbnRlbnRGb3JtVmFsdWU+ID0gdGhpcy5fYWN0aXZlRW50cnlTZWxlY3Rvci5waXBlKFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgbWFwKChzcGVjaWZpZXIpID0+ICh7IHNwZWNpZmllciB9KSlcbiAgKTtcblxuICByZWFkb25seSBzY2hlZHVsZXJSdW5uaW5nU2lnbmFsID0gdG9TaWduYWwodGhpcy5zY2hlZHVsZXJSdW5uaW5nJCk7XG4gIHJlYWRvbmx5IHNjaGVkdWxlckludGVydmFsU2lnbmFsID0gdG9TaWduYWwodGhpcy5zY2hlZHVsZXJJbnRlcnZhbCQpO1xuICByZWFkb25seSBzY2hlZHVsZXJFcnJvclNpZ25hbCA9IHRvU2lnbmFsKHRoaXMuc2NoZWR1bGVyRXJyb3IkKTtcblxuICByZWFkb25seSBhY3RpdmVFbnRyeVNpZ25hbCA9IHRvU2lnbmFsKHRoaXMuYWN0aXZlRW50cnkkKTtcbiAgcmVhZG9ubHkgcmlnaHRUaXRsZVNpZ25hbCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuYWN0aXZlRW50cnlTaWduYWwoKT8ubGFiZWwpO1xuICByZWFkb25seSB3aWRnZXRDb25maWdTaWduYWwgPSBjb21wdXRlZDxNYXliZTxEYnhXaWRnZXREYXRhUGFpcj4+KCgpID0+IHtcbiAgICBjb25zdCB3aWRnZXQgPSB0aGlzLmFjdGl2ZUVudHJ5U2lnbmFsKCk/LndpZGdldDtcbiAgICBsZXQgd2lkZ2V0Q29uZmlnOiBNYXliZTxEYnhXaWRnZXREYXRhUGFpcj4gPSB1bmRlZmluZWQ7XG5cbiAgICBpZiAod2lkZ2V0KSB7XG4gICAgICB3aWRnZXRDb25maWcgPSB7IHR5cGU6IHdpZGdldC50eXBlLCBkYXRhOiB1bmRlZmluZWQgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gd2lkZ2V0Q29uZmlnO1xuICB9KTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLnR3b0NvbHVtbnNDb250ZXh0U3RvcmUuc2V0U2hvd1JpZ2h0KHRoaXMuc2hvd1JpZ2h0JCk7XG4gICAgY2xlYW5TdWJzY3JpcHRpb24oXG4gICAgICB0aGlzLnR3b0NvbHVtbnNDb250ZXh0U3RvcmUuYmFjayQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5jbGVhclNlbGVjdGlvbigpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcmVhZG9ubHkgaGFuZGxlRm9ybVVwZGF0ZTogV29ya1VzaW5nQ29udGV4dDxEYnhGaXJlYmFzZURldmVsb3BtZW50UG9wdXBDb250ZW50Rm9ybVZhbHVlLCB2b2lkPiA9ICh2YWx1ZSwgY29udGV4dCkgPT4ge1xuICAgIHRoaXMuX2FjdGl2ZUVudHJ5U2VsZWN0b3IubmV4dCh2YWx1ZS5zcGVjaWZpZXIpO1xuICAgIGNvbnRleHQuc3VjY2VzcygpO1xuICB9O1xuXG4gIHJlYWRvbmx5IGlzRm9ybU1vZGlmaWVkOiBJc01vZGlmaWVkRnVuY3Rpb248RGJ4RmlyZWJhc2VEZXZlbG9wbWVudFBvcHVwQ29udGVudEZvcm1WYWx1ZT4gPSAodmFsdWUpID0+IHtcbiAgICByZXR1cm4gdGhpcy5fYWN0aXZlRW50cnlTZWxlY3Rvci5waXBlKFxuICAgICAgbWFwKChjdXJyZW50U2VsZWN0b3IpID0+IHZhbHVlLnNwZWNpZmllciAhPT0gY3VycmVudFNlbGVjdG9yKSxcbiAgICAgIGZpcnN0KClcbiAgICApO1xuICB9O1xuXG4gIGNsZWFyU2VsZWN0aW9uKCkge1xuICAgIHRoaXMuX2FjdGl2ZUVudHJ5U2VsZWN0b3IubmV4dCh1bmRlZmluZWQpO1xuICB9XG59XG4iLCI8ZGJ4LXR3by1jb2x1bW4gY2xhc3M9XCJkYngtZmlyZWJhc2UtZGV2ZWxvcG1lbnQtcG9wdXAtY29udGVudFwiIFtkYnhUd29Db2x1bW5GdWxsTGVmdF09XCJ0cnVlXCI+XG4gIDxkYngtdHdvLWJsb2NrIGxlZnQ+XG4gICAgPGRpdj5cbiAgICAgIDxoND5JbmZvPC9oND5cbiAgICAgIDxwPlNjaGVkdWxlciAoUnVubmluZyk6IHt7IHNjaGVkdWxlclJ1bm5pbmdTaWduYWwoKSB9fSA6IHt7IHNjaGVkdWxlckludGVydmFsU2lnbmFsKCkgfX1zIDoge3sgc2NoZWR1bGVyRXJyb3JTaWduYWwoKSB9fTwvcD5cbiAgICAgIDxkaXY+XG4gICAgICAgIEBpZiAoc2hvd0VtdWxhdG9yQnV0dG9uKSB7XG4gICAgICAgICAgPGRieC1hbmNob3IgW2FuY2hvcl09XCJlbXVsYXRvclVJQW5jaG9yXCI+XG4gICAgICAgICAgICA8YnV0dG9uIG1hdC1mbGF0LWJ1dHRvbiBjb2xvcj1cImFjY2VudFwiPkVtdWxhdG9yIEVuYWJsZWQ8L2J1dHRvbj5cbiAgICAgICAgICA8L2RieC1hbmNob3I+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXY+XG4gICAgICA8aDQ+VG9vbHM8L2g0PlxuICAgICAgPGRpdiBkYnhBY3Rpb24gZGJ4QWN0aW9uRW5mb3JjZU1vZGlmaWVkIGRieEFjdGlvbkF1dG9UcmlnZ2VyIHVzZUluc3RhbnRUcmlnZ2VyUHJlc2V0IFtkYnhBY3Rpb25IYW5kbGVyXT1cImhhbmRsZUZvcm1VcGRhdGVcIj5cbiAgICAgICAgPGRieC1maXJlYmFzZS1kZXZlbG9wbWVudC1wb3B1cC1jb250ZW50LWZvcm0gW2NvbmZpZ109XCJmb3JtQ29uZmlnJFwiIGRieEFjdGlvbkZvcm0gW2RieEFjdGlvbkZvcm1Jc01vZGlmaWVkXT1cImlzRm9ybU1vZGlmaWVkXCIgW2RieEZvcm1Tb3VyY2VdPVwiZm9ybURhdGEkXCIgZGJ4Rm9ybVNvdXJjZU1vZGU9XCJhbHdheXNcIj48L2RieC1maXJlYmFzZS1kZXZlbG9wbWVudC1wb3B1cC1jb250ZW50LWZvcm0+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kYngtdHdvLWJsb2NrPlxuICA8ZGJ4LXR3by1jb2x1bW4tcmlnaHQgcmlnaHQgW2hlYWRlcl09XCJyaWdodFRpdGxlU2lnbmFsKClcIj5cbiAgICA8ZGJ4LXdpZGdldC12aWV3IFtjb25maWddPVwid2lkZ2V0Q29uZmlnU2lnbmFsKClcIj48L2RieC13aWRnZXQtdmlldz5cbiAgPC9kYngtdHdvLWNvbHVtbi1yaWdodD5cbjwvZGJ4LXR3by1jb2x1bW4+XG4iXX0=
@@ -5,8 +5,9 @@ import { DbxFirebaseModelEntitiesEntityComponent } from './model.entities.entity
5
5
  import { toObservable, toSignal } from '@angular/core/rxjs-interop';
6
6
  import { combineLatest, combineLatestWith, defaultIfEmpty, distinctUntilChanged, map, shareReplay, switchMap } from 'rxjs';
7
7
  import { filterUniqueValues, reverseCompareFn, separateValues, sortByNumberFunction } from '@dereekb/util';
8
- import { beginLoading, filterMaybeArray, loadingStateContext, mapLoadingStateValueWithOperator, switchMapMaybe, valueFromFinishedLoadingState } from '@dereekb/rxjs';
8
+ import { beginLoading, filterMaybeArray, mapLoadingStateValueWithOperator, switchMapMaybe, valueFromFinishedLoadingState } from '@dereekb/rxjs';
9
9
  import { DbxFirebaseModelEntitiesWidgetService } from './model.entities.widget.service';
10
+ import { cleanLoadingContext } from '@dereekb/dbx-core';
10
11
  import * as i0 from "@angular/core";
11
12
  export class DbxFirebaseModelEntitiesComponent {
12
13
  entitiesWidgetService = inject(DbxFirebaseModelEntitiesWidgetService);
@@ -63,10 +64,7 @@ export class DbxFirebaseModelEntitiesComponent {
63
64
  return onlyShowRegisteredTypes && Boolean(unregisteredEntities?.length);
64
65
  });
65
66
  hasNoEntitiesSignal = computed(() => !this.entitiesWithKeysSignal()?.length);
66
- context = loadingStateContext({ obs: this.allEntitiesState$ });
67
- ngOnDestroy() {
68
- this.context.destroy();
69
- }
67
+ context = cleanLoadingContext({ obs: this.allEntitiesState$ });
70
68
  clickShowUnregisteredEntities() {
71
69
  this.showUnregisteredTypesSignal.set(true);
72
70
  }
@@ -119,4 +117,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
119
117
  standalone: true
120
118
  }]
121
119
  }] });
122
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuZW50aXRpZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvbW9kZWwvbW9kdWxlcy9tb2RlbC9lbnRpdGllcy9tb2RlbC5lbnRpdGllcy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0csT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSw0QkFBNEIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzdHLE9BQU8sRUFBRSx1Q0FBdUMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzVGLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxjQUFjLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFjLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkksT0FBTyxFQUFFLGtCQUFrQixFQUFTLGdCQUFnQixFQUFFLGNBQWMsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsSCxPQUFPLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFnQixtQkFBbUIsRUFBRSxnQ0FBZ0MsRUFBRSxjQUFjLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkwsT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0saUNBQWlDLENBQUM7O0FBa0N4RixNQUFNLE9BQU8saUNBQWlDO0lBQ25DLHFCQUFxQixHQUFHLE1BQU0sQ0FBQyxx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dCwgY29tcHV0ZWQsIGluamVjdCwgaW5wdXQsIE9uRGVzdHJveSwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZU1vZGVsRW50aXR5LCBEYnhGaXJlYmFzZU1vZGVsRW50aXR5V2l0aEtleUFuZFN0b3JlLCBEYnhGaXJlYmFzZU1vZGVsRW50aXR5V2l0aFN0b3JlIH0gZnJvbSAnLi9tb2RlbC5lbnRpdGllcyc7XG5pbXBvcnQgeyBNYXRBY2NvcmRpb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9leHBhbnNpb24nO1xuaW1wb3J0IHsgRGJ4SWNvbkJ1dHRvbkNvbXBvbmVudCwgRGJ4TGlzdEVtcHR5Q29udGVudENvbXBvbmVudCwgRGJ4TG9hZGluZ0NvbXBvbmVudCB9IGZyb20gJ0BkZXJlZWtiL2RieC13ZWInO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VNb2RlbEVudGl0aWVzRW50aXR5Q29tcG9uZW50IH0gZnJvbSAnLi9tb2RlbC5lbnRpdGllcy5lbnRpdHkuY29tcG9uZW50JztcbmltcG9ydCB7IHRvT2JzZXJ2YWJsZSwgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBjb21iaW5lTGF0ZXN0V2l0aCwgZGVmYXVsdElmRW1wdHksIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIE9ic2VydmFibGUsIHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlclVuaXF1ZVZhbHVlcywgTWF5YmUsIHJldmVyc2VDb21wYXJlRm4sIHNlcGFyYXRlVmFsdWVzLCBzb3J0QnlOdW1iZXJGdW5jdGlvbiB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgYmVnaW5Mb2FkaW5nLCBmaWx0ZXJNYXliZUFycmF5LCBMb2FkaW5nU3RhdGUsIGxvYWRpbmdTdGF0ZUNvbnRleHQsIG1hcExvYWRpbmdTdGF0ZVZhbHVlV2l0aE9wZXJhdG9yLCBzd2l0Y2hNYXBNYXliZSwgdmFsdWVGcm9tRmluaXNoZWRMb2FkaW5nU3RhdGUgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcbmltcG9ydCB7IERieEZpcmViYXNlTW9kZWxFbnRpdGllc1dpZGdldFNlcnZpY2UgfSBmcm9tICcuL21vZGVsLmVudGl0aWVzLndpZGdldC5zZXJ2aWNlJztcblxuaW50ZXJmYWNlIERieEZpcmViYXNlTW9kZWxFbnRpdGllc0NvbXBvbmVudEFsbEVudGl0aWVzIHtcbiAgcmVhZG9ubHkgZW50aXRpZXM6IERieEZpcmViYXNlTW9kZWxFbnRpdHlXaXRoS2V5QW5kU3RvcmVbXTtcbiAgcmVhZG9ubHkgcmVnaXN0ZXJlZEVudGl0aWVzOiBEYnhGaXJlYmFzZU1vZGVsRW50aXR5V2l0aEtleUFuZFN0b3JlW107XG4gIHJlYWRvbmx5IHVucmVnaXN0ZXJlZEVudGl0aWVzOiBEYnhGaXJlYmFzZU1vZGVsRW50aXR5V2l0aEtleUFuZFN0b3JlW107XG4gIHJlYWRvbmx5IG9ubHlTaG93UmVnaXN0ZXJlZFR5cGVzPzogTWF5YmU8Ym9vbGVhbj47XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RieC1maXJlYmFzZS1tb2RlbC1lbnRpdGllcycsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRieC1sb2FkaW5nIFtsaW5lYXJdPVwidHJ1ZVwiIFtjb250ZXh0XT1cImNvbnRleHRcIj5cbiAgICAgIDxtYXQtYWNjb3JkaW9uIGNsYXNzPVwiZGJ4LWZpcmViYXNlLW1vZGVsLWVudGl0aWVzLWFjY29yZGlvblwiIFttdWx0aV09XCJtdWx0aSgpXCI+XG4gICAgICAgIEBmb3IgKGVudGl0eSBvZiBlbnRpdGllc1dpdGhLZXlzU2lnbmFsKCk7IHRyYWNrIGVudGl0eS5rZXkpIHtcbiAgICAgICAgICA8ZGJ4LWZpcmViYXNlLW1vZGVsLWVudGl0aWVzLWVudGl0eSBbZW50aXR5XT1cImVudGl0eVwiPjwvZGJ4LWZpcmViYXNlLW1vZGVsLWVudGl0aWVzLWVudGl0eT5cbiAgICAgICAgfVxuICAgICAgPC9tYXQtYWNjb3JkaW9uPlxuICAgICAgQGlmIChoYXNOb0VudGl0aWVzU2lnbmFsKCkpIHtcbiAgICAgICAgPGRieC1saXN0LWVtcHR5LWNvbnRlbnQ+XG4gICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2VtcHR5XVwiPjwvbmctY29udGVudD5cbiAgICAgICAgPC9kYngtbGlzdC1lbXB0eS1jb250ZW50PlxuICAgICAgfVxuICAgICAgQGlmIChzaG93Vmlld1VucmVnaXN0ZXJlZEVudGl0aWVzQnV0dG9uU2lnbmFsKCkpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImRieC1wdDMgdGV4dC1jZW50ZXJcIj5cbiAgICAgICAgICA8ZGJ4LWljb24tYnV0dG9uIGljb249XCJ2aXNpYmlsaXR5XCIgW3RleHRdPVwiJ1ZpZXcgJyArIHVucmVnaXN0ZXJlZEVudGl0aWVzQ291bnRTaWduYWwoKSArICcgSGlkZGVuIEVudGl0aWVzJ1wiIChidXR0b25DbGljayk9XCJjbGlja1Nob3dVbnJlZ2lzdGVyZWRFbnRpdGllcygpXCI+PC9kYngtaWNvbi1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGJ4LWxvYWRpbmc+XG4gIGAsXG4gIGltcG9ydHM6IFtNYXRBY2NvcmRpb24sIERieExvYWRpbmdDb21wb25lbnQsIERieEZpcmViYXNlTW9kZWxFbnRpdGllc0VudGl0eUNvbXBvbmVudCwgRGJ4TGlzdEVtcHR5Q29udGVudENvbXBvbmVudCwgRGJ4SWNvbkJ1dHRvbkNvbXBvbmVudF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIERieEZpcmViYXNlTW9kZWxFbnRpdGllc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHJlYWRvbmx5IGVudGl0aWVzV2lkZ2V0U2VydmljZSA9IGluamVjdChEYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNXaWRnZXRTZXJ2aWNlKTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgYWNjb3JkaW9uIHNob3VsZCBhbGxvdyBtdWx0aXBsZSBleHBhbmRlZCBwYW5lbHMuXG4gICAqL1xuICByZWFkb25seSBtdWx0aSA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xuXG4gIC8qKlxuICAgKiBJZiB0cnVlLCB3aWxsIG9ubHkgc2hvdyBlbnRpdGllcyB0aGF0IGhhdmUgYSByZWdpc3RlcmVkIHdpZGdldCBlbnRyeS5cbiAgICpcbiAgICogRGVmYXVsdHMgdG8gdHJ1ZS5cbiAgICovXG4gIHJlYWRvbmx5IG9ubHlTaG93UmVnaXN0ZXJlZFR5cGVzID0gaW5wdXQ8TWF5YmU8Ym9vbGVhbj4+KHRydWUpO1xuXG4gIC8qKlxuICAgKiBJZiB0cnVlLCB3aWxsIHNob3cgdW5yZWdpc3RlcmVkIGVudGl0aWVzLCBldmVuIGlmIG9ubHlTaG93UmVnaXN0ZXJlZFR5cGVzIGlzIHRydWUuXG4gICAqL1xuICByZWFkb25seSBzaG93VW5yZWdpc3RlcmVkVHlwZXNTaWduYWwgPSBzaWduYWw8TWF5YmU8Ym9vbGVhbj4+KHVuZGVmaW5lZCk7XG5cbiAgcmVhZG9ubHkgb25seVNob3dSZWdpc3RlcmVkVHlwZXNTaWduYWwgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3Qgb25seVNob3dSZWdpc3RlcmVkVHlwZXMgPSB0aGlzLm9ubHlTaG93UmVnaXN0ZXJlZFR5cGVzKCk7XG4gICAgY29uc3Qgc2hvd1VucmVnaXN0ZXJlZFR5cGVzID0gdGhpcy5zaG93VW5yZWdpc3RlcmVkVHlwZXNTaWduYWwoKTtcblxuICAgIHJldHVybiAhc2hvd1VucmVnaXN0ZXJlZFR5cGVzICYmIG9ubHlTaG93UmVnaXN0ZXJlZFR5cGVzO1xuICB9KTtcblxuICByZWFkb25seSBvbmx5U2hvd1JlZ2lzdGVyZWRUeXBlcyQgPSB0b09ic2VydmFibGUodGhpcy5vbmx5U2hvd1JlZ2lzdGVyZWRUeXBlc1NpZ25hbCkucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCBzaGFyZVJlcGxheSgxKSk7XG5cbiAgcmVhZG9ubHkgZW50aXRpZXMgPSBpbnB1dDxPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxEYnhGaXJlYmFzZU1vZGVsRW50aXR5W10+Pj4oKTtcbiAgcmVhZG9ubHkgZW50aXRpZXMkOiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxEYnhGaXJlYmFzZU1vZGVsRW50aXR5W10+PiA9IHRvT2JzZXJ2YWJsZSh0aGlzLmVudGl0aWVzKS5waXBlKFxuICAgIHN3aXRjaE1hcE1heWJlKCksXG4gICAgbWFwKCh4KSA9PiB4ID8/IGJlZ2luTG9hZGluZzxEYnhGaXJlYmFzZU1vZGVsRW50aXR5W10+KCkpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgYWxsRW50aXRpZXNTdGF0ZSQ6IE9ic2VydmFibGU8TG9hZGluZ1N0YXRlPERieEZpcmViYXNlTW9kZWxFbnRpdGllc0NvbXBvbmVudEFsbEVudGl0aWVzPj4gPSB0aGlzLmVudGl0aWVzJC5waXBlKFxuICAgIG1hcExvYWRpbmdTdGF0ZVZhbHVlV2l0aE9wZXJhdG9yKFxuICAgICAgc3dpdGNoTWFwKChlbnRpdGllcykgPT4ge1xuICAgICAgICBjb25zdCBzb3J0UHJpb3JpdHlNYXAgPSB0aGlzLmVudGl0aWVzV2lkZ2V0U2VydmljZS5nZXRTb3J0UHJpb3JpdHlNYXAoKTtcbiAgICAgICAgY29uc3QgZW50aXRpZXNXaXRoU3RvcmUgPSAoZW50aXRpZXMgPz8gW10pLmZpbHRlcigoeCkgPT4gQm9vbGVhbih4LnN0b3JlKSkgYXMgRGJ4RmlyZWJhc2VNb2RlbEVudGl0eVdpdGhTdG9yZVtdO1xuXG4gICAgICAgIGludGVyZmFjZSBEYnhGaXJlYmFzZU1vZGVsRW50aXR5V2l0aEtleUFuZFN0b3JlQW5kU29ydFByaW9yaXR5IGV4dGVuZHMgRGJ4RmlyZWJhc2VNb2RlbEVudGl0eVdpdGhLZXlBbmRTdG9yZSB7XG4gICAgICAgICAgcmVhZG9ubHkgc29ydFByaW9yaXR5OiBudW1iZXI7XG4gICAgICAgICAgcmVhZG9ubHkgaXNSZWdpc3RlcmVkVHlwZTogYm9vbGVhbjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGVudGl0aWVzV2l0aEtleXM6IE9ic2VydmFibGU8TWF5YmU8RGJ4RmlyZWJhc2VNb2RlbEVudGl0eVdpdGhLZXlBbmRTdG9yZUFuZFNvcnRQcmlvcml0eT5bXT4gPSBjb21iaW5lTGF0ZXN0KFxuICAgICAgICAgIGVudGl0aWVzV2l0aFN0b3JlLm1hcCgoeCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc29ydFByaW9yaXR5TWFwRW50cnkgPSBzb3J0UHJpb3JpdHlNYXAuZ2V0KHgubW9kZWxJZGVudGl0eSk7XG4gICAgICAgICAgICBjb25zdCBpc1JlZ2lzdGVyZWRUeXBlID0gc29ydFByaW9yaXR5TWFwRW50cnkgIT0gbnVsbDtcbiAgICAgICAgICAgIGNvbnN0IHNvcnRQcmlvcml0eSA9IHNvcnRQcmlvcml0eU1hcEVudHJ5ID8/IC0yO1xuXG4gICAgICAgICAgICBjb25zdCBvYnM6IE9ic2VydmFibGU8TWF5YmU8RGJ4RmlyZWJhc2VNb2RlbEVudGl0eVdpdGhLZXlBbmRTdG9yZUFuZFNvcnRQcmlvcml0eT4+ID0geC5zdG9yZS5jdXJyZW50S2V5JC5waXBlKG1hcCgoa2V5KSA9PiAoa2V5ID8geyBrZXksIC4uLngsIHNvcnRQcmlvcml0eSwgaXNSZWdpc3RlcmVkVHlwZSB9IDogbnVsbCkpKTtcbiAgICAgICAgICAgIHJldHVybiBvYnM7XG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gZW50aXRpZXNXaXRoS2V5cy5waXBlKFxuICAgICAgICAgIGZpbHRlck1heWJlQXJyYXkoKSxcbiAgICAgICAgICBkZWZhdWx0SWZFbXB0eShbXSksXG4gICAgICAgICAgY29tYmluZUxhdGVzdFdpdGgodGhpcy5vbmx5U2hvd1JlZ2lzdGVyZWRUeXBlcyQpLFxuICAgICAgICAgIG1hcCgoW2VudGl0aWVzLCBvbmx5U2hvd1JlZ2lzdGVyZWRUeXBlc10pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZpbHRlcmVkRW50aXRpZXMgPSBmaWx0ZXJVbmlxdWVWYWx1ZXMoZW50aXRpZXMsICh4KSA9PiB4LmtleSkuc29ydChyZXZlcnNlQ29tcGFyZUZuKHNvcnRCeU51bWJlckZ1bmN0aW9uKCh4KSA9PiB4LnNvcnRQcmlvcml0eSkpKTtcblxuICAgICAgICAgICAgY29uc3QgeyBpbmNsdWRlZDogcmVnaXN0ZXJlZEVudGl0aWVzLCBleGNsdWRlZDogdW5yZWdpc3RlcmVkRW50aXRpZXMgfSA9IHNlcGFyYXRlVmFsdWVzKGZpbHRlcmVkRW50aXRpZXMsICh4KSA9PiB4LmlzUmVnaXN0ZXJlZFR5cGUpO1xuXG4gICAgICAgICAgICBjb25zdCByZXN1bHQ6IERieEZpcmViYXNlTW9kZWxFbnRpdGllc0NvbXBvbmVudEFsbEVudGl0aWVzID0ge1xuICAgICAgICAgICAgICBlbnRpdGllczogb25seVNob3dSZWdpc3RlcmVkVHlwZXMgPyByZWdpc3RlcmVkRW50aXRpZXMgOiBmaWx0ZXJlZEVudGl0aWVzLFxuICAgICAgICAgICAgICBvbmx5U2hvd1JlZ2lzdGVyZWRUeXBlcyxcbiAgICAgICAgICAgICAgcmVnaXN0ZXJlZEVudGl0aWVzLFxuICAgICAgICAgICAgICB1bnJlZ2lzdGVyZWRFbnRpdGllc1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgICAgfSlcbiAgICApLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgYWxsRW50aXRpZXMkID0gdGhpcy5hbGxFbnRpdGllc1N0YXRlJC5waXBlKHZhbHVlRnJvbUZpbmlzaGVkTG9hZGluZ1N0YXRlKCksIHNoYXJlUmVwbGF5KDEpKTtcbiAgcmVhZG9ubHkgYWxsRW50aXRpZXNTaWduYWwgPSB0b1NpZ25hbCh0aGlzLmFsbEVudGl0aWVzJCwgeyBpbml0aWFsVmFsdWU6IHsgZW50aXRpZXM6IFtdLCByZWdpc3RlcmVkRW50aXRpZXM6IFtdLCB1bnJlZ2lzdGVyZWRFbnRpdGllczogW10sIG9ubHlTaG93UmVnaXN0ZXJlZFR5cGVzOiBmYWxzZSB9IH0pO1xuXG4gIHJlYWRvbmx5IGVudGl0aWVzV2l0aEtleXNTaWduYWwgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmFsbEVudGl0aWVzU2lnbmFsKCk/LmVudGl0aWVzKTtcbiAgcmVhZG9ubHkgdW5yZWdpc3RlcmVkRW50aXRpZXNDb3VudFNpZ25hbCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuYWxsRW50aXRpZXNTaWduYWwoKT8udW5yZWdpc3RlcmVkRW50aXRpZXM/Lmxlbmd0aCA/PyAwKTtcblxuICByZWFkb25seSBzaG93Vmlld1VucmVnaXN0ZXJlZEVudGl0aWVzQnV0dG9uU2lnbmFsID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IHsgb25seVNob3dSZWdpc3RlcmVkVHlwZXMsIHVucmVnaXN0ZXJlZEVudGl0aWVzIH0gPSB0aGlzLmFsbEVudGl0aWVzU2lnbmFsKCkgPz8ge307XG4gICAgcmV0dXJuIG9ubHlTaG93UmVnaXN0ZXJlZFR5cGVzICYmIEJvb2xlYW4odW5yZWdpc3RlcmVkRW50aXRpZXM/Lmxlbmd0aCk7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IGhhc05vRW50aXRpZXNTaWduYWwgPSBjb21wdXRlZCgoKSA9PiAhdGhpcy5lbnRpdGllc1dpdGhLZXlzU2lnbmFsKCk/Lmxlbmd0aCk7XG5cbiAgcmVhZG9ubHkgY29udGV4dCA9IGxvYWRpbmdTdGF0ZUNvbnRleHQoeyBvYnM6IHRoaXMuYWxsRW50aXRpZXNTdGF0ZSQgfSk7XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5jb250ZXh0LmRlc3Ryb3koKTtcbiAgfVxuXG4gIGNsaWNrU2hvd1VucmVnaXN0ZXJlZEVudGl0aWVzKCkge1xuICAgIHRoaXMuc2hvd1VucmVnaXN0ZXJlZFR5cGVzU2lnbmFsLnNldCh0cnVlKTtcbiAgfVxufVxuIl19
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuZW50aXRpZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvbW9kZWwvbW9kdWxlcy9tb2RlbC9lbnRpdGllcy9tb2RlbC5lbnRpdGllcy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFcEcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzNELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSw0QkFBNEIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzdHLE9BQU8sRUFBRSx1Q0FBdUMsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzVGLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxjQUFjLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFjLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkksT0FBTyxFQUFFLGtCQUFrQixFQUFTLGdCQUFnQixFQUFFLGNBQWMsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsSCxPQUFPLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixFQUFnQixnQ0FBZ0MsRUFBRSxjQUFjLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUosT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDeEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBa0N4RCxNQUFNLE9BQU8saUNB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LENBQUM7SUFFOUcsd0NBQXdDLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtRQUNoRSxNQUFNLEVBQUUsdUJBQXVCLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLENBQUM7UUFDekYsT0FBTyx1QkFBdUIsSUFBSSxPQUFPLENBQUMsb0JBQW9CLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDMUUsQ0FBQyxDQUFDLENBQUM7SUFFTSxtQkFBbUIsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUU3RSxPQUFPLEdBQUcsbUJBQW1CLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQztJQUV4RSw2QkFBNkI7UUFDM0IsSUFBSSxDQUFDLDJCQUEyQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QyxDQUFDO3dHQW5HVSxpQ0FBaUM7NEZBQWpDLGlDQUFpQywwZ0JBdkJsQzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JULDREQUNTLFlBQVksK0lBQUUsbUJBQW1CLG1LQUFFLHVDQUF1QyxtR0FBRSw0QkFBNEIsbUVBQUUsc0JBQXNCOzs0RkFJL0gsaUNBQWlDO2tCQXpCN0MsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsNkJBQTZCO29CQUN2QyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsdUNBQXVDLEVBQUUsNEJBQTRCLEVBQUUsc0JBQXNCLENBQUM7b0JBQzNJLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5qZWN0LCBpbnB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZU1vZGVsRW50aXR5LCBEYnhGaXJlYmFzZU1vZGVsRW50aXR5V2l0aEtleUFuZFN0b3JlLCBEYnhGaXJlYmFzZU1vZGVsRW50aXR5V2l0aFN0b3JlIH0gZnJvbSAnLi9tb2RlbC5lbnRpdGllcyc7XG5pbXBvcnQgeyBNYXRBY2NvcmRpb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9leHBhbnNpb24nO1xuaW1wb3J0IHsgRGJ4SWNvbkJ1dHRvbkNvbXBvbmVudCwgRGJ4TGlzdEVtcHR5Q29udGVudENvbXBvbmVudCwgRGJ4TG9hZGluZ0NvbXBvbmVudCB9IGZyb20gJ0BkZXJlZWtiL2RieC13ZWInO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VNb2RlbEVudGl0aWVzRW50aXR5Q29tcG9uZW50IH0gZnJvbSAnLi9tb2RlbC5lbnRpdGllcy5lbnRpdHkuY29tcG9uZW50JztcbmltcG9ydCB7IHRvT2JzZXJ2YWJsZSwgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0LCBjb21iaW5lTGF0ZXN0V2l0aCwgZGVmYXVsdElmRW1wdHksIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIE9ic2VydmFibGUsIHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlclVuaXF1ZVZhbHVlcywgTWF5YmUsIHJldmVyc2VDb21wYXJlRm4sIHNlcGFyYXRlVmFsdWVzLCBzb3J0QnlOdW1iZXJGdW5jdGlvbiB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuaW1wb3J0IHsgYmVnaW5Mb2FkaW5nLCBmaWx0ZXJNYXliZUFycmF5LCBMb2FkaW5nU3RhdGUsIG1hcExvYWRpbmdTdGF0ZVZhbHVlV2l0aE9wZXJhdG9yLCBzd2l0Y2hNYXBNYXliZSwgdmFsdWVGcm9tRmluaXNoZWRMb2FkaW5nU3RhdGUgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcbmltcG9ydCB7IERieEZpcmViYXNlTW9kZWxFbnRpdGllc1dpZGdldFNlcnZpY2UgfSBmcm9tICcuL21vZGVsLmVudGl0aWVzLndpZGdldC5zZXJ2aWNlJztcbmltcG9ydCB7IGNsZWFuTG9hZGluZ0NvbnRleHQgfSBmcm9tICdAZGVyZWVrYi9kYngtY29yZSc7XG5cbmludGVyZmFjZSBEYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNDb21wb25lbnRBbGxFbnRpdGllcyB7XG4gIHJlYWRvbmx5IGVudGl0aWVzOiBEYnhGaXJlYmFzZU1vZGVsRW50aXR5V2l0aEtleUFuZFN0b3JlW107XG4gIHJlYWRvbmx5IHJlZ2lzdGVyZWRFbnRpdGllczogRGJ4RmlyZWJhc2VNb2RlbEVudGl0eVdpdGhLZXlBbmRTdG9yZVtdO1xuICByZWFkb25seSB1bnJlZ2lzdGVyZWRFbnRpdGllczogRGJ4RmlyZWJhc2VNb2RlbEVudGl0eVdpdGhLZXlBbmRTdG9yZVtdO1xuICByZWFkb25seSBvbmx5U2hvd1JlZ2lzdGVyZWRUeXBlcz86IE1heWJlPGJvb2xlYW4+O1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkYngtZmlyZWJhc2UtbW9kZWwtZW50aXRpZXMnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkYngtbG9hZGluZyBbbGluZWFyXT1cInRydWVcIiBbY29udGV4dF09XCJjb250ZXh0XCI+XG4gICAgICA8bWF0LWFjY29yZGlvbiBjbGFzcz1cImRieC1maXJlYmFzZS1tb2RlbC1lbnRpdGllcy1hY2NvcmRpb25cIiBbbXVsdGldPVwibXVsdGkoKVwiPlxuICAgICAgICBAZm9yIChlbnRpdHkgb2YgZW50aXRpZXNXaXRoS2V5c1NpZ25hbCgpOyB0cmFjayBlbnRpdHkua2V5KSB7XG4gICAgICAgICAgPGRieC1maXJlYmFzZS1tb2RlbC1lbnRpdGllcy1lbnRpdHkgW2VudGl0eV09XCJlbnRpdHlcIj48L2RieC1maXJlYmFzZS1tb2RlbC1lbnRpdGllcy1lbnRpdHk+XG4gICAgICAgIH1cbiAgICAgIDwvbWF0LWFjY29yZGlvbj5cbiAgICAgIEBpZiAoaGFzTm9FbnRpdGllc1NpZ25hbCgpKSB7XG4gICAgICAgIDxkYngtbGlzdC1lbXB0eS1jb250ZW50PlxuICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltlbXB0eV1cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvZGJ4LWxpc3QtZW1wdHktY29udGVudD5cbiAgICAgIH1cbiAgICAgIEBpZiAoc2hvd1ZpZXdVbnJlZ2lzdGVyZWRFbnRpdGllc0J1dHRvblNpZ25hbCgpKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkYngtcHQzIHRleHQtY2VudGVyXCI+XG4gICAgICAgICAgPGRieC1pY29uLWJ1dHRvbiBpY29uPVwidmlzaWJpbGl0eVwiIFt0ZXh0XT1cIidWaWV3ICcgKyB1bnJlZ2lzdGVyZWRFbnRpdGllc0NvdW50U2lnbmFsKCkgKyAnIEhpZGRlbiBFbnRpdGllcydcIiAoYnV0dG9uQ2xpY2spPVwiY2xpY2tTaG93VW5yZWdpc3RlcmVkRW50aXRpZXMoKVwiPjwvZGJ4LWljb24tYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2RieC1sb2FkaW5nPlxuICBgLFxuICBpbXBvcnRzOiBbTWF0QWNjb3JkaW9uLCBEYnhMb2FkaW5nQ29tcG9uZW50LCBEYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNFbnRpdHlDb21wb25lbnQsIERieExpc3RFbXB0eUNvbnRlbnRDb21wb25lbnQsIERieEljb25CdXR0b25Db21wb25lbnRdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBEYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNDb21wb25lbnQge1xuICByZWFkb25seSBlbnRpdGllc1dpZGdldFNlcnZpY2UgPSBpbmplY3QoRGJ4RmlyZWJhc2VNb2RlbEVudGl0aWVzV2lkZ2V0U2VydmljZSk7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGFjY29yZGlvbiBzaG91bGQgYWxsb3cgbXVsdGlwbGUgZXhwYW5kZWQgcGFuZWxzLlxuICAgKi9cbiAgcmVhZG9ubHkgbXVsdGkgPSBpbnB1dDxib29sZWFuPih0cnVlKTtcblxuICAvKipcbiAgICogSWYgdHJ1ZSwgd2lsbCBvbmx5IHNob3cgZW50aXRpZXMgdGhhdCBoYXZlIGEgcmVnaXN0ZXJlZCB3aWRnZXQgZW50cnkuXG4gICAqXG4gICAqIERlZmF1bHRzIHRvIHRydWUuXG4gICAqL1xuICByZWFkb25seSBvbmx5U2hvd1JlZ2lzdGVyZWRUeXBlcyA9IGlucHV0PE1heWJlPGJvb2xlYW4+Pih0cnVlKTtcblxuICAvKipcbiAgICogSWYgdHJ1ZSwgd2lsbCBzaG93IHVucmVnaXN0ZXJlZCBlbnRpdGllcywgZXZlbiBpZiBvbmx5U2hvd1JlZ2lzdGVyZWRUeXBlcyBpcyB0cnVlLlxuICAgKi9cbiAgcmVhZG9ubHkgc2hvd1VucmVnaXN0ZXJlZFR5cGVzU2lnbmFsID0gc2lnbmFsPE1heWJlPGJvb2xlYW4+Pih1bmRlZmluZWQpO1xuXG4gIHJlYWRvbmx5IG9ubHlTaG93UmVnaXN0ZXJlZFR5cGVzU2lnbmFsID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IG9ubHlTaG93UmVnaXN0ZXJlZFR5cGVzID0gdGhpcy5vbmx5U2hvd1JlZ2lzdGVyZWRUeXBlcygpO1xuICAgIGNvbnN0IHNob3dVbnJlZ2lzdGVyZWRUeXBlcyA9IHRoaXMuc2hvd1VucmVnaXN0ZXJlZFR5cGVzU2lnbmFsKCk7XG5cbiAgICByZXR1cm4gIXNob3dVbnJlZ2lzdGVyZWRUeXBlcyAmJiBvbmx5U2hvd1JlZ2lzdGVyZWRUeXBlcztcbiAgfSk7XG5cbiAgcmVhZG9ubHkgb25seVNob3dSZWdpc3RlcmVkVHlwZXMkID0gdG9PYnNlcnZhYmxlKHRoaXMub25seVNob3dSZWdpc3RlcmVkVHlwZXNTaWduYWwpLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSwgc2hhcmVSZXBsYXkoMSkpO1xuXG4gIHJlYWRvbmx5IGVudGl0aWVzID0gaW5wdXQ8T2JzZXJ2YWJsZTxMb2FkaW5nU3RhdGU8RGJ4RmlyZWJhc2VNb2RlbEVudGl0eVtdPj4+KCk7XG4gIHJlYWRvbmx5IGVudGl0aWVzJDogT2JzZXJ2YWJsZTxMb2FkaW5nU3RhdGU8RGJ4RmlyZWJhc2VNb2RlbEVudGl0eVtdPj4gPSB0b09ic2VydmFibGUodGhpcy5lbnRpdGllcykucGlwZShcbiAgICBzd2l0Y2hNYXBNYXliZSgpLFxuICAgIG1hcCgoeCkgPT4geCA/PyBiZWdpbkxvYWRpbmc8RGJ4RmlyZWJhc2VNb2RlbEVudGl0eVtdPigpKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGFsbEVudGl0aWVzU3RhdGUkOiBPYnNlcnZhYmxlPExvYWRpbmdTdGF0ZTxEYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNDb21wb25lbnRBbGxFbnRpdGllcz4+ID0gdGhpcy5lbnRpdGllcyQucGlwZShcbiAgICBtYXBMb2FkaW5nU3RhdGVWYWx1ZVdpdGhPcGVyYXRvcihcbiAgICAgIHN3aXRjaE1hcCgoZW50aXRpZXMpID0+IHtcbiAgICAgICAgY29uc3Qgc29ydFByaW9yaXR5TWFwID0gdGhpcy5lbnRpdGllc1dpZGdldFNlcnZpY2UuZ2V0U29ydFByaW9yaXR5TWFwKCk7XG4gICAgICAgIGNvbnN0IGVudGl0aWVzV2l0aFN0b3JlID0gKGVudGl0aWVzID8/IFtdKS5maWx0ZXIoKHgpID0+IEJvb2xlYW4oeC5zdG9yZSkpIGFzIERieEZpcmViYXNlTW9kZWxFbnRpdHlXaXRoU3RvcmVbXTtcblxuICAgICAgICBpbnRlcmZhY2UgRGJ4RmlyZWJhc2VNb2RlbEVudGl0eVdpdGhLZXlBbmRTdG9yZUFuZFNvcnRQcmlvcml0eSBleHRlbmRzIERieEZpcmViYXNlTW9kZWxFbnRpdHlXaXRoS2V5QW5kU3RvcmUge1xuICAgICAgICAgIHJlYWRvbmx5IHNvcnRQcmlvcml0eTogbnVtYmVyO1xuICAgICAgICAgIHJlYWRvbmx5IGlzUmVnaXN0ZXJlZFR5cGU6IGJvb2xlYW47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBlbnRpdGllc1dpdGhLZXlzOiBPYnNlcnZhYmxlPE1heWJlPERieEZpcmViYXNlTW9kZWxFbnRpdHlXaXRoS2V5QW5kU3RvcmVBbmRTb3J0UHJpb3JpdHk+W10+ID0gY29tYmluZUxhdGVzdChcbiAgICAgICAgICBlbnRpdGllc1dpdGhTdG9yZS5tYXAoKHgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNvcnRQcmlvcml0eU1hcEVudHJ5ID0gc29ydFByaW9yaXR5TWFwLmdldCh4Lm1vZGVsSWRlbnRpdHkpO1xuICAgICAgICAgICAgY29uc3QgaXNSZWdpc3RlcmVkVHlwZSA9IHNvcnRQcmlvcml0eU1hcEVudHJ5ICE9IG51bGw7XG4gICAgICAgICAgICBjb25zdCBzb3J0UHJpb3JpdHkgPSBzb3J0UHJpb3JpdHlNYXBFbnRyeSA/PyAtMjtcblxuICAgICAgICAgICAgY29uc3Qgb2JzOiBPYnNlcnZhYmxlPE1heWJlPERieEZpcmViYXNlTW9kZWxFbnRpdHlXaXRoS2V5QW5kU3RvcmVBbmRTb3J0UHJpb3JpdHk+PiA9IHguc3RvcmUuY3VycmVudEtleSQucGlwZShtYXAoKGtleSkgPT4gKGtleSA/IHsga2V5LCAuLi54LCBzb3J0UHJpb3JpdHksIGlzUmVnaXN0ZXJlZFR5cGUgfSA6IG51bGwpKSk7XG4gICAgICAgICAgICByZXR1cm4gb2JzO1xuICAgICAgICAgIH0pXG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIGVudGl0aWVzV2l0aEtleXMucGlwZShcbiAgICAgICAgICBmaWx0ZXJNYXliZUFycmF5KCksXG4gICAgICAgICAgZGVmYXVsdElmRW1wdHkoW10pLFxuICAgICAgICAgIGNvbWJpbmVMYXRlc3RXaXRoKHRoaXMub25seVNob3dSZWdpc3RlcmVkVHlwZXMkKSxcbiAgICAgICAgICBtYXAoKFtlbnRpdGllcywgb25seVNob3dSZWdpc3RlcmVkVHlwZXNdKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBmaWx0ZXJlZEVudGl0aWVzID0gZmlsdGVyVW5pcXVlVmFsdWVzKGVudGl0aWVzLCAoeCkgPT4geC5rZXkpLnNvcnQocmV2ZXJzZUNvbXBhcmVGbihzb3J0QnlOdW1iZXJGdW5jdGlvbigoeCkgPT4geC5zb3J0UHJpb3JpdHkpKSk7XG5cbiAgICAgICAgICAgIGNvbnN0IHsgaW5jbHVkZWQ6IHJlZ2lzdGVyZWRFbnRpdGllcywgZXhjbHVkZWQ6IHVucmVnaXN0ZXJlZEVudGl0aWVzIH0gPSBzZXBhcmF0ZVZhbHVlcyhmaWx0ZXJlZEVudGl0aWVzLCAoeCkgPT4geC5pc1JlZ2lzdGVyZWRUeXBlKTtcblxuICAgICAgICAgICAgY29uc3QgcmVzdWx0OiBEYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNDb21wb25lbnRBbGxFbnRpdGllcyA9IHtcbiAgICAgICAgICAgICAgZW50aXRpZXM6IG9ubHlTaG93UmVnaXN0ZXJlZFR5cGVzID8gcmVnaXN0ZXJlZEVudGl0aWVzIDogZmlsdGVyZWRFbnRpdGllcyxcbiAgICAgICAgICAgICAgb25seVNob3dSZWdpc3RlcmVkVHlwZXMsXG4gICAgICAgICAgICAgIHJlZ2lzdGVyZWRFbnRpdGllcyxcbiAgICAgICAgICAgICAgdW5yZWdpc3RlcmVkRW50aXRpZXNcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgIH0pXG4gICAgKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGFsbEVudGl0aWVzJCA9IHRoaXMuYWxsRW50aXRpZXNTdGF0ZSQucGlwZSh2YWx1ZUZyb21GaW5pc2hlZExvYWRpbmdTdGF0ZSgpLCBzaGFyZVJlcGxheSgxKSk7XG4gIHJlYWRvbmx5IGFsbEVudGl0aWVzU2lnbmFsID0gdG9TaWduYWwodGhpcy5hbGxFbnRpdGllcyQsIHsgaW5pdGlhbFZhbHVlOiB7IGVudGl0aWVzOiBbXSwgcmVnaXN0ZXJlZEVudGl0aWVzOiBbXSwgdW5yZWdpc3RlcmVkRW50aXRpZXM6IFtdLCBvbmx5U2hvd1JlZ2lzdGVyZWRUeXBlczogZmFsc2UgfSB9KTtcblxuICByZWFkb25seSBlbnRpdGllc1dpdGhLZXlzU2lnbmFsID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5hbGxFbnRpdGllc1NpZ25hbCgpPy5lbnRpdGllcyk7XG4gIHJlYWRvbmx5IHVucmVnaXN0ZXJlZEVudGl0aWVzQ291bnRTaWduYWwgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmFsbEVudGl0aWVzU2lnbmFsKCk/LnVucmVnaXN0ZXJlZEVudGl0aWVzPy5sZW5ndGggPz8gMCk7XG5cbiAgcmVhZG9ubHkgc2hvd1ZpZXdVbnJlZ2lzdGVyZWRFbnRpdGllc0J1dHRvblNpZ25hbCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCB7IG9ubHlTaG93UmVnaXN0ZXJlZFR5cGVzLCB1bnJlZ2lzdGVyZWRFbnRpdGllcyB9ID0gdGhpcy5hbGxFbnRpdGllc1NpZ25hbCgpID8/IHt9O1xuICAgIHJldHVybiBvbmx5U2hvd1JlZ2lzdGVyZWRUeXBlcyAmJiBCb29sZWFuKHVucmVnaXN0ZXJlZEVudGl0aWVzPy5sZW5ndGgpO1xuICB9KTtcblxuICByZWFkb25seSBoYXNOb0VudGl0aWVzU2lnbmFsID0gY29tcHV0ZWQoKCkgPT4gIXRoaXMuZW50aXRpZXNXaXRoS2V5c1NpZ25hbCgpPy5sZW5ndGgpO1xuXG4gIHJlYWRvbmx5IGNvbnRleHQgPSBjbGVhbkxvYWRpbmdDb250ZXh0KHsgb2JzOiB0aGlzLmFsbEVudGl0aWVzU3RhdGUkIH0pO1xuXG4gIGNsaWNrU2hvd1VucmVnaXN0ZXJlZEVudGl0aWVzKCkge1xuICAgIHRoaXMuc2hvd1VucmVnaXN0ZXJlZFR5cGVzU2lnbmFsLnNldCh0cnVlKTtcbiAgfVxufVxuIl19
@@ -1,11 +1,11 @@
1
1
  import { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';
2
2
  import { isDbxFirebaseModelEntityWithStore } from './model.entities';
3
- import { DbxInjectionComponent } from '@dereekb/dbx-core';
3
+ import { cleanLoadingContext, DbxInjectionComponent } from '@dereekb/dbx-core';
4
4
  import { MatExpansionPanel, MatExpansionPanelHeader, MatExpansionPanelTitle, MatExpansionPanelDescription, MatExpansionPanelContent } from '@angular/material/expansion';
5
5
  import { MatIcon } from '@angular/material/icon';
6
6
  import { toObservable, toSignal } from '@angular/core/rxjs-interop';
7
7
  import { combineLatest, distinctUntilChanged, map, shareReplay, switchMap } from 'rxjs';
8
- import { filterMaybe, loadingStateContext } from '@dereekb/rxjs';
8
+ import { filterMaybe } from '@dereekb/rxjs';
9
9
  import { DbxFirebaseModelEntitiesWidgetService } from './model.entities.widget.service';
10
10
  import { DbxFirebaseModelTypesService } from '../model.types.service';
11
11
  import { AsyncPipe } from '@angular/common';
@@ -65,10 +65,7 @@ export class DbxFirebaseModelEntitiesEntityComponent {
65
65
  entityWidgetConfigSignal = computed(() => this.widgetInjectionConfigSignal()?.entityComponentConfig);
66
66
  commonWidgetConfigSignal = computed(() => this.widgetInjectionConfigSignal()?.commonComponentConfig);
67
67
  debugWidgetConfigSignal = computed(() => this.widgetInjectionConfigSignal()?.debugComponentConfig);
68
- loadingContext = loadingStateContext({ obs: this.loadingState$ });
69
- ngOnDestroy() {
70
- this.loadingContext.destroy();
71
- }
68
+ loadingContext = cleanLoadingContext({ obs: this.loadingState$ });
72
69
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseModelEntitiesEntityComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
73
70
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DbxFirebaseModelEntitiesEntityComponent, isStandalone: true, selector: "dbx-firebase-model-entities-entity", inputs: { entity: { classPropertyName: "entity", publicName: "entity", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<mat-expansion-panel>\n <mat-expansion-panel-header>\n <mat-panel-title>\n @if (displayInfoSignal(); as displayInfo) {\n <div class=\"dbx-list-two-line-item\">\n <div class=\"item-left\">\n <span class=\"dbx-pb2 dbx-flex-bar\">\n @if (displayInfo.icon) {\n <mat-icon class=\"dbx-button-spacer\">{{ displayInfo.icon }}</mat-icon>\n }\n <span>{{ displayInfo.title }}</span>\n </span>\n <span>\n <span class=\"dbx-hint dbx-small\">{{ modelTypeSignal() }}</span>\n @if (displayNameSignal(); as displayName) {\n <span class=\"dbx-small dbx-u dbx-pl2\">{{ displayName }}</span>\n }\n </span>\n </div>\n </div>\n }\n </mat-panel-title>\n </mat-expansion-panel-header>\n <ng-template matExpansionPanelContent>\n <div class=\"dbx-firebase-model-entities-entity-panel-content\">\n <dbx-loading [context]=\"loadingContext\">\n @if (entityWidgetConfigSignal(); as config) {\n <div class=\"dbx-pb3 dbx-firebase-model-entities-entity-content\">\n <dbx-injection [config]=\"config\"></dbx-injection>\n </div>\n }\n @if (commonWidgetConfigSignal(); as config) {\n <div class=\"dbx-pb3 dbx-firebase-model-entities-common-content\">\n <dbx-injection [config]=\"config\"></dbx-injection>\n </div>\n }\n @if (debugWidgetConfigSignal(); as config) {\n <div class=\"dbx-pb3 dbx-firebase-model-entities-debug-content\">\n <dbx-injection [config]=\"config\"></dbx-injection>\n </div>\n }\n </dbx-loading>\n </div>\n </ng-template>\n</mat-expansion-panel>\n", dependencies: [{ kind: "component", type: DbxInjectionComponent, selector: "dbx-injection, [dbxInjection], [dbx-injection]", inputs: ["config", "template"] }, { kind: "component", type: DbxLoadingComponent, selector: "dbx-loading", inputs: ["padding", "show", "text", "mode", "color", "diameter", "linear", "loading", "error", "context"] }, { kind: "component", type: MatExpansionPanel, selector: "mat-expansion-panel", inputs: ["hideToggle", "togglePosition"], outputs: ["afterExpand", "afterCollapse"], exportAs: ["matExpansionPanel"] }, { kind: "component", type: MatExpansionPanelHeader, selector: "mat-expansion-panel-header", inputs: ["expandedHeight", "collapsedHeight", "tabIndex"] }, { kind: "directive", type: MatExpansionPanelTitle, selector: "mat-panel-title" }, { kind: "directive", type: MatExpansionPanelContent, selector: "ng-template[matExpansionPanelContent]" }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
74
71
  }
@@ -76,4 +73,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
76
73
  type: Component,
77
74
  args: [{ selector: 'dbx-firebase-model-entities-entity', imports: [DbxInjectionComponent, DbxLoadingComponent, MatExpansionPanel, MatExpansionPanelHeader, MatExpansionPanelTitle, MatExpansionPanelDescription, MatExpansionPanelContent, MatIcon, AsyncPipe], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, template: "<mat-expansion-panel>\n <mat-expansion-panel-header>\n <mat-panel-title>\n @if (displayInfoSignal(); as displayInfo) {\n <div class=\"dbx-list-two-line-item\">\n <div class=\"item-left\">\n <span class=\"dbx-pb2 dbx-flex-bar\">\n @if (displayInfo.icon) {\n <mat-icon class=\"dbx-button-spacer\">{{ displayInfo.icon }}</mat-icon>\n }\n <span>{{ displayInfo.title }}</span>\n </span>\n <span>\n <span class=\"dbx-hint dbx-small\">{{ modelTypeSignal() }}</span>\n @if (displayNameSignal(); as displayName) {\n <span class=\"dbx-small dbx-u dbx-pl2\">{{ displayName }}</span>\n }\n </span>\n </div>\n </div>\n }\n </mat-panel-title>\n </mat-expansion-panel-header>\n <ng-template matExpansionPanelContent>\n <div class=\"dbx-firebase-model-entities-entity-panel-content\">\n <dbx-loading [context]=\"loadingContext\">\n @if (entityWidgetConfigSignal(); as config) {\n <div class=\"dbx-pb3 dbx-firebase-model-entities-entity-content\">\n <dbx-injection [config]=\"config\"></dbx-injection>\n </div>\n }\n @if (commonWidgetConfigSignal(); as config) {\n <div class=\"dbx-pb3 dbx-firebase-model-entities-common-content\">\n <dbx-injection [config]=\"config\"></dbx-injection>\n </div>\n }\n @if (debugWidgetConfigSignal(); as config) {\n <div class=\"dbx-pb3 dbx-firebase-model-entities-debug-content\">\n <dbx-injection [config]=\"config\"></dbx-injection>\n </div>\n }\n </dbx-loading>\n </div>\n </ng-template>\n</mat-expansion-panel>\n" }]
78
75
  }] });
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuZW50aXRpZXMuZW50aXR5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL21vZGVsL21vZHVsZXMvbW9kZWwvZW50aXRpZXMvbW9kZWwuZW50aXRpZXMuZW50aXR5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL21vZGVsL21vZHVsZXMvbW9kZWwvZW50aXRpZXMvbW9kZWwuZW50aXRpZXMuZW50aXR5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDdkcsT0FBTyxFQUEyRCxpQ0FBaUMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzlILE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzFELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSx1QkFBdUIsRUFBRSxzQkFBc0IsRUFBRSw0QkFBNEIsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3pLLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxhQUFhLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFjLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEcsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztB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LFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsMkJBQTJCLEVBQUUsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO0lBQ3JHLHdCQUF3QixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsMkJBQTJCLEVBQUUsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO0lBQ3JHLHVCQUF1QixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsMkJBQTJCLEVBQUUsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO0lBRW5HLGNBQWMsR0FBRyxtQkFBbUIsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztJQUUzRSxXQUFXO1FBQ1QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNoQyxDQUFDO3dHQXJIVSx1Q0FBdUM7NEZBQXZDLHVDQUF1QyxvT0N0QnBELHV2REE2Q0EsNENEM0JZLHFCQUFxQiwySEFBRSxtQkFBbUIsbUtBQUUsaUJBQWlCLHNMQUFFLHVCQUF1QixrSUFBRSxzQkFBc0IsNERBQWdDLHdCQUF3QixrRkFBRSxPQUFPOzs0RkFJOUssdUNBQXVDO2tCQVBuRCxTQUFTOytCQUNFLG9DQUFvQyxXQUVyQyxDQUFDLHFCQUFxQixFQUFFLG1CQUFtQixFQUFFLGlCQUFpQixFQUFFLHVCQUF1QixFQUFFLHNCQUFzQixFQUFFLDRCQUE0QixFQUFFLHdCQUF3QixFQUFFLE9BQU8sRUFBRSxTQUFTLENBQUMsbUJBQ3BMLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBpbmplY3QsIGlucHV0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERieEZpcmViYXNlTW9kZWxFbnRpdHksIERieEZpcmViYXNlTW9kZWxFbnRpdHlXaXRoU3RvcmUsIGlzRGJ4RmlyZWJhc2VNb2RlbEVudGl0eVdpdGhTdG9yZSB9IGZyb20gJy4vbW9kZWwuZW50aXRpZXMnO1xuaW1wb3J0IHsgRGJ4SW5qZWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnQGRlcmVla2IvZGJ4LWNvcmUnO1xuaW1wb3J0IHsgTWF0RXhwYW5zaW9uUGFuZWwsIE1hdEV4cGFuc2lvblBhbmVsSGVhZGVyLCBNYXRFeHBhbnNpb25QYW5lbFRpdGxlLCBNYXRFeHBhbnNpb25QYW5lbERlc2NyaXB0aW9uLCBNYXRFeHBhbnNpb25QYW5lbENvbnRlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9leHBhbnNpb24nO1xuaW1wb3J0IHsgTWF0SWNvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgdG9PYnNlcnZhYmxlLCB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIE9ic2VydmFibGUsIHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlck1heWJlLCBsb2FkaW5nU3RhdGVDb250ZXh0IH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNXaWRnZXRTZXJ2aWNlIH0gZnJvbSAnLi9tb2RlbC5lbnRpdGllcy53aWRnZXQuc2VydmljZSc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZU1vZGVsVHlwZXNTZXJ2aWNlLCB0eXBlIERieEZpcmViYXNlTW9kZWxEaXNwbGF5SW5mbywgdHlwZSBEYnhGaXJlYmFzZU1vZGVsVHlwZUluZm8gfSBmcm9tICcuLi9tb2RlbC50eXBlcy5zZXJ2aWNlJztcbmltcG9ydCB7IHR5cGUgTWF5YmUgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBEYnhMb2FkaW5nQ29tcG9uZW50IH0gZnJvbSAnQGRlcmVla2IvZGJ4LXdlYic7XG5pbXBvcnQgeyBkYnhGaXJlYmFzZU1vZGVsRW50aXR5V2lkZ2V0SW5qZWN0aW9uQ29uZmlnRmFjdG9yeSB9IGZyb20gJy4vbW9kZWwuZW50aXRpZXMud2lkZ2V0JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGJ4LWZpcmViYXNlLW1vZGVsLWVudGl0aWVzLWVudGl0eScsXG4gIHRlbXBsYXRlVXJsOiAnLi9tb2RlbC5lbnRpdGllcy5lbnRpdHkuY29tcG9uZW50Lmh0bWwnLFxuICBpbXBvcnRzOiBbRGJ4SW5qZWN0aW9uQ29tcG9uZW50LCBEYnhMb2FkaW5nQ29tcG9uZW50LCBNYXRFeHBhbnNpb25QYW5lbCwgTWF0RXhwYW5zaW9uUGFuZWxIZWFkZXIsIE1hdEV4cGFuc2lvblBhbmVsVGl0bGUsIE1hdEV4cGFuc2lvblBhbmVsRGVzY3JpcHRpb24sIE1hdEV4cGFuc2lvblBhbmVsQ29udGVudCwgTWF0SWNvbiwgQXN5bmNQaXBlXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgRGJ4RmlyZWJhc2VNb2RlbEVudGl0aWVzRW50aXR5Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcmVhZG9ubHkgd2lkZ2V0SW5qZWN0aW9uQ29uZmlnRmFjdG9yeSA9IGRieEZpcmViYXNlTW9kZWxFbnRpdHlXaWRnZXRJbmplY3Rpb25Db25maWdGYWN0b3J5KCk7XG5cbiAgcmVhZG9ubHkgZW50aXRpZXNXaWRnZXRTZXJ2aWNlID0gaW5qZWN0KERieEZpcmViYXNlTW9kZWxFbnRpdGllc1dpZGdldFNlcnZpY2UpO1xuICByZWFkb25seSBkYnhGaXJlYmFzZU1vZGVsVHlwZXNTZXJ2aWNlID0gaW5qZWN0KERieEZpcmViYXNlTW9kZWxUeXBlc1NlcnZpY2UpO1xuXG4gIHJlYWRvbmx5IGVudGl0eSA9IGlucHV0LnJlcXVpcmVkPERieEZpcmViYXNlTW9kZWxFbnRpdHk+KCk7XG5cbiAgcmVhZG9ubHkgZW50aXR5JCA9IHRvT2JzZXJ2YWJsZSh0aGlzLmVudGl0eSk7XG5cbiAgcmVhZG9ubHkgY3VycmVudEVudGl0eVdpdGhTdG9yZSQgPSB0aGlzLmVudGl0eSQucGlwZShcbiAgICBtYXAoKHgpID0+IHtcbiAgICAgIGxldCByZXN1bHQ6IE1heWJlPERieEZpcmViYXNlTW9kZWxFbnRpdHlXaXRoU3RvcmU+O1xuXG4gICAgICBpZiAoaXNEYnhGaXJlYmFzZU1vZGVsRW50aXR5V2l0aFN0b3JlKHgpKSB7XG4gICAgICAgIHJlc3VsdCA9IHg7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXN1bHQgPSBudWxsO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0pLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBtb2RlbElkZW50aXR5JCA9IHRoaXMuZW50aXR5JC5waXBlKFxuICAgIG1hcCgoeCkgPT4geC5tb2RlbElkZW50aXR5KSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgc3RvcmUkID0gdGhpcy5lbnRpdHkkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4LnN0b3JlKSxcbiAgICBmaWx0ZXJNYXliZSgpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBzdG9yZU5hbWUkID0gdGhpcy5zdG9yZSQucGlwZShcbiAgICBzd2l0Y2hNYXAoKHgpID0+IHguc3RvcmVOYW1lJCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBkaXNwbGF5TmFtZSQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnN0b3JlTmFtZSQsIHRoaXMuZW50aXR5JF0pLnBpcGUoXG4gICAgbWFwKChbc3RvcmVOYW1lLCBlbnRpdHldKSA9PiBlbnRpdHkubmFtZSA/PyBzdG9yZU5hbWUpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBsb2FkaW5nU3RhdGUkID0gdGhpcy5zdG9yZSQucGlwZShzd2l0Y2hNYXAoKHgpID0+IHguZGF0YUxvYWRpbmdTdGF0ZSQpKTtcbiAgcmVhZG9ubHkgY3VycmVudERhdGEkID0gdGhpcy5zdG9yZSQucGlwZShcbiAgICBzd2l0Y2hNYXAoKHgpID0+IHguY3VycmVudERhdGEkKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGN1cnJlbnRXaWRnZXRFbnRyeSQgPSB0aGlzLm1vZGVsSWRlbnRpdHkkLnBpcGUoXG4gICAgbWFwKChtb2RlbElkZW50aXR5KSA9PiB0aGlzLmVudGl0aWVzV2lkZ2V0U2VydmljZS5nZXRXaWRnZXRFbnRyeShtb2RlbElkZW50aXR5KSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGN1cnJlbnRUeXBlSW5mbyQ6IE9ic2VydmFibGU8TWF5YmU8RGJ4RmlyZWJhc2VNb2RlbFR5cGVJbmZvPj4gPSB0aGlzLm1vZGVsSWRlbnRpdHkkLnBpcGUoXG4gICAgc3dpdGNoTWFwKChtb2RlbElkZW50aXR5KSA9PiB0aGlzLmRieEZpcmViYXNlTW9kZWxUeXBlc1NlcnZpY2UuY3VycmVudEluZm9Gb3JUeXBlKG1vZGVsSWRlbnRpdHkubW9kZWxUeXBlKSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBoYXNUeXBlSW5mbyQgPSB0aGlzLmN1cnJlbnRUeXBlSW5mbyQucGlwZShcbiAgICBtYXAoKHgpID0+ICEheCksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGRpc3BsYXlJbmZvJDogT2JzZXJ2YWJsZTxEYnhGaXJlYmFzZU1vZGVsRGlzcGxheUluZm8+ID0gY29tYmluZUxhdGVzdChbdGhpcy5tb2RlbElkZW50aXR5JCwgdGhpcy5jdXJyZW50VHlwZUluZm8kLCB0aGlzLmN1cnJlbnREYXRhJF0pLnBpcGUoXG4gICAgbWFwKChbbW9kZWxJZGVudGl0eSwgdHlwZUluZm8sIGN1cnJlbnREYXRhXSkgPT4ge1xuICAgICAgbGV0IHJlc3VsdDogRGJ4RmlyZWJhc2VNb2RlbERpc3BsYXlJbmZvO1xuXG4gICAgICBpZiAodHlwZUluZm8pIHtcbiAgICAgICAgaWYgKGN1cnJlbnREYXRhKSB7XG4gICAgICAgICAgcmVzdWx0ID0gdHlwZUluZm8uZGlzcGxheUluZm9GYWN0b3J5KGN1cnJlbnREYXRhKTtcblxuICAgICAgICAgIGlmICghcmVzdWx0LnRpdGxlKSB7XG4gICAgICAgICAgICByZXN1bHQgPSB7IC4uLnJlc3VsdCwgdGl0bGU6IGBObyBOYW1lIC0gPCR7bW9kZWxJZGVudGl0eS5tb2RlbFR5cGV9PmAgfTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVzdWx0ID0geyBpY29uOiB0eXBlSW5mby5pY29uLCB0aXRsZTogYE5vIERhdGEgLSA8JHttb2RlbElkZW50aXR5Lm1vZGVsVHlwZX0+YCB9O1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXN1bHQgPSB7IGljb246ICd3YXJuaW5nJywgdGl0bGU6IGBObyBUeXBlIEluZm8gLSA8JHttb2RlbElkZW50aXR5Lm1vZGVsVHlwZX0+YCB9O1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0pLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgd2lkZ2V0SW5qZWN0aW9uQ29uZmlnJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuY3VycmVudFdpZGdldEVudHJ5JCwgdGhpcy5jdXJyZW50RW50aXR5V2l0aFN0b3JlJF0pLnBpcGUoXG4gICAgbWFwKChbZW50cnksIGVudGl0eV0pID0+IChlbnRpdHkgPyB0aGlzLndpZGdldEluamVjdGlvbkNvbmZpZ0ZhY3RvcnkoZW50cnksIGVudGl0eSkgOiBudWxsKSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBoYXNUeXBlSW5mb1NpZ25hbCA9IHRvU2lnbmFsKHRoaXMuaGFzVHlwZUluZm8kKTtcbiAgcmVhZG9ubHkgZGlzcGxheU5hbWVTaWduYWwgPSB0b1NpZ25hbCh0aGlzLmRpc3BsYXlOYW1lJCk7XG4gIHJlYWRvbmx5IGRpc3BsYXlJbmZvU2lnbmFsID0gdG9TaWduYWwodGhpcy5kaXNwbGF5SW5mbyQpO1xuICByZWFkb25seSBtb2RlbElkZW50aXR5U2lnbmFsID0gdG9TaWduYWwodGhpcy5tb2RlbElkZW50aXR5JCk7XG4gIHJlYWRvbmx5IG1vZGVsVHlwZVNpZ25hbCA9IGNvbXB1dGVkKCgpID0+IHRoaXMubW9kZWxJZGVudGl0eVNpZ25hbCgpPy5tb2RlbFR5cGUpO1xuXG4gIHJlYWRvbmx5IHdpZGdldEluamVjdGlvbkNvbmZpZ1NpZ25hbCA9IHRvU2lnbmFsKHRoaXMud2lkZ2V0SW5qZWN0aW9uQ29uZmlnJCk7XG5cbiAgcmVhZG9ubHkgZW50aXR5V2lkZ2V0Q29uZmlnU2lnbmFsID0gY29tcHV0ZWQoKCkgPT4gdGhpcy53aWRnZXRJbmplY3Rpb25Db25maWdTaWduYWwoKT8uZW50aXR5Q29tcG9uZW50Q29uZmlnKTtcbiAgcmVhZG9ubHkgY29tbW9uV2lkZ2V0Q29uZmlnU2lnbmFsID0gY29tcHV0ZWQoKCkgPT4gdGhpcy53aWRnZXRJbmplY3Rpb25Db25maWdTaWduYWwoKT8uY29tbW9uQ29tcG9uZW50Q29uZmlnKTtcbiAgcmVhZG9ubHkgZGVidWdXaWRnZXRDb25maWdTaWduYWwgPSBjb21wdXRlZCgoKSA9PiB0aGlzLndpZGdldEluamVjdGlvbkNvbmZpZ1NpZ25hbCgpPy5kZWJ1Z0NvbXBvbmVudENvbmZpZyk7XG5cbiAgcmVhZG9ubHkgbG9hZGluZ0NvbnRleHQgPSBsb2FkaW5nU3RhdGVDb250ZXh0KHsgb2JzOiB0aGlzLmxvYWRpbmdTdGF0ZSQgfSk7XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5sb2FkaW5nQ29udGV4dC5kZXN0cm95KCk7XG4gIH1cbn1cbiIsIjxtYXQtZXhwYW5zaW9uLXBhbmVsPlxuICA8bWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XG4gICAgPG1hdC1wYW5lbC10aXRsZT5cbiAgICAgIEBpZiAoZGlzcGxheUluZm9TaWduYWwoKTsgYXMgZGlzcGxheUluZm8pIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImRieC1saXN0LXR3by1saW5lLWl0ZW1cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1sZWZ0XCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRieC1wYjIgZGJ4LWZsZXgtYmFyXCI+XG4gICAgICAgICAgICAgIEBpZiAoZGlzcGxheUluZm8uaWNvbikge1xuICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImRieC1idXR0b24tc3BhY2VyXCI+e3sgZGlzcGxheUluZm8uaWNvbiB9fTwvbWF0LWljb24+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgPHNwYW4+e3sgZGlzcGxheUluZm8udGl0bGUgfX08L3NwYW4+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkYngtaGludCBkYngtc21hbGxcIj57eyBtb2RlbFR5cGVTaWduYWwoKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgQGlmIChkaXNwbGF5TmFtZVNpZ25hbCgpOyBhcyBkaXNwbGF5TmFtZSkge1xuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGJ4LXNtYWxsIGRieC11IGRieC1wbDJcIj57eyBkaXNwbGF5TmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L21hdC1wYW5lbC10aXRsZT5cbiAgPC9tYXQtZXhwYW5zaW9uLXBhbmVsLWhlYWRlcj5cbiAgPG5nLXRlbXBsYXRlIG1hdEV4cGFuc2lvblBhbmVsQ29udGVudD5cbiAgICA8ZGl2IGNsYXNzPVwiZGJ4LWZpcmViYXNlLW1vZGVsLWVudGl0aWVzLWVudGl0eS1wYW5lbC1jb250ZW50XCI+XG4gICAgICA8ZGJ4LWxvYWRpbmcgW2NvbnRleHRdPVwibG9hZGluZ0NvbnRleHRcIj5cbiAgICAgICAgQGlmIChlbnRpdHlXaWRnZXRDb25maWdTaWduYWwoKTsgYXMgY29uZmlnKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImRieC1wYjMgZGJ4LWZpcmViYXNlLW1vZGVsLWVudGl0aWVzLWVudGl0eS1jb250ZW50XCI+XG4gICAgICAgICAgICA8ZGJ4LWluamVjdGlvbiBbY29uZmlnXT1cImNvbmZpZ1wiPjwvZGJ4LWluamVjdGlvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgICBAaWYgKGNvbW1vbldpZGdldENvbmZpZ1NpZ25hbCgpOyBhcyBjb25maWcpIHtcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZGJ4LXBiMyBkYngtZmlyZWJhc2UtbW9kZWwtZW50aXRpZXMtY29tbW9uLWNvbnRlbnRcIj5cbiAgICAgICAgICAgIDxkYngtaW5qZWN0aW9uIFtjb25maWddPVwiY29uZmlnXCI+PC9kYngtaW5qZWN0aW9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICAgIEBpZiAoZGVidWdXaWRnZXRDb25maWdTaWduYWwoKTsgYXMgY29uZmlnKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImRieC1wYjMgZGJ4LWZpcmViYXNlLW1vZGVsLWVudGl0aWVzLWRlYnVnLWNvbnRlbnRcIj5cbiAgICAgICAgICAgIDxkYngtaW5qZWN0aW9uIFtjb25maWddPVwiY29uZmlnXCI+PC9kYngtaW5qZWN0aW9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L2RieC1sb2FkaW5nPlxuICAgIDwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuPC9tYXQtZXhwYW5zaW9uLXBhbmVsPlxuIl19
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuZW50aXRpZXMuZW50aXR5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL21vZGVsL21vZHVsZXMvbW9kZWwvZW50aXRpZXMvbW9kZWwuZW50aXRpZXMuZW50aXR5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2RieC1maXJlYmFzZS9zcmMvbGliL21vZGVsL21vZHVsZXMvbW9kZWwvZW50aXRpZXMvbW9kZWwuZW50aXRpZXMuZW50aXR5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUYsT0FBTyxFQUEyRCxpQ0FBaUMsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzlILE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQy9FLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSx1QkFBdUIsRUFBRSxzQkFBc0IsRUFBRSw0QkFBNEIsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3pLLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxhQUFhLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFjLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUUscUNBQXFDLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztB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LFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsMkJBQTJCLEVBQUUsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO0lBQ3JHLHdCQUF3QixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsMkJBQTJCLEVBQUUsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO0lBQ3JHLHVCQUF1QixHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsMkJBQTJCLEVBQUUsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO0lBRW5HLGNBQWMsR0FBRyxtQkFBbUIsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQzt3R0FqSGhFLHVDQUF1Qzs0RkFBdkMsdUNBQXVDLG9PQ3RCcEQsdXZEQTZDQSw0Q0QzQlkscUJBQXFCLDJIQUFFLG1CQUFtQixtS0FBRSxpQkFBaUIsc0xBQUUsdUJBQXVCLGtJQUFFLHNCQUFzQiw0REFBZ0Msd0JBQXdCLGtGQUFFLE9BQU87OzRGQUk5Syx1Q0FBdUM7a0JBUG5ELFNBQVM7K0JBQ0Usb0NBQW9DLFdBRXJDLENBQUMscUJBQXFCLEVBQUUsbUJBQW1CLEVBQUUsaUJBQWlCLEVBQUUsdUJBQXVCLEVBQUUsc0JBQXNCLEVBQUUsNEJBQTRCLEVBQUUsd0JBQXdCLEVBQUUsT0FBTyxFQUFFLFNBQVMsQ0FBQyxtQkFDcEwsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERieEZpcmViYXNlTW9kZWxFbnRpdHksIERieEZpcmViYXNlTW9kZWxFbnRpdHlXaXRoU3RvcmUsIGlzRGJ4RmlyZWJhc2VNb2RlbEVudGl0eVdpdGhTdG9yZSB9IGZyb20gJy4vbW9kZWwuZW50aXRpZXMnO1xuaW1wb3J0IHsgY2xlYW5Mb2FkaW5nQ29udGV4dCwgRGJ4SW5qZWN0aW9uQ29tcG9uZW50IH0gZnJvbSAnQGRlcmVla2IvZGJ4LWNvcmUnO1xuaW1wb3J0IHsgTWF0RXhwYW5zaW9uUGFuZWwsIE1hdEV4cGFuc2lvblBhbmVsSGVhZGVyLCBNYXRFeHBhbnNpb25QYW5lbFRpdGxlLCBNYXRFeHBhbnNpb25QYW5lbERlc2NyaXB0aW9uLCBNYXRFeHBhbnNpb25QYW5lbENvbnRlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9leHBhbnNpb24nO1xuaW1wb3J0IHsgTWF0SWNvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgdG9PYnNlcnZhYmxlLCB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3QsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIE9ic2VydmFibGUsIHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbHRlck1heWJlIH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNXaWRnZXRTZXJ2aWNlIH0gZnJvbSAnLi9tb2RlbC5lbnRpdGllcy53aWRnZXQuc2VydmljZSc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZU1vZGVsVHlwZXNTZXJ2aWNlLCB0eXBlIERieEZpcmViYXNlTW9kZWxEaXNwbGF5SW5mbywgdHlwZSBEYnhGaXJlYmFzZU1vZGVsVHlwZUluZm8gfSBmcm9tICcuLi9tb2RlbC50eXBlcy5zZXJ2aWNlJztcbmltcG9ydCB7IHR5cGUgTWF5YmUgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IEFzeW5jUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBEYnhMb2FkaW5nQ29tcG9uZW50IH0gZnJvbSAnQGRlcmVla2IvZGJ4LXdlYic7XG5pbXBvcnQgeyBkYnhGaXJlYmFzZU1vZGVsRW50aXR5V2lkZ2V0SW5qZWN0aW9uQ29uZmlnRmFjdG9yeSB9IGZyb20gJy4vbW9kZWwuZW50aXRpZXMud2lkZ2V0JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGJ4LWZpcmViYXNlLW1vZGVsLWVudGl0aWVzLWVudGl0eScsXG4gIHRlbXBsYXRlVXJsOiAnLi9tb2RlbC5lbnRpdGllcy5lbnRpdHkuY29tcG9uZW50Lmh0bWwnLFxuICBpbXBvcnRzOiBbRGJ4SW5qZWN0aW9uQ29tcG9uZW50LCBEYnhMb2FkaW5nQ29tcG9uZW50LCBNYXRFeHBhbnNpb25QYW5lbCwgTWF0RXhwYW5zaW9uUGFuZWxIZWFkZXIsIE1hdEV4cGFuc2lvblBhbmVsVGl0bGUsIE1hdEV4cGFuc2lvblBhbmVsRGVzY3JpcHRpb24sIE1hdEV4cGFuc2lvblBhbmVsQ29udGVudCwgTWF0SWNvbiwgQXN5bmNQaXBlXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgRGJ4RmlyZWJhc2VNb2RlbEVudGl0aWVzRW50aXR5Q29tcG9uZW50IHtcbiAgcmVhZG9ubHkgd2lkZ2V0SW5qZWN0aW9uQ29uZmlnRmFjdG9yeSA9IGRieEZpcmViYXNlTW9kZWxFbnRpdHlXaWRnZXRJbmplY3Rpb25Db25maWdGYWN0b3J5KCk7XG5cbiAgcmVhZG9ubHkgZW50aXRpZXNXaWRnZXRTZXJ2aWNlID0gaW5qZWN0KERieEZpcmViYXNlTW9kZWxFbnRpdGllc1dpZGdldFNlcnZpY2UpO1xuICByZWFkb25seSBkYnhGaXJlYmFzZU1vZGVsVHlwZXNTZXJ2aWNlID0gaW5qZWN0KERieEZpcmViYXNlTW9kZWxUeXBlc1NlcnZpY2UpO1xuXG4gIHJlYWRvbmx5IGVudGl0eSA9IGlucHV0LnJlcXVpcmVkPERieEZpcmViYXNlTW9kZWxFbnRpdHk+KCk7XG5cbiAgcmVhZG9ubHkgZW50aXR5JCA9IHRvT2JzZXJ2YWJsZSh0aGlzLmVudGl0eSk7XG5cbiAgcmVhZG9ubHkgY3VycmVudEVudGl0eVdpdGhTdG9yZSQgPSB0aGlzLmVudGl0eSQucGlwZShcbiAgICBtYXAoKHgpID0+IHtcbiAgICAgIGxldCByZXN1bHQ6IE1heWJlPERieEZpcmViYXNlTW9kZWxFbnRpdHlXaXRoU3RvcmU+O1xuXG4gICAgICBpZiAoaXNEYnhGaXJlYmFzZU1vZGVsRW50aXR5V2l0aFN0b3JlKHgpKSB7XG4gICAgICAgIHJlc3VsdCA9IHg7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXN1bHQgPSBudWxsO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0pLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBtb2RlbElkZW50aXR5JCA9IHRoaXMuZW50aXR5JC5waXBlKFxuICAgIG1hcCgoeCkgPT4geC5tb2RlbElkZW50aXR5KSxcbiAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgc3RvcmUkID0gdGhpcy5lbnRpdHkkLnBpcGUoXG4gICAgbWFwKCh4KSA9PiB4LnN0b3JlKSxcbiAgICBmaWx0ZXJNYXliZSgpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBzdG9yZU5hbWUkID0gdGhpcy5zdG9yZSQucGlwZShcbiAgICBzd2l0Y2hNYXAoKHgpID0+IHguc3RvcmVOYW1lJCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBkaXNwbGF5TmFtZSQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLnN0b3JlTmFtZSQsIHRoaXMuZW50aXR5JF0pLnBpcGUoXG4gICAgbWFwKChbc3RvcmVOYW1lLCBlbnRpdHldKSA9PiBlbnRpdHkubmFtZSA/PyBzdG9yZU5hbWUpLFxuICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBsb2FkaW5nU3RhdGUkID0gdGhpcy5zdG9yZSQucGlwZShzd2l0Y2hNYXAoKHgpID0+IHguZGF0YUxvYWRpbmdTdGF0ZSQpKTtcbiAgcmVhZG9ubHkgY3VycmVudERhdGEkID0gdGhpcy5zdG9yZSQucGlwZShcbiAgICBzd2l0Y2hNYXAoKHgpID0+IHguY3VycmVudERhdGEkKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGN1cnJlbnRXaWRnZXRFbnRyeSQgPSB0aGlzLm1vZGVsSWRlbnRpdHkkLnBpcGUoXG4gICAgbWFwKChtb2RlbElkZW50aXR5KSA9PiB0aGlzLmVudGl0aWVzV2lkZ2V0U2VydmljZS5nZXRXaWRnZXRFbnRyeShtb2RlbElkZW50aXR5KSksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGN1cnJlbnRUeXBlSW5mbyQ6IE9ic2VydmFibGU8TWF5YmU8RGJ4RmlyZWJhc2VNb2RlbFR5cGVJbmZvPj4gPSB0aGlzLm1vZGVsSWRlbnRpdHkkLnBpcGUoXG4gICAgc3dpdGNoTWFwKChtb2RlbElkZW50aXR5KSA9PiB0aGlzLmRieEZpcmViYXNlTW9kZWxUeXBlc1NlcnZpY2UuY3VycmVudEluZm9Gb3JUeXBlKG1vZGVsSWRlbnRpdHkubW9kZWxUeXBlKSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBoYXNUeXBlSW5mbyQgPSB0aGlzLmN1cnJlbnRUeXBlSW5mbyQucGlwZShcbiAgICBtYXAoKHgpID0+ICEheCksXG4gICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICBzaGFyZVJlcGxheSgxKVxuICApO1xuXG4gIHJlYWRvbmx5IGRpc3BsYXlJbmZvJDogT2JzZXJ2YWJsZTxEYnhGaXJlYmFzZU1vZGVsRGlzcGxheUluZm8+ID0gY29tYmluZUxhdGVzdChbdGhpcy5tb2RlbElkZW50aXR5JCwgdGhpcy5jdXJyZW50VHlwZUluZm8kLCB0aGlzLmN1cnJlbnREYXRhJF0pLnBpcGUoXG4gICAgbWFwKChbbW9kZWxJZGVudGl0eSwgdHlwZUluZm8sIGN1cnJlbnREYXRhXSkgPT4ge1xuICAgICAgbGV0IHJlc3VsdDogRGJ4RmlyZWJhc2VNb2RlbERpc3BsYXlJbmZvO1xuXG4gICAgICBpZiAodHlwZUluZm8pIHtcbiAgICAgICAgaWYgKGN1cnJlbnREYXRhKSB7XG4gICAgICAgICAgcmVzdWx0ID0gdHlwZUluZm8uZGlzcGxheUluZm9GYWN0b3J5KGN1cnJlbnREYXRhKTtcblxuICAgICAgICAgIGlmICghcmVzdWx0LnRpdGxlKSB7XG4gICAgICAgICAgICByZXN1bHQgPSB7IC4uLnJlc3VsdCwgdGl0bGU6IGBObyBOYW1lIC0gPCR7bW9kZWxJZGVudGl0eS5tb2RlbFR5cGV9PmAgfTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVzdWx0ID0geyBpY29uOiB0eXBlSW5mby5pY29uLCB0aXRsZTogYE5vIERhdGEgLSA8JHttb2RlbElkZW50aXR5Lm1vZGVsVHlwZX0+YCB9O1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXN1bHQgPSB7IGljb246ICd3YXJuaW5nJywgdGl0bGU6IGBObyBUeXBlIEluZm8gLSA8JHttb2RlbElkZW50aXR5Lm1vZGVsVHlwZX0+YCB9O1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0pLFxuICAgIHNoYXJlUmVwbGF5KDEpXG4gICk7XG5cbiAgcmVhZG9ubHkgd2lkZ2V0SW5qZWN0aW9uQ29uZmlnJCA9IGNvbWJpbmVMYXRlc3QoW3RoaXMuY3VycmVudFdpZGdldEVudHJ5JCwgdGhpcy5jdXJyZW50RW50aXR5V2l0aFN0b3JlJF0pLnBpcGUoXG4gICAgbWFwKChbZW50cnksIGVudGl0eV0pID0+IChlbnRpdHkgPyB0aGlzLndpZGdldEluamVjdGlvbkNvbmZpZ0ZhY3RvcnkoZW50cnksIGVudGl0eSkgOiBudWxsKSksXG4gICAgc2hhcmVSZXBsYXkoMSlcbiAgKTtcblxuICByZWFkb25seSBoYXNUeXBlSW5mb1NpZ25hbCA9IHRvU2lnbmFsKHRoaXMuaGFzVHlwZUluZm8kKTtcbiAgcmVhZG9ubHkgZGlzcGxheU5hbWVTaWduYWwgPSB0b1NpZ25hbCh0aGlzLmRpc3BsYXlOYW1lJCk7XG4gIHJlYWRvbmx5IGRpc3BsYXlJbmZvU2lnbmFsID0gdG9TaWduYWwodGhpcy5kaXNwbGF5SW5mbyQpO1xuICByZWFkb25seSBtb2RlbElkZW50aXR5U2lnbmFsID0gdG9TaWduYWwodGhpcy5tb2RlbElkZW50aXR5JCk7XG4gIHJlYWRvbmx5IG1vZGVsVHlwZVNpZ25hbCA9IGNvbXB1dGVkKCgpID0+IHRoaXMubW9kZWxJZGVudGl0eVNpZ25hbCgpPy5tb2RlbFR5cGUpO1xuXG4gIHJlYWRvbmx5IHdpZGdldEluamVjdGlvbkNvbmZpZ1NpZ25hbCA9IHRvU2lnbmFsKHRoaXMud2lkZ2V0SW5qZWN0aW9uQ29uZmlnJCk7XG5cbiAgcmVhZG9ubHkgZW50aXR5V2lkZ2V0Q29uZmlnU2lnbmFsID0gY29tcHV0ZWQoKCkgPT4gdGhpcy53aWRnZXRJbmplY3Rpb25Db25maWdTaWduYWwoKT8uZW50aXR5Q29tcG9uZW50Q29uZmlnKTtcbiAgcmVhZG9ubHkgY29tbW9uV2lkZ2V0Q29uZmlnU2lnbmFsID0gY29tcHV0ZWQoKCkgPT4gdGhpcy53aWRnZXRJbmplY3Rpb25Db25maWdTaWduYWwoKT8uY29tbW9uQ29tcG9uZW50Q29uZmlnKTtcbiAgcmVhZG9ubHkgZGVidWdXaWRnZXRDb25maWdTaWduYWwgPSBjb21wdXRlZCgoKSA9PiB0aGlzLndpZGdldEluamVjdGlvbkNvbmZpZ1NpZ25hbCgpPy5kZWJ1Z0NvbXBvbmVudENvbmZpZyk7XG5cbiAgcmVhZG9ubHkgbG9hZGluZ0NvbnRleHQgPSBjbGVhbkxvYWRpbmdDb250ZXh0KHsgb2JzOiB0aGlzLmxvYWRpbmdTdGF0ZSQgfSk7XG59XG4iLCI8bWF0LWV4cGFuc2lvbi1wYW5lbD5cbiAgPG1hdC1leHBhbnNpb24tcGFuZWwtaGVhZGVyPlxuICAgIDxtYXQtcGFuZWwtdGl0bGU+XG4gICAgICBAaWYgKGRpc3BsYXlJbmZvU2lnbmFsKCk7IGFzIGRpc3BsYXlJbmZvKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkYngtbGlzdC10d28tbGluZS1pdGVtXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW0tbGVmdFwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJkYngtcGIyIGRieC1mbGV4LWJhclwiPlxuICAgICAgICAgICAgICBAaWYgKGRpc3BsYXlJbmZvLmljb24pIHtcbiAgICAgICAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJkYngtYnV0dG9uLXNwYWNlclwiPnt7IGRpc3BsYXlJbmZvLmljb24gfX08L21hdC1pY29uPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDxzcGFuPnt7IGRpc3BsYXlJbmZvLnRpdGxlIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZGJ4LWhpbnQgZGJ4LXNtYWxsXCI+e3sgbW9kZWxUeXBlU2lnbmFsKCkgfX08L3NwYW4+XG4gICAgICAgICAgICAgIEBpZiAoZGlzcGxheU5hbWVTaWduYWwoKTsgYXMgZGlzcGxheU5hbWUpIHtcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImRieC1zbWFsbCBkYngtdSBkYngtcGwyXCI+e3sgZGlzcGxheU5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgPC9tYXQtcGFuZWwtdGl0bGU+XG4gIDwvbWF0LWV4cGFuc2lvbi1wYW5lbC1oZWFkZXI+XG4gIDxuZy10ZW1wbGF0ZSBtYXRFeHBhbnNpb25QYW5lbENvbnRlbnQ+XG4gICAgPGRpdiBjbGFzcz1cImRieC1maXJlYmFzZS1tb2RlbC1lbnRpdGllcy1lbnRpdHktcGFuZWwtY29udGVudFwiPlxuICAgICAgPGRieC1sb2FkaW5nIFtjb250ZXh0XT1cImxvYWRpbmdDb250ZXh0XCI+XG4gICAgICAgIEBpZiAoZW50aXR5V2lkZ2V0Q29uZmlnU2lnbmFsKCk7IGFzIGNvbmZpZykge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYngtcGIzIGRieC1maXJlYmFzZS1tb2RlbC1lbnRpdGllcy1lbnRpdHktY29udGVudFwiPlxuICAgICAgICAgICAgPGRieC1pbmplY3Rpb24gW2NvbmZpZ109XCJjb25maWdcIj48L2RieC1pbmplY3Rpb24+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgICAgQGlmIChjb21tb25XaWRnZXRDb25maWdTaWduYWwoKTsgYXMgY29uZmlnKSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImRieC1wYjMgZGJ4LWZpcmViYXNlLW1vZGVsLWVudGl0aWVzLWNvbW1vbi1jb250ZW50XCI+XG4gICAgICAgICAgICA8ZGJ4LWluamVjdGlvbiBbY29uZmlnXT1cImNvbmZpZ1wiPjwvZGJ4LWluamVjdGlvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgICBAaWYgKGRlYnVnV2lkZ2V0Q29uZmlnU2lnbmFsKCk7IGFzIGNvbmZpZykge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJkYngtcGIzIGRieC1maXJlYmFzZS1tb2RlbC1lbnRpdGllcy1kZWJ1Zy1jb250ZW50XCI+XG4gICAgICAgICAgICA8ZGJ4LWluamVjdGlvbiBbY29uZmlnXT1cImNvbmZpZ1wiPjwvZGJ4LWluamVjdGlvbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9kYngtbG9hZGluZz5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvbWF0LWV4cGFuc2lvbi1wYW5lbD5cbiJdfQ==
@@ -4,8 +4,8 @@ import { toSignal } from '@angular/core/rxjs-interop';
4
4
  import { JsonPipe } from '@angular/common';
5
5
  import { DbxFirebaseModelKeyComponent } from '../model.key.component';
6
6
  import { DbxClickToCopyTextComponent, DbxContentPitDirective, DbxDownloadTextViewComponent, DbxLoadingComponent } from '@dereekb/dbx-web';
7
- import { loadingStateContext } from '@dereekb/rxjs';
8
7
  import { twoWayFlatFirestoreModelKey } from '@dereekb/firebase';
8
+ import { cleanLoadingContext } from '@dereekb/dbx-core';
9
9
  import * as i0 from "@angular/core";
10
10
  /**
11
11
  * A debug widget component that displays entity data and metadata.
@@ -27,10 +27,7 @@ export class DbxFirebaseModelEntitiesDebugWidgetComponent extends AbstractDbxFir
27
27
  }
28
28
  return content;
29
29
  });
30
- context = loadingStateContext(this.store.dataLoadingState$);
31
- ngOnDestroy() {
32
- this.context.destroy();
33
- }
30
+ context = cleanLoadingContext(this.store.dataLoadingState$);
34
31
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseModelEntitiesDebugWidgetComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
35
32
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: DbxFirebaseModelEntitiesDebugWidgetComponent, isStandalone: true, selector: "dbx-firebase-model-entities-debug-widget", usesInheritance: true, ngImport: i0, template: "<div class=\"dbx-firebase-model-entities-debug-widget\">\n <!-- Model Key Section -->\n <div class=\"dbx-debug-section\">\n <h4>Model Key Information</h4>\n @if (currentKey(); as key) {\n <dbx-firebase-model-key [modelKey]=\"key\"></dbx-firebase-model-key>\n }\n </div>\n\n <!-- Document Data Section -->\n <div class=\"dbx-debug-section\">\n <h4>Document Data</h4>\n <dbx-loading [context]=\"context\">\n @if (currentData(); as data) {\n <dbx-download-text-view [showTitle]=\"false\" [content]=\"contentSignal()\"></dbx-download-text-view>\n } @else {\n <p class=\"dbx-empty\">No data available</p>\n }\n </dbx-loading>\n </div>\n</div>\n", dependencies: [{ kind: "component", type: DbxFirebaseModelKeyComponent, selector: "dbx-firebase-model-key", inputs: ["modelKey"] }, { kind: "component", type: DbxDownloadTextViewComponent, selector: "dbx-download-text-view", inputs: ["showDownloadButton", "loadingText", "linear", "showTitle", "showPreview", "showExpandPreviewButton", "expandPreview", "content", "contentState"], outputs: ["expandPreviewChange"] }, { kind: "component", type: DbxLoadingComponent, selector: "dbx-loading", inputs: ["padding", "show", "text", "mode", "color", "diameter", "linear", "loading", "error", "context"] }] });
36
33
  }
@@ -38,4 +35,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
38
35
  type: Component,
39
36
  args: [{ selector: 'dbx-firebase-model-entities-debug-widget', standalone: true, imports: [DbxFirebaseModelKeyComponent, DbxClickToCopyTextComponent, DbxContentPitDirective, DbxDownloadTextViewComponent, DbxLoadingComponent, JsonPipe], template: "<div class=\"dbx-firebase-model-entities-debug-widget\">\n <!-- Model Key Section -->\n <div class=\"dbx-debug-section\">\n <h4>Model Key Information</h4>\n @if (currentKey(); as key) {\n <dbx-firebase-model-key [modelKey]=\"key\"></dbx-firebase-model-key>\n }\n </div>\n\n <!-- Document Data Section -->\n <div class=\"dbx-debug-section\">\n <h4>Document Data</h4>\n <dbx-loading [context]=\"context\">\n @if (currentData(); as data) {\n <dbx-download-text-view [showTitle]=\"false\" [content]=\"contentSignal()\"></dbx-download-text-view>\n } @else {\n <p class=\"dbx-empty\">No data available</p>\n }\n </dbx-loading>\n </div>\n</div>\n" }]
40
37
  }] });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuZW50aXRpZXMud2lkZ2V0LmVudGl0eS5kZWJ1Zy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2RlbC9tb2R1bGVzL21vZGVsL2VudGl0aWVzL21vZGVsLmVudGl0aWVzLndpZGdldC5lbnRpdHkuZGVidWcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvbW9kZWwvbW9kdWxlcy9tb2RlbC9lbnRpdGllcy9tb2RlbC5lbnRpdGllcy53aWRnZXQuZW50aXR5LmRlYnVnLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsNkNBQTZDLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUNsSCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxzQkFBc0IsRUFBRSw0QkFBNEIsRUFBRSxtQkFBbUIsRUFBdUIsTUFBTSxrQkFBa0IsQ0FBQztBQUMvSixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFcEQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBRWhFOztHQUVHO0FBT0gsTUFBTSxPQUFPLDRDQUE2QyxTQUFRLDZDQUE2QztJQUM3RywwREFBMEQ7SUFDakQsVUFBVSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzlDLFdBQVcsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRW5DLGFBQWEsR0FBdUMsUUFBUSxDQUFDLEdBQUcsRUFBRTtRQUN6RSxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDOUIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRWhDLElBQUksT0FBbUMsQ0FBQztRQUV4QyxJQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNoQixNQUFNLFVBQVUsR0FBRywyQkFBMkIsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUVwRCxPQUFPLEdBQUc7Z0JBQ1IsT0FBTyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7Z0JBQ3RDLElBQUksRUFBRSxHQUFHLFVBQVUsT0FBTzthQUMzQixDQUFDO1FBQ0osQ0FBQztRQUVELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUMsQ0FBQyxDQUFDO0lBRU0sT0FBTyxHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUVyRSxXQUFXO1FBQ1QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN6QixDQUFDO3dHQTNCVSw0Q0FBNEM7NEZBQTVDLDRDQUE0QywySENuQnpELDJyQkFxQkEsNENESlksNEJBQTRCLHlGQUF1RCw0QkFBNEIsaVFBQUUsbUJBQW1COzs0RkFFbkksNENBQTRDO2tCQU54RCxTQUFTOytCQUNFLDBDQUEwQyxjQUV4QyxJQUFJLFdBQ1AsQ0FBQyw0QkFBNEIsRUFBRSwyQkFBMkIsRUFBRSxzQkFBc0IsRUFBRSw0QkFBNEIsRUFBRSxtQkFBbUIsRUFBRSxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBPbkRlc3Ryb3ksIFNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3REYnhGaXJlYmFzZU1vZGVsRW50aXR5V2lkZ2V0RGlyZWN0aXZlIH0gZnJvbSAnLi9tb2RlbC5lbnRpdGllcy53aWRnZXQuZW50aXR5LmFic3RyYWN0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IEpzb25QaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IERieEZpcmViYXNlTW9kZWxLZXlDb21wb25lbnQgfSBmcm9tICcuLi9tb2RlbC5rZXkuY29tcG9uZW50JztcbmltcG9ydCB7IERieENsaWNrVG9Db3B5VGV4dENvbXBvbmVudCwgRGJ4Q29udGVudFBpdERpcmVjdGl2ZSwgRGJ4RG93bmxvYWRUZXh0Vmlld0NvbXBvbmVudCwgRGJ4TG9hZGluZ0NvbXBvbmVudCwgRG93bmxvYWRUZXh0Q29udGVudCB9IGZyb20gJ0BkZXJlZWtiL2RieC13ZWInO1xuaW1wb3J0IHsgbG9hZGluZ1N0YXRlQ29udGV4dCB9IGZyb20gJ0BkZXJlZWtiL3J4anMnO1xuaW1wb3J0IHsgTWF5YmUgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcbmltcG9ydCB7IHR3b1dheUZsYXRGaXJlc3RvcmVNb2RlbEtleSB9IGZyb20gJ0BkZXJlZWtiL2ZpcmViYXNlJztcblxuLyoqXG4gKiBBIGRlYnVnIHdpZGdldCBjb21wb25lbnQgdGhhdCBkaXNwbGF5cyBlbnRpdHkgZGF0YSBhbmQgbWV0YWRhdGEuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RieC1maXJlYmFzZS1tb2RlbC1lbnRpdGllcy1kZWJ1Zy13aWRnZXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vbW9kZWwuZW50aXRpZXMud2lkZ2V0LmVudGl0eS5kZWJ1Zy5jb21wb25lbnQuaHRtbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtEYnhGaXJlYmFzZU1vZGVsS2V5Q29tcG9uZW50LCBEYnhDbGlja1RvQ29weVRleHRDb21wb25lbnQsIERieENvbnRlbnRQaXREaXJlY3RpdmUsIERieERvd25sb2FkVGV4dFZpZXdDb21wb25lbnQsIERieExvYWRpbmdDb21wb25lbnQsIEpzb25QaXBlXVxufSlcbmV4cG9ydCBjbGFzcyBEYnhGaXJlYmFzZU1vZGVsRW50aXRpZXNEZWJ1Z1dpZGdldENvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0RGJ4RmlyZWJhc2VNb2RlbEVudGl0eVdpZGdldERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIC8vIENvbnZlcnQgc3RvcmUgb2JzZXJ2YWJsZXMgdG8gc2lnbmFscyBmb3IgdGVtcGxhdGUgdXNhZ2VcbiAgcmVhZG9ubHkgY3VycmVudEtleSA9IHRvU2lnbmFsKHRoaXMuc3RvcmUuY3VycmVudEtleSQpO1xuICByZWFkb25seSBjdXJyZW50RGF0YSA9IHRvU2lnbmFsKHRoaXMuZGF0YSQpO1xuXG4gIHJlYWRvbmx5IGNvbnRlbnRTaWduYWw6IFNpZ25hbDxNYXliZTxEb3dubG9hZFRleHRDb250ZW50Pj4gPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3Qga2V5ID0gdGhpcy5jdXJyZW50S2V5KCk7XG4gICAgY29uc3QgZGF0YSA9IHRoaXMuY3VycmVudERhdGEoKTtcblxuICAgIGxldCBjb250ZW50OiBNYXliZTxEb3dubG9hZFRleHRDb250ZW50PjtcblxuICAgIGlmIChrZXkgJiYgZGF0YSkge1xuICAgICAgY29uc3QgZmxhdHRlbktleSA9IHR3b1dheUZsYXRGaXJlc3RvcmVNb2RlbEtleShrZXkpO1xuXG4gICAgICBjb250ZW50ID0ge1xuICAgICAgICBjb250ZW50OiBKU09OLnN0cmluZ2lmeShkYXRhLCBudWxsLCAyKSxcbiAgICAgICAgbmFtZTogYCR7ZmxhdHRlbktleX0uanNvbmBcbiAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbnRlbnQ7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IGNvbnRleHQgPSBsb2FkaW5nU3RhdGVDb250ZXh0KHRoaXMuc3RvcmUuZGF0YUxvYWRpbmdTdGF0ZSQpO1xuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuY29udGV4dC5kZXN0cm95KCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJkYngtZmlyZWJhc2UtbW9kZWwtZW50aXRpZXMtZGVidWctd2lkZ2V0XCI+XG4gIDwhLS0gTW9kZWwgS2V5IFNlY3Rpb24gLS0+XG4gIDxkaXYgY2xhc3M9XCJkYngtZGVidWctc2VjdGlvblwiPlxuICAgIDxoND5Nb2RlbCBLZXkgSW5mb3JtYXRpb248L2g0PlxuICAgIEBpZiAoY3VycmVudEtleSgpOyBhcyBrZXkpIHtcbiAgICAgIDxkYngtZmlyZWJhc2UtbW9kZWwta2V5IFttb2RlbEtleV09XCJrZXlcIj48L2RieC1maXJlYmFzZS1tb2RlbC1rZXk+XG4gICAgfVxuICA8L2Rpdj5cblxuICA8IS0tIERvY3VtZW50IERhdGEgU2VjdGlvbiAtLT5cbiAgPGRpdiBjbGFzcz1cImRieC1kZWJ1Zy1zZWN0aW9uXCI+XG4gICAgPGg0PkRvY3VtZW50IERhdGE8L2g0PlxuICAgIDxkYngtbG9hZGluZyBbY29udGV4dF09XCJjb250ZXh0XCI+XG4gICAgICBAaWYgKGN1cnJlbnREYXRhKCk7IGFzIGRhdGEpIHtcbiAgICAgICAgPGRieC1kb3dubG9hZC10ZXh0LXZpZXcgW3Nob3dUaXRsZV09XCJmYWxzZVwiIFtjb250ZW50XT1cImNvbnRlbnRTaWduYWwoKVwiPjwvZGJ4LWRvd25sb2FkLXRleHQtdmlldz5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICA8cCBjbGFzcz1cImRieC1lbXB0eVwiPk5vIGRhdGEgYXZhaWxhYmxlPC9wPlxuICAgICAgfVxuICAgIDwvZGJ4LWxvYWRpbmc+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuZW50aXRpZXMud2lkZ2V0LmVudGl0eS5kZWJ1Zy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2RlbC9tb2R1bGVzL21vZGVsL2VudGl0aWVzL21vZGVsLmVudGl0aWVzLndpZGdldC5lbnRpdHkuZGVidWcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZGJ4LWZpcmViYXNlL3NyYy9saWIvbW9kZWwvbW9kdWxlcy9tb2RlbC9lbnRpdGllcy9tb2RlbC5lbnRpdGllcy53aWRnZXQuZW50aXR5LmRlYnVnLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBRSw2Q0FBNkMsRUFBRSxNQUFNLG1EQUFtRCxDQUFDO0FBQ2xILE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLHNCQUFzQixFQUFFLDRCQUE0QixFQUFFLG1CQUFtQixFQUF1QixNQUFNLGtCQUFrQixDQUFDO0FBRS9KLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQUV4RDs7R0FFRztBQU9ILE1BQU0sT0FBTyw0Q0FBNkMsU0FBUSw2Q0FBNkM7SUFDN0csMERBQTBEO0lBQ2pELFVBQVUsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM5QyxXQUFXLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUVuQyxhQUFhLEdBQXVDLFFBQVEsQ0FBQyxHQUFHLEVBQUU7UUFDekUsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQzlCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUVoQyxJQUFJLE9BQW1DLENBQUM7UUFFeEMsSUFBSSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7WUFDaEIsTUFBTSxVQUFVLEdBQUcsMkJBQTJCLENBQUMsR0FBRyxDQUFDLENBQUM7WUFFcEQsT0FBTyxHQUFHO2dCQUNSLE9BQU8sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2dCQUN0QyxJQUFJLEVBQUUsR0FBRyxVQUFVLE9BQU87YUFDM0IsQ0FBQztRQUNKLENBQUM7UUFFRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDLENBQUMsQ0FBQztJQUVNLE9BQU8sR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLENBQUM7d0dBdkIxRCw0Q0FBNEM7NEZBQTVDLDRDQUE0QywySENuQnpELDJyQkFxQkEsNENESlksNEJBQTRCLHlGQUF1RCw0QkFBNEIsaVFBQUUsbUJBQW1COzs0RkFFbkksNENBQTRDO2tCQU54RCxTQUFTOytCQUNFLDBDQUEwQyxjQUV4QyxJQUFJLFdBQ1AsQ0FBQyw0QkFBNEIsRUFBRSwyQkFBMkIsRUFBRSxzQkFBc0IsRUFBRSw0QkFBNEIsRUFBRSxtQkFBbUIsRUFBRSxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0RGJ4RmlyZWJhc2VNb2RlbEVudGl0eVdpZGdldERpcmVjdGl2ZSB9IGZyb20gJy4vbW9kZWwuZW50aXRpZXMud2lkZ2V0LmVudGl0eS5hYnN0cmFjdC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBKc29uUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZU1vZGVsS2V5Q29tcG9uZW50IH0gZnJvbSAnLi4vbW9kZWwua2V5LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYnhDbGlja1RvQ29weVRleHRDb21wb25lbnQsIERieENvbnRlbnRQaXREaXJlY3RpdmUsIERieERvd25sb2FkVGV4dFZpZXdDb21wb25lbnQsIERieExvYWRpbmdDb21wb25lbnQsIERvd25sb2FkVGV4dENvbnRlbnQgfSBmcm9tICdAZGVyZWVrYi9kYngtd2ViJztcbmltcG9ydCB7IE1heWJlIH0gZnJvbSAnQGRlcmVla2IvdXRpbCc7XG5pbXBvcnQgeyB0d29XYXlGbGF0RmlyZXN0b3JlTW9kZWxLZXkgfSBmcm9tICdAZGVyZWVrYi9maXJlYmFzZSc7XG5pbXBvcnQgeyBjbGVhbkxvYWRpbmdDb250ZXh0IH0gZnJvbSAnQGRlcmVla2IvZGJ4LWNvcmUnO1xuXG4vKipcbiAqIEEgZGVidWcgd2lkZ2V0IGNvbXBvbmVudCB0aGF0IGRpc3BsYXlzIGVudGl0eSBkYXRhIGFuZCBtZXRhZGF0YS5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGJ4LWZpcmViYXNlLW1vZGVsLWVudGl0aWVzLWRlYnVnLXdpZGdldCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9tb2RlbC5lbnRpdGllcy53aWRnZXQuZW50aXR5LmRlYnVnLmNvbXBvbmVudC5odG1sJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0RieEZpcmViYXNlTW9kZWxLZXlDb21wb25lbnQsIERieENsaWNrVG9Db3B5VGV4dENvbXBvbmVudCwgRGJ4Q29udGVudFBpdERpcmVjdGl2ZSwgRGJ4RG93bmxvYWRUZXh0Vmlld0NvbXBvbmVudCwgRGJ4TG9hZGluZ0NvbXBvbmVudCwgSnNvblBpcGVdXG59KVxuZXhwb3J0IGNsYXNzIERieEZpcmViYXNlTW9kZWxFbnRpdGllc0RlYnVnV2lkZ2V0Q29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3REYnhGaXJlYmFzZU1vZGVsRW50aXR5V2lkZ2V0RGlyZWN0aXZlIHtcbiAgLy8gQ29udmVydCBzdG9yZSBvYnNlcnZhYmxlcyB0byBzaWduYWxzIGZvciB0ZW1wbGF0ZSB1c2FnZVxuICByZWFkb25seSBjdXJyZW50S2V5ID0gdG9TaWduYWwodGhpcy5zdG9yZS5jdXJyZW50S2V5JCk7XG4gIHJlYWRvbmx5IGN1cnJlbnREYXRhID0gdG9TaWduYWwodGhpcy5kYXRhJCk7XG5cbiAgcmVhZG9ubHkgY29udGVudFNpZ25hbDogU2lnbmFsPE1heWJlPERvd25sb2FkVGV4dENvbnRlbnQ+PiA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBrZXkgPSB0aGlzLmN1cnJlbnRLZXkoKTtcbiAgICBjb25zdCBkYXRhID0gdGhpcy5jdXJyZW50RGF0YSgpO1xuXG4gICAgbGV0IGNvbnRlbnQ6IE1heWJlPERvd25sb2FkVGV4dENvbnRlbnQ+O1xuXG4gICAgaWYgKGtleSAmJiBkYXRhKSB7XG4gICAgICBjb25zdCBmbGF0dGVuS2V5ID0gdHdvV2F5RmxhdEZpcmVzdG9yZU1vZGVsS2V5KGtleSk7XG5cbiAgICAgIGNvbnRlbnQgPSB7XG4gICAgICAgIGNvbnRlbnQ6IEpTT04uc3RyaW5naWZ5KGRhdGEsIG51bGwsIDIpLFxuICAgICAgICBuYW1lOiBgJHtmbGF0dGVuS2V5fS5qc29uYFxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29udGVudDtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgY29udGV4dCA9IGNsZWFuTG9hZGluZ0NvbnRleHQodGhpcy5zdG9yZS5kYXRhTG9hZGluZ1N0YXRlJCk7XG59XG4iLCI8ZGl2IGNsYXNzPVwiZGJ4LWZpcmViYXNlLW1vZGVsLWVudGl0aWVzLWRlYnVnLXdpZGdldFwiPlxuICA8IS0tIE1vZGVsIEtleSBTZWN0aW9uIC0tPlxuICA8ZGl2IGNsYXNzPVwiZGJ4LWRlYnVnLXNlY3Rpb25cIj5cbiAgICA8aDQ+TW9kZWwgS2V5IEluZm9ybWF0aW9uPC9oND5cbiAgICBAaWYgKGN1cnJlbnRLZXkoKTsgYXMga2V5KSB7XG4gICAgICA8ZGJ4LWZpcmViYXNlLW1vZGVsLWtleSBbbW9kZWxLZXldPVwia2V5XCI+PC9kYngtZmlyZWJhc2UtbW9kZWwta2V5PlxuICAgIH1cbiAgPC9kaXY+XG5cbiAgPCEtLSBEb2N1bWVudCBEYXRhIFNlY3Rpb24gLS0+XG4gIDxkaXYgY2xhc3M9XCJkYngtZGVidWctc2VjdGlvblwiPlxuICAgIDxoND5Eb2N1bWVudCBEYXRhPC9oND5cbiAgICA8ZGJ4LWxvYWRpbmcgW2NvbnRleHRdPVwiY29udGV4dFwiPlxuICAgICAgQGlmIChjdXJyZW50RGF0YSgpOyBhcyBkYXRhKSB7XG4gICAgICAgIDxkYngtZG93bmxvYWQtdGV4dC12aWV3IFtzaG93VGl0bGVdPVwiZmFsc2VcIiBbY29udGVudF09XCJjb250ZW50U2lnbmFsKClcIj48L2RieC1kb3dubG9hZC10ZXh0LXZpZXc+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPHAgY2xhc3M9XCJkYngtZW1wdHlcIj5ObyBkYXRhIGF2YWlsYWJsZTwvcD5cbiAgICAgIH1cbiAgICA8L2RieC1sb2FkaW5nPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -1,7 +1,7 @@
1
1
  import { distinctUntilModelKeyChange } from '@dereekb/rxjs';
2
2
  import { DbxModelObjectStateService } from '@dereekb/dbx-web';
3
3
  import { Directive, inject, input } from '@angular/core';
4
- import { AbstractSubscriptionDirective } from '@dereekb/dbx-core';
4
+ import { cleanSubscription } from '@dereekb/dbx-core';
5
5
  import { combineLatestWith, first, map, switchMap } from 'rxjs';
6
6
  import { DbxFirebaseDocumentStoreDirective } from '../store/store.document.directive';
7
7
  import { DbxFirebaseModelTypesService } from './model.types.service';
@@ -9,13 +9,13 @@ import * as i0 from "@angular/core";
9
9
  /**
10
10
  * Used with a DbxFirebaseDocumentStoreDirective to emit model viewed events.
11
11
  */
12
- export class DbxFirebaseModelViewedEventDirective extends AbstractSubscriptionDirective {
12
+ export class DbxFirebaseModelViewedEventDirective {
13
13
  dbxFirebaseDocumentStoreDirective = inject(DbxFirebaseDocumentStoreDirective);
14
14
  dbxModelObjectStateService = inject(DbxModelObjectStateService);
15
15
  dbxFirebaseModelTypesService = inject(DbxFirebaseModelTypesService);
16
16
  modelViewContext = input(undefined, { alias: 'dbxFirebaseModelViewedEvent' });
17
- ngOnInit() {
18
- this.sub = this.dbxFirebaseDocumentStoreDirective.data$
17
+ constructor() {
18
+ cleanSubscription(this.dbxFirebaseDocumentStoreDirective.data$
19
19
  .pipe(
20
20
  //
21
21
  distinctUntilModelKeyChange(), combineLatestWith(this.dbxFirebaseDocumentStoreDirective.modelIdentity$.pipe(switchMap((x) => this.dbxFirebaseModelTypesService.infoForType(x.modelType)), first()), this.dbxFirebaseDocumentStoreDirective.key$), map(([data, typeInfo, key]) => {
@@ -30,10 +30,10 @@ export class DbxFirebaseModelViewedEventDirective extends AbstractSubscriptionDi
30
30
  .subscribe((modelKeyTypeNamePair) => {
31
31
  const context = this.modelViewContext();
32
32
  this.dbxModelObjectStateService.emitModelViewEvent({ modelKeyTypeNamePair, context });
33
- });
33
+ }));
34
34
  }
35
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseModelViewedEventDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
36
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.13", type: DbxFirebaseModelViewedEventDirective, isStandalone: true, selector: "[dbxFirebaseModelViewedEvent]", inputs: { modelViewContext: { classPropertyName: "modelViewContext", publicName: "dbxFirebaseModelViewedEvent", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0 });
35
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseModelViewedEventDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
36
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.13", type: DbxFirebaseModelViewedEventDirective, isStandalone: true, selector: "[dbxFirebaseModelViewedEvent]", inputs: { modelViewContext: { classPropertyName: "modelViewContext", publicName: "dbxFirebaseModelViewedEvent", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 });
37
37
  }
38
38
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DbxFirebaseModelViewedEventDirective, decorators: [{
39
39
  type: Directive,
@@ -41,5 +41,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
41
41
  selector: '[dbxFirebaseModelViewedEvent]',
42
42
  standalone: true
43
43
  }]
44
- }] });
45
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwudHlwZXMudmlldy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2RlbC9tb2R1bGVzL21vZGVsL21vZGVsLnR5cGVzLnZpZXcuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQUUsMEJBQTBCLEVBQW9CLE1BQU0sa0JBQWtCLENBQUM7QUFDaEYsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRSxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN0RixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFHckU7O0dBRUc7QUFLSCxNQUFNLE9BQU8sb0NBQXFDLFNBQVEsNkJBQTZCO0lBQzVFLGlDQUFpQyxHQUFHLE1BQU0sQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO0lBQzlFLDBCQUEwQixHQUFHLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0lBQ2hFLDRCQUE0QixHQUFHLE1BQU0sQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO0lBRXBFLGdCQUFnQixHQUFHLEtBQUssQ0FBMEIsU0FBUyxFQUFFLEVBQUUsS0FBSyxFQUFFLDZCQUE2QixFQUFFLENBQUMsQ0FBQztJQUVoSCxRQUFRO1FBQ04sSUFBSSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsaUNBQWlDLENBQUMsS0FBSzthQUNwRCxJQUFJO1FBQ0gsRUFBRTtRQUNGLDJCQUEyQixFQUFFLEVBQzdCLGlCQUFpQixDQUNmLElBQUksQ0FBQyxpQ0FBaUMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUN4RCxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQzVFLEtBQUssRUFBRSxDQUNSLEVBQ0QsSUFBSSxDQUFDLGlDQUFpQyxDQUFDLElBQUksQ0FDNUMsRUFDRCxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsR0FBRyxDQUFDLEVBQUUsRUFBRTtZQUM1QixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsNEJBQTRCLENBQUMsY0FBYyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUVyRixNQUFNLElBQUksR0FBeUI7Z0JBQ2pDLEdBQUc7Z0JBQ0gsSUFBSSxFQUFFLFFBQVEsQ0FBQyxTQUFTO2dCQUN4QixJQUFJLEVBQUUsV0FBVyxDQUFDLEtBQUs7YUFDeEIsQ0FBQztZQUVGLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQ0g7YUFDQSxTQUFTLENBQUMsQ0FBQyxvQkFBb0IsRUFBRSxFQUFFO1lBQ2xDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3hDLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLG9CQUFvQixFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDeEYsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO3dHQW5DVSxvQ0FBb0M7NEZBQXBDLG9DQUFvQzs7NEZBQXBDLG9DQUFvQztrQkFKaEQsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsK0JBQStCO29CQUN6QyxVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBkaXN0aW5jdFVudGlsTW9kZWxLZXlDaGFuZ2UgfSBmcm9tICdAZGVyZWVrYi9yeGpzJztcbmltcG9ydCB7IERieE1vZGVsT2JqZWN0U3RhdGVTZXJ2aWNlLCBNb2RlbFZpZXdDb250ZXh0IH0gZnJvbSAnQGRlcmVla2IvZGJ4LXdlYic7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIE9uSW5pdCwgaW5qZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RTdWJzY3JpcHRpb25EaXJlY3RpdmUgfSBmcm9tICdAZGVyZWVrYi9kYngtY29yZSc7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0V2l0aCwgZmlyc3QsIG1hcCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVEaXJlY3RpdmUgfSBmcm9tICcuLi9zdG9yZS9zdG9yZS5kb2N1bWVudC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRGJ4RmlyZWJhc2VNb2RlbFR5cGVzU2VydmljZSB9IGZyb20gJy4vbW9kZWwudHlwZXMuc2VydmljZSc7XG5pbXBvcnQgeyBNYXliZSwgTW9kZWxLZXlUeXBlTmFtZVBhaXIgfSBmcm9tICdAZGVyZWVrYi91dGlsJztcblxuLyoqXG4gKiBVc2VkIHdpdGggYSBEYnhGaXJlYmFzZURvY3VtZW50U3RvcmVEaXJlY3RpdmUgdG8gZW1pdCBtb2RlbCB2aWV3ZWQgZXZlbnRzLlxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbZGJ4RmlyZWJhc2VNb2RlbFZpZXdlZEV2ZW50XScsXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgRGJ4RmlyZWJhc2VNb2RlbFZpZXdlZEV2ZW50RGlyZWN0aXZlIGV4dGVuZHMgQWJzdHJhY3RTdWJzY3JpcHRpb25EaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuICByZWFkb25seSBkYnhGaXJlYmFzZURvY3VtZW50U3RvcmVEaXJlY3RpdmUgPSBpbmplY3QoRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlRGlyZWN0aXZlKTtcbiAgcmVhZG9ubHkgZGJ4TW9kZWxPYmplY3RTdGF0ZVNlcnZpY2UgPSBpbmplY3QoRGJ4TW9kZWxPYmplY3RTdGF0ZVNlcnZpY2UpO1xuICByZWFkb25seSBkYnhGaXJlYmFzZU1vZGVsVHlwZXNTZXJ2aWNlID0gaW5qZWN0KERieEZpcmViYXNlTW9kZWxUeXBlc1NlcnZpY2UpO1xuXG4gIHJlYWRvbmx5IG1vZGVsVmlld0NvbnRleHQgPSBpbnB1dDxNYXliZTxNb2RlbFZpZXdDb250ZXh0Pj4odW5kZWZpbmVkLCB7IGFsaWFzOiAnZGJ4RmlyZWJhc2VNb2RlbFZpZXdlZEV2ZW50JyB9KTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YiA9IHRoaXMuZGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlRGlyZWN0aXZlLmRhdGEkXG4gICAgICAucGlwZShcbiAgICAgICAgLy9cbiAgICAgICAgZGlzdGluY3RVbnRpbE1vZGVsS2V5Q2hhbmdlKCksXG4gICAgICAgIGNvbWJpbmVMYXRlc3RXaXRoKFxuICAgICAgICAgIHRoaXMuZGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlRGlyZWN0aXZlLm1vZGVsSWRlbnRpdHkkLnBpcGUoXG4gICAgICAgICAgICBzd2l0Y2hNYXAoKHgpID0+IHRoaXMuZGJ4RmlyZWJhc2VNb2RlbFR5cGVzU2VydmljZS5pbmZvRm9yVHlwZSh4Lm1vZGVsVHlwZSkpLFxuICAgICAgICAgICAgZmlyc3QoKVxuICAgICAgICAgICksXG4gICAgICAgICAgdGhpcy5kYnhGaXJlYmFzZURvY3VtZW50U3RvcmVEaXJlY3RpdmUua2V5JFxuICAgICAgICApLFxuICAgICAgICBtYXAoKFtkYXRhLCB0eXBlSW5mbywga2V5XSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGRpc3BsYXlJbmZvID0gdGhpcy5kYnhGaXJlYmFzZU1vZGVsVHlwZXNTZXJ2aWNlLmdldERpc3BsYXlJbmZvKHR5cGVJbmZvLCBkYXRhKTtcblxuICAgICAgICAgIGNvbnN0IHBhaXI6IE1vZGVsS2V5VHlwZU5hbWVQYWlyID0ge1xuICAgICAgICAgICAga2V5LFxuICAgICAgICAgICAgdHlwZTogdHlwZUluZm8ubW9kZWxUeXBlLFxuICAgICAgICAgICAgbmFtZTogZGlzcGxheUluZm8udGl0bGVcbiAgICAgICAgICB9O1xuXG4gICAgICAgICAgcmV0dXJuIHBhaXI7XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChtb2RlbEtleVR5cGVOYW1lUGFpcikgPT4ge1xuICAgICAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5tb2RlbFZpZXdDb250ZXh0KCk7XG4gICAgICAgIHRoaXMuZGJ4TW9kZWxPYmplY3RTdGF0ZVNlcnZpY2UuZW1pdE1vZGVsVmlld0V2ZW50KHsgbW9kZWxLZXlUeXBlTmFtZVBhaXIsIGNvbnRleHQgfSk7XG4gICAgICB9KTtcbiAgfVxufVxuIl19
44
+ }], ctorParameters: () => [] });
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwudHlwZXMudmlldy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9kYngtZmlyZWJhc2Uvc3JjL2xpYi9tb2RlbC9tb2R1bGVzL21vZGVsL21vZGVsLnR5cGVzLnZpZXcuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQUUsMEJBQTBCLEVBQW9CLE1BQU0sa0JBQWtCLENBQUM7QUFDaEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRSxPQUFPLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN0RixPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFHckU7O0dBRUc7QUFLSCxNQUFNLE9BQU8sb0NBQW9DO0lBQ3RDLGlDQUFpQyxHQUFHLE1BQU0sQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO0lBQzlFLDBCQUEwQixHQUFHLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0lBQ2hFLDRCQUE0QixHQUFHLE1BQU0sQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO0lBRXBFLGdCQUFnQixHQUFHLEtBQUssQ0FBMEIsU0FBUyxFQUFFLEVBQUUsS0FBSyxFQUFFLDZCQUE2QixFQUFFLENBQUMsQ0FBQztJQUVoSDtRQUNFLGlCQUFpQixDQUNmLElBQUksQ0FBQyxpQ0FBaUMsQ0FBQyxLQUFLO2FBQ3pDLElBQUk7UUFDSCxFQUFFO1FBQ0YsMkJBQTJCLEVBQUUsRUFDN0IsaUJBQWlCLENBQ2YsSUFBSSxDQUFDLGlDQUFpQyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQ3hELFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLDRCQUE0QixDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsRUFDNUUsS0FBSyxFQUFFLENBQ1IsRUFDRCxJQUFJLENBQUMsaUNBQWlDLENBQUMsSUFBSSxDQUM1QyxFQUNELEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFO1lBQzVCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyw0QkFBNEIsQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBRXJGLE1BQU0sSUFBSSxHQUF5QjtnQkFDakMsR0FBRztnQkFDSCxJQUFJLEVBQUUsUUFBUSxDQUFDLFNBQVM7Z0JBQ3hCLElBQUksRUFBRSxXQUFXLENBQUMsS0FBSzthQUN4QixDQUFDO1lBRUYsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FDSDthQUNBLFNBQVMsQ0FBQyxDQUFDLG9CQUFvQixFQUFFLEVBQUU7WUFDbEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFDeEMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLGtCQUFrQixDQUFDLEVBQUUsb0JBQW9CLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUN4RixDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ0osQ0FBQzt3R0FyQ1Usb0NBQW9DOzRGQUFwQyxvQ0FBb0M7OzRGQUFwQyxvQ0FBb0M7a0JBSmhELFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLCtCQUErQjtvQkFDekMsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZGlzdGluY3RVbnRpbE1vZGVsS2V5Q2hhbmdlIH0gZnJvbSAnQGRlcmVla2Ivcnhqcyc7XG5pbXBvcnQgeyBEYnhNb2RlbE9iamVjdFN0YXRlU2VydmljZSwgTW9kZWxWaWV3Q29udGV4dCB9IGZyb20gJ0BkZXJlZWtiL2RieC13ZWInO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBpbmplY3QsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBjbGVhblN1YnNjcmlwdGlvbiB9IGZyb20gJ0BkZXJlZWtiL2RieC1jb3JlJztcbmltcG9ydCB7IGNvbWJpbmVMYXRlc3RXaXRoLCBmaXJzdCwgbWFwLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERieEZpcmViYXNlRG9jdW1lbnRTdG9yZURpcmVjdGl2ZSB9IGZyb20gJy4uL3N0b3JlL3N0b3JlLmRvY3VtZW50LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBEYnhGaXJlYmFzZU1vZGVsVHlwZXNTZXJ2aWNlIH0gZnJvbSAnLi9tb2RlbC50eXBlcy5zZXJ2aWNlJztcbmltcG9ydCB7IE1heWJlLCBNb2RlbEtleVR5cGVOYW1lUGFpciB9IGZyb20gJ0BkZXJlZWtiL3V0aWwnO1xuXG4vKipcbiAqIFVzZWQgd2l0aCBhIERieEZpcmViYXNlRG9jdW1lbnRTdG9yZURpcmVjdGl2ZSB0byBlbWl0IG1vZGVsIHZpZXdlZCBldmVudHMuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tkYnhGaXJlYmFzZU1vZGVsVmlld2VkRXZlbnRdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBEYnhGaXJlYmFzZU1vZGVsVmlld2VkRXZlbnREaXJlY3RpdmUge1xuICByZWFkb25seSBkYnhGaXJlYmFzZURvY3VtZW50U3RvcmVEaXJlY3RpdmUgPSBpbmplY3QoRGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlRGlyZWN0aXZlKTtcbiAgcmVhZG9ubHkgZGJ4TW9kZWxPYmplY3RTdGF0ZVNlcnZpY2UgPSBpbmplY3QoRGJ4TW9kZWxPYmplY3RTdGF0ZVNlcnZpY2UpO1xuICByZWFkb25seSBkYnhGaXJlYmFzZU1vZGVsVHlwZXNTZXJ2aWNlID0gaW5qZWN0KERieEZpcmViYXNlTW9kZWxUeXBlc1NlcnZpY2UpO1xuXG4gIHJlYWRvbmx5IG1vZGVsVmlld0NvbnRleHQgPSBpbnB1dDxNYXliZTxNb2RlbFZpZXdDb250ZXh0Pj4odW5kZWZpbmVkLCB7IGFsaWFzOiAnZGJ4RmlyZWJhc2VNb2RlbFZpZXdlZEV2ZW50JyB9KTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBjbGVhblN1YnNjcmlwdGlvbihcbiAgICAgIHRoaXMuZGJ4RmlyZWJhc2VEb2N1bWVudFN0b3JlRGlyZWN0aXZlLmRhdGEkXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIC8vXG4gICAgICAgICAgZGlzdGluY3RVbnRpbE1vZGVsS2V5Q2hhbmdlKCksXG4gICAgICAgICAgY29tYmluZUxhdGVzdFdpdGgoXG4gICAgICAgICAgICB0aGlzLmRieEZpcmViYXNlRG9jdW1lbnRTdG9yZURpcmVjdGl2ZS5tb2RlbElkZW50aXR5JC5waXBlKFxuICAgICAgICAgICAgICBzd2l0Y2hNYXAoKHgpID0+IHRoaXMuZGJ4RmlyZWJhc2VNb2RlbFR5cGVzU2VydmljZS5pbmZvRm9yVHlwZSh4Lm1vZGVsVHlwZSkpLFxuICAgICAgICAgICAgICBmaXJzdCgpXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgdGhpcy5kYnhGaXJlYmFzZURvY3VtZW50U3RvcmVEaXJlY3RpdmUua2V5JFxuICAgICAgICAgICksXG4gICAgICAgICAgbWFwKChbZGF0YSwgdHlwZUluZm8sIGtleV0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGRpc3BsYXlJbmZvID0gdGhpcy5kYnhGaXJlYmFzZU1vZGVsVHlwZXNTZXJ2aWNlLmdldERpc3BsYXlJbmZvKHR5cGVJbmZvLCBkYXRhKTtcblxuICAgICAgICAgICAgY29uc3QgcGFpcjogTW9kZWxLZXlUeXBlTmFtZVBhaXIgPSB7XG4gICAgICAgICAgICAgIGtleSxcbiAgICAgICAgICAgICAgdHlwZTogdHlwZUluZm8ubW9kZWxUeXBlLFxuICAgICAgICAgICAgICBuYW1lOiBkaXNwbGF5SW5mby50aXRsZVxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgcmV0dXJuIHBhaXI7XG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKChtb2RlbEtleVR5cGVOYW1lUGFpcikgPT4ge1xuICAgICAgICAgIGNvbnN0IGNvbnRleHQgPSB0aGlzLm1vZGVsVmlld0NvbnRleHQoKTtcbiAgICAgICAgICB0aGlzLmRieE1vZGVsT2JqZWN0U3RhdGVTZXJ2aWNlLmVtaXRNb2RlbFZpZXdFdmVudCh7IG1vZGVsS2V5VHlwZU5hbWVQYWlyLCBjb250ZXh0IH0pO1xuICAgICAgICB9KVxuICAgICk7XG4gIH1cbn1cbiJdfQ==