ngx-vector-components 0.0.11 → 1.0.1

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/CHANGELOG.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Changelog
2
2
 
3
- ## [0.0.2] (21/02/2022)
3
+ ## [1.0.1] (27/02/2022)
4
4
 
5
5
  ### Bug Fixes
6
6
 
@@ -13,6 +13,20 @@
13
13
  width: 100% !important;
14
14
  }
15
15
 
16
+ p-calendar.ng-touched.ng-invalid input {
17
+ border-color: $error-color !important;
18
+ background-color: $error-color-transparent !important;
19
+
20
+ &:focus {
21
+ border-color: $theme-dark !important;
22
+ background-color: #fff !important;
23
+ }
24
+ }
25
+ p-calendar.ng-touched.ng-invalid .p-datepicker-trigger {
26
+ border-color: $error-color !important;
27
+ background-color: $error-color-transparent !important;
28
+ }
29
+
16
30
  .p-calendar .p-inputtext {
17
31
  color: $theme-dark !important;
18
32
  font-weight: 600 !important;
@@ -391,6 +405,15 @@ p-inputnumber.currency-input:not(.outlined) {
391
405
  width: 100%;
392
406
  }
393
407
 
408
+ p-autocomplete.ng-touched.ng-invalid input {
409
+ border-color: $error-color !important;
410
+ background-color: $error-color-transparent !important;
411
+ }
412
+ p-autocomplete.ng-touched.ng-invalid .p-autocomplete-dropdown {
413
+ border-color: $error-color !important;
414
+ background-color: $error-color-transparent !important;
415
+ }
416
+
394
417
  .p-dropdown-panel,
395
418
  .p-autocomplete-panel {
396
419
  max-width: 250px !important;
@@ -580,3 +603,45 @@ p-tabview {
580
603
  border: none !important;
581
604
  background: transparent !important;
582
605
  }
606
+
607
+ .p-chip {
608
+ display: inline-block;
609
+ padding: 0 16px !important;
610
+ height: 40px;
611
+ font-weight: 500;
612
+ font-size: 13px;
613
+ line-height: 40px;
614
+ border-radius: 25px !important;
615
+ background-color: #e5e5ea !important;
616
+ color: #002463 !important;
617
+ opacity: 0.5;
618
+
619
+ span {
620
+ border: 2px solid;
621
+ border-radius: 50%;
622
+ width: 25px;
623
+ height: 25px;
624
+ margin-left: 5px;
625
+ margin-top: 7px;
626
+ color: #abaab5;
627
+
628
+ i {
629
+ position: relative;
630
+ top: -11px;
631
+ left: -6px;
632
+ font-size: 12px;
633
+ }
634
+ }
635
+
636
+ .closebtn {
637
+ padding-left: 10px;
638
+ font-weight: bold;
639
+ float: right;
640
+ font-size: 20px;
641
+ cursor: pointer;
642
+ }
643
+
644
+ .closebtn:hover {
645
+ color: #000;
646
+ }
647
+ }
@@ -1,4 +1,4 @@
1
- $theme-primary: #01466c;
1
+ $theme-primary: #0046E8;
2
2
  $theme-dark: #3a2b68;
3
3
  $background: #f2f2f7;
4
4
  $font-color: #151515;
@@ -48,10 +48,10 @@ export class BreadcrumbComponent {
48
48
  }
49
49
  }
50
50
  BreadcrumbComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: BreadcrumbComponent, deps: [{ token: i1.Router }, { token: 'environment' }, { token: 'menuOptions' }], target: i0.ɵɵFactoryTarget.Component });
51
- BreadcrumbComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: BreadcrumbComponent, selector: "vector-breadcrumb", ngImport: i0, template: "<div class=\"breadcrumb-container\" *ngIf=\"routeFragments?.length\">\r\n <div class=\"route-path\">\r\n <span class=\"app-name\">{{ appName }}</span>\r\n <div *ngIf=\"routeFragments.length < 2\" class=\"chevron\"></div>\r\n <span class=\"route-fragment\" *ngFor=\"let fragment of routeFragments | removeLastChild\"\r\n ><div class=\"chevron\"></div>\r\n {{ fragment }}</span\r\n >\r\n </div>\r\n <span class=\"last-route\">\r\n {{ routeFragments[routeFragments.length - 1] }}\r\n </span>\r\n</div>\r\n", styles: [".breadcrumb-container{display:flex;flex-direction:column;margin-bottom:15px}.breadcrumb-container .route-path{display:flex;flex-direction:row;color:#6e7f88}.breadcrumb-container .app-name,.breadcrumb-container .last-route,.breadcrumb-container .route-path .route-fragment{font-weight:400;letter-spacing:.75px;display:flex;flex-direction:row;align-items:center}.breadcrumb-container .chevron{margin:0 5px;background-image:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2212%22 height%3D%227.4%22 viewBox%3D%220 0 12 7.4%22%3E%0D %3Cpath id%3D%22Caminho_1437%22 data-name%3D%22Caminho 1437%22 d%3D%22M1526.175%2C366.14l4.6%2C4.6%2C4.6-4.6%2C1.4%2C1.4-6%2C6-6-6Z%22 transform%3D%22translate(-1524.775 -366.14)%22 fill%3D%22%23333%22%2F%3E%0D%3C%2Fsvg%3E%0D\");background-repeat:no-repeat;background-position:center;transform:rotate(-90deg);width:20px;height:20px;filter:invert(53%) sepia(13%) saturate(450%) hue-rotate(156deg) brightness(89%) contrast(85%)}.breadcrumb-container .last-route{font-size:1.5em;color:#11b797}\n"], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "removeLastChild": i3.RemoveLastChildPipe } });
51
+ BreadcrumbComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: BreadcrumbComponent, selector: "vector-breadcrumb", ngImport: i0, template: "<div class=\"breadcrumb-container\" *ngIf=\"routeFragments?.length\">\r\n <div class=\"route-path\">\r\n <span class=\"app-name\">{{ appName }}</span>\r\n <div *ngIf=\"routeFragments.length < 2\" class=\"chevron\"></div>\r\n <span class=\"route-fragment\" *ngFor=\"let fragment of routeFragments | removeLastChild\"\r\n ><div class=\"chevron\"></div>\r\n {{ fragment }}</span\r\n >\r\n </div>\r\n <span class=\"last-route\">\r\n {{ routeFragments[routeFragments.length - 1] }}\r\n </span>\r\n</div>\r\n", styles: [".breadcrumb-container{display:flex;flex-direction:column;margin-bottom:15px}.breadcrumb-container .route-path{display:flex;flex-direction:row;color:#6e7f88}.breadcrumb-container .app-name,.breadcrumb-container .last-route,.breadcrumb-container .route-path .route-fragment{font-weight:400;letter-spacing:.75px;display:flex;flex-direction:row;align-items:center}.breadcrumb-container .chevron{margin:0 5px;background-image:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2212%22 height%3D%227.4%22 viewBox%3D%220 0 12 7.4%22%3E%0D %3Cpath id%3D%22Caminho_1437%22 data-name%3D%22Caminho 1437%22 d%3D%22M1526.175%2C366.14l4.6%2C4.6%2C4.6-4.6%2C1.4%2C1.4-6%2C6-6-6Z%22 transform%3D%22translate(-1524.775 -366.14)%22 fill%3D%22%23333%22%2F%3E%0D%3C%2Fsvg%3E%0D\");background-repeat:no-repeat;background-position:center;transform:rotate(-90deg);width:20px;height:20px;filter:invert(53%) sepia(13%) saturate(450%) hue-rotate(156deg) brightness(89%) contrast(85%)}.breadcrumb-container .last-route{font-size:1.5em;color:#0046e8}\n"], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "removeLastChild": i3.RemoveLastChildPipe } });
52
52
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: BreadcrumbComponent, decorators: [{
53
53
  type: Component,
54
- args: [{ selector: 'vector-breadcrumb', template: "<div class=\"breadcrumb-container\" *ngIf=\"routeFragments?.length\">\r\n <div class=\"route-path\">\r\n <span class=\"app-name\">{{ appName }}</span>\r\n <div *ngIf=\"routeFragments.length < 2\" class=\"chevron\"></div>\r\n <span class=\"route-fragment\" *ngFor=\"let fragment of routeFragments | removeLastChild\"\r\n ><div class=\"chevron\"></div>\r\n {{ fragment }}</span\r\n >\r\n </div>\r\n <span class=\"last-route\">\r\n {{ routeFragments[routeFragments.length - 1] }}\r\n </span>\r\n</div>\r\n", styles: [".breadcrumb-container{display:flex;flex-direction:column;margin-bottom:15px}.breadcrumb-container .route-path{display:flex;flex-direction:row;color:#6e7f88}.breadcrumb-container .app-name,.breadcrumb-container .last-route,.breadcrumb-container .route-path .route-fragment{font-weight:400;letter-spacing:.75px;display:flex;flex-direction:row;align-items:center}.breadcrumb-container .chevron{margin:0 5px;background-image:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2212%22 height%3D%227.4%22 viewBox%3D%220 0 12 7.4%22%3E%0D %3Cpath id%3D%22Caminho_1437%22 data-name%3D%22Caminho 1437%22 d%3D%22M1526.175%2C366.14l4.6%2C4.6%2C4.6-4.6%2C1.4%2C1.4-6%2C6-6-6Z%22 transform%3D%22translate(-1524.775 -366.14)%22 fill%3D%22%23333%22%2F%3E%0D%3C%2Fsvg%3E%0D\");background-repeat:no-repeat;background-position:center;transform:rotate(-90deg);width:20px;height:20px;filter:invert(53%) sepia(13%) saturate(450%) hue-rotate(156deg) brightness(89%) contrast(85%)}.breadcrumb-container .last-route{font-size:1.5em;color:#11b797}\n"] }]
54
+ args: [{ selector: 'vector-breadcrumb', template: "<div class=\"breadcrumb-container\" *ngIf=\"routeFragments?.length\">\r\n <div class=\"route-path\">\r\n <span class=\"app-name\">{{ appName }}</span>\r\n <div *ngIf=\"routeFragments.length < 2\" class=\"chevron\"></div>\r\n <span class=\"route-fragment\" *ngFor=\"let fragment of routeFragments | removeLastChild\"\r\n ><div class=\"chevron\"></div>\r\n {{ fragment }}</span\r\n >\r\n </div>\r\n <span class=\"last-route\">\r\n {{ routeFragments[routeFragments.length - 1] }}\r\n </span>\r\n</div>\r\n", styles: [".breadcrumb-container{display:flex;flex-direction:column;margin-bottom:15px}.breadcrumb-container .route-path{display:flex;flex-direction:row;color:#6e7f88}.breadcrumb-container .app-name,.breadcrumb-container .last-route,.breadcrumb-container .route-path .route-fragment{font-weight:400;letter-spacing:.75px;display:flex;flex-direction:row;align-items:center}.breadcrumb-container .chevron{margin:0 5px;background-image:url(\"data:image/svg+xml,%3Csvg xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22 width%3D%2212%22 height%3D%227.4%22 viewBox%3D%220 0 12 7.4%22%3E%0D %3Cpath id%3D%22Caminho_1437%22 data-name%3D%22Caminho 1437%22 d%3D%22M1526.175%2C366.14l4.6%2C4.6%2C4.6-4.6%2C1.4%2C1.4-6%2C6-6-6Z%22 transform%3D%22translate(-1524.775 -366.14)%22 fill%3D%22%23333%22%2F%3E%0D%3C%2Fsvg%3E%0D\");background-repeat:no-repeat;background-position:center;transform:rotate(-90deg);width:20px;height:20px;filter:invert(53%) sepia(13%) saturate(450%) hue-rotate(156deg) brightness(89%) contrast(85%)}.breadcrumb-container .last-route{font-size:1.5em;color:#0046e8}\n"] }]
55
55
  }], ctorParameters: function () { return [{ type: i1.Router }, { type: undefined, decorators: [{
56
56
  type: Inject,
57
57
  args: ['environment']
@@ -16,10 +16,10 @@ export class ButtonComponent {
16
16
  }
17
17
  }
18
18
  ButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: ButtonComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
19
- ButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: ButtonComponent, selector: "vector-button", inputs: { disabled: "disabled", label: "label", type: "type", leftIcon: "leftIcon", noShadow: "noShadow" }, outputs: { onClick: "onClick" }, ngImport: i0, template: "<button\r\n pButton\r\n class=\"button shadow-3\"\r\n type=\"button\"\r\n [ngClass]=\"styleClass\"\r\n [label]=\"label\"\r\n [disabled]=\"disabled\"\r\n [icon]=\"leftIcon\"\r\n (click)=\"onClick?.emit($event)\"\r\n></button>\r\n", styles: [".button{width:100%;border-width:2px;border-radius:5px;background-color:#3a2b68;border-color:#3a2b68;color:#fff;box-shadow:0 5px 5px #0046e880}.button:hover:not(:disabled){background-color:#003049;border-color:#003049}.button:focus{box-shadow:none}.button:disabled{cursor:not-allowed}.no-shadow{box-shadow:none}.default{background-color:#fff;border-color:#3a2b68;color:#3a2b68}.default:hover:not(:disabled){background-color:#3a2b68;border-color:#3a2b68;color:#fff}.default-filled{background-color:#01466c;border-color:#01466c;color:#fff}.default-filled:hover:not(:disabled){background-color:#3a2b68;border-color:#3a2b68}.cancel{background-color:#fff;border-color:#fd6a6a;color:#fd6a6a}.cancel:hover:not(:disabled){background-color:#ff4136;border-color:#ff4136;color:#fff}.cancel-filled{background-color:#fd6a6a;border-color:#fd6a6a;color:#fff}.cancel-filled:hover:not(:disabled){background-color:#ff4136;border-color:#ff4136}.success{background-color:#11b797;border-color:#11b797}.success:hover:not(:disabled){background-color:#0e8a71;border-color:#0e8a71}.success-outlined{background-color:#fff;border-color:#11b797;color:#11b797}.success-outlined:hover:not(:disabled){background-color:#0e8a71;border-color:#0e8a71}\n"], directives: [{ type: i1.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
19
+ ButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: ButtonComponent, selector: "vector-button", inputs: { disabled: "disabled", label: "label", type: "type", leftIcon: "leftIcon", noShadow: "noShadow" }, outputs: { onClick: "onClick" }, ngImport: i0, template: "<button\r\n pButton\r\n class=\"button shadow-3\"\r\n type=\"button\"\r\n [ngClass]=\"styleClass\"\r\n [label]=\"label\"\r\n [disabled]=\"disabled\"\r\n [icon]=\"leftIcon\"\r\n (click)=\"onClick?.emit($event)\"\r\n></button>\r\n", styles: [".button{width:100%;border-width:2px;border-radius:5px;background-color:#3a2b68;border-color:#3a2b68;color:#fff;box-shadow:0 5px 5px #0046e880}.button:hover:not(:disabled){background-color:#003049;border-color:#003049}.button:focus{box-shadow:none}.button:disabled{cursor:not-allowed}.no-shadow{box-shadow:none}.default{background-color:#fff;border-color:#3a2b68;color:#3a2b68}.default:hover:not(:disabled){background-color:#3a2b68;border-color:#3a2b68;color:#fff}.default-filled{background-color:#0046e8;border-color:#0046e8;color:#fff}.default-filled:hover:not(:disabled){background-color:#3a2b68;border-color:#3a2b68}.cancel{background-color:#fff;border-color:#fd6a6a;color:#fd6a6a}.cancel:hover:not(:disabled){background-color:#ff4136;border-color:#ff4136;color:#fff}.cancel-filled{background-color:#fd6a6a;border-color:#fd6a6a;color:#fff}.cancel-filled:hover:not(:disabled){background-color:#ff4136;border-color:#ff4136}.success{background-color:#11b797;border-color:#11b797}.success:hover:not(:disabled){background-color:#0e8a71;border-color:#0e8a71}.success-outlined{background-color:#fff;border-color:#11b797;color:#11b797}.success-outlined:hover:not(:disabled){background-color:#0e8a71;border-color:#0e8a71}\n"], directives: [{ type: i1.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
20
20
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: ButtonComponent, decorators: [{
21
21
  type: Component,
22
- args: [{ selector: 'vector-button', template: "<button\r\n pButton\r\n class=\"button shadow-3\"\r\n type=\"button\"\r\n [ngClass]=\"styleClass\"\r\n [label]=\"label\"\r\n [disabled]=\"disabled\"\r\n [icon]=\"leftIcon\"\r\n (click)=\"onClick?.emit($event)\"\r\n></button>\r\n", styles: [".button{width:100%;border-width:2px;border-radius:5px;background-color:#3a2b68;border-color:#3a2b68;color:#fff;box-shadow:0 5px 5px #0046e880}.button:hover:not(:disabled){background-color:#003049;border-color:#003049}.button:focus{box-shadow:none}.button:disabled{cursor:not-allowed}.no-shadow{box-shadow:none}.default{background-color:#fff;border-color:#3a2b68;color:#3a2b68}.default:hover:not(:disabled){background-color:#3a2b68;border-color:#3a2b68;color:#fff}.default-filled{background-color:#01466c;border-color:#01466c;color:#fff}.default-filled:hover:not(:disabled){background-color:#3a2b68;border-color:#3a2b68}.cancel{background-color:#fff;border-color:#fd6a6a;color:#fd6a6a}.cancel:hover:not(:disabled){background-color:#ff4136;border-color:#ff4136;color:#fff}.cancel-filled{background-color:#fd6a6a;border-color:#fd6a6a;color:#fff}.cancel-filled:hover:not(:disabled){background-color:#ff4136;border-color:#ff4136}.success{background-color:#11b797;border-color:#11b797}.success:hover:not(:disabled){background-color:#0e8a71;border-color:#0e8a71}.success-outlined{background-color:#fff;border-color:#11b797;color:#11b797}.success-outlined:hover:not(:disabled){background-color:#0e8a71;border-color:#0e8a71}\n"] }]
22
+ args: [{ selector: 'vector-button', template: "<button\r\n pButton\r\n class=\"button shadow-3\"\r\n type=\"button\"\r\n [ngClass]=\"styleClass\"\r\n [label]=\"label\"\r\n [disabled]=\"disabled\"\r\n [icon]=\"leftIcon\"\r\n (click)=\"onClick?.emit($event)\"\r\n></button>\r\n", styles: [".button{width:100%;border-width:2px;border-radius:5px;background-color:#3a2b68;border-color:#3a2b68;color:#fff;box-shadow:0 5px 5px #0046e880}.button:hover:not(:disabled){background-color:#003049;border-color:#003049}.button:focus{box-shadow:none}.button:disabled{cursor:not-allowed}.no-shadow{box-shadow:none}.default{background-color:#fff;border-color:#3a2b68;color:#3a2b68}.default:hover:not(:disabled){background-color:#3a2b68;border-color:#3a2b68;color:#fff}.default-filled{background-color:#0046e8;border-color:#0046e8;color:#fff}.default-filled:hover:not(:disabled){background-color:#3a2b68;border-color:#3a2b68}.cancel{background-color:#fff;border-color:#fd6a6a;color:#fd6a6a}.cancel:hover:not(:disabled){background-color:#ff4136;border-color:#ff4136;color:#fff}.cancel-filled{background-color:#fd6a6a;border-color:#fd6a6a;color:#fff}.cancel-filled:hover:not(:disabled){background-color:#ff4136;border-color:#ff4136}.success{background-color:#11b797;border-color:#11b797}.success:hover:not(:disabled){background-color:#0e8a71;border-color:#0e8a71}.success-outlined{background-color:#fff;border-color:#11b797;color:#11b797}.success-outlined:hover:not(:disabled){background-color:#0e8a71;border-color:#0e8a71}\n"] }]
23
23
  }], propDecorators: { disabled: [{
24
24
  type: Input
25
25
  }], label: [{
@@ -14,6 +14,7 @@ export class CalendarComponent {
14
14
  this.max = DateTime.now().startOf('day').plus({ years: 1 }).toJSDate();
15
15
  this.disabledDates = [];
16
16
  this.disabled = false;
17
+ this.defaultDate = DateTime.now().toJSDate();
17
18
  this.keyFilter = '';
18
19
  }
19
20
  get placeholder() {
@@ -42,10 +43,10 @@ export class CalendarComponent {
42
43
  }
43
44
  }
44
45
  CalendarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: CalendarComponent, deps: [{ token: i1.ModalService }], target: i0.ɵɵFactoryTarget.Component });
45
- CalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: CalendarComponent, selector: "vector-calendar-field", inputs: { isRequired: "isRequired", control: "control", label: "label", showCalendarOnFocus: "showCalendarOnFocus", min: "min", max: "max", disabledDates: "disabledDates", disabled: "disabled" }, ngImport: i0, template: "<div class=\"input-container\">\r\n <p-calendar\r\n appendTo=\"body\"\r\n [formControl]=\"control\"\r\n [showOnFocus]=\"showCalendarOnFocus\"\r\n [minDate]=\"min\"\r\n [maxDate]=\"max\"\r\n icon=\"fas fa-calendar-day\"\r\n [showIcon]=\"true\"\r\n [disabledDates]=\"disabledDates\"\r\n [readonlyInput]=\"false\"\r\n (onShow)=\"onShowCalendar()\"\r\n (onClose)=\"onHideCalendar()\"\r\n [disabled]=\"disabled\"\r\n ></p-calendar>\r\n</div>\r\n", styles: [".input-container input{transition:border-width ease-in-out .08s;border:1px solid rgba(0,0,0,.6);width:100%;padding:6px 30px 6px 12px;font-size:14px;line-height:1.5em;border-radius:5px;height:40px}.input-container input:disabled{cursor:not-allowed;background-color:#bcbcbc;opacity:1}.input-container input:focus{outline:0;box-shadow:none;border-width:2px}.input-container input::placeholder{color:#aaaaaa80;font-size:12px}.input-container input.ng-touched.ng-invalid{border-color:#fd6a6a!important}.input-container .input-error{font-size:.7em;color:#fd6a6a}\n"], components: [{ type: i2.Calendar, selector: "p-calendar", inputs: ["style", "styleClass", "inputStyle", "inputId", "name", "inputStyleClass", "placeholder", "ariaLabelledBy", "iconAriaLabel", "disabled", "dateFormat", "multipleSeparator", "rangeSeparator", "inline", "showOtherMonths", "selectOtherMonths", "showIcon", "icon", "appendTo", "readonlyInput", "shortYearCutoff", "monthNavigator", "yearNavigator", "hourFormat", "timeOnly", "stepHour", "stepMinute", "stepSecond", "showSeconds", "required", "showOnFocus", "showWeek", "dataType", "selectionMode", "maxDateCount", "showButtonBar", "todayButtonStyleClass", "clearButtonStyleClass", "autoZIndex", "baseZIndex", "panelStyleClass", "panelStyle", "keepInvalid", "hideOnDateTimeSelect", "touchUI", "timeSeparator", "focusTrap", "showTransitionOptions", "hideTransitionOptions", "tabindex", "view", "defaultDate", "minDate", "maxDate", "disabledDates", "disabledDays", "yearRange", "showTime", "responsiveOptions", "numberOfMonths", "firstDayOfWeek", "locale"], outputs: ["onFocus", "onBlur", "onClose", "onSelect", "onInput", "onTodayClick", "onClearClick", "onMonthChange", "onYearChange", "onClickOutside", "onShow"] }], directives: [{ type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
46
+ CalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: CalendarComponent, selector: "vector-calendar-field", inputs: { isRequired: "isRequired", control: "control", label: "label", showCalendarOnFocus: "showCalendarOnFocus", min: "min", max: "max", disabledDates: "disabledDates", disabled: "disabled", defaultDate: "defaultDate" }, ngImport: i0, template: "<div class=\"input-container\">\r\n <p-calendar\r\n appendTo=\"body\"\r\n [formControl]=\"control\"\r\n [showOnFocus]=\"showCalendarOnFocus\"\r\n [minDate]=\"min\"\r\n [maxDate]=\"max\"\r\n icon=\"fas fa-calendar-day\"\r\n [showIcon]=\"true\"\r\n [disabledDates]=\"disabledDates\"\r\n [readonlyInput]=\"false\"\r\n (onShow)=\"onShowCalendar()\"\r\n (onClose)=\"onHideCalendar()\"\r\n [disabled]=\"disabled\"\r\n [defaultDate]=\"defaultDate\"\r\n ></p-calendar>\r\n</div>\r\n", styles: [".input-container input{transition:border-width ease-in-out .08s;border:1px solid rgba(0,0,0,.6);width:100%;padding:6px 30px 6px 12px;font-size:14px;line-height:1.5em;border-radius:5px;height:40px}.input-container input:disabled{cursor:not-allowed;background-color:#bcbcbc;opacity:1}.input-container input:focus{outline:0;box-shadow:none;border-width:2px}.input-container input::placeholder{color:#aaaaaa80;font-size:12px}.input-container input.ng-touched.ng-invalid{border-color:#fd6a6a!important}.input-container .input-error{font-size:.7em;color:#fd6a6a}\n"], components: [{ type: i2.Calendar, selector: "p-calendar", inputs: ["style", "styleClass", "inputStyle", "inputId", "name", "inputStyleClass", "placeholder", "ariaLabelledBy", "iconAriaLabel", "disabled", "dateFormat", "multipleSeparator", "rangeSeparator", "inline", "showOtherMonths", "selectOtherMonths", "showIcon", "icon", "appendTo", "readonlyInput", "shortYearCutoff", "monthNavigator", "yearNavigator", "hourFormat", "timeOnly", "stepHour", "stepMinute", "stepSecond", "showSeconds", "required", "showOnFocus", "showWeek", "dataType", "selectionMode", "maxDateCount", "showButtonBar", "todayButtonStyleClass", "clearButtonStyleClass", "autoZIndex", "baseZIndex", "panelStyleClass", "panelStyle", "keepInvalid", "hideOnDateTimeSelect", "touchUI", "timeSeparator", "focusTrap", "showTransitionOptions", "hideTransitionOptions", "tabindex", "view", "defaultDate", "minDate", "maxDate", "disabledDates", "disabledDays", "yearRange", "showTime", "responsiveOptions", "numberOfMonths", "firstDayOfWeek", "locale"], outputs: ["onFocus", "onBlur", "onClose", "onSelect", "onInput", "onTodayClick", "onClearClick", "onMonthChange", "onYearChange", "onClickOutside", "onShow"] }], directives: [{ type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
46
47
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: CalendarComponent, decorators: [{
47
48
  type: Component,
48
- args: [{ selector: 'vector-calendar-field', template: "<div class=\"input-container\">\r\n <p-calendar\r\n appendTo=\"body\"\r\n [formControl]=\"control\"\r\n [showOnFocus]=\"showCalendarOnFocus\"\r\n [minDate]=\"min\"\r\n [maxDate]=\"max\"\r\n icon=\"fas fa-calendar-day\"\r\n [showIcon]=\"true\"\r\n [disabledDates]=\"disabledDates\"\r\n [readonlyInput]=\"false\"\r\n (onShow)=\"onShowCalendar()\"\r\n (onClose)=\"onHideCalendar()\"\r\n [disabled]=\"disabled\"\r\n ></p-calendar>\r\n</div>\r\n", styles: [".input-container input{transition:border-width ease-in-out .08s;border:1px solid rgba(0,0,0,.6);width:100%;padding:6px 30px 6px 12px;font-size:14px;line-height:1.5em;border-radius:5px;height:40px}.input-container input:disabled{cursor:not-allowed;background-color:#bcbcbc;opacity:1}.input-container input:focus{outline:0;box-shadow:none;border-width:2px}.input-container input::placeholder{color:#aaaaaa80;font-size:12px}.input-container input.ng-touched.ng-invalid{border-color:#fd6a6a!important}.input-container .input-error{font-size:.7em;color:#fd6a6a}\n"] }]
49
+ args: [{ selector: 'vector-calendar-field', template: "<div class=\"input-container\">\r\n <p-calendar\r\n appendTo=\"body\"\r\n [formControl]=\"control\"\r\n [showOnFocus]=\"showCalendarOnFocus\"\r\n [minDate]=\"min\"\r\n [maxDate]=\"max\"\r\n icon=\"fas fa-calendar-day\"\r\n [showIcon]=\"true\"\r\n [disabledDates]=\"disabledDates\"\r\n [readonlyInput]=\"false\"\r\n (onShow)=\"onShowCalendar()\"\r\n (onClose)=\"onHideCalendar()\"\r\n [disabled]=\"disabled\"\r\n [defaultDate]=\"defaultDate\"\r\n ></p-calendar>\r\n</div>\r\n", styles: [".input-container input{transition:border-width ease-in-out .08s;border:1px solid rgba(0,0,0,.6);width:100%;padding:6px 30px 6px 12px;font-size:14px;line-height:1.5em;border-radius:5px;height:40px}.input-container input:disabled{cursor:not-allowed;background-color:#bcbcbc;opacity:1}.input-container input:focus{outline:0;box-shadow:none;border-width:2px}.input-container input::placeholder{color:#aaaaaa80;font-size:12px}.input-container input.ng-touched.ng-invalid{border-color:#fd6a6a!important}.input-container .input-error{font-size:.7em;color:#fd6a6a}\n"] }]
49
50
  }], ctorParameters: function () { return [{ type: i1.ModalService }]; }, propDecorators: { isRequired: [{
50
51
  type: Input
51
52
  }], control: [{
@@ -62,5 +63,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImpor
62
63
  type: Input
63
64
  }], disabled: [{
64
65
  type: Input
66
+ }], defaultDate: [{
67
+ type: Input
65
68
  }] } });
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZlY3Rvci1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9maWVsZHMvY2FsZW5kYXItZmllbGQvY2FsZW5kYXItZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZlY3Rvci1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9maWVsZHMvY2FsZW5kYXItZmllbGQvY2FsZW5kYXItZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLE9BQU8sQ0FBQzs7Ozs7QUFRakMsTUFBTSxPQUFPLGlCQUFpQjtJQTJCNUIsWUFBb0IsWUFBMEI7UUFBMUIsaUJBQVksR0FBWixZQUFZLENBQWM7UUF6QnZDLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFJNUIsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUVuQix3QkFBbUIsR0FBRyxJQUFJLENBQUM7UUFFM0IsUUFBRyxHQUFTLFFBQVEsQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRXZFLFFBQUcsR0FBUyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRXhFLGtCQUFhLEdBQVcsRUFBRSxDQUFDO1FBRTNCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFTMUIsY0FBUyxHQUFHLEVBQUUsQ0FBQztJQUUyQixDQUFDO0lBVGxELElBQUksV0FBVztRQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2YsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUNELE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7SUFDdEQsQ0FBQztJQU1NLGVBQWU7UUFDcEIsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFO1lBQ2hFLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUU7Z0JBQ3JDLE9BQU8sbUJBQW1CLENBQUM7YUFDNUI7WUFFRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxFQUFFO2dCQUN0QyxPQUFPLDZCQUE2QixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQzthQUN2RjtZQUVELE9BQU8sZ0JBQWdCLENBQUM7U0FDekI7UUFFRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFTSxjQUFjO1FBQ25CLElBQUksQ0FBQyxZQUFZLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFTSxjQUFjO1FBQ25CLElBQUksQ0FBQyxZQUFZLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JELENBQUM7OzhHQW5EVSxpQkFBaUI7a0dBQWpCLGlCQUFpQixpUUNUOUIsZ2VBZ0JBOzJGRFBhLGlCQUFpQjtrQkFMN0IsU0FBUzsrQkFDRSx1QkFBdUI7bUdBTTFCLFVBQVU7c0JBRGhCLEtBQUs7Z0JBR0MsT0FBTztzQkFEYixLQUFLO2dCQUdDLEtBQUs7c0JBRFgsS0FBSztnQkFHQyxtQkFBbUI7c0JBRHpCLEtBQUs7Z0JBR0MsR0FBRztzQkFEVCxLQUFLO2dCQUdDLEdBQUc7c0JBRFQsS0FBSztnQkFHQyxhQUFhO3NCQURuQixLQUFLO2dCQUdDLFFBQVE7c0JBRGQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGF0ZVRpbWUgfSBmcm9tICdsdXhvbic7XHJcbmltcG9ydCB7IE1vZGFsU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndmVjdG9yLWNhbGVuZGFyLWZpZWxkJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY2FsZW5kYXItZmllbGQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NhbGVuZGFyLWZpZWxkLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDYWxlbmRhckNvbXBvbmVudCB7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgaXNSZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGNvbnRyb2w6IGFueTtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBsYWJlbDogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2hvd0NhbGVuZGFyT25Gb2N1cyA9IHRydWU7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgbWluOiBEYXRlID0gRGF0ZVRpbWUuZnJvbUZvcm1hdCgnMDEvMDEvMTkwMCcsICdkZC9NTS95eXl5JykudG9KU0RhdGUoKTtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBtYXg6IERhdGUgPSBEYXRlVGltZS5ub3coKS5zdGFydE9mKCdkYXknKS5wbHVzKHsgeWVhcnM6IDEgfSkudG9KU0RhdGUoKTtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBkaXNhYmxlZERhdGVzOiBEYXRlW10gPSBbXTtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBnZXQgcGxhY2Vob2xkZXIoKSB7XHJcbiAgICBpZiAoIXRoaXMubGFiZWwpIHtcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGAke3RoaXMubGFiZWx9JHt0aGlzLmlzUmVxdWlyZWQgPyAnKicgOiAnJ31gO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGtleUZpbHRlciA9ICcnO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIG1vZGFsU2VydmljZTogTW9kYWxTZXJ2aWNlKSB7fVxyXG5cclxuICBwdWJsaWMgZmllbGRFcnJvckxhYmVsKCk6IHN0cmluZyB7XHJcbiAgICBpZiAodGhpcy5jb250cm9sICYmIHRoaXMuY29udHJvbC5pbnZhbGlkICYmIHRoaXMuY29udHJvbC50b3VjaGVkKSB7XHJcbiAgICAgIGlmICh0aGlzLmNvbnRyb2wuaGFzRXJyb3IoJ3JlcXVpcmVkJykpIHtcclxuICAgICAgICByZXR1cm4gJ0NhbXBvIG9icmlnYXTDs3Jpbyc7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh0aGlzLmNvbnRyb2wuaGFzRXJyb3IoJ21heGxlbmd0aCcpKSB7XHJcbiAgICAgICAgcmV0dXJuIGBUYW1hbmhvIG3DoXhpbW8gcGVybWl0aWRvOiAke3RoaXMuY29udHJvbC5lcnJvcnNbJ21heGxlbmd0aCddLnJlcXVpcmVkTGVuZ3RofWA7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiAnQ2FtcG8gaW52w6FsaWRvJztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gJyc7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25TaG93Q2FsZW5kYXIoKSB7XHJcbiAgICB0aGlzLm1vZGFsU2VydmljZS5zaG93TW9kYWxCYWNrZ3JvdW5kJC5uZXh0KHRydWUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uSGlkZUNhbGVuZGFyKCkge1xyXG4gICAgdGhpcy5tb2RhbFNlcnZpY2Uuc2hvd01vZGFsQmFja2dyb3VuZCQubmV4dChmYWxzZSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJpbnB1dC1jb250YWluZXJcIj5cclxuICA8cC1jYWxlbmRhclxyXG4gICAgYXBwZW5kVG89XCJib2R5XCJcclxuICAgIFtmb3JtQ29udHJvbF09XCJjb250cm9sXCJcclxuICAgIFtzaG93T25Gb2N1c109XCJzaG93Q2FsZW5kYXJPbkZvY3VzXCJcclxuICAgIFttaW5EYXRlXT1cIm1pblwiXHJcbiAgICBbbWF4RGF0ZV09XCJtYXhcIlxyXG4gICAgaWNvbj1cImZhcyBmYS1jYWxlbmRhci1kYXlcIlxyXG4gICAgW3Nob3dJY29uXT1cInRydWVcIlxyXG4gICAgW2Rpc2FibGVkRGF0ZXNdPVwiZGlzYWJsZWREYXRlc1wiXHJcbiAgICBbcmVhZG9ubHlJbnB1dF09XCJmYWxzZVwiXHJcbiAgICAob25TaG93KT1cIm9uU2hvd0NhbGVuZGFyKClcIlxyXG4gICAgKG9uQ2xvc2UpPVwib25IaWRlQ2FsZW5kYXIoKVwiXHJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gID48L3AtY2FsZW5kYXI+XHJcbjwvZGl2PlxyXG4iXX0=
69
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZlY3Rvci1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9maWVsZHMvY2FsZW5kYXItZmllbGQvY2FsZW5kYXItZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZlY3Rvci1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9maWVsZHMvY2FsZW5kYXItZmllbGQvY2FsZW5kYXItZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLE9BQU8sQ0FBQzs7Ozs7QUFRakMsTUFBTSxPQUFPLGlCQUFpQjtJQTZCNUIsWUFBb0IsWUFBMEI7UUFBMUIsaUJBQVksR0FBWixZQUFZLENBQWM7UUEzQnZDLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFJNUIsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQUVuQix3QkFBbUIsR0FBRyxJQUFJLENBQUM7UUFFM0IsUUFBRyxHQUFTLFFBQVEsQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRXZFLFFBQUcsR0FBUyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRXhFLGtCQUFhLEdBQVcsRUFBRSxDQUFDO1FBRTNCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFFMUIsZ0JBQVcsR0FBUyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUM7UUFTOUMsY0FBUyxHQUFHLEVBQUUsQ0FBQztJQUUyQixDQUFDO0lBVGxELElBQUksV0FBVztRQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2YsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUNELE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUM7SUFDdEQsQ0FBQztJQU1NLGVBQWU7UUFDcEIsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFO1lBQ2hFLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUU7Z0JBQ3JDLE9BQU8sbUJBQW1CLENBQUM7YUFDNUI7WUFFRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxFQUFFO2dCQUN0QyxPQUFPLDZCQUE2QixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQzthQUN2RjtZQUVELE9BQU8sZ0JBQWdCLENBQUM7U0FDekI7UUFFRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFTSxjQUFjO1FBQ25CLElBQUksQ0FBQyxZQUFZLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFTSxjQUFjO1FBQ25CLElBQUksQ0FBQyxZQUFZLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JELENBQUM7OzhHQXJEVSxpQkFBaUI7a0dBQWpCLGlCQUFpQiw2UkNUOUIscWdCQWlCQTsyRkRSYSxpQkFBaUI7a0JBTDdCLFNBQVM7K0JBQ0UsdUJBQXVCO21HQU0xQixVQUFVO3NCQURoQixLQUFLO2dCQUdDLE9BQU87c0JBRGIsS0FBSztnQkFHQyxLQUFLO3NCQURYLEtBQUs7Z0JBR0MsbUJBQW1CO3NCQUR6QixLQUFLO2dCQUdDLEdBQUc7c0JBRFQsS0FBSztnQkFHQyxHQUFHO3NCQURULEtBQUs7Z0JBR0MsYUFBYTtzQkFEbkIsS0FBSztnQkFHQyxRQUFRO3NCQURkLEtBQUs7Z0JBR0MsV0FBVztzQkFEakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRGF0ZVRpbWUgfSBmcm9tICdsdXhvbic7XHJcbmltcG9ydCB7IE1vZGFsU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndmVjdG9yLWNhbGVuZGFyLWZpZWxkJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY2FsZW5kYXItZmllbGQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NhbGVuZGFyLWZpZWxkLmNvbXBvbmVudC5zY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDYWxlbmRhckNvbXBvbmVudCB7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgaXNSZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGNvbnRyb2w6IGFueTtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBsYWJlbDogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgc2hvd0NhbGVuZGFyT25Gb2N1cyA9IHRydWU7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgbWluOiBEYXRlID0gRGF0ZVRpbWUuZnJvbUZvcm1hdCgnMDEvMDEvMTkwMCcsICdkZC9NTS95eXl5JykudG9KU0RhdGUoKTtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBtYXg6IERhdGUgPSBEYXRlVGltZS5ub3coKS5zdGFydE9mKCdkYXknKS5wbHVzKHsgeWVhcnM6IDEgfSkudG9KU0RhdGUoKTtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBkaXNhYmxlZERhdGVzOiBEYXRlW10gPSBbXTtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGRlZmF1bHREYXRlOiBEYXRlID0gRGF0ZVRpbWUubm93KCkudG9KU0RhdGUoKTtcclxuXHJcbiAgZ2V0IHBsYWNlaG9sZGVyKCkge1xyXG4gICAgaWYgKCF0aGlzLmxhYmVsKSB7XHJcbiAgICAgIHJldHVybiAnJztcclxuICAgIH1cclxuICAgIHJldHVybiBgJHt0aGlzLmxhYmVsfSR7dGhpcy5pc1JlcXVpcmVkID8gJyonIDogJyd9YDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBrZXlGaWx0ZXIgPSAnJztcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBtb2RhbFNlcnZpY2U6IE1vZGFsU2VydmljZSkge31cclxuXHJcbiAgcHVibGljIGZpZWxkRXJyb3JMYWJlbCgpOiBzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMuY29udHJvbCAmJiB0aGlzLmNvbnRyb2wuaW52YWxpZCAmJiB0aGlzLmNvbnRyb2wudG91Y2hlZCkge1xyXG4gICAgICBpZiAodGhpcy5jb250cm9sLmhhc0Vycm9yKCdyZXF1aXJlZCcpKSB7XHJcbiAgICAgICAgcmV0dXJuICdDYW1wbyBvYnJpZ2F0w7NyaW8nO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAodGhpcy5jb250cm9sLmhhc0Vycm9yKCdtYXhsZW5ndGgnKSkge1xyXG4gICAgICAgIHJldHVybiBgVGFtYW5obyBtw6F4aW1vIHBlcm1pdGlkbzogJHt0aGlzLmNvbnRyb2wuZXJyb3JzWydtYXhsZW5ndGgnXS5yZXF1aXJlZExlbmd0aH1gO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gJ0NhbXBvIGludsOhbGlkbyc7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuICcnO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uU2hvd0NhbGVuZGFyKCkge1xyXG4gICAgdGhpcy5tb2RhbFNlcnZpY2Uuc2hvd01vZGFsQmFja2dyb3VuZCQubmV4dCh0cnVlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbkhpZGVDYWxlbmRhcigpIHtcclxuICAgIHRoaXMubW9kYWxTZXJ2aWNlLnNob3dNb2RhbEJhY2tncm91bmQkLm5leHQoZmFsc2UpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiaW5wdXQtY29udGFpbmVyXCI+XHJcbiAgPHAtY2FsZW5kYXJcclxuICAgIGFwcGVuZFRvPVwiYm9keVwiXHJcbiAgICBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiXHJcbiAgICBbc2hvd09uRm9jdXNdPVwic2hvd0NhbGVuZGFyT25Gb2N1c1wiXHJcbiAgICBbbWluRGF0ZV09XCJtaW5cIlxyXG4gICAgW21heERhdGVdPVwibWF4XCJcclxuICAgIGljb249XCJmYXMgZmEtY2FsZW5kYXItZGF5XCJcclxuICAgIFtzaG93SWNvbl09XCJ0cnVlXCJcclxuICAgIFtkaXNhYmxlZERhdGVzXT1cImRpc2FibGVkRGF0ZXNcIlxyXG4gICAgW3JlYWRvbmx5SW5wdXRdPVwiZmFsc2VcIlxyXG4gICAgKG9uU2hvdyk9XCJvblNob3dDYWxlbmRhcigpXCJcclxuICAgIChvbkNsb3NlKT1cIm9uSGlkZUNhbGVuZGFyKClcIlxyXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgIFtkZWZhdWx0RGF0ZV09XCJkZWZhdWx0RGF0ZVwiXHJcbiAgPjwvcC1jYWxlbmRhcj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -116,7 +116,7 @@ export class FiltersComponent {
116
116
  }
117
117
  }
118
118
  FiltersComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FiltersComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
119
- FiltersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: FiltersComponent, selector: "vector-filters", inputs: { fields: "fields" }, outputs: { onSearch: "onSearch" }, ngImport: i0, template: "<section class=\"grid filter-container\" [hidden]=\"!fields?.length\">\r\n <div *ngFor=\"let field of fields | notHidden\" class=\"field col-12 sm:col-8 {{ getGridClass(field) }}\">\r\n <label>{{ field.label }}</label>\r\n <vector-text-field\r\n *ngIf=\"isTextFieldType(field)\"\r\n [control]=\"formGroup.get(field.name)\"\r\n [mask]=\"field.mask\"\r\n [label]=\"field.placeholder\"\r\n [isRequired]=\"field.required\"\r\n [numeric]=\"field.type === fieldTypes.NUMBER\"\r\n ></vector-text-field>\r\n <vector-dropdown-field\r\n *ngIf=\"field.type === fieldTypes.DROPDOWN\"\r\n [options]=\"field.options || []\"\r\n [service]=\"field.service\"\r\n [isRequired]=\"field.required\"\r\n [control]=\"formGroup.get(field.name)\"\r\n [paged]=\"false\"\r\n [dependencies]=\"getFieldDependencies(field)\"\r\n ></vector-dropdown-field>\r\n <vector-currency-field\r\n *ngIf=\"field.type === fieldTypes.CURRENCY\"\r\n [control]=\"formGroup.get(field.name)\"\r\n [outlined]=\"true\"\r\n ></vector-currency-field>\r\n <vector-calendar-field\r\n *ngIf=\"field.type === fieldTypes.DATE\"\r\n [control]=\"formGroup.get(field.name)\"\r\n [isRequired]=\"field.required\"\r\n [label]=\"field.placeholder || ''\"\r\n ></vector-calendar-field>\r\n </div>\r\n <div class=\"search-button col-12 sm:col-4 md:col-2\">\r\n <vector-button label=\"Pesquisar\" (click)=\"search()\" [disabled]=\"!formGroup.valid\"></vector-button>\r\n </div>\r\n</section>\r\n", styles: [".filter-container{align-items:center}.filter-container .field{display:flex;flex-direction:column}@media (min-width: 768px){.filter-container .search-button{padding-top:32px}}\n"], components: [{ type: i1.TextFieldComponent, selector: "vector-text-field", inputs: ["isRequired", "label", "maxlength", "isPassword", "numeric", "onlyText", "mask", "autoClear", "rightIcon", "centered", "enableDocumentTypeChoice", "control"], outputs: ["blurEvent", "enterKeyPress", "focusEvent", "onDocumentTypeChange"] }, { type: i2.DropdownFieldComponent, selector: "vector-dropdown-field", inputs: ["options", "isRequired", "control", "label", "service", "paged", "buttonAction", "dependencies"], outputs: ["onFocus"] }, { type: i3.CurrencyFieldComponent, selector: "vector-currency-field", inputs: ["minValue", "maxValue", "placeholder", "control", "outlined"] }, { type: i4.CalendarComponent, selector: "vector-calendar-field", inputs: ["isRequired", "control", "label", "showCalendarOnFocus", "min", "max", "disabledDates", "disabled"] }, { type: i5.ButtonComponent, selector: "vector-button", inputs: ["disabled", "label", "type", "leftIcon", "noShadow"], outputs: ["onClick"] }], directives: [{ type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "notHidden": i7.NotHiddenPipe } });
119
+ FiltersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.1.3", type: FiltersComponent, selector: "vector-filters", inputs: { fields: "fields" }, outputs: { onSearch: "onSearch" }, ngImport: i0, template: "<section class=\"grid filter-container\" [hidden]=\"!fields?.length\">\r\n <div *ngFor=\"let field of fields | notHidden\" class=\"field col-12 sm:col-8 {{ getGridClass(field) }}\">\r\n <label>{{ field.label }}</label>\r\n <vector-text-field\r\n *ngIf=\"isTextFieldType(field)\"\r\n [control]=\"formGroup.get(field.name)\"\r\n [mask]=\"field.mask\"\r\n [label]=\"field.placeholder\"\r\n [isRequired]=\"field.required\"\r\n [numeric]=\"field.type === fieldTypes.NUMBER\"\r\n ></vector-text-field>\r\n <vector-dropdown-field\r\n *ngIf=\"field.type === fieldTypes.DROPDOWN\"\r\n [options]=\"field.options || []\"\r\n [service]=\"field.service\"\r\n [isRequired]=\"field.required\"\r\n [control]=\"formGroup.get(field.name)\"\r\n [paged]=\"false\"\r\n [dependencies]=\"getFieldDependencies(field)\"\r\n ></vector-dropdown-field>\r\n <vector-currency-field\r\n *ngIf=\"field.type === fieldTypes.CURRENCY\"\r\n [control]=\"formGroup.get(field.name)\"\r\n [outlined]=\"true\"\r\n ></vector-currency-field>\r\n <vector-calendar-field\r\n *ngIf=\"field.type === fieldTypes.DATE\"\r\n [control]=\"formGroup.get(field.name)\"\r\n [isRequired]=\"field.required\"\r\n [label]=\"field.placeholder || ''\"\r\n ></vector-calendar-field>\r\n </div>\r\n <div class=\"search-button col-12 sm:col-4 md:col-2\">\r\n <vector-button label=\"Pesquisar\" (click)=\"search()\" [disabled]=\"!formGroup.valid\"></vector-button>\r\n </div>\r\n</section>\r\n", styles: [".filter-container{align-items:center}.filter-container .field{display:flex;flex-direction:column}@media (min-width: 768px){.filter-container .search-button{padding-top:32px}}\n"], components: [{ type: i1.TextFieldComponent, selector: "vector-text-field", inputs: ["isRequired", "label", "maxlength", "isPassword", "numeric", "onlyText", "mask", "autoClear", "rightIcon", "centered", "enableDocumentTypeChoice", "control"], outputs: ["blurEvent", "enterKeyPress", "focusEvent", "onDocumentTypeChange"] }, { type: i2.DropdownFieldComponent, selector: "vector-dropdown-field", inputs: ["options", "isRequired", "control", "label", "service", "paged", "buttonAction", "dependencies"], outputs: ["onFocus"] }, { type: i3.CurrencyFieldComponent, selector: "vector-currency-field", inputs: ["minValue", "maxValue", "placeholder", "control", "outlined"] }, { type: i4.CalendarComponent, selector: "vector-calendar-field", inputs: ["isRequired", "control", "label", "showCalendarOnFocus", "min", "max", "disabledDates", "disabled", "defaultDate"] }, { type: i5.ButtonComponent, selector: "vector-button", inputs: ["disabled", "label", "type", "leftIcon", "noShadow"], outputs: ["onClick"] }], directives: [{ type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "notHidden": i7.NotHiddenPipe } });
120
120
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FiltersComponent, decorators: [{
121
121
  type: Component,
122
122
  args: [{ selector: 'vector-filters', template: "<section class=\"grid filter-container\" [hidden]=\"!fields?.length\">\r\n <div *ngFor=\"let field of fields | notHidden\" class=\"field col-12 sm:col-8 {{ getGridClass(field) }}\">\r\n <label>{{ field.label }}</label>\r\n <vector-text-field\r\n *ngIf=\"isTextFieldType(field)\"\r\n [control]=\"formGroup.get(field.name)\"\r\n [mask]=\"field.mask\"\r\n [label]=\"field.placeholder\"\r\n [isRequired]=\"field.required\"\r\n [numeric]=\"field.type === fieldTypes.NUMBER\"\r\n ></vector-text-field>\r\n <vector-dropdown-field\r\n *ngIf=\"field.type === fieldTypes.DROPDOWN\"\r\n [options]=\"field.options || []\"\r\n [service]=\"field.service\"\r\n [isRequired]=\"field.required\"\r\n [control]=\"formGroup.get(field.name)\"\r\n [paged]=\"false\"\r\n [dependencies]=\"getFieldDependencies(field)\"\r\n ></vector-dropdown-field>\r\n <vector-currency-field\r\n *ngIf=\"field.type === fieldTypes.CURRENCY\"\r\n [control]=\"formGroup.get(field.name)\"\r\n [outlined]=\"true\"\r\n ></vector-currency-field>\r\n <vector-calendar-field\r\n *ngIf=\"field.type === fieldTypes.DATE\"\r\n [control]=\"formGroup.get(field.name)\"\r\n [isRequired]=\"field.required\"\r\n [label]=\"field.placeholder || ''\"\r\n ></vector-calendar-field>\r\n </div>\r\n <div class=\"search-button col-12 sm:col-4 md:col-2\">\r\n <vector-button label=\"Pesquisar\" (click)=\"search()\" [disabled]=\"!formGroup.valid\"></vector-button>\r\n </div>\r\n</section>\r\n", styles: [".filter-container{align-items:center}.filter-container .field{display:flex;flex-direction:column}@media (min-width: 768px){.filter-container .search-button{padding-top:32px}}\n"] }]
@@ -44,9 +44,9 @@ export class TextFieldComponent {
44
44
  }
45
45
  set control(_control) {
46
46
  this._control = _control;
47
- // if (this.enableDocumentTypeChoice) {
48
- // this.handleInitialDocumentTypeState();
49
- // }
47
+ if (this.enableDocumentTypeChoice) {
48
+ this.handleInitialDocumentTypeState();
49
+ }
50
50
  if (this.controlSubscription) {
51
51
  this.controlSubscription.unsubscribe();
52
52
  this.controlSubscription = new Subscription();
@@ -141,8 +141,13 @@ export class TextFieldComponent {
141
141
  if (this.control.value.length === 11) {
142
142
  this.setDocumentType(DocumentType.CPF);
143
143
  }
144
+ else {
145
+ this.setDocumentType(DocumentType.CNPJ);
146
+ }
147
+ }
148
+ else {
149
+ this.setDocumentType(DocumentType.CPF);
144
150
  }
145
- this.setDocumentType(DocumentType.CNPJ);
146
151
  }
147
152
  setDocumentType(documentType) {
148
153
  switch (documentType) {
@@ -196,4 +201,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImpor
196
201
  }], onDocumentTypeChange: [{
197
202
  type: Output
198
203
  }] } });
199
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmVjdG9yLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2ZpZWxkcy90ZXh0LWZpZWxkL3RleHQtZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZlY3Rvci1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9maWVsZHMvdGV4dC1maWVsZC90ZXh0LWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLFlBQVksRUFBWSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7QUFPMUMsTUFBTSxPQUFPLGtCQUFrQjtJQUwvQjtRQU9TLGVBQVUsR0FBd0IsS0FBSyxDQUFDO1FBRXhDLFVBQUssR0FBdUIsRUFBRSxDQUFDO1FBRS9CLGNBQVMsR0FBVyxFQUFFLENBQUM7UUFFdkIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUVuQixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBRWhCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFJakIsY0FBUyxHQUFHLElBQUksQ0FBQztRQUVqQixjQUFTLEdBQUcsRUFBRSxDQUFDO1FBRWYsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUVqQiw2QkFBd0IsR0FBRyxLQUFLLENBQUM7UUFzQmpDLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRS9CLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztR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QUFVO3NCQURoQixNQUFNO2dCQUdBLG9CQUFvQjtzQkFEMUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRG9jdW1lbnRUeXBlLCBMaXN0SXRlbSB9IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XHJcbmltcG9ydCB7IE1hc2tVdGlsIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd2ZWN0b3ItdGV4dC1maWVsZCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RleHQtZmllbGQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RleHQtZmllbGQuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRleHRGaWVsZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBpc1JlcXVpcmVkOiBib29sZWFuIHwgdW5kZWZpbmVkID0gZmFsc2U7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgbGFiZWw6IHN0cmluZyB8IHVuZGVmaW5lZCA9ICcnO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIG1heGxlbmd0aDogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgaXNQYXNzd29yZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIG51bWVyaWMgPSBmYWxzZTtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBvbmx5VGV4dCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIG1hc2s6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBhdXRvQ2xlYXIgPSB0cnVlO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHJpZ2h0SWNvbiA9ICcnO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGNlbnRlcmVkID0gZmFsc2U7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZW5hYmxlRG9jdW1lbnRUeXBlQ2hvaWNlID0gZmFsc2U7XHJcbiAgQElucHV0KClcclxuICBzZXQgY29udHJvbChfY29udHJvbDogYW55KSB7XHJcbiAgICB0aGlzLl9jb250cm9sID0gX2NvbnRyb2w7XHJcbiAgICAvLyBpZiAodGhpcy5lbmFibGVEb2N1bWVudFR5cGVDaG9pY2UpIHtcclxuICAgIC8vICAgdGhpcy5oYW5kbGVJbml0aWFsRG9jdW1lbnRUeXBlU3RhdGUoKTtcclxuICAgIC8vIH1cclxuXHJcbiAgICBpZiAodGhpcy5jb250cm9sU3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgIHRoaXMuY29udHJvbFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgICB0aGlzLmNvbnRyb2xTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNvbnRyb2xTdWJzY3JpcHRpb24uYWRkKFxyXG4gICAgICB0aGlzLmNvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgodmFsdWU6IHN0cmluZykgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLmVuYWJsZURvY3VtZW50VHlwZUNob2ljZSAmJiAhdGhpcy5sYXN0VHlwZWRWYWx1ZSAmJiB2YWx1ZT8ubGVuZ3RoID4gMTEpIHtcclxuICAgICAgICAgIHRoaXMuaGFuZGxlSW5pdGlhbERvY3VtZW50VHlwZVN0YXRlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubGFzdFR5cGVkVmFsdWUgPSB2YWx1ZTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBibHVyRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIGVudGVyS2V5UHJlc3MgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIGZvY3VzRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIG9uRG9jdW1lbnRUeXBlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxMaXN0SXRlbT4oKTtcclxuXHJcbiAgcHVibGljIGlzUGFzc3dvcmRWaXNpYmxlID0gZmFsc2U7XHJcblxyXG4gIGdldCBwbGFjZWhvbGRlcigpIHtcclxuICAgIGlmICghdGhpcy5sYWJlbCkge1xyXG4gICAgICByZXR1cm4gJyc7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYCR7dGhpcy5sYWJlbH0ke3RoaXMuaXNSZXF1aXJlZCA/ICcqJyA6ICcnfWA7XHJcbiAgfVxyXG5cclxuICBnZXQga2V5ZmlsdGVyKCkge1xyXG4gICAgaWYgKHRoaXMubnVtZXJpYykge1xyXG4gICAgICByZXR1cm4gJ2ludCc7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5vbmx5VGV4dCkge1xyXG4gICAgICByZXR1cm4gL1thLXpBLVrDgC3Dulxcc10vZ207XHJcbiAgICB9XHJcbiAgICByZXR1cm4gL1tcXHNcXFNdKi87XHJcbiAgfVxyXG5cclxuICBnZXQgY29udHJvbCgpIHtcclxuICAgIHJldHVybiB0aGlzLl9jb250cm9sO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNob3dQYXNzd29yZEljb24oKSB7XHJcbiAgICByZXR1cm4gdGhpcy5pc1Bhc3N3b3JkVmlzaWJsZSA/ICdmYXMgZmEtZXllJyA6ICdmYXMgZmEtZXllLXNsYXNoJztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBkb2N1bWVudFR5cGVzOiBMaXN0SXRlbVtdID0gW1xyXG4gICAge1xyXG4gICAgICBuYW1lOiAnQ1BGJyxcclxuICAgICAgY29kZTogRG9jdW1lbnRUeXBlLkNQRixcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIG5hbWU6ICdDTlBKJyxcclxuICAgICAgY29kZTogRG9jdW1lbnRUeXBlLkNOUEosXHJcbiAgICB9LFxyXG4gIF07XHJcblxyXG4gIHB1YmxpYyBzZWxlY3RlZERvY3VtZW50VHlwZSA9IHRoaXMuZG9jdW1lbnRUeXBlc1sxXTtcclxuXHJcbiAgcHJpdmF0ZSBsYXN0Qmx1clZhbHVlID0gJyc7XHJcbiAgcHJpdmF0ZSBsYXN0VHlwZWRWYWx1ZSA9ICcnO1xyXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xyXG4gIHByaXZhdGUgY29udHJvbFN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcclxuICBwcml2YXRlIF9jb250cm9sOiBhbnk7XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKHRoaXMuZW5hYmxlRG9jdW1lbnRUeXBlQ2hvaWNlKSB7XHJcbiAgICAgIHRoaXMuc2V0RG9jdW1lbnRUeXBlKHRoaXMuc2VsZWN0ZWREb2N1bWVudFR5cGUuY29kZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLmNvbnRyb2xTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBmaWVsZEVycm9yTGFiZWwoKTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLmNvbnRyb2wgJiYgdGhpcy5jb250cm9sLmludmFsaWQgJiYgdGhpcy5jb250cm9sLnRvdWNoZWQpIHtcclxuICAgICAgaWYgKHRoaXMuY29udHJvbC5oYXNFcnJvcigncmVxdWlyZWQnKSkge1xyXG4gICAgICAgIHJldHVybiAnQ2FtcG8gb2JyaWdhdMOzcmlvJztcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHRoaXMuY29udHJvbC5oYXNFcnJvcignbWlubGVuZ3RoJykpIHtcclxuICAgICAgICByZXR1cm4gYFRhbWFuaG8gbcOtbmltbzogJHt0aGlzLmNvbnRyb2wuZXJyb3JzWydtaW5sZW5ndGgnXS5yZXF1aXJlZExlbmd0aH1gO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAodGhpcy5jb250cm9sLmhhc0Vycm9yKCdtYXhsZW5ndGgnKSkge1xyXG4gICAgICAgIHJldHVybiBgVGFtYW5obyBtw6F4aW1vIHBlcm1pdGlkbzogJHt0aGlzLmNvbnRyb2wuZXJyb3JzWydtYXhsZW5ndGgnXS5yZXF1aXJlZExlbmd0aH1gO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gdHlwZW9mIHRoaXMuY29udHJvbC5lcnJvcnNbJ2ludmFsaWQnXSA9PT0gJ3N0cmluZycgPyB0aGlzLmNvbnRyb2wuZXJyb3JzWydpbnZhbGlkJ10gOiAnQ2FtcG8gaW52w6FsaWRvJztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gJyc7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25CbHVyKCkge1xyXG4gICAgdGhpcy5jb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgIGlmICh0aGlzLmxhc3RCbHVyVmFsdWUgIT09IHRoaXMuY29udHJvbC52YWx1ZSkge1xyXG4gICAgICB0aGlzLmxhc3RCbHVyVmFsdWUgPSB0aGlzLmNvbnRyb2wudmFsdWU7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuYmx1ckV2ZW50LmVtaXQodGhpcy5jb250cm9sLnZhbHVlKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25FbnRlclByZXNzKCkge1xyXG4gICAgdGhpcy5vbkJsdXIoKTtcclxuICAgIHRoaXMuZW50ZXJLZXlQcmVzcy5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25Gb2N1cygkZXZlbnQ6IEV2ZW50KSB7XHJcbiAgICBjb25zdCB0YXJnZXQgPSAkZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcbiAgICBpZiAodGhpcy5tYXNrKSB7XHJcbiAgICAgIGNvbnN0IGZpcnN0VW5kZXJzY29yZSA9IHRhcmdldD8udmFsdWUuaW5kZXhPZignXycpO1xyXG4gICAgICBjb25zdCBzZWxlY3Rpb25JbmRleCA9IChmaXJzdFVuZGVyc2NvcmUgPj0gMCA/IGZpcnN0VW5kZXJzY29yZSA6IHRhcmdldD8udmFsdWUubGVuZ3RoKSB8fCAwO1xyXG4gICAgICB0YXJnZXQ/LnNldFNlbGVjdGlvblJhbmdlKHNlbGVjdGlvbkluZGV4LCBzZWxlY3Rpb25JbmRleCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmZvY3VzRXZlbnQuZW1pdCh0YXJnZXQ/LnZhbHVlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB0b2dnbGVTaG93UGFzc3dvcmQoKSB7XHJcbiAgICB0aGlzLmlzUGFzc3dvcmRWaXNpYmxlID0gIXRoaXMuaXNQYXNzd29yZFZpc2libGU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlRG9jdW1lbnRUeXBlQ2hhbmdlKCkge1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWREb2N1bWVudFR5cGUuY29kZSA9PT0gRG9jdW1lbnRUeXBlLkNOUEopIHtcclxuICAgICAgdGhpcy5zZXREb2N1bWVudFR5cGUoRG9jdW1lbnRUeXBlLkNQRik7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNldERvY3VtZW50VHlwZShEb2N1bWVudFR5cGUuQ05QSik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZUluaXRpYWxEb2N1bWVudFR5cGVTdGF0ZSgpIHtcclxuICAgIGlmICh0aGlzLmNvbnRyb2w/LnZhbHVlKSB7XHJcbiAgICAgIGlmICh0aGlzLmNvbnRyb2wudmFsdWUubGVuZ3RoID09PSAxMSkge1xyXG4gICAgICAgIHRoaXMuc2V0RG9jdW1lbnRUeXBlKERvY3VtZW50VHlwZS5DUEYpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLnNldERvY3VtZW50VHlwZShEb2N1bWVudFR5cGUuQ05QSik7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldERvY3VtZW50VHlwZShkb2N1bWVudFR5cGU6IERvY3VtZW50VHlwZSkge1xyXG4gICAgc3dpdGNoIChkb2N1bWVudFR5cGUpIHtcclxuICAgICAgY2FzZSBEb2N1bWVudFR5cGUuQ05QSjpcclxuICAgICAgICB0aGlzLnNlbGVjdGVkRG9jdW1lbnRUeXBlID0gdGhpcy5kb2N1bWVudFR5cGVzWzFdO1xyXG4gICAgICAgIHRoaXMubWFzayA9IE1hc2tVdGlsLkNOUEpfVEVYVF9GSUVMRF9QQVRURVJOO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIERvY3VtZW50VHlwZS5DUEY6XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZERvY3VtZW50VHlwZSA9IHRoaXMuZG9jdW1lbnRUeXBlc1swXTtcclxuICAgICAgICB0aGlzLm1hc2sgPSBNYXNrVXRpbC5DUEZfVEVYVF9GSUVMRF9QQVRURVJOO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gICAgdGhpcy5vbkRvY3VtZW50VHlwZUNoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWREb2N1bWVudFR5cGUpO1xyXG4gIH1cclxufVxyXG4iLCI8Zm9ybSBjbGFzcz1cImlucHV0LWNvbnRhaW5lciBwLWlucHV0LWljb24tcmlnaHRcIj5cclxuICA8aSAqbmdJZj1cInJpZ2h0SWNvblwiIFtjbGFzc109XCJyaWdodEljb25cIj48L2k+XHJcbiAgPGkgKm5nSWY9XCJpc1Bhc3N3b3JkXCIgY2xhc3M9XCJzaG93LXBhc3N3b3JkLWljb24ge3sgc2hvd1Bhc3N3b3JkSWNvbiB9fVwiIChjbGljayk9XCJ0b2dnbGVTaG93UGFzc3dvcmQoKVwiPjwvaT5cclxuICA8ZGl2IGNsYXNzPVwicC1pbnB1dGdyb3VwXCI+XHJcbiAgICA8dmVjdG9yLWJ1dHRvblxyXG4gICAgICAqbmdJZj1cImVuYWJsZURvY3VtZW50VHlwZUNob2ljZVwiXHJcbiAgICAgIGxlZnRJY29uPVwiZmFzIGZhLWV4Y2hhbmdlLWFsdFwiXHJcbiAgICAgIHR5cGU9XCJzdWNjZXNzXCJcclxuICAgICAgW2xhYmVsXT1cInNlbGVjdGVkRG9jdW1lbnRUeXBlLm5hbWVcIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiY29udHJvbC5kaXNhYmxlZFwiXHJcbiAgICAgIFtub1NoYWRvd109XCJ0cnVlXCJcclxuICAgICAgKG9uQ2xpY2spPVwiaGFuZGxlRG9jdW1lbnRUeXBlQ2hhbmdlKClcIlxyXG4gICAgPjwvdmVjdG9yLWJ1dHRvbj5cclxuXHJcbiAgICA8aW5wdXRcclxuICAgICAgKm5nSWY9XCIhbWFza1wiXHJcbiAgICAgIHBJbnB1dFRleHRcclxuICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiXHJcbiAgICAgIFthdHRyLm1heGxlbmd0aF09XCJtYXhsZW5ndGhcIlxyXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxyXG4gICAgICBbcEtleUZpbHRlcl09XCJrZXlmaWx0ZXJcIlxyXG4gICAgICBbbmdDbGFzc109XCJ7ICdwYXNzd29yZC1maWVsZCc6IGlzUGFzc3dvcmQgJiYgIWlzUGFzc3dvcmRWaXNpYmxlLCAndGV4dC1jZW50ZXJlZCc6IGNlbnRlcmVkIH1cIlxyXG4gICAgICAob25CbHVyKT1cIm9uQmx1cigpXCJcclxuICAgICAgKGtleWRvd24uZW50ZXIpPVwib25FbnRlclByZXNzKClcIlxyXG4gICAgICAoY2xpY2spPVwib25Gb2N1cygkZXZlbnQpXCJcclxuICAgIC8+XHJcbiAgICA8cC1pbnB1dE1hc2tcclxuICAgICAgKm5nSWY9XCJtYXNrXCJcclxuICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiXHJcbiAgICAgIFttYXNrXT1cIm1hc2tcIlxyXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxyXG4gICAgICAob25CbHVyKT1cIm9uQmx1cigpXCJcclxuICAgICAgKGtleWRvd24uZW50ZXIpPVwib25FbnRlclByZXNzKClcIlxyXG4gICAgICBbYXV0b0NsZWFyXT1cImF1dG9DbGVhclwiXHJcbiAgICAgIFt1bm1hc2tdPVwidHJ1ZVwiXHJcbiAgICAgIFtzdHlsZUNsYXNzXT1cImNlbnRlcmVkID8gJ3RleHQtY2VudGVyZWQnIDogJydcIlxyXG4gICAgICBzbG90Q2hhcj1cIl9cIlxyXG4gICAgICAoY2xpY2spPVwib25Gb2N1cygkZXZlbnQpXCJcclxuICAgID48L3AtaW5wdXRNYXNrPlxyXG4gIDwvZGl2PlxyXG4gIDwhLS0gPHNwYW4gY2xhc3M9XCJpbnB1dC1lcnJvclwiPnt7IGZpZWxkRXJyb3JMYWJlbCgpIH19PC9zcGFuPiAtLT5cclxuPC9mb3JtPlxyXG4iXX0=
204
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmVjdG9yLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2ZpZWxkcy90ZXh0LWZpZWxkL3RleHQtZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXZlY3Rvci1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9maWVsZHMvdGV4dC1maWVsZC90ZXh0LWZpZWxkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLFlBQVksRUFBWSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7QUFPMUMsTUFBTSxPQUFPLGtCQUFrQjtJQUwvQjtRQU9TLGVBQVUsR0FBd0IsS0FBSyxDQUFDO1FBRXhDLFVBQUssR0FBdUIsRUFBRSxDQUFDO1FBRS9CLGNBQVMsR0FBVyxFQUFFLENBQUM7UUFFdkIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUVuQixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBRWhCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFJakIsY0FBUyxHQUFHLElBQUksQ0FBQztRQUVqQixjQUFTLEdBQUcsRUFBRSxDQUFDO1FBRWYsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUVqQiw2QkFBd0IsR0FBRyxLQUFLLENBQUM7UUFzQmpDLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRS9CLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztR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RGQsS0FBSztnQkFHQyx3QkFBd0I7c0JBRDlCLEtBQUs7Z0JBR0YsT0FBTztzQkFEVixLQUFLO2dCQXFCQyxTQUFTO3NCQURmLE1BQU07Z0JBR0EsYUFBYTtzQkFEbkIsTUFBTTtnQkFHQSxVQUFVO3NCQURoQixNQUFNO2dCQUdBLG9CQUFvQjtzQkFEMUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRG9jdW1lbnRUeXBlLCBMaXN0SXRlbSB9IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XHJcbmltcG9ydCB7IE1hc2tVdGlsIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd2ZWN0b3ItdGV4dC1maWVsZCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RleHQtZmllbGQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3RleHQtZmllbGQuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRleHRGaWVsZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBpc1JlcXVpcmVkOiBib29sZWFuIHwgdW5kZWZpbmVkID0gZmFsc2U7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgbGFiZWw6IHN0cmluZyB8IHVuZGVmaW5lZCA9ICcnO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIG1heGxlbmd0aDogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgaXNQYXNzd29yZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIG51bWVyaWMgPSBmYWxzZTtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBvbmx5VGV4dCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIG1hc2s6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBhdXRvQ2xlYXIgPSB0cnVlO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHJpZ2h0SWNvbiA9ICcnO1xyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGNlbnRlcmVkID0gZmFsc2U7XHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZW5hYmxlRG9jdW1lbnRUeXBlQ2hvaWNlID0gZmFsc2U7XHJcbiAgQElucHV0KClcclxuICBzZXQgY29udHJvbChfY29udHJvbDogYW55KSB7XHJcbiAgICB0aGlzLl9jb250cm9sID0gX2NvbnRyb2w7XHJcbiAgICBpZiAodGhpcy5lbmFibGVEb2N1bWVudFR5cGVDaG9pY2UpIHtcclxuICAgICAgdGhpcy5oYW5kbGVJbml0aWFsRG9jdW1lbnRUeXBlU3RhdGUoKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5jb250cm9sU3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgIHRoaXMuY29udHJvbFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgICB0aGlzLmNvbnRyb2xTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNvbnRyb2xTdWJzY3JpcHRpb24uYWRkKFxyXG4gICAgICB0aGlzLmNvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgodmFsdWU6IHN0cmluZykgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLmVuYWJsZURvY3VtZW50VHlwZUNob2ljZSAmJiAhdGhpcy5sYXN0VHlwZWRWYWx1ZSAmJiB2YWx1ZT8ubGVuZ3RoID4gMTEpIHtcclxuICAgICAgICAgIHRoaXMuaGFuZGxlSW5pdGlhbERvY3VtZW50VHlwZVN0YXRlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMubGFzdFR5cGVkVmFsdWUgPSB2YWx1ZTtcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgfVxyXG4gIEBPdXRwdXQoKVxyXG4gIHB1YmxpYyBibHVyRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIGVudGVyS2V5UHJlc3MgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIGZvY3VzRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpXHJcbiAgcHVibGljIG9uRG9jdW1lbnRUeXBlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxMaXN0SXRlbT4oKTtcclxuXHJcbiAgcHVibGljIGlzUGFzc3dvcmRWaXNpYmxlID0gZmFsc2U7XHJcblxyXG4gIGdldCBwbGFjZWhvbGRlcigpIHtcclxuICAgIGlmICghdGhpcy5sYWJlbCkge1xyXG4gICAgICByZXR1cm4gJyc7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYCR7dGhpcy5sYWJlbH0ke3RoaXMuaXNSZXF1aXJlZCA/ICcqJyA6ICcnfWA7XHJcbiAgfVxyXG5cclxuICBnZXQga2V5ZmlsdGVyKCkge1xyXG4gICAgaWYgKHRoaXMubnVtZXJpYykge1xyXG4gICAgICByZXR1cm4gJ2ludCc7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5vbmx5VGV4dCkge1xyXG4gICAgICByZXR1cm4gL1thLXpBLVrDgC3Dulxcc10vZ207XHJcbiAgICB9XHJcbiAgICByZXR1cm4gL1tcXHNcXFNdKi87XHJcbiAgfVxyXG5cclxuICBnZXQgY29udHJvbCgpIHtcclxuICAgIHJldHVybiB0aGlzLl9jb250cm9sO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNob3dQYXNzd29yZEljb24oKSB7XHJcbiAgICByZXR1cm4gdGhpcy5pc1Bhc3N3b3JkVmlzaWJsZSA/ICdmYXMgZmEtZXllJyA6ICdmYXMgZmEtZXllLXNsYXNoJztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBkb2N1bWVudFR5cGVzOiBMaXN0SXRlbVtdID0gW1xyXG4gICAge1xyXG4gICAgICBuYW1lOiAnQ1BGJyxcclxuICAgICAgY29kZTogRG9jdW1lbnRUeXBlLkNQRixcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIG5hbWU6ICdDTlBKJyxcclxuICAgICAgY29kZTogRG9jdW1lbnRUeXBlLkNOUEosXHJcbiAgICB9LFxyXG4gIF07XHJcblxyXG4gIHB1YmxpYyBzZWxlY3RlZERvY3VtZW50VHlwZSA9IHRoaXMuZG9jdW1lbnRUeXBlc1sxXTtcclxuXHJcbiAgcHJpdmF0ZSBsYXN0Qmx1clZhbHVlID0gJyc7XHJcbiAgcHJpdmF0ZSBsYXN0VHlwZWRWYWx1ZSA9ICcnO1xyXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xyXG4gIHByaXZhdGUgY29udHJvbFN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcclxuICBwcml2YXRlIF9jb250cm9sOiBhbnk7XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKHRoaXMuZW5hYmxlRG9jdW1lbnRUeXBlQ2hvaWNlKSB7XHJcbiAgICAgIHRoaXMuc2V0RG9jdW1lbnRUeXBlKHRoaXMuc2VsZWN0ZWREb2N1bWVudFR5cGUuY29kZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB0aGlzLmNvbnRyb2xTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBmaWVsZEVycm9yTGFiZWwoKTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLmNvbnRyb2wgJiYgdGhpcy5jb250cm9sLmludmFsaWQgJiYgdGhpcy5jb250cm9sLnRvdWNoZWQpIHtcclxuICAgICAgaWYgKHRoaXMuY29udHJvbC5oYXNFcnJvcigncmVxdWlyZWQnKSkge1xyXG4gICAgICAgIHJldHVybiAnQ2FtcG8gb2JyaWdhdMOzcmlvJztcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHRoaXMuY29udHJvbC5oYXNFcnJvcignbWlubGVuZ3RoJykpIHtcclxuICAgICAgICByZXR1cm4gYFRhbWFuaG8gbcOtbmltbzogJHt0aGlzLmNvbnRyb2wuZXJyb3JzWydtaW5sZW5ndGgnXS5yZXF1aXJlZExlbmd0aH1gO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAodGhpcy5jb250cm9sLmhhc0Vycm9yKCdtYXhsZW5ndGgnKSkge1xyXG4gICAgICAgIHJldHVybiBgVGFtYW5obyBtw6F4aW1vIHBlcm1pdGlkbzogJHt0aGlzLmNvbnRyb2wuZXJyb3JzWydtYXhsZW5ndGgnXS5yZXF1aXJlZExlbmd0aH1gO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gdHlwZW9mIHRoaXMuY29udHJvbC5lcnJvcnNbJ2ludmFsaWQnXSA9PT0gJ3N0cmluZycgPyB0aGlzLmNvbnRyb2wuZXJyb3JzWydpbnZhbGlkJ10gOiAnQ2FtcG8gaW52w6FsaWRvJztcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gJyc7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25CbHVyKCkge1xyXG4gICAgdGhpcy5jb250cm9sLm1hcmtBc1RvdWNoZWQoKTtcclxuICAgIGlmICh0aGlzLmxhc3RCbHVyVmFsdWUgIT09IHRoaXMuY29udHJvbC52YWx1ZSkge1xyXG4gICAgICB0aGlzLmxhc3RCbHVyVmFsdWUgPSB0aGlzLmNvbnRyb2wudmFsdWU7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuYmx1ckV2ZW50LmVtaXQodGhpcy5jb250cm9sLnZhbHVlKTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25FbnRlclByZXNzKCkge1xyXG4gICAgdGhpcy5vbkJsdXIoKTtcclxuICAgIHRoaXMuZW50ZXJLZXlQcmVzcy5lbWl0KCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25Gb2N1cygkZXZlbnQ6IEV2ZW50KSB7XHJcbiAgICBjb25zdCB0YXJnZXQgPSAkZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQ7XHJcbiAgICBpZiAodGhpcy5tYXNrKSB7XHJcbiAgICAgIGNvbnN0IGZpcnN0VW5kZXJzY29yZSA9IHRhcmdldD8udmFsdWUuaW5kZXhPZignXycpO1xyXG4gICAgICBjb25zdCBzZWxlY3Rpb25JbmRleCA9IChmaXJzdFVuZGVyc2NvcmUgPj0gMCA/IGZpcnN0VW5kZXJzY29yZSA6IHRhcmdldD8udmFsdWUubGVuZ3RoKSB8fCAwO1xyXG4gICAgICB0YXJnZXQ/LnNldFNlbGVjdGlvblJhbmdlKHNlbGVjdGlvbkluZGV4LCBzZWxlY3Rpb25JbmRleCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmZvY3VzRXZlbnQuZW1pdCh0YXJnZXQ/LnZhbHVlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB0b2dnbGVTaG93UGFzc3dvcmQoKSB7XHJcbiAgICB0aGlzLmlzUGFzc3dvcmRWaXNpYmxlID0gIXRoaXMuaXNQYXNzd29yZFZpc2libGU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaGFuZGxlRG9jdW1lbnRUeXBlQ2hhbmdlKCkge1xyXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWREb2N1bWVudFR5cGUuY29kZSA9PT0gRG9jdW1lbnRUeXBlLkNOUEopIHtcclxuICAgICAgdGhpcy5zZXREb2N1bWVudFR5cGUoRG9jdW1lbnRUeXBlLkNQRik7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNldERvY3VtZW50VHlwZShEb2N1bWVudFR5cGUuQ05QSik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZUluaXRpYWxEb2N1bWVudFR5cGVTdGF0ZSgpIHtcclxuICAgIGlmICh0aGlzLmNvbnRyb2w/LnZhbHVlKSB7XHJcbiAgICAgIGlmICh0aGlzLmNvbnRyb2wudmFsdWUubGVuZ3RoID09PSAxMSkge1xyXG4gICAgICAgIHRoaXMuc2V0RG9jdW1lbnRUeXBlKERvY3VtZW50VHlwZS5DUEYpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc2V0RG9jdW1lbnRUeXBlKERvY3VtZW50VHlwZS5DTlBKKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZXREb2N1bWVudFR5cGUoRG9jdW1lbnRUeXBlLkNQRik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldERvY3VtZW50VHlwZShkb2N1bWVudFR5cGU6IERvY3VtZW50VHlwZSkge1xyXG4gICAgc3dpdGNoIChkb2N1bWVudFR5cGUpIHtcclxuICAgICAgY2FzZSBEb2N1bWVudFR5cGUuQ05QSjpcclxuICAgICAgICB0aGlzLnNlbGVjdGVkRG9jdW1lbnRUeXBlID0gdGhpcy5kb2N1bWVudFR5cGVzWzFdO1xyXG4gICAgICAgIHRoaXMubWFzayA9IE1hc2tVdGlsLkNOUEpfVEVYVF9GSUVMRF9QQVRURVJOO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIERvY3VtZW50VHlwZS5DUEY6XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZERvY3VtZW50VHlwZSA9IHRoaXMuZG9jdW1lbnRUeXBlc1swXTtcclxuICAgICAgICB0aGlzLm1hc2sgPSBNYXNrVXRpbC5DUEZfVEVYVF9GSUVMRF9QQVRURVJOO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gICAgdGhpcy5vbkRvY3VtZW50VHlwZUNoYW5nZS5lbWl0KHRoaXMuc2VsZWN0ZWREb2N1bWVudFR5cGUpO1xyXG4gIH1cclxufVxyXG4iLCI8Zm9ybSBjbGFzcz1cImlucHV0LWNvbnRhaW5lciBwLWlucHV0LWljb24tcmlnaHRcIj5cclxuICA8aSAqbmdJZj1cInJpZ2h0SWNvblwiIFtjbGFzc109XCJyaWdodEljb25cIj48L2k+XHJcbiAgPGkgKm5nSWY9XCJpc1Bhc3N3b3JkXCIgY2xhc3M9XCJzaG93LXBhc3N3b3JkLWljb24ge3sgc2hvd1Bhc3N3b3JkSWNvbiB9fVwiIChjbGljayk9XCJ0b2dnbGVTaG93UGFzc3dvcmQoKVwiPjwvaT5cclxuICA8ZGl2IGNsYXNzPVwicC1pbnB1dGdyb3VwXCI+XHJcbiAgICA8dmVjdG9yLWJ1dHRvblxyXG4gICAgICAqbmdJZj1cImVuYWJsZURvY3VtZW50VHlwZUNob2ljZVwiXHJcbiAgICAgIGxlZnRJY29uPVwiZmFzIGZhLWV4Y2hhbmdlLWFsdFwiXHJcbiAgICAgIHR5cGU9XCJzdWNjZXNzXCJcclxuICAgICAgW2xhYmVsXT1cInNlbGVjdGVkRG9jdW1lbnRUeXBlLm5hbWVcIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiY29udHJvbC5kaXNhYmxlZFwiXHJcbiAgICAgIFtub1NoYWRvd109XCJ0cnVlXCJcclxuICAgICAgKG9uQ2xpY2spPVwiaGFuZGxlRG9jdW1lbnRUeXBlQ2hhbmdlKClcIlxyXG4gICAgPjwvdmVjdG9yLWJ1dHRvbj5cclxuXHJcbiAgICA8aW5wdXRcclxuICAgICAgKm5nSWY9XCIhbWFza1wiXHJcbiAgICAgIHBJbnB1dFRleHRcclxuICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiXHJcbiAgICAgIFthdHRyLm1heGxlbmd0aF09XCJtYXhsZW5ndGhcIlxyXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxyXG4gICAgICBbcEtleUZpbHRlcl09XCJrZXlmaWx0ZXJcIlxyXG4gICAgICBbbmdDbGFzc109XCJ7ICdwYXNzd29yZC1maWVsZCc6IGlzUGFzc3dvcmQgJiYgIWlzUGFzc3dvcmRWaXNpYmxlLCAndGV4dC1jZW50ZXJlZCc6IGNlbnRlcmVkIH1cIlxyXG4gICAgICAob25CbHVyKT1cIm9uQmx1cigpXCJcclxuICAgICAgKGtleWRvd24uZW50ZXIpPVwib25FbnRlclByZXNzKClcIlxyXG4gICAgICAoY2xpY2spPVwib25Gb2N1cygkZXZlbnQpXCJcclxuICAgIC8+XHJcbiAgICA8cC1pbnB1dE1hc2tcclxuICAgICAgKm5nSWY9XCJtYXNrXCJcclxuICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICBbZm9ybUNvbnRyb2xdPVwiY29udHJvbFwiXHJcbiAgICAgIFttYXNrXT1cIm1hc2tcIlxyXG4gICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxyXG4gICAgICAob25CbHVyKT1cIm9uQmx1cigpXCJcclxuICAgICAgKGtleWRvd24uZW50ZXIpPVwib25FbnRlclByZXNzKClcIlxyXG4gICAgICBbYXV0b0NsZWFyXT1cImF1dG9DbGVhclwiXHJcbiAgICAgIFt1bm1hc2tdPVwidHJ1ZVwiXHJcbiAgICAgIFtzdHlsZUNsYXNzXT1cImNlbnRlcmVkID8gJ3RleHQtY2VudGVyZWQnIDogJydcIlxyXG4gICAgICBzbG90Q2hhcj1cIl9cIlxyXG4gICAgICAoY2xpY2spPVwib25Gb2N1cygkZXZlbnQpXCJcclxuICAgID48L3AtaW5wdXRNYXNrPlxyXG4gIDwvZGl2PlxyXG4gIDwhLS0gPHNwYW4gY2xhc3M9XCJpbnB1dC1lcnJvclwiPnt7IGZpZWxkRXJyb3JMYWJlbCgpIH19PC9zcGFuPiAtLT5cclxuPC9mb3JtPlxyXG4iXX0=
@@ -24,6 +24,28 @@ export class MenuComponent {
24
24
  this.onFinishMenuOptionsConfig = new EventEmitter();
25
25
  this._opened = true;
26
26
  this.subscription = new Subscription();
27
+ this.currentWindowWidth = 0;
28
+ }
29
+ set opened(opened) {
30
+ this._opened = opened;
31
+ this.menuService.menuOpened$.next(this.opened);
32
+ }
33
+ get opened() {
34
+ return this._opened;
35
+ }
36
+ get hasFintechAdminPermission() {
37
+ return this.profileService.hasFintechAdminPermission;
38
+ }
39
+ get hasMarketplaceAdminPermission() {
40
+ return this.profileService.hasMarketplaceAdminPermission;
41
+ }
42
+ get hasAnyMarketplacePermission() {
43
+ return this.profileService.hasAnyMarketplacePermission;
44
+ }
45
+ get hasAnyFintechPermission() {
46
+ return this.profileService.hasAnyFintechPermission;
47
+ }
48
+ ngOnInit() {
27
49
  this.subscription.add(this.menuService.toggleMenu$.subscribe(() => {
28
50
  this.toggleMenu();
29
51
  }));
@@ -67,25 +89,6 @@ export class MenuComponent {
67
89
  }));
68
90
  this.currentWindowWidth = window.innerWidth;
69
91
  }
70
- set opened(opened) {
71
- this._opened = opened;
72
- this.menuService.menuOpened$.next(this.opened);
73
- }
74
- get opened() {
75
- return this._opened;
76
- }
77
- get hasFintechAdminPermission() {
78
- return this.profileService.hasFintechAdminPermission;
79
- }
80
- get hasMarketplaceAdminPermission() {
81
- return this.profileService.hasMarketplaceAdminPermission;
82
- }
83
- get hasAnyMarketplacePermission() {
84
- return this.profileService.hasAnyMarketplacePermission;
85
- }
86
- get hasAnyFintechPermission() {
87
- return this.profileService.hasAnyFintechPermission;
88
- }
89
92
  onResize() {
90
93
  if (this.opened && this.currentWindowWidth !== window.innerWidth) {
91
94
  this.clearAndCloseMenu();
@@ -263,4 +266,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImpor
263
266
  type: HostListener,
264
267
  args: ['document:keydown.escape', ['$event']]
265
268
  }] } });
266
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmVjdG9yLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL21lbnUvbWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmVjdG9yLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL21lbnUvbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQWEsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDcEMsT0FBTyxFQUFFLE9BQU8sRUFBWSxJQUFJLEVBQUUsTUFBTSxjQUFjLENBQUM7Ozs7Ozs7QUFrRXZELE1BQU0sT0FBTyxhQUFhO0lBMEN4QixZQUNVLFdBQXdCLEVBQ3hCLE1BQWMsRUFDZCxjQUE4QixFQUM5QixjQUE4QixFQUNQLFdBQWdCLEVBQ3BCLFVBQWtCO1FBTHJDLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQ1AsZ0JBQVcsR0FBWCxXQUFXLENBQUs7UUFDcEIsZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQS9DeEMsWUFBTyxHQUFlLEVBQUUsQ0FBQztRQUd6QixlQUFVLEdBQUcsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUM7UUFDaEMsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFD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OzRCQUNELEtBQUssQ0FDSCxHQUFHLEVBQ0gsS0FBSyxDQUFDO2dDQUNKLE9BQU8sRUFBRSxDQUFDO2dDQUNWLFdBQVcsRUFBRSxLQUFLO2dDQUNsQixLQUFLLEVBQUUsTUFBTTs2QkFDZCxDQUFDLENBQ0g7NEJBQ0QsVUFBVSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQzt5QkFDcEQsQ0FBQzt3QkFDRixPQUFPLENBQUMsa0JBQWtCLEVBQUU7NEJBQzFCLEtBQUssQ0FDSCxHQUFHLEVBQ0gsS0FBSyxDQUFDO2dDQUNKLE9BQU8sRUFBRSxDQUFDO2dDQUNWLE1BQU0sRUFBRSxJQUFJOzZCQUNiLENBQUMsQ0FDSDs0QkFDRCxLQUFLLENBQ0gsR0FBRyxFQUNILEtBQUssQ0FBQztnQ0FDSixPQUFPLEVBQUUsQ0FBQztnQ0FDVixNQUFNLEVBQUUsYUFBYTs2QkFDdEIsQ0FBQyxDQUNIOzRCQUNELFVBQVUsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBQUM7eUJBQ3BELENBQUM7cUJBQ0g7OzBCQWlERSxNQUFNOzJCQUFDLGFBQWE7OzBCQUNwQixNQUFNOzJCQUFDLFNBQVM7NENBckNaLHlCQUF5QjtzQkFEL0IsTUFBTTtnQkE4RlAsUUFBUTtzQkFEUCxZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFTekMsbUJBQW1CO3NCQURsQixZQUFZO3VCQUFDLHlCQUF5QixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIEluamVjdCwgT25EZXN0cm95LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEFwcE5hbWUsIE1lbnVJdGVtLCBSb2xlIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcclxuaW1wb3J0IHsgTWVudVNlcnZpY2UsIFByb2ZpbGVTZXJ2aWNlLCBTdG9yYWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAndmVjdG9yLW1lbnUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9tZW51LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9tZW51LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgYW5pbWF0aW9uczogW1xyXG4gICAgdHJpZ2dlcignc2lkZUluT3V0JywgW3N0YXRlKCdpbicsIHN0eWxlKHsgd2lkdGg6ICc2MHB4JyB9KSksIHN0YXRlKCdvdXQnLCBzdHlsZSh7IHdpZHRoOiAnMjUwcHgnIH0pKV0pLFxyXG4gICAgdHJpZ2dlcignZmFkZUluT3V0JywgW1xyXG4gICAgICBzdGF0ZShcclxuICAgICAgICAnMCcsXHJcbiAgICAgICAgc3R5bGUoe1xyXG4gICAgICAgICAgb3BhY2l0eTogMCxcclxuICAgICAgICAgIHdpZHRoOiAnMCUnLFxyXG4gICAgICAgICAgJ2ZvbnQtc2l6ZSc6ICcwZW0nLFxyXG4gICAgICAgIH0pXHJcbiAgICAgICksXHJcbiAgICAgIHN0YXRlKFxyXG4gICAgICAgICcxJyxcclxuICAgICAgICBzdHlsZSh7XHJcbiAgICAgICAgICBvcGFjaXR5OiAxLFxyXG4gICAgICAgICAgJ2ZvbnQtc2l6ZSc6ICcxZW0nLFxyXG4gICAgICAgICAgd2lkdGg6ICcxMDAlJyxcclxuICAgICAgICB9KVxyXG4gICAgICApLFxyXG4gICAgICB0cmFuc2l0aW9uKCcwIDw9PiAxJywgYW5pbWF0ZSgnMzUwbXMgZWFzZS1pbi1vdXQnKSksXHJcbiAgICBdKSxcclxuICAgIHRyaWdnZXIoJ2ZhZGVTZWFyY2hJbk91dCcsIFtcclxuICAgICAgc3RhdGUoXHJcbiAgICAgICAgJzAnLFxyXG4gICAgICAgIHN0eWxlKHtcclxuICAgICAgICAgIG9wYWNpdHk6IDAsXHJcbiAgICAgICAgICB3aWR0aDogJzAlJyxcclxuICAgICAgICAgICdmb250LXNpemUnOiAnMGVtJyxcclxuICAgICAgICB9KVxyXG4gICAgICApLFxyXG4gICAgICBzdGF0ZShcclxuICAgICAgICAnMScsXHJcbiAgICAgICAgc3R5bGUoe1xyXG4gICAgICAgICAgb3BhY2l0eTogMSxcclxuICAgICAgICAgICdmb250LXNpemUnOiAnMWVtJyxcclxuICAgICAgICAgIHdpZHRoOiAnMTAwJScsXHJcbiAgICAgICAgfSlcclxuICAgICAgKSxcclxuICAgICAgdHJhbnNpdGlvbignMCA8PT4gMScsIGFuaW1hdGUoJzM1MG1zIGVhc2UtaW4tb3V0JykpLFxyXG4gICAgXSksXHJcbiAgICB0cmlnZ2VyKCdzdWJtZW51RmFkZUluT3V0JywgW1xyXG4gICAgICBzdGF0ZShcclxuICAgICAgICAnMCcsXHJcbiAgICAgICAgc3R5bGUoe1xyXG4gICAgICAgICAgb3BhY2l0eTogMCxcclxuICAgICAgICAgIGhlaWdodDogJzAlJyxcclxuICAgICAgICB9KVxyXG4gICAgICApLFxyXG4gICAgICBzdGF0ZShcclxuICAgICAgICAnMScsXHJcbiAgICAgICAgc3R5bGUoe1xyXG4gICAgICAgICAgb3BhY2l0eTogMSxcclxuICAgICAgICAgIGhlaWdodDogJ2ZpdC1jb250ZW50JyxcclxuICAgICAgICB9KVxyXG4gICAgICApLFxyXG4gICAgICB0cmFuc2l0aW9uKCcwIDw9PiAxJywgYW5pbWF0ZSgnMzUwbXMgZWFzZS1pbi1vdXQnKSksXHJcbiAgICBdKSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTWVudUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XHJcbiAgcHVibGljIG9wdGlvbnM6IE1lbnVJdGVtW10gPSBbXTtcclxuICBwdWJsaWMgYWN0aXZlT3B0aW9uOiBNZW51SXRlbSB8IHVuZGVmaW5lZDtcclxuICBwdWJsaWMgYWN0aXZlU3VibWVudU9wdGlvbjogTWVudUl0ZW0gfCB1bmRlZmluZWQ7XHJcbiAgcHVibGljIHdpZHRoU3R5bGUgPSB7IHdpZHRoOiAnMjUwcHgnIH07XHJcbiAgcHVibGljIGxhc3RBbmltYXRpb24gPSAnb3V0JztcclxuICBwdWJsaWMgYXBwTmFtZUxhYmVsID0gdGhpcy5lbnZpcm9ubWVudC5hcHBOYW1lO1xyXG4gIHB1YmxpYyBhZG1pbk9wdGlvbjogTWVudUl0ZW0gfCB1bmRlZmluZWQ7XHJcbiAgcHVibGljIGFwcHMgPSBBcHBOYW1lO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBwdWJsaWMgb25GaW5pc2hNZW51T3B0aW9uc0NvbmZpZyA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBzZXQgb3BlbmVkKG9wZW5lZDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fb3BlbmVkID0gb3BlbmVkO1xyXG4gICAgdGhpcy5tZW51U2VydmljZS5tZW51T3BlbmVkJC5uZXh0KHRoaXMub3BlbmVkKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgb3BlbmVkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX29wZW5lZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgaGFzRmludGVjaEFkbWluUGVybWlzc2lvbigpIHtcclxuICAgIHJldHVybiB0aGlzLnByb2ZpbGVTZXJ2aWNlLmhhc0ZpbnRlY2hBZG1pblBlcm1pc3Npb247XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGhhc01hcmtldHBsYWNlQWRtaW5QZXJtaXNzaW9uKCkge1xyXG4gICAgcmV0dXJuIHRoaXMucHJvZmlsZVNlcnZpY2UuaGFzTWFya2V0cGxhY2VBZG1pblBlcm1pc3Npb247XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGhhc0FueU1hcmtldHBsYWNlUGVybWlzc2lvbigpIHtcclxuICAgIHJldHVybiB0aGlzLnByb2ZpbGVTZXJ2aWNlLmhhc0FueU1hcmtldHBsYWNlUGVybWlzc2lvbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgaGFzQW55RmludGVjaFBlcm1pc3Npb24oKSB7XHJcbiAgICByZXR1cm4gdGhpcy5wcm9maWxlU2VydmljZS5oYXNBbnlGaW50ZWNoUGVybWlzc2lvbjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX29wZW5lZCA9IHRydWU7XHJcbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XHJcbiAgcHJpdmF0ZSBjdXJyZW50V2luZG93V2lkdGg6IG51bWJlcjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIG1lbnVTZXJ2aWNlOiBNZW51U2VydmljZSxcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXHJcbiAgICBwcml2YXRlIHByb2ZpbGVTZXJ2aWNlOiBQcm9maWxlU2VydmljZSxcclxuICAgIHByaXZhdGUgc3RvcmFnZVNlcnZpY2U6IFN0b3JhZ2VTZXJ2aWNlLFxyXG4gICAgQEluamVjdCgnZW52aXJvbm1lbnQnKSBwcml2YXRlIGVudmlyb25tZW50OiBhbnksXHJcbiAgICBASW5qZWN0KCdhcHBOYW1lJykgcHJpdmF0ZSBjdXJyZW50QXBwOiBzdHJpbmdcclxuICApIHtcclxuICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZChcclxuICAgICAgdGhpcy5tZW51U2VydmljZS50b2dnbGVNZW51JC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMudG9nZ2xlTWVudSgpO1xyXG4gICAgICB9KVxyXG4gICAgKTtcclxuXHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQoXHJcbiAgICAgIHRoaXMucHJvZmlsZVNlcnZpY2UubW9kdWxlUHJvZmlsZSQuc3Vic2NyaWJlKChwcm9maWxlKSA9PiB7XHJcbiAgICAgICAgaWYgKHByb2ZpbGUpIHtcclxuICAgICAgICAgIGNvbnN0IHJvbGUgPSB0aGlzLnN0b3JhZ2VTZXJ2aWNlLmdldFJvbGUoKTtcclxuICAgICAgICAgIHRoaXMub3B0aW9ucyA9XHJcbiAgICAgICAgICAgIHJvbGUgPT09IFJvbGUuQURNSU5cclxuICAgICAgICAgICAgICA/IHRoaXMubWVudVNlcnZpY2UuZ2V0U2lkZUFkbWluTWVudU9wdGlvbnMoKVxyXG4gICAgICAgICAgICAgIDogdGhpcy5tZW51U2VydmljZS5nZXRTaWRlTWFpbk1lbnVPcHRpb25zKCk7XHJcblxyXG4gICAgICAgICAgaWYgKHRoaXMuaGFzRmludGVjaEFkbWluUGVybWlzc2lvbiB8fCB0aGlzLmhhc01hcmtldHBsYWNlQWRtaW5QZXJtaXNzaW9uKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWRtaW5PcHRpb24gPSB7XHJcbiAgICAgICAgICAgICAgaWQ6IDk5OTk5LFxyXG4gICAgICAgICAgICAgIGxhYmVsOiAnQWRtaW4nLFxyXG4gICAgICAgICAgICAgIGljb25GaWxlTmFtZTogJ3ZlY3Rvcl9hZG1pbl9pY29uJyxcclxuICAgICAgICAgICAgICBjaGlsZHJlbjogW10sXHJcbiAgICAgICAgICAgIH07XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5oYXNGaW50ZWNoQWRtaW5QZXJtaXNzaW9uKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5hZG1pbk9wdGlvbi5jaGlsZHJlbj8ucHVzaCh7XHJcbiAgICAgICAgICAgICAgICBpZDogOTk5OTkxLFxyXG4gICAgICAgICAgICAgICAgbGFiZWw6ICdBZG1pbiBGaW50ZWNoJyxcclxuICAgICAgICAgICAgICAgIGNvbW1hbmQ6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5uYXZpZ2F0ZVRvUG9ydGFsKHsgcG9ydGFsOiAnZmludGVjaCcsIGFkbWluOiB0cnVlIH0pO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGhpZGRlbjogIXRoaXMuaGFzRmludGVjaEFkbWluUGVybWlzc2lvbixcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMuaGFzTWFya2V0cGxhY2VBZG1pblBlcm1pc3Npb24pIHtcclxuICAgICAgICAgICAgICB0aGlzLmFkbWluT3B0aW9uLmNoaWxkcmVuPy5wdXNoKHtcclxuICAgICAgICAgICAgICAgIGlkOiA5OTk5OTIsXHJcbiAgICAgICAgICAgICAgICBsYWJlbDogJ0FkbWluIE1hcmtldHBsYWNlJyxcclxuICAgICAgICAgICAgICAgIGNvbW1hbmQ6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5uYXZpZ2F0ZVRvUG9ydGFsKHsgcG9ydGFsOiAnbWFya2V0cGxhY2UnLCBhZG1pbjogdHJ1ZSB9KTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBoaWRkZW46ICF0aGlzLmhhc01hcmtldHBsYWNlQWRtaW5QZXJtaXNzaW9uLFxyXG4gICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLm9uRmluaXNoTWVudU9wdGlvbnNDb25maWcuZW1pdChudWxsKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG5cclxuICAgIHRoaXMuY3VycmVudFdpbmRvd1dpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJywgWyckZXZlbnQnXSlcclxuICBvblJlc2l6ZSgpIHtcclxuICAgIGlmICh0aGlzLm9wZW5lZCAmJiB0aGlzLmN1cnJlbnRXaW5kb3dXaWR0aCAhPT0gd2luZG93LmlubmVyV2lkdGgpIHtcclxuICAgICAgdGhpcy5jbGVhckFuZENsb3NlTWVudSgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jdXJyZW50V2luZG93V2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24uZXNjYXBlJywgWyckZXZlbnQnXSlcclxuICBoYW5kbGVLZXlib2FyZEV2ZW50KCkge1xyXG4gICAgdGhpcy5jbGVhckFuZENsb3NlTWVudSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHRvZ2dsZU1lbnUoKSB7XHJcbiAgICB0aGlzLm9wZW5lZCA9ICF0aGlzLm9wZW5lZDtcclxuICAgIGlmICghdGhpcy5vcGVuZWQpIHtcclxuICAgICAgdGhpcy5hY3RpdmVPcHRpb24gPSB1bmRlZmluZWQ7XHJcbiAgICAgIHRoaXMuYWN0aXZlU3VibWVudU9wdGlvbiA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICAgIHRoaXMucmVzaXplTWVudSgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uTWVudUNsaWNrKG9wdGlvbjogTWVudUl0ZW0pIHtcclxuICAgIGlmICghb3B0aW9uLmFsd2F5c09wZW4pIHtcclxuICAgICAgaWYgKHRoaXMuYWN0aXZlT3B0aW9uPy5pZCA9PT0gb3B0aW9uLmlkKSB7XHJcbiAgICAgICAgdGhpcy5hY3RpdmVPcHRpb24gPSB1bmRlZmluZWQ7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5hY3RpdmVPcHRpb24gPSBvcHRpb24uY2hpbGRyZW4/Lmxlbmd0aCA/IG9wdGlvbiA6IHVuZGVmaW5lZDtcclxuICAgICAgfVxyXG4gICAgICBpZiAoIW9wdGlvbi5jaGlsZHJlbj8ubGVuZ3RoKSB7XHJcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW29wdGlvbi5yb3V0ZV0pO1xyXG4gICAgICB9XHJcbiAgICAgIGlmIChvcHRpb24uY2hpbGRyZW4/Lmxlbmd0aCAmJiAhdGhpcy5vcGVuZWQpIHtcclxuICAgICAgICB0aGlzLnRvZ2dsZU1lbnUoKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmFjdGl2ZVN1Ym1lbnVPcHRpb24gPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25TdWJtZW51Q2xpY2soc3VibWVudUl0ZW06IE1lbnVJdGVtKSB7XHJcbiAgICBpZiAoIXN1Ym1lbnVJdGVtLmFsd2F5c09wZW4pIHtcclxuICAgICAgaWYgKHRoaXMuYWN0aXZlU3VibWVudU9wdGlvbj8uaWQgPT09IHN1Ym1lbnVJdGVtPy5pZCkge1xyXG4gICAgICAgIHRoaXMuYWN0aXZlU3VibWVudU9wdGlvbiA9IHVuZGVmaW5lZDtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmFjdGl2ZVN1Ym1lbnVPcHRpb24gPSBzdWJtZW51SXRlbS5jaGlsZHJlbj8ubGVuZ3RoID8gc3VibWVudUl0ZW0gOiB1bmRlZmluZWQ7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKCFzdWJtZW51SXRlbS5jaGlsZHJlbj8ubGVuZ3RoKSB7XHJcbiAgICAgICAgaWYgKHN1Ym1lbnVJdGVtLnJvdXRlKSB7XHJcbiAgICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbc3VibWVudUl0ZW0ucm91dGVdKTtcclxuICAgICAgICB9IGVsc2UgaWYgKHN1Ym1lbnVJdGVtLmNvbW1hbmQpIHtcclxuICAgICAgICAgIHN1Ym1lbnVJdGVtLmNvbW1hbmQoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBvcGVuVGVybXNPZlVzZSgpIHt9XHJcblxyXG4gIHB1YmxpYyBpc1BvcnRhbFNlbGVjdGVkKHBvcnRhbDogQXBwTmFtZSkge1xyXG4gICAgcmV0dXJuIHRoaXMuY3VycmVudEFwcCA9PT0gcG9ydGFsO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG5hdmlnYXRlVG9Qb3J0YWwocGFyYW1zOiB7IHBvcnRhbDogJ2ZpbnRlY2gnIHwgJ2xvZ3RlY2gnIHwgJ21hcmtldHBsYWNlJzsgYWRtaW46IGJvb2xlYW4gfSkge1xyXG4gICAgdGhpcy5hY3RpdmVPcHRpb24gPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLmFjdGl2ZVN1Ym1lbnVPcHRpb24gPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLm1lbnVTZXJ2aWNlLm5hdmlnYXRlVG9Qb3J0YWwocGFyYW1zKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2xlYXJBbmRDbG9zZU1lbnUoKTogdm9pZCB7XHJcbiAgICB0aGlzLm9wZW5lZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5hY3RpdmVPcHRpb24gPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLnJlc2l6ZU1lbnUoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVzaXplTWVudSgpIHtcclxuICAgIHRoaXMubGFzdEFuaW1hdGlvbiA9IHRoaXMub3BlbmVkID8gJ291dCcgOiAnaW4nO1xyXG4gICAgdGhpcy53aWR0aFN0eWxlID0geyB3aWR0aDogdGhpcy5vcGVuZWQgPyAnMjUwcHgnIDogJzYwcHgnIH07XHJcbiAgICB0aGlzLmFjdGl2ZVN1Ym1lbnVPcHRpb24gPSB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVzZXRNZW51cyhjbGVhciA9IGZhbHNlKSB7XHJcbiAgICB0aGlzLm9wdGlvbnMgPSBjbGVhciA/IFtdIDogdGhpcy5vcHRpb25zO1xyXG4gICAgdGhpcy5hZG1pbk9wdGlvbiA9IHVuZGVmaW5lZDtcclxuICB9XHJcbn1cclxuIiwiPG5hdiBpZD1cIm1lbnVcIiBbbmdTdHlsZV09XCJ3aWR0aFN0eWxlXCIgW0BzaWRlSW5PdXRdPVwibGFzdEFuaW1hdGlvblwiPlxyXG4gIDxkaXYgY2xhc3M9XCJoZWFkZXItbWVudVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImxvZ28tY29udGFpbmVyXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJsb2dvXCIgW25nQ2xhc3NdPVwieyAnbG9nby1zbWFsbCc6ICFvcGVuZWQgfVwiPjwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cIm1lbnUtc2VjdGlvbnNcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJtZW51LXNlY3Rpb25cIj5cclxuICAgICAgPHNwYW4gW25nU3R5bGVdPVwieyBvcGFjaXR5OiBvcGVuZWQgPyAxIDogMCB9XCIgY2xhc3M9XCJtZW51LXNlY3Rpb24tdGl0bGVcIj5TRUxFw4fDg08gREUgUE9SVEFMPC9zcGFuPlxyXG4gICAgICA8dWwgY2xhc3M9XCJzaWRlLW1lbnVcIj5cclxuICAgICAgICA8bGk+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzPVwic2lkZS1tZW51LWl0ZW1cIlxyXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdzZWxlY3RlZC1wb3J0YWwnOiBpc1BvcnRhbFNlbGVjdGVkKGFwcHMuTE9HVEVDSCkgfVwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJuYXZpZ2F0ZVRvUG9ydGFsKHsgcG9ydGFsOiAnbG9ndGVjaCcsIGFkbWluOiBmYWxzZSB9KVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpY29uLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgIDxpbWcgc3JjPVwiLi4vLi4vLi4vLi4vYXNzZXRzL2ljb25zL3ZlY3Rvcl9sb2d0ZWNoX2ljb24uc3ZnXCIgY2xhc3M9XCJtZW51LWljb25cIiAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWxhYmVsXCI+Q2FyZ2FzPC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9saT5cclxuICAgICAgICA8bGkgKm5nSWY9XCJoYXNBbnlGaW50ZWNoUGVybWlzc2lvblwiPlxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cInNpZGUtbWVudS1pdGVtXCJcclxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnc2VsZWN0ZWQtcG9ydGFsJzogaXNQb3J0YWxTZWxlY3RlZChhcHBzLkZJTlRFQ0gpIH1cIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwibmF2aWdhdGVUb1BvcnRhbCh7IHBvcnRhbDogJ2ZpbnRlY2gnLCBhZG1pbjogZmFsc2UgfSlcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvbi1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICA8aW1nIHNyYz1cIi4uLy4uLy4uLy4uL2Fzc2V0cy9pY29ucy92ZWN0b3JfZmludGVjaF9pY29uLnN2Z1wiIGNsYXNzPVwibWVudS1pY29uXCIgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1sYWJlbFwiPkNhcnRlaXJhIGRpZ2l0YWw8L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2xpPlxyXG4gICAgICAgIDxsaT5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJzaWRlLW1lbnUtaXRlbVwiXHJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ3NlbGVjdGVkLXBvcnRhbCc6IGlzUG9ydGFsU2VsZWN0ZWQoYXBwcy5NQVJLRVRQTEFDRSkgfVwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJuYXZpZ2F0ZVRvUG9ydGFsKHsgcG9ydGFsOiAnbWFya2V0cGxhY2UnLCBhZG1pbjogZmFsc2UgfSlcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvbi1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICA8aW1nIHNyYz1cIi4uLy4uLy4uLy4uL2Fzc2V0cy9pY29ucy92ZWN0b3JfbWFya2V0cGxhY2VfaWNvbi5zdmdcIiBjbGFzcz1cIm1lbnUtaWNvblwiIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtbGFiZWxcIj5Db21idXN0w612ZWw8L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2xpPlxyXG4gICAgICAgIDxsaSAqbmdJZj1cImFkbWluT3B0aW9uICYmIChoYXNGaW50ZWNoQWRtaW5QZXJtaXNzaW9uIHx8IGhhc01hcmtldHBsYWNlQWRtaW5QZXJtaXNzaW9uKVwiPlxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cInNpZGUtbWVudS1pdGVtXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uTWVudUNsaWNrKGFkbWluT3B0aW9uKVwiXHJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2FjdGl2ZS1tZW51JzogYWN0aXZlT3B0aW9uPy5pZCA9PT0gYWRtaW5PcHRpb24uaWQgfVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpY29uLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgIDxpbWcgc3JjPVwiLi4vLi4vLi4vLi4vYXNzZXRzL2ljb25zL3ZlY3Rvcl9hZG1pbl9pY29uLnN2Z1wiIGNsYXNzPVwibWVudS1pY29uXCIgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1sYWJlbFwiPnt7IGFkbWluT3B0aW9uLmxhYmVsIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICpuZ0lmPVwib3BlbmVkICYmIGFkbWluT3B0aW9uLmNoaWxkcmVuPy5sZW5ndGhcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZmFzIGFuZ2xlLWljb25cIlxyXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAgICAgICAgICdmYS1hbmdsZS1kb3duJzogYWN0aXZlT3B0aW9uPy5pZCAhPT0gYWRtaW5PcHRpb24uaWQsXHJcbiAgICAgICAgICAgICAgICAnZmEtYW5nbGUtdXAnOiBhY3RpdmVPcHRpb24/LmlkID09PSBhZG1pbk9wdGlvbi5pZFxyXG4gICAgICAgICAgICAgIH1cIlxyXG4gICAgICAgICAgICA+PC9pPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8dmVjdG9yLXN1Yi1tZW51cy1saXN0XHJcbiAgICAgICAgICAgIFtvcHRpb25zXT1cImFkbWluT3B0aW9uLmNoaWxkcmVuXCJcclxuICAgICAgICAgICAgW3Nob3dMaXN0XT1cImFjdGl2ZU9wdGlvbj8uaWQgPT09IGFkbWluT3B0aW9uLmlkXCJcclxuICAgICAgICAgICAgW3N1Ym1lbnVTZWxlY3RlZF09XCJhY3RpdmVTdWJtZW51T3B0aW9uXCJcclxuICAgICAgICAgICAgKHN1Ym1lbnVTZWxlY3RlZENoYW5nZSk9XCJvblN1Ym1lbnVDbGljaygkZXZlbnQpXCJcclxuICAgICAgICAgID48L3ZlY3Rvci1zdWItbWVudXMtbGlzdD5cclxuICAgICAgICA8L2xpPlxyXG4gICAgICA8L3VsPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwibWVudS1zZWN0aW9uXCI+XHJcbiAgICAgIDxzcGFuIFtuZ1N0eWxlXT1cInsgb3BhY2l0eTogb3BlbmVkICYmIG9wdGlvbnM/Lmxlbmd0aCA/IDEgOiAwIH1cIiBjbGFzcz1cIm1lbnUtc2VjdGlvbi10aXRsZVwiPk1FTlU8L3NwYW4+XHJcbiAgICAgIDx1bCBjbGFzcz1cInNpZGUtbWVudVwiPlxyXG4gICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnNcIj5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJzaWRlLW1lbnUtaXRlbVwiXHJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2FjdGl2ZS1tZW51JzogYWN0aXZlT3B0aW9uPy5pZCA9PT0gb3B0aW9uLmlkLCAnYWx3YXlzLW9wZW4nOiAhIW9wdGlvbi5hbHdheXNPcGVuIH1cIlxyXG4gICAgICAgICAgICBbcFRvb2x0aXBdPVwib3B0aW9uLmxhYmVsXCJcclxuICAgICAgICAgICAgdG9vbHRpcFBvc2l0aW9uPVwicmlnaHRcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwib25NZW51Q2xpY2sob3B0aW9uKVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpY29uLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwib3B0aW9uLmljb25GaWxlTmFtZVwiXHJcbiAgICAgICAgICAgICAgICBbc3JjXT1cIicuLi8uLi8uLi8uLi9hc3NldHMvaWNvbnMvJyArIG9wdGlvbi5pY29uRmlsZU5hbWUgKyAnLnN2ZydcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJtZW51LWljb25cIlxyXG4gICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgPGkgKm5nSWY9XCJvcHRpb24uaWNvblwiIGNsYXNzPVwibWVudS1pY29uIHt7IG9wdGlvbi5pY29uIH19XCI+PC9pPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWxhYmVsXCI+e3sgb3B0aW9uLmxhYmVsIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8aVxyXG4gICAgICAgICAgICAgICpuZ0lmPVwib3BlbmVkICYmIG9wdGlvbi5jaGlsZHJlbj8ubGVuZ3RoICYmICFvcHRpb24uYWx3YXlzT3BlblwiXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJmYXMgYW5nbGUtaWNvblwiXHJcbiAgICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xyXG4gICAgICAgICAgICAgICAgJ2ZhLWFuZ2xlLWRvd24nOiBhY3RpdmVPcHRpb24/LmlkICE9PSBvcHRpb24uaWQsXHJcbiAgICAgICAgICAgICAgICAnZmEtYW5nbGUtdXAnOiBhY3RpdmVPcHRpb24/LmlkID09PSBvcHRpb24uaWRcclxuICAgICAgICAgICAgICB9XCJcclxuICAgICAgICAgICAgPjwvaT5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPHZlY3Rvci1zdWItbWVudXMtbGlzdFxyXG4gICAgICAgICAgICBbb3B0aW9uc109XCJvcHRpb24uY2hpbGRyZW5cIlxyXG4gICAgICAgICAgICBbc2hvd0xpc3RdPVwiYWN0aXZlT3B0aW9uPy5pZCA9PT0gb3B0aW9uLmlkIHx8ICghIW9wdGlvbi5hbHdheXNPcGVuICYmIG9wZW5lZClcIlxyXG4gICAgICAgICAgICBbc3VibWVudVNlbGVjdGVkXT1cImFjdGl2ZVN1Ym1lbnVPcHRpb25cIlxyXG4gICAgICAgICAgICAoc3VibWVudVNlbGVjdGVkQ2hhbmdlKT1cIm9uU3VibWVudUNsaWNrKCRldmVudClcIlxyXG4gICAgICAgICAgPjwvdmVjdG9yLXN1Yi1tZW51cy1saXN0PlxyXG4gICAgICAgIDwvbGk+XHJcbiAgICAgIDwvdWw+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwiZm9vdGVyIHNpZGUtbWVudS1pdGVtXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaWNvbi1jb250YWluZXJcIj5cclxuICAgICAgPGltZyBzcmM9XCIuLi8uLi8uLi8uLi9hc3NldHMvaWNvbnMvbWVudV9mb290ZXJfaWNvbi5zdmdcIiBjbGFzcz1cIm1lbnUtaWNvblwiIC8+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxzcGFuIGNsYXNzPVwibWVudS1sYWJlbCBmb290ZXItY29udGVudFwiPlxyXG4gICAgICA8c3Bhbj4gVmVqYSBub3NzbyA8YSAoY2xpY2spPVwib3BlblRlcm1zT2ZVc2UoKVwiPlRlcm1vIGRlIHVzbzwvYT4gPC9zcGFuPlxyXG4gICAgICA8c3Bhbj5lIDxhPlBvbMOtdGljYSBkZSBwcml2YWNpZGFkZTwvYT48L3NwYW4+XHJcbiAgICA8L3NwYW4+XHJcbiAgPC9kaXY+XHJcbjwvbmF2PlxyXG4iXX0=
269
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmVjdG9yLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL21lbnUvbWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdmVjdG9yLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL21lbnUvbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQXFCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6RyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxPQUFPLEVBQVksSUFBSSxFQUFFLE1BQU0sY0FBYyxDQUFDOzs7Ozs7O0FBa0V2RCxNQUFNLE9BQU8sYUFBYTtJQXlDeEIsWUFDVSxXQUF3QixFQUN4QixNQUFjLEVBQ2QsY0FBOEIsRUFDOUIsY0FBOEIsRUFDUCxXQUFnQixFQUNwQixVQUFrQjtRQUxyQyxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUNQLGdCQUFXLEdBQVgsV0FBVyxDQUFLO1FBQ3BCLGVBQVUsR0FBVixVQUFVLENBQVE7UUE5Q3hDLFlBQU8sR0FBZSxFQUFFLENBQUM7UUFHekIsZUFBVSxHQUFHLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ2hDLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FB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LEVBQUUsSUFBSTtnQ0FDWCxXQUFXLEVBQUUsS0FBSzs2QkFDbkIsQ0FBQyxDQUNIOzRCQUNELEtBQUssQ0FDSCxHQUFHLEVBQ0gsS0FBSyxDQUFDO2dDQUNKLE9BQU8sRUFBRSxDQUFDO2dDQUNWLFdBQVcsRUFBRSxLQUFLO2dDQUNsQixLQUFLLEVBQUUsTUFBTTs2QkFDZCxDQUFDLENBQ0g7NEJBQ0QsVUFBVSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FBQzt5QkFDcEQsQ0FBQzt3QkFDRixPQUFPLENBQUMsa0JBQWtCLEVBQUU7NEJBQzFCLEtBQUssQ0FDSCxHQUFHLEVBQ0gsS0FBSyxDQUFDO2dDQUNKLE9BQU8sRUFBRSxDQUFDO2dDQUNWLE1BQU0sRUFBRSxJQUFJOzZCQUNiLENBQUMsQ0FDSDs0QkFDRCxLQUFLLENBQ0gsR0FBRyxFQUNILEtBQUssQ0FBQztnQ0FDSixPQUFPLEVBQUUsQ0FBQztnQ0FDVixNQUFNLEVBQUUsYUFBYTs2QkFDdEIsQ0FBQyxDQUNIOzRCQUNELFVBQVUsQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLG1CQUFtQixDQUFDLENBQUM7eUJBQ3BELENBQUM7cUJBQ0g7OzBCQWdERSxNQUFNOzJCQUFDLGFBQWE7OzBCQUNwQixNQUFNOzJCQUFDLFNBQVM7NENBckNULHlCQUF5QjtzQkFBbEMsTUFBTTtnQkErRlAsUUFBUTtzQkFEUCxZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFTekMsbUJBQW1CO3NCQURsQixZQUFZO3VCQUFDLHlCQUF5QixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBIb3N0TGlzdGVuZXIsIEluamVjdCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQXBwTmFtZSwgTWVudUl0ZW0sIFJvbGUgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xyXG5pbXBvcnQgeyBNZW51U2VydmljZSwgUHJvZmlsZVNlcnZpY2UsIFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd2ZWN0b3ItbWVudScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL21lbnUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL21lbnUuY29tcG9uZW50LnNjc3MnXSxcclxuICBhbmltYXRpb25zOiBbXHJcbiAgICB0cmlnZ2VyKCdzaWRlSW5PdXQnLCBbc3RhdGUoJ2luJywgc3R5bGUoeyB3aWR0aDogJzYwcHgnIH0pKSwgc3RhdGUoJ291dCcsIHN0eWxlKHsgd2lkdGg6ICcyNTBweCcgfSkpXSksXHJcbiAgICB0cmlnZ2VyKCdmYWRlSW5PdXQnLCBbXHJcbiAgICAgIHN0YXRlKFxyXG4gICAgICAgICcwJyxcclxuICAgICAgICBzdHlsZSh7XHJcbiAgICAgICAgICBvcGFjaXR5OiAwLFxyXG4gICAgICAgICAgd2lkdGg6ICcwJScsXHJcbiAgICAgICAgICAnZm9udC1zaXplJzogJzBlbScsXHJcbiAgICAgICAgfSlcclxuICAgICAgKSxcclxuICAgICAgc3RhdGUoXHJcbiAgICAgICAgJzEnLFxyXG4gICAgICAgIHN0eWxlKHtcclxuICAgICAgICAgIG9wYWNpdHk6IDEsXHJcbiAgICAgICAgICAnZm9udC1zaXplJzogJzFlbScsXHJcbiAgICAgICAgICB3aWR0aDogJzEwMCUnLFxyXG4gICAgICAgIH0pXHJcbiAgICAgICksXHJcbiAgICAgIHRyYW5zaXRpb24oJzAgPD0+IDEnLCBhbmltYXRlKCczNTBtcyBlYXNlLWluLW91dCcpKSxcclxuICAgIF0pLFxyXG4gICAgdHJpZ2dlcignZmFkZVNlYXJjaEluT3V0JywgW1xyXG4gICAgICBzdGF0ZShcclxuICAgICAgICAnMCcsXHJcbiAgICAgICAgc3R5bGUoe1xyXG4gICAgICAgICAgb3BhY2l0eTogMCxcclxuICAgICAgICAgIHdpZHRoOiAnMCUnLFxyXG4gICAgICAgICAgJ2ZvbnQtc2l6ZSc6ICcwZW0nLFxyXG4gICAgICAgIH0pXHJcbiAgICAgICksXHJcbiAgICAgIHN0YXRlKFxyXG4gICAgICAgICcxJyxcclxuICAgICAgICBzdHlsZSh7XHJcbiAgICAgICAgICBvcGFjaXR5OiAxLFxyXG4gICAgICAgICAgJ2ZvbnQtc2l6ZSc6ICcxZW0nLFxyXG4gICAgICAgICAgd2lkdGg6ICcxMDAlJyxcclxuICAgICAgICB9KVxyXG4gICAgICApLFxyXG4gICAgICB0cmFuc2l0aW9uKCcwIDw9PiAxJywgYW5pbWF0ZSgnMzUwbXMgZWFzZS1pbi1vdXQnKSksXHJcbiAgICBdKSxcclxuICAgIHRyaWdnZXIoJ3N1Ym1lbnVGYWRlSW5PdXQnLCBbXHJcbiAgICAgIHN0YXRlKFxyXG4gICAgICAgICcwJyxcclxuICAgICAgICBzdHlsZSh7XHJcbiAgICAgICAgICBvcGFjaXR5OiAwLFxyXG4gICAgICAgICAgaGVpZ2h0OiAnMCUnLFxyXG4gICAgICAgIH0pXHJcbiAgICAgICksXHJcbiAgICAgIHN0YXRlKFxyXG4gICAgICAgICcxJyxcclxuICAgICAgICBzdHlsZSh7XHJcbiAgICAgICAgICBvcGFjaXR5OiAxLFxyXG4gICAgICAgICAgaGVpZ2h0OiAnZml0LWNvbnRlbnQnLFxyXG4gICAgICAgIH0pXHJcbiAgICAgICksXHJcbiAgICAgIHRyYW5zaXRpb24oJzAgPD0+IDEnLCBhbmltYXRlKCczNTBtcyBlYXNlLWluLW91dCcpKSxcclxuICAgIF0pLFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNZW51Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHB1YmxpYyBvcHRpb25zOiBNZW51SXRlbVtdID0gW107XHJcbiAgcHVibGljIGFjdGl2ZU9wdGlvbjogTWVudUl0ZW0gfCB1bmRlZmluZWQ7XHJcbiAgcHVibGljIGFjdGl2ZVN1Ym1lbnVPcHRpb246IE1lbnVJdGVtIHwgdW5kZWZpbmVkO1xyXG4gIHB1YmxpYyB3aWR0aFN0eWxlID0geyB3aWR0aDogJzI1MHB4JyB9O1xyXG4gIHB1YmxpYyBsYXN0QW5pbWF0aW9uID0gJ291dCc7XHJcbiAgcHVibGljIGFwcE5hbWVMYWJlbCA9IHRoaXMuZW52aXJvbm1lbnQuYXBwTmFtZTtcclxuICBwdWJsaWMgYWRtaW5PcHRpb246IE1lbnVJdGVtIHwgdW5kZWZpbmVkO1xyXG4gIHB1YmxpYyBhcHBzID0gQXBwTmFtZTtcclxuXHJcbiAgQE91dHB1dCgpIG9uRmluaXNoTWVudU9wdGlvbnNDb25maWcgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgc2V0IG9wZW5lZChvcGVuZWQ6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX29wZW5lZCA9IG9wZW5lZDtcclxuICAgIHRoaXMubWVudVNlcnZpY2UubWVudU9wZW5lZCQubmV4dCh0aGlzLm9wZW5lZCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IG9wZW5lZCgpIHtcclxuICAgIHJldHVybiB0aGlzLl9vcGVuZWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGhhc0ZpbnRlY2hBZG1pblBlcm1pc3Npb24oKSB7XHJcbiAgICByZXR1cm4gdGhpcy5wcm9maWxlU2VydmljZS5oYXNGaW50ZWNoQWRtaW5QZXJtaXNzaW9uO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBoYXNNYXJrZXRwbGFjZUFkbWluUGVybWlzc2lvbigpIHtcclxuICAgIHJldHVybiB0aGlzLnByb2ZpbGVTZXJ2aWNlLmhhc01hcmtldHBsYWNlQWRtaW5QZXJtaXNzaW9uO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBoYXNBbnlNYXJrZXRwbGFjZVBlcm1pc3Npb24oKSB7XHJcbiAgICByZXR1cm4gdGhpcy5wcm9maWxlU2VydmljZS5oYXNBbnlNYXJrZXRwbGFjZVBlcm1pc3Npb247XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGhhc0FueUZpbnRlY2hQZXJtaXNzaW9uKCkge1xyXG4gICAgcmV0dXJuIHRoaXMucHJvZmlsZVNlcnZpY2UuaGFzQW55RmludGVjaFBlcm1pc3Npb247XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9vcGVuZWQgPSB0cnVlO1xyXG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xyXG4gIHByaXZhdGUgY3VycmVudFdpbmRvd1dpZHRoOiBudW1iZXIgPSAwO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgbWVudVNlcnZpY2U6IE1lbnVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgcHJvZmlsZVNlcnZpY2U6IFByb2ZpbGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBzdG9yYWdlU2VydmljZTogU3RvcmFnZVNlcnZpY2UsXHJcbiAgICBASW5qZWN0KCdlbnZpcm9ubWVudCcpIHByaXZhdGUgZW52aXJvbm1lbnQ6IGFueSxcclxuICAgIEBJbmplY3QoJ2FwcE5hbWUnKSBwcml2YXRlIGN1cnJlbnRBcHA6IHN0cmluZ1xyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQoXHJcbiAgICAgIHRoaXMubWVudVNlcnZpY2UudG9nZ2xlTWVudSQuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLnRvZ2dsZU1lbnUoKTtcclxuICAgICAgfSlcclxuICAgICk7XHJcblxyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKFxyXG4gICAgICB0aGlzLnByb2ZpbGVTZXJ2aWNlLm1vZHVsZVByb2ZpbGUkLnN1YnNjcmliZSgocHJvZmlsZSkgPT4ge1xyXG4gICAgICAgIGlmIChwcm9maWxlKSB7XHJcbiAgICAgICAgICBjb25zdCByb2xlID0gdGhpcy5zdG9yYWdlU2VydmljZS5nZXRSb2xlKCk7XHJcbiAgICAgICAgICB0aGlzLm9wdGlvbnMgPVxyXG4gICAgICAgICAgICByb2xlID09PSBSb2xlLkFETUlOXHJcbiAgICAgICAgICAgICAgPyB0aGlzLm1lbnVTZXJ2aWNlLmdldFNpZGVBZG1pbk1lbnVPcHRpb25zKClcclxuICAgICAgICAgICAgICA6IHRoaXMubWVudVNlcnZpY2UuZ2V0U2lkZU1haW5NZW51T3B0aW9ucygpO1xyXG5cclxuICAgICAgICAgIGlmICh0aGlzLmhhc0ZpbnRlY2hBZG1pblBlcm1pc3Npb24gfHwgdGhpcy5oYXNNYXJrZXRwbGFjZUFkbWluUGVybWlzc2lvbikge1xyXG4gICAgICAgICAgICB0aGlzLmFkbWluT3B0aW9uID0ge1xyXG4gICAgICAgICAgICAgIGlkOiA5OTk5OSxcclxuICAgICAgICAgICAgICBsYWJlbDogJ0FkbWluJyxcclxuICAgICAgICAgICAgICBpY29uRmlsZU5hbWU6ICd2ZWN0b3JfYWRtaW5faWNvbicsXHJcbiAgICAgICAgICAgICAgY2hpbGRyZW46IFtdLFxyXG4gICAgICAgICAgICB9O1xyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMuaGFzRmludGVjaEFkbWluUGVybWlzc2lvbikge1xyXG4gICAgICAgICAgICAgIHRoaXMuYWRtaW5PcHRpb24uY2hpbGRyZW4/LnB1c2goe1xyXG4gICAgICAgICAgICAgICAgaWQ6IDk5OTk5MSxcclxuICAgICAgICAgICAgICAgIGxhYmVsOiAnQWRtaW4gRmludGVjaCcsXHJcbiAgICAgICAgICAgICAgICBjb21tYW5kOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMubmF2aWdhdGVUb1BvcnRhbCh7IHBvcnRhbDogJ2ZpbnRlY2gnLCBhZG1pbjogdHJ1ZSB9KTtcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBoaWRkZW46ICF0aGlzLmhhc0ZpbnRlY2hBZG1pblBlcm1pc3Npb24sXHJcbiAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmICh0aGlzLmhhc01hcmtldHBsYWNlQWRtaW5QZXJtaXNzaW9uKSB7XHJcbiAgICAgICAgICAgICAgdGhpcy5hZG1pbk9wdGlvbi5jaGlsZHJlbj8ucHVzaCh7XHJcbiAgICAgICAgICAgICAgICBpZDogOTk5OTkyLFxyXG4gICAgICAgICAgICAgICAgbGFiZWw6ICdBZG1pbiBNYXJrZXRwbGFjZScsXHJcbiAgICAgICAgICAgICAgICBjb21tYW5kOiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIHRoaXMubmF2aWdhdGVUb1BvcnRhbCh7IHBvcnRhbDogJ21hcmtldHBsYWNlJywgYWRtaW46IHRydWUgfSk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgaGlkZGVuOiAhdGhpcy5oYXNNYXJrZXRwbGFjZUFkbWluUGVybWlzc2lvbixcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5vbkZpbmlzaE1lbnVPcHRpb25zQ29uZmlnLmVtaXQobnVsbCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgKTtcclxuXHJcbiAgICB0aGlzLmN1cnJlbnRXaW5kb3dXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXHJcbiAgb25SZXNpemUoKSB7XHJcbiAgICBpZiAodGhpcy5vcGVuZWQgJiYgdGhpcy5jdXJyZW50V2luZG93V2lkdGggIT09IHdpbmRvdy5pbm5lcldpZHRoKSB7XHJcbiAgICAgIHRoaXMuY2xlYXJBbmRDbG9zZU1lbnUoKTtcclxuICAgIH1cclxuICAgIHRoaXMuY3VycmVudFdpbmRvd1dpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duLmVzY2FwZScsIFsnJGV2ZW50J10pXHJcbiAgaGFuZGxlS2V5Ym9hcmRFdmVudCgpIHtcclxuICAgIHRoaXMuY2xlYXJBbmRDbG9zZU1lbnUoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB0b2dnbGVNZW51KCkge1xyXG4gICAgdGhpcy5vcGVuZWQgPSAhdGhpcy5vcGVuZWQ7XHJcbiAgICBpZiAoIXRoaXMub3BlbmVkKSB7XHJcbiAgICAgIHRoaXMuYWN0aXZlT3B0aW9uID0gdW5kZWZpbmVkO1xyXG4gICAgICB0aGlzLmFjdGl2ZVN1Ym1lbnVPcHRpb24gPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgICB0aGlzLnJlc2l6ZU1lbnUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbk1lbnVDbGljayhvcHRpb246IE1lbnVJdGVtKSB7XHJcbiAgICBpZiAoIW9wdGlvbi5hbHdheXNPcGVuKSB7XHJcbiAgICAgIGlmICh0aGlzLmFjdGl2ZU9wdGlvbj8uaWQgPT09IG9wdGlvbi5pZCkge1xyXG4gICAgICAgIHRoaXMuYWN0aXZlT3B0aW9uID0gdW5kZWZpbmVkO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuYWN0aXZlT3B0aW9uID0gb3B0aW9uLmNoaWxkcmVuPy5sZW5ndGggPyBvcHRpb24gOiB1bmRlZmluZWQ7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKCFvcHRpb24uY2hpbGRyZW4/Lmxlbmd0aCkge1xyXG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtvcHRpb24ucm91dGVdKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAob3B0aW9uLmNoaWxkcmVuPy5sZW5ndGggJiYgIXRoaXMub3BlbmVkKSB7XHJcbiAgICAgICAgdGhpcy50b2dnbGVNZW51KCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5hY3RpdmVTdWJtZW51T3B0aW9uID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uU3VibWVudUNsaWNrKHN1Ym1lbnVJdGVtOiBNZW51SXRlbSkge1xyXG4gICAgaWYgKCFzdWJtZW51SXRlbS5hbHdheXNPcGVuKSB7XHJcbiAgICAgIGlmICh0aGlzLmFjdGl2ZVN1Ym1lbnVPcHRpb24/LmlkID09PSBzdWJtZW51SXRlbT8uaWQpIHtcclxuICAgICAgICB0aGlzLmFjdGl2ZVN1Ym1lbnVPcHRpb24gPSB1bmRlZmluZWQ7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5hY3RpdmVTdWJtZW51T3B0aW9uID0gc3VibWVudUl0ZW0uY2hpbGRyZW4/Lmxlbmd0aCA/IHN1Ym1lbnVJdGVtIDogdW5kZWZpbmVkO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICghc3VibWVudUl0ZW0uY2hpbGRyZW4/Lmxlbmd0aCkge1xyXG4gICAgICAgIGlmIChzdWJtZW51SXRlbS5yb3V0ZSkge1xyXG4gICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3N1Ym1lbnVJdGVtLnJvdXRlXSk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChzdWJtZW51SXRlbS5jb21tYW5kKSB7XHJcbiAgICAgICAgICBzdWJtZW51SXRlbS5jb21tYW5kKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb3BlblRlcm1zT2ZVc2UoKSB7fVxyXG5cclxuICBwdWJsaWMgaXNQb3J0YWxTZWxlY3RlZChwb3J0YWw6IEFwcE5hbWUpIHtcclxuICAgIHJldHVybiB0aGlzLmN1cnJlbnRBcHAgPT09IHBvcnRhbDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBuYXZpZ2F0ZVRvUG9ydGFsKHBhcmFtczogeyBwb3J0YWw6ICdmaW50ZWNoJyB8ICdsb2d0ZWNoJyB8ICdtYXJrZXRwbGFjZSc7IGFkbWluOiBib29sZWFuIH0pIHtcclxuICAgIHRoaXMuYWN0aXZlT3B0aW9uID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5hY3RpdmVTdWJtZW51T3B0aW9uID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5tZW51U2VydmljZS5uYXZpZ2F0ZVRvUG9ydGFsKHBhcmFtcyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNsZWFyQW5kQ2xvc2VNZW51KCk6IHZvaWQge1xyXG4gICAgdGhpcy5vcGVuZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuYWN0aXZlT3B0aW9uID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5yZXNpemVNZW51KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlc2l6ZU1lbnUoKSB7XHJcbiAgICB0aGlzLmxhc3RBbmltYXRpb24gPSB0aGlzLm9wZW5lZCA/ICdvdXQnIDogJ2luJztcclxuICAgIHRoaXMud2lkdGhTdHlsZSA9IHsgd2lkdGg6IHRoaXMub3BlbmVkID8gJzI1MHB4JyA6ICc2MHB4JyB9O1xyXG4gICAgdGhpcy5hY3RpdmVTdWJtZW51T3B0aW9uID0gdW5kZWZpbmVkO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlc2V0TWVudXMoY2xlYXIgPSBmYWxzZSkge1xyXG4gICAgdGhpcy5vcHRpb25zID0gY2xlYXIgPyBbXSA6IHRoaXMub3B0aW9ucztcclxuICAgIHRoaXMuYWRtaW5PcHRpb24gPSB1bmRlZmluZWQ7XHJcbiAgfVxyXG59XHJcbiIsIjxuYXYgaWQ9XCJtZW51XCIgW25nU3R5bGVdPVwid2lkdGhTdHlsZVwiIFtAc2lkZUluT3V0XT1cImxhc3RBbmltYXRpb25cIj5cclxuICA8ZGl2IGNsYXNzPVwiaGVhZGVyLW1lbnVcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJsb2dvLWNvbnRhaW5lclwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibG9nb1wiIFtuZ0NsYXNzXT1cInsgJ2xvZ28tc21hbGwnOiAhb3BlbmVkIH1cIj48L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJtZW51LXNlY3Rpb25zXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibWVudS1zZWN0aW9uXCI+XHJcbiAgICAgIDxzcGFuIFtuZ1N0eWxlXT1cInsgb3BhY2l0eTogb3BlbmVkID8gMSA6IDAgfVwiIGNsYXNzPVwibWVudS1zZWN0aW9uLXRpdGxlXCI+U0VMRcOHw4NPIERFIFBPUlRBTDwvc3Bhbj5cclxuICAgICAgPHVsIGNsYXNzPVwic2lkZS1tZW51XCI+XHJcbiAgICAgICAgPGxpPlxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cInNpZGUtbWVudS1pdGVtXCJcclxuICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnc2VsZWN0ZWQtcG9ydGFsJzogaXNQb3J0YWxTZWxlY3RlZChhcHBzLkxPR1RFQ0gpIH1cIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwibmF2aWdhdGVUb1BvcnRhbCh7IHBvcnRhbDogJ2xvZ3RlY2gnLCBhZG1pbjogZmFsc2UgfSlcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvbi1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICA8aW1nIHNyYz1cIi4uLy4uLy4uLy4uL2Fzc2V0cy9pY29ucy92ZWN0b3JfbG9ndGVjaF9pY29uLnN2Z1wiIGNsYXNzPVwibWVudS1pY29uXCIgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1sYWJlbFwiPkNhcmdhczwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbGk+XHJcbiAgICAgICAgPGxpICpuZ0lmPVwiaGFzQW55RmludGVjaFBlcm1pc3Npb25cIj5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJzaWRlLW1lbnUtaXRlbVwiXHJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ3NlbGVjdGVkLXBvcnRhbCc6IGlzUG9ydGFsU2VsZWN0ZWQoYXBwcy5GSU5URUNIKSB9XCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cIm5hdmlnYXRlVG9Qb3J0YWwoeyBwb3J0YWw6ICdmaW50ZWNoJywgYWRtaW46IGZhbHNlIH0pXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImljb24tY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgPGltZyBzcmM9XCIuLi8uLi8uLi8uLi9hc3NldHMvaWNvbnMvdmVjdG9yX2ZpbnRlY2hfaWNvbi5zdmdcIiBjbGFzcz1cIm1lbnUtaWNvblwiIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtbGFiZWxcIj5DYXJ0ZWlyYSBkaWdpdGFsPC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9saT5cclxuICAgICAgICA8bGk+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzPVwic2lkZS1tZW51LWl0ZW1cIlxyXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdzZWxlY3RlZC1wb3J0YWwnOiBpc1BvcnRhbFNlbGVjdGVkKGFwcHMuTUFSS0VUUExBQ0UpIH1cIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwibmF2aWdhdGVUb1BvcnRhbCh7IHBvcnRhbDogJ21hcmtldHBsYWNlJywgYWRtaW46IGZhbHNlIH0pXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImljb24tY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgICAgPGltZyBzcmM9XCIuLi8uLi8uLi8uLi9hc3NldHMvaWNvbnMvdmVjdG9yX21hcmtldHBsYWNlX2ljb24uc3ZnXCIgY2xhc3M9XCJtZW51LWljb25cIiAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtZW51LWxhYmVsXCI+Q29tYnVzdMOtdmVsPC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9saT5cclxuICAgICAgICA8bGkgKm5nSWY9XCJhZG1pbk9wdGlvbiAmJiAoaGFzRmludGVjaEFkbWluUGVybWlzc2lvbiB8fCBoYXNNYXJrZXRwbGFjZUFkbWluUGVybWlzc2lvbilcIj5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJzaWRlLW1lbnUtaXRlbVwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJvbk1lbnVDbGljayhhZG1pbk9wdGlvbilcIlxyXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdhY3RpdmUtbWVudSc6IGFjdGl2ZU9wdGlvbj8uaWQgPT09IGFkbWluT3B0aW9uLmlkIH1cIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvbi1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICA8aW1nIHNyYz1cIi4uLy4uLy4uLy4uL2Fzc2V0cy9pY29ucy92ZWN0b3JfYWRtaW5faWNvbi5zdmdcIiBjbGFzcz1cIm1lbnUtaWNvblwiIC8+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1lbnUtbGFiZWxcIj57eyBhZG1pbk9wdGlvbi5sYWJlbCB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICAqbmdJZj1cIm9wZW5lZCAmJiBhZG1pbk9wdGlvbi5jaGlsZHJlbj8ubGVuZ3RoXCJcclxuICAgICAgICAgICAgICBjbGFzcz1cImZhcyBhbmdsZS1pY29uXCJcclxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XHJcbiAgICAgICAgICAgICAgICAnZmEtYW5nbGUtZG93bic6IGFjdGl2ZU9wdGlvbj8uaWQgIT09IGFkbWluT3B0aW9uLmlkLFxyXG4gICAgICAgICAgICAgICAgJ2ZhLWFuZ2xlLXVwJzogYWN0aXZlT3B0aW9uPy5pZCA9PT0gYWRtaW5PcHRpb24uaWRcclxuICAgICAgICAgICAgICB9XCJcclxuICAgICAgICAgICAgPjwvaT5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPHZlY3Rvci1zdWItbWVudXMtbGlzdFxyXG4gICAgICAgICAgICBbb3B0aW9uc109XCJhZG1pbk9wdGlvbi5jaGlsZHJlblwiXHJcbiAgICAgICAgICAgIFtzaG93TGlzdF09XCJhY3RpdmVPcHRpb24/LmlkID09PSBhZG1pbk9wdGlvbi5pZFwiXHJcbiAgICAgICAgICAgIFtzdWJtZW51U2VsZWN0ZWRdPVwiYWN0aXZlU3VibWVudU9wdGlvblwiXHJcbiAgICAgICAgICAgIChzdWJtZW51U2VsZWN0ZWRDaGFuZ2UpPVwib25TdWJtZW51Q2xpY2soJGV2ZW50KVwiXHJcbiAgICAgICAgICA+PC92ZWN0b3Itc3ViLW1lbnVzLWxpc3Q+XHJcbiAgICAgICAgPC9saT5cclxuICAgICAgPC91bD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cIm1lbnUtc2VjdGlvblwiPlxyXG4gICAgICA8c3BhbiBbbmdTdHlsZV09XCJ7IG9wYWNpdHk6IG9wZW5lZCAmJiBvcHRpb25zPy5sZW5ndGggPyAxIDogMCB9XCIgY2xhc3M9XCJtZW51LXNlY3Rpb24tdGl0bGVcIj5NRU5VPC9zcGFuPlxyXG4gICAgICA8dWwgY2xhc3M9XCJzaWRlLW1lbnVcIj5cclxuICAgICAgICA8bGkgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBvcHRpb25zXCI+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzPVwic2lkZS1tZW51LWl0ZW1cIlxyXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7ICdhY3RpdmUtbWVudSc6IGFjdGl2ZU9wdGlvbj8uaWQgPT09IG9wdGlvbi5pZCwgJ2Fsd2F5cy1vcGVuJzogISFvcHRpb24uYWx3YXlzT3BlbiB9XCJcclxuICAgICAgICAgICAgW3BUb29sdGlwXT1cIm9wdGlvbi5sYWJlbFwiXHJcbiAgICAgICAgICAgIHRvb2x0aXBQb3NpdGlvbj1cInJpZ2h0XCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uTWVudUNsaWNrKG9wdGlvbilcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvbi1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIm9wdGlvbi5pY29uRmlsZU5hbWVcIlxyXG4gICAgICAgICAgICAgICAgW3NyY109XCInLi4vLi4vLi4vLi4vYXNzZXRzL2ljb25zLycgKyBvcHRpb24uaWNvbkZpbGVOYW1lICsgJy5zdmcnXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwibWVudS1pY29uXCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgIDxpICpuZ0lmPVwib3B0aW9uLmljb25cIiBjbGFzcz1cIm1lbnUtaWNvbiB7eyBvcHRpb24uaWNvbiB9fVwiPjwvaT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibWVudS1sYWJlbFwiPnt7IG9wdGlvbi5sYWJlbCB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPGlcclxuICAgICAgICAgICAgICAqbmdJZj1cIm9wZW5lZCAmJiBvcHRpb24uY2hpbGRyZW4/Lmxlbmd0aCAmJiAhb3B0aW9uLmFsd2F5c09wZW5cIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZmFzIGFuZ2xlLWljb25cIlxyXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAgICAgICAgICdmYS1hbmdsZS1kb3duJzogYWN0aXZlT3B0aW9uPy5pZCAhPT0gb3B0aW9uLmlkLFxyXG4gICAgICAgICAgICAgICAgJ2ZhLWFuZ2xlLXVwJzogYWN0aXZlT3B0aW9uPy5pZCA9PT0gb3B0aW9uLmlkXHJcbiAgICAgICAgICAgICAgfVwiXHJcbiAgICAgICAgICAgID48L2k+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDx2ZWN0b3Itc3ViLW1lbnVzLWxpc3RcclxuICAgICAgICAgICAgW29wdGlvbnNdPVwib3B0aW9uLmNoaWxkcmVuXCJcclxuICAgICAgICAgICAgW3Nob3dMaXN0XT1cImFjdGl2ZU9wdGlvbj8uaWQgPT09IG9wdGlvbi5pZCB8fCAoISFvcHRpb24uYWx3YXlzT3BlbiAmJiBvcGVuZWQpXCJcclxuICAgICAgICAgICAgW3N1Ym1lbnVTZWxlY3RlZF09XCJhY3RpdmVTdWJtZW51T3B0aW9uXCJcclxuICAgICAgICAgICAgKHN1Ym1lbnVTZWxlY3RlZENoYW5nZSk9XCJvblN1Ym1lbnVDbGljaygkZXZlbnQpXCJcclxuICAgICAgICAgID48L3ZlY3Rvci1zdWItbWVudXMtbGlzdD5cclxuICAgICAgICA8L2xpPlxyXG4gICAgICA8L3VsPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPGRpdiBjbGFzcz1cImZvb3RlciBzaWRlLW1lbnUtaXRlbVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImljb24tY29udGFpbmVyXCI+XHJcbiAgICAgIDxpbWcgc3JjPVwiLi4vLi4vLi4vLi4vYXNzZXRzL2ljb25zL21lbnVfZm9vdGVyX2ljb24uc3ZnXCIgY2xhc3M9XCJtZW51LWljb25cIiAvPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8c3BhbiBjbGFzcz1cIm1lbnUtbGFiZWwgZm9vdGVyLWNvbnRlbnRcIj5cclxuICAgICAgPHNwYW4+IFZlamEgbm9zc28gPGEgKGNsaWNrKT1cIm9wZW5UZXJtc09mVXNlKClcIj5UZXJtbyBkZSB1c288L2E+IDwvc3Bhbj5cclxuICAgICAgPHNwYW4+ZSA8YT5Qb2zDrXRpY2EgZGUgcHJpdmFjaWRhZGU8L2E+PC9zcGFuPlxyXG4gICAgPC9zcGFuPlxyXG4gIDwvZGl2PlxyXG48L25hdj5cclxuIl19