verben-authentication-ui 0.3.9 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/auth-callback/auth-callback.component.mjs +22 -15
- package/esm2022/lib/components/button/button.component.mjs +3 -6
- package/esm2022/lib/components/mail/mail.component.mjs +1 -1
- package/esm2022/lib/components/o-auth/o-auth.component.mjs +28 -30
- package/esm2022/lib/components/otp-input/otp-input.component.mjs +15 -4
- package/esm2022/lib/components/sign-in/sign-in.component.mjs +27 -30
- package/esm2022/lib/components/sign-up/sign-up.component.mjs +1 -1
- package/esm2022/lib/components/two-factor-auth-otp/two-factor-auth-otp.component.mjs +1 -1
- package/esm2022/lib/components/user-request/user-request.component.mjs +11 -4
- package/esm2022/lib/models/UserRequest.mjs +1 -1
- package/esm2022/lib/models/auth-mechanism.mjs +1 -1
- package/esm2022/lib/models/oauth-resp.mjs +2 -0
- package/fesm2022/verben-authentication-ui.mjs +101 -82
- package/fesm2022/verben-authentication-ui.mjs.map +1 -1
- package/lib/components/auth-callback/auth-callback.component.d.ts +6 -6
- package/lib/components/button/button.component.d.ts +1 -2
- package/lib/components/o-auth/o-auth.component.d.ts +6 -12
- package/lib/components/otp-input/otp-input.component.d.ts +1 -0
- package/lib/components/sign-in/sign-in.component.d.ts +3 -10
- package/lib/components/user-request/user-request.component.d.ts +1 -0
- package/lib/models/UserRequest.d.ts +1 -0
- package/lib/models/auth-mechanism.d.ts +1 -0
- package/lib/models/oauth-resp.d.ts +6 -0
- package/package.json +2 -1
|
@@ -3,46 +3,53 @@ import * as i0 from "@angular/core";
|
|
|
3
3
|
import * as i1 from "@angular/router";
|
|
4
4
|
export class AuthCallbackComponent {
|
|
5
5
|
router;
|
|
6
|
+
route;
|
|
6
7
|
code = '';
|
|
7
8
|
previousUrl = '';
|
|
9
|
+
type = '';
|
|
8
10
|
redirectText;
|
|
9
|
-
|
|
10
|
-
height = 40;
|
|
11
|
-
color = 'black';
|
|
12
|
-
constructor(router) {
|
|
11
|
+
constructor(router, route) {
|
|
13
12
|
this.router = router;
|
|
13
|
+
this.route = route;
|
|
14
14
|
}
|
|
15
15
|
ngOnInit() {
|
|
16
|
+
this.getType();
|
|
16
17
|
this.handleRedirect();
|
|
17
18
|
}
|
|
19
|
+
getType() {
|
|
20
|
+
const data = localStorage.getItem('type');
|
|
21
|
+
if (data) {
|
|
22
|
+
this.type = JSON.parse(data);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
18
25
|
handleRedirect() {
|
|
19
26
|
const params = new URLSearchParams(window.location.search);
|
|
20
27
|
const code = params.get('code');
|
|
21
28
|
const stateParam = params.get('state');
|
|
29
|
+
// const type = params.get('type');
|
|
22
30
|
if (code && stateParam) {
|
|
23
31
|
try {
|
|
24
32
|
const state = JSON.parse(decodeURIComponent(stateParam));
|
|
25
33
|
const returnTo = state.returnTo || '/';
|
|
26
|
-
|
|
34
|
+
const queryParams = { code };
|
|
35
|
+
if (this.type) {
|
|
36
|
+
queryParams.type = this.type;
|
|
37
|
+
}
|
|
38
|
+
this.router.navigate([returnTo], { queryParams });
|
|
39
|
+
// this.router.navigate([returnTo], { queryParams: { code } });
|
|
27
40
|
}
|
|
28
41
|
catch (e) {
|
|
29
42
|
const msg = e;
|
|
30
43
|
}
|
|
31
44
|
}
|
|
32
45
|
}
|
|
33
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthCallbackComponent, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Component });
|
|
34
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AuthCallbackComponent, selector: "verben-auth-callback", inputs: { redirectText: "redirectText"
|
|
46
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthCallbackComponent, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component });
|
|
47
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AuthCallbackComponent, selector: "verben-auth-callback", inputs: { redirectText: "redirectText" }, ngImport: i0, template: "<section class=\"wrapper\"> \n <div class=\"flexWrapper\"> \n <p class=\"{{redirectText}}\">Redirecting ...</p>\n <div class=\"loader\"></div>\n </div>\n</section>", styles: [".wrapper{width:100%;min-height:100%;display:flex;align-items:center;justify-content:center}.flexWrapper{display:flex;align-items:center;justify-content:center}.loader{border:2px solid white;border-radius:50%;border-top:2px solid black;width:40px;height:40px;-webkit-animation:spin 2s linear infinite;animation:spin 2s linear infinite}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(360deg)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n"] });
|
|
35
48
|
}
|
|
36
49
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthCallbackComponent, decorators: [{
|
|
37
50
|
type: Component,
|
|
38
51
|
args: [{ selector: 'verben-auth-callback', template: "<section class=\"wrapper\"> \n <div class=\"flexWrapper\"> \n <p class=\"{{redirectText}}\">Redirecting ...</p>\n <div class=\"loader\"></div>\n </div>\n</section>", styles: [".wrapper{width:100%;min-height:100%;display:flex;align-items:center;justify-content:center}.flexWrapper{display:flex;align-items:center;justify-content:center}.loader{border:2px solid white;border-radius:50%;border-top:2px solid black;width:40px;height:40px;-webkit-animation:spin 2s linear infinite;animation:spin 2s linear infinite}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}to{-webkit-transform:rotate(360deg)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}\n"] }]
|
|
39
|
-
}], ctorParameters: () => [{ type: i1.Router }], propDecorators: { redirectText: [{
|
|
40
|
-
type: Input
|
|
41
|
-
}], width: [{
|
|
42
|
-
type: Input
|
|
43
|
-
}], height: [{
|
|
44
|
-
type: Input
|
|
45
|
-
}], color: [{
|
|
52
|
+
}], ctorParameters: () => [{ type: i1.Router }, { type: i1.ActivatedRoute }], propDecorators: { redirectText: [{
|
|
46
53
|
type: Input
|
|
47
54
|
}] } });
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1jYWxsYmFjay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tYXV0aGVudGljYXRpb24tdWkvc3JjL2xpYi9jb21wb25lbnRzL2F1dGgtY2FsbGJhY2svYXV0aC1jYWxsYmFjay5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tYXV0aGVudGljYXRpb24tdWkvc3JjL2xpYi9jb21wb25lbnRzL2F1dGgtY2FsbGJhY2svYXV0aC1jYWxsYmFjay5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQzs7O0FBUXpELE1BQU0sT0FBTyxxQkFBcUI7SUFNWjtJQUNWO0lBTlYsSUFBSSxHQUFXLEVBQUUsQ0FBQztJQUNsQixXQUFXLEdBQVcsRUFBRSxDQUFDO0lBQ3pCLElBQUksR0FBVyxFQUFFLENBQUM7SUFDVCxZQUFZLENBQVM7SUFFOUIsWUFBb0IsTUFBYyxFQUN4QixLQUFxQjtRQURYLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDeEIsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7SUFDNUIsQ0FBQztJQUVKLFFBQVE7UUFDTixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUE7UUFDZCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELE9BQU87UUFDUCxNQUFNLElBQUksR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQ3pDLElBQUcsSUFBSSxFQUFDLENBQUM7WUFDUCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDOUIsQ0FBQztJQUNELENBQUM7SUFDRCxjQUFjO1FBQ1osTUFBTSxNQUFNLEdBQUcsSUFBSSxlQUFlLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMzRCxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hDLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdkMsbUNBQW1DO1FBRW5DLElBQUksSUFBSSxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQztnQkFDSCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7Z0JBQ3pELE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLElBQUksR0FBRyxDQUFDO2dCQUN2QyxNQUFNLFdBQVcsR0FBUSxFQUFFLElBQUksRUFBRSxDQUFDO2dCQUNwQyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztvQkFDZCxXQUFXLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7Z0JBQy9CLENBQUM7Z0JBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7Z0JBQ2hELCtEQUErRDtZQUNqRSxDQUFDO1lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztnQkFDWixNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUE7WUFDZCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7d0dBMUNVLHFCQUFxQjs0RkFBckIscUJBQXFCLHNHQ1JsQyx5TEFLVTs7NEZER0cscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLHNCQUFzQjt3R0FRdkIsWUFBWTtzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlcmJlbi1hdXRoLWNhbGxiYWNrJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2F1dGgtY2FsbGJhY2suY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vYXV0aC1jYWxsYmFjay5jb21wb25lbnQuY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBBdXRoQ2FsbGJhY2tDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBjb2RlOiBzdHJpbmcgPSAnJztcbiAgcHJldmlvdXNVcmw6IHN0cmluZyA9ICcnO1xuICB0eXBlOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgcmVkaXJlY3RUZXh0PzpzdHJpbmc7XG4gIFxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlXG4gICkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmdldFR5cGUoKVxuICAgIHRoaXMuaGFuZGxlUmVkaXJlY3QoKTtcbiAgfVxuIFxuICBnZXRUeXBlKCl7IFxuICBjb25zdCBkYXRhID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3R5cGUnKVxuICBpZihkYXRhKXsgXG4gICAgdGhpcy50eXBlID0gSlNPTi5wYXJzZShkYXRhKVxuICB9XG4gIH1cbiAgaGFuZGxlUmVkaXJlY3QoKSB7XG4gICAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTtcbiAgICBjb25zdCBjb2RlID0gcGFyYW1zLmdldCgnY29kZScpO1xuICAgIGNvbnN0IHN0YXRlUGFyYW0gPSBwYXJhbXMuZ2V0KCdzdGF0ZScpO1xuICAgIC8vIGNvbnN0IHR5cGUgPSBwYXJhbXMuZ2V0KCd0eXBlJyk7XG5cbiAgICBpZiAoY29kZSAmJiBzdGF0ZVBhcmFtKSB7XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBzdGF0ZSA9IEpTT04ucGFyc2UoZGVjb2RlVVJJQ29tcG9uZW50KHN0YXRlUGFyYW0pKTtcbiAgICAgICAgY29uc3QgcmV0dXJuVG8gPSBzdGF0ZS5yZXR1cm5UbyB8fCAnLyc7XG4gICAgICAgIGNvbnN0IHF1ZXJ5UGFyYW1zOiBhbnkgPSB7IGNvZGUgfTtcbiAgICAgIGlmICh0aGlzLnR5cGUpIHtcbiAgICAgICAgcXVlcnlQYXJhbXMudHlwZSA9IHRoaXMudHlwZTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3JldHVyblRvXSwgeyBxdWVyeVBhcmFtcyB9KTtcbiAgICAgICAgLy8gdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3JldHVyblRvXSwgeyBxdWVyeVBhcmFtczogeyBjb2RlIH0gfSk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgY29uc3QgbXNnID0gZVxuICAgICAgfVxuICAgIH1cbiAgfVxuICBcbn1cbiIsIjxzZWN0aW9uIGNsYXNzPVwid3JhcHBlclwiPiBcbiAgICA8ZGl2IGNsYXNzPVwiZmxleFdyYXBwZXJcIj4gXG4gICAgICAgIDxwIGNsYXNzPVwie3tyZWRpcmVjdFRleHR9fVwiPlJlZGlyZWN0aW5nIC4uLjwvcD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImxvYWRlclwiPjwvZGl2PlxuICAgIDwvZGl2PlxuPC9zZWN0aW9uPiJdfQ==
|
|
@@ -12,17 +12,16 @@ export class ButtonComponent {
|
|
|
12
12
|
pd = '10px 20px';
|
|
13
13
|
buttonClass = '';
|
|
14
14
|
disabled = false;
|
|
15
|
-
isLoading;
|
|
16
15
|
buttonClick = new EventEmitter();
|
|
17
16
|
handleClick() {
|
|
18
17
|
this.buttonClick.emit();
|
|
19
18
|
}
|
|
20
19
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
21
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ButtonComponent, selector: "lib-button", inputs: { text: "text", color: "color", border: "border", borderRadius: "borderRadius", bgColor: "bgColor", width: "width", pd: "pd", buttonClass: "buttonClass", disabled: "disabled"
|
|
20
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ButtonComponent, selector: "lib-button", inputs: { text: "text", color: "color", border: "border", borderRadius: "borderRadius", bgColor: "bgColor", width: "width", pd: "pd", buttonClass: "buttonClass", disabled: "disabled" }, outputs: { buttonClick: "buttonClick" }, ngImport: i0, template: "<verbena-button\n[text]=\"text\"\n[bgColor]=\"bgColor\"\n[textColor]=\"color\"\n[border]=\"border\"\n[borderRadius]=\"borderRadius\"\n[pd]=\"pd\"\n[width]=\"width\"\n[disable]=\"disabled\"\n[ngStyle]=\"{'cursor': disabled ? 'not-allowed' : 'pointer' }\"\nbuttonClass=\"font-medium text-[22px] leading-[33px] {{buttonClass}}\"\n(click)=\"handleClick()\"\n></verbena-button>\n", styles: [".disable-btn{cursor:not-allowed}\n"], dependencies: [{ kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.VerbenaButtonComponent, selector: "verbena-button", inputs: ["text", "icon", "svgPosition", "bgColor", "textColor", "border", "borderRadius", "pd", "width", "height", "fontSize", "fontWeight", "disable", "styleType", "svg", "svgWidth", "svgHeight", "svgColor", "buttonClass", "buttonTextClass", "isLoading", "spinnerSize", "spinnerColor"] }] });
|
|
22
21
|
}
|
|
23
22
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ButtonComponent, decorators: [{
|
|
24
23
|
type: Component,
|
|
25
|
-
args: [{ selector: 'lib-button', template: "<verbena-button\n[text]=\"text\"\n[bgColor]=\"bgColor\"\n[textColor]=\"color\"\n[border]=\"border\"\n[borderRadius]=\"borderRadius\"\n[pd]=\"pd\"\n[width]=\"width\"\n[disable]=\"disabled\"\n[ngStyle]=\"{'cursor': disabled ? 'not-allowed' : 'pointer' }\"\nbuttonClass=\"font-medium text-[22px] leading-[33px] {{buttonClass}}\"\n(click)=\"handleClick()\"\n
|
|
24
|
+
args: [{ selector: 'lib-button', template: "<verbena-button\n[text]=\"text\"\n[bgColor]=\"bgColor\"\n[textColor]=\"color\"\n[border]=\"border\"\n[borderRadius]=\"borderRadius\"\n[pd]=\"pd\"\n[width]=\"width\"\n[disable]=\"disabled\"\n[ngStyle]=\"{'cursor': disabled ? 'not-allowed' : 'pointer' }\"\nbuttonClass=\"font-medium text-[22px] leading-[33px] {{buttonClass}}\"\n(click)=\"handleClick()\"\n></verbena-button>\n", styles: [".disable-btn{cursor:not-allowed}\n"] }]
|
|
26
25
|
}], propDecorators: { text: [{
|
|
27
26
|
type: Input
|
|
28
27
|
}], color: [{
|
|
@@ -41,9 +40,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
41
40
|
type: Input
|
|
42
41
|
}], disabled: [{
|
|
43
42
|
type: Input
|
|
44
|
-
}], isLoading: [{
|
|
45
|
-
type: Input
|
|
46
43
|
}], buttonClick: [{
|
|
47
44
|
type: Output
|
|
48
45
|
}] } });
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi1hdXRoZW50aWNhdGlvbi11aS9zcmMvbGliL2NvbXBvbmVudHMvYnV0dG9uL2J1dHRvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tYXV0aGVudGljYXRpb24tdWkvc3JjL2xpYi9jb21wb25lbnRzL2J1dHRvbi9idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQU8vRSxNQUFNLE9BQU8sZUFBZTtJQUNqQixJQUFJLEdBQVcsRUFBRSxDQUFDO0lBQ2xCLEtBQUssR0FBVyxPQUFPLENBQUM7SUFDeEIsTUFBTSxHQUFXLG1CQUFtQixDQUFDO0lBQ3JDLFlBQVksR0FBVSxNQUFNLENBQUE7SUFDNUIsT0FBTyxHQUFXLFNBQVMsQ0FBQztJQUM1QixLQUFLLEdBQVcsTUFBTSxDQUFDO0lBQ3ZCLEVBQUUsR0FBVyxXQUFXLENBQUM7SUFDekIsV0FBVyxHQUFXLEVBQUUsQ0FBQztJQUN6QixRQUFRLEdBQVksS0FBSyxDQUFDO0lBRXpCLFdBQVcsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0lBRWpELFdBQVc7UUFDVCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzFCLENBQUM7d0dBZlUsZUFBZTs0RkFBZixlQUFlLHFSQ1A1Qix3WEFhQTs7NEZETmEsZUFBZTtrQkFMM0IsU0FBUzsrQkFDRSxZQUFZOzhCQUtiLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxFQUFFO3NCQUFWLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVJLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1idXR0b24nLFxuICB0ZW1wbGF0ZVVybDogJy4vYnV0dG9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2J1dHRvbi5jb21wb25lbnQuY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBCdXR0b25Db21wb25lbnR7XG4gIEBJbnB1dCgpIHRleHQ6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSBjb2xvcjogc3RyaW5nID0gJ2JsYWNrJztcbiAgQElucHV0KCkgYm9yZGVyOiBzdHJpbmcgPSAnMXB4IHNvbGlkICNGRkU2ODEnO1xuICBASW5wdXQoKSBib3JkZXJSYWRpdXM6c3RyaW5nID0gXCI0MHB4XCJcbiAgQElucHV0KCkgYmdDb2xvcjogc3RyaW5nID0gJyNGRkU2ODEnO1xuICBASW5wdXQoKSB3aWR0aDogc3RyaW5nID0gJzEwMCUnO1xuICBASW5wdXQoKSBwZDogc3RyaW5nID0gJzEwcHggMjBweCc7XG4gIEBJbnB1dCgpIGJ1dHRvbkNsYXNzOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBAT3V0cHV0KCkgYnV0dG9uQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgaGFuZGxlQ2xpY2soKXsgXG4gICAgdGhpcy5idXR0b25DbGljay5lbWl0KCk7XG4gIH1cbn1cbiIsIjx2ZXJiZW5hLWJ1dHRvblxuW3RleHRdPVwidGV4dFwiXG5bYmdDb2xvcl09XCJiZ0NvbG9yXCJcblt0ZXh0Q29sb3JdPVwiY29sb3JcIlxuW2JvcmRlcl09XCJib3JkZXJcIlxuW2JvcmRlclJhZGl1c109XCJib3JkZXJSYWRpdXNcIlxuW3BkXT1cInBkXCJcblt3aWR0aF09XCJ3aWR0aFwiXG5bZGlzYWJsZV09XCJkaXNhYmxlZFwiXG5bbmdTdHlsZV09XCJ7J2N1cnNvcic6IGRpc2FibGVkID8gJ25vdC1hbGxvd2VkJyA6ICdwb2ludGVyJyB9XCJcbmJ1dHRvbkNsYXNzPVwiZm9udC1tZWRpdW0gdGV4dC1bMjJweF0gbGVhZGluZy1bMzNweF0ge3tidXR0b25DbGFzc319XCJcbihjbGljayk9XCJoYW5kbGVDbGljaygpXCJcbj48L3ZlcmJlbmEtYnV0dG9uPlxuIl19
|
|
@@ -34,7 +34,7 @@ export class MailComponent {
|
|
|
34
34
|
};
|
|
35
35
|
}
|
|
36
36
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MailComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
37
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MailComponent, selector: "verben-mail-message", inputs: { customClass: "customClass", headlingClass: "headlingClass", width: "width", maxWidth: "maxWidth", margin: "margin", pd: "pd", bgColor: "bgColor", boxShadow: "boxShadow", border: "border", borderRadius: "borderRadius", textColor: "textColor", height: "height" }, outputs: { buttonClick: "buttonClick" }, ngImport: i0, template: "<section\n[ngStyle]=\"styles\"\nclass=\"{{ customClass }}\"\n>\n <h3 class=\"{{headlingClass}}\">Your e-mail has been verified!</h3>\n <lib-button \n text=\"Login\" \n buttonClass=\"\"\n (click)=\"goToLogin()\"\n ></lib-button> \n</section>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.ButtonComponent, selector: "lib-button", inputs: ["text", "color", "border", "borderRadius", "bgColor", "width", "pd", "buttonClass", "disabled"
|
|
37
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: MailComponent, selector: "verben-mail-message", inputs: { customClass: "customClass", headlingClass: "headlingClass", width: "width", maxWidth: "maxWidth", margin: "margin", pd: "pd", bgColor: "bgColor", boxShadow: "boxShadow", border: "border", borderRadius: "borderRadius", textColor: "textColor", height: "height" }, outputs: { buttonClick: "buttonClick" }, ngImport: i0, template: "<section\n[ngStyle]=\"styles\"\nclass=\"{{ customClass }}\"\n>\n <h3 class=\"{{headlingClass}}\">Your e-mail has been verified!</h3>\n <lib-button \n text=\"Login\" \n buttonClass=\"\"\n (click)=\"goToLogin()\"\n ></lib-button> \n</section>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i2.ButtonComponent, selector: "lib-button", inputs: ["text", "color", "border", "borderRadius", "bgColor", "width", "pd", "buttonClass", "disabled"], outputs: ["buttonClick"] }] });
|
|
38
38
|
}
|
|
39
39
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MailComponent, decorators: [{
|
|
40
40
|
type: Component,
|
|
@@ -2,27 +2,18 @@ import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
|
2
2
|
import { MechanismType } from '../../models/auth-mechanism';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
import * as i1 from "@angular/router";
|
|
5
|
-
import * as i2 from "
|
|
6
|
-
import * as i3 from "
|
|
7
|
-
import * as i4 from "@angular/common";
|
|
8
|
-
import * as i5 from "verben-ng-ui";
|
|
5
|
+
import * as i2 from "@angular/common";
|
|
6
|
+
import * as i3 from "verben-ng-ui";
|
|
9
7
|
export class OAuthComponent {
|
|
10
|
-
route;
|
|
11
|
-
server;
|
|
12
|
-
utilService;
|
|
13
8
|
router;
|
|
14
9
|
showGoogle = false;
|
|
15
10
|
showMicrosoft = false;
|
|
16
11
|
showApple = false;
|
|
17
12
|
authMechanisms = null;
|
|
18
|
-
|
|
19
|
-
googleClick = new EventEmitter();
|
|
20
|
-
appleClick = new EventEmitter();
|
|
13
|
+
emitMechanismFn = new EventEmitter();
|
|
21
14
|
page = '';
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
this.server = server;
|
|
25
|
-
this.utilService = utilService;
|
|
15
|
+
type = '';
|
|
16
|
+
constructor(router) {
|
|
26
17
|
this.router = router;
|
|
27
18
|
}
|
|
28
19
|
ngOnInit() {
|
|
@@ -48,6 +39,8 @@ export class OAuthComponent {
|
|
|
48
39
|
}
|
|
49
40
|
}
|
|
50
41
|
oAuthWithGoogle(data) {
|
|
42
|
+
this.type = data.AuthMechanism;
|
|
43
|
+
localStorage.setItem('type', JSON.stringify(this.type));
|
|
51
44
|
const redirectUri = encodeURIComponent(data.RedirectUri);
|
|
52
45
|
const scope = encodeURIComponent('openid email profile');
|
|
53
46
|
const responseType = 'code';
|
|
@@ -56,22 +49,31 @@ export class OAuthComponent {
|
|
|
56
49
|
window.location.href = authUrl;
|
|
57
50
|
}
|
|
58
51
|
oAuthWithApple() {
|
|
59
|
-
this.appleClick.emit();
|
|
60
52
|
}
|
|
61
|
-
oAuthWithMicrosoft() {
|
|
62
|
-
this.
|
|
53
|
+
oAuthWithMicrosoft(data) {
|
|
54
|
+
this.type = data.AuthMechanism;
|
|
55
|
+
;
|
|
56
|
+
localStorage.setItem('type', JSON.stringify(this.type));
|
|
57
|
+
const redirectUri = encodeURIComponent(data.RedirectUri);
|
|
58
|
+
const scope = encodeURIComponent('openid email profile');
|
|
59
|
+
const responseType = 'code';
|
|
60
|
+
const state = encodeURIComponent(JSON.stringify({ returnTo: this.page }));
|
|
61
|
+
// const authUrl = `https://login.microsoftonline.com/${data.TenantId}/oauth2/v2.0/authorize?client_id=${data.ClientId}&response_type=${responseType}&redirect_uri=${redirectUri}&response_mode=query&state=${state}`;
|
|
62
|
+
const authUrl = `https://login.microsoftonline.com/common/oauth2/v2.0/authorize
|
|
63
|
+
?client_id=${data.ClientId}
|
|
64
|
+
&response_type=${responseType}
|
|
65
|
+
&redirect_uri=${redirectUri}&scope=${scope}
|
|
66
|
+
&response_mode=query&state=${state}`;
|
|
67
|
+
window.location.href = authUrl;
|
|
63
68
|
}
|
|
64
69
|
checkForValue(value) {
|
|
65
70
|
switch (value) {
|
|
66
71
|
case MechanismType.Google:
|
|
67
72
|
return 'google-logo';
|
|
68
|
-
break;
|
|
69
73
|
case MechanismType.Apple:
|
|
70
74
|
return 'apple-logo';
|
|
71
|
-
break;
|
|
72
75
|
case MechanismType.MicrosoftAD:
|
|
73
76
|
return 'microsoft-logo';
|
|
74
|
-
break;
|
|
75
77
|
default:
|
|
76
78
|
return '';
|
|
77
79
|
}
|
|
@@ -85,25 +87,21 @@ export class OAuthComponent {
|
|
|
85
87
|
return this.oAuthWithApple();
|
|
86
88
|
break;
|
|
87
89
|
case MechanismType.MicrosoftAD:
|
|
88
|
-
return this.oAuthWithMicrosoft();
|
|
90
|
+
return this.oAuthWithMicrosoft(value);
|
|
89
91
|
break;
|
|
90
92
|
default:
|
|
91
93
|
return '';
|
|
92
94
|
}
|
|
93
95
|
}
|
|
94
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OAuthComponent, deps: [{ token: i1.
|
|
95
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: OAuthComponent, selector: "verben-o-auth", inputs: { authMechanisms: "authMechanisms" }, outputs: {
|
|
96
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OAuthComponent, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Component });
|
|
97
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: OAuthComponent, selector: "verben-o-auth", inputs: { authMechanisms: "authMechanisms" }, outputs: { emitMechanismFn: "emitMechanismFn" }, ngImport: i0, template: "<section class=\"oauthWrapper\"> \n <div class=\"OrFlexWrapper\">\n <hr/>\n <span>OR</span>\n <hr/>\n </div>\n <div class=\"btnWrapper\">\n <div *ngFor=\"let btn of authMechanisms, let i = index\"> \n <verbena-button\n [svg]=\"checkForValue(btn.AuthMechanism)\"\n [svgHeight]=\"24\"\n [svgWidth]=\"24\"\n [text]=\"'Continue with ' + btn.AuthMechanism\"\n bgColor=\"white\"\n textColor=\"black\"\n border=\"1px solid #333\"\n borderRadius=\"40px\"\n pd=\"10px 20px\"\n width=\"100%\"\n svgPosition=\"left\"\n buttonClass=\"font-normal text-[24px] leading-[29.05px] text-[#333] mt-2\"\n (click)=\"handleOauthClick(btn)\"\n ></verbena-button>\n </div> \n </div> \n</section>\n", styles: ["hr{height:1px;margin:0;border:1px solid #66666640;flex:1}.OR{margin:0 2px;color:#666}.oauthWrapper{display:flex;flex-direction:column;gap:12px}.btnWrapper{display:flex;flex-direction:column;gap:10px}.OrFlexWrapper{display:flex;align-items:center;gap:8px}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i3.VerbenaButtonComponent, selector: "verbena-button", inputs: ["text", "icon", "svgPosition", "bgColor", "textColor", "border", "borderRadius", "pd", "width", "height", "fontSize", "fontWeight", "disable", "styleType", "svg", "svgWidth", "svgHeight", "svgColor", "buttonClass", "buttonTextClass", "isLoading", "spinnerSize", "spinnerColor"] }] });
|
|
96
98
|
}
|
|
97
99
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OAuthComponent, decorators: [{
|
|
98
100
|
type: Component,
|
|
99
101
|
args: [{ selector: 'verben-o-auth', template: "<section class=\"oauthWrapper\"> \n <div class=\"OrFlexWrapper\">\n <hr/>\n <span>OR</span>\n <hr/>\n </div>\n <div class=\"btnWrapper\">\n <div *ngFor=\"let btn of authMechanisms, let i = index\"> \n <verbena-button\n [svg]=\"checkForValue(btn.AuthMechanism)\"\n [svgHeight]=\"24\"\n [svgWidth]=\"24\"\n [text]=\"'Continue with ' + btn.AuthMechanism\"\n bgColor=\"white\"\n textColor=\"black\"\n border=\"1px solid #333\"\n borderRadius=\"40px\"\n pd=\"10px 20px\"\n width=\"100%\"\n svgPosition=\"left\"\n buttonClass=\"font-normal text-[24px] leading-[29.05px] text-[#333] mt-2\"\n (click)=\"handleOauthClick(btn)\"\n ></verbena-button>\n </div> \n </div> \n</section>\n", styles: ["hr{height:1px;margin:0;border:1px solid #66666640;flex:1}.OR{margin:0 2px;color:#666}.oauthWrapper{display:flex;flex-direction:column;gap:12px}.btnWrapper{display:flex;flex-direction:column;gap:10px}.OrFlexWrapper{display:flex;align-items:center;gap:8px}\n"] }]
|
|
100
|
-
}], ctorParameters: () => [{ type: i1.
|
|
102
|
+
}], ctorParameters: () => [{ type: i1.Router }], propDecorators: { authMechanisms: [{
|
|
101
103
|
type: Input
|
|
102
|
-
}],
|
|
103
|
-
type: Output
|
|
104
|
-
}], googleClick: [{
|
|
105
|
-
type: Output
|
|
106
|
-
}], appleClick: [{
|
|
104
|
+
}], emitMechanismFn: [{
|
|
107
105
|
type: Output
|
|
108
106
|
}] } });
|
|
109
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1hdXRoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi1hdXRoZW50aWNhdGlvbi11aS9zcmMvbGliL2NvbXBvbmVudHMvby1hdXRoL28tYXV0aC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tYXV0aGVudGljYXRpb24tdWkvc3JjL2xpYi9jb21wb25lbnRzL28tYXV0aC9vLWF1dGguY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQWlCLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7Ozs7O0FBZ0IzRSxNQUFNLE9BQU8sY0FBYztJQVdmO0lBQ0E7SUFDQTtJQUNBO0lBYlYsVUFBVSxHQUFZLEtBQUssQ0FBQztJQUM1QixhQUFhLEdBQVksS0FBSyxDQUFDO0lBQy9CLFNBQVMsR0FBWSxLQUFLLENBQUM7SUFDbEIsY0FBYyxHQUEyQixJQUFJLENBQUM7SUFDN0MsY0FBYyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7SUFDMUMsV0FBVyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7SUFDdkMsVUFBVSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7SUFDaEQsSUFBSSxHQUFXLEVBQUUsQ0FBQztJQUVsQixZQUNVLEtBQXFCLEVBQ3JCLE1BQTZCLEVBQzdCLFdBQXdCLEVBQ3hCLE1BQWM7UUFIZCxVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQUNyQixXQUFNLEdBQU4sTUFBTSxDQUF1QjtRQUM3QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixXQUFNLEdBQU4sTUFBTSxDQUFRO0lBQ3JCLENBQUM7SUFFSixRQUFRO1FBQ04sSUFBSSxDQUFDLFFBQVEsRUFBRSxD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QUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDN0IsTUFBTTtZQUNSLEtBQUssYUFBYSxDQUFDLFdBQVc7Z0JBQzVCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7Z0JBQ2pDLE1BQU07WUFDUjtnQkFDRSxPQUFPLEVBQUUsQ0FBQztRQUNkLENBQUM7SUFDSCxDQUFDO3dHQTNGVSxjQUFjOzRGQUFkLGNBQWMsd01DakIzQix5ekJBMEJBOzs0RkRUYSxjQUFjO2tCQUwxQixTQUFTOytCQUNFLGVBQWU7c0tBUWhCLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0ksY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBdXRoTWVjaGFuaXNtLCBNZWNoYW5pc21UeXBlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2F1dGgtbWVjaGFuaXNtJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgSHR0cFdlYlJlcXVlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvaHR0cC13ZWItcmVxdWVzdC5zZXJ2aWNlJztcbmltcG9ydCB7IFV0aWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdXRpbC5zZXJ2aWNlJztcblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgV2luZG93IHtcbiAgICBnb29nbGU6IGFueTtcbiAgfVxufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZXJiZW4tby1hdXRoJyxcbiAgdGVtcGxhdGVVcmw6ICcuL28tYXV0aC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9vLWF1dGguY29tcG9uZW50LmNzcycsXG59KVxuZXhwb3J0IGNsYXNzIE9BdXRoQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgc2hvd0dvb2dsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBzaG93TWljcm9zb2Z0OiBib29sZWFuID0gZmFsc2U7XG4gIHNob3dBcHBsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBhdXRoTWVjaGFuaXNtczogQXV0aE1lY2hhbmlzbVtdIHwgbnVsbCA9IG51bGw7XG4gIEBPdXRwdXQoKSBtaWNyb3NvZnRDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIGdvb2dsZUNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgYXBwbGVDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgcGFnZTogc3RyaW5nID0gJyc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSBzZXJ2ZXI6IEh0dHBXZWJSZXF1ZXN0U2VydmljZSxcbiAgICBwcml2YXRlIHV0aWxTZXJ2aWNlOiBVdGlsU2VydmljZSxcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyXG4gICkge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmxvYWRQYWdlKCk7XG4gICAgdGhpcy5sb2FkR29vZ2xlU2NyaXB0KCk7XG4gICAgaWYgKHRoaXMuYXV0aE1lY2hhbmlzbXMgIT09IG51bGwpIHtcbiAgICAgIHRoaXMuYXV0aE1lY2hhbmlzbXMgPSB0aGlzLmF1dGhNZWNoYW5pc21zLmZpbHRlcihcbiAgICAgICAgKGl0ZW0pID0+IGl0ZW0uQXV0aE1lY2hhbmlzbSAhPT0gTWVjaGFuaXNtVHlwZS5JbkFwcFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBsb2FkUGFnZSgpIHtcbiAgICB0aGlzLnBhZ2UgPSB0aGlzLnJvdXRlci51cmw7XG4gIH1cblxuICBsb2FkR29vZ2xlU2NyaXB0KCk6IHZvaWQge1xuICAgIGlmICghZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2dvb2dsZS1qc3NkaycpKSB7XG4gICAgICBjb25zdCBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcbiAgICAgIHNjcmlwdC5zcmMgPSAnaHR0cHM6Ly9hY2NvdW50cy5nb29nbGUuY29tL2dzaS9jbGllbnQnO1xuICAgICAgc2NyaXB0LmlkID0gJ2dvb2dsZS1qc3Nkayc7XG4gICAgICBzY3JpcHQuYXN5bmMgPSB0cnVlO1xuICAgICAgc2NyaXB0LmRlZmVyID0gdHJ1ZTtcbiAgICAgIHNjcmlwdC5vbmxvYWQgPSAoKSA9PiBjb25zb2xlLmxvZygnR29vZ2xlIFNESyBsb2FkZWQnKTtcbiAgICAgIHNjcmlwdC5vbmVycm9yID0gKCkgPT4gY29uc29sZS5sb2coJ0Vycm9yIGxvYWRpbmcgR29vZ2xlIFNESycpO1xuICAgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzY3JpcHQpO1xuICAgIH1cbiAgfVxuXG4gIG9BdXRoV2l0aEdvb2dsZShkYXRhOiBBdXRoTWVjaGFuaXNtKSB7XG4gICAgY29uc3QgcmVkaXJlY3RVcmkgPSBlbmNvZGVVUklDb21wb25lbnQoZGF0YS5SZWRpcmVjdFVyaSk7XG4gICAgY29uc3Qgc2NvcGUgPSBlbmNvZGVVUklDb21wb25lbnQoJ29wZW5pZCBlbWFpbCBwcm9maWxlJyk7XG4gICAgY29uc3QgcmVzcG9uc2VUeXBlID0gJ2NvZGUnO1xuICAgIGNvbnN0IHN0YXRlID0gZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KHsgcmV0dXJuVG86IHRoaXMucGFnZSB9KSk7XG4gICAgY29uc3QgYXV0aFVybCA9IGBodHRwczovL2FjY291bnRzLmdvb2dsZS5jb20vby9vYXV0aDIvdjIvYXV0aD9jbGllbnRfaWQ9JHtkYXRhLkNsaWVudElkfSZyZWRpcmVjdF91cmk9JHtyZWRpcmVjdFVyaX0mcmVzcG9uc2VfdHlwZT0ke3Jlc3BvbnNlVHlwZX0mc2NvcGU9JHtzY29wZX0mc3RhdGU9JHtzdGF0ZX1gO1xuICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gYXV0aFVybDtcbiAgfVxuXG4gIG9BdXRoV2l0aEFwcGxlKCkge1xuICAgIHRoaXMuYXBwbGVDbGljay5lbWl0KCk7XG4gIH1cblxuICBvQXV0aFdpdGhNaWNyb3NvZnQoKSB7XG4gICAgdGhpcy5taWNyb3NvZnRDbGljay5lbWl0KCk7XG4gIH1cblxuICBjaGVja0ZvclZhbHVlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICBzd2l0Y2ggKHZhbHVlKSB7XG4gICAgICBjYXNlIE1lY2hhbmlzbVR5cGUuR29vZ2xlOlxuICAgICAgICByZXR1cm4gJ2dvb2dsZS1sb2dvJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIE1lY2hhbmlzbVR5cGUuQXBwbGU6XG4gICAgICAgIHJldHVybiAnYXBwbGUtbG9nbyc7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBNZWNoYW5pc21UeXBlLk1pY3Jvc29mdEFEOlxuICAgICAgICByZXR1cm4gJ21pY3Jvc29mdC1sb2dvJztcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlT2F1dGhDbGljayh2YWx1ZTogQXV0aE1lY2hhbmlzbSkge1xuICAgIHN3aXRjaCAodmFsdWUuQXV0aE1lY2hhbmlzbSkge1xuICAgICAgY2FzZSBNZWNoYW5pc21UeXBlLkdvb2dsZTpcbiAgICAgICAgcmV0dXJuIHRoaXMub0F1dGhXaXRoR29vZ2xlKHZhbHVlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIE1lY2hhbmlzbVR5cGUuQXBwbGU6XG4gICAgICAgIHJldHVybiB0aGlzLm9BdXRoV2l0aEFwcGxlKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBNZWNoYW5pc21UeXBlLk1pY3Jvc29mdEFEOlxuICAgICAgICByZXR1cm4gdGhpcy5vQXV0aFdpdGhNaWNyb3NvZnQoKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuICB9XG59XG4iLCI8c2VjdGlvbiBjbGFzcz1cIm9hdXRoV3JhcHBlclwiPiBcbiAgICA8ZGl2IGNsYXNzPVwiT3JGbGV4V3JhcHBlclwiPlxuICAgICAgICA8aHIvPlxuICAgICAgICA8c3Bhbj5PUjwvc3Bhbj5cbiAgICAgICAgPGhyLz5cbiAgICA8L2Rpdj5cbiAgICAgPGRpdiBjbGFzcz1cImJ0bldyYXBwZXJcIj5cbiAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGJ0biBvZiBhdXRoTWVjaGFuaXNtcywgbGV0IGkgPSBpbmRleFwiPiBcbiAgICAgICAgPHZlcmJlbmEtYnV0dG9uXG4gICAgICAgIFtzdmddPVwiY2hlY2tGb3JWYWx1ZShidG4uQXV0aE1lY2hhbmlzbSlcIlxuICAgICAgICBbc3ZnSGVpZ2h0XT1cIjI0XCJcbiAgICAgICAgW3N2Z1dpZHRoXT1cIjI0XCJcbiAgICAgICAgW3RleHRdPVwiJ0NvbnRpbnVlIHdpdGggJyArIGJ0bi5BdXRoTWVjaGFuaXNtXCJcbiAgICAgICAgYmdDb2xvcj1cIndoaXRlXCJcbiAgICAgICAgdGV4dENvbG9yPVwiYmxhY2tcIlxuICAgICAgICBib3JkZXI9XCIxcHggc29saWQgIzMzM1wiXG4gICAgICAgIGJvcmRlclJhZGl1cz1cIjQwcHhcIlxuICAgICAgICBwZD1cIjEwcHggMjBweFwiXG4gICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgIHN2Z1Bvc2l0aW9uPVwibGVmdFwiXG4gICAgICAgIGJ1dHRvbkNsYXNzPVwiZm9udC1ub3JtYWwgdGV4dC1bMjRweF0gbGVhZGluZy1bMjkuMDVweF0gdGV4dC1bIzMzM10gbXQtMlwiXG4gICAgICAgIChjbGljayk9XCJoYW5kbGVPYXV0aENsaWNrKGJ0bilcIlxuICAgICAgICA+PC92ZXJiZW5hLWJ1dHRvbj5cbiAgICAgIDwvZGl2PiBcbiAgICAgPC9kaXY+IFxuPC9zZWN0aW9uPlxuIl19
|
|
107
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1hdXRoLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi1hdXRoZW50aWNhdGlvbi11aS9zcmMvbGliL2NvbXBvbmVudHMvby1hdXRoL28tYXV0aC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tYXV0aGVudGljYXRpb24tdWkvc3JjL2xpYi9jb21wb25lbnRzL28tYXV0aC9vLWF1dGguY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQWlCLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7OztBQWdCM0UsTUFBTSxPQUFPLGNBQWM7SUFVZjtJQVRWLFVBQVUsR0FBWSxLQUFLLENBQUM7SUFDNUIsYUFBYSxHQUFZLEtBQUssQ0FBQztJQUMvQixTQUFTLEdBQVksS0FBSyxDQUFDO0lBQ2xCLGNBQWMsR0FBMkIsSUFBSSxDQUFDO0lBQzdDLGVBQWUsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lBQ3ZELElBQUksR0FBVyxFQUFFLENBQUM7SUFDbEIsSUFBSSxHQUFVLEVBQUUsQ0FBQTtJQUVoQixZQUNVLE1BQWM7UUFBZCxXQUFNLEdBQU4sTUFBTSxDQUFRO0lBQ3JCLENBQUM7SUFFSixRQUFRO1FBQ04sSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3hCLElBQUksSUFBSSxDQUFDLGNBQWMsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUNqQyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUM5QyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEs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RUFBRSxDQUFDO1lBQ2QsS0FBSyxhQUFhLENBQUMsTUFBTTtnQkFDdkIsT0FBTyxhQUFhLENBQUM7WUFDdkIsS0FBSyxhQUFhLENBQUMsS0FBSztnQkFDdEIsT0FBTyxZQUFZLENBQUM7WUFDdEIsS0FBSyxhQUFhLENBQUMsV0FBVztnQkFDNUIsT0FBTyxnQkFBZ0IsQ0FBQztZQUMxQjtnQkFDRSxPQUFPLEVBQUUsQ0FBQztRQUNkLENBQUM7SUFDSCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsS0FBb0I7UUFDbkMsUUFBUSxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDNUIsS0FBSyxhQUFhLENBQUMsTUFBTTtnQkFDdkIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUNuQyxNQUFNO1lBQ1IsS0FBSyxhQUFhLENBQUMsS0FBSztnQkFDdEIsT0FBTyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQzdCLE1BQU07WUFDUixLQUFLLGFBQWEsQ0FBQyxXQUFXO2dCQUM1QixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDdEMsTUFBTTtZQUNSO2dCQUNFLE9BQU8sRUFBRSxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7d0dBakdVLGNBQWM7NEZBQWQsY0FBYyxvSkNqQjNCLHl6QkEwQkE7OzRGRFRhLGNBQWM7a0JBTDFCLFNBQVM7K0JBQ0UsZUFBZTsyRUFRaEIsY0FBYztzQkFBdEIsS0FBSztnQkFDSSxlQUFlO3NCQUF4QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXV0aE1lY2hhbmlzbSwgTWVjaGFuaXNtVHlwZSB9IGZyb20gJy4uLy4uL21vZGVscy9hdXRoLW1lY2hhbmlzbSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IEh0dHBXZWJSZXF1ZXN0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2h0dHAtd2ViLXJlcXVlc3Quc2VydmljZSc7XG5pbXBvcnQgeyBVdGlsU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3V0aWwuc2VydmljZSc7XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIFdpbmRvdyB7XG4gICAgZ29vZ2xlOiBhbnk7XG4gIH1cbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVyYmVuLW8tYXV0aCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9vLWF1dGguY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vby1hdXRoLmNvbXBvbmVudC5jc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBPQXV0aENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHNob3dHb29nbGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgc2hvd01pY3Jvc29mdDogYm9vbGVhbiA9IGZhbHNlO1xuICBzaG93QXBwbGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgYXV0aE1lY2hhbmlzbXM6IEF1dGhNZWNoYW5pc21bXSB8IG51bGwgPSBudWxsO1xuICBAT3V0cHV0KCkgZW1pdE1lY2hhbmlzbUZuID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIHBhZ2U6IHN0cmluZyA9ICcnO1xuICB0eXBlOnN0cmluZyA9ICcnXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlclxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5sb2FkUGFnZSgpO1xuICAgIHRoaXMubG9hZEdvb2dsZVNjcmlwdCgpO1xuICAgIGlmICh0aGlzLmF1dGhNZWNoYW5pc21zICE9PSBudWxsKSB7XG4gICAgICB0aGlzLmF1dGhNZWNoYW5pc21zID0gdGhpcy5hdXRoTWVjaGFuaXNtcy5maWx0ZXIoXG4gICAgICAgIChpdGVtKSA9PiBpdGVtLkF1dGhNZWNoYW5pc20gIT09IE1lY2hhbmlzbVR5cGUuSW5BcHBcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgbG9hZFBhZ2UoKSB7XG4gICAgdGhpcy5wYWdlID0gdGhpcy5yb3V0ZXIudXJsO1xuICB9XG5cbiAgbG9hZEdvb2dsZVNjcmlwdCgpOiB2b2lkIHtcbiAgICBpZiAoIWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdnb29nbGUtanNzZGsnKSkge1xuICAgICAgY29uc3Qgc2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG4gICAgICBzY3JpcHQuc3JjID0gJ2h0dHBzOi8vYWNjb3VudHMuZ29vZ2xlLmNvbS9nc2kvY2xpZW50JztcbiAgICAgIHNjcmlwdC5pZCA9ICdnb29nbGUtanNzZGsnO1xuICAgICAgc2NyaXB0LmFzeW5jID0gdHJ1ZTtcbiAgICAgIHNjcmlwdC5kZWZlciA9IHRydWU7XG4gICAgICBzY3JpcHQub25sb2FkID0gKCkgPT4gY29uc29sZS5sb2coJ0dvb2dsZSBTREsgbG9hZGVkJyk7XG4gICAgICBzY3JpcHQub25lcnJvciA9ICgpID0+IGNvbnNvbGUubG9nKCdFcnJvciBsb2FkaW5nIEdvb2dsZSBTREsnKTtcbiAgICAgIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc2NyaXB0KTtcbiAgICB9XG4gIH1cblxuICBvQXV0aFdpdGhHb29nbGUoZGF0YTogQXV0aE1lY2hhbmlzbSkge1xuICAgIHRoaXMudHlwZSA9IGRhdGEuQXV0aE1lY2hhbmlzbTtcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgndHlwZScsSlNPTi5zdHJpbmdpZnkodGhpcy50eXBlKSlcbiAgICBjb25zdCByZWRpcmVjdFVyaSA9IGVuY29kZVVSSUNvbXBvbmVudChkYXRhLlJlZGlyZWN0VXJpKTtcbiAgICBjb25zdCBzY29wZSA9IGVuY29kZVVSSUNvbXBvbmVudCgnb3BlbmlkIGVtYWlsIHByb2ZpbGUnKTtcbiAgICBjb25zdCByZXNwb25zZVR5cGUgPSAnY29kZSc7XG4gICAgY29uc3Qgc3RhdGUgPSBlbmNvZGVVUklDb21wb25lbnQoSlNPTi5zdHJpbmdpZnkoeyByZXR1cm5UbzogdGhpcy5wYWdlIH0pKTtcbiAgICBjb25zdCBhdXRoVXJsID0gYGh0dHBzOi8vYWNjb3VudHMuZ29vZ2xlLmNvbS9vL29hdXRoMi92Mi9hdXRoP2NsaWVudF9pZD0ke2RhdGEuQ2xpZW50SWR9JnJlZGlyZWN0X3VyaT0ke3JlZGlyZWN0VXJpfSZyZXNwb25zZV90eXBlPSR7cmVzcG9uc2VUeXBlfSZzY29wZT0ke3Njb3BlfSZzdGF0ZT0ke3N0YXRlfWA7XG4gICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBhdXRoVXJsO1xuICB9XG5cbiAgb0F1dGhXaXRoQXBwbGUoKSB7XG4gIH1cblxuICBvQXV0aFdpdGhNaWNyb3NvZnQoZGF0YTogQXV0aE1lY2hhbmlzbSkge1xuICAgIHRoaXMudHlwZSA9IGRhdGEuQXV0aE1lY2hhbmlzbTs7XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3R5cGUnLEpTT04uc3RyaW5naWZ5KHRoaXMudHlwZSkpXG4gICAgY29uc3QgcmVkaXJlY3RVcmkgPSBlbmNvZGVVUklDb21wb25lbnQoZGF0YS5SZWRpcmVjdFVyaSk7XG4gICAgY29uc3Qgc2NvcGUgPSBlbmNvZGVVUklDb21wb25lbnQoJ29wZW5pZCBlbWFpbCBwcm9maWxlJyk7XG4gICAgY29uc3QgcmVzcG9uc2VUeXBlID0gJ2NvZGUnO1xuICAgIGNvbnN0IHN0YXRlID0gZW5jb2RlVVJJQ29tcG9uZW50KEpTT04uc3RyaW5naWZ5KHsgcmV0dXJuVG86IHRoaXMucGFnZSB9KSk7XG4gICAgLy8gY29uc3QgYXV0aFVybCA9IGBodHRwczovL2xvZ2luLm1pY3Jvc29mdG9ubGluZS5jb20vJHtkYXRhLlRlbmFudElkfS9vYXV0aDIvdjIuMC9hdXRob3JpemU/Y2xpZW50X2lkPSR7ZGF0YS5DbGllbnRJZH0mcmVzcG9uc2VfdHlwZT0ke3Jlc3BvbnNlVHlwZX0mcmVkaXJlY3RfdXJpPSR7cmVkaXJlY3RVcml9JnJlc3BvbnNlX21vZGU9cXVlcnkmc3RhdGU9JHtzdGF0ZX1gO1xuICAgIGNvbnN0IGF1dGhVcmwgPSBgaHR0cHM6Ly9sb2dpbi5taWNyb3NvZnRvbmxpbmUuY29tL2NvbW1vbi9vYXV0aDIvdjIuMC9hdXRob3JpemVcbj9jbGllbnRfaWQ9JHtkYXRhLkNsaWVudElkfVxuJnJlc3BvbnNlX3R5cGU9JHtyZXNwb25zZVR5cGV9XG4mcmVkaXJlY3RfdXJpPSR7cmVkaXJlY3RVcml9JnNjb3BlPSR7c2NvcGV9XG4mcmVzcG9uc2VfbW9kZT1xdWVyeSZzdGF0ZT0ke3N0YXRlfWA7XG4gICAgd2luZG93LmxvY2F0aW9uLmhyZWYgPSBhdXRoVXJsO1xuICB9XG5cbiAgY2hlY2tGb3JWYWx1ZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgc3dpdGNoICh2YWx1ZSkge1xuICAgICAgY2FzZSBNZWNoYW5pc21UeXBlLkdvb2dsZTpcbiAgICAgICAgcmV0dXJuICdnb29nbGUtbG9nbyc7XG4gICAgICBjYXNlIE1lY2hhbmlzbVR5cGUuQXBwbGU6XG4gICAgICAgIHJldHVybiAnYXBwbGUtbG9nbyc7XG4gICAgICBjYXNlIE1lY2hhbmlzbVR5cGUuTWljcm9zb2Z0QUQ6XG4gICAgICAgIHJldHVybiAnbWljcm9zb2Z0LWxvZ28nO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgfVxuXG4gIGhhbmRsZU9hdXRoQ2xpY2sodmFsdWU6IEF1dGhNZWNoYW5pc20pIHtcbiAgICBzd2l0Y2ggKHZhbHVlLkF1dGhNZWNoYW5pc20pIHtcbiAgICAgIGNhc2UgTWVjaGFuaXNtVHlwZS5Hb29nbGU6XG4gICAgICAgIHJldHVybiB0aGlzLm9BdXRoV2l0aEdvb2dsZSh2YWx1ZSk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBNZWNoYW5pc21UeXBlLkFwcGxlOlxuICAgICAgICByZXR1cm4gdGhpcy5vQXV0aFdpdGhBcHBsZSgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgTWVjaGFuaXNtVHlwZS5NaWNyb3NvZnRBRDpcbiAgICAgICAgcmV0dXJuIHRoaXMub0F1dGhXaXRoTWljcm9zb2Z0KHZhbHVlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gJyc7XG4gICAgfVxuICB9XG59XG4iLCI8c2VjdGlvbiBjbGFzcz1cIm9hdXRoV3JhcHBlclwiPiBcbiAgICA8ZGl2IGNsYXNzPVwiT3JGbGV4V3JhcHBlclwiPlxuICAgICAgICA8aHIvPlxuICAgICAgICA8c3Bhbj5PUjwvc3Bhbj5cbiAgICAgICAgPGhyLz5cbiAgICA8L2Rpdj5cbiAgICAgPGRpdiBjbGFzcz1cImJ0bldyYXBwZXJcIj5cbiAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGJ0biBvZiBhdXRoTWVjaGFuaXNtcywgbGV0IGkgPSBpbmRleFwiPiBcbiAgICAgICAgPHZlcmJlbmEtYnV0dG9uXG4gICAgICAgIFtzdmddPVwiY2hlY2tGb3JWYWx1ZShidG4uQXV0aE1lY2hhbmlzbSlcIlxuICAgICAgICBbc3ZnSGVpZ2h0XT1cIjI0XCJcbiAgICAgICAgW3N2Z1dpZHRoXT1cIjI0XCJcbiAgICAgICAgW3RleHRdPVwiJ0NvbnRpbnVlIHdpdGggJyArIGJ0bi5BdXRoTWVjaGFuaXNtXCJcbiAgICAgICAgYmdDb2xvcj1cIndoaXRlXCJcbiAgICAgICAgdGV4dENvbG9yPVwiYmxhY2tcIlxuICAgICAgICBib3JkZXI9XCIxcHggc29saWQgIzMzM1wiXG4gICAgICAgIGJvcmRlclJhZGl1cz1cIjQwcHhcIlxuICAgICAgICBwZD1cIjEwcHggMjBweFwiXG4gICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgIHN2Z1Bvc2l0aW9uPVwibGVmdFwiXG4gICAgICAgIGJ1dHRvbkNsYXNzPVwiZm9udC1ub3JtYWwgdGV4dC1bMjRweF0gbGVhZGluZy1bMjkuMDVweF0gdGV4dC1bIzMzM10gbXQtMlwiXG4gICAgICAgIChjbGljayk9XCJoYW5kbGVPYXV0aENsaWNrKGJ0bilcIlxuICAgICAgICA+PC92ZXJiZW5hLWJ1dHRvbj5cbiAgICAgIDwvZGl2PiBcbiAgICAgPC9kaXY+IFxuPC9zZWN0aW9uPlxuIl19
|
|
@@ -24,9 +24,10 @@ export class OtpInputComponent {
|
|
|
24
24
|
return this.otpForm.get('otpArray');
|
|
25
25
|
}
|
|
26
26
|
handleInput(event, index) {
|
|
27
|
-
|
|
27
|
+
let value = event.target.value;
|
|
28
28
|
// /\d/.test(value)
|
|
29
29
|
if (value.length > 0) {
|
|
30
|
+
value = value.toUpperCase();
|
|
30
31
|
this.otpArray.at(index).setValue(value);
|
|
31
32
|
if (index < this.length - 1) {
|
|
32
33
|
this.focusNextInput(index);
|
|
@@ -47,6 +48,16 @@ export class OtpInputComponent {
|
|
|
47
48
|
}
|
|
48
49
|
}
|
|
49
50
|
}
|
|
51
|
+
handlePaste(event) {
|
|
52
|
+
event.preventDefault();
|
|
53
|
+
const pastedData = (event.clipboardData?.getData('text') || '').toUpperCase();
|
|
54
|
+
const validData = pastedData.slice(0, this.length);
|
|
55
|
+
validData.split('').forEach((char, index) => {
|
|
56
|
+
this.otpArray.at(index).setValue(char);
|
|
57
|
+
});
|
|
58
|
+
const nextIndex = validData.length < this.length ? validData.length : this.length - 1;
|
|
59
|
+
this.focusNextInput(nextIndex - 1);
|
|
60
|
+
}
|
|
50
61
|
focusNextInput(index) {
|
|
51
62
|
const nextInput = document.getElementById(`otp-input-${index + 1}`);
|
|
52
63
|
nextInput?.focus();
|
|
@@ -60,11 +71,11 @@ export class OtpInputComponent {
|
|
|
60
71
|
this.otpChange.emit(otp);
|
|
61
72
|
}
|
|
62
73
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OtpInputComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
|
|
63
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: OtpInputComponent, selector: "verben-otp-input", inputs: { length: "length", otpClass: "otpClass" }, outputs: { otpChange: "otpChange" }, ngImport: i0, template: "<form [formGroup]=\"otpForm\" >\n <div formArrayName=\"otpArray\" class=\"otp-container\">\n <input\n *ngFor=\"let control of otpArray.controls; let i = index\"\n [id]=\"'otp-input-' + i\"\n class=\"otp-input {{otpClass}}\"\n maxlength=\"1\"\n (input)=\"handleInput($event, i)\"\n (keydown)=\"handleKeydown($event, i)\"\n [formControlName]=\"i\"\n type=\"text\"\n />\n </div>\n</form>\n", styles: [".otp-container{display:flex;gap:15px}.otp-input{width:50px;height:46px;text-align:center;font-size:1.5rem;border:1px solid #66666658;border-radius:12px}.otp-input:focus{border-color:#ffe681;outline:none}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }] });
|
|
74
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: OtpInputComponent, selector: "verben-otp-input", inputs: { length: "length", otpClass: "otpClass" }, outputs: { otpChange: "otpChange" }, ngImport: i0, template: "<form [formGroup]=\"otpForm\" >\n <div formArrayName=\"otpArray\" class=\"otp-container\">\n <input\n *ngFor=\"let control of otpArray.controls; let i = index\"\n [id]=\"'otp-input-' + i\"\n class=\"otp-input {{otpClass}}\"\n maxlength=\"1\"\n (input)=\"handleInput($event, i)\"\n (keydown)=\"handleKeydown($event, i)\"\n (paste)=\"handlePaste($event)\"\n [formControlName]=\"i\"\n type=\"text\"\n />\n </div>\n</form>\n", styles: [".otp-container{display:flex;gap:15px}.otp-input{width:50px;height:46px;text-align:center;font-size:1.5rem;border:1px solid #66666658;border-radius:12px}.otp-input:focus{border-color:#ffe681;outline:none}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }] });
|
|
64
75
|
}
|
|
65
76
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OtpInputComponent, decorators: [{
|
|
66
77
|
type: Component,
|
|
67
|
-
args: [{ selector: 'verben-otp-input', template: "<form [formGroup]=\"otpForm\" >\n <div formArrayName=\"otpArray\" class=\"otp-container\">\n <input\n *ngFor=\"let control of otpArray.controls; let i = index\"\n [id]=\"'otp-input-' + i\"\n class=\"otp-input {{otpClass}}\"\n maxlength=\"1\"\n (input)=\"handleInput($event, i)\"\n (keydown)=\"handleKeydown($event, i)\"\n [formControlName]=\"i\"\n type=\"text\"\n />\n </div>\n</form>\n", styles: [".otp-container{display:flex;gap:15px}.otp-input{width:50px;height:46px;text-align:center;font-size:1.5rem;border:1px solid #66666658;border-radius:12px}.otp-input:focus{border-color:#ffe681;outline:none}\n"] }]
|
|
78
|
+
args: [{ selector: 'verben-otp-input', template: "<form [formGroup]=\"otpForm\" >\n <div formArrayName=\"otpArray\" class=\"otp-container\">\n <input\n *ngFor=\"let control of otpArray.controls; let i = index\"\n [id]=\"'otp-input-' + i\"\n class=\"otp-input {{otpClass}}\"\n maxlength=\"1\"\n (input)=\"handleInput($event, i)\"\n (keydown)=\"handleKeydown($event, i)\"\n (paste)=\"handlePaste($event)\"\n [formControlName]=\"i\"\n type=\"text\"\n />\n </div>\n</form>\n", styles: [".otp-container{display:flex;gap:15px}.otp-input{width:50px;height:46px;text-align:center;font-size:1.5rem;border:1px solid #66666658;border-radius:12px}.otp-input:focus{border-color:#ffe681;outline:none}\n"] }]
|
|
68
79
|
}], ctorParameters: () => [{ type: i1.FormBuilder }], propDecorators: { length: [{
|
|
69
80
|
type: Input
|
|
70
81
|
}], otpClass: [{
|
|
@@ -72,4 +83,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
72
83
|
}], otpChange: [{
|
|
73
84
|
type: Output
|
|
74
85
|
}] } });
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3RwLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi1hdXRoZW50aWNhdGlvbi11aS9zcmMvbGliL2NvbXBvbmVudHMvb3RwLWlucHV0L290cC1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tYXV0aGVudGljYXRpb24tdWkvc3JjL2xpYi9jb21wb25lbnRzL290cC1pbnB1dC9vdHAtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQTBCLFdBQVcsRUFBYSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBT2hGLE1BQU0sT0FBTyxpQkFBaUI7SUFPUjtJQU5YLE1BQU0sR0FBVyxDQUFDLENBQUM7SUFDbkIsUUFBUSxHQUFXLEVBQUUsQ0FBQztJQUNyQixTQUFTLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQUVqRCxPQUFPLENBQWE7SUFFcEIsWUFBb0IsRUFBZTtRQUFmLE9BQUUsR0FBRixFQUFFLENBQWE7SUFBRyxDQUFDO0lBRXZDLFFBQVE7UUFDTixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQzNCLFFBQVEsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNwRixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxTQUFTLENB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LENBQUMsY0FBYyxDQUFDLGFBQWEsS0FBSyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDcEUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFTyxPQUFPO1FBQ2IsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzNCLENBQUM7d0dBOUVVLGlCQUFpQjs0RkFBakIsaUJBQWlCLGlKQ1I5QiwyZEFlQTs7NEZEUGEsaUJBQWlCO2tCQUw3QixTQUFTOytCQUNFLGtCQUFrQjtnRkFLbkIsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0ksU0FBUztzQkFBbEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtQXJyYXksIEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlcmJlbi1vdHAtaW5wdXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vb3RwLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL290cC1pbnB1dC5jb21wb25lbnQuY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBPdHBJbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGxlbmd0aDogbnVtYmVyID0gNjtcbiAgQElucHV0KCkgb3RwQ2xhc3M6IHN0cmluZyA9ICcnO1xuICBAT3V0cHV0KCkgb3RwQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cbiAgb3RwRm9ybSE6IEZvcm1Hcm91cDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZiOiBGb3JtQnVpbGRlcikge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLm90cEZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIG90cEFycmF5OiB0aGlzLmZiLmFycmF5KEFycmF5KHRoaXMubGVuZ3RoKS5maWxsKCcnKS5tYXAoKCkgPT4gbmV3IEZvcm1Db250cm9sKCcnKSkpXG4gICAgfSk7XG5cbiAgICB0aGlzLm90cEFycmF5LnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5lbWl0T3RwKCk7XG4gICAgfSk7XG4gIH1cblxuICBnZXQgb3RwQXJyYXkoKTogRm9ybUFycmF5IHtcbiAgICByZXR1cm4gdGhpcy5vdHBGb3JtLmdldCgnb3RwQXJyYXknKSBhcyBGb3JtQXJyYXk7XG4gIH1cblxuICBoYW5kbGVJbnB1dChldmVudDogYW55LCBpbmRleDogbnVtYmVyKSB7XG4gICAgbGV0IHZhbHVlID0gZXZlbnQudGFyZ2V0LnZhbHVlO1xuXG4gICAgLy8gL1xcZC8udGVzdCh2YWx1ZSlcbiAgICBpZiAodmFsdWUubGVuZ3RoID4gMCkge1xuICAgICAgdmFsdWUgPSB2YWx1ZS50b1VwcGVyQ2FzZSgpO1xuICAgICAgdGhpcy5vdHBBcnJheS5hdChpbmRleCkuc2V0VmFsdWUodmFsdWUpO1xuXG4gICAgICBpZiAoaW5kZXggPCB0aGlzLmxlbmd0aCAtIDEpIHtcbiAgICAgICAgdGhpcy5mb2N1c05leHRJbnB1dChpbmRleCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub3RwQXJyYXkuYXQoaW5kZXgpLnNldFZhbHVlKCcnKTsgXG4gICAgfVxuICB9XG5cbiAgaGFuZGxlS2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCwgaW5kZXg6IG51bWJlcikge1xuICAgIGlmIChldmVudC5rZXkgPT09ICdCYWNrc3BhY2UnKSB7XG4gICAgICBjb25zdCBjdXJyZW50VmFsdWUgPSB0aGlzLm90cEFycmF5LmF0KGluZGV4KS52YWx1ZTtcbiAgXG4gICAgICBpZiAoY3VycmVudFZhbHVlKSB7XG4gICAgICAgIHRoaXMub3RwQXJyYXkuYXQoaW5kZXgpLnNldFZhbHVlKCcnKTtcbiAgICAgIH0gZWxzZSBpZiAoaW5kZXggPiAwKSB7XG4gICAgICAgIHRoaXMuZm9jdXNQcmV2aW91c0lucHV0KGluZGV4KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBoYW5kbGVQYXN0ZShldmVudDogQ2xpcGJvYXJkRXZlbnQpIHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGNvbnN0IHBhc3RlZERhdGEgPSAoZXZlbnQuY2xpcGJvYXJkRGF0YT8uZ2V0RGF0YSgndGV4dCcpIHx8ICcnKS50b1VwcGVyQ2FzZSgpO1xuICAgIGNvbnN0IHZhbGlkRGF0YSA9IHBhc3RlZERhdGEuc2xpY2UoMCwgdGhpcy5sZW5ndGgpO1xuXG4gICAgdmFsaWREYXRhLnNwbGl0KCcnKS5mb3JFYWNoKChjaGFyLCBpbmRleCkgPT4ge1xuICAgICAgdGhpcy5vdHBBcnJheS5hdChpbmRleCkuc2V0VmFsdWUoY2hhcik7XG4gICAgfSk7XG5cbiAgICBjb25zdCBuZXh0SW5kZXggPSB2YWxpZERhdGEubGVuZ3RoIDwgdGhpcy5sZW5ndGggPyB2YWxpZERhdGEubGVuZ3RoIDogdGhpcy5sZW5ndGggLSAxO1xuICAgIHRoaXMuZm9jdXNOZXh0SW5wdXQobmV4dEluZGV4IC0gMSk7XG4gIH1cblxuXG4gIHByaXZhdGUgZm9jdXNOZXh0SW5wdXQoaW5kZXg6IG51bWJlcikge1xuICAgIGNvbnN0IG5leHRJbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGBvdHAtaW5wdXQtJHtpbmRleCArIDF9YCk7XG4gICAgbmV4dElucHV0Py5mb2N1cygpO1xuICB9XG5cbiAgcHJpdmF0ZSBmb2N1c1ByZXZpb3VzSW5wdXQoaW5kZXg6IG51bWJlcikge1xuICAgIGNvbnN0IHByZXZJbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGBvdHAtaW5wdXQtJHtpbmRleCAtIDF9YCk7XG4gICAgcHJldklucHV0Py5mb2N1cygpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0T3RwKCkge1xuICAgIGNvbnN0IG90cCA9IHRoaXMub3RwQXJyYXkudmFsdWUuam9pbignJyk7XG4gICAgdGhpcy5vdHBDaGFuZ2UuZW1pdChvdHApO1xuICB9XG59XG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cIm90cEZvcm1cIiA+XG4gIDxkaXYgZm9ybUFycmF5TmFtZT1cIm90cEFycmF5XCIgY2xhc3M9XCJvdHAtY29udGFpbmVyXCI+XG4gICAgPGlucHV0XG4gICAgICAqbmdGb3I9XCJsZXQgY29udHJvbCBvZiBvdHBBcnJheS5jb250cm9sczsgbGV0IGkgPSBpbmRleFwiXG4gICAgICBbaWRdPVwiJ290cC1pbnB1dC0nICsgaVwiXG4gICAgICBjbGFzcz1cIm90cC1pbnB1dCB7e290cENsYXNzfX1cIlxuICAgICAgbWF4bGVuZ3RoPVwiMVwiXG4gICAgICAoaW5wdXQpPVwiaGFuZGxlSW5wdXQoJGV2ZW50LCBpKVwiXG4gICAgICAoa2V5ZG93bik9XCJoYW5kbGVLZXlkb3duKCRldmVudCwgaSlcIlxuICAgICAgKHBhc3RlKT1cImhhbmRsZVBhc3RlKCRldmVudClcIlxuICAgICAgW2Zvcm1Db250cm9sTmFtZV09XCJpXCJcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAvPlxuICA8L2Rpdj5cbjwvZm9ybT5cbiJdfQ==
|