@osovitny/anatoly 3.16.59 → 3.16.61
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/iam/services/auth.service.mjs +10 -5
- package/esm2022/lib/ui/components/identity/signin-button.component.mjs +18 -7
- package/esm2022/lib/ui/components/identity/signout-button.component.mjs +18 -7
- package/esm2022/lib/ui/components/identity/signup-button.component.mjs +18 -7
- package/fesm2022/osovitny-anatoly.mjs +54 -19
- package/fesm2022/osovitny-anatoly.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -149,8 +149,7 @@ export class AuthService extends ApiServiceBase {
|
|
|
149
149
|
* To learn more about B2C tokens, visit https://docs.microsoft.com/en-us/azure/active-directory-b2c/tokens-overview
|
|
150
150
|
*/
|
|
151
151
|
if (token.acr === this.editProfilePolicy.name || token.tfp === this.editProfilePolicy.name) {
|
|
152
|
-
const signInAccount = this.msalService.instance.getAllAccounts()
|
|
153
|
-
.find((account) => account.idTokenClaims?.oid === token.oid &&
|
|
152
|
+
const signInAccount = this.msalService.instance.getAllAccounts().find((account) => account.idTokenClaims?.oid === token.oid &&
|
|
154
153
|
account.idTokenClaims?.sub === token.sub &&
|
|
155
154
|
(account.idTokenClaims.acr === this.signUpSignInPolicy.name ||
|
|
156
155
|
account.idTokenClaims.tfp === this.signUpSignInPolicy.name));
|
|
@@ -268,9 +267,8 @@ export class AuthService extends ApiServiceBase {
|
|
|
268
267
|
}
|
|
269
268
|
forceReauthenticate(account) {
|
|
270
269
|
if (MSALUtils.isB2C()) {
|
|
271
|
-
let signUpSignIn = MSALB2C.getPolicyByType(PolicyType.signUpSignIn);
|
|
272
270
|
let signUpSignInFlowRequest = {
|
|
273
|
-
authority:
|
|
271
|
+
authority: this.signUpSignInPolicy.authority,
|
|
274
272
|
scopes: [],
|
|
275
273
|
prompt: PromptValue.LOGIN,
|
|
276
274
|
account: account
|
|
@@ -283,6 +281,13 @@ export class AuthService extends ApiServiceBase {
|
|
|
283
281
|
login(userFlowRequest, popup) {
|
|
284
282
|
let authRequestCfg = this.msalGuardConfig.authRequest;
|
|
285
283
|
let authRequest = null;
|
|
284
|
+
if (!userFlowRequest) {
|
|
285
|
+
let signUpSignInFlowRequest = {
|
|
286
|
+
authority: this.signUpSignInPolicy.authority,
|
|
287
|
+
scopes: []
|
|
288
|
+
};
|
|
289
|
+
userFlowRequest = signUpSignInFlowRequest;
|
|
290
|
+
}
|
|
286
291
|
if (authRequestCfg) {
|
|
287
292
|
authRequest = authRequestCfg(this.msalService, this.router.routerState.snapshot);
|
|
288
293
|
}
|
|
@@ -389,4 +394,4 @@ export class AuthService extends ApiServiceBase {
|
|
|
389
394
|
type: Inject,
|
|
390
395
|
args: [MSAL_GUARD_CONFIG]
|
|
391
396
|
}] }, { type: i4.MsalService }, { type: i4.MsalBroadcastService }]; }, null); })();
|
|
392
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL2lhbS9zZXJ2aWNlcy9hdXRoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBcUJBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRTlELE9BQU8sRUFBYyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuRixPQUFPLEVBQUUsaUJBQWlCLEVBQTZELE1BQU0scUJBQXFCLENBQUM7QUFDbkgsT0FBTyxFQUFtRCxTQUFTLEVBQWlCLDRCQUE0QixFQUM5RyxpQkFBaUIsRUFBRSxlQUFlLEVBQWdCLFdBQVcsRUFDOUQsTUFBTSxxQkFBcUIsQ0FBQztBQUU3QixLQUFLO0FBQ0wsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTdELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNyQyxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFFBQVEsQ0FBQzs7Ozs7O0FBVTdDLE1BQU0sT0FBTyxXQUFZLFNBQVEsY0FBYztJQVdqQztJQUNGO0lBQ0E7SUFHQTtJQUNBO0lBQ0E7SUFqQk8sZUFBZSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFDL0MsV0FBVyxHQUFZLEtBQUssQ0FBQztJQUVyQyxjQUFjO0lBQ04sa0JBQWtCLENBQUE7SUFDbEIsWUFBWSxDQUFDO0lBQ2IsaUJBQWlCLENBQUM7SUFDbEIsbUJBQW1CLENBQUM7SUFFNUIsWUFDWSxJQUFnQixFQUNsQixNQUFjLEVBQ2QsVUFBNkIsRUFHN0IsZUFBdUMsRUFDdkMsV0FBd0Is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b3Nvdml0bnkvYW5hdG9seVxyXG5cclxuICBBdXRob3JzOlxyXG4gICAgVmFkaW0gT3Nvdml0bnkgdmFkaW1Ab3Nvdml0bnkuY29tXHJcbiAgICBBbmF0b2x5IE9zb3ZpdG55IGFuYXRvbHlAb3Nvdml0bnkuY29tXHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICA2IERlYyAyMDE4XHJcblxyXG4gIERlc2NyaXB0aW9uOlxyXG4gICAgSWRlbnRpdHkgYW5kIEFjY2VzcyBNYW5hZ2VtZW50XHJcblxyXG4gIENvcHlyaWdodCAoYykgMjAxNi0yMDIyIE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuLy9Ob2RlXHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIGNhdGNoRXJyb3IsIGZpbHRlciwgbWFwLCBvZiwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IE1TQUxfR1VBUkRfQ09ORklHLCBNc2FsQnJvYWRjYXN0U2VydmljZSwgTXNhbEd1YXJkQ29uZmlndXJhdGlvbiwgTXNhbFNlcnZpY2UgfSBmcm9tICdAYXp1cmUvbXNhbC1hbmd1bGFyJztcclxuaW1wb3J0IHsgQWNjb3VudEluZm8sIEF1dGhlbnRpY2F0aW9uUmVzdWx0LCBFdmVudE1lc3NhZ2UsIEV2ZW50VHlwZSwgSWRUb2tlbkNsYWltcywgSW50ZXJhY3Rpb25SZXF1aXJlZEF1dGhFcnJvcixcclxuICBJbnRlcmFjdGlvblN0YXR1cywgSW50ZXJhY3Rpb25UeXBlLCBQb3B1cFJlcXVlc3QsIFByb21wdFZhbHVlLCBSZWRpcmVjdFJlcXVlc3QsIFNpbGVudFJlcXVlc3QsIFNzb1NpbGVudFJlcXVlc3RcclxufSBmcm9tICdAYXp1cmUvbXNhbC1icm93c2VyJztcclxuXHJcbi8vQXBwXHJcbmltcG9ydCB7IEFwaVNlcnZpY2VCYXNlIH0gZnJvbSAnLi4vLi4vZGF0YS9iYXNlL2FwaS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXBwQ29udGV4dFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL2FwcGNvbnRleHQuc2VydmljZSc7XHJcbmltcG9ydCB7IE1TQUxSZWRpcmVjdCB9IGZyb20gJy4uL3JlZGlyZWN0JztcclxuaW1wb3J0IHsgTVNBTFV0aWxzIH0gZnJvbSAnLi4vdXRpbHMnO1xyXG5pbXBvcnQgeyBNU0FMQjJDLCBQb2xpY3lUeXBlIH0gZnJvbSAnLi4vYjJjJztcclxuXHJcbnR5cGUgSWRUb2tlbkNsYWltc1dpdGhQb2xpY3lJZCA9IElkVG9rZW5DbGFpbXMgJiB7XHJcbiAgYWNyPzogc3RyaW5nLFxyXG4gIHRmcD86IHN0cmluZyxcclxufTtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEF1dGhTZXJ2aWNlIGV4dGVuZHMgQXBpU2VydmljZUJhc2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgbXNhbERlc3Ryb3lpbmckID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBwcml2YXRlIGluaXRpYWxpemVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8vQjJDIFBvbGljaWVzXHJcbiAgcHJpdmF0ZSBzaWduVXBTaWduSW5Qb2xpY3lcclxuICBwcml2YXRlIHNpZ25VcFBvbGljeTtcclxuICBwcml2YXRlIGVkaXRQcm9maWxlUG9saWN5O1xyXG4gIHByaXZhdGUgcmVzZXRQYXNzd29yZFBvbGljeTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcm90ZWN0ZWQgaHR0cDogSHR0cENsaWVudCxcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIGFwcENvbnRleHQ6IEFwcENvbnRleHRTZXJ2aWNlLFxyXG5cclxuICAgIEBJbmplY3QoTVNBTF9HVUFSRF9DT05GSUcpXHJcbiAgICBwcml2YXRlIG1zYWxHdWFyZENvbmZpZzogTXNhbEd1YXJkQ29uZmlndXJhdGlvbixcclxuICAgIHByaXZhdGUgbXNhbFNlcnZpY2U6IE1zYWxTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBtc2FsQnJvYWRjYXN0U2VydmljZTogTXNhbEJyb2FkY2FzdFNlcnZpY2UpIHtcclxuICAgIHN1cGVyKGh0dHApO1xyXG4gICAgdGhpcy5pbml0KCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMubXNhbERlc3Ryb3lpbmckLm5leHQodW5kZWZpbmVkKTtcclxuICAgIHRoaXMubXNhbERlc3Ryb3lpbmckLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGluaXQoKSB7XHJcbiAgICB0aGlzLnNldERlZmF1bHRzKCk7XHJcblxyXG4gICAgdGhpcy5tc2FsU2VydmljZS5pbml0aWFsaXplKCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XHJcblxyXG4gICAgICBjb25zb2xlLmxvZyhgbXNhbC5hcHA6IGluaXRNU0FMIHN0YXJ0ZWRgKTtcclxuICAgICAgdGhpcy5pbml0TVNBTCgpO1xyXG4gICAgICBjb25zb2xlLmxvZyhgbXNhbC5hcHA6IGluaXRNU0FMIGZpbmlzaGVkYCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0RGVmYXVsdHMoKSB7XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gICAgaHR0cHM6Ly9naXRodWIuY29tL0F6dXJlQUQvbWljcm9zb2Z0LWF1dGhlbnRpY2F0aW9uLWxpYnJhcnktZm9yLWpzL2Jsb2IvZGV2L3NhbXBsZXMvbXNhbC1hbmd1bGFyLXYzLXNhbXBsZXMvYW5ndWxhci1iMmMtc2FtcGxlLWFwcC9zcmMvYXBwL2FwcC5jb21wb25lbnQudHNcclxuXHJcbiAgICBUb2tlbiBWYWxpZGF0aW9uOlxyXG4gICAgICBodHRwczovL2p3dC5pb1xyXG5cclxuICAgIFRva2VuIHR5cGVzOlxyXG4gICAgICBodHRwczovL2xlYXJuLm1pY3Jvc29mdC5jb20vZW4tdXMvYXp1cmUvYWN0aXZlLWRpcmVjdG9yeS1iMmMvdG9rZW5zLW92ZXJ2aWV3XHJcbiAgICAgIElEIHRva2VuIC0gQSBKV1QgdGhhdCBjb250YWlucyBjbGFpbXMgdGhhdCB5b3UgY2FuIHVzZSB0byBpZGVudGlmeSB1c2VycyBpbiB5b3VyIGFwcGxpY2F0aW9uXHJcbiAgICAgIEFjY2VzcyB0b2tlbiAtIEEgSldUIHRoYXQgY29udGFpbnMgY2xhaW1zIHRoYXQgeW91IGNhbiB1c2UgdG8gaWRlbnRpZnkgdGhlIGdyYW50ZWQgcGVybWlzc2lvbnMgdG8geW91ciBBUElzLlxyXG4gICAgICAgICAgICAgICAgICAgICBBY2Nlc3MgdG9rZW5zIGFyZSBzaWduZWQsIGJ1dCB0aGV5IGFyZW4ndCBlbmNyeXB0ZWRcclxuICAgICAgUmVmcmVzaCB0b2tlbiAtIFJlZnJlc2ggdG9rZW5zIGFyZSB1c2VkIHRvIGFjcXVpcmUgbmV3IElEIHRva2VucyBhbmQgYWNjZXNzIHRva2VucyBpbiBhbiBPQXV0aCAyLjAgZmxvdy5cclxuICAqL1xyXG4gIHByaXZhdGUgaW5pdE1TQUwoKSB7XHJcbiAgICAvL0IyQ1xyXG4gICAgdGhpcy5zaWduVXBTaWduSW5Qb2xpY3kgPSBNU0FMQjJDLmdldFBvbGljeUJ5VHlwZShQb2xpY3lUeXBlLnNpZ25VcFNpZ25Jbik7XHJcbiAgICB0aGlzLnNpZ25VcFBvbGljeSA9IE1TQUxCMkMuZ2V0UG9saWN5QnlUeXBlKFBvbGljeVR5cGUuc2lnblVwKTtcclxuICAgIHRoaXMuZWRpdFByb2ZpbGVQb2xpY3kgPSBNU0FMQjJDLmdldFBvbGljeUJ5VHlwZShQb2xpY3lUeXBlLmVkaXRQcm9maWxlKTtcclxuICAgIHRoaXMucmVzZXRQYXNzd29yZFBvbGljeSA9IE1TQUxCMkMuZ2V0UG9saWN5QnlUeXBlKFBvbGljeVR5cGUucmVzZXRQYXNzd29yZCk7XHJcblxyXG4gICAgdGhpcy5tc2FsU2VydmljZS5oYW5kbGVSZWRpcmVjdE9ic2VydmFibGUoKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzdWx0OiBBdXRoZW50aWNhdGlvblJlc3VsdCkgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGBtc2FsLmFwcDogaGFuZGxlUmVkaXJlY3RPYnNlcnZhYmxlYCk7XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnJvcik7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMubXNhbFNlcnZpY2UuaW5zdGFuY2UuZW5hYmxlQWNjb3VudFN0b3JhZ2VFdmVudHMoKTtcclxuICAgIHRoaXMubXNhbEJyb2FkY2FzdFNlcnZpY2UubXNhbFN1YmplY3QkLnBpcGUoXHJcbiAgICAgICAgZmlsdGVyKChtc2c6IEV2ZW50TWVzc2FnZSkgPT5cclxuICAgICAgICAgIG1zZy5ldmVudFR5cGUgPT09IEV2ZW50VHlwZS5JTklUSUFMSVpFX0VORCB8fFxyXG5cclxuICAgICAgICAgIC8vQUNDT1VOVF9BRERFRCBhbmQgQUNDT1VOVF9SRU1PVkVEIGV2ZW50cyBlbWl0dGVkIHdoZW4gYSB1c2VyIGxvZ3MgaW4gb3Igb3V0IG9mIGFub3RoZXIgdGFiIG9yIHdpbmRvd1xyXG4gICAgICAgICAgbXNnLmV2ZW50VHlwZSA9PT0gRXZlbnRUeXBlLkFDQ09VTlRfQURERUQgfHxcclxuICAgICAgICAgIG1zZy5ldmVudFR5cGUgPT09IEV2ZW50VHlwZS5BQ0NPVU5UX1JFTU9WRUQgfHxcclxuXHJcbiAgICAgICAgICAvL0xvZ2luIEZhaWx1cmVcclxuICAgICAgICAgIG1zZy5ldmVudFR5cGUgPT09IEV2ZW50VHlwZS5MT0dJTl9GQUlMVVJFIHx8XHJcbiAgICAgICAgICBtc2cuZXZlbnRUeXBlID09PSBFdmVudFR5cGUuQUNRVUlSRV9UT0tFTl9GQUlMVVJFIHx8XHJcblxyXG4gICAgICAgICAgLy9Mb2dPdXRcclxuICAgICAgICAgIG1zZy5ldmVudFR5cGUgPT09IEV2ZW50VHlwZS5MT0dPVVRfU1VDQ0VTUyB8fFxyXG5cclxuICAgICAgICAgIC8vTG9nSW5cclxuICAgICAgICAgIG1zZy5ldmVudFR5cGUgPT09IEV2ZW50VHlwZS5MT0dJTl9TVUNDRVNTIHx8XHJcbiAgICAgICAgICBtc2cuZXZlbnRUeXBlID09PSBFdmVudFR5cGUuQUNRVUlSRV9UT0tFTl9TVUNDRVNTIHx8XHJcbiAgICAgICAgICBtc2cuZXZlbnRUeXBlID09PSBFdmVudFR5cGUuU1NPX1NJTEVOVF9TVUNDRVNTXHJcbiAgICAgICAgKSxcclxuICAgICAgICB0YWtlVW50aWwodGhpcy5tc2FsRGVzdHJveWluZyQpXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgobXNnOiBFdmVudE1lc3NhZ2UpID0+IHtcclxuICAgICAgICBzd2l0Y2ggKG1zZy5ldmVudFR5cGUpIHtcclxuICAgICAgICAgIGNhc2UgRXZlbnRUeXBlLklOSVRJQUxJWkVfRU5EOlxyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgbXNhbC5hcHA6IElOSVRJQUxJWkVfRU5EIGZpcmVkYCk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgIGNhc2UgRXZlbnRUeXBlLkFDQ09VTlRfQURERUQ6XHJcbiAgICAgICAgICBjYXNlIEV2ZW50VHlwZS5BQ0NPVU5UX1JFTU9WRUQ6XHJcbiAgICAgICAgICAgIGlmICh0aGlzLm1zYWxTZXJ2aWNlLmluc3RhbmNlLmdldEFsbEFjY291bnRzKCkubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lID0gXCIvXCI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgY2FzZSBFdmVudFR5cGUuTE9HSU5fRkFJTFVSRTpcclxuICAgICAgICAgIGNhc2UgRXZlbnRUeXBlLkFDUVVJUkVfVE9LRU5fRkFJTFVSRTpcclxuICAgICAgICAgICAgaWYgKCFNU0FMVXRpbHMuaXNCMkMoKSkge1xyXG4gICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy9DaGVjayBmb3IgZm9yZ290IHBhc3N3b3JkIGVycm9yLiBMZWFybiBtb3JlIGFib3V0IEFBRCBlcnJvciBjb2RlcyBhdFxyXG4gICAgICAgICAgICAvL2h0dHBzOi8vZG9jcy5taWNyb3NvZnQuY29tL2VuLXVzL2F6dXJlL2FjdGl2ZS1kaXJlY3RvcnkvZGV2ZWxvcC9yZWZlcmVuY2UtYWFkc3RzLWVycm9yLWNvZGVzXHJcbiAgICAgICAgICAgIGlmIChtc2cuZXJyb3IgJiYgbXNnLmVycm9yLm1lc3NhZ2UuaW5kZXhPZignQUFEQjJDOTAxMTgnKSA+IC0xKSB7XHJcbiAgICAgICAgICAgICAgbGV0IHJlc2V0UGFzc3dvcmRGbG93UmVxdWVzdDogUmVkaXJlY3RSZXF1ZXN0IHwgUG9wdXBSZXF1ZXN0ICA9IHtcclxuICAgICAgICAgICAgICAgICAgYXV0aG9yaXR5OiB0aGlzLnJlc2V0UGFzc3dvcmRQb2xpY3kuYXV0aG9yaXR5LFxyXG4gICAgICAgICAgICAgICAgICBzY29wZXM6IFtdLFxyXG4gICAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICAgIHRoaXMubG9naW4ocmVzZXRQYXNzd29yZEZsb3dSZXF1ZXN0KTtcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgY2FzZSBFdmVudFR5cGUuTE9HSU5fU1VDQ0VTUzpcclxuICAgICAgICAgIGNhc2UgRXZlbnRUeXBlLkFDUVVJUkVfVE9LRU5fU1VDQ0VTUzpcclxuICAgICAgICAgIGNhc2UgRXZlbnRUeXBlLlNTT19TSUxFTlRfU1VDQ0VTUzpcclxuICAgICAgICAgICAgbGV0IHBheWxvYWQgPSBtc2cucGF5bG9hZCBhcyBBdXRoZW50aWNhdGlvblJlc3VsdDtcclxuICAgICAgICAgICAgaWYgKCFwYXlsb2FkKSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoIU1TQUxVdGlscy5pc0IyQygpKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5tc2FsU2VydmljZS5pbnN0YW5jZS5zZXRBY3RpdmVBY2NvdW50KHBheWxvYWQuYWNjb3VudCk7XHJcbiAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvL0IyQ1xyXG4gICAgICAgICAgICBsZXQgdG9rZW4gPSBwYXlsb2FkLmlkVG9rZW5DbGFpbXMgYXMgSWRUb2tlbkNsYWltc1dpdGhQb2xpY3lJZFxyXG5cclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqXHJcbiAgICAgICAgICAgICAqIHNpZ25VcFNpZ25JblxyXG4gICAgICAgICAgICAgKlxyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgaWYgKHRva2VuLmFjciA9PT0gdGhpcy5zaWduVXBTaWduSW5Qb2xpY3kubmFtZSB8fCB0b2tlbi50ZnAgPT09IHRoaXMuc2lnblVwU2lnbkluUG9saWN5Lm5hbWUpIHtcclxuICAgICAgICAgICAgICB0aGlzLm1zYWxTZXJ2aWNlLmluc3RhbmNlLnNldEFjdGl2ZUFjY291bnQocGF5bG9hZC5hY2NvdW50KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqXHJcbiAgICAgICAgICAgICAqIGVkaXRQcm9maWxlXHJcbiAgICAgICAgICAgICAqXHJcbiAgICAgICAgICAgICAqIEZvciB0aGUgcHVycG9zZSBvZiBzZXR0aW5nIGFuIGFjdGl2ZSBhY2NvdW50IGZvciBVSSB1cGRhdGUsIHdlIHdhbnQgdG8gY29uc2lkZXIgb25seSB0aGUgYXV0aCByZXNwb25zZSByZXN1bHRpbmdcclxuICAgICAgICAgICAgICogZnJvbSBTVVNJIGZsb3cuIFwiYWNyXCIgY2xhaW0gaW4gdGhlIGlkIHRva2VuIHRlbGxzIHVzIHRoZSBwb2xpY3kgKE5PVEU6IG5ld2VyIHBvbGljaWVzIG1heSB1c2UgdGhlIFwidGZwXCIgY2xhaW0gaW5zdGVhZCkuXHJcbiAgICAgICAgICAgICAqIFRvIGxlYXJuIG1vcmUgYWJvdXQgQjJDIHRva2VucywgdmlzaXQgaHR0cHM6Ly9kb2NzLm1pY3Jvc29mdC5jb20vZW4tdXMvYXp1cmUvYWN0aXZlLWRpcmVjdG9yeS1iMmMvdG9rZW5zLW92ZXJ2aWV3XHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICBpZiAodG9rZW4uYWNyID09PSB0aGlzLmVkaXRQcm9maWxlUG9saWN5Lm5hbWUgfHwgdG9rZW4udGZwID09PSB0aGlzLmVkaXRQcm9maWxlUG9saWN5Lm5hbWUpIHtcclxuICAgICAgICAgICAgICAgY29uc3Qgc2lnbkluQWNjb3VudCA9IHRoaXMubXNhbFNlcnZpY2UuaW5zdGFuY2UuZ2V0QWxsQWNjb3VudHMoKVxyXG4gICAgICAgICAgICAgICAgICAuZmluZCgoYWNjb3VudDogQWNjb3VudEluZm8pID0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYWNjb3VudC5pZFRva2VuQ2xhaW1zPy5vaWQgPT09IHRva2VuLm9pZCAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFjY291bnQuaWRUb2tlbkNsYWltcz8uc3ViID09PSB0b2tlbi5zdWIgJiZcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAoKGFjY291bnQuaWRUb2tlbkNsYWltcyBhcyBJZFRva2VuQ2xhaW1zV2l0aFBvbGljeUlkKS5hY3IgPT09IHRoaXMuc2lnblVwU2lnbkluUG9saWN5Lm5hbWUgfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFjY291bnQuaWRUb2tlbkNsYWltcyBhcyBJZFRva2VuQ2xhaW1zV2l0aFBvbGljeUlkKS50ZnAgPT09IHRoaXMuc2lnblVwU2lnbkluUG9saWN5Lm5hbWUpXHJcbiAgICAgICAgICAgICAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgICAgICB0aGlzLmZvcmNlUmVhdXRoZW50aWNhdGUoc2lnbkluQWNjb3VudCk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICAgKlxyXG4gICAgICAgICAgICAgKiByZXNldFBhc3N3b3JkXHJcbiAgICAgICAgICAgICAqXHJcbiAgICAgICAgICAgICAqIEJlbG93IHdlIGFyZSBjaGVja2luZyBpZiB0aGUgdXNlciBpcyByZXR1cm5pbmcgZnJvbSB0aGUgcmVzZXQgcGFzc3dvcmQgZmxvdy5cclxuICAgICAgICAgICAgICogSWYgc28sIHdlIHdpbGwgYXNrIHRoZSB1c2VyIHRvIHJlYXV0aGVudGljYXRlIHdpdGggdGhlaXIgbmV3IHBhc3N3b3JkLlxyXG4gICAgICAgICAgICAgKiBJZiB5b3UgZG8gbm90IHdhbnQgdGhpcyBiZWhhdmlvciBhbmQgcHJlZmVyIHlvdXIgdXNlcnMgdG8gc3RheSBzaWduZWQgaW4gaW5zdGVhZCxcclxuICAgICAgICAgICAgICogeW91IGNhbiByZXBsYWNlIHRoZSBjb2RlIGJlbG93IHdpdGggdGhlIHNhbWUgcGF0dGVybiB1c2VkIGZvciBoYW5kbGluZyB0aGUgcmV0dXJuIGZyb21cclxuICAgICAgICAgICAgICogcHJvZmlsZSBlZGl0IGZsb3dcclxuICAgICAgICAgICAgICovXHJcbiAgICAgICAgICAgIGlmICh0b2tlbi5hY3IgPT09IHRoaXMucmVzZXRQYXNzd29yZFBvbGljeS5uYW1lIHx8IHRva2VuLnRmcCA9PT0gdGhpcy5yZXNldFBhc3N3b3JkUG9saWN5Lm5hbWUpIHtcclxuICAgICAgICAgICAgICB0aGlzLmZvcmNlUmVhdXRoZW50aWNhdGUoKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gbXNnO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICB0aGlzLm1zYWxCcm9hZGNhc3RTZXJ2aWNlLmluUHJvZ3Jlc3MkLnBpcGUoXHJcbiAgICAgICAgZmlsdGVyKChzdGF0dXM6IEludGVyYWN0aW9uU3RhdHVzKSA9PlxyXG4gICAgICAgICAgc3RhdHVzID09PSBJbnRlcmFjdGlvblN0YXR1cy5TdGFydHVwIHx8XHJcbiAgICAgICAgICBzdGF0dXMgPT09IEludGVyYWN0aW9uU3RhdHVzLk5vbmVcclxuICAgICAgICApLFxyXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLm1zYWxEZXN0cm95aW5nJClcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKChzdGF0dXM6IEludGVyYWN0aW9uU3RhdHVzKSA9PiB7XHJcbiAgICAgICAgc3dpdGNoIChzdGF0dXMpIHtcclxuICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgICogSW5pdGlhbCBzdGF0dXMgYmVmb3JlIGludGVyYWN0aW9uIG9jY3Vyc1xyXG4gICAgICAgICAgICovXHJcbiAgICAgICAgICBjYXNlIEludGVyYWN0aW9uU3RhdHVzLlN0YXJ0dXA6XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBtc2FsLmFwcDogSW50ZXJhY3Rpb25TdGF0dXMuU3RhcnR1cGApO1xyXG4gICAgICAgICAgICBicmVhaztcclxuXHJcbiAgICAgICAgICAvKipcclxuICAgICAgICAgICogU3RhdHVzIHNldCB3aGVuIGludGVyYWN0aW9uIGlzIGNvbXBsZXRlXHJcbiAgICAgICAgICAqL1xyXG4gICAgICAgICAgY2FzZSBJbnRlcmFjdGlvblN0YXR1cy5Ob25lOlxyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgbXNhbC5hcHA6IEludGVyYWN0aW9uU3RhdHVzLk5vbmVgKTtcclxuXHJcbiAgICAgICAgICAgIE1TQUxSZWRpcmVjdC5oYW5kbGUodGhpcy5yb3V0ZXIsICdtc2FsQnJvYWRjYXN0U2VydmljZS5pblByb2dyZXNzJCBJbnRlcmFjdGlvblN0YXR1cy5Ob25lJyk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLmNoZWNrQW5kU2V0QWN0aXZlQWNjb3VudCgpO1xyXG4gICAgICAgICAgICB0aGlzLmFwcENvbnRleHQudXBkYXRlQ3VycmVudCgpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRBY3RpdmVBY2NvdW50KCk6IEFjY291bnRJbmZvIHwgbnVsbCB7XHJcbiAgICB0aGlzLmNoZWNrQW5kU2V0QWN0aXZlQWNjb3VudCgpO1xyXG4gICAgcmV0dXJuIHRoaXMubXNhbFNlcnZpY2UuaW5zdGFuY2UuZ2V0QWN0aXZlQWNjb3VudCgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjaGVja0FuZFNldEFjdGl2ZUFjY291bnQoKSB7XHJcbiAgICBsZXQgYWN0aXZlQWNjb3VudCA9IHRoaXMubXNhbFNlcnZpY2UuaW5zdGFuY2UuZ2V0QWN0aXZlQWNjb3VudCgpO1xyXG4gICAgbGV0IGFjY291bnRzID0gdGhpcy5tc2FsU2VydmljZS5pbnN0YW5jZS5nZXRBbGxBY2NvdW50cygpO1xyXG5cclxuICAgIGlmICghYWN0aXZlQWNjb3VudCAmJiBhY2NvdW50cy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMubXNhbFNlcnZpY2UuaW5zdGFuY2Uuc2V0QWN0aXZlQWNjb3VudChhY2NvdW50c1swXSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzUG9wdXAocG9wdXA/OiBib29sZWFuKSB7XHJcbiAgICBpZiAodHlwZW9mIHBvcHVwID09PSBcInVuZGVmaW5lZFwiKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLm1zYWxHdWFyZENvbmZpZy5pbnRlcmFjdGlvblR5cGUgPT09IEludGVyYWN0aW9uVHlwZS5Qb3B1cDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcG9wdXA7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFjcXVpcmVUb2tlbigpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xyXG4gICAgbGV0IHJlcXVlc3QgPSB7XHJcbiAgICAgIHNjb3BlczogTVNBTFV0aWxzLmdldEFwaVNjb3BlcygpXHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuaXNQb3B1cCgpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLm1zYWxTZXJ2aWNlLmFjcXVpcmVUb2tlblBvcHVwKHJlcXVlc3QpLnBpcGUoXHJcbiAgICAgICAgbWFwKHJlc3BvbnNlID0+IHtcclxuICAgICAgICAgIHJldHVybiByZXNwb25zZSA/IHJlc3BvbnNlLmFjY2Vzc1Rva2VuIDogbnVsbDtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLm1zYWxTZXJ2aWNlLmFjcXVpcmVUb2tlblJlZGlyZWN0KHJlcXVlc3QpLnBpcGUoXHJcbiAgICAgICAgbWFwKCgpID0+IHtcclxuICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRVc2VyRW1haWwoKSB7XHJcbiAgICBsZXQgY3VycmVudFVzZXIgPSB0aGlzLmFwcENvbnRleHQuY3VycmVudFVzZXI7XHJcbiAgICBsZXQgYWN0aXZlQWNjb3VudCA9IHRoaXMuZ2V0QWN0aXZlQWNjb3VudCgpO1xyXG5cclxuICAgIGlmIChhY3RpdmVBY2NvdW50KSB7XHJcbiAgICAgIHJldHVybiBhY3RpdmVBY2NvdW50LnVzZXJuYW1lO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBjdXJyZW50VXNlciA/IGN1cnJlbnRVc2VyLkVtYWlsIDogJyc7XHJcbiAgfVxyXG5cclxuICBnZXRVc2VyTmFtZSgpIHtcclxuICAgIGxldCBjdXJyZW50VXNlciA9IHRoaXMuYXBwQ29udGV4dC5jdXJyZW50VXNlcjtcclxuICAgIGxldCBhY3RpdmVBY2NvdW50ID0gdGhpcy5nZXRBY3RpdmVBY2NvdW50KCk7XHJcblxyXG4gICAgaWYgKGFjdGl2ZUFjY291bnQpIHtcclxuICAgICAgcmV0dXJuIGFjdGl2ZUFjY291bnQubmFtZSA/IGFjdGl2ZUFjY291bnQubmFtZSA6IGN1cnJlbnRVc2VyID8gY3VycmVudFVzZXIuZGlzcGxheU5hbWVPckZ1bGxOYW1lIDogJyc7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGN1cnJlbnRVc2VyID8gY3VycmVudFVzZXIuZGlzcGxheU5hbWVPckZ1bGxOYW1lIDogJyc7XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gICAgVmFkaW1PUzpcclxuICAgIFdBUk5JTkcgdG8gYWxsIGRldmVsb3BlcnMhIEJlIHN1cmUgdGhhdCB5b3UgcmVhbGx5IG5lZWQgdG8gZGlyZWN0bHkgY2FsbCB0aGlzIG1ldGhvZCFcclxuICAqL1xyXG4gIGdldEFjY2Vzc1Rva2VuKHJlcXVlc3RVcmw/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xyXG4gICAgbGV0IGFjdGl2ZUFjY291bnQgPSB0aGlzLmdldEFjdGl2ZUFjY291bnQoKTtcclxuICAgIGxldCBzaWxlbnRSZXF1ZXN0OiBTaWxlbnRSZXF1ZXN0ID0ge1xyXG4gICAgICBzY29wZXM6IE1TQUxVdGlscy5nZXRBcGlTY29wZXMoKSxcclxuICAgICAgYWNjb3VudDogYWN0aXZlQWNjb3VudFxyXG4gICAgfTtcclxuXHJcbiAgICBpZiAoYWN0aXZlQWNjb3VudCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5tc2FsU2VydmljZS5hY3F1aXJlVG9rZW5TaWxlbnQoc2lsZW50UmVxdWVzdCkucGlwZShcclxuICAgICAgICBtYXAocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmFjY2Vzc1Rva2VuO1xyXG4gICAgICAgIH0pLFxyXG4gICAgICAgIGNhdGNoRXJyb3IoZXJyb3IgPT4ge1xyXG4gICAgICAgICAgY29uc29sZS5sb2coXCJTaWxlbnQgdG9rZW4gYWNxdWlzaXRpb24gZmFpbHMuXCIpO1xyXG5cclxuICAgICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEludGVyYWN0aW9uUmVxdWlyZWRBdXRoRXJyb3IpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuYWNxdWlyZVRva2VuKCk7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuYWNxdWlyZVRva2VuKCk7XHJcbiAgfVxyXG5cclxuICBmb3JjZVJlYXV0aGVudGljYXRlKGFjY291bnQ/KSB7XHJcbiAgICBpZiAoTVNBTFV0aWxzLmlzQjJDKCkpIHtcclxuICAgICAgbGV0IHNpZ25VcFNpZ25JbiA9IE1TQUxCMkMuZ2V0UG9saWN5QnlUeXBlKFBvbGljeVR5cGUuc2lnblVwU2lnbkluKTtcclxuICAgICAgbGV0IHNpZ25VcFNpZ25JbkZsb3dSZXF1ZXN0OiBSZWRpcmVjdFJlcXVlc3QgfCBQb3B1cFJlcXVlc3QgID0ge1xyXG4gICAgICAgIGF1dGhvcml0eTogc2lnblVwU2lnbkluLmF1dGhvcml0eSxcclxuICAgICAgICBzY29wZXM6IFtdLFxyXG4gICAgICAgIHByb21wdDogUHJvbXB0VmFsdWUuTE9HSU4sIC8vIGZvcmNlIHVzZXIgdG8gcmVhdXRoZW50aWNhdGUgd2l0aCB0aGVpciBuZXcgcGFzc3dvcmRcclxuICAgICAgICBhY2NvdW50OiBhY2NvdW50XHJcbiAgICAgIH07XHJcblxyXG4gICAgICB0aGlzLmxvZ2luKHNpZ25VcFNpZ25JbkZsb3dSZXF1ZXN0KTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbG9naW4odXNlckZsb3dSZXF1ZXN0PzogUmVkaXJlY3RSZXF1ZXN0IHwgUG9wdXBSZXF1ZXN0LCBwb3B1cD86IGJvb2xlYW4pIHtcclxuICAgIGxldCBhdXRoUmVxdWVzdENmZzogYW55ID0gdGhpcy5tc2FsR3VhcmRDb25maWcuYXV0aFJlcXVlc3Q7XHJcbiAgICBsZXQgYXV0aFJlcXVlc3QgPSBudWxsO1xyXG5cclxuICAgIGlmIChhdXRoUmVxdWVzdENmZykge1xyXG4gICAgICBhdXRoUmVxdWVzdCA9IGF1dGhSZXF1ZXN0Q2ZnKHRoaXMubXNhbFNlcnZpY2UsIHRoaXMucm91dGVyLnJvdXRlclN0YXRlLnNuYXBzaG90KTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5pc1BvcHVwKHBvcHVwKSkge1xyXG4gICAgICBpZiAoYXV0aFJlcXVlc3QpIHtcclxuICAgICAgICB0aGlzLm1zYWxTZXJ2aWNlLmxvZ2luUG9wdXAoeyAuLi5hdXRoUmVxdWVzdCwgLi4udXNlckZsb3dSZXF1ZXN0IH0gYXMgUG9wdXBSZXF1ZXN0KS5zdWJzY3JpYmUoKHJlc3BvbnNlOiBBdXRoZW50aWNhdGlvblJlc3VsdCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5tc2FsU2VydmljZS5pbnN0YW5jZS5zZXRBY3RpdmVBY2NvdW50KHJlc3BvbnNlLmFjY291bnQpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMubXNhbFNlcnZpY2UubG9naW5Qb3B1cCh1c2VyRmxvd1JlcXVlc3QpLnN1YnNjcmliZSgocmVzcG9uc2U6IEF1dGhlbnRpY2F0aW9uUmVzdWx0KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLm1zYWxTZXJ2aWNlLmluc3RhbmNlLnNldEFjdGl2ZUFjY291bnQocmVzcG9uc2UuYWNjb3VudCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBpZiAoYXV0aFJlcXVlc3QpIHtcclxuICAgICAgICB0aGlzLm1zYWxTZXJ2aWNlLmxvZ2luUmVkaXJlY3QoeyAuLi5hdXRoUmVxdWVzdCwgLi4udXNlckZsb3dSZXF1ZXN0IH0gYXMgUmVkaXJlY3RSZXF1ZXN0KTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICB0aGlzLm1zYWxTZXJ2aWNlLmxvZ2luUmVkaXJlY3QodXNlckZsb3dSZXF1ZXN0KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbG9nb3V0KHBvcHVwPzogYm9vbGVhbikge1xyXG4gICAgbGV0IGFjdGl2ZUFjY291bnQgPSB0aGlzLmdldEFjdGl2ZUFjY291bnQoKTtcclxuXHJcbiAgICBpZiAodGhpcy5pc1BvcHVwKHBvcHVwKSkge1xyXG4gICAgICBpZiAoYWN0aXZlQWNjb3VudCkge1xyXG4gICAgICAgIHRoaXMubXNhbFNlcnZpY2UubG9nb3V0UG9wdXAoeyBhY2NvdW50OiBhY3RpdmVBY2NvdW50LCBtYWluV2luZG93UmVkaXJlY3RVcmk6IFwiL1wiIH0pLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdGhpcy5tc2FsU2VydmljZS5sb2dvdXRQb3B1cCh7IG1haW5XaW5kb3dSZWRpcmVjdFVyaTogXCIvXCIgfSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIGlmIChhY3RpdmVBY2NvdW50KSB7XHJcbiAgICAgICAgdGhpcy5tc2FsU2VydmljZS5sb2dvdXRSZWRpcmVjdCh7IGFjY291bnQ6IGFjdGl2ZUFjY291bnQgfSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdGhpcy5tc2FsU2VydmljZS5sb2dvdXRSZWRpcmVjdCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpc1VzZXJBdXRoZW50aWNhdGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMubXNhbFNlcnZpY2UuaW5zdGFuY2UuZ2V0QWN0aXZlQWNjb3VudCgpICE9IG51bGw7XHJcbiAgfVxyXG5cclxuICBpc1VzZXJTaWduZWRJbigpOiBib29sZWFuIHtcclxuICAgIGlmICghdGhpcy5pc1VzZXJBdXRoZW50aWNhdGVkKCkpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmFwcENvbnRleHQuY3VycmVudC5pc1VzZXJTaWduZWRJbiAmJiB0aGlzLmFwcENvbnRleHQuY3VycmVudFVzZXIpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgaXNVc2VyQWRtaW4oKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIXRoaXMuaXNVc2VyU2lnbmVkSW4oKSkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMuYXBwQ29udGV4dC5jdXJyZW50LmlzVXNlckFkbWluO1xyXG4gIH1cclxuXHJcbiAgLy9CMkNcclxuICBzaWduVXAoKSB7XHJcbiAgICBpZiAoIU1TQUxVdGlscy5pc0IyQygpKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgc2lnblVwRmxvd1JlcXVlc3Q6IFJlZGlyZWN0UmVxdWVzdCB8IFBvcHVwUmVxdWVzdCAgPSB7XHJcbiAgICAgIGF1dGhvcml0eTogdGhpcy5zaWduVXBQb2xpY3kuYXV0aG9yaXR5LFxyXG4gICAgICBzY29wZXM6IFtdXHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMubG9naW4oc2lnblVwRmxvd1JlcXVlc3QpO1xyXG4gIH1cclxuXHJcbiAgZWRpdFByb2ZpbGUoKSB7XHJcbiAgICBpZiAoIU1TQUxVdGlscy5pc0IyQygpKSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgZWRpdFByb2ZpbGVGbG93UmVxdWVzdDogUmVkaXJlY3RSZXF1ZXN0IHwgUG9wdXBSZXF1ZXN0ICA9IHtcclxuICAgICAgYXV0aG9yaXR5OiB0aGlzLmVkaXRQcm9maWxlUG9saWN5LmF1dGhvcml0eSxcclxuICAgICAgc2NvcGVzOiBbXVxyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLmxvZ2luKGVkaXRQcm9maWxlRmxvd1JlcXVlc3QpO1xyXG4gIH1cclxuXHJcbiAgcmVzZXRQYXNzd29yZCgpIHtcclxuICAgIGlmICghTVNBTFV0aWxzLmlzQjJDKCkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCByZXNldFBhc3N3b3JkRmxvd1JlcXVlc3Q6IFJlZGlyZWN0UmVxdWVzdCB8IFBvcHVwUmVxdWVzdCAgPSB7XHJcbiAgICAgIGF1dGhvcml0eTogdGhpcy5yZXNldFBhc3N3b3JkUG9saWN5LmF1dGhvcml0eSxcclxuICAgICAgc2NvcGVzOiBbXVxyXG4gICAgfTtcclxuXHJcbiAgICB0aGlzLmxvZ2luKHJlc2V0UGFzc3dvcmRGbG93UmVxdWVzdCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
397
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL2lhbS9zZXJ2aWNlcy9hdXRoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBcUJBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRTlELE9BQU8sRUFBYyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuRixPQUFPLEVBQUUsaUJBQWlCLEVBQTZELE1BQU0scUJBQXFCLENBQUM7QUFDbkgsT0FBTyxFQUFtRCxTQUFTLEVBQWlCLDRCQUE0QixFQUM5RyxpQkFBaUIsRUFBRSxlQUFlLEVBQWdCLFdBQVcsRUFDOUQsTUFBTSxxQkFBcUIsQ0FBQztBQUU3QixLQUFLO0FBQ0wsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTdELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDM0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNyQyxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFFBQVEsQ0FBQzs7Ozs7O0FBVTdDLE1BQU0sT0FBTyxXQUFZLFNBQVEsY0FBYztJQVdqQztJQUNGO0lBQ0E7SUFHQTtJQUNBO0lBQ0E7SUFqQk8sZUFBZSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFDL0MsV0FBVyxHQUFZLEtBQUssQ0FBQztJQUVyQyxjQUFjO0lBQ04sa0JBQWtCLENBQUE7SUFDbEIsWUFBWSxDQUFDO0lBQ2IsaUJBQWlCLENBQUM7SUFDbEIsbUJBQW1CLENBQUM7SUFFNUIsWUFDWSxJQUFnQixFQUNsQixNQUFjLEVBQ2QsVUFBNkIsRUFHN0IsZUFBdUMsRUFDdkMsV0FBd0Is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VUFBVSxFQUFFLE1BQU07YUFDbkI7O3NCQWdCSSxNQUFNO3VCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbjxmaWxlPlxyXG4gIFByb2plY3Q6XHJcbiAgICBAb3Nvdml0bnkvYW5hdG9seVxyXG5cclxuICBBdXRob3JzOlxyXG4gICAgVmFkaW0gT3Nvdml0bnkgdmFkaW1Ab3Nvdml0bnkuY29tXHJcbiAgICBBbmF0b2x5IE9zb3ZpdG55IGFuYXRvbHlAb3Nvdml0bnkuY29tXHJcblxyXG4gIENyZWF0ZWQ6XHJcbiAgICA2IERlYyAyMDE4XHJcblxyXG4gIERlc2NyaXB0aW9uOlxyXG4gICAgSWRlbnRpdHkgYW5kIEFjY2VzcyBNYW5hZ2VtZW50XHJcblxyXG4gIENvcHlyaWdodCAoYykgMjAxNi0yMDIyIE9zb3ZpdG55IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cclxuPC9maWxlPlxyXG4qL1xyXG5cclxuLy9Ob2RlXHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIGNhdGNoRXJyb3IsIGZpbHRlciwgbWFwLCBvZiwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IE1TQUxfR1VBUkRfQ09ORklHLCBNc2FsQnJvYWRjYXN0U2VydmljZSwgTXNhbEd1YXJkQ29uZmlndXJhdGlvbiwgTXNhbFNlcnZpY2UgfSBmcm9tICdAYXp1cmUvbXNhbC1hbmd1bGFyJztcclxuaW1wb3J0IHsgQWNjb3VudEluZm8sIEF1dGhlbnRpY2F0aW9uUmVzdWx0LCBFdmVudE1lc3NhZ2UsIEV2ZW50VHlwZSwgSWRUb2tlbkNsYWltcywgSW50ZXJhY3Rpb25SZXF1aXJlZEF1dGhFcnJvcixcclxuICBJbnRlcmFjdGlvblN0YXR1cywgSW50ZXJhY3Rpb25UeXBlLCBQb3B1cFJlcXVlc3QsIFByb21wdFZhbHVlLCBSZWRpcmVjdFJlcXVlc3QsIFNpbGVudFJlcXVlc3QsIFNzb1NpbGVudFJlcXVlc3RcclxufSBmcm9tICdAYXp1cmUvbXNhbC1icm93c2VyJztcclxuXHJcbi8vQXBwXHJcbmltcG9ydCB7IEFwaVNlcnZpY2VCYXNlIH0gZnJvbSAnLi4vLi4vZGF0YS9iYXNlL2FwaS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXBwQ29udGV4dFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL2FwcGNvbnRleHQuc2VydmljZSc7XHJcbmltcG9ydCB7IE1TQUxSZWRpcmVjdCB9IGZyb20gJy4uL3JlZGlyZWN0JztcclxuaW1wb3J0IHsgTVNBTFV0aWxzIH0gZnJvbSAnLi4vdXRpbHMnO1xyXG5pbXBvcnQgeyBNU0FMQjJDLCBQb2xpY3lUeXBlIH0gZnJvbSAnLi4vYjJjJztcclxuXHJcbnR5cGUgSWRUb2tlbkNsYWltc1dpdGhQb2xpY3lJZCA9IElkVG9rZW5DbGFpbXMgJiB7XHJcbiAgYWNyPzogc3RyaW5nLFxyXG4gIHRmcD86IHN0cmluZyxcclxufTtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEF1dGhTZXJ2aWNlIGV4dGVuZHMgQXBpU2VydmljZUJhc2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgbXNhbERlc3Ryb3lpbmckID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBwcml2YXRlIGluaXRpYWxpemVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8vQjJDIFBvbGljaWVzXHJcbiAgcHJpdmF0ZSBzaWduVXBTaWduSW5Qb2xpY3lcclxuICBwcml2YXRlIHNpZ25VcFBvbGljeTtcclxuICBwcml2YXRlIGVkaXRQcm9maWxlUG9saWN5O1xyXG4gIHByaXZhdGUgcmVzZXRQYXNzd29yZFBvbGljeTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcm90ZWN0ZWQgaHR0cDogSHR0cENsaWVudCxcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIGFwcENvbnRleHQ6IEFwcENvbnRleHRTZXJ2aWNlLFxyXG5cclxuICAgIEBJbmplY3QoTVNBTF9HVUFSRF9DT05GSUcpXHJcbiAgICBwcml2YXRlIG1zYWxHdWFyZENvbmZpZzogTXNhbEd1YXJkQ29uZmlndXJhdGlvbixcclxuICAgIHByaXZhdGUgbXNhbFNlcnZpY2U6IE1zYWxTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBtc2FsQnJvYWRjYXN0U2VydmljZTogTXNhbEJyb2FkY2FzdFNlcnZpY2UpIHtcclxuICAgIHN1cGVyKGh0dHApO1xyXG4gICAgdGhpcy5pbml0KCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMubXNhbERlc3Ryb3lpbmckLm5leHQodW5kZWZpbmVkKTtcclxuICAgIHRoaXMubXNhbERlc3Ryb3lpbmckLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGluaXQoKSB7XHJcbiAgICB0aGlzLnNldERlZmF1bHRzKCk7XHJcblxyXG4gICAgdGhpcy5tc2FsU2VydmljZS5pbml0aWFsaXplKCkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XHJcblxyXG4gICAgICBjb25zb2xlLmxvZyhgbXNhbC5hcHA6IGluaXRNU0FMIHN0YXJ0ZWRgKTtcclxuICAgICAgdGhpcy5pbml0TVNBTCgpO1xyXG4gICAgICBjb25zb2xlLmxvZyhgbXNhbC5hcHA6IGluaXRNU0FMIGZpbmlzaGVkYCk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0RGVmYXVsdHMoKSB7XHJcbiAgfVxyXG5cclxuICAvKlxyXG4gICAgaHR0cHM6Ly9naXRodWIuY29tL0F6dXJlQUQvbWljcm9zb2Z0LWF1dGhlbnRpY2F0aW9uLWxpYnJhcnktZm9yLWpzL2Jsb2IvZGV2L3NhbXBsZXMvbXNhbC1hbmd1bGFyLXYzLXNhbXBsZXMvYW5ndWxhci1iMmMtc2FtcGxlLWFwcC9zcmMvYXBwL2FwcC5jb21wb25lbnQudHNcclxuXHJcbiAgICBUb2tlbiBWYWxpZGF0aW9uOlxyXG4gICAgICBodHRwczovL2p3dC5pb1xyXG5cclxuICAgIFRva2VuIHR5cGVzOlxyXG4gICAgICBodHRwczovL2xlYXJuLm1pY3Jvc29mdC5jb20vZW4tdXMvYXp1cmUvYWN0aXZlLWRpcmVjdG9yeS1iMmMvdG9rZW5zLW92ZXJ2aWV3XHJcbiAgICAgIElEIHRva2VuIC0gQSBKV1QgdGhhdCBjb250YWlucyBjbGFpbXMgdGhhdCB5b3UgY2FuIHVzZSB0byBpZGVudGlmeSB1c2VycyBpbiB5b3VyIGFwcGxpY2F0aW9uXHJcbiAgICAgIEFjY2VzcyB0b2tlbiAtIEEgSldUIHRoYXQgY29udGFpbnMgY2xhaW1zIHRoYXQgeW91IGNhbiB1c2UgdG8gaWRlbnRpZnkgdGhlIGdyYW50ZWQgcGVybWlzc2lvbnMgdG8geW91ciBBUElzLlxyXG4gICAgICAgICAgICAgICAgICAgICBBY2Nlc3MgdG9rZW5zIGFyZSBzaWduZWQsIGJ1dCB0aGV5IGFyZW4ndCBlbmNyeXB0ZWRcclxuICAgICAgUmVmcmVzaCB0b2tlbiAtIFJlZnJlc2ggdG9rZW5zIGFyZSB1c2VkIHRvIGFjcXVpcmUgbmV3IElEIHRva2VucyBhbmQgYWNjZXNzIHRva2VucyBpbiBhbiBPQXV0aCAyLjAgZmxvdy5cclxuICAqL1xyXG4gIHByaXZhdGUgaW5pdE1TQUwoKSB7XHJcbiAgICAvL0IyQ1xyXG4gICAgdGhpcy5zaWduVXBTaWduSW5Qb2xpY3kgPSBNU0FMQjJDLmdldFBvbGljeUJ5VHlwZShQb2xpY3lUeXBlLnNpZ25VcFNpZ25Jbik7XHJcbiAgICB0aGlzLnNpZ25VcFBvbGljeSA9IE1TQUxCMkMuZ2V0UG9saWN5QnlUeXBlKFBvbGljeVR5cGUuc2lnblVwKTtcclxuICAgIHRoaXMuZWRpdFByb2ZpbGVQb2xpY3kgPSBNU0FMQjJDLmdldFBvbGljeUJ5VHlwZShQb2xpY3lUeXBlLmVkaXRQcm9maWxlKTtcclxuICAgIHRoaXMucmVzZXRQYXNzd29yZFBvbGljeSA9IE1TQUxCMkMuZ2V0UG9saWN5QnlUeXBlKFBvbGljeVR5cGUucmVzZXRQYXNzd29yZCk7XHJcblxyXG4gICAgdGhpcy5tc2FsU2VydmljZS5oYW5kbGVSZWRpcmVjdE9ic2VydmFibGUoKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzdWx0OiBBdXRoZW50aWNhdGlvblJlc3VsdCkgPT4ge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKGBtc2FsLmFwcDogaGFuZGxlUmVkaXJlY3RPYnNlcnZhYmxlYCk7XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcclxuICAgICAgICBjb25zb2xlLmxvZyhlcnJvcik7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMubXNhbFNlcnZpY2UuaW5zdGFuY2UuZW5hYmxlQWNjb3VudFN0b3JhZ2VFdmVudHMoKTtcclxuICAgIHRoaXMubXNhbEJyb2FkY2FzdFNlcnZpY2UubXNhbFN1YmplY3QkLnBpcGUoXHJcbiAgICAgICAgZmlsdGVyKChtc2c6IEV2ZW50TWVzc2FnZSkgPT5cclxuICAgICAgICAgIG1zZy5ldmVudFR5cGUgPT09IEV2ZW50VHlwZS5JTklUSUFMSVpFX0VORCB8fFxyXG5cclxuICAgICAgICAgIC8vQUNDT1VOVF9BRERFRCBhbmQgQUNDT1VOVF9SRU1PVkVEIGV2ZW50cyBlbWl0dGVkIHdoZW4gYSB1c2VyIGxvZ3MgaW4gb3Igb3V0IG9mIGFub3RoZXIgdGFiIG9yIHdpbmRvd1xyXG4gICAgICAgICAgbXNnLmV2ZW50VHlwZSA9PT0gRXZlbnRUeXBlLkFDQ09VTlRfQURERUQgfHxcclxuICAgICAgICAgIG1zZy5ldmVudFR5cGUgPT09IEV2ZW50VHlwZS5BQ0NPVU5UX1JFTU9WRUQgfHxcclxuXHJcbiAgICAgICAgICAvL0xvZ2luIEZhaWx1cmVcclxuICAgICAgICAgIG1zZy5ldmVudFR5cGUgPT09IEV2ZW50VHlwZS5MT0dJTl9GQUlMVVJFIHx8XHJcbiAgICAgICAgICBtc2cuZXZlbnRUeXBlID09PSBFdmVudFR5cGUuQUNRVUlSRV9UT0tFTl9GQUlMVVJFIHx8XHJcblxyXG4gICAgICAgICAgLy9Mb2dPdXRcclxuICAgICAgICAgIG1zZy5ldmVudFR5cGUgPT09IEV2ZW50VHlwZS5MT0dPVVRfU1VDQ0VTUyB8fFxyXG5cclxuICAgICAgICAgIC8vTG9nSW5cclxuICAgICAgICAgIG1zZy5ldmVudFR5cGUgPT09IEV2ZW50VHlwZS5MT0dJTl9TVUNDRVNTIHx8XHJcbiAgICAgICAgICBtc2cuZXZlbnRUeXBlID09PSBFdmVudFR5cGUuQUNRVUlSRV9UT0tFTl9TVUNDRVNTIHx8XHJcbiAgICAgICAgICBtc2cuZXZlbnRUeXBlID09PSBFdmVudFR5cGUuU1NPX1NJTEVOVF9TVUNDRVNTXHJcbiAgICAgICAgKSxcclxuICAgICAgICB0YWtlVW50aWwodGhpcy5tc2FsRGVzdHJveWluZyQpXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgobXNnOiBFdmVudE1lc3NhZ2UpID0+IHtcclxuICAgICAgICBzd2l0Y2ggKG1zZy5ldmVudFR5cGUpIHtcclxuICAgICAgICAgIGNhc2UgRXZlbnRUeXBlLklOSVRJQUxJWkVfRU5EOlxyXG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgbXNhbC5hcHA6IElOSVRJQUxJWkVfRU5EIGZpcmVkYCk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgIGNhc2UgRXZlbnRUeXBlLkFDQ09VTlRfQURERUQ6XHJcbiAgICAgICAgICBjYXNlIEV2ZW50VHlwZS5BQ0NPVU5UX1JFTU9WRUQ6XHJcbiAgICAgICAgICAgIGlmICh0aGlzLm1zYWxTZXJ2aWNlLmluc3RhbmNlLmdldEFsbEFjY291bnRzKCkubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lID0gXCIvXCI7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgY2FzZSBFdmVudFR5cGUuTE9HSU5fRkFJTFVSRTpcclxuICAgICAgICAgIGNhc2UgRXZlbnRUeXBlLkFDUVVJUkVfVE9LRU5fRkFJTFVSRTpcclxuICAgICAgICAgICAgaWYgKCFNU0FMVXRpbHMuaXNCMkMoKSkge1xyXG4gICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLy9DaGVjayBmb3IgZm9yZ290IHBhc3N3b3JkIGVycm9yLiBMZWFybiBtb3JlIGFib3V0IEFBRCBlcnJvciBjb2RlcyBhdFxyXG4gICAgICAgICAgICAvL2h0dHBzOi8vZG9jcy5taWNyb3NvZnQuY29tL2VuLXVzL2F6dXJlL2FjdGl2ZS1kaXJlY3RvcnkvZGV2ZWxvcC9yZWZlcmVuY2UtYWFkc3RzLWVycm9yLWNvZGVzXHJcbiAgICAgICAgICAgIGlmIChtc2cuZXJyb3IgJiYgbXNnLmVycm9yLm1lc3NhZ2UuaW5kZXhPZignQUFEQjJDOTAxMTgnKSA+IC0xKSB7XHJcbiAgICAgICAgICAgICAgbGV0IHJlc2V0UGFzc3dvcmRGbG93UmVxdWVzdDogUmVkaXJlY3RSZXF1ZXN0IHwgUG9wdXBSZXF1ZXN0ICA9IHtcclxuICAgICAgICAgICAgICAgICAgYXV0aG9yaXR5OiB0aGlzLnJlc2V0UGFzc3dvcmRQb2xpY3kuYXV0aG9yaXR5LFxyXG4gICAgICAgICAgICAgICAgICBzY29wZXM6IFtdLFxyXG4gICAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICAgIHRoaXMubG9naW4ocmVzZXRQYXNzd29yZEZsb3dSZXF1ZXN0KTtcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICAgICAgY2FzZSBFdmVudFR5cGUuTE9HSU5fU1VDQ0VTUzpcclxuICAgICAgICAgIGNhc2UgRXZlbnRUeXBlLkFDUVVJUkVfVE9LRU5fU1VDQ0VTUzpcclxuICAgICAgICAgIGNhc2UgRXZlbnRUeXBlLlNTT19TSUxFTlRfU1VDQ0VTUzpcclxuICAgICAgICAgICAgbGV0IHBheWxvYWQgPSBtc2cucGF5bG9hZCBhcyBBdXRoZW50aWNhdGlvblJlc3VsdDtcclxuICAgICAgICAgICAgaWYgKCFwYXlsb2FkKSB7XHJcbiAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAoIU1TQUxVdGlscy5pc0IyQygpKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5tc2FsU2VydmljZS5pbnN0YW5jZS5zZXRBY3RpdmVBY2NvdW50KHBheWxvYWQuYWNjb3VudCk7XHJcbiAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAvL0IyQ1xyXG4gICAgICAgICAgICBsZXQgdG9rZW4gPSBwYXlsb2FkLmlkVG9rZW5DbGFpbXMgYXMgSWRUb2tlbkNsYWltc1dpdGhQb2xpY3lJZFxyXG5cclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqXHJcbiAgICAgICAgICAgICAqIHNpZ25VcFNpZ25JblxyXG4gICAgICAgICAgICAgKlxyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgaWYgKHRva2VuLmFjciA9PT0gdGhpcy5zaWduVXBTaWduSW5Qb2xpY3kubmFtZSB8fCB0b2tlbi50ZnAgPT09IHRoaXMuc2lnblVwU2lnbkluUG9saWN5Lm5hbWUpIHtcclxuICAgICAgICAgICAgICB0aGlzLm1zYWxTZXJ2aWNlLmluc3RhbmNlLnNldEFjdGl2ZUFjY291bnQocGF5bG9hZC5hY2NvdW50KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqXHJcbiAgICAgICAgICAgICAqIGVkaXRQcm9maWxlXHJcbiAgICAgICAgICAgICAqXHJcbiAgICAgICAgICAgICAqIEZvciB0aGUgcHVycG9zZSBvZiBzZXR0aW5nIGFuIGFjdGl2ZSBhY2NvdW50IGZvciBVSSB1cGRhdGUsIHdlIHdhbnQgdG8gY29uc2lkZXIgb25seSB0aGUgYXV0aCByZXNwb25zZSByZXN1bHRpbmdcclxuICAgICAgICAgICAgICogZnJvbSBTVVNJIGZsb3cuIFwiYWNyXCIgY2xhaW0gaW4gdGhlIGlkIHRva2VuIHRlbGxzIHVzIHRoZSBwb2xpY3kgKE5PVEU6IG5ld2VyIHBvbGljaWVzIG1heSB1c2UgdGhlIFwidGZwXCIgY2xhaW0gaW5zdGVhZCkuXHJcbiAgICAgICAgICAgICAqIFRvIGxlYXJuIG1vcmUgYWJvdXQgQjJDIHRva2VucywgdmlzaXQgaHR0cHM6Ly9kb2NzLm1pY3Jvc29mdC5jb20vZW4tdXMvYXp1cmUvYWN0aXZlLWRpcmVjdG9yeS1iMmMvdG9rZW5zLW92ZXJ2aWV3XHJcbiAgICAgICAgICAgICAqL1xyXG4gICAgICAgICAgICBpZiAodG9rZW4uYWNyID09PSB0aGlzLmVkaXRQcm9maWxlUG9saWN5Lm5hbWUgfHwgdG9rZW4udGZwID09PSB0aGlzLmVkaXRQcm9maWxlUG9saWN5Lm5hbWUpIHtcclxuICAgICAgICAgICAgICAgY29uc3Qgc2lnbkluQWNjb3VudCA9IHRoaXMubXNhbFNlcnZpY2UuaW5zdGFuY2UuZ2V0QWxsQWNjb3VudHMoKS5maW5kKChhY2NvdW50OiBBY2NvdW50SW5mbykgPT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICBhY2NvdW50LmlkVG9rZW5DbGFpbXM/Lm9pZCA9PT0gdG9rZW4ub2lkICYmXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYWNjb3VudC5pZFRva2VuQ2xhaW1zPy5zdWIgPT09IHRva2VuLnN1YiAmJlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICgoYWNjb3VudC5pZFRva2VuQ2xhaW1zIGFzIElkVG9rZW5DbGFpbXNXaXRoUG9saWN5SWQpLmFjciA9PT0gdGhpcy5zaWduVXBTaWduSW5Qb2xpY3kubmFtZSB8fFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAoYWNjb3VudC5pZFRva2VuQ2xhaW1zIGFzIElkVG9rZW5DbGFpbXNXaXRoUG9saWN5SWQpLnRmcCA9PT0gdGhpcy5zaWduVXBTaWduSW5Qb2xpY3kubmFtZSlcclxuICAgICAgICAgICAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICAgIHRoaXMuZm9yY2VSZWF1dGhlbnRpY2F0ZShzaWduSW5BY2NvdW50KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgICAqXHJcbiAgICAgICAgICAgICAqIHJlc2V0UGFzc3dvcmRcclxuICAgICAgICAgICAgICpcclxuICAgICAgICAgICAgICogQmVsb3cgd2UgYXJlIGNoZWNraW5nIGlmIHRoZSB1c2VyIGlzIHJldHVybmluZyBmcm9tIHRoZSByZXNldCBwYXNzd29yZCBmbG93LlxyXG4gICAgICAgICAgICAgKiBJZiBzbywgd2Ugd2lsbCBhc2sgdGhlIHVzZXIgdG8gcmVhdXRoZW50aWNhdGUgd2l0aCB0aGVpciBuZXcgcGFzc3dvcmQuXHJcbiAgICAgICAgICAgICAqIElmIHlvdSBkbyBub3Qgd2FudCB0aGlzIGJlaGF2aW9yIGFuZCBwcmVmZXIgeW91ciB1c2VycyB0byBzdGF5IHNpZ25lZCBpbiBpbnN0ZWFkLFxyXG4gICAgICAgICAgICAgKiB5b3UgY2FuIHJlcGxhY2UgdGhlIGNvZGUgYmVsb3cgd2l0aCB0aGUgc2FtZSBwYXR0ZXJuIHVzZWQgZm9yIGhhbmRsaW5nIHRoZSByZXR1cm4gZnJvbVxyXG4gICAgICAgICAgICAgKiBwcm9maWxlIGVkaXQgZmxvd1xyXG4gICAgICAgICAgICAgKi9cclxuICAgICAgICAgICAgaWYgKHRva2VuLmFjciA9PT0gdGhpcy5yZXNldFBhc3N3b3JkUG9saWN5Lm5hbWUgfHwgdG9rZW4udGZwID09PSB0aGlzLnJlc2V0UGFzc3dvcmRQb2xpY3kubmFtZSkge1xyXG4gICAgICAgICAgICAgIHRoaXMuZm9yY2VSZWF1dGhlbnRpY2F0ZSgpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBtc2c7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIHRoaXMubXNhbEJyb2FkY2FzdFNlcnZpY2UuaW5Qcm9ncmVzcyQucGlwZShcclxuICAgICAgICBmaWx0ZXIoKHN0YXR1czogSW50ZXJhY3Rpb25TdGF0dXMpID0+XHJcbiAgICAgICAgICBzdGF0dXMgPT09IEludGVyYWN0aW9uU3RhdHVzLlN0YXJ0dXAgfHxcclxuICAgICAgICAgIHN0YXR1cyA9PT0gSW50ZXJhY3Rpb25TdGF0dXMuTm9uZVxyXG4gICAgICAgICksXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMubXNhbERlc3Ryb3lpbmckKVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoKHN0YXR1czogSW50ZXJhY3Rpb25TdGF0dXMpID0+IHtcclxuICAgICAgICBzd2l0Y2ggKHN0YXR1cykge1xyXG4gICAgICAgICAgLyoqXHJcbiAgICAgICAgICAgKiBJbml0aWFsIHN0YXR1cyBiZWZvcmUgaW50ZXJhY3Rpb24gb2NjdXJzXHJcbiAgICAgICAgICAgKi9cclxuICAgICAgICAgIGNhc2UgSW50ZXJhY3Rpb25TdGF0dXMuU3RhcnR1cDpcclxuICAgICAgICAgICAgY29uc29sZS5sb2coYG1zYWwuYXBwOiBJbnRlcmFjdGlvblN0YXR1cy5TdGFydHVwYCk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgICAgIC8qKlxyXG4gICAgICAgICAgKiBTdGF0dXMgc2V0IHdoZW4gaW50ZXJhY3Rpb24gaXMgY29tcGxldGVcclxuICAgICAgICAgICovXHJcbiAgICAgICAgICBjYXNlIEludGVyYWN0aW9uU3RhdHVzLk5vbmU6XHJcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKGBtc2FsLmFwcDogSW50ZXJhY3Rpb25TdGF0dXMuTm9uZWApO1xyXG5cclxuICAgICAgICAgICAgTVNBTFJlZGlyZWN0LmhhbmRsZSh0aGlzLnJvdXRlciwgJ21zYWxCcm9hZGNhc3RTZXJ2aWNlLmluUHJvZ3Jlc3MkIEludGVyYWN0aW9uU3RhdHVzLk5vbmUnKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuY2hlY2tBbmRTZXRBY3RpdmVBY2NvdW50KCk7XHJcbiAgICAgICAgICAgIHRoaXMuYXBwQ29udGV4dC51cGRhdGVDdXJyZW50KCk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEFjdGl2ZUFjY291bnQoKTogQWNjb3VudEluZm8gfCBudWxsIHtcclxuICAgIHRoaXMuY2hlY2tBbmRTZXRBY3RpdmVBY2NvdW50KCk7XHJcbiAgICByZXR1cm4gdGhpcy5tc2FsU2VydmljZS5pbnN0YW5jZS5nZXRBY3RpdmVBY2NvdW50KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNoZWNrQW5kU2V0QWN0aXZlQWNjb3VudCgpIHtcclxuICAgIGxldCBhY3RpdmVBY2NvdW50ID0gdGhpcy5tc2FsU2VydmljZS5pbnN0YW5jZS5nZXRBY3RpdmVBY2NvdW50KCk7XHJcbiAgICBsZXQgYWNjb3VudHMgPSB0aGlzLm1zYWxTZXJ2aWNlLmluc3RhbmNlLmdldEFsbEFjY291bnRzKCk7XHJcblxyXG4gICAgaWYgKCFhY3RpdmVBY2NvdW50ICYmIGFjY291bnRzLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5tc2FsU2VydmljZS5pbnN0YW5jZS5zZXRBY3RpdmVBY2NvdW50KGFjY291bnRzWzBdKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNQb3B1cChwb3B1cD86IGJvb2xlYW4pIHtcclxuICAgIGlmICh0eXBlb2YgcG9wdXAgPT09IFwidW5kZWZpbmVkXCIpIHtcclxuICAgICAgcmV0dXJuIHRoaXMubXNhbEd1YXJkQ29uZmlnLmludGVyYWN0aW9uVHlwZSA9PT0gSW50ZXJhY3Rpb25UeXBlLlBvcHVwO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBwb3B1cDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYWNxdWlyZVRva2VuKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XHJcbiAgICBsZXQgcmVxdWVzdCA9IHtcclxuICAgICAgc2NvcGVzOiBNU0FMVXRpbHMuZ2V0QXBpU2NvcGVzKClcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5pc1BvcHVwKCkpIHtcclxuICAgICAgcmV0dXJuIHRoaXMubXNhbFNlcnZpY2UuYWNxdWlyZVRva2VuUG9wdXAocmVxdWVzdCkucGlwZShcclxuICAgICAgICBtYXAocmVzcG9uc2UgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHJlc3BvbnNlID8gcmVzcG9uc2UuYWNjZXNzVG9rZW4gOiBudWxsO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMubXNhbFNlcnZpY2UuYWNxdWlyZVRva2VuUmVkaXJlY3QocmVxdWVzdCkucGlwZShcclxuICAgICAgICBtYXAoKCkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldFVzZXJFbWFpbCgpIHtcclxuICAgIGxldCBjdXJyZW50VXNlciA9IHRoaXMuYXBwQ29udGV4dC5jdXJyZW50VXNlcjtcclxuICAgIGxldCBhY3RpdmVBY2NvdW50ID0gdGhpcy5nZXRBY3RpdmVBY2NvdW50KCk7XHJcblxyXG4gICAgaWYgKGFjdGl2ZUFjY291bnQpIHtcclxuICAgICAgcmV0dXJuIGFjdGl2ZUFjY291bnQudXNlcm5hbWU7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGN1cnJlbnRVc2VyID8gY3VycmVudFVzZXIuRW1haWwgOiAnJztcclxuICB9XHJcblxyXG4gIGdldFVzZXJOYW1lKCkge1xyXG4gICAgbGV0IGN1cnJlbnRVc2VyID0gdGhpcy5hcHBDb250ZXh0LmN1cnJlbnRVc2VyO1xyXG4gICAgbGV0IGFjdGl2ZUFjY291bnQgPSB0aGlzLmdldEFjdGl2ZUFjY291bnQoKTtcclxuXHJcbiAgICBpZiAoYWN0aXZlQWNjb3VudCkge1xyXG4gICAgICByZXR1cm4gYWN0aXZlQWNjb3VudC5uYW1lID8gYWN0aXZlQWNjb3VudC5uYW1lIDogY3VycmVudFVzZXIgPyBjdXJyZW50VXNlci5kaXNwbGF5TmFtZU9yRnVsbE5hbWUgOiAnJztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gY3VycmVudFVzZXIgPyBjdXJyZW50VXNlci5kaXNwbGF5TmFtZU9yRnVsbE5hbWUgOiAnJztcclxuICB9XHJcblxyXG4gIC8qXHJcbiAgICBWYWRpbU9TOlxyXG4gICAgV0FSTklORyB0byBhbGwgZGV2ZWxvcGVycyEgQmUgc3VyZSB0aGF0IHlvdSByZWFsbHkgbmVlZCB0byBkaXJlY3RseSBjYWxsIHRoaXMgbWV0aG9kIVxyXG4gICovXHJcbiAgZ2V0QWNjZXNzVG9rZW4ocmVxdWVzdFVybD86IHN0cmluZyk6IE9ic2VydmFibGU8c3RyaW5nPiB7XHJcbiAgICBsZXQgYWN0aXZlQWNjb3VudCA9IHRoaXMuZ2V0QWN0aXZlQWNjb3VudCgpO1xyXG4gICAgbGV0IHNpbGVudFJlcXVlc3Q6IFNpbGVudFJlcXVlc3QgPSB7XHJcbiAgICAgIHNjb3BlczogTVNBTFV0aWxzLmdldEFwaVNjb3BlcygpLFxyXG4gICAgICBhY2NvdW50OiBhY3RpdmVBY2NvdW50XHJcbiAgICB9O1xyXG5cclxuICAgIGlmIChhY3RpdmVBY2NvdW50KSB7XHJcbiAgICAgIHJldHVybiB0aGlzLm1zYWxTZXJ2aWNlLmFjcXVpcmVUb2tlblNpbGVudChzaWxlbnRSZXF1ZXN0KS5waXBlKFxyXG4gICAgICAgIG1hcChyZXNwb25zZSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gcmVzcG9uc2UuYWNjZXNzVG9rZW47XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgY2F0Y2hFcnJvcihlcnJvciA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZyhcIlNpbGVudCB0b2tlbiBhY3F1aXNpdGlvbiBmYWlscy5cIik7XHJcblxyXG4gICAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgSW50ZXJhY3Rpb25SZXF1aXJlZEF1dGhFcnJvcikge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5hY3F1aXJlVG9rZW4oKTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICByZXR1cm4gb2YobnVsbCk7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5hY3F1aXJlVG9rZW4oKTtcclxuICB9XHJcblxyXG4gIGZvcmNlUmVhdXRoZW50aWNhdGUoYWNjb3VudD8pIHtcclxuICAgIGlmIChNU0FMVXRpbHMuaXNCMkMoKSkge1xyXG4gICAgICBsZXQgc2lnblVwU2lnbkluRmxvd1JlcXVlc3Q6IFJlZGlyZWN0UmVxdWVzdCB8IFBvcHVwUmVxdWVzdCAgPSB7XHJcbiAgICAgICAgYXV0aG9yaXR5OiB0aGlzLnNpZ25VcFNpZ25JblBvbGljeS5hdXRob3JpdHksXHJcbiAgICAgICAgc2NvcGVzOiBbXSxcclxuICAgICAgICBwcm9tcHQ6IFByb21wdFZhbHVlLkxPR0lOLCAvLyBmb3JjZSB1c2VyIHRvIHJlYXV0aGVudGljYXRlIHdpdGggdGhlaXIgbmV3IHBhc3N3b3JkXHJcbiAgICAgICAgYWNjb3VudDogYWNjb3VudFxyXG4gICAgICB9O1xyXG5cclxuICAgICAgdGhpcy5sb2dpbihzaWduVXBTaWduSW5GbG93UmVxdWVzdCk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGxvZ2luKHVzZXJGbG93UmVxdWVzdD86IFJlZGlyZWN0UmVxdWVzdCB8IFBvcHVwUmVxdWVzdCwgcG9wdXA/OiBib29sZWFuKSB7XHJcbiAgICBsZXQgYXV0aFJlcXVlc3RDZmc6IGFueSA9IHRoaXMubXNhbEd1YXJkQ29uZmlnLmF1dGhSZXF1ZXN0O1xyXG4gICAgbGV0IGF1dGhSZXF1ZXN0ID0gbnVsbDtcclxuXHJcbiAgICBpZiAoIXVzZXJGbG93UmVxdWVzdCkge1xyXG4gICAgICBsZXQgc2lnblVwU2lnbkluRmxvd1JlcXVlc3Q6IFJlZGlyZWN0UmVxdWVzdCB8IFBvcHVwUmVxdWVzdCAgPSB7XHJcbiAgICAgICAgYXV0aG9yaXR5OiB0aGlzLnNpZ25VcFNpZ25JblBvbGljeS5hdXRob3JpdHksXHJcbiAgICAgICAgc2NvcGVzOiBbXVxyXG4gICAgICB9O1xyXG5cclxuICAgICAgdXNlckZsb3dSZXF1ZXN0ID0gc2lnblVwU2lnbkluRmxvd1JlcXVlc3Q7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGF1dGhSZXF1ZXN0Q2ZnKSB7XHJcbiAgICAgIGF1dGhSZXF1ZXN0ID0gYXV0aFJlcXVlc3RDZmcodGhpcy5tc2FsU2VydmljZSwgdGhpcy5yb3V0ZXIucm91dGVyU3RhdGUuc25hcHNob3QpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmlzUG9wdXAocG9wdXApKSB7XHJcbiAgICAgIGlmIChhdXRoUmVxdWVzdCkge1xyXG4gICAgICAgIHRoaXMubXNhbFNlcnZpY2UubG9naW5Qb3B1cCh7IC4uLmF1dGhSZXF1ZXN0LCAuLi51c2VyRmxvd1JlcXVlc3QgfSBhcyBQb3B1cFJlcXVlc3QpLnN1YnNjcmliZSgocmVzcG9uc2U6IEF1dGhlbnRpY2F0aW9uUmVzdWx0KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLm1zYWxTZXJ2aWNlLmluc3RhbmNlLnNldEFjdGl2ZUFjY291bnQocmVzcG9uc2UuYWNjb3VudCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdGhpcy5tc2FsU2VydmljZS5sb2dpblBvcHVwKHVzZXJGbG93UmVxdWVzdCkuc3Vic2NyaWJlKChyZXNwb25zZTogQXV0aGVudGljYXRpb25SZXN1bHQpID0+IHtcclxuICAgICAgICAgIHRoaXMubXNhbFNlcnZpY2UuaW5zdGFuY2Uuc2V0QWN0aXZlQWNjb3VudChyZXNwb25zZS5hY2NvdW50KTtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIGlmIChhdXRoUmVxdWVzdCkge1xyXG4gICAgICAgIHRoaXMubXNhbFNlcnZpY2UubG9naW5SZWRpcmVjdCh7IC4uLmF1dGhSZXF1ZXN0LCAuLi51c2VyRmxvd1JlcXVlc3QgfSBhcyBSZWRpcmVjdFJlcXVlc3QpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMubXNhbFNlcnZpY2UubG9naW5SZWRpcmVjdCh1c2VyRmxvd1JlcXVlc3QpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBsb2dvdXQocG9wdXA/OiBib29sZWFuKSB7XHJcbiAgICBsZXQgYWN0aXZlQWNjb3VudCA9IHRoaXMuZ2V0QWN0aXZlQWNjb3VudCgpO1xyXG5cclxuICAgIGlmICh0aGlzLmlzUG9wdXAocG9wdXApKSB7XHJcbiAgICAgIGlmIChhY3RpdmVBY2NvdW50KSB7XHJcbiAgICAgICAgdGhpcy5tc2FsU2VydmljZS5sb2dvdXRQb3B1cCh7IGFjY291bnQ6IGFjdGl2ZUFjY291bnQsIG1haW5XaW5kb3dSZWRpcmVjdFVyaTogXCIvXCIgfSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICB0aGlzLm1zYWxTZXJ2aWNlLmxvZ291dFBvcHVwKHsgbWFpbldpbmRvd1JlZGlyZWN0VXJpOiBcIi9cIiB9KS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIH0pO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgaWYgKGFjdGl2ZUFjY291bnQpIHtcclxuICAgICAgICB0aGlzLm1zYWxTZXJ2aWNlLmxvZ291dFJlZGlyZWN0KHsgYWNjb3VudDogYWN0aXZlQWNjb3VudCB9KTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICB0aGlzLm1zYWxTZXJ2aWNlLmxvZ291dFJlZGlyZWN0KCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIGlzVXNlckF1dGhlbnRpY2F0ZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5tc2FsU2VydmljZS5pbnN0YW5jZS5nZXRBY3RpdmVBY2NvdW50KCkgIT0gbnVsbDtcclxuICB9XHJcblxyXG4gIGlzVXNlclNpZ25lZEluKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKCF0aGlzLmlzVXNlckF1dGhlbnRpY2F0ZWQoKSkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuYXBwQ29udGV4dC5jdXJyZW50LmlzVXNlclNpZ25lZEluICYmIHRoaXMuYXBwQ29udGV4dC5jdXJyZW50VXNlcikge1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBpc1VzZXJBZG1pbigpOiBib29sZWFuIHtcclxuICAgIGlmICghdGhpcy5pc1VzZXJTaWduZWRJbigpKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5hcHBDb250ZXh0LmN1cnJlbnQuaXNVc2VyQWRtaW47XHJcbiAgfVxyXG5cclxuICAvL0IyQ1xyXG4gIHNpZ25VcCgpIHtcclxuICAgIGlmICghTVNBTFV0aWxzLmlzQjJDKCkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBzaWduVXBGbG93UmVxdWVzdDogUmVkaXJlY3RSZXF1ZXN0IHwgUG9wdXBSZXF1ZXN0ICA9IHtcclxuICAgICAgYXV0aG9yaXR5OiB0aGlzLnNpZ25VcFBvbGljeS5hdXRob3JpdHksXHJcbiAgICAgIHNjb3BlczogW11cclxuICAgIH07XHJcblxyXG4gICAgdGhpcy5sb2dpbihzaWduVXBGbG93UmVxdWVzdCk7XHJcbiAgfVxyXG5cclxuICBlZGl0UHJvZmlsZSgpIHtcclxuICAgIGlmICghTVNBTFV0aWxzLmlzQjJDKCkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGxldCBlZGl0UHJvZmlsZUZsb3dSZXF1ZXN0OiBSZWRpcmVjdFJlcXVlc3QgfCBQb3B1cFJlcXVlc3QgID0ge1xyXG4gICAgICBhdXRob3JpdHk6IHRoaXMuZWRpdFByb2ZpbGVQb2xpY3kuYXV0aG9yaXR5LFxyXG4gICAgICBzY29wZXM6IFtdXHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMubG9naW4oZWRpdFByb2ZpbGVGbG93UmVxdWVzdCk7XHJcbiAgfVxyXG5cclxuICByZXNldFBhc3N3b3JkKCkge1xyXG4gICAgaWYgKCFNU0FMVXRpbHMuaXNCMkMoKSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IHJlc2V0UGFzc3dvcmRGbG93UmVxdWVzdDogUmVkaXJlY3RSZXF1ZXN0IHwgUG9wdXBSZXF1ZXN0ICA9IHtcclxuICAgICAgYXV0aG9yaXR5OiB0aGlzLnJlc2V0UGFzc3dvcmRQb2xpY3kuYXV0aG9yaXR5LFxyXG4gICAgICBzY29wZXM6IFtdXHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMubG9naW4ocmVzZXRQYXNzd29yZEZsb3dSZXF1ZXN0KTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -18,24 +18,35 @@ import { Component } from "@angular/core";
|
|
|
18
18
|
//App
|
|
19
19
|
import { BaseComponent } from "../base/base.component";
|
|
20
20
|
import * as i0 from "@angular/core";
|
|
21
|
-
import * as i1 from "@angular/
|
|
21
|
+
import * as i1 from "@angular/common";
|
|
22
|
+
import * as i2 from "@angular/router";
|
|
23
|
+
function SignInButtonComponent_span_4_Template(rf, ctx) { if (rf & 1) {
|
|
24
|
+
i0.ɵɵelementStart(0, "span");
|
|
25
|
+
i0.ɵɵtext(1, "Sign In");
|
|
26
|
+
i0.ɵɵelementEnd();
|
|
27
|
+
} }
|
|
22
28
|
const _c0 = ["*"];
|
|
23
29
|
export class SignInButtonComponent extends BaseComponent {
|
|
24
30
|
constructor() {
|
|
25
31
|
super();
|
|
26
32
|
}
|
|
27
33
|
static ɵfac = function SignInButtonComponent_Factory(t) { return new (t || SignInButtonComponent)(); };
|
|
28
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SignInButtonComponent, selectors: [["anatoly-signin-button"]], features: [i0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c0, decls:
|
|
34
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SignInButtonComponent, selectors: [["anatoly-signin-button"]], features: [i0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c0, decls: 5, vars: 4, consts: [["routerLink", "iam/signin"], ["ref", ""], [4, "ngIf"]], template: function SignInButtonComponent_Template(rf, ctx) { if (rf & 1) {
|
|
29
35
|
i0.ɵɵprojectionDef();
|
|
30
|
-
i0.ɵɵelementStart(0, "a", 0);
|
|
31
|
-
i0.ɵɵprojection(
|
|
36
|
+
i0.ɵɵelementStart(0, "a", 0)(1, "span", null, 1);
|
|
37
|
+
i0.ɵɵprojection(3);
|
|
38
|
+
i0.ɵɵelementEnd();
|
|
39
|
+
i0.ɵɵtemplate(4, SignInButtonComponent_span_4_Template, 2, 0, "span", 2);
|
|
32
40
|
i0.ɵɵelementEnd();
|
|
33
41
|
} if (rf & 2) {
|
|
42
|
+
const _r0 = i0.ɵɵreference(2);
|
|
34
43
|
i0.ɵɵclassMap(ctx.classes);
|
|
35
|
-
|
|
44
|
+
i0.ɵɵadvance(4);
|
|
45
|
+
i0.ɵɵproperty("ngIf", !_r0.innerHTML.trim());
|
|
46
|
+
} }, dependencies: [i1.NgIf, i2.RouterLink], encapsulation: 2 });
|
|
36
47
|
}
|
|
37
48
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SignInButtonComponent, [{
|
|
38
49
|
type: Component,
|
|
39
|
-
args: [{ selector: "anatoly-signin-button", template: "<a routerLink=\"iam/signin\" class=\"{{ classes }}\">\r\n <ng-content></ng-content>\r\n</a>\r\n" }]
|
|
50
|
+
args: [{ selector: "anatoly-signin-button", template: "<a routerLink=\"iam/signin\" class=\"{{ classes }}\">\r\n <span #ref><ng-content></ng-content></span>\r\n <span *ngIf=\"!ref.innerHTML.trim()\">Sign In</span>\r\n</a>\r\n" }]
|
|
40
51
|
}], function () { return []; }, null); })();
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmluLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvdWkvY29tcG9uZW50cy9pZGVudGl0eS9zaWduaW4tYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuYXRvbHkvc3JjL2xpYi91aS9jb21wb25lbnRzL2lkZW50aXR5L3NpZ25pbi1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0VBY0U7QUFFRixNQUFNO0FBQ04sT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxQyxLQUFLO0FBQ0wsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7OztJQ2xCckQsNEJBQW9DO0lBQUEsdUJBQU87SUFBQSxpQkFBTzs7O0FEd0JwRCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsYUFBYTtJQUN0RDtRQUNFLEtBQUssRUFBRSxDQUFBO0lBQ1QsQ0FBQzsrRUFIVSxxQkFBcUI7NkRBQXJCLHFCQUFxQjs7WUMxQmxDLDRCQUFpRCxvQkFBQTtZQUNwQyxrQkFBeUI7WUFBQSxpQkFBTztZQUMzQyx3RUFBa0Q7WUFDcEQsaUJBQUk7OztZQUh1QiwwQkFBcUI7WUFFdkMsZUFBMkI7WUFBM0IsNENBQTJCOzs7dUZEd0J2QixxQkFBcUI7Y0FKakMsU0FBUzsyQkFDRSx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG48ZmlsZT5cclxuICBQcm9qZWN0OlxyXG4gICAgQG9zb3ZpdG55L2FuYXRvbHlcclxuXHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55IHZhZGltQG9zb3ZpdG55LmNvbVxyXG4gICAgQW5hdG9seSBPc292aXRueSBhbmF0b2x5QG9zb3ZpdG55LmNvbVxyXG5cclxuICBDcmVhdGVkOlxyXG4gICAgNCBKdWwgMjAxOFxyXG5cclxuICBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMiBPc292aXRueSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbi8vTm9kZVxyXG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuLy9BcHBcclxuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gXCIuLi9iYXNlL2Jhc2UuY29tcG9uZW50XCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJhbmF0b2x5LXNpZ25pbi1idXR0b25cIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL3NpZ25pbi1idXR0b24uY29tcG9uZW50Lmh0bWxcIixcclxufSlcclxuZXhwb3J0IGNsYXNzIFNpZ25JbkJ1dHRvbkNvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQge1xyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgc3VwZXIoKVxyXG4gIH1cclxufVxyXG4iLCI8YSByb3V0ZXJMaW5rPVwiaWFtL3NpZ25pblwiIGNsYXNzPVwie3sgY2xhc3NlcyB9fVwiPlxyXG4gIDxzcGFuICNyZWY+PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50Pjwvc3Bhbj5cclxuICA8c3BhbiAqbmdJZj1cIiFyZWYuaW5uZXJIVE1MLnRyaW0oKVwiPlNpZ24gSW48L3NwYW4+XHJcbjwvYT5cclxuIl19
|
|
@@ -18,24 +18,35 @@ import { Component } from "@angular/core";
|
|
|
18
18
|
//App
|
|
19
19
|
import { BaseComponent } from "../base/base.component";
|
|
20
20
|
import * as i0 from "@angular/core";
|
|
21
|
-
import * as i1 from "@angular/
|
|
21
|
+
import * as i1 from "@angular/common";
|
|
22
|
+
import * as i2 from "@angular/router";
|
|
23
|
+
function SignOutButtonComponent_span_4_Template(rf, ctx) { if (rf & 1) {
|
|
24
|
+
i0.ɵɵelementStart(0, "span");
|
|
25
|
+
i0.ɵɵtext(1, "Sign Out");
|
|
26
|
+
i0.ɵɵelementEnd();
|
|
27
|
+
} }
|
|
22
28
|
const _c0 = ["*"];
|
|
23
29
|
export class SignOutButtonComponent extends BaseComponent {
|
|
24
30
|
constructor() {
|
|
25
31
|
super();
|
|
26
32
|
}
|
|
27
33
|
static ɵfac = function SignOutButtonComponent_Factory(t) { return new (t || SignOutButtonComponent)(); };
|
|
28
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SignOutButtonComponent, selectors: [["anatoly-signout-button"]], features: [i0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c0, decls:
|
|
34
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SignOutButtonComponent, selectors: [["anatoly-signout-button"]], features: [i0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c0, decls: 5, vars: 4, consts: [["routerLink", "iam/signout"], ["ref", ""], [4, "ngIf"]], template: function SignOutButtonComponent_Template(rf, ctx) { if (rf & 1) {
|
|
29
35
|
i0.ɵɵprojectionDef();
|
|
30
|
-
i0.ɵɵelementStart(0, "a", 0);
|
|
31
|
-
i0.ɵɵprojection(
|
|
36
|
+
i0.ɵɵelementStart(0, "a", 0)(1, "span", null, 1);
|
|
37
|
+
i0.ɵɵprojection(3);
|
|
38
|
+
i0.ɵɵelementEnd();
|
|
39
|
+
i0.ɵɵtemplate(4, SignOutButtonComponent_span_4_Template, 2, 0, "span", 2);
|
|
32
40
|
i0.ɵɵelementEnd();
|
|
33
41
|
} if (rf & 2) {
|
|
42
|
+
const _r0 = i0.ɵɵreference(2);
|
|
34
43
|
i0.ɵɵclassMap(ctx.classes);
|
|
35
|
-
|
|
44
|
+
i0.ɵɵadvance(4);
|
|
45
|
+
i0.ɵɵproperty("ngIf", !_r0.innerHTML.trim());
|
|
46
|
+
} }, dependencies: [i1.NgIf, i2.RouterLink], encapsulation: 2 });
|
|
36
47
|
}
|
|
37
48
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SignOutButtonComponent, [{
|
|
38
49
|
type: Component,
|
|
39
|
-
args: [{ selector: "anatoly-signout-button", template: "<a routerLink=\"iam/signout\" class=\"{{ classes }}\">\r\n <ng-content></ng-content>\r\n</a>\r\n" }]
|
|
50
|
+
args: [{ selector: "anatoly-signout-button", template: "<a routerLink=\"iam/signout\" class=\"{{ classes }}\">\r\n <span #ref><ng-content></ng-content></span>\r\n <span *ngIf=\"!ref.innerHTML.trim()\">Sign Out</span>\r\n</a>\r\n" }]
|
|
40
51
|
}], function () { return []; }, null); })();
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbm91dC1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL3VpL2NvbXBvbmVudHMvaWRlbnRpdHkvc2lnbm91dC1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5hdG9seS9zcmMvbGliL3VpL2NvbXBvbmVudHMvaWRlbnRpdHkvc2lnbm91dC1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0VBY0U7QUFFRixNQUFNO0FBQ04sT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxQyxLQUFLO0FBQ0wsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7OztJQ2xCckQsNEJBQW9DO0lBQUEsd0JBQVE7SUFBQSxpQkFBTzs7O0FEd0JyRCxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsYUFBYTtJQUN2RDtRQUNFLEtBQUssRUFBRSxDQUFBO0lBQ1QsQ0FBQztnRkFIVSxzQkFBc0I7NkRBQXRCLHNCQUFzQjs7WUMxQm5DLDRCQUFrRCxvQkFBQTtZQUNyQyxrQkFBeUI7WUFBQSxpQkFBTztZQUMzQyx5RUFBbUQ7WUFDckQsaUJBQUk7OztZQUh3QiwwQkFBcUI7WUFFeEMsZUFBMkI7WUFBM0IsNENBQTJCOzs7dUZEd0J2QixzQkFBc0I7Y0FKbEMsU0FBUzsyQkFDRSx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG48ZmlsZT5cclxuICBQcm9qZWN0OlxyXG4gICAgQG9zb3ZpdG55L2FuYXRvbHlcclxuXHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55IHZhZGltQG9zb3ZpdG55LmNvbVxyXG4gICAgQW5hdG9seSBPc292aXRueSBhbmF0b2x5QG9zb3ZpdG55LmNvbVxyXG5cclxuICBDcmVhdGVkOlxyXG4gICAgNCBKdWwgMjAxOFxyXG5cclxuICBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMiBPc292aXRueSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbi8vTm9kZVxyXG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuLy9BcHBcclxuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gXCIuLi9iYXNlL2Jhc2UuY29tcG9uZW50XCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJhbmF0b2x5LXNpZ25vdXQtYnV0dG9uXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9zaWdub3V0LWJ1dHRvbi5jb21wb25lbnQuaHRtbFwiLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2lnbk91dEJ1dHRvbkNvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQge1xyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgc3VwZXIoKVxyXG4gIH1cclxufVxyXG4iLCI8YSByb3V0ZXJMaW5rPVwiaWFtL3NpZ25vdXRcIiBjbGFzcz1cInt7IGNsYXNzZXMgfX1cIj5cclxuICA8c3BhbiAjcmVmPjxuZy1jb250ZW50PjwvbmctY29udGVudD48L3NwYW4+XHJcbiAgPHNwYW4gKm5nSWY9XCIhcmVmLmlubmVySFRNTC50cmltKClcIj5TaWduIE91dDwvc3Bhbj5cclxuPC9hPlxyXG4iXX0=
|
|
@@ -18,24 +18,35 @@ import { Component } from "@angular/core";
|
|
|
18
18
|
//App
|
|
19
19
|
import { BaseComponent } from "../base/base.component";
|
|
20
20
|
import * as i0 from "@angular/core";
|
|
21
|
-
import * as i1 from "@angular/
|
|
21
|
+
import * as i1 from "@angular/common";
|
|
22
|
+
import * as i2 from "@angular/router";
|
|
23
|
+
function SignUpButtonComponent_span_4_Template(rf, ctx) { if (rf & 1) {
|
|
24
|
+
i0.ɵɵelementStart(0, "span");
|
|
25
|
+
i0.ɵɵtext(1, "Sign Up");
|
|
26
|
+
i0.ɵɵelementEnd();
|
|
27
|
+
} }
|
|
22
28
|
const _c0 = ["*"];
|
|
23
29
|
export class SignUpButtonComponent extends BaseComponent {
|
|
24
30
|
constructor() {
|
|
25
31
|
super();
|
|
26
32
|
}
|
|
27
33
|
static ɵfac = function SignUpButtonComponent_Factory(t) { return new (t || SignUpButtonComponent)(); };
|
|
28
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SignUpButtonComponent, selectors: [["anatoly-signup-button"]], features: [i0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c0, decls:
|
|
34
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SignUpButtonComponent, selectors: [["anatoly-signup-button"]], features: [i0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c0, decls: 5, vars: 4, consts: [["routerLink", "iam/signup"], ["ref", ""], [4, "ngIf"]], template: function SignUpButtonComponent_Template(rf, ctx) { if (rf & 1) {
|
|
29
35
|
i0.ɵɵprojectionDef();
|
|
30
|
-
i0.ɵɵelementStart(0, "a", 0);
|
|
31
|
-
i0.ɵɵprojection(
|
|
36
|
+
i0.ɵɵelementStart(0, "a", 0)(1, "span", null, 1);
|
|
37
|
+
i0.ɵɵprojection(3);
|
|
38
|
+
i0.ɵɵelementEnd();
|
|
39
|
+
i0.ɵɵtemplate(4, SignUpButtonComponent_span_4_Template, 2, 0, "span", 2);
|
|
32
40
|
i0.ɵɵelementEnd();
|
|
33
41
|
} if (rf & 2) {
|
|
42
|
+
const _r0 = i0.ɵɵreference(2);
|
|
34
43
|
i0.ɵɵclassMap(ctx.classes);
|
|
35
|
-
|
|
44
|
+
i0.ɵɵadvance(4);
|
|
45
|
+
i0.ɵɵproperty("ngIf", !_r0.innerHTML.trim());
|
|
46
|
+
} }, dependencies: [i1.NgIf, i2.RouterLink], encapsulation: 2 });
|
|
36
47
|
}
|
|
37
48
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SignUpButtonComponent, [{
|
|
38
49
|
type: Component,
|
|
39
|
-
args: [{ selector: "anatoly-signup-button", template: "<a routerLink=\"iam/signup\" class=\"{{ classes }}\">\r\n <ng-content></ng-content>\r\n</a>\r\n" }]
|
|
50
|
+
args: [{ selector: "anatoly-signup-button", template: "<a routerLink=\"iam/signup\" class=\"{{ classes }}\">\r\n <span #ref><ng-content></ng-content></span>\r\n <span *ngIf=\"!ref.innerHTML.trim()\">Sign Up</span>\r\n</a>\r\n" }]
|
|
40
51
|
}], function () { return []; }, null); })();
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbnVwLWJ1dHRvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmF0b2x5L3NyYy9saWIvdWkvY29tcG9uZW50cy9pZGVudGl0eS9zaWdudXAtYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuYXRvbHkvc3JjL2xpYi91aS9jb21wb25lbnRzL2lkZW50aXR5L3NpZ251cC1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0VBY0U7QUFFRixNQUFNO0FBQ04sT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxQyxLQUFLO0FBQ0wsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7OztJQ2xCckQsNEJBQW9DO0lBQUEsdUJBQU87SUFBQSxpQkFBTzs7O0FEd0JwRCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsYUFBYTtJQUN0RDtRQUNFLEtBQUssRUFBRSxDQUFBO0lBQ1QsQ0FBQzsrRUFIVSxxQkFBcUI7NkRBQXJCLHFCQUFxQjs7WUMxQmxDLDRCQUFpRCxvQkFBQTtZQUNwQyxrQkFBeUI7WUFBQSxpQkFBTztZQUMzQyx3RUFBa0Q7WUFDcEQsaUJBQUk7OztZQUh1QiwwQkFBcUI7WUFFdkMsZUFBMkI7WUFBM0IsNENBQTJCOzs7dUZEd0J2QixxQkFBcUI7Y0FKakMsU0FBUzsyQkFDRSx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG48ZmlsZT5cclxuICBQcm9qZWN0OlxyXG4gICAgQG9zb3ZpdG55L2FuYXRvbHlcclxuXHJcbiAgQXV0aG9yczpcclxuICAgIFZhZGltIE9zb3ZpdG55IHZhZGltQG9zb3ZpdG55LmNvbVxyXG4gICAgQW5hdG9seSBPc292aXRueSBhbmF0b2x5QG9zb3ZpdG55LmNvbVxyXG5cclxuICBDcmVhdGVkOlxyXG4gICAgNCBKdWwgMjAxOFxyXG5cclxuICBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMiBPc292aXRueSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXHJcbjwvZmlsZT5cclxuKi9cclxuXHJcbi8vTm9kZVxyXG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuLy9BcHBcclxuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gXCIuLi9iYXNlL2Jhc2UuY29tcG9uZW50XCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJhbmF0b2x5LXNpZ251cC1idXR0b25cIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL3NpZ251cC1idXR0b24uY29tcG9uZW50Lmh0bWxcIixcclxufSlcclxuZXhwb3J0IGNsYXNzIFNpZ25VcEJ1dHRvbkNvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQge1xyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgc3VwZXIoKVxyXG4gIH1cclxufVxyXG4iLCI8YSByb3V0ZXJMaW5rPVwiaWFtL3NpZ251cFwiIGNsYXNzPVwie3sgY2xhc3NlcyB9fVwiPlxyXG4gIDxzcGFuICNyZWY+PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50Pjwvc3Bhbj5cclxuICA8c3BhbiAqbmdJZj1cIiFyZWYuaW5uZXJIVE1MLnRyaW0oKVwiPlNpZ24gVXA8L3NwYW4+XHJcbjwvYT5cclxuIl19
|
|
@@ -933,8 +933,7 @@ class AuthService extends ApiServiceBase {
|
|
|
933
933
|
* To learn more about B2C tokens, visit https://docs.microsoft.com/en-us/azure/active-directory-b2c/tokens-overview
|
|
934
934
|
*/
|
|
935
935
|
if (token.acr === this.editProfilePolicy.name || token.tfp === this.editProfilePolicy.name) {
|
|
936
|
-
const signInAccount = this.msalService.instance.getAllAccounts()
|
|
937
|
-
.find((account) => account.idTokenClaims?.oid === token.oid &&
|
|
936
|
+
const signInAccount = this.msalService.instance.getAllAccounts().find((account) => account.idTokenClaims?.oid === token.oid &&
|
|
938
937
|
account.idTokenClaims?.sub === token.sub &&
|
|
939
938
|
(account.idTokenClaims.acr === this.signUpSignInPolicy.name ||
|
|
940
939
|
account.idTokenClaims.tfp === this.signUpSignInPolicy.name));
|
|
@@ -1052,9 +1051,8 @@ class AuthService extends ApiServiceBase {
|
|
|
1052
1051
|
}
|
|
1053
1052
|
forceReauthenticate(account) {
|
|
1054
1053
|
if (MSALUtils.isB2C()) {
|
|
1055
|
-
let signUpSignIn = MSALB2C.getPolicyByType(PolicyType.signUpSignIn);
|
|
1056
1054
|
let signUpSignInFlowRequest = {
|
|
1057
|
-
authority:
|
|
1055
|
+
authority: this.signUpSignInPolicy.authority,
|
|
1058
1056
|
scopes: [],
|
|
1059
1057
|
prompt: PromptValue.LOGIN,
|
|
1060
1058
|
account: account
|
|
@@ -1067,6 +1065,13 @@ class AuthService extends ApiServiceBase {
|
|
|
1067
1065
|
login(userFlowRequest, popup) {
|
|
1068
1066
|
let authRequestCfg = this.msalGuardConfig.authRequest;
|
|
1069
1067
|
let authRequest = null;
|
|
1068
|
+
if (!userFlowRequest) {
|
|
1069
|
+
let signUpSignInFlowRequest = {
|
|
1070
|
+
authority: this.signUpSignInPolicy.authority,
|
|
1071
|
+
scopes: []
|
|
1072
|
+
};
|
|
1073
|
+
userFlowRequest = signUpSignInFlowRequest;
|
|
1074
|
+
}
|
|
1070
1075
|
if (authRequestCfg) {
|
|
1071
1076
|
authRequest = authRequestCfg(this.msalService, this.router.routerState.snapshot);
|
|
1072
1077
|
}
|
|
@@ -3227,24 +3232,34 @@ class BaseComponent {
|
|
|
3227
3232
|
</file>
|
|
3228
3233
|
*/
|
|
3229
3234
|
//Node
|
|
3235
|
+
function SignUpButtonComponent_span_4_Template(rf, ctx) { if (rf & 1) {
|
|
3236
|
+
i0.ɵɵelementStart(0, "span");
|
|
3237
|
+
i0.ɵɵtext(1, "Sign Up");
|
|
3238
|
+
i0.ɵɵelementEnd();
|
|
3239
|
+
} }
|
|
3230
3240
|
const _c0$e = ["*"];
|
|
3231
3241
|
class SignUpButtonComponent extends BaseComponent {
|
|
3232
3242
|
constructor() {
|
|
3233
3243
|
super();
|
|
3234
3244
|
}
|
|
3235
3245
|
static ɵfac = function SignUpButtonComponent_Factory(t) { return new (t || SignUpButtonComponent)(); };
|
|
3236
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SignUpButtonComponent, selectors: [["anatoly-signup-button"]], features: [i0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c0$e, decls:
|
|
3246
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SignUpButtonComponent, selectors: [["anatoly-signup-button"]], features: [i0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c0$e, decls: 5, vars: 4, consts: [["routerLink", "iam/signup"], ["ref", ""], [4, "ngIf"]], template: function SignUpButtonComponent_Template(rf, ctx) { if (rf & 1) {
|
|
3237
3247
|
i0.ɵɵprojectionDef();
|
|
3238
|
-
i0.ɵɵelementStart(0, "a", 0);
|
|
3239
|
-
i0.ɵɵprojection(
|
|
3248
|
+
i0.ɵɵelementStart(0, "a", 0)(1, "span", null, 1);
|
|
3249
|
+
i0.ɵɵprojection(3);
|
|
3250
|
+
i0.ɵɵelementEnd();
|
|
3251
|
+
i0.ɵɵtemplate(4, SignUpButtonComponent_span_4_Template, 2, 0, "span", 2);
|
|
3240
3252
|
i0.ɵɵelementEnd();
|
|
3241
3253
|
} if (rf & 2) {
|
|
3254
|
+
const _r0 = i0.ɵɵreference(2);
|
|
3242
3255
|
i0.ɵɵclassMap(ctx.classes);
|
|
3243
|
-
|
|
3256
|
+
i0.ɵɵadvance(4);
|
|
3257
|
+
i0.ɵɵproperty("ngIf", !_r0.innerHTML.trim());
|
|
3258
|
+
} }, dependencies: [i1$2.NgIf, i1.RouterLink], encapsulation: 2 });
|
|
3244
3259
|
}
|
|
3245
3260
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SignUpButtonComponent, [{
|
|
3246
3261
|
type: Component,
|
|
3247
|
-
args: [{ selector: "anatoly-signup-button", template: "<a routerLink=\"iam/signup\" class=\"{{ classes }}\">\r\n <ng-content></ng-content>\r\n</a>\r\n" }]
|
|
3262
|
+
args: [{ selector: "anatoly-signup-button", template: "<a routerLink=\"iam/signup\" class=\"{{ classes }}\">\r\n <span #ref><ng-content></ng-content></span>\r\n <span *ngIf=\"!ref.innerHTML.trim()\">Sign Up</span>\r\n</a>\r\n" }]
|
|
3248
3263
|
}], function () { return []; }, null); })();
|
|
3249
3264
|
|
|
3250
3265
|
/*
|
|
@@ -3614,24 +3629,34 @@ class DatapagerComponent {
|
|
|
3614
3629
|
</file>
|
|
3615
3630
|
*/
|
|
3616
3631
|
//Node
|
|
3632
|
+
function SignInButtonComponent_span_4_Template(rf, ctx) { if (rf & 1) {
|
|
3633
|
+
i0.ɵɵelementStart(0, "span");
|
|
3634
|
+
i0.ɵɵtext(1, "Sign In");
|
|
3635
|
+
i0.ɵɵelementEnd();
|
|
3636
|
+
} }
|
|
3617
3637
|
const _c0$c = ["*"];
|
|
3618
3638
|
class SignInButtonComponent extends BaseComponent {
|
|
3619
3639
|
constructor() {
|
|
3620
3640
|
super();
|
|
3621
3641
|
}
|
|
3622
3642
|
static ɵfac = function SignInButtonComponent_Factory(t) { return new (t || SignInButtonComponent)(); };
|
|
3623
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SignInButtonComponent, selectors: [["anatoly-signin-button"]], features: [i0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c0$c, decls:
|
|
3643
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SignInButtonComponent, selectors: [["anatoly-signin-button"]], features: [i0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c0$c, decls: 5, vars: 4, consts: [["routerLink", "iam/signin"], ["ref", ""], [4, "ngIf"]], template: function SignInButtonComponent_Template(rf, ctx) { if (rf & 1) {
|
|
3624
3644
|
i0.ɵɵprojectionDef();
|
|
3625
|
-
i0.ɵɵelementStart(0, "a", 0);
|
|
3626
|
-
i0.ɵɵprojection(
|
|
3645
|
+
i0.ɵɵelementStart(0, "a", 0)(1, "span", null, 1);
|
|
3646
|
+
i0.ɵɵprojection(3);
|
|
3647
|
+
i0.ɵɵelementEnd();
|
|
3648
|
+
i0.ɵɵtemplate(4, SignInButtonComponent_span_4_Template, 2, 0, "span", 2);
|
|
3627
3649
|
i0.ɵɵelementEnd();
|
|
3628
3650
|
} if (rf & 2) {
|
|
3651
|
+
const _r0 = i0.ɵɵreference(2);
|
|
3629
3652
|
i0.ɵɵclassMap(ctx.classes);
|
|
3630
|
-
|
|
3653
|
+
i0.ɵɵadvance(4);
|
|
3654
|
+
i0.ɵɵproperty("ngIf", !_r0.innerHTML.trim());
|
|
3655
|
+
} }, dependencies: [i1$2.NgIf, i1.RouterLink], encapsulation: 2 });
|
|
3631
3656
|
}
|
|
3632
3657
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SignInButtonComponent, [{
|
|
3633
3658
|
type: Component,
|
|
3634
|
-
args: [{ selector: "anatoly-signin-button", template: "<a routerLink=\"iam/signin\" class=\"{{ classes }}\">\r\n <ng-content></ng-content>\r\n</a>\r\n" }]
|
|
3659
|
+
args: [{ selector: "anatoly-signin-button", template: "<a routerLink=\"iam/signin\" class=\"{{ classes }}\">\r\n <span #ref><ng-content></ng-content></span>\r\n <span *ngIf=\"!ref.innerHTML.trim()\">Sign In</span>\r\n</a>\r\n" }]
|
|
3635
3660
|
}], function () { return []; }, null); })();
|
|
3636
3661
|
|
|
3637
3662
|
/*
|
|
@@ -3650,24 +3675,34 @@ class SignInButtonComponent extends BaseComponent {
|
|
|
3650
3675
|
</file>
|
|
3651
3676
|
*/
|
|
3652
3677
|
//Node
|
|
3678
|
+
function SignOutButtonComponent_span_4_Template(rf, ctx) { if (rf & 1) {
|
|
3679
|
+
i0.ɵɵelementStart(0, "span");
|
|
3680
|
+
i0.ɵɵtext(1, "Sign Out");
|
|
3681
|
+
i0.ɵɵelementEnd();
|
|
3682
|
+
} }
|
|
3653
3683
|
const _c0$b = ["*"];
|
|
3654
3684
|
class SignOutButtonComponent extends BaseComponent {
|
|
3655
3685
|
constructor() {
|
|
3656
3686
|
super();
|
|
3657
3687
|
}
|
|
3658
3688
|
static ɵfac = function SignOutButtonComponent_Factory(t) { return new (t || SignOutButtonComponent)(); };
|
|
3659
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SignOutButtonComponent, selectors: [["anatoly-signout-button"]], features: [i0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c0$b, decls:
|
|
3689
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SignOutButtonComponent, selectors: [["anatoly-signout-button"]], features: [i0.ɵɵInheritDefinitionFeature], ngContentSelectors: _c0$b, decls: 5, vars: 4, consts: [["routerLink", "iam/signout"], ["ref", ""], [4, "ngIf"]], template: function SignOutButtonComponent_Template(rf, ctx) { if (rf & 1) {
|
|
3660
3690
|
i0.ɵɵprojectionDef();
|
|
3661
|
-
i0.ɵɵelementStart(0, "a", 0);
|
|
3662
|
-
i0.ɵɵprojection(
|
|
3691
|
+
i0.ɵɵelementStart(0, "a", 0)(1, "span", null, 1);
|
|
3692
|
+
i0.ɵɵprojection(3);
|
|
3693
|
+
i0.ɵɵelementEnd();
|
|
3694
|
+
i0.ɵɵtemplate(4, SignOutButtonComponent_span_4_Template, 2, 0, "span", 2);
|
|
3663
3695
|
i0.ɵɵelementEnd();
|
|
3664
3696
|
} if (rf & 2) {
|
|
3697
|
+
const _r0 = i0.ɵɵreference(2);
|
|
3665
3698
|
i0.ɵɵclassMap(ctx.classes);
|
|
3666
|
-
|
|
3699
|
+
i0.ɵɵadvance(4);
|
|
3700
|
+
i0.ɵɵproperty("ngIf", !_r0.innerHTML.trim());
|
|
3701
|
+
} }, dependencies: [i1$2.NgIf, i1.RouterLink], encapsulation: 2 });
|
|
3667
3702
|
}
|
|
3668
3703
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SignOutButtonComponent, [{
|
|
3669
3704
|
type: Component,
|
|
3670
|
-
args: [{ selector: "anatoly-signout-button", template: "<a routerLink=\"iam/signout\" class=\"{{ classes }}\">\r\n <ng-content></ng-content>\r\n</a>\r\n" }]
|
|
3705
|
+
args: [{ selector: "anatoly-signout-button", template: "<a routerLink=\"iam/signout\" class=\"{{ classes }}\">\r\n <span #ref><ng-content></ng-content></span>\r\n <span *ngIf=\"!ref.innerHTML.trim()\">Sign Out</span>\r\n</a>\r\n" }]
|
|
3671
3706
|
}], function () { return []; }, null); })();
|
|
3672
3707
|
|
|
3673
3708
|
/*
|