simpo-component-library 3.6.814 → 3.6.815
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/directive/merge-header.directive.mjs +21 -7
- package/esm2022/lib/directive/sticky-directive.mjs +19 -8
- package/esm2022/lib/ecommerce/sections/cart/cart.component.mjs +9 -8
- package/esm2022/lib/elements/below-image-card/below-image-card.component.mjs +3 -3
- package/esm2022/lib/sections/banner-section/banner-section.component.mjs +3 -3
- package/esm2022/lib/sections/choose-us-section/choose-us-section.component.mjs +3 -3
- package/esm2022/lib/sections/header-section/header-section.component.mjs +53 -55
- package/esm2022/lib/sections/header-section/header-section.model.mjs +1 -1
- package/esm2022/lib/sections/testimonial-slider/testimonial-slider.component.mjs +3 -3
- package/esm2022/lib/services/events.service.mjs +1 -2
- package/esm2022/lib/services/rest.service.mjs +1 -4
- package/esm2022/lib/styles/index.mjs +1 -6
- package/fesm2022/simpo-component-library.mjs +102 -89
- package/fesm2022/simpo-component-library.mjs.map +1 -1
- package/lib/components/input-fields/input-fields.component.d.ts +1 -1
- package/lib/directive/merge-header.directive.d.ts +7 -3
- package/lib/directive/sticky-directive.d.ts +4 -2
- package/lib/ecommerce/sections/authentication-required/authentication-required.component.d.ts +1 -1
- package/lib/ecommerce/sections/featured-category/featured-category.component.d.ts +1 -1
- package/lib/ecommerce/sections/featured-category/featured-collection.component.d.ts +1 -1
- package/lib/ecommerce/sections/new-collection/new-collection.component.d.ts +1 -1
- package/lib/ecommerce/sections/product-desc/product-desc.component.d.ts +1 -1
- package/lib/ecommerce/sections/schemes/schemes.component.d.ts +1 -1
- package/lib/elements/link-editor/link-editor.component.d.ts +1 -1
- package/lib/sections/banner-carousel/banner-carousel.component.d.ts +2 -2
- package/lib/sections/carousel-banner/carousel-banner.component.d.ts +1 -1
- package/lib/sections/contact-us/contact-us.component.d.ts +1 -1
- package/lib/sections/faq-columns-cards/faq-columns-cards.component.d.ts +1 -1
- package/lib/sections/faq-section/faq-section.component.d.ts +1 -1
- package/lib/sections/header-section/header-section.component.d.ts +9 -10
- package/lib/sections/header-section/header-section.model.d.ts +1 -2
- package/lib/sections/image-grid-hotspot/image-grid-hotspot.component.d.ts +1 -1
- package/lib/sections/image-grid-section/image-grid-section.component.d.ts +1 -1
- package/lib/sections/image-section/image-section.component.d.ts +2 -2
- package/lib/sections/logo-showcase/logo-showcase.component.d.ts +2 -2
- package/lib/sections/new-testimonials/new-testimonials.component.d.ts +1 -1
- package/lib/sections/pricing-section/pricing-section.component.d.ts +2 -2
- package/lib/services/events.service.d.ts +0 -1
- package/lib/services/rest.service.d.ts +0 -1
- package/lib/styles/index.d.ts +0 -4
- package/package.json +1 -1
- package/simpo-component-library-3.6.815.tgz +0 -0
- package/simpo-component-library-3.6.814.tgz +0 -0
|
@@ -1,22 +1,33 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { isPlatformBrowser } from '@angular/common';
|
|
2
|
+
import { Directive, Inject, Input, PLATFORM_ID } from '@angular/core';
|
|
2
3
|
import * as i0 from "@angular/core";
|
|
3
4
|
import * as i1 from "../services/events.service";
|
|
4
5
|
export class MergeHeaderDirective {
|
|
5
|
-
constructor(eventsService, el) {
|
|
6
|
+
constructor(eventsService, el, platformId) {
|
|
6
7
|
this.eventsService = eventsService;
|
|
7
8
|
this.el = el;
|
|
9
|
+
this.platformId = platformId;
|
|
8
10
|
this.top = 0;
|
|
11
|
+
this.isBrowser = false;
|
|
12
|
+
this.isBrowser = isPlatformBrowser(this.platformId);
|
|
9
13
|
}
|
|
10
14
|
ngOnInit() {
|
|
11
|
-
this.
|
|
12
|
-
|
|
15
|
+
if (!this.isBrowser)
|
|
16
|
+
return;
|
|
17
|
+
this.elementHeightSubscription = this.eventsService.elementHeight.subscribe((res) => {
|
|
18
|
+
this.top = Number(res) || 0;
|
|
13
19
|
this.applyBackgroundPosition();
|
|
14
20
|
});
|
|
15
21
|
}
|
|
16
22
|
ngOnChanges() {
|
|
17
23
|
this.applyBackgroundPosition();
|
|
18
24
|
}
|
|
25
|
+
ngOnDestroy() {
|
|
26
|
+
this.elementHeightSubscription?.unsubscribe();
|
|
27
|
+
}
|
|
19
28
|
applyBackgroundPosition() {
|
|
29
|
+
if (!this.isBrowser)
|
|
30
|
+
return;
|
|
20
31
|
if (window.innerWidth > 475) {
|
|
21
32
|
if (this.merge)
|
|
22
33
|
this.el.nativeElement.style.setProperty('margin-top', `-${this.top}px`);
|
|
@@ -24,7 +35,7 @@ export class MergeHeaderDirective {
|
|
|
24
35
|
this.el.nativeElement.style.setProperty('margin-top', `0px`);
|
|
25
36
|
}
|
|
26
37
|
}
|
|
27
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MergeHeaderDirective, deps: [{ token: i1.EventsService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
38
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MergeHeaderDirective, deps: [{ token: i1.EventsService }, { token: i0.ElementRef }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
28
39
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: MergeHeaderDirective, isStandalone: true, selector: "[simpoMergeHeader]", inputs: { merge: ["simpoMergeHeader", "merge"], backgroundInfo: "backgroundInfo" }, usesOnChanges: true, ngImport: i0 }); }
|
|
29
40
|
}
|
|
30
41
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MergeHeaderDirective, decorators: [{
|
|
@@ -33,11 +44,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
33
44
|
selector: '[simpoMergeHeader]',
|
|
34
45
|
standalone: true
|
|
35
46
|
}]
|
|
36
|
-
}], ctorParameters: () => [{ type: i1.EventsService }, { type: i0.ElementRef }
|
|
47
|
+
}], ctorParameters: () => [{ type: i1.EventsService }, { type: i0.ElementRef }, { type: undefined, decorators: [{
|
|
48
|
+
type: Inject,
|
|
49
|
+
args: [PLATFORM_ID]
|
|
50
|
+
}] }], propDecorators: { merge: [{
|
|
37
51
|
type: Input,
|
|
38
52
|
args: ['simpoMergeHeader']
|
|
39
53
|
}], backgroundInfo: [{
|
|
40
54
|
type: Input,
|
|
41
55
|
args: ['backgroundInfo']
|
|
42
56
|
}] } });
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVyZ2UtaGVhZGVyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpbXBvLXVpL3NyYy9saWIvZGlyZWN0aXZlL21lcmdlLWhlYWRlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFNBQVMsRUFBYyxNQUFNLEVBQUUsS0FBSyxFQUFnQyxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQVFoSCxNQUFNLE9BQU8sb0JBQW9CO0lBUS9CLFlBQ1UsYUFBNEIsRUFDNUIsRUFBYyxFQUNPLFVBQWtCO1FBRnZDLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLE9BQUUsR0FBRixFQUFFLENBQVk7UUFDTyxlQUFVLEdBQVYsVUFBVSxDQUFRO1FBUHpDLFFBQUcsR0FBVyxDQUFDLENBQUM7UUFDaEIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQVF4QixJQUFJLENBQUMsU0FBUyxHQUFHLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUztZQUFFLE9BQU87UUFFNUIsSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQVksRUFBRSxFQUFFO1lBQzNGLElBQUksQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM1QixJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLHVCQUF1QixFQUFFLENBQUE7SUFDaEMsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMseUJBQXlCLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFDaEQsQ0FBQztJQUVPLHVCQUF1QjtRQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVM7WUFBRSxPQUFPO1FBRTVCLElBQUksTUFBTSxDQUFDLFVBQVUsR0FBRyxHQUFHLEVBQUUsQ0FBQztZQUM1QixJQUFJLElBQUksQ0FBQyxLQUFLO2dCQUNaLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQ3JDLFlBQVksRUFBRSxJQUFJLElBQUksQ0FBQyxHQUFHLElBQUksQ0FDL0IsQ0FBQzs7Z0JBRUYsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FDckMsWUFBWSxFQUFFLEtBQUssQ0FDcEIsQ0FBQztRQUNOLENBQUM7SUFDSCxDQUFDOytHQTlDVSxvQkFBb0IseUVBV3JCLFdBQVc7bUdBWFYsb0JBQW9COzs0RkFBcEIsb0JBQW9CO2tCQUpoQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjs7MEJBWUksTUFBTTsyQkFBQyxXQUFXO3lDQVZNLEtBQUs7c0JBQS9CLEtBQUs7dUJBQUMsa0JBQWtCO2dCQUNBLGNBQWM7c0JBQXRDLEtBQUs7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbmplY3QsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0LCBQTEFURk9STV9JRCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRXZlbnRzU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2V2ZW50cy5zZXJ2aWNlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnW3NpbXBvTWVyZ2VIZWFkZXJdJyxcclxuICBzdGFuZGFsb25lOiB0cnVlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNZXJnZUhlYWRlckRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICBASW5wdXQoJ3NpbXBvTWVyZ2VIZWFkZXInKSBtZXJnZT86IGJvb2xlYW47XG4gIEBJbnB1dCgnYmFja2dyb3VuZEluZm8nKSBiYWNrZ3JvdW5kSW5mbzogYW55O1xuXG4gIHByaXZhdGUgdG9wOiBudW1iZXIgPSAwO1xuICBwcml2YXRlIGlzQnJvd3NlciA9IGZhbHNlO1xuICBwcml2YXRlIGVsZW1lbnRIZWlnaHRTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBldmVudHNTZXJ2aWNlOiBFdmVudHNTZXJ2aWNlLFxuICAgIHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsXG4gICAgQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSBwbGF0Zm9ybUlkOiBvYmplY3RcbiAgKSB7XG4gICAgdGhpcy5pc0Jyb3dzZXIgPSBpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKCF0aGlzLmlzQnJvd3NlcikgcmV0dXJuO1xuXG4gICAgdGhpcy5lbGVtZW50SGVpZ2h0U3Vic2NyaXB0aW9uID0gdGhpcy5ldmVudHNTZXJ2aWNlLmVsZW1lbnRIZWlnaHQuc3Vic2NyaWJlKChyZXM6IHVua25vd24pID0+IHtcbiAgICAgIHRoaXMudG9wID0gTnVtYmVyKHJlcykgfHwgMDtcbiAgICAgIHRoaXMuYXBwbHlCYWNrZ3JvdW5kUG9zaXRpb24oKTtcbiAgICB9KTtcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcygpIHtcbiAgICB0aGlzLmFwcGx5QmFja2dyb3VuZFBvc2l0aW9uKClcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuZWxlbWVudEhlaWdodFN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlCYWNrZ3JvdW5kUG9zaXRpb24oKSB7XG4gICAgaWYgKCF0aGlzLmlzQnJvd3NlcikgcmV0dXJuO1xuXG4gICAgaWYgKHdpbmRvdy5pbm5lcldpZHRoID4gNDc1KSB7XG4gICAgICBpZiAodGhpcy5tZXJnZSlcbiAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KFxyXG4gICAgICAgICAgJ21hcmdpbi10b3AnLCBgLSR7dGhpcy50b3B9cHhgXHJcbiAgICAgICAgKTtcclxuICAgICAgZWxzZVxyXG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShcclxuICAgICAgICAgICdtYXJnaW4tdG9wJywgYDBweGBcclxuICAgICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -1,17 +1,21 @@
|
|
|
1
|
-
import { Directive, Input } from '@angular/core';
|
|
1
|
+
import { Directive, Inject, Input, PLATFORM_ID } from '@angular/core';
|
|
2
|
+
import { isPlatformBrowser } from '@angular/common';
|
|
2
3
|
import * as i0 from "@angular/core";
|
|
3
4
|
import * as i1 from "@angular/router";
|
|
4
5
|
export class SimpoStickyDirective {
|
|
5
|
-
constructor(el, router) {
|
|
6
|
+
constructor(el, router, platformId) {
|
|
6
7
|
this.el = el;
|
|
7
8
|
this.router = router;
|
|
9
|
+
this.platformId = platformId;
|
|
10
|
+
this.isBrowser = false;
|
|
11
|
+
this.isBrowser = isPlatformBrowser(this.platformId);
|
|
8
12
|
}
|
|
9
13
|
ngOnChanges() {
|
|
10
14
|
if (this.simpoSticky) {
|
|
11
15
|
this.el.nativeElement.style.setProperty("position", "fixed");
|
|
12
16
|
this.el.nativeElement.style.setProperty("top", "0px");
|
|
13
17
|
this.el.nativeElement.style.setProperty("left", '0px');
|
|
14
|
-
if (localStorage.getItem('REQUEST_FROM') == 'USER')
|
|
18
|
+
if (this.isBrowser && localStorage.getItem('REQUEST_FROM') == 'USER')
|
|
15
19
|
this.el.nativeElement.style.setProperty("z-index", "10000002");
|
|
16
20
|
else {
|
|
17
21
|
let url = this.router.url;
|
|
@@ -24,7 +28,7 @@ export class SimpoStickyDirective {
|
|
|
24
28
|
this.el.nativeElement.style.setProperty("margin-top", "0px");
|
|
25
29
|
}
|
|
26
30
|
setTimeout(() => {
|
|
27
|
-
if (window.innerWidth > 475) {
|
|
31
|
+
if (this.isBrowser && window.innerWidth > 475) {
|
|
28
32
|
this.addParentMargin();
|
|
29
33
|
}
|
|
30
34
|
}, 0);
|
|
@@ -35,6 +39,8 @@ export class SimpoStickyDirective {
|
|
|
35
39
|
}
|
|
36
40
|
}
|
|
37
41
|
ngAfterViewInit() {
|
|
42
|
+
if (!this.isBrowser || typeof ResizeObserver === 'undefined')
|
|
43
|
+
return;
|
|
38
44
|
this.resizeObserver = new ResizeObserver(() => {
|
|
39
45
|
setTimeout(() => {
|
|
40
46
|
if (window.innerWidth > 475 && this.simpoSticky) {
|
|
@@ -45,7 +51,8 @@ export class SimpoStickyDirective {
|
|
|
45
51
|
this.resizeObserver.observe(this.el.nativeElement);
|
|
46
52
|
}
|
|
47
53
|
addParentMargin() {
|
|
48
|
-
|
|
54
|
+
const nativeElement = this.el.nativeElement;
|
|
55
|
+
let headerHeight = Math.ceil(nativeElement.getBoundingClientRect().height || nativeElement.offsetHeight || 0);
|
|
49
56
|
const parent = this.el.nativeElement.parentElement;
|
|
50
57
|
if (parent && headerHeight > 0) {
|
|
51
58
|
parent.style.marginBottom = (headerHeight) + 'px';
|
|
@@ -58,9 +65,10 @@ export class SimpoStickyDirective {
|
|
|
58
65
|
}
|
|
59
66
|
}
|
|
60
67
|
ngOnDestroy() {
|
|
68
|
+
this.resizeObserver?.disconnect();
|
|
61
69
|
this.removeParentMargin();
|
|
62
70
|
}
|
|
63
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SimpoStickyDirective, deps: [{ token: i0.ElementRef }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
71
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SimpoStickyDirective, deps: [{ token: i0.ElementRef }, { token: i1.Router }, { token: PLATFORM_ID }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
64
72
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: SimpoStickyDirective, isStandalone: true, selector: "[simpoSticky]", inputs: { simpoSticky: "simpoSticky", categoryHeader: "categoryHeader" }, usesOnChanges: true, ngImport: i0 }); }
|
|
65
73
|
}
|
|
66
74
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SimpoStickyDirective, decorators: [{
|
|
@@ -69,11 +77,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
69
77
|
selector: '[simpoSticky]',
|
|
70
78
|
standalone: true
|
|
71
79
|
}]
|
|
72
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.Router }
|
|
80
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.Router }, { type: undefined, decorators: [{
|
|
81
|
+
type: Inject,
|
|
82
|
+
args: [PLATFORM_ID]
|
|
83
|
+
}] }], propDecorators: { simpoSticky: [{
|
|
73
84
|
type: Input,
|
|
74
85
|
args: ['simpoSticky']
|
|
75
86
|
}], categoryHeader: [{
|
|
76
87
|
type: Input,
|
|
77
88
|
args: ['categoryHeader']
|
|
78
89
|
}] } });
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RpY2t5LWRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpbXBvLXVpL3NyYy9saWIvZGlyZWN0aXZlL3N0aWNreS1kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7O0FBT3BELE1BQU0sT0FBTyxvQkFBb0I7SUFNL0IsWUFBb0IsRUFBYyxFQUN4QixNQUFjLEVBQ08sVUFBa0I7UUFGN0IsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUN4QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ08sZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQUx6QyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBT3hCLElBQUksQ0FBQyxTQUFTLEdBQUcsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFLRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDN0QsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDdEQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUE7WUFDdEQsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLFlBQVksQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLElBQUksTUFBTTtnQkFDbEUsSUFBSSxDQUFDLEVB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RUQsV0FBVztRQUNULElBQUksQ0FBQyxjQUFjLEVBQUUsVUFBVSxFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDNUIsQ0FBQzsrR0E1RVUsb0JBQW9CLGtFQVFyQixXQUFXO21HQVJWLG9CQUFvQjs7NEZBQXBCLG9CQUFvQjtrQkFKaEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZUFBZTtvQkFDekIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOzswQkFTSSxNQUFNOzJCQUFDLFdBQVc7eUNBUEMsV0FBVztzQkFBaEMsS0FBSzt1QkFBQyxhQUFhO2dCQUNLLGNBQWM7c0JBQXRDLEtBQUs7dUJBQUMsZ0JBQWdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbmplY3QsIElucHV0LCBQTEFURk9STV9JRCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxyXG5ARGlyZWN0aXZlKHtcclxuICBzZWxlY3RvcjogJ1tzaW1wb1N0aWNreV0nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWVcclxufSlcclxuZXhwb3J0IGNsYXNzIFNpbXBvU3RpY2t5RGlyZWN0aXZlIHtcbiAgQElucHV0KCdzaW1wb1N0aWNreScpIHNpbXBvU3RpY2t5PzogYm9vbGVhbjtcbiAgQElucHV0KCdjYXRlZ29yeUhlYWRlcicpIGNhdGVnb3J5SGVhZGVyPzogYm9vbGVhblxuICBwcml2YXRlIGlzQnJvd3NlciA9IGZhbHNlO1xuICBwcml2YXRlIHJlc2l6ZU9ic2VydmVyPzogUmVzaXplT2JzZXJ2ZXI7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHByaXZhdGUgcGxhdGZvcm1JZDogb2JqZWN0XG4gICkge1xuICAgIHRoaXMuaXNCcm93c2VyID0gaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKTtcbiAgfVxuXHJcblxyXG5cclxuXHJcbiAgbmdPbkNoYW5nZXMoKSB7XG4gICAgaWYgKHRoaXMuc2ltcG9TdGlja3kpIHtcbiAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShcInBvc2l0aW9uXCIsIFwiZml4ZWRcIik7XG4gICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoXCJ0b3BcIiwgXCIwcHhcIik7XG4gICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoXCJsZWZ0XCIsICcwcHgnKVxuICAgICAgaWYgKHRoaXMuaXNCcm93c2VyICYmIGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdSRVFVRVNUX0ZST00nKSA9PSAnVVNFUicpXG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShcInotaW5kZXhcIiwgXCIxMDAwMDAwMlwiKVxuICAgICAgZWxzZSB7XG4gICAgICAgIGxldCB1cmwgPSB0aGlzLnJvdXRlci51cmxcbiAgICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KFwiei1pbmRleFwiLCBcIjEwOFwiKVxyXG4gICAgICAgIGlmICh1cmwuaW5jbHVkZXMoJ3dlYnNpdGUtZWRpdG9yJykpXHJcbiAgICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoXCJtYXJnaW4tdG9wXCIsIFwiNDVweFwiKVxyXG4gICAgICAgIGVsc2UgaWYgKHVybC5pbmNsdWRlcygndjMtZ2VuZXJhdG9yJykpXHJcbiAgICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoXCJtYXJnaW4tdG9wXCIsIFwiNzBweFwiKVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShcIm1hcmdpbi10b3BcIiwgXCIwcHhcIilcclxuICAgICAgfVxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmlzQnJvd3NlciAmJiB3aW5kb3cuaW5uZXJXaWR0aCA+IDQ3NSkge1xuICAgICAgICAgIHRoaXMuYWRkUGFyZW50TWFyZ2luKCk7XG4gICAgICAgIH1cbiAgICAgIH0sIDApO1xuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShcInBvc2l0aW9uXCIsIFwicmVsYXRpdmVcIik7XHJcbiAgICAgIHRoaXMucmVtb3ZlUGFyZW50TWFyZ2luKCk7XHJcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgaWYgKCF0aGlzLmlzQnJvd3NlciB8fCB0eXBlb2YgUmVzaXplT2JzZXJ2ZXIgPT09ICd1bmRlZmluZWQnKSByZXR1cm47XG5cbiAgICB0aGlzLnJlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZU9ic2VydmVyKCgpID0+IHtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBpZiAod2luZG93LmlubmVyV2lkdGggPiA0NzUgJiYgdGhpcy5zaW1wb1N0aWNreSkge1xuICAgICAgICAgIHRoaXMuYWRkUGFyZW50TWFyZ2luKCk7XG4gICAgICAgIH1cbiAgICAgIH0sIDApO1xuICAgIH0pO1xyXG4gICAgdGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMuZWwubmF0aXZlRWxlbWVudCk7XHJcbiAgfVxyXG5cbiAgcHJpdmF0ZSBhZGRQYXJlbnRNYXJnaW4oKSB7XG4gICAgY29uc3QgbmF0aXZlRWxlbWVudCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudDtcbiAgICBsZXQgaGVhZGVySGVpZ2h0ID0gTWF0aC5jZWlsKG5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkuaGVpZ2h0IHx8IG5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0IHx8IDApO1xuICAgIGNvbnN0IHBhcmVudCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50O1xuICAgIGlmIChwYXJlbnQgJiYgaGVhZGVySGVpZ2h0ID4gMCkge1xuICAgICAgcGFyZW50LnN0eWxlLm1hcmdpbkJvdHRvbSA9IChoZWFkZXJIZWlnaHQpICsgJ3B4JztcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlbW92ZVBhcmVudE1hcmdpbigpIHtcclxuICAgIGNvbnN0IHBhcmVudCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50O1xyXG4gICAgaWYgKHBhcmVudCkge1xyXG4gICAgICBwYXJlbnQuc3R5bGUubWFyZ2luQm90dG9tID0gJzBweCc7XHJcbiAgICB9XHJcbiAgfVxyXG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5yZXNpemVPYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICAgIHRoaXMucmVtb3ZlUGFyZW50TWFyZ2luKCk7XG4gIH1cbn1cbiJdfQ==
|