@osovitny/anatoly 3.16.50 → 3.16.52
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/core/services/appcontext.service.mjs +42 -60
- package/esm2022/lib/iam/services/auth.service.mjs +21 -10
- package/esm2022/lib/ui/components/billing/buyaccess-button.component.mjs +8 -5
- package/esm2022/lib/ui/components/billing/subscribe-plan-button.component.mjs +10 -7
- package/esm2022/lib/ui/forms/contact-us/contact-us.mjs +13 -13
- package/fesm2022/osovitny-anatoly.mjs +89 -90
- package/fesm2022/osovitny-anatoly.mjs.map +1 -1
- package/lib/core/services/appcontext.service.d.ts +4 -7
- package/lib/ui/forms/contact-us/contact-us.d.ts +0 -1
- package/package.json +1 -1
|
@@ -81,8 +81,18 @@ export class ContactUsForm extends BaseEditComponent {
|
|
|
81
81
|
}
|
|
82
82
|
ngOnInit() {
|
|
83
83
|
this.createFormGroup();
|
|
84
|
-
this.appContext.
|
|
85
|
-
|
|
84
|
+
this.appContext.updated$.subscribe((context) => {
|
|
85
|
+
if (!context) {
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
this.isUserSignedIn = context.isUserSignedIn;
|
|
89
|
+
this.reCaptchaSiteKey = context.reCaptchaSiteKeyV3;
|
|
90
|
+
this.selectedTopic = this.topicList[3].value;
|
|
91
|
+
this.setFormValue('topic', this.selectedTopic);
|
|
92
|
+
if (this.isUserSignedIn) {
|
|
93
|
+
this.setFormValue('name', context.user.displayNameOrFullName);
|
|
94
|
+
this.setFormValue('email', context.user.email);
|
|
95
|
+
}
|
|
86
96
|
});
|
|
87
97
|
}
|
|
88
98
|
createFormGroup() {
|
|
@@ -94,16 +104,6 @@ export class ContactUsForm extends BaseEditComponent {
|
|
|
94
104
|
message: new FormControl('', [Validators.required])
|
|
95
105
|
});
|
|
96
106
|
}
|
|
97
|
-
setContext(context) {
|
|
98
|
-
this.isUserSignedIn = context.isUserSignedIn;
|
|
99
|
-
this.reCaptchaSiteKey = context.reCaptchaSiteKeyV3;
|
|
100
|
-
this.selectedTopic = this.topicList[3].value;
|
|
101
|
-
this.setFormValue('topic', this.selectedTopic);
|
|
102
|
-
if (this.isUserSignedIn) {
|
|
103
|
-
this.setFormValue('name', context.user.displayNameOrFullName);
|
|
104
|
-
this.setFormValue('email', context.user.email);
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
107
|
isValid() {
|
|
108
108
|
return this.formGroup.valid;
|
|
109
109
|
}
|
|
@@ -216,4 +216,4 @@ export class ContactUsForm extends BaseEditComponent {
|
|
|
216
216
|
}], submit: [{
|
|
217
217
|
type: Output
|
|
218
218
|
}] }); })();
|
|
219
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC11cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuYXRvbHkvc3JjL2xpYi91aS9mb3Jtcy9jb250YWN0LXVzL2NvbnRhY3QtdXMudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvdWkvZm9ybXMvY29udGFjdC11cy9jb250YWN0LXVzLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0VBY0U7QUFFRixNQUFNO0FBQ04sT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQWUsV0FBVyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBT3RFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDOzs7Ozs7Ozs7Ozs7SUNiaEUsa0NBQThEO0lBQUEsWUFBa0I7SUFBQSxpQkFBUzs7O0lBQWpELHNDQUFxQjtJQUFDLGVBQWtCO0lBQWxCLDhDQUFrQjs7O0lBcUJwRix5QkFBMkI7SUFBQSxtR0FBbUY7SUFBQSxpQkFBSTs7O0lBaUNsSCxrQ0FHc0I7SUFDcEIsd0JBQ0Y7SUFBQSxpQkFBUzs7O0lBSkQsd0RBQXdDOzs7QURwQzFELE1BQU0sT0FBTyxhQUFjLFNBQVEsaUJBQWlCO0lBb0J4QztJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBdkJWLGNBQWMsR0FBWSxLQUFLLENBQUM7SUFDaEMsZ0JBQWdCLENBQUM7SUFDakIsYUFBYSxDQUFDO0lBRWQsU0FBUyxHQUFHO1FBQ1YsRUFBRSxLQUFLLEVBQUUsbUJBQW1CLEVBQUU7UUFDOUIsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUU7UUFDNUIsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFO1FBQ3hCLEVBQUUsS0FBSyxFQUFFLG1CQUFtQixFQUFFO1FB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bnQiOlsiLypcclxuPGZpbGU+XHJcbiAgUHJvamVjdDpcclxuICAgIEBvc292aXRueS9hbmF0b2x5XHJcblxyXG4gIEF1dGhvcnM6XHJcbiAgICBWYWRpbSBPc292aXRueSB2YWRpbUBvc292aXRueS5jb21cclxuICAgIEFuYXRvbHkgT3Nvdml0bnkgYW5hdG9seUBvc292aXRueS5jb21cclxuXHJcbiAgQ3JlYXRlZDpcclxuICAgIDAyIEF1ZyAyMDIyXHJcblxyXG4gIENvcHlyaWdodCAoYykgMjAxNy0yMDIyIE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuLy9Ob2RlXHJcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBSZUNhcHRjaGFWM1NlcnZpY2UgfSBmcm9tICduZ3gtY2FwdGNoYSc7XHJcblxyXG4vL0FwcFxyXG5pbXBvcnQgeyBBcHBDb250ZXh0U2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL3NlcnZpY2VzL2FwcGNvbnRleHQuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25TZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uL2NvcmUvbm90aWZpY2F0aW9ucy9zZXJ2aWNlcy9ub3RpZmljYXRpb24tc2VydmljZVwiO1xyXG5pbXBvcnQgeyBFbWFpbHNBcGlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vZGF0YS9zZXJ2aWNlcy9lbWFpbHMtYXBpLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBCYXNlRWRpdENvbXBvbmVudCB9IGZyb20gXCIuLi8uLi9jb21wb25lbnRzL2Jhc2UvYmFzZS1lZGl0LmNvbXBvbmVudFwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhbmF0b2x5LWZvcm1zLWNvbnRhY3R1cy1mb3JtJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY29udGFjdC11cy5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29udGFjdFVzRm9ybSBleHRlbmRzIEJhc2VFZGl0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBpc1VzZXJTaWduZWRJbjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHJlQ2FwdGNoYVNpdGVLZXk7XHJcbiAgc2VsZWN0ZWRUb3BpYztcclxuXHJcbiAgdG9waWNMaXN0ID0gW1xyXG4gICAgeyB2YWx1ZTogJ0JpbGxpbmcgJiBQcmljaW5nJyB9LFxyXG4gICAgeyB2YWx1ZTogJ0xlZ2FsICYgUHJpdmFjeScgfSxcclxuICAgIHsgdmFsdWU6ICdSZXBvciBhYnVzZScgfSxcclxuICAgIHsgdmFsdWU6ICdUZWNobmljYWwgU3VwcG9ydCcgfSxcclxuICAgIHsgdmFsdWU6ICdPdGhlcicgfVxyXG4gIF07XHJcblxyXG4gIC8vSW5wdXRzXHJcbiAgQElucHV0KCkgc2hvd0FjdGlvbkJ1dHRvbnMgPSB0cnVlO1xyXG5cclxuICAvL091dHB1dHNcclxuICBAT3V0cHV0KCkgc3VibWl0OiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlQ2FwdGNoYTogUmVDYXB0Y2hhVjNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXHJcbiAgICBwcml2YXRlIGFwcENvbnRleHQ6IEFwcENvbnRleHRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhcGk6IEVtYWlsc0FwaVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIG5vdGlmaWNhdGlvblNlcnZpY2U6IE5vdGlmaWNhdGlvblNlcnZpY2UpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuY3JlYXRlRm9ybUdyb3VwKCk7XHJcbiBcclxuICAgIHRoaXMuYXBwQ29udGV4dC5nZXRDdXJyZW50KGNvbnRleHQgPT4ge1xyXG4gICAgICB0aGlzLnNldENvbnRleHQoY29udGV4dCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGNyZWF0ZUZvcm1Hcm91cCgpIHtcclxuICAgIHRoaXMuZm9ybUdyb3VwID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgIG5hbWU6IG5ldyBGb3JtQ29udHJvbCgnJywgWyBWYWxpZGF0b3JzLnJlcXVpcmVkIF0pLFxyXG4gICAgICBlbWFpbDogbmV3IEZvcm1Db250cm9sKCcnLCBbIFZhbGlkYXRvcnMucmVxdWlyZWQgXSksXHJcbiAgICAgIHRvcGljOiBuZXcgRm9ybUNvbnRyb2woJycsIFsgVmFsaWRhdG9ycy5yZXF1aXJlZCBdKSxcclxuICAgICAgc3ViamVjdDogbmV3IEZvcm1Db250cm9sKCcnLCBbIFZhbGlkYXRvcnMucmVxdWlyZWQgXSksXHJcbiAgICAgIG1lc3NhZ2U6IG5ldyBGb3JtQ29udHJvbCgnJywgWyBWYWxpZGF0b3JzLnJlcXVpcmVkIF0pXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldENvbnRleHQoY29udGV4dCkge1xyXG4gICAgdGhpcy5pc1VzZXJTaWduZWRJbiA9IGNvbnRleHQuaXNVc2VyU2lnbmVkSW47XHJcbiAgICB0aGlzLnJlQ2FwdGNoYVNpdGVLZXkgPSBjb250ZXh0LnJlQ2FwdGNoYVNpdGVLZXlWMztcclxuICAgIHRoaXMuc2VsZWN0ZWRUb3BpYyA9IHRoaXMudG9waWNMaXN0WzNdLnZhbHVlO1xyXG5cclxuICAgIHRoaXMuc2V0Rm9ybVZhbHVlKCd0b3BpYycsIHRoaXMuc2VsZWN0ZWRUb3BpYyk7XHJcblxyXG4gICAgaWYgKHRoaXMuaXNVc2VyU2lnbmVkSW4pIHtcclxuICAgICAgdGhpcy5zZXRGb3JtVmFsdWUoJ25hbWUnLCBjb250ZXh0LnVzZXIuZGlzcGxheU5hbWVPckZ1bGxOYW1lKTtcclxuICAgICAgdGhpcy5zZXRGb3JtVmFsdWUoJ2VtYWlsJywgY29udGV4dC51c2VyLmVtYWlsKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGlzVmFsaWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5mb3JtR3JvdXAudmFsaWQ7XHJcbiAgfVxyXG5cclxuICBjb250YWN0VXMoKSB7XHJcbiAgICB0aGlzLmZvcm1TdWJtaXR0ZWQgPSB0cnVlO1xyXG4gICAgaWYgKCF0aGlzLmlzVmFsaWQoKSkgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IG5hbWUgPSB0aGlzLmdldEZvcm1WYWx1ZSgnbmFtZScpO1xyXG4gICAgY29uc3QgZW1haWwgPSB0aGlzLmdldEZvcm1WYWx1ZSgnZW1haWwnKTtcclxuICAgIGNvbnN0IHRvcGljID0gdGhpcy5zZWxlY3RlZFRvcGljO1xyXG4gICAgY29uc3Qgc3ViamVjdCA9IHRoaXMuZ2V0Rm9ybVZhbHVlKCdzdWJqZWN0Jyk7XHJcbiAgICBjb25zdCBtZXNzYWdlID0gdGhpcy5nZXRGb3JtVmFsdWUoJ21lc3NhZ2UnKTtcclxuXHJcbiAgICB0aGlzLnJlQ2FwdGNoYS5leGVjdXRlKHRoaXMucmVDYXB0Y2hhU2l0ZUtleSwgJ0NvbnRhY3RVcycsICh0b2tlbikgPT4ge1xyXG4gICAgICB0aGlzLmFwaS5zZW5kQ29udGFjdFVzKHRva2VuLCBuYW1lLCBlbWFpbCwgdG9waWMsIHN1YmplY3QsIG1lc3NhZ2UsXHJcbiAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5mb3JtU3VibWl0dGVkID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uuc3VjY2VzcygnTWVzc2FnZSBoYXMgYmVlbiBzZW50IHN1Y2Nlc3NmdWxseScpO1xyXG4gICAgICAgICAgdGhpcy5mb3JtR3JvdXAucmVzZXQoKTtcclxuICBcclxuICAgICAgICAgIHRoaXMuc3VibWl0LmVtaXQoKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgICgpID0+IHtcclxuICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5lcnJvcigpO1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLy9FdmVudHNcclxuICBvblN1Ym1pdCgpIHtcclxuICAgIHRoaXMuY29udGFjdFVzKCk7XHJcbiAgfVxyXG5cclxuICBvblRvcGljQ2hhbmdlKGV2ZW50KSB7XHJcbiAgICB0aGlzLnNlbGVjdGVkVG9waWMgPSBldmVudC50YXJnZXQudmFsdWU7XHJcbiAgfVxyXG59XHJcbiIsIjxmb3JtIChuZ1N1Ym1pdCk9J29uU3VibWl0KCknIFtmb3JtR3JvdXBdPSdmb3JtR3JvdXAnIG5vdmFsaWRhdGU+XHJcbiAgPGFuYXRvbHktZm9ybS12YWxpZGF0aW9uLXN1bW1hcnkgW2Zvcm1Hcm91cF09J2Zvcm1Hcm91cCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmlzaWJsZV09J2Zvcm1TdWJtaXR0ZWQgJiYgZm9ybUdyb3VwLmludmFsaWQnPjwvYW5hdG9seS1mb3JtLXZhbGlkYXRpb24tc3VtbWFyeT5cclxuXHJcbiAgPGRpdiBjbGFzcz0nY29udGFjdC11cyc+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9J2Zvcm0tZmllbGRzIGNvbC02Jz5cclxuICAgICAgICA8cD5XaGF0IGNhbiB3ZSBoZWxwIHlvdSB3aXRoPzwvcD5cclxuICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cInsnaGFzLWVycm9yJzogaXNDb250cm9sSW52YWxpZCgndG9waWMnKSB9XCIgY2xhc3M9J2Zvcm0tdG9waWMnPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz0nZm9ybS1zZWxlY3Qtd3JhcHBlcic+XHJcbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz0nYXNzaXN0aXZlLXRleHQnPlRvcGljICo8L2xhYmVsPlxyXG4gICAgICAgICAgICA8c2VsZWN0IChjaGFuZ2UpPSdvblRvcGljQ2hhbmdlKCRldmVudCknIGNsYXNzPSdmb3JtLXNlbGVjdCcgZm9ybUNvbnRyb2xOYW1lPSd0b3BpYyc+XHJcbiAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9J2xldCB0b3BpYyBvZiB0b3BpY0xpc3QnIFt2YWx1ZV09J3RvcGljLnZhbHVlJz57eyB0b3BpYy52YWx1ZSB9fSA8L29wdGlvbj5cclxuICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgIDxhbmF0b2x5LWl0ZW0tdmFsaWRhdGlvbi1zdW1tYXJ5IFtmb3JtR3JvdXBdPSdmb3JtR3JvdXAnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtU3VibWl0dGVkXT0nZm9ybVN1Ym1pdHRlZCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbE5hbWU9J3RvcGljJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sVGl0bGU9J3RvcGljJz5cclxuICAgICAgICAgICAgPC9hbmF0b2x5LWl0ZW0tdmFsaWRhdGlvbi1zdW1tYXJ5PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBbbmdDbGFzc109XCJ7J2hhcy1lcnJvcic6IGlzQ29udHJvbEludmFsaWQoJ25hbWUnKSB9XCIgY2xhc3M9J2Zvcm0tbmFtZSc+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9J2Fzc2lzdGl2ZS10ZXh0Jz5OYW1lICo8L2xhYmVsPlxyXG4gICAgICAgICAgPGlucHV0IGNsYXNzPSdmb3JtLWNvbnRyb2wnIGZvcm1Db250cm9sTmFtZT0nbmFtZScgcGxhY2Vob2xkZXI9J05hbWUgKicgdHlwZT0ndGV4dCc+XHJcbiAgICAgICAgICA8YW5hdG9seS1pdGVtLXZhbGlkYXRpb24tc3VtbWFyeSBbZm9ybUdyb3VwXT0nZm9ybUdyb3VwJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1TdWJtaXR0ZWRdPSdmb3JtU3VibWl0dGVkJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbE5hbWU9J25hbWUnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sVGl0bGU9J25hbWUnPlxyXG4gICAgICAgICAgPC9hbmF0b2x5LWl0ZW0tdmFsaWRhdGlvbi1zdW1tYXJ5PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgW25nQ2xhc3NdPVwieydoYXMtZXJyb3InOiBpc0NvbnRyb2xJbnZhbGlkKCdlbWFpbCcpIH1cIiBjbGFzcz0nZm9ybS1lbWFpbCc+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9J2Fzc2lzdGl2ZS10ZXh0Jz5FLW1haWwgKiA8L2xhYmVsPlxyXG4gICAgICAgICAgPGlucHV0IGNsYXNzPSdmb3JtLWNvbnRyb2wnIGZvcm1Db250cm9sTmFtZT0nZW1haWwnIHBsYWNlaG9sZGVyPSdFLW1haWwgKicgdHlwZT0ndGV4dCcgLz5cclxuICAgICAgICAgIDxwICpuZ0lmPSchaXNVc2VyU2lnbmVkSW4nPlBsZWFzZSBpbmRpY2F0ZSB0aGUgZW1haWwgdXNlZCBmb3IgeW91ciBNYWlsRXggbG9naW4gaWYgeW91IGFscmVhZHkgaGF2ZSBhbiBhY2NvdW50PC9wPlxyXG4gICAgICAgICAgPGFuYXRvbHktaXRlbS12YWxpZGF0aW9uLXN1bW1hcnkgW2Zvcm1Hcm91cF09J2Zvcm1Hcm91cCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtU3VibWl0dGVkXT0nZm9ybVN1Ym1pdHRlZCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2xOYW1lPSdlbWFpbCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2xUaXRsZT0nZW1haWwnPlxyXG4gICAgICAgICAgPC9hbmF0b2x5LWl0ZW0tdmFsaWRhdGlvbi1zdW1tYXJ5PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgW25nQ2xhc3NdPVwieydoYXMtZXJyb3InOiBpc0NvbnRyb2xJbnZhbGlkKCdzdWJqZWN0JykgfVwiIGNsYXNzPSdmb3JtLXN1YmplY3QnPlxyXG4gICAgICAgICAgPGxhYmVsIGNsYXNzPSdhc3Npc3RpdmUtdGV4dCc+U3ViamVjdCAqPC9sYWJlbD5cclxuICAgICAgICAgIDxpbnB1dCBjbGFzcz0nZm9ybS1jb250cm9sJyBmb3JtQ29udHJvbE5hbWU9J3N1YmplY3QnIHBsYWNlaG9sZGVyPSdTdWJqZWN0IConIHR5cGU9J3RleHQnIC8+XHJcbiAgICAgICAgICA8YW5hdG9seS1pdGVtLXZhbGlkYXRpb24tc3VtbWFyeSBbZm9ybUdyb3VwXT0nZm9ybUdyb3VwJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1TdWJtaXR0ZWRdPSdmb3JtU3VibWl0dGVkJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbE5hbWU9J3N1YmplY3QnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sVGl0bGU9J3N1YmplY3QnPlxyXG4gICAgICAgICAgPC9hbmF0b2x5LWl0ZW0tdmFsaWRhdGlvbi1zdW1tYXJ5PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9J2NvbC02Jz5cclxuICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cInsnaGFzLWVycm9yJzogaXNDb250cm9sSW52YWxpZCgnbWVzc2FnZScpIH1cIiBjbGFzcz0nZm9ybS1tZXNzYWdlJz5cclxuICAgICAgICAgIDxsYWJlbCBjbGFzcz0nYXNzaXN0aXZlLXRleHQnPk1lc3NhZ2UgKjwvbGFiZWw+XHJcbiAgICAgICAgICA8dGV4dGFyZWEgZm9ybUNvbnRyb2xOYW1lPSdtZXNzYWdlJyBuYW1lPSdtZXNzYWdlJyBwbGFjZWhvbGRlcj0nTWVzc2FnZSAgKicgcm93cz0nNCdcclxuICAgICAgICAgICAgICAgICAgICB0eXBlPSd0ZXh0Jz48L3RleHRhcmVhPlxyXG4gICAgICAgICAgPGFuYXRvbHktaXRlbS12YWxpZGF0aW9uLXN1bW1hcnkgW2Zvcm1Hcm91cF09J2Zvcm1Hcm91cCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtU3VibWl0dGVkXT0nZm9ybVN1Ym1pdHRlZCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2xOYW1lPSdtZXNzYWdlJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbFRpdGxlPSdtZXNzYWdlJz5cclxuICAgICAgICAgIDwvYW5hdG9seS1pdGVtLXZhbGlkYXRpb24tc3VtbWFyeT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInJvdyBmb3JtLWZvb3RlclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2xcIj5cclxuICAgICAgICAgIDxidXR0b24gKm5nSWY9J3Nob3dBY3Rpb25CdXR0b25zJ1xyXG4gICAgICAgICAgICAgICAgICBbY2xhc3MuYnRuLXByaW1hcnldPSchZm9ybUdyb3VwLmludmFsaWQnXHJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPSdidG4gYnRuLXN1Y2Nlc3MnXHJcbiAgICAgICAgICAgICAgICAgIHR5cGU9J3N1Ym1pdCc+XHJcbiAgICAgICAgICAgIFN1Ym1pdFxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9mb3JtPlxyXG4iXX0=
|
|
219
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGFjdC11cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuYXRvbHkvc3JjL2xpYi91aS9mb3Jtcy9jb250YWN0LXVzL2NvbnRhY3QtdXMudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvdWkvZm9ybXMvY29udGFjdC11cy9jb250YWN0LXVzLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0VBY0U7QUFFRixNQUFNO0FBQ04sT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQWUsV0FBVyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBT3RFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDOzs7Ozs7Ozs7Ozs7SUNiaEUsa0NBQThEO0lBQUEsWUFBa0I7SUFBQSxpQkFBUzs7O0lBQWpELHNDQUFxQjtJQUFDLGVBQWtCO0lBQWxCLDhDQUFrQjs7O0lBcUJwRix5QkFBMkI7SUFBQSxtR0FBbUY7SUFBQSxpQkFBSTs7O0lBaUNsSCxrQ0FHc0I7SUFDcEIsd0JBQ0Y7SUFBQSxpQkFBUzs7O0lBSkQsd0RBQXdDOzs7QURwQzFELE1BQU0sT0FBTyxhQUFjLFNBQVEsaUJBQWlCO0lBb0J4QztJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBdkJWLGNBQWMsR0FBWSxLQUFLLENBQUM7SUFDaEMsZ0JBQWdCLENBQUM7SUFDakIsYUFBYSxDQUFDO0lBRWQsU0FBUyxHQUFHO1FBQ1YsRUFBRSxLQUFLLEVBQUUsbUJBQW1CLEVBQUU7UUFDOUIsRUFBRSxLQUFLLEVBQUUsaUJBQWlCLEVBQUU7UUFDNUIsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFO1FBQ3hCLEVBQUUsS0FBSyxFQUFFLG1CQUFtQixFQUFFO1FB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aWxlPlxyXG4gIFByb2plY3Q6XHJcbiAgICBAb3Nvdml0bnkvYW5hdG9seVxyXG5cclxuICBBdXRob3JzOlxyXG4gICAgVmFkaW0gT3Nvdml0bnkgdmFkaW1Ab3Nvdml0bnkuY29tXHJcbiAgICBBbmF0b2x5IE9zb3ZpdG55IGFuYXRvbHlAb3Nvdml0bnkuY29tXHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICAwMiBBdWcgMjAyMlxyXG5cclxuICBDb3B5cmlnaHQgKGMpIDIwMTctMjAyMiBPc292aXRueSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbi8vTm9kZVxyXG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgUmVDYXB0Y2hhVjNTZXJ2aWNlIH0gZnJvbSAnbmd4LWNhcHRjaGEnO1xyXG5cclxuLy9BcHBcclxuaW1wb3J0IHsgQXBwQ29udGV4dFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy9hcHBjb250ZXh0LnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL25vdGlmaWNhdGlvbnMvc2VydmljZXMvbm90aWZpY2F0aW9uLXNlcnZpY2VcIjtcclxuaW1wb3J0IHsgRW1haWxzQXBpU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2RhdGEvc2VydmljZXMvZW1haWxzLWFwaS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQmFzZUVkaXRDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9iYXNlL2Jhc2UtZWRpdC5jb21wb25lbnRcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYW5hdG9seS1mb3Jtcy1jb250YWN0dXMtZm9ybScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbnRhY3QtdXMuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIENvbnRhY3RVc0Zvcm0gZXh0ZW5kcyBCYXNlRWRpdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgaXNVc2VyU2lnbmVkSW46IGJvb2xlYW4gPSBmYWxzZTtcclxuICByZUNhcHRjaGFTaXRlS2V5O1xyXG4gIHNlbGVjdGVkVG9waWM7XHJcblxyXG4gIHRvcGljTGlzdCA9IFtcclxuICAgIHsgdmFsdWU6ICdCaWxsaW5nICYgUHJpY2luZycgfSxcclxuICAgIHsgdmFsdWU6ICdMZWdhbCAmIFByaXZhY3knIH0sXHJcbiAgICB7IHZhbHVlOiAnUmVwb3IgYWJ1c2UnIH0sXHJcbiAgICB7IHZhbHVlOiAnVGVjaG5pY2FsIFN1cHBvcnQnIH0sXHJcbiAgICB7IHZhbHVlOiAnT3RoZXInIH1cclxuICBdO1xyXG5cclxuICAvL0lucHV0c1xyXG4gIEBJbnB1dCgpIHNob3dBY3Rpb25CdXR0b25zID0gdHJ1ZTtcclxuXHJcbiAgLy9PdXRwdXRzXHJcbiAgQE91dHB1dCgpIHN1Ym1pdDogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZUNhcHRjaGE6IFJlQ2FwdGNoYVYzU2VydmljZSxcclxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgcHJpdmF0ZSBhcHBDb250ZXh0OiBBcHBDb250ZXh0U2VydmljZSxcclxuICAgIHByaXZhdGUgYXBpOiBFbWFpbHNBcGlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBub3RpZmljYXRpb25TZXJ2aWNlOiBOb3RpZmljYXRpb25TZXJ2aWNlKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmNyZWF0ZUZvcm1Hcm91cCgpO1xyXG5cclxuICAgIHRoaXMuYXBwQ29udGV4dC51cGRhdGVkJC5zdWJzY3JpYmUoKGNvbnRleHQpID0+IHtcclxuICAgICAgaWYgKCFjb250ZXh0KSB7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLmlzVXNlclNpZ25lZEluID0gY29udGV4dC5pc1VzZXJTaWduZWRJbjtcclxuICAgICAgdGhpcy5yZUNhcHRjaGFTaXRlS2V5ID0gY29udGV4dC5yZUNhcHRjaGFTaXRlS2V5VjM7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRUb3BpYyA9IHRoaXMudG9waWNMaXN0WzNdLnZhbHVlO1xyXG5cclxuICAgICAgdGhpcy5zZXRGb3JtVmFsdWUoJ3RvcGljJywgdGhpcy5zZWxlY3RlZFRvcGljKTtcclxuXHJcbiAgICAgIGlmICh0aGlzLmlzVXNlclNpZ25lZEluKSB7XHJcbiAgICAgICAgdGhpcy5zZXRGb3JtVmFsdWUoJ25hbWUnLCBjb250ZXh0LnVzZXIuZGlzcGxheU5hbWVPckZ1bGxOYW1lKTtcclxuICAgICAgICB0aGlzLnNldEZvcm1WYWx1ZSgnZW1haWwnLCBjb250ZXh0LnVzZXIuZW1haWwpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGNyZWF0ZUZvcm1Hcm91cCgpIHtcclxuICAgIHRoaXMuZm9ybUdyb3VwID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgIG5hbWU6IG5ldyBGb3JtQ29udHJvbCgnJywgWyBWYWxpZGF0b3JzLnJlcXVpcmVkIF0pLFxyXG4gICAgICBlbWFpbDogbmV3IEZvcm1Db250cm9sKCcnLCBbIFZhbGlkYXRvcnMucmVxdWlyZWQgXSksXHJcbiAgICAgIHRvcGljOiBuZXcgRm9ybUNvbnRyb2woJycsIFsgVmFsaWRhdG9ycy5yZXF1aXJlZCBdKSxcclxuICAgICAgc3ViamVjdDogbmV3IEZvcm1Db250cm9sKCcnLCBbIFZhbGlkYXRvcnMucmVxdWlyZWQgXSksXHJcbiAgICAgIG1lc3NhZ2U6IG5ldyBGb3JtQ29udHJvbCgnJywgWyBWYWxpZGF0b3JzLnJlcXVpcmVkIF0pXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGlzVmFsaWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5mb3JtR3JvdXAudmFsaWQ7XHJcbiAgfVxyXG5cclxuICBjb250YWN0VXMoKSB7XHJcbiAgICB0aGlzLmZvcm1TdWJtaXR0ZWQgPSB0cnVlO1xyXG4gICAgaWYgKCF0aGlzLmlzVmFsaWQoKSkgcmV0dXJuO1xyXG5cclxuICAgIGNvbnN0IG5hbWUgPSB0aGlzLmdldEZvcm1WYWx1ZSgnbmFtZScpO1xyXG4gICAgY29uc3QgZW1haWwgPSB0aGlzLmdldEZvcm1WYWx1ZSgnZW1haWwnKTtcclxuICAgIGNvbnN0IHRvcGljID0gdGhpcy5zZWxlY3RlZFRvcGljO1xyXG4gICAgY29uc3Qgc3ViamVjdCA9IHRoaXMuZ2V0Rm9ybVZhbHVlKCdzdWJqZWN0Jyk7XHJcbiAgICBjb25zdCBtZXNzYWdlID0gdGhpcy5nZXRGb3JtVmFsdWUoJ21lc3NhZ2UnKTtcclxuXHJcbiAgICB0aGlzLnJlQ2FwdGNoYS5leGVjdXRlKHRoaXMucmVDYXB0Y2hhU2l0ZUtleSwgJ0NvbnRhY3RVcycsICh0b2tlbikgPT4ge1xyXG4gICAgICB0aGlzLmFwaS5zZW5kQ29udGFjdFVzKHRva2VuLCBuYW1lLCBlbWFpbCwgdG9waWMsIHN1YmplY3QsIG1lc3NhZ2UsXHJcbiAgICAgICAgKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5mb3JtU3VibWl0dGVkID0gZmFsc2U7XHJcbiAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2Uuc3VjY2VzcygnTWVzc2FnZSBoYXMgYmVlbiBzZW50IHN1Y2Nlc3NmdWxseScpO1xyXG4gICAgICAgICAgdGhpcy5mb3JtR3JvdXAucmVzZXQoKTtcclxuXHJcbiAgICAgICAgICB0aGlzLnN1Ym1pdC5lbWl0KCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UuZXJyb3IoKTtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIC8vRXZlbnRzXHJcbiAgb25TdWJtaXQoKSB7XHJcbiAgICB0aGlzLmNvbnRhY3RVcygpO1xyXG4gIH1cclxuXHJcbiAgb25Ub3BpY0NoYW5nZShldmVudCkge1xyXG4gICAgdGhpcy5zZWxlY3RlZFRvcGljID0gZXZlbnQudGFyZ2V0LnZhbHVlO1xyXG4gIH1cclxufVxyXG4iLCI8Zm9ybSAobmdTdWJtaXQpPSdvblN1Ym1pdCgpJyBbZm9ybUdyb3VwXT0nZm9ybUdyb3VwJyBub3ZhbGlkYXRlPlxyXG4gIDxhbmF0b2x5LWZvcm0tdmFsaWRhdGlvbi1zdW1tYXJ5IFtmb3JtR3JvdXBdPSdmb3JtR3JvdXAnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Zpc2libGVdPSdmb3JtU3VibWl0dGVkICYmIGZvcm1Hcm91cC5pbnZhbGlkJz48L2FuYXRvbHktZm9ybS12YWxpZGF0aW9uLXN1bW1hcnk+XHJcblxyXG4gIDxkaXYgY2xhc3M9J2NvbnRhY3QtdXMnPlxyXG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPSdmb3JtLWZpZWxkcyBjb2wtNic+XHJcbiAgICAgICAgPHA+V2hhdCBjYW4gd2UgaGVscCB5b3Ugd2l0aD88L3A+XHJcbiAgICAgICAgPGRpdiBbbmdDbGFzc109XCJ7J2hhcy1lcnJvcic6IGlzQ29udHJvbEludmFsaWQoJ3RvcGljJykgfVwiIGNsYXNzPSdmb3JtLXRvcGljJz5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9J2Zvcm0tc2VsZWN0LXdyYXBwZXInPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9J2Fzc2lzdGl2ZS10ZXh0Jz5Ub3BpYyAqPC9sYWJlbD5cclxuICAgICAgICAgICAgPHNlbGVjdCAoY2hhbmdlKT0nb25Ub3BpY0NoYW5nZSgkZXZlbnQpJyBjbGFzcz0nZm9ybS1zZWxlY3QnIGZvcm1Db250cm9sTmFtZT0ndG9waWMnPlxyXG4gICAgICAgICAgICAgIDxvcHRpb24gKm5nRm9yPSdsZXQgdG9waWMgb2YgdG9waWNMaXN0JyBbdmFsdWVdPSd0b3BpYy52YWx1ZSc+e3sgdG9waWMudmFsdWUgfX0gPC9vcHRpb24+XHJcbiAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICA8YW5hdG9seS1pdGVtLXZhbGlkYXRpb24tc3VtbWFyeSBbZm9ybUdyb3VwXT0nZm9ybUdyb3VwJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybVN1Ym1pdHRlZF09J2Zvcm1TdWJtaXR0ZWQnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2xOYW1lPSd0b3BpYydcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbFRpdGxlPSd0b3BpYyc+XHJcbiAgICAgICAgICAgIDwvYW5hdG9seS1pdGVtLXZhbGlkYXRpb24tc3VtbWFyeT5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgW25nQ2xhc3NdPVwieydoYXMtZXJyb3InOiBpc0NvbnRyb2xJbnZhbGlkKCduYW1lJykgfVwiIGNsYXNzPSdmb3JtLW5hbWUnPlxyXG4gICAgICAgICAgPGxhYmVsIGNsYXNzPSdhc3Npc3RpdmUtdGV4dCc+TmFtZSAqPC9sYWJlbD5cclxuICAgICAgICAgIDxpbnB1dCBjbGFzcz0nZm9ybS1jb250cm9sJyBmb3JtQ29udHJvbE5hbWU9J25hbWUnIHBsYWNlaG9sZGVyPSdOYW1lIConIHR5cGU9J3RleHQnPlxyXG4gICAgICAgICAgPGFuYXRvbHktaXRlbS12YWxpZGF0aW9uLXN1bW1hcnkgW2Zvcm1Hcm91cF09J2Zvcm1Hcm91cCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtU3VibWl0dGVkXT0nZm9ybVN1Ym1pdHRlZCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2xOYW1lPSduYW1lJ1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbFRpdGxlPSduYW1lJz5cclxuICAgICAgICAgIDwvYW5hdG9seS1pdGVtLXZhbGlkYXRpb24tc3VtbWFyeT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cInsnaGFzLWVycm9yJzogaXNDb250cm9sSW52YWxpZCgnZW1haWwnKSB9XCIgY2xhc3M9J2Zvcm0tZW1haWwnPlxyXG4gICAgICAgICAgPGxhYmVsIGNsYXNzPSdhc3Npc3RpdmUtdGV4dCc+RS1tYWlsICogPC9sYWJlbD5cclxuICAgICAgICAgIDxpbnB1dCBjbGFzcz0nZm9ybS1jb250cm9sJyBmb3JtQ29udHJvbE5hbWU9J2VtYWlsJyBwbGFjZWhvbGRlcj0nRS1tYWlsIConIHR5cGU9J3RleHQnIC8+XHJcbiAgICAgICAgICA8cCAqbmdJZj0nIWlzVXNlclNpZ25lZEluJz5QbGVhc2UgaW5kaWNhdGUgdGhlIGVtYWlsIHVzZWQgZm9yIHlvdXIgTWFpbEV4IGxvZ2luIGlmIHlvdSBhbHJlYWR5IGhhdmUgYW4gYWNjb3VudDwvcD5cclxuICAgICAgICAgIDxhbmF0b2x5LWl0ZW0tdmFsaWRhdGlvbi1zdW1tYXJ5IFtmb3JtR3JvdXBdPSdmb3JtR3JvdXAnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybVN1Ym1pdHRlZF09J2Zvcm1TdWJtaXR0ZWQnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sTmFtZT0nZW1haWwnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sVGl0bGU9J2VtYWlsJz5cclxuICAgICAgICAgIDwvYW5hdG9seS1pdGVtLXZhbGlkYXRpb24tc3VtbWFyeT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cInsnaGFzLWVycm9yJzogaXNDb250cm9sSW52YWxpZCgnc3ViamVjdCcpIH1cIiBjbGFzcz0nZm9ybS1zdWJqZWN0Jz5cclxuICAgICAgICAgIDxsYWJlbCBjbGFzcz0nYXNzaXN0aXZlLXRleHQnPlN1YmplY3QgKjwvbGFiZWw+XHJcbiAgICAgICAgICA8aW5wdXQgY2xhc3M9J2Zvcm0tY29udHJvbCcgZm9ybUNvbnRyb2xOYW1lPSdzdWJqZWN0JyBwbGFjZWhvbGRlcj0nU3ViamVjdCAqJyB0eXBlPSd0ZXh0JyAvPlxyXG4gICAgICAgICAgPGFuYXRvbHktaXRlbS12YWxpZGF0aW9uLXN1bW1hcnkgW2Zvcm1Hcm91cF09J2Zvcm1Hcm91cCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmb3JtU3VibWl0dGVkXT0nZm9ybVN1Ym1pdHRlZCdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2xOYW1lPSdzdWJqZWN0J1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbFRpdGxlPSdzdWJqZWN0Jz5cclxuICAgICAgICAgIDwvYW5hdG9seS1pdGVtLXZhbGlkYXRpb24tc3VtbWFyeT5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPSdjb2wtNic+XHJcbiAgICAgICAgPGRpdiBbbmdDbGFzc109XCJ7J2hhcy1lcnJvcic6IGlzQ29udHJvbEludmFsaWQoJ21lc3NhZ2UnKSB9XCIgY2xhc3M9J2Zvcm0tbWVzc2FnZSc+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9J2Fzc2lzdGl2ZS10ZXh0Jz5NZXNzYWdlICo8L2xhYmVsPlxyXG4gICAgICAgICAgPHRleHRhcmVhIGZvcm1Db250cm9sTmFtZT0nbWVzc2FnZScgbmFtZT0nbWVzc2FnZScgcGxhY2Vob2xkZXI9J01lc3NhZ2UgIConIHJvd3M9JzQnXHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT0ndGV4dCc+PC90ZXh0YXJlYT5cclxuICAgICAgICAgIDxhbmF0b2x5LWl0ZW0tdmFsaWRhdGlvbi1zdW1tYXJ5IFtmb3JtR3JvdXBdPSdmb3JtR3JvdXAnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybVN1Ym1pdHRlZF09J2Zvcm1TdWJtaXR0ZWQnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sTmFtZT0nbWVzc2FnZSdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2xUaXRsZT0nbWVzc2FnZSc+XHJcbiAgICAgICAgICA8L2FuYXRvbHktaXRlbS12YWxpZGF0aW9uLXN1bW1hcnk+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3cgZm9ybS1mb290ZXJcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sXCI+XHJcbiAgICAgICAgICA8YnV0dG9uICpuZ0lmPSdzaG93QWN0aW9uQnV0dG9ucydcclxuICAgICAgICAgICAgICAgICAgW2NsYXNzLmJ0bi1wcmltYXJ5XT0nIWZvcm1Hcm91cC5pbnZhbGlkJ1xyXG4gICAgICAgICAgICAgICAgICBjbGFzcz0nYnRuIGJ0bi1zdWNjZXNzJ1xyXG4gICAgICAgICAgICAgICAgICB0eXBlPSdzdWJtaXQnPlxyXG4gICAgICAgICAgICBTdWJtaXRcclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZm9ybT5cclxuIl19
|
|
@@ -6,7 +6,7 @@ import { NavigationEnd, NavigationStart, NavigationCancel, NavigationError, Rout
|
|
|
6
6
|
import * as i1$1 from '@angular/common/http';
|
|
7
7
|
import { HttpResponse, HttpClientModule, HttpClient, HTTP_INTERCEPTORS } from '@angular/common/http';
|
|
8
8
|
import { map, tap, mergeMap, catchError as catchError$1 } from 'rxjs/operators';
|
|
9
|
-
import { Subject, filter, takeUntil, map as map$1, catchError, of,
|
|
9
|
+
import { BehaviorSubject, Subject, filter, takeUntil, map as map$1, catchError, of, timer, merge, fromEvent, forkJoin } from 'rxjs';
|
|
10
10
|
import * as i4 from '@azure/msal-angular';
|
|
11
11
|
import { MSAL_GUARD_CONFIG, MsalGuard, MsalInterceptor, MSAL_INTERCEPTOR_CONFIG, MSAL_INSTANCE, MsalService, MsalBroadcastService, MsalModule } from '@azure/msal-angular';
|
|
12
12
|
import { BrowserUtils, EventType, InteractionStatus, InteractionType, InteractionRequiredAuthError, PromptValue, PublicClientApplication, LogLevel } from '@azure/msal-browser';
|
|
@@ -674,12 +674,10 @@ class AppContextService extends ApiServiceBase {
|
|
|
674
674
|
http;
|
|
675
675
|
localStorage;
|
|
676
676
|
sessionStorage;
|
|
677
|
-
//Consts
|
|
678
677
|
storageKeyName = 'appContext';
|
|
679
678
|
subscription = null;
|
|
680
|
-
successes = [];
|
|
681
679
|
//Private Streams
|
|
682
|
-
_updated = new
|
|
680
|
+
_updated = new BehaviorSubject(null);
|
|
683
681
|
//Public Streams
|
|
684
682
|
updated$ = this._updated.asObservable();
|
|
685
683
|
constructor(http, localStorage, sessionStorage) {
|
|
@@ -689,64 +687,36 @@ class AppContextService extends ApiServiceBase {
|
|
|
689
687
|
this.sessionStorage = sessionStorage;
|
|
690
688
|
this.baseUrl = `${ApiUrl}/appContext`;
|
|
691
689
|
}
|
|
690
|
+
fireUpdated(data) {
|
|
691
|
+
if (!data) {
|
|
692
|
+
return;
|
|
693
|
+
}
|
|
694
|
+
let now = new Date();
|
|
695
|
+
console.log('AppContext has been updated at ' + now);
|
|
696
|
+
this._updated.next(data);
|
|
697
|
+
}
|
|
692
698
|
//Session
|
|
693
|
-
|
|
699
|
+
getCurrent4Session() {
|
|
694
700
|
return this.sessionStorage.getObject(this.storageKeyName);
|
|
695
701
|
}
|
|
696
|
-
|
|
702
|
+
setCurrent2Session(value) {
|
|
697
703
|
this.sessionStorage.setObject(this.storageKeyName, value);
|
|
698
704
|
}
|
|
699
|
-
updateCurrentIfExpired() {
|
|
700
|
-
let context = this.getCurrentFromSession();
|
|
701
|
-
if (!context) {
|
|
702
|
-
return;
|
|
703
|
-
}
|
|
704
|
-
let shouldBeUpdated = false;
|
|
705
|
-
let lr = context.lastRequested;
|
|
706
|
-
if (lr) {
|
|
707
|
-
let now = new Date();
|
|
708
|
-
let lastRequested = new Date(context.lastRequested);
|
|
709
|
-
let in3Mins = new Date(lastRequested.getFullYear(), lastRequested.getMonth(), lastRequested.getDate(), lastRequested.getHours(), lastRequested.getMinutes() + 3, 0, 0);
|
|
710
|
-
if (in3Mins.getTime() < now.getTime()) {
|
|
711
|
-
shouldBeUpdated = true;
|
|
712
|
-
}
|
|
713
|
-
}
|
|
714
|
-
else {
|
|
715
|
-
shouldBeUpdated = true;
|
|
716
|
-
}
|
|
717
|
-
if (shouldBeUpdated) {
|
|
718
|
-
this.updateCurrent();
|
|
719
|
-
}
|
|
720
|
-
}
|
|
721
705
|
dataReceived(data) {
|
|
722
706
|
this.current = data;
|
|
723
|
-
for (let i = 0; i < this.successes.length; i++) {
|
|
724
|
-
let success = this.successes[i];
|
|
725
|
-
if (success) {
|
|
726
|
-
success(data);
|
|
727
|
-
}
|
|
728
|
-
}
|
|
729
|
-
this.successes = [];
|
|
730
707
|
this.subscription.unsubscribe();
|
|
731
708
|
this.subscription = null;
|
|
732
|
-
if (data) {
|
|
733
|
-
let now = new Date();
|
|
734
|
-
console.log('AppContext has been updated at ' + now);
|
|
735
|
-
this._updated.next(data);
|
|
736
|
-
}
|
|
737
709
|
}
|
|
738
710
|
getCurrentPrivate(success = null, getCachedIfExist = true) {
|
|
739
711
|
if (getCachedIfExist) {
|
|
740
|
-
let context = this.
|
|
712
|
+
let context = this.getCurrent4Session();
|
|
741
713
|
if (context != null) {
|
|
742
|
-
if (success)
|
|
714
|
+
if (success) {
|
|
743
715
|
success(context);
|
|
716
|
+
}
|
|
744
717
|
return;
|
|
745
718
|
}
|
|
746
719
|
}
|
|
747
|
-
if (success) {
|
|
748
|
-
this.successes.push(success);
|
|
749
|
-
}
|
|
750
720
|
if (this.subscription != null) {
|
|
751
721
|
return;
|
|
752
722
|
}
|
|
@@ -758,23 +728,34 @@ class AppContextService extends ApiServiceBase {
|
|
|
758
728
|
}
|
|
759
729
|
});
|
|
760
730
|
}
|
|
731
|
+
updateCurrentIfExpired() {
|
|
732
|
+
let context = this.getCurrent4Session();
|
|
733
|
+
if (!context) {
|
|
734
|
+
return;
|
|
735
|
+
}
|
|
736
|
+
let shouldBeUpdated = false;
|
|
737
|
+
let lr = context.lastRequested;
|
|
738
|
+
if (lr) {
|
|
739
|
+
let now = new Date();
|
|
740
|
+
let lastRequested = new Date(context.lastRequested);
|
|
741
|
+
let in3Mins = new Date(lastRequested.getFullYear(), lastRequested.getMonth(), lastRequested.getDate(), lastRequested.getHours(), lastRequested.getMinutes() + 3, 0, 0);
|
|
742
|
+
if (in3Mins.getTime() < now.getTime()) {
|
|
743
|
+
shouldBeUpdated = true;
|
|
744
|
+
}
|
|
745
|
+
}
|
|
746
|
+
else {
|
|
747
|
+
shouldBeUpdated = true;
|
|
748
|
+
}
|
|
749
|
+
if (shouldBeUpdated) {
|
|
750
|
+
this.updateCurrent();
|
|
751
|
+
}
|
|
752
|
+
}
|
|
761
753
|
//Public
|
|
762
754
|
init(context) {
|
|
763
755
|
this.current = context;
|
|
764
756
|
}
|
|
765
|
-
getLatestCurrent(success = null) {
|
|
766
|
-
this.getCurrentPrivate(success, false);
|
|
767
|
-
}
|
|
768
|
-
getCurrent(success = null) {
|
|
769
|
-
this.getCurrentPrivate(success, true);
|
|
770
|
-
}
|
|
771
757
|
updateCurrent(success = null) {
|
|
772
|
-
|
|
773
|
-
//this.clearCurrent();
|
|
774
|
-
this.getLatestCurrent(success);
|
|
775
|
-
}
|
|
776
|
-
clearCurrent() {
|
|
777
|
-
this.sessionStorage.remove(this.storageKeyName);
|
|
758
|
+
this.getCurrentPrivate(success, false);
|
|
778
759
|
}
|
|
779
760
|
//Storage
|
|
780
761
|
clearLocalStorage() {
|
|
@@ -790,10 +771,11 @@ class AppContextService extends ApiServiceBase {
|
|
|
790
771
|
//current
|
|
791
772
|
get current() {
|
|
792
773
|
this.updateCurrentIfExpired();
|
|
793
|
-
return this.
|
|
774
|
+
return this.getCurrent4Session();
|
|
794
775
|
}
|
|
795
776
|
set current(value) {
|
|
796
|
-
this.
|
|
777
|
+
this.setCurrent2Session(value);
|
|
778
|
+
this.fireUpdated(value);
|
|
797
779
|
}
|
|
798
780
|
//currentUser
|
|
799
781
|
get currentUser() {
|
|
@@ -1104,18 +1086,29 @@ class AuthService extends ApiServiceBase {
|
|
|
1104
1086
|
}
|
|
1105
1087
|
logout(popup) {
|
|
1106
1088
|
let activeAccount = this.getActiveAccount();
|
|
1107
|
-
if (!activeAccount) {
|
|
1108
|
-
return;
|
|
1109
|
-
}
|
|
1110
1089
|
if (this.isPopup(popup)) {
|
|
1111
|
-
|
|
1112
|
-
this.
|
|
1113
|
-
|
|
1090
|
+
if (activeAccount) {
|
|
1091
|
+
this.msalService.logoutPopup({ account: activeAccount, mainWindowRedirectUri: "/" }).subscribe(() => {
|
|
1092
|
+
this.appContext.clearWebStorage();
|
|
1093
|
+
});
|
|
1094
|
+
}
|
|
1095
|
+
else {
|
|
1096
|
+
this.msalService.logoutPopup({ mainWindowRedirectUri: "/" }).subscribe(() => {
|
|
1097
|
+
this.appContext.clearWebStorage();
|
|
1098
|
+
});
|
|
1099
|
+
}
|
|
1114
1100
|
}
|
|
1115
1101
|
else {
|
|
1116
|
-
|
|
1117
|
-
this.
|
|
1118
|
-
|
|
1102
|
+
if (activeAccount) {
|
|
1103
|
+
this.msalService.logoutRedirect({ account: activeAccount }).pipe(map$1(() => {
|
|
1104
|
+
this.appContext.clearWebStorage();
|
|
1105
|
+
}));
|
|
1106
|
+
}
|
|
1107
|
+
else {
|
|
1108
|
+
this.msalService.logoutRedirect().pipe(map$1(() => {
|
|
1109
|
+
this.appContext.clearWebStorage();
|
|
1110
|
+
}));
|
|
1111
|
+
}
|
|
1119
1112
|
}
|
|
1120
1113
|
}
|
|
1121
1114
|
isUserAuthenticated() {
|
|
@@ -3223,11 +3216,14 @@ class BuyAccessButtonComponent {
|
|
|
3223
3216
|
this.appContext = appContext;
|
|
3224
3217
|
}
|
|
3225
3218
|
ngOnInit() {
|
|
3226
|
-
this.appContext.
|
|
3227
|
-
|
|
3219
|
+
this.appContext.updated$.subscribe((context) => {
|
|
3220
|
+
if (!context) {
|
|
3221
|
+
return;
|
|
3222
|
+
}
|
|
3223
|
+
this.isUserSignedIn = context.isUserSignedIn;
|
|
3228
3224
|
if (this.isUserSignedIn) {
|
|
3229
|
-
this.currentPlan =
|
|
3230
|
-
this.currentPlanTitle =
|
|
3225
|
+
this.currentPlan = context.account.billingPlan;
|
|
3226
|
+
this.currentPlanTitle = context.account.billingPlanAsString;
|
|
3231
3227
|
}
|
|
3232
3228
|
this.contextUpdated = true;
|
|
3233
3229
|
});
|
|
@@ -3337,13 +3333,16 @@ class SubscribePlanButtonComponent {
|
|
|
3337
3333
|
this.appContext = appContext;
|
|
3338
3334
|
}
|
|
3339
3335
|
ngOnInit() {
|
|
3340
|
-
this.appContext.
|
|
3341
|
-
|
|
3336
|
+
this.appContext.updated$.subscribe((context) => {
|
|
3337
|
+
if (!context) {
|
|
3338
|
+
return;
|
|
3339
|
+
}
|
|
3340
|
+
this.isUserSignedIn = context.isUserSignedIn;
|
|
3342
3341
|
if (this.isUserSignedIn) {
|
|
3343
|
-
this.currentPlan =
|
|
3344
|
-
this.currentPlanTitle =
|
|
3345
|
-
this.requestedPlan =
|
|
3346
|
-
this.requestedPlanTitle =
|
|
3342
|
+
this.currentPlan = context.account.billingPlan;
|
|
3343
|
+
this.currentPlanTitle = context.account.billingPlanAsString;
|
|
3344
|
+
this.requestedPlan = context.account.requestedBillingPlan;
|
|
3345
|
+
this.requestedPlanTitle = context.account.requestedBillingPlanAsString;
|
|
3347
3346
|
}
|
|
3348
3347
|
this.contextUpdated = true;
|
|
3349
3348
|
});
|
|
@@ -5049,8 +5048,18 @@ class ContactUsForm extends BaseEditComponent {
|
|
|
5049
5048
|
}
|
|
5050
5049
|
ngOnInit() {
|
|
5051
5050
|
this.createFormGroup();
|
|
5052
|
-
this.appContext.
|
|
5053
|
-
|
|
5051
|
+
this.appContext.updated$.subscribe((context) => {
|
|
5052
|
+
if (!context) {
|
|
5053
|
+
return;
|
|
5054
|
+
}
|
|
5055
|
+
this.isUserSignedIn = context.isUserSignedIn;
|
|
5056
|
+
this.reCaptchaSiteKey = context.reCaptchaSiteKeyV3;
|
|
5057
|
+
this.selectedTopic = this.topicList[3].value;
|
|
5058
|
+
this.setFormValue('topic', this.selectedTopic);
|
|
5059
|
+
if (this.isUserSignedIn) {
|
|
5060
|
+
this.setFormValue('name', context.user.displayNameOrFullName);
|
|
5061
|
+
this.setFormValue('email', context.user.email);
|
|
5062
|
+
}
|
|
5054
5063
|
});
|
|
5055
5064
|
}
|
|
5056
5065
|
createFormGroup() {
|
|
@@ -5062,16 +5071,6 @@ class ContactUsForm extends BaseEditComponent {
|
|
|
5062
5071
|
message: new FormControl('', [Validators.required])
|
|
5063
5072
|
});
|
|
5064
5073
|
}
|
|
5065
|
-
setContext(context) {
|
|
5066
|
-
this.isUserSignedIn = context.isUserSignedIn;
|
|
5067
|
-
this.reCaptchaSiteKey = context.reCaptchaSiteKeyV3;
|
|
5068
|
-
this.selectedTopic = this.topicList[3].value;
|
|
5069
|
-
this.setFormValue('topic', this.selectedTopic);
|
|
5070
|
-
if (this.isUserSignedIn) {
|
|
5071
|
-
this.setFormValue('name', context.user.displayNameOrFullName);
|
|
5072
|
-
this.setFormValue('email', context.user.email);
|
|
5073
|
-
}
|
|
5074
|
-
}
|
|
5075
5074
|
isValid() {
|
|
5076
5075
|
return this.formGroup.valid;
|
|
5077
5076
|
}
|