simpo-component-library 3.6.525 → 3.6.527
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/button-editor.directive.mjs +4 -4
- package/esm2022/lib/ecommerce/sections/store-list/store-list.component.mjs +10 -3
- package/esm2022/lib/ecommerce/sections/store-page/store-page.component.mjs +6 -3
- package/esm2022/lib/elements/link-editor/link-editor.component.mjs +2 -1
- package/esm2022/lib/sections/appointment-form/appointment-booking/appointment-booking/appointment-booking.component.mjs +2 -2
- package/esm2022/lib/sections/blog-list/blog-list.component.mjs +7 -3
- package/esm2022/lib/sections/header-section/header-section.component.mjs +4 -4
- package/esm2022/lib/sections/image-grid-section/image-grid-section.component.mjs +62 -5
- package/esm2022/lib/sections/view-blog/view-blog.component.mjs +3 -3
- package/esm2022/lib/services/rest.service.mjs +8 -5
- package/esm2022/lib/tokens/api-token.mjs +2 -1
- package/fesm2022/simpo-component-library.mjs +96 -23
- package/fesm2022/simpo-component-library.mjs.map +1 -1
- package/lib/ecommerce/sections/authentication-required/authentication-required.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/ecommerce/sections/store-list/store-list.component.d.ts +2 -1
- package/lib/ecommerce/sections/store-page/store-page.component.d.ts +2 -0
- package/lib/elements/link-editor/link-editor.component.d.ts +1 -1
- package/lib/sections/image-grid-section/image-grid-section.component.d.ts +14 -0
- package/lib/sections/pricing-section/pricing-section.component.d.ts +1 -1
- package/lib/services/rest.service.d.ts +2 -2
- package/lib/tokens/api-token.d.ts +1 -0
- package/package.json +1 -1
- package/simpo-component-library-3.6.527.tgz +0 -0
- package/simpo-component-library-3.6.525.tgz +0 -0
@@ -14,11 +14,11 @@ export class ButtonEditorDirective {
|
|
14
14
|
}
|
15
15
|
ngOnInit() {
|
16
16
|
if (this.appButtonEditor) {
|
17
|
-
this.el.nativeElement.style.border = this.buttonStyle?.type == 'Outline' ? `2px solid ${this.
|
17
|
+
this.el.nativeElement.style.border = this.buttonStyle?.type == 'Outline' ? `2px solid ${this.buttonStyle?.background}` : 'unset';
|
18
18
|
this.setupEventListeners();
|
19
19
|
}
|
20
20
|
else {
|
21
|
-
this.el.nativeElement.style.border = this.buttonStyle?.type == 'Outline' ? `2px solid ${this.
|
21
|
+
this.el.nativeElement.style.border = this.buttonStyle?.type == 'Outline' ? `2px solid ${this.buttonStyle?.background}` : 'unset';
|
22
22
|
}
|
23
23
|
}
|
24
24
|
ngOnChanges() {
|
@@ -36,7 +36,7 @@ export class ButtonEditorDirective {
|
|
36
36
|
this.mouseLeaveSub = fromEvent(this.el.nativeElement, 'mouseleave')
|
37
37
|
.pipe(debounceTime(100))
|
38
38
|
.subscribe(() => {
|
39
|
-
this.el.nativeElement.style.border = this.buttonStyle?.type == 'Outline' ? `2px solid ${this.
|
39
|
+
this.el.nativeElement.style.border = this.buttonStyle?.type == 'Outline' ? `2px solid ${this.buttonStyle?.background}` : 'unset';
|
40
40
|
});
|
41
41
|
this.clickSub = fromEvent(this.el.nativeElement, 'click')
|
42
42
|
.pipe(filter(() => !this.matDialog.openDialogs.length))
|
@@ -94,4 +94,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
94
94
|
}], buttonId: [{
|
95
95
|
type: Input
|
96
96
|
}] } });
|
97
|
-
//# sourceMappingURL=data:application/json;base64,
|
97
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLWVkaXRvci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL2RpcmVjdGl2ZS9idXR0b24tZWRpdG9yLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUE0QixLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFHdEYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDcEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFnQixNQUFNLE1BQU0sQ0FBQzs7O0FBTXJFLE1BQU0sT0FBTyxxQkFBcUI7SUFhaEMsWUFBb0IsRUFBYyxFQUFVLFNBQW9CO1FBQTVDLE9BQUUsR0FBRixFQUFFLENBQVk7UUFBVSxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBWnZELG9CQUFlLEdBQVksS0FBSyxDQUFDO1FBSWpDLGNBQVMsR0FBWSxFQUFFLENBQUM7UUFDeEIsYUFBUSxHQUFXLEVBQUUsQ0FBQztRQUtkLHFCQUFnQixHQUFHLG1CQUFtQixDQUFDO0lBRVksQ0FBQztJQUVyRSxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLGFBQWEsSUFBSSxDQUFDLFdBQVcsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1lBQ2pJLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzdCLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksSUFBSSxTQUFTLENBQUMsQ0FBQyxDQUFDLGFBQWEsSUFBSSxDQUFDLFdBQVcsRUFBRSxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1FBQ25JLENBQUM7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNmLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBQzdCLENBQUM7SUFDSCxDQUFDO0lBRU8sbUJBQW1CO1FBQ3pCLElBQUksQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQzthQUNoRSxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3ZCLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztRQUM3RCxDQUFDLENBQUMsQ0FBQztRQUVMLElBQUksQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQzthQUNoRSxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2FBQ3ZCLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxJQUFJLFNBQVMsQ0FBQyxDQUFDLENBQUMsYUFBYSxJQUFJLENBQUMsV0FBVyxFQUFFLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDbkksQ0FBQyxDQUFDLENBQUM7UUFDTCxJQUFJLENBQUMsUUFBUSxHQUFHLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUM7YUFDdEQsSUFBSSxDQUNILE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUNqRDthQUNBLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtnQkFDdkMsVUFBVSxFQUFFLGFBQWE7Z0JBQ3pCLElBQUksRUFBRTtvQkFDSixRQUFRLEVBQUUsSUFBSSxDQUFDLFVBQVUsSUFBSSxFQUFFO29CQUMvQixJQUFJLEVBQUUsUUFBUTtvQkFDZCxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsSUFBSSxFQUFFO29CQUNuQyxjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWMsSUFBSSxFQUFFO29CQUN6QyxRQUFRLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7aUJBQzNDO2FBQ0YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sT0FBTztRQUNiLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUM7UUFDakMsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDakMsSUFBSSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUM7UUFDakMsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUM7UUFDNUIsQ0FBQztRQUVELGdDQUFnQztRQUNoQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztJQUMxQyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNqQixDQUFDOytHQW5GVSxxQkFBcUI7bUdBQXJCLHFCQUFxQjs7NEZBQXJCLHFCQUFxQjtrQkFKakMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUseUJBQXlCO29CQUNuQyxVQUFVLEVBQUUsSUFBSTtpQkFDakI7dUdBRVUsZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCYWNrZ3JvdW5kTW9kZWwsIEJ1dHRvbiwgQnV0dG9uU3R5bGVNb2RlbCB9IGZyb20gJy4uL3N0eWxlcy9zdHlsZS5tb2RlbCc7XHJcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IExpbmtFZGl0b3JDb21wb25lbnQgfSBmcm9tICcuLi9lbGVtZW50cy9saW5rLWVkaXRvci9saW5rLWVkaXRvci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGZpbHRlciwgZnJvbUV2ZW50LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gIHNlbGVjdG9yOiAnYnV0dG9uW2FwcEJ1dHRvbkVkaXRvcl0nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWVcclxufSlcclxuZXhwb3J0IGNsYXNzIEJ1dHRvbkVkaXRvckRpcmVjdGl2ZSB7XHJcbiAgQElucHV0KCkgYXBwQnV0dG9uRWRpdG9yOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgYnV0dG9uRGF0YT86IEJ1dHRvbjtcclxuICBASW5wdXQoKSBidXR0b25TdHlsZT86IEJ1dHRvblN0eWxlTW9kZWw7XHJcbiAgQElucHV0KCkgYmFja2dyb3VuZEluZm8/OiBCYWNrZ3JvdW5kTW9kZWw7XHJcbiAgQElucHV0KCkgc2VjdGlvbklkPzogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgYnV0dG9uSWQ6IHN0cmluZyA9ICcnO1xyXG5cclxuICBwcml2YXRlIG1vdXNlRW50ZXJTdWI/OiBTdWJzY3JpcHRpb247XHJcbiAgcHJpdmF0ZSBtb3VzZUxlYXZlU3ViPzogU3Vic2NyaXB0aW9uO1xyXG4gIHByaXZhdGUgY2xpY2tTdWI/OiBTdWJzY3JpcHRpb247XHJcbiAgcHJpdmF0ZSByZWFkb25seSBISUdITElHSFRfQk9SREVSID0gJzNweCBzb2xpZCAjMjgzRTkwJztcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZiwgcHJpdmF0ZSBtYXREaWFsb2c6IE1hdERpYWxvZykgeyB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKHRoaXMuYXBwQnV0dG9uRWRpdG9yKSB7XHJcbiAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5ib3JkZXIgPSB0aGlzLmJ1dHRvblN0eWxlPy50eXBlID09ICdPdXRsaW5lJyA/IGAycHggc29saWQgJHt0aGlzLmJ1dHRvblN0eWxlPy5iYWNrZ3JvdW5kfWAgOiAndW5zZXQnO1xyXG4gICAgICB0aGlzLnNldHVwRXZlbnRMaXN0ZW5lcnMoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5ib3JkZXIgPSB0aGlzLmJ1dHRvblN0eWxlPy50eXBlID09ICdPdXRsaW5lJyA/IGAycHggc29saWQgJHt0aGlzLmJ1dHRvblN0eWxlPy5iYWNrZ3JvdW5kfWAgOiAndW5zZXQnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoKSB7XHJcbiAgICB0aGlzLmNsZWFudXAoKTtcclxuICAgIGlmICh0aGlzLmFwcEJ1dHRvbkVkaXRvcikge1xyXG4gICAgICB0aGlzLnNldHVwRXZlbnRMaXN0ZW5lcnMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0dXBFdmVudExpc3RlbmVycygpIHtcclxuICAgIHRoaXMubW91c2VFbnRlclN1YiA9IGZyb21FdmVudCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICdtb3VzZWVudGVyJylcclxuICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDEwMCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5ib3JkZXIgPSB0aGlzLkhJR0hMSUdIVF9CT1JERVI7XHJcbiAgICAgIH0pO1xyXG5cclxuICAgIHRoaXMubW91c2VMZWF2ZVN1YiA9IGZyb21FdmVudCh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICdtb3VzZWxlYXZlJylcclxuICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDEwMCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdHlsZS5ib3JkZXIgPSB0aGlzLmJ1dHRvblN0eWxlPy50eXBlID09ICdPdXRsaW5lJyA/IGAycHggc29saWQgJHt0aGlzLmJ1dHRvblN0eWxlPy5iYWNrZ3JvdW5kfWAgOiAndW5zZXQnO1xyXG4gICAgICB9KTtcclxuICAgIHRoaXMuY2xpY2tTdWIgPSBmcm9tRXZlbnQodGhpcy5lbC5uYXRpdmVFbGVtZW50LCAnY2xpY2snKVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBmaWx0ZXIoKCkgPT4gIXRoaXMubWF0RGlhbG9nLm9wZW5EaWFsb2dzLmxlbmd0aClcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICB0aGlzLm1hdERpYWxvZy5vcGVuKExpbmtFZGl0b3JDb21wb25lbnQsIHtcclxuICAgICAgICAgIHBhbmVsQ2xhc3M6ICdsaW5rLWVkaXRvcicsXHJcbiAgICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgIGxpbmtEYXRhOiB0aGlzLmJ1dHRvbkRhdGEgPz8ge30sXHJcbiAgICAgICAgICAgIHR5cGU6IFwiQlVUVE9OXCIsXHJcbiAgICAgICAgICAgIGJ1dHRvblN0eWxlOiB0aGlzLmJ1dHRvblN0eWxlID8/IHt9LFxyXG4gICAgICAgICAgICBiYWNrZ3JvdW5kSW5mbzogdGhpcy5iYWNrZ3JvdW5kSW5mbyA/PyB7fSxcclxuICAgICAgICAgICAgYnV0dG9uSWQ6ICh0aGlzLnNlY3Rpb25JZCArIHRoaXMuYnV0dG9uSWQpICxcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNsZWFudXAoKSB7XHJcbiAgICBpZiAodGhpcy5tb3VzZUVudGVyU3ViKSB7XHJcbiAgICAgIHRoaXMubW91c2VFbnRlclN1Yi51bnN1YnNjcmliZSgpO1xyXG4gICAgICB0aGlzLm1vdXNlRW50ZXJTdWIgPSB1bmRlZmluZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMubW91c2VMZWF2ZVN1Yikge1xyXG4gICAgICB0aGlzLm1vdXNlTGVhdmVTdWIudW5zdWJzY3JpYmUoKTtcclxuICAgICAgdGhpcy5tb3VzZUxlYXZlU3ViID0gdW5kZWZpbmVkO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmNsaWNrU3ViKSB7XHJcbiAgICAgIHRoaXMuY2xpY2tTdWIudW5zdWJzY3JpYmUoKTtcclxuICAgICAgdGhpcy5jbGlja1N1YiA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICAvLyBSZXNldCBzdHlsZXMgd2hlbiBjbGVhbmluZyB1cFxyXG4gICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLmJvcmRlciA9ICcnO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLmNsZWFudXAoKTtcclxuICB9XHJcblxyXG59XHJcbiJdfQ==
|
@@ -12,6 +12,8 @@ import { ContentFitDirective } from '../../../directive/content-fit-directive';
|
|
12
12
|
import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader';
|
13
13
|
import { ButtonEditorDirective } from '../../../directive/button-editor.directive';
|
14
14
|
import { ColorDirective } from '../../../directive/color.directive';
|
15
|
+
import { SpacingHorizontalDirective } from '../../../directive/spacing-horizontal.directive';
|
16
|
+
import { CornerDirective } from '../../../directive/corner-directive';
|
15
17
|
import * as i0 from "@angular/core";
|
16
18
|
import * as i1 from "../../../services/rest.service";
|
17
19
|
import * as i2 from "@angular/router";
|
@@ -60,6 +62,9 @@ export class StoreListComponent extends BaseSection {
|
|
60
62
|
this.storePayload.pincode = this.pincode;
|
61
63
|
this.getStoreDetails();
|
62
64
|
}
|
65
|
+
get stylesLayout() {
|
66
|
+
return { ...this.styles?.layout };
|
67
|
+
}
|
63
68
|
getStoreDetails() {
|
64
69
|
this.submit = true;
|
65
70
|
this.loader = true;
|
@@ -127,7 +132,7 @@ export class StoreListComponent extends BaseSection {
|
|
127
132
|
return `rgba(${r}, ${g}, ${b}, ${opacity / 100})`;
|
128
133
|
}
|
129
134
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StoreListComponent, deps: [{ token: i1.RestService }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Component }); }
|
130
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: StoreListComponent, isStandalone: true, selector: "simpo-store-list", inputs: { data: "data", edit: "edit", customClass: "customClass", delete: "delete", index: "index" }, usesInheritance: true, ngImport: i0, template: "<div class=\"total-container position-relative\" simpoHover (hovering)=\"showEditTabs($event)\" [id]=\"data?.id\">\r\n <div class=\"main-container\" [simpoAnimation]=\"styles?.animation\" [id]=\"data?.id\">\r\n <div class=\"top-section w-100 d-flex align-items-center justify-content-center text-center flex-column\"\r\n [simpoBackground]=\"styles?.background\" [id]=\"data?.id\" [simpoLayout]=\"styles?.layout\">\r\n <ng-container *ngIf=\"!loader\">\r\n <div class=\"store-header mb-3\">\r\n {{ submit && showMessage == true && pincode && pincode?.toString()?.length == 6 ? \"Stores in \" +\r\n pincode :\r\n \"Find a Store Near You\"}}\r\n </div>\r\n <div class=\"sub-text\">\r\n {{ submit && showMessage == true && pincode && pincode?.toString()?.length == 6 ? 'We have ' +\r\n totalCount\r\n + ' stores in this locality, scroll down to view the stores\r\n and browse the designs available.' : 'Locate a store near you \u2014 our presence is expanding every day,\r\n and\r\n we look forward to serving you.' }}\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"loader\">\r\n <div class=\"sub-text\">\r\n <ngx-skeleton-loader [theme]=\"{\r\n width: '35%',\r\n height: '3vh',\r\n 'border-radius': '12px',\r\n }\"></ngx-skeleton-loader>\r\n </div>\r\n <div class=\"sub-text w-75\">\r\n <ngx-skeleton-loader [theme]=\"{\r\n width: '35%',\r\n height: '2vh',\r\n 'border-radius': '12px',\r\n }\"></ngx-skeleton-loader>\r\n </div>\r\n </ng-container>\r\n <div class=\"location-container d-flex align-items-center justify-content-between w-25\"\r\n [class.error-border]=\"error\">\r\n <div class=\"d-flex align-items-center w-90\">\r\n <div class=\"d-flex mx-1\"><mat-icon class=\"d-flex align-items-center justify-content-center f-20\"\r\n [style.color]=\"data?.styles?.background?.accentColor\">gps_fixed</mat-icon>\r\n </div>\r\n <input type=\"number\" placeholder=\"Pin Code\" [(ngModel)]=\"pincode\" class=\"w-90\"\r\n [style.backgroundColor]=\"data?.styles?.background?.color\"\r\n [style.color]=\"getTextColor(data?.styles?.background?.color)\"\r\n (ngModelChange)=\"pincode.toString().length != 6 ? submit = false : error = false;\" />\r\n </div>\r\n <div (click)=\"getDataWithPincode()\" class=\"f-13 cursor-pointer\">Submit</div>\r\n </div>\r\n <span class=\"f-12 w-25 text-start mt-2\" *ngIf=\"error\" [style.color]=\"'#dc3545'\">Invalid Pincode\r\n (Ex:500088)</span>\r\n </div>\r\n <div class=\"bottom-container row mx-auto mt-3\">\r\n <div class=\"state-container row gap-3 justify-content-center mb-5\" *ngIf=\"showState && !pincode\">\r\n <ng-container *ngFor=\"let state of stateList; let i = index\">\r\n <div class=\"state-card p-2 col-sm-6\" (click)=\"setStateData(state)\">\r\n <ng-container *ngIf=\"state?.stateImage; else noImage\">\r\n <img class=\"w-100 h-75\" [src]=\"state?.stateImage\">\r\n </ng-container>\r\n <ng-template #noImage>\r\n <img class=\"w-100 h-75\"\r\n src=\"https://cdn.caratlane.com/media/static/images/Find_In_Store/city_5.svg\">\r\n </ng-template>\r\n <div class=\"text-center mt-2 state-name\">{{state?.stateName}}</div>\r\n <div class=\"store-count text-center mb-3 mt-1\">{{state?.storeCount + \" stores\"}}</div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"w-100 d-flex align-items-center justify-content-center mb-3\"\r\n *ngIf=\"submit && showMessage == false && pincode && pincode.toString().length ==6 && !loader\">\r\n <div class=\"text-center not-available-text\">We are not available in this location currently</div>\r\n </div>\r\n <ng-container *ngIf=\"loader\">\r\n <div class=\"sub-text w-100 text-center\">\r\n <ngx-skeleton-loader [theme]=\"{\r\n width: '35%',\r\n height: '6vh',\r\n 'border-radius': '12px',\r\n }\"></ngx-skeleton-loader>\r\n </div>\r\n </ng-container>\r\n <div class=\"bottom-sub-text d-flex align-items-center justify-content-center mb-3 w-100 f-20 fw-bold\"> {{\r\n submit &&\r\n showMessage == true && pincode ? \"Showing \" + totalCount + \" Stores in \" + pincode :\r\n \"Showing All Stores\"}}</div>\r\n <ng-container *ngIf=\"!loader;else loaderScreen\">\r\n <div class=\"row d-flex\">\r\n <div class=\"col-4 p-2 store d-flex flex-column \" style=\"border-radius: 12px; border: none;\"\r\n *ngFor=\"let ele of storesList; let i = index\">\r\n <div class=\"card-body position-relative d-flex flex-column h-100\">\r\n <!-- Content -->\r\n <div class=\"h-100 p-3 pb-0\">\r\n <div class=\"d-flex justify-content-between align-items-start mb-2\">\r\n <div class=\"d-flex flex-column mb-2 bb-1 w-100 pb-2\">\r\n <h6 class=\"card-title fw-bold mb-1 w-100\">{{ele?.storeName}}</h6>\r\n <div class=\"f-11\">\r\n \u2B504.{{ele?.star}} • {{ele?.reviewCount}} Google Reviews\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-2 f-11\">\r\n <p class=\"mb-1 text-dark fw-medium\">{{ele?.addressDetails?.addressLine}},</p>\r\n <p class=\"mb-1 text-dark fw-medium\">\r\n {{ele?.addressDetails?.city}},\r\n {{ele?.addressDetails?.state}},{{ele?.addressDetails?.pincode}},\r\n </p>\r\n <p class=\"mb-0 fw-bold\">Phone-\r\n <span\r\n [style.color]=\"data?.styles?.background?.accentColor\">{{ele?.storeContactDetails?.mobile}}</span>\r\n </p>\r\n </div>\r\n <div class=\"mb-2 f-11\">\r\n <p class=\"mb-0 fw-bold\" [style.color]=\"data?.styles?.background?.accentColor\">\r\n STORE HOURS -\r\n {{getTime(ele?.storeHours,'OPEN')}} to {{getTime(ele?.storeHours,'CLOSE')}}\r\n </p>\r\n </div>\r\n </div>\r\n <!-- Fixed bottom buttons -->\r\n <div class=\"d-flex gap-3 align-items-center justify-content-between p-3 w-100 br-20\" [style.backgroundColor]=\"getRGBA(styles?.background?.accentColor,10)\">\r\n <div class=\"br-12 d-flex align-items-center justify-content-center\"\r\n style=\"width: 30px; height: 30px;\" (click)=\"openWhatsapp(ele?.storeContactDetails?.mobile)\"\r\n [style.backgroundColor]=\"data?.styles?.background?.accentColor\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\" style=\"height: 20px;cursor: pointer;\">\r\n <path [attr.fill]=\"getTextColor(data?.styles?.background?.accentColor)\"\r\n d=\"M380.9 97.1c-41.9-42-97.7-65.1-157-65.1-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480 117.7 449.1c32.4 17.7 68.9 27 106.1 27l.1 0c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3 18.6-68.1-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1s56.2 81.2 56.1 130.5c0 101.8-84.9 184.6-186.6 184.6zM325.1 300.5c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8s-14.3 18-17.6 21.8c-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7 .9-6.9-.5-9.7s-12.5-30.1-17.1-41.2c-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2s-9.7 1.4-14.8 6.9c-5.1 5.6-19.4 19-19.4 46.3s19.9 53.7 22.6 57.4c2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4s4.6-24.1 3.2-26.4c-1.3-2.5-5-3.9-10.5-6.6z\" />\r\n </svg>\r\n </div>\r\n <button class=\"btn w-50\" [buttonData]=\"button?.content\" [buttonStyle]=\"button?.styles\"\r\n simpoButtonDirective [id]=\"data?.id+(button?.id || '')\" [sectionId]=\"data?.id\"\r\n [color]=\"data?.styles?.background?.accentColor\"\r\n [backgroundInfo]=\"data?.styles?.background\" [appButtonEditor]=\"edit ?? false\"\r\n [buttonId]=\"button?.id ?? ''\" (click)=\"viewStore(ele.id)\">\r\n {{button?.content?.label}}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </ng-container>\r\n <ng-template #loaderScreen>\r\n <div class=\"row loader-container\">\r\n <ng-container *ngFor=\"let ele of [1,2,3,4,5,6]\">\r\n <ngx-skeleton-loader class=\"col-4 loader-column\" [theme]=\"{\r\n width: '100%',\r\n height: '40vh',\r\n 'border-radius': '12px',\r\n }\"></ngx-skeleton-loader>\r\n </ng-container>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </div>\r\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\r\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\r\n </div>\r\n\r\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\r\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\r\n </div>\r\n</div>", styles: [".hover_effect{position:unset;width:100%;top:0;left:0;height:100%}*{font-family:var(--website-font-family)}mat-icon{font-family:Material Icons!important}.store-header{font-size:27px;font-weight:700}.sub-text{font-size:16px;width:35%;margin-bottom:15px}.location-container{border:1px solid;padding:8px;border-radius:12px;background:#fff}.location-container input{border:unset;appearance:unset;outline:unset;background:#fff;font-size:13px}.f-11{font-size:11px}.f-14{font-size:14px}.not-available-text{color:#ff5151;font-weight:600;border-radius:22px;text-align:center;padding:12px;background:#ff51511a;width:35%}.f-20{font-size:20px}.f-13{font-size:13px}.w-90{width:90%}.card-body{box-shadow:#0000000d 0 0 0 1px;border-radius:24px;height:100%}.card-bottom{POSITION:ABSOLUTE;width:90%;bottom:15px}.br-12{border-radius:12px}.btn{font-size:12px!important}.error-border{border:2px solid #dc3545!important}.f-12{font-size:12px}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.bottom-container{width:80%}@media (max-width:475px){.sub-text{width:100%!important}.loader-container{flex-direction:column;padding-right:0!important}.loader-column,.not-available-text{width:100%!important}.location-container{width:55%!important}.bottom-container{flex-direction:column;margin:0!important;width:100%!important}.store{width:100%!important}.state-container{margin:unset!important}.state-container .state-card{width:45%}}.main-container{padding-bottom:9%}.state-card{width:13%;box-shadow:#0000000d 0 0 0 1px;border-radius:20px;cursor:pointer}.state-card img{border-bottom:1px solid rgba(0,0,0,.05)}.state-card .state-name{font-size:14px;font-weight:600}.state-card .store-count{font-size:13px}.bb-1{border-bottom:2px solid rgba(0,0,0,.05)}.br-20{border-radius:0 0 20px 20px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: SimpoComponentModule }, { kind: "component", type: i5.HoverElementsComponent, selector: "simpo-hover-elements", inputs: ["data", "index", "editOptions", "isMerged", "isEcommerce"], outputs: ["edit"] }, { kind: "component", type: i6.DeleteHoverElementComponent, selector: "simpo-delete-hover-element", inputs: ["index", "data"], outputs: ["edit"] }, { kind: "component", type: i7.NgxSkeletonLoaderComponent, selector: "ngx-skeleton-loader", inputs: ["count", "loadingText", "appearance", "animation", "ariaLabel", "theme"] }, { kind: "directive", type: AnimationDirective, selector: "[simpoAnimation]", inputs: ["simpoAnimation"] }, { kind: "directive", type: BackgroundDirective, selector: "[simpoBackground]", inputs: ["simpoBackground", "scrollValue"] }, { kind: "directive", type: HoverDirective, selector: "[simpoHover]", outputs: ["hovering"] }, { kind: "directive", type: ButtonDirectiveDirective, selector: "[simpoButtonDirective]", inputs: ["buttonStyle", "color", "scrollValue", "backgroundInfo"] }, { kind: "directive", type: ContentFitDirective, selector: "[simpoLayout]", inputs: ["simpoLayout"] }, { kind: "ngmodule", type: NgxSkeletonLoaderModule }, { kind: "directive", type: ButtonEditorDirective, selector: "button[appButtonEditor]", inputs: ["appButtonEditor", "buttonData", "buttonStyle", "backgroundInfo", "sectionId", "buttonId"] }] }); }
|
135
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: StoreListComponent, isStandalone: true, selector: "simpo-store-list", inputs: { data: "data", edit: "edit", customClass: "customClass", delete: "delete", index: "index" }, usesInheritance: true, ngImport: i0, template: "<div class=\"total-container position-relative\" simpoHover (hovering)=\"showEditTabs($event)\" [id]=\"data?.id\">\r\n <div class=\"main-container\" [simpoAnimation]=\"styles?.animation\" [id]=\"data?.id\">\r\n <div class=\"top-section w-100 d-flex align-items-center justify-content-center text-center flex-column\"\r\n [simpoBackground]=\"styles?.background\" [id]=\"data?.id\" [simpoLayout]=\"stylesLayout\">\r\n <ng-container *ngIf=\"!loader\">\r\n <div class=\"store-header mb-3\">\r\n {{ submit && showMessage == true && pincode && pincode?.toString()?.length == 6 ? \"Stores in \" +\r\n pincode :\r\n \"Find a Store Near You\"}}\r\n </div>\r\n <div class=\"sub-text\">\r\n {{ submit && showMessage == true && pincode && pincode?.toString()?.length == 6 ? 'We have ' +\r\n totalCount\r\n + ' stores in this locality, scroll down to view the stores\r\n and browse the designs available.' : 'Locate a store near you \u2014 our presence is expanding every day,\r\n and\r\n we look forward to serving you.' }}\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"loader\">\r\n <div class=\"sub-text\">\r\n <ngx-skeleton-loader [theme]=\"{\r\n width: '35%',\r\n height: '3vh',\r\n 'border-radius': '12px',\r\n }\"></ngx-skeleton-loader>\r\n </div>\r\n <div class=\"sub-text w-75\">\r\n <ngx-skeleton-loader [theme]=\"{\r\n width: '35%',\r\n height: '2vh',\r\n 'border-radius': '12px',\r\n }\"></ngx-skeleton-loader>\r\n </div>\r\n </ng-container>\r\n <div class=\"location-container d-flex align-items-center justify-content-between w-25\"\r\n [class.error-border]=\"error\">\r\n <div class=\"d-flex align-items-center w-90\">\r\n <div class=\"d-flex mx-1\"><mat-icon class=\"d-flex align-items-center justify-content-center f-20\"\r\n [style.color]=\"data?.styles?.background?.accentColor\">gps_fixed</mat-icon>\r\n </div>\r\n <input type=\"number\" placeholder=\"Pin Code\" [(ngModel)]=\"pincode\" class=\"w-90\"\r\n [style.backgroundColor]=\"'#ffffff'\"\r\n (ngModelChange)=\"pincode.toString().length != 6 ? submit = false : error = false;\" />\r\n </div>\r\n <div (click)=\"getDataWithPincode()\" class=\"f-13 cursor-pointer\">Submit</div>\r\n </div>\r\n <span class=\"f-12 w-25 text-start mt-2\" *ngIf=\"error\" [style.color]=\"'#dc3545'\">Invalid Pincode\r\n (Ex:500088)</span>\r\n </div>\r\n <div class=\"bottom-container row mt-3 w-100\" [spacingHorizontal]=\"stylesLayout\" [simpoLayout]=\"stylesLayout\"\r\n [id]=\"data?.id\">\r\n <div class=\"state-container row gap-3 justify-content-center mb-5\" *ngIf=\"showState && !pincode\">\r\n <ng-container *ngFor=\"let state of stateList; let i = index\">\r\n <div class=\"state-card p-2 col-sm-6\" (click)=\"setStateData(state)\">\r\n <ng-container *ngIf=\"state?.stateImage; else noImage\">\r\n <img class=\"w-100 h-75\" [src]=\"state?.stateImage\">\r\n </ng-container>\r\n <ng-template #noImage>\r\n <img class=\"w-100 h-75\"\r\n src=\"https://cdn.caratlane.com/media/static/images/Find_In_Store/city_5.svg\">\r\n </ng-template>\r\n <div class=\"text-center mt-2 state-name\">{{state?.stateName}}</div>\r\n <div class=\"store-count text-center mb-3 mt-1\">{{state?.storeCount + \" stores\"}}</div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"w-100 d-flex align-items-center justify-content-center mb-3\"\r\n *ngIf=\"submit && showMessage == false && pincode && pincode.toString().length ==6 && !loader\">\r\n <div class=\"text-center not-available-text\">We are not available in this location currently</div>\r\n </div>\r\n <ng-container *ngIf=\"loader\">\r\n <div class=\"sub-text w-100 text-center\">\r\n <ngx-skeleton-loader [theme]=\"{\r\n width: '35%',\r\n height: '6vh',\r\n 'border-radius': '12px',\r\n }\"></ngx-skeleton-loader>\r\n </div>\r\n </ng-container>\r\n <div class=\"bottom-sub-text d-flex align-items-center justify-content-center mb-3 w-100 f-20 fw-bold\"> {{\r\n submit &&\r\n showMessage == true && pincode ? \"Showing \" + totalCount + \" Stores in \" + pincode :\r\n \"Showing All Stores\"}}</div>\r\n <ng-container *ngIf=\"!loader;else loaderScreen\">\r\n <div class=\"row d-flex\">\r\n <div class=\"col-4 p-2 store d-flex flex-column\" [id]=\"data?.id\" [simpoCorner]=\"styles?.corners\"\r\n *ngFor=\"let ele of storesList; let i = index\">\r\n <div class=\"card-body position-relative d-flex flex-column h-100\" [simpoCorner]=\"styles?.corners\" [id]=\"data?.id\">\r\n <!-- Content -->\r\n <div class=\"h-100 p-3 pb-0\">\r\n <div class=\"d-flex justify-content-between align-items-start mb-2\">\r\n <div class=\"d-flex flex-column mb-2 bb-1 w-100 pb-2\">\r\n <h6 class=\"card-title fw-bold mb-1 w-100\">{{ele?.storeName}}</h6>\r\n <div class=\"f-11\">\r\n \u2B504.{{ele?.star}} • {{ele?.reviewCount}} Google\r\n Reviews\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-2 f-11\">\r\n <p class=\"mb-1 text-dark fw-medium\">{{ele?.addressDetails?.addressLine}},</p>\r\n <p class=\"mb-1 text-dark fw-medium\">\r\n {{ele?.addressDetails?.city}},\r\n {{ele?.addressDetails?.state}},{{ele?.addressDetails?.pincode}},\r\n </p>\r\n <p class=\"mb-0 fw-bold\">Phone-\r\n <span\r\n [style.color]=\"data?.styles?.background?.accentColor\">{{ele?.storeContactDetails?.mobile}}</span>\r\n </p>\r\n </div>\r\n <div class=\"mb-2 f-11\">\r\n <p class=\"mb-0 fw-bold\" [style.color]=\"data?.styles?.background?.accentColor\">\r\n STORE HOURS -\r\n {{getTime(ele?.storeHours,'OPEN')}} to {{getTime(ele?.storeHours,'CLOSE')}}\r\n </p>\r\n </div>\r\n </div>\r\n <!-- Fixed bottom buttons -->\r\n <div class=\"d-flex gap-3 align-items-center justify-content-between p-3 w-100 br-20\"\r\n [style.backgroundColor]=\"getRGBA(styles?.background?.accentColor,10)\"\r\n [simpoCorner]=\"styles?.corners\" [id]=\"data?.id\">\r\n <div class=\"br-12 d-flex align-items-center justify-content-center\"\r\n style=\"width: 30px; height: 30px;\"\r\n (click)=\"openWhatsapp(ele?.storeContactDetails?.mobile)\"\r\n [style.backgroundColor]=\"data?.styles?.background?.accentColor\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\r\n style=\"height: 20px;cursor: pointer;\">\r\n <path [attr.fill]=\"getTextColor(data?.styles?.background?.accentColor)\"\r\n d=\"M380.9 97.1c-41.9-42-97.7-65.1-157-65.1-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480 117.7 449.1c32.4 17.7 68.9 27 106.1 27l.1 0c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3 18.6-68.1-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1s56.2 81.2 56.1 130.5c0 101.8-84.9 184.6-186.6 184.6zM325.1 300.5c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8s-14.3 18-17.6 21.8c-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7 .9-6.9-.5-9.7s-12.5-30.1-17.1-41.2c-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2s-9.7 1.4-14.8 6.9c-5.1 5.6-19.4 19-19.4 46.3s19.9 53.7 22.6 57.4c2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4s4.6-24.1 3.2-26.4c-1.3-2.5-5-3.9-10.5-6.6z\" />\r\n </svg>\r\n </div>\r\n <button class=\"btn w-50\" [buttonData]=\"button?.content\" [buttonStyle]=\"button?.styles\"\r\n simpoButtonDirective [id]=\"data?.id+(button?.id || '')\" [sectionId]=\"data?.id\"\r\n [color]=\"data?.styles?.background?.accentColor\"\r\n [backgroundInfo]=\"data?.styles?.background\" [appButtonEditor]=\"edit ?? false\"\r\n [buttonId]=\"button?.id ?? ''\" (click)=\"viewStore(ele.id)\">\r\n {{button?.content?.label}}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </ng-container>\r\n <ng-template #loaderScreen>\r\n <div class=\"row loader-container\">\r\n <ng-container *ngFor=\"let ele of [1,2,3,4,5,6]\">\r\n <ngx-skeleton-loader class=\"col-4 loader-column\" [theme]=\"{\r\n width: '100%',\r\n height: '40vh',\r\n 'border-radius': '12px',\r\n }\"></ngx-skeleton-loader>\r\n </ng-container>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </div>\r\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\r\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\r\n </div>\r\n\r\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\r\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\r\n </div>\r\n</div>", styles: [".hover_effect{position:unset;width:100%;top:0;left:0;height:100%}*{font-family:var(--website-font-family)}mat-icon{font-family:Material Icons!important}.store-header{font-size:27px;font-weight:700}.sub-text{font-size:16px;width:35%;margin-bottom:15px}.location-container{border:1px solid;padding:8px;border-radius:12px;background:#fff}.location-container input{border:unset;appearance:unset;outline:unset;background:#fff;font-size:13px}.f-11{font-size:11px}.f-14{font-size:14px}.not-available-text{color:#ff5151;font-weight:600;border-radius:22px;text-align:center;padding:12px;background:#ff51511a;width:35%}.f-20{font-size:20px}.f-13{font-size:13px}.w-90{width:90%}.card-body{box-shadow:#0000000d 0 0 0 1px;height:100%}.card-bottom{POSITION:ABSOLUTE;width:90%;bottom:15px}.br-12{border-radius:12px}.btn{font-size:12px!important}.error-border{border:2px solid #dc3545!important}.f-12{font-size:12px}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}@media (max-width:475px){.sub-text{width:100%!important}.loader-container{flex-direction:column;padding-right:0!important}.loader-column,.not-available-text{width:100%!important}.location-container{width:55%!important}.bottom-container{flex-direction:column;margin:0!important;width:100%!important}.store{width:100%!important}.state-container{margin:unset!important}.state-container .state-card{width:45%}}.main-container{padding-bottom:9%}.state-card{width:13%;box-shadow:#0000000d 0 0 0 1px;border-radius:20px;cursor:pointer}.state-card img{border-bottom:1px solid rgba(0,0,0,.05)}.state-card .state-name{font-size:14px;font-weight:600}.state-card .store-count{font-size:13px}.bb-1{border-bottom:2px solid rgba(0,0,0,.05)}.br-20{border-top-left-radius:unset!important;border-top-right-radius:unset!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: SimpoComponentModule }, { kind: "component", type: i5.HoverElementsComponent, selector: "simpo-hover-elements", inputs: ["data", "index", "editOptions", "isMerged", "isEcommerce"], outputs: ["edit"] }, { kind: "component", type: i6.DeleteHoverElementComponent, selector: "simpo-delete-hover-element", inputs: ["index", "data"], outputs: ["edit"] }, { kind: "component", type: i7.NgxSkeletonLoaderComponent, selector: "ngx-skeleton-loader", inputs: ["count", "loadingText", "appearance", "animation", "ariaLabel", "theme"] }, { kind: "directive", type: AnimationDirective, selector: "[simpoAnimation]", inputs: ["simpoAnimation"] }, { kind: "directive", type: BackgroundDirective, selector: "[simpoBackground]", inputs: ["simpoBackground", "scrollValue"] }, { kind: "directive", type: HoverDirective, selector: "[simpoHover]", outputs: ["hovering"] }, { kind: "directive", type: ButtonDirectiveDirective, selector: "[simpoButtonDirective]", inputs: ["buttonStyle", "color", "scrollValue", "backgroundInfo"] }, { kind: "directive", type: ContentFitDirective, selector: "[simpoLayout]", inputs: ["simpoLayout"] }, { kind: "ngmodule", type: NgxSkeletonLoaderModule }, { kind: "directive", type: ButtonEditorDirective, selector: "button[appButtonEditor]", inputs: ["appButtonEditor", "buttonData", "buttonStyle", "backgroundInfo", "sectionId", "buttonId"] }, { kind: "directive", type: SpacingHorizontalDirective, selector: "[spacingHorizontal]", inputs: ["spacingHorizontal", "isHeader"] }, { kind: "directive", type: CornerDirective, selector: "[simpoCorner]", inputs: ["simpoCorner"] }] }); }
|
131
136
|
}
|
132
137
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: StoreListComponent, decorators: [{
|
133
138
|
type: Component,
|
@@ -144,7 +149,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
144
149
|
NgxSkeletonLoaderModule,
|
145
150
|
ButtonEditorDirective,
|
146
151
|
ColorDirective,
|
147
|
-
], template: "<div class=\"total-container position-relative\" simpoHover (hovering)=\"showEditTabs($event)\" [id]=\"data?.id\">\r\n <div class=\"main-container\" [simpoAnimation]=\"styles?.animation\" [id]=\"data?.id\">\r\n <div class=\"top-section w-100 d-flex align-items-center justify-content-center text-center flex-column\"\r\n [simpoBackground]=\"styles?.background\" [id]=\"data?.id\" [simpoLayout]=\"styles?.layout\">\r\n <ng-container *ngIf=\"!loader\">\r\n <div class=\"store-header mb-3\">\r\n {{ submit && showMessage == true && pincode && pincode?.toString()?.length == 6 ? \"Stores in \" +\r\n pincode :\r\n \"Find a Store Near You\"}}\r\n </div>\r\n <div class=\"sub-text\">\r\n {{ submit && showMessage == true && pincode && pincode?.toString()?.length == 6 ? 'We have ' +\r\n totalCount\r\n + ' stores in this locality, scroll down to view the stores\r\n and browse the designs available.' : 'Locate a store near you \u2014 our presence is expanding every day,\r\n and\r\n we look forward to serving you.' }}\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"loader\">\r\n <div class=\"sub-text\">\r\n <ngx-skeleton-loader [theme]=\"{\r\n width: '35%',\r\n height: '3vh',\r\n 'border-radius': '12px',\r\n }\"></ngx-skeleton-loader>\r\n </div>\r\n <div class=\"sub-text w-75\">\r\n <ngx-skeleton-loader [theme]=\"{\r\n width: '35%',\r\n height: '2vh',\r\n 'border-radius': '12px',\r\n }\"></ngx-skeleton-loader>\r\n </div>\r\n </ng-container>\r\n <div class=\"location-container d-flex align-items-center justify-content-between w-25\"\r\n [class.error-border]=\"error\">\r\n <div class=\"d-flex align-items-center w-90\">\r\n <div class=\"d-flex mx-1\"><mat-icon class=\"d-flex align-items-center justify-content-center f-20\"\r\n [style.color]=\"data?.styles?.background?.accentColor\">gps_fixed</mat-icon>\r\n </div>\r\n <input type=\"number\" placeholder=\"Pin Code\" [(ngModel)]=\"pincode\" class=\"w-90\"\r\n [style.backgroundColor]=\"data?.styles?.background?.color\"\r\n [style.color]=\"getTextColor(data?.styles?.background?.color)\"\r\n (ngModelChange)=\"pincode.toString().length != 6 ? submit = false : error = false;\" />\r\n </div>\r\n <div (click)=\"getDataWithPincode()\" class=\"f-13 cursor-pointer\">Submit</div>\r\n </div>\r\n <span class=\"f-12 w-25 text-start mt-2\" *ngIf=\"error\" [style.color]=\"'#dc3545'\">Invalid Pincode\r\n (Ex:500088)</span>\r\n </div>\r\n <div class=\"bottom-container row mx-auto mt-3\">\r\n <div class=\"state-container row gap-3 justify-content-center mb-5\" *ngIf=\"showState && !pincode\">\r\n <ng-container *ngFor=\"let state of stateList; let i = index\">\r\n <div class=\"state-card p-2 col-sm-6\" (click)=\"setStateData(state)\">\r\n <ng-container *ngIf=\"state?.stateImage; else noImage\">\r\n <img class=\"w-100 h-75\" [src]=\"state?.stateImage\">\r\n </ng-container>\r\n <ng-template #noImage>\r\n <img class=\"w-100 h-75\"\r\n src=\"https://cdn.caratlane.com/media/static/images/Find_In_Store/city_5.svg\">\r\n </ng-template>\r\n <div class=\"text-center mt-2 state-name\">{{state?.stateName}}</div>\r\n <div class=\"store-count text-center mb-3 mt-1\">{{state?.storeCount + \" stores\"}}</div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"w-100 d-flex align-items-center justify-content-center mb-3\"\r\n *ngIf=\"submit && showMessage == false && pincode && pincode.toString().length ==6 && !loader\">\r\n <div class=\"text-center not-available-text\">We are not available in this location currently</div>\r\n </div>\r\n <ng-container *ngIf=\"loader\">\r\n <div class=\"sub-text w-100 text-center\">\r\n <ngx-skeleton-loader [theme]=\"{\r\n width: '35%',\r\n height: '6vh',\r\n 'border-radius': '12px',\r\n }\"></ngx-skeleton-loader>\r\n </div>\r\n </ng-container>\r\n <div class=\"bottom-sub-text d-flex align-items-center justify-content-center mb-3 w-100 f-20 fw-bold\"> {{\r\n submit &&\r\n showMessage == true && pincode ? \"Showing \" + totalCount + \" Stores in \" + pincode :\r\n \"Showing All Stores\"}}</div>\r\n <ng-container *ngIf=\"!loader;else loaderScreen\">\r\n <div class=\"row d-flex\">\r\n <div class=\"col-4 p-2 store d-flex flex-column \" style=\"border-radius: 12px; border: none;\"\r\n *ngFor=\"let ele of storesList; let i = index\">\r\n <div class=\"card-body position-relative d-flex flex-column h-100\">\r\n <!-- Content -->\r\n <div class=\"h-100 p-3 pb-0\">\r\n <div class=\"d-flex justify-content-between align-items-start mb-2\">\r\n <div class=\"d-flex flex-column mb-2 bb-1 w-100 pb-2\">\r\n <h6 class=\"card-title fw-bold mb-1 w-100\">{{ele?.storeName}}</h6>\r\n <div class=\"f-11\">\r\n \u2B504.{{ele?.star}} • {{ele?.reviewCount}} Google Reviews\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-2 f-11\">\r\n <p class=\"mb-1 text-dark fw-medium\">{{ele?.addressDetails?.addressLine}},</p>\r\n <p class=\"mb-1 text-dark fw-medium\">\r\n {{ele?.addressDetails?.city}},\r\n {{ele?.addressDetails?.state}},{{ele?.addressDetails?.pincode}},\r\n </p>\r\n <p class=\"mb-0 fw-bold\">Phone-\r\n <span\r\n [style.color]=\"data?.styles?.background?.accentColor\">{{ele?.storeContactDetails?.mobile}}</span>\r\n </p>\r\n </div>\r\n <div class=\"mb-2 f-11\">\r\n <p class=\"mb-0 fw-bold\" [style.color]=\"data?.styles?.background?.accentColor\">\r\n STORE HOURS -\r\n {{getTime(ele?.storeHours,'OPEN')}} to {{getTime(ele?.storeHours,'CLOSE')}}\r\n </p>\r\n </div>\r\n </div>\r\n <!-- Fixed bottom buttons -->\r\n <div class=\"d-flex gap-3 align-items-center justify-content-between p-3 w-100 br-20\" [style.backgroundColor]=\"getRGBA(styles?.background?.accentColor,10)\">\r\n <div class=\"br-12 d-flex align-items-center justify-content-center\"\r\n style=\"width: 30px; height: 30px;\" (click)=\"openWhatsapp(ele?.storeContactDetails?.mobile)\"\r\n [style.backgroundColor]=\"data?.styles?.background?.accentColor\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\" style=\"height: 20px;cursor: pointer;\">\r\n <path [attr.fill]=\"getTextColor(data?.styles?.background?.accentColor)\"\r\n d=\"M380.9 97.1c-41.9-42-97.7-65.1-157-65.1-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480 117.7 449.1c32.4 17.7 68.9 27 106.1 27l.1 0c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3 18.6-68.1-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1s56.2 81.2 56.1 130.5c0 101.8-84.9 184.6-186.6 184.6zM325.1 300.5c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8s-14.3 18-17.6 21.8c-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7 .9-6.9-.5-9.7s-12.5-30.1-17.1-41.2c-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2s-9.7 1.4-14.8 6.9c-5.1 5.6-19.4 19-19.4 46.3s19.9 53.7 22.6 57.4c2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4s4.6-24.1 3.2-26.4c-1.3-2.5-5-3.9-10.5-6.6z\" />\r\n </svg>\r\n </div>\r\n <button class=\"btn w-50\" [buttonData]=\"button?.content\" [buttonStyle]=\"button?.styles\"\r\n simpoButtonDirective [id]=\"data?.id+(button?.id || '')\" [sectionId]=\"data?.id\"\r\n [color]=\"data?.styles?.background?.accentColor\"\r\n [backgroundInfo]=\"data?.styles?.background\" [appButtonEditor]=\"edit ?? false\"\r\n [buttonId]=\"button?.id ?? ''\" (click)=\"viewStore(ele.id)\">\r\n {{button?.content?.label}}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </ng-container>\r\n <ng-template #loaderScreen>\r\n <div class=\"row loader-container\">\r\n <ng-container *ngFor=\"let ele of [1,2,3,4,5,6]\">\r\n <ngx-skeleton-loader class=\"col-4 loader-column\" [theme]=\"{\r\n width: '100%',\r\n height: '40vh',\r\n 'border-radius': '12px',\r\n }\"></ngx-skeleton-loader>\r\n </ng-container>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </div>\r\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\r\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\r\n </div>\r\n\r\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\r\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\r\n </div>\r\n</div>", styles: [".hover_effect{position:unset;width:100%;top:0;left:0;height:100%}*{font-family:var(--website-font-family)}mat-icon{font-family:Material Icons!important}.store-header{font-size:27px;font-weight:700}.sub-text{font-size:16px;width:35%;margin-bottom:15px}.location-container{border:1px solid;padding:8px;border-radius:12px;background:#fff}.location-container input{border:unset;appearance:unset;outline:unset;background:#fff;font-size:13px}.f-11{font-size:11px}.f-14{font-size:14px}.not-available-text{color:#ff5151;font-weight:600;border-radius:22px;text-align:center;padding:12px;background:#ff51511a;width:35%}.f-20{font-size:20px}.f-13{font-size:13px}.w-90{width:90%}.card-body{box-shadow:#0000000d 0 0 0 1px;border-radius:24px;height:100%}.card-bottom{POSITION:ABSOLUTE;width:90%;bottom:15px}.br-12{border-radius:12px}.btn{font-size:12px!important}.error-border{border:2px solid #dc3545!important}.f-12{font-size:12px}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.bottom-container{width:80%}@media (max-width:475px){.sub-text{width:100%!important}.loader-container{flex-direction:column;padding-right:0!important}.loader-column,.not-available-text{width:100%!important}.location-container{width:55%!important}.bottom-container{flex-direction:column;margin:0!important;width:100%!important}.store{width:100%!important}.state-container{margin:unset!important}.state-container .state-card{width:45%}}.main-container{padding-bottom:9%}.state-card{width:13%;box-shadow:#0000000d 0 0 0 1px;border-radius:20px;cursor:pointer}.state-card img{border-bottom:1px solid rgba(0,0,0,.05)}.state-card .state-name{font-size:14px;font-weight:600}.state-card .store-count{font-size:13px}.bb-1{border-bottom:2px solid rgba(0,0,0,.05)}.br-20{border-radius:0 0 20px 20px}\n"] }]
|
152
|
+
SpacingHorizontalDirective,
|
153
|
+
CornerDirective,
|
154
|
+
], template: "<div class=\"total-container position-relative\" simpoHover (hovering)=\"showEditTabs($event)\" [id]=\"data?.id\">\r\n <div class=\"main-container\" [simpoAnimation]=\"styles?.animation\" [id]=\"data?.id\">\r\n <div class=\"top-section w-100 d-flex align-items-center justify-content-center text-center flex-column\"\r\n [simpoBackground]=\"styles?.background\" [id]=\"data?.id\" [simpoLayout]=\"stylesLayout\">\r\n <ng-container *ngIf=\"!loader\">\r\n <div class=\"store-header mb-3\">\r\n {{ submit && showMessage == true && pincode && pincode?.toString()?.length == 6 ? \"Stores in \" +\r\n pincode :\r\n \"Find a Store Near You\"}}\r\n </div>\r\n <div class=\"sub-text\">\r\n {{ submit && showMessage == true && pincode && pincode?.toString()?.length == 6 ? 'We have ' +\r\n totalCount\r\n + ' stores in this locality, scroll down to view the stores\r\n and browse the designs available.' : 'Locate a store near you \u2014 our presence is expanding every day,\r\n and\r\n we look forward to serving you.' }}\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"loader\">\r\n <div class=\"sub-text\">\r\n <ngx-skeleton-loader [theme]=\"{\r\n width: '35%',\r\n height: '3vh',\r\n 'border-radius': '12px',\r\n }\"></ngx-skeleton-loader>\r\n </div>\r\n <div class=\"sub-text w-75\">\r\n <ngx-skeleton-loader [theme]=\"{\r\n width: '35%',\r\n height: '2vh',\r\n 'border-radius': '12px',\r\n }\"></ngx-skeleton-loader>\r\n </div>\r\n </ng-container>\r\n <div class=\"location-container d-flex align-items-center justify-content-between w-25\"\r\n [class.error-border]=\"error\">\r\n <div class=\"d-flex align-items-center w-90\">\r\n <div class=\"d-flex mx-1\"><mat-icon class=\"d-flex align-items-center justify-content-center f-20\"\r\n [style.color]=\"data?.styles?.background?.accentColor\">gps_fixed</mat-icon>\r\n </div>\r\n <input type=\"number\" placeholder=\"Pin Code\" [(ngModel)]=\"pincode\" class=\"w-90\"\r\n [style.backgroundColor]=\"'#ffffff'\"\r\n (ngModelChange)=\"pincode.toString().length != 6 ? submit = false : error = false;\" />\r\n </div>\r\n <div (click)=\"getDataWithPincode()\" class=\"f-13 cursor-pointer\">Submit</div>\r\n </div>\r\n <span class=\"f-12 w-25 text-start mt-2\" *ngIf=\"error\" [style.color]=\"'#dc3545'\">Invalid Pincode\r\n (Ex:500088)</span>\r\n </div>\r\n <div class=\"bottom-container row mt-3 w-100\" [spacingHorizontal]=\"stylesLayout\" [simpoLayout]=\"stylesLayout\"\r\n [id]=\"data?.id\">\r\n <div class=\"state-container row gap-3 justify-content-center mb-5\" *ngIf=\"showState && !pincode\">\r\n <ng-container *ngFor=\"let state of stateList; let i = index\">\r\n <div class=\"state-card p-2 col-sm-6\" (click)=\"setStateData(state)\">\r\n <ng-container *ngIf=\"state?.stateImage; else noImage\">\r\n <img class=\"w-100 h-75\" [src]=\"state?.stateImage\">\r\n </ng-container>\r\n <ng-template #noImage>\r\n <img class=\"w-100 h-75\"\r\n src=\"https://cdn.caratlane.com/media/static/images/Find_In_Store/city_5.svg\">\r\n </ng-template>\r\n <div class=\"text-center mt-2 state-name\">{{state?.stateName}}</div>\r\n <div class=\"store-count text-center mb-3 mt-1\">{{state?.storeCount + \" stores\"}}</div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"w-100 d-flex align-items-center justify-content-center mb-3\"\r\n *ngIf=\"submit && showMessage == false && pincode && pincode.toString().length ==6 && !loader\">\r\n <div class=\"text-center not-available-text\">We are not available in this location currently</div>\r\n </div>\r\n <ng-container *ngIf=\"loader\">\r\n <div class=\"sub-text w-100 text-center\">\r\n <ngx-skeleton-loader [theme]=\"{\r\n width: '35%',\r\n height: '6vh',\r\n 'border-radius': '12px',\r\n }\"></ngx-skeleton-loader>\r\n </div>\r\n </ng-container>\r\n <div class=\"bottom-sub-text d-flex align-items-center justify-content-center mb-3 w-100 f-20 fw-bold\"> {{\r\n submit &&\r\n showMessage == true && pincode ? \"Showing \" + totalCount + \" Stores in \" + pincode :\r\n \"Showing All Stores\"}}</div>\r\n <ng-container *ngIf=\"!loader;else loaderScreen\">\r\n <div class=\"row d-flex\">\r\n <div class=\"col-4 p-2 store d-flex flex-column\" [id]=\"data?.id\" [simpoCorner]=\"styles?.corners\"\r\n *ngFor=\"let ele of storesList; let i = index\">\r\n <div class=\"card-body position-relative d-flex flex-column h-100\" [simpoCorner]=\"styles?.corners\" [id]=\"data?.id\">\r\n <!-- Content -->\r\n <div class=\"h-100 p-3 pb-0\">\r\n <div class=\"d-flex justify-content-between align-items-start mb-2\">\r\n <div class=\"d-flex flex-column mb-2 bb-1 w-100 pb-2\">\r\n <h6 class=\"card-title fw-bold mb-1 w-100\">{{ele?.storeName}}</h6>\r\n <div class=\"f-11\">\r\n \u2B504.{{ele?.star}} • {{ele?.reviewCount}} Google\r\n Reviews\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mb-2 f-11\">\r\n <p class=\"mb-1 text-dark fw-medium\">{{ele?.addressDetails?.addressLine}},</p>\r\n <p class=\"mb-1 text-dark fw-medium\">\r\n {{ele?.addressDetails?.city}},\r\n {{ele?.addressDetails?.state}},{{ele?.addressDetails?.pincode}},\r\n </p>\r\n <p class=\"mb-0 fw-bold\">Phone-\r\n <span\r\n [style.color]=\"data?.styles?.background?.accentColor\">{{ele?.storeContactDetails?.mobile}}</span>\r\n </p>\r\n </div>\r\n <div class=\"mb-2 f-11\">\r\n <p class=\"mb-0 fw-bold\" [style.color]=\"data?.styles?.background?.accentColor\">\r\n STORE HOURS -\r\n {{getTime(ele?.storeHours,'OPEN')}} to {{getTime(ele?.storeHours,'CLOSE')}}\r\n </p>\r\n </div>\r\n </div>\r\n <!-- Fixed bottom buttons -->\r\n <div class=\"d-flex gap-3 align-items-center justify-content-between p-3 w-100 br-20\"\r\n [style.backgroundColor]=\"getRGBA(styles?.background?.accentColor,10)\"\r\n [simpoCorner]=\"styles?.corners\" [id]=\"data?.id\">\r\n <div class=\"br-12 d-flex align-items-center justify-content-center\"\r\n style=\"width: 30px; height: 30px;\"\r\n (click)=\"openWhatsapp(ele?.storeContactDetails?.mobile)\"\r\n [style.backgroundColor]=\"data?.styles?.background?.accentColor\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 448 512\"\r\n style=\"height: 20px;cursor: pointer;\">\r\n <path [attr.fill]=\"getTextColor(data?.styles?.background?.accentColor)\"\r\n d=\"M380.9 97.1c-41.9-42-97.7-65.1-157-65.1-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480 117.7 449.1c32.4 17.7 68.9 27 106.1 27l.1 0c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3 18.6-68.1-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1s56.2 81.2 56.1 130.5c0 101.8-84.9 184.6-186.6 184.6zM325.1 300.5c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8s-14.3 18-17.6 21.8c-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7 .9-6.9-.5-9.7s-12.5-30.1-17.1-41.2c-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2s-9.7 1.4-14.8 6.9c-5.1 5.6-19.4 19-19.4 46.3s19.9 53.7 22.6 57.4c2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4s4.6-24.1 3.2-26.4c-1.3-2.5-5-3.9-10.5-6.6z\" />\r\n </svg>\r\n </div>\r\n <button class=\"btn w-50\" [buttonData]=\"button?.content\" [buttonStyle]=\"button?.styles\"\r\n simpoButtonDirective [id]=\"data?.id+(button?.id || '')\" [sectionId]=\"data?.id\"\r\n [color]=\"data?.styles?.background?.accentColor\"\r\n [backgroundInfo]=\"data?.styles?.background\" [appButtonEditor]=\"edit ?? false\"\r\n [buttonId]=\"button?.id ?? ''\" (click)=\"viewStore(ele.id)\">\r\n {{button?.content?.label}}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </ng-container>\r\n <ng-template #loaderScreen>\r\n <div class=\"row loader-container\">\r\n <ng-container *ngFor=\"let ele of [1,2,3,4,5,6]\">\r\n <ngx-skeleton-loader class=\"col-4 loader-column\" [theme]=\"{\r\n width: '100%',\r\n height: '40vh',\r\n 'border-radius': '12px',\r\n }\"></ngx-skeleton-loader>\r\n </ng-container>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </div>\r\n <div [ngClass]=\"{'hover_effect': edit}\" *ngIf=\"showEditors\">\r\n <simpo-hover-elements [data]=\"data\" [index]=\"index\" [editOptions]=\"edit\"></simpo-hover-elements>\r\n </div>\r\n\r\n <div *ngIf=\"showDelete\" [ngClass]=\"{'hover_effect': delete}\">\r\n <simpo-delete-hover-element [data]=\"data\" [index]=\"index\"></simpo-delete-hover-element>\r\n </div>\r\n</div>", styles: [".hover_effect{position:unset;width:100%;top:0;left:0;height:100%}*{font-family:var(--website-font-family)}mat-icon{font-family:Material Icons!important}.store-header{font-size:27px;font-weight:700}.sub-text{font-size:16px;width:35%;margin-bottom:15px}.location-container{border:1px solid;padding:8px;border-radius:12px;background:#fff}.location-container input{border:unset;appearance:unset;outline:unset;background:#fff;font-size:13px}.f-11{font-size:11px}.f-14{font-size:14px}.not-available-text{color:#ff5151;font-weight:600;border-radius:22px;text-align:center;padding:12px;background:#ff51511a;width:35%}.f-20{font-size:20px}.f-13{font-size:13px}.w-90{width:90%}.card-body{box-shadow:#0000000d 0 0 0 1px;height:100%}.card-bottom{POSITION:ABSOLUTE;width:90%;bottom:15px}.br-12{border-radius:12px}.btn{font-size:12px!important}.error-border{border:2px solid #dc3545!important}.f-12{font-size:12px}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}@media (max-width:475px){.sub-text{width:100%!important}.loader-container{flex-direction:column;padding-right:0!important}.loader-column,.not-available-text{width:100%!important}.location-container{width:55%!important}.bottom-container{flex-direction:column;margin:0!important;width:100%!important}.store{width:100%!important}.state-container{margin:unset!important}.state-container .state-card{width:45%}}.main-container{padding-bottom:9%}.state-card{width:13%;box-shadow:#0000000d 0 0 0 1px;border-radius:20px;cursor:pointer}.state-card img{border-bottom:1px solid rgba(0,0,0,.05)}.state-card .state-name{font-size:14px;font-weight:600}.state-card .store-count{font-size:13px}.bb-1{border-bottom:2px solid rgba(0,0,0,.05)}.br-20{border-top-left-radius:unset!important;border-top-right-radius:unset!important}\n"] }]
|
148
155
|
}], ctorParameters: () => [{ type: i1.RestService }, { type: i2.Router }], propDecorators: { data: [{
|
149
156
|
type: Input
|
150
157
|
}], edit: [{
|
@@ -156,4 +163,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
156
163
|
}], index: [{
|
157
164
|
type: Input
|
158
165
|
}] } });
|
159
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL2Vjb21tZXJjZS9zZWN0aW9ucy9zdG9yZS1saXN0L3N0b3JlLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvc3RvcmUtbGlzdC9zdG9yZS1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUF1QixNQUFNLGVBQWUsQ0FBQztBQUN0RSxPQUFPLFdBQVcsTUFBTSwrQkFBK0IsQ0FBQztBQUV4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDNUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDOUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFHL0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDOUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFFbkYsT0FBTyxF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QUFtQjt3QkFDbkIsdUJBQXVCO3dCQUN2QixxQkFBcUI7d0JBQ3JCLGNBQWM7cUJBQ2Y7cUdBTVEsSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBOZ01vZHVsZSwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCBCYXNlU2VjdGlvbiBmcm9tICcuLi8uLi8uLi9zZWN0aW9ucy9CYXNlU2VjdGlvbic7XHJcbmltcG9ydCB7IFN0b3JlTGlzdE1vZGFsLCBTdG9yZUxpc3RTdHlsZU1vZGVsIH0gZnJvbSAnLi9zdG9yZS1saXN0Lm1vZGFsJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQW5pbWF0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL2FuaW1hdGlvbi1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBCYWNrZ3JvdW5kRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL2JhY2tncm91bmQtZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgU2ltcG9Db21wb25lbnRNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2luZGV4JztcclxuaW1wb3J0IHsgSG92ZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvaG92ZXItZWxlbWVudC1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBCdXR0b25EaXJlY3RpdmVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvYnV0dG9uLWRpcmVjdGl2ZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWF0SWNvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBDb250ZW50Rml0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL2NvbnRlbnQtZml0LWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcmVzdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgTmd4U2tlbGV0b25Mb2FkZXJNb2R1bGUgfSBmcm9tICduZ3gtc2tlbGV0b24tbG9hZGVyJztcclxuaW1wb3J0IHsgQnV0dG9uRWRpdG9yRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL2J1dHRvbi1lZGl0b3IuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQnV0dG9uTW9kZWwgfSBmcm9tICcuLi8uLi8uLi9zdHlsZXMvc3R5bGUubW9kZWwnO1xyXG5pbXBvcnQgeyBDb2xvckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9jb2xvci5kaXJlY3RpdmUnO1xyXG5cclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NpbXBvLXN0b3JlLWxpc3QnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgIE1hdEljb24sXHJcbiAgICBTaW1wb0NvbXBvbmVudE1vZHVsZSxcclxuICAgIEFuaW1hdGlvbkRpcmVjdGl2ZSxcclxuICAgIEJhY2tncm91bmREaXJlY3RpdmUsXHJcbiAgICBIb3ZlckRpcmVjdGl2ZSxcclxuICAgIEJ1dHRvbkRpcmVjdGl2ZURpcmVjdGl2ZSxcclxuICAgIENvbnRlbnRGaXREaXJlY3RpdmUsXHJcbiAgICBOZ3hTa2VsZXRvbkxvYWRlck1vZHVsZSxcclxuICAgIEJ1dHRvbkVkaXRvckRpcmVjdGl2ZSxcclxuICAgIENvbG9yRGlyZWN0aXZlLFxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3N0b3JlLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9zdG9yZS1saXN0LmNvbXBvbmVudC5jc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTdG9yZUxpc3RDb21wb25lbnQgZXh0ZW5kcyBCYXNlU2VjdGlvbiB7XHJcblxyXG4gIEBJbnB1dCgpIGRhdGE/OiBTdG9yZUxpc3RNb2RhbFxyXG4gIEBJbnB1dCgpIGVkaXQ/OiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBjdXN0b21DbGFzcz86IHN0cmluZztcclxuICBASW5wdXQoKSBkZWxldGU/OiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGluZGV4PzogbnVtYmVyO1xyXG4gIHBhZ2VObzogbnVtYmVyID0gMDtcclxuICBpc0xvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBjYXJkU2l6ZTogbnVtYmVyID0gNTA7XHJcblxyXG5cclxuICBzdHlsZXM/OiBTdG9yZUxpc3RTdHlsZU1vZGVsO1xyXG4gIGJ1dHRvbj86IEJ1dHRvbk1vZGVsXHJcblxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlc3RTZXJ2aWNlOiBSZXN0U2VydmljZSxcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXJcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuc3R5bGVzID0gdGhpcy5kYXRhPy5zdHlsZXM7XHJcbiAgICB0aGlzLmJ1dHRvbiA9IHRoaXMuZGF0YT8uYWN0aW9uPy5idXR0b25zWzBdO1xyXG4gICAgdGhpcy5waW5jb2RlID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3BpbmNvZGUnKSA/PyBcIlwiO1xyXG4gICAgaWYgKHRoaXMucGluY29kZT8udG9TdHJpbmcoKS5sZW5ndGggPT0gNikge1xyXG4gICAgICB0aGlzLmdldERhdGFXaXRoUGluY29kZSgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5nZXRTdG9yZURldGFpbHMoKTtcclxuICB9XHJcbiAgc3RvcmVzTGlzdDogYW55ID0gW107XHJcbiAgcGluY29kZTogYW55O1xyXG4gIHN0b3JlUGF5bG9hZDogYW55ID0ge1xyXG4gICAgYnVzaW5lc3NJZDogbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2J1c2luZXNzSWQnKSA/PyBcIjFmMDVmMDg1LWQ4NjUtNmJjNS04MmI0LTA1NzA2NjdkNmY1ZVwiLFxyXG4gICAgcGFnZU5vOiAwLFxyXG4gICAgcGFnZVNpemU6IDE1XHJcbiAgfVxyXG4gIGdldERhdGFXaXRoUGluY29kZSgpIHtcclxuICAgIGlmICh0aGlzLnBpbmNvZGUudG9TdHJpbmcoKS5sZW5ndGggIT0gNikge1xyXG4gICAgICB0aGlzLmVycm9yID0gdHJ1ZVxyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnN0b3JlUGF5bG9hZC5waW5jb2RlID0gdGhpcy5waW5jb2RlO1xyXG4gICAgdGhpcy5nZXRTdG9yZURldGFpbHMoKTtcclxuICB9XHJcbiAgc2hvd01lc3NhZ2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuICB0b3RhbENvdW50OiBudW1iZXIgPSAwO1xyXG4gIHN1Ym1pdDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGxvYWRlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGVycm9yOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc3RhdGVMaXN0OiBhbnlcclxuICBnZXRTdG9yZURldGFpbHMoKSB7XHJcbiAgICB0aGlzLnN1Ym1pdCA9IHRydWU7XHJcbiAgICB0aGlzLmxvYWRlciA9IHRydWU7XHJcbiAgICB0aGlzLnJlc3RTZXJ2aWNlLmdldEFsbFN0b3Jlcyh0aGlzLnN0b3JlUGF5bG9hZCkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLnN0b3Jlc0xpc3QgPSByZXM/LmRhdGE/LmRhdGE7XHJcbiAgICAgIHRoaXMuc3RvcmVzTGlzdC5mb3JFYWNoKChzdG9yZSA6IGFueSk9PiB7XHJcbiAgICAgICAgc3RvcmUuc3RhciA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDkpICsgMTtcclxuICAgICAgICBzdG9yZS5yZXZpZXdDb3VudCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqICg1MDAgLSAxMDAgKyAxKSkgKyAxMDA7XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLnRvdGFsQ291bnQgPSByZXM/LmRhdGE/LmNvdW50O1xyXG4gICAgICB0aGlzLnN0YXRlTGlzdCA9IHJlcz8uZGF0YT8uc3RhdGVEZXRhaWxzO1xyXG4gICAgICBpZiAodGhpcy5waW5jb2RlPy50b1N0cmluZygpLmxlbmd0aCA9PSA2KVxyXG4gICAgICAgIHRoaXMuc2hvd01lc3NhZ2UgPSByZXM/LmRhdGE/LnN0b3JlUHJlc2VudDtcclxuICAgICAgdGhpcy5zdG9yZVBheWxvYWQucGFnZU5vKys7XHJcbiAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2VcclxuICAgICAgdGhpcy5sb2FkZXIgPSBmYWxzZTtcclxuICAgIH0sXHJcbiAgICAgIChlcnJvcikgPT4ge1xyXG4gICAgICAgIHRoaXMubG9hZGVyID0gZmFsc2VcclxuICAgICAgfSlcclxuICB9XHJcbiAgc2hvd1N0YXRlOiBib29sZWFuID0gdHJ1ZVxyXG4gIHNlbGVjdGVkU3RhdGU6IHN0cmluZyA9IFwiXCJcclxuICBzZXRTdGF0ZURhdGEoc3RhdGVEYXRhOiBhbnkpIHtcclxuICAgIHRoaXMuc3RvcmVzTGlzdCA9IHN0YXRlRGF0YT8uc3RvcmVMaXN0O1xyXG4gICAgdGhpcy5zaG93U3RhdGUgPSBmYWxzZTtcclxuICB9XHJcbiAgZ2V0VGV4dENvbG9yKGJnQ29sb3I6IGFueSkge1xyXG4gICAgaWYgKGJnQ29sb3IpIHtcclxuICAgICAgY29uc3QgdGhyZXNob2xkID0gMTMwOyAvLyBBZGp1c3QgdGhpcyB0aHJlc2hvbGQgYXMgbmVlZGVkXHJcbiAgICAgIGNvbnN0IHIgPSBwYXJzZUludChiZ0NvbG9yLnNsaWNlKDEsIDMpLCAxNik7XHJcbiAgICAgIGNvbnN0IGcgPSBwYXJzZUludChiZ0NvbG9yLnNsaWNlKDMsIDUpLCAxNik7XHJcbiAgICAgIGNvbnN0IGIgPSBwYXJzZUludChiZ0NvbG9yLnNsaWNlKDUsIDcpLCAxNik7XHJcbiAgICAgIGNvbnN0IGJyaWdodG5lc3MgPSAociAqIDI5OSArIGcgKiA1ODcgKyBiICogMTE0KSAvIDEwMDA7XHJcblxyXG4gICAgICByZXR1cm4gYnJpZ2h0bmVzcyA+IHRocmVzaG9sZCA/ICcjMDAwMDAwJyA6ICcjZmZmZmZmJztcclxuICAgIH1cclxuICAgIHJldHVybiBcIiNmZmZmZmY7XCJcclxuICB9XHJcbiAgb3BlbldoYXRzYXBwKHBob25lOiBzdHJpbmcpIHtcclxuICAgIGlmIChwaG9uZSkge1xyXG4gICAgICBjb25zdCB3aGF0c2FwcFVybCA9IGBodHRwczovL3dhLm1lLyR7cGhvbmV9YDtcclxuICAgICAgd2luZG93Lm9wZW4od2hhdHNhcHBVcmwsICdfYmxhbmsnKTtcclxuICAgIH1cclxuICB9XHJcbiAgdmlld1N0b3JlKHN0b3JlSWQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvc3RvcmUnXSwgeyBxdWVyeVBhcmFtczogeyBzdG9yZUlkOiBzdG9yZUlkIH0gfSk7XHJcbiAgfVxyXG4gIGdldFRpbWUoc3RvcmVIb3VyczogYW55LCB0eXBlOiBzdHJpbmcpIHtcclxuICAgIGlmKCFzdG9yZUhvdXJzIHx8IHN0b3JlSG91cnM/Lmxlbmd0aCA9PSAwKSBcclxuICAgICAgcmV0dXJuO1xyXG4gICAgY29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpO1xyXG4gICAgY29uc3QgZGF5TmFtZSA9IHRvZGF5LnRvTG9jYWxlRGF0ZVN0cmluZygnZW4tVVMnLCB7IHdlZWtkYXk6ICdsb25nJyB9KS50b1VwcGVyQ2FzZSgpO1xyXG4gICAgZm9yIChsZXQgZWxlIG9mIE9iamVjdC5rZXlzKHN0b3JlSG91cnMpKSB7XHJcbiAgICAgIGlmIChlbGUgPT0gZGF5TmFtZSkge1xyXG4gICAgICAgIGlmICh0eXBlID09ICdPUEVOJykge1xyXG4gICAgICAgICAgcmV0dXJuIHN0b3JlSG91cnNbZWxlXS5vcGVuaW5nVGltZVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXR1cm4gc3RvcmVIb3Vyc1tlbGVdLmNsb3NpbmdUaW1lXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldFJHQkEoYmdDb2xvcjogYW55LCBvcGFjaXR5OiBudW1iZXIpOiBhbnkge1xyXG4gICAgY29uc3QgciA9IHBhcnNlSW50KGJnQ29sb3Iuc2xpY2UoMSwgMyksIDE2KTtcclxuICAgIGNvbnN0IGcgPSBwYXJzZUludChiZ0NvbG9yLnNsaWNlKDMsIDUpLCAxNik7XHJcbiAgICBjb25zdCBiID0gcGFyc2VJbnQoYmdDb2xvci5zbGljZSg1LCA3KSwgMTYpO1xyXG4gICAgcmV0dXJuIGByZ2JhKCR7cn0sICR7Z30sICR7Yn0sICR7b3BhY2l0eSAvIDEwMH0pYDtcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ0b3RhbC1jb250YWluZXIgcG9zaXRpb24tcmVsYXRpdmVcIiBzaW1wb0hvdmVyIChob3ZlcmluZyk9XCJzaG93RWRpdFRhYnMoJGV2ZW50KVwiIFtpZF09XCJkYXRhPy5pZFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1haW4tY29udGFpbmVyXCIgW3NpbXBvQW5pbWF0aW9uXT1cInN0eWxlcz8uYW5pbWF0aW9uXCIgW2lkXT1cImRhdGE/LmlkXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRvcC1zZWN0aW9uIHctMTAwIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciB0ZXh0LWNlbnRlciBmbGV4LWNvbHVtblwiXHJcbiAgICAgICAgICAgIFtzaW1wb0JhY2tncm91bmRdPVwic3R5bGVzPy5iYWNrZ3JvdW5kXCIgW2lkXT1cImRhdGE/LmlkXCIgW3NpbXBvTGF5b3V0XT1cInN0eWxlcz8ubGF5b3V0XCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbG9hZGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RvcmUtaGVhZGVyIG1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICB7eyBzdWJtaXQgJiYgc2hvd01lc3NhZ2UgPT0gdHJ1ZSAmJiBwaW5jb2RlICYmIHBpbmNvZGU/LnRvU3RyaW5nKCk/Lmxlbmd0aCA9PSA2ID8gXCJTdG9yZXMgaW4gXCIgK1xyXG4gICAgICAgICAgICAgICAgICAgIHBpbmNvZGUgOlxyXG4gICAgICAgICAgICAgICAgICAgIFwiRmluZCBhIFN0b3JlIE5lYXIgWW91XCJ9fVxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViLXRleHRcIj5cclxuICAgICAgICAgICAgICAgICAgICB7eyBzdWJtaXQgJiYgc2hvd01lc3NhZ2UgPT0gdHJ1ZSAmJiBwaW5jb2RlICYmIHBpbmNvZGU/LnRvU3RyaW5nKCk/Lmxlbmd0aCA9PSA2ID8gJ1dlIGhhdmUgJyArXHJcbiAgICAgICAgICAgICAgICAgICAgdG90YWxDb3VudFxyXG4gICAgICAgICAgICAgICAgICAgICsgJyBzdG9yZXMgaW4gdGhpcyBsb2NhbGl0eSwgc2Nyb2xsIGRvd24gdG8gdmlldyB0aGUgc3RvcmVzXHJcbiAgICAgICAgICAgICAgICAgICAgYW5kIGJyb3dzZSB0aGUgZGVzaWducyBhdmFpbGFibGUuJyA6ICdMb2NhdGUgYSBzdG9yZSBuZWFyIHlvdSDigJQgb3VyIHByZXNlbmNlIGlzIGV4cGFuZGluZyBldmVyeSBkYXksXHJcbiAgICAgICAgICAgICAgICAgICAgYW5kXHJcbiAgICAgICAgICAgICAgICAgICAgd2UgbG9vayBmb3J3YXJkIHRvIHNlcnZpbmcgeW91LicgfX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxvYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1Yi10ZXh0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5neC1za2VsZXRvbi1sb2FkZXIgW3RoZW1lXT1cIntcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAnMzUlJyxcclxuICAgICAgICAgICAgICAgIGhlaWdodDogJzN2aCcsXHJcbiAgICAgICAgICAgICAgICdib3JkZXItcmFkaXVzJzogJzEycHgnLFxyXG4gICAgICAgICAgICAgICAgIH1cIj48L25neC1za2VsZXRvbi1sb2FkZXI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWItdGV4dCB3LTc1XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG5neC1za2VsZXRvbi1sb2FkZXIgW3RoZW1lXT1cIntcclxuICAgICAgICAgICAgICAgIHdpZHRoOiAnMzUlJyxcclxuICAgICAgICAgICAgICAgIGhlaWdodDogJzJ2aCcsXHJcbiAgICAgICAgICAgICAgICdib3JkZXItcmFkaXVzJzogJzEycHgnLFxyXG4gICAgICAgICAgICAgICAgIH1cIj48L25neC1za2VsZXRvbi1sb2FkZXI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsb2NhdGlvbi1jb250YWluZXIgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiB3LTI1XCJcclxuICAgICAgICAgICAgICAgIFtjbGFzcy5lcnJvci1ib3JkZXJdPVwiZXJyb3JcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHctOTBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IG14LTFcIj48bWF0LWljb24gY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgZi0yMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiPmdwc19maXhlZDwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJudW1iZXJcIiBwbGFjZWhvbGRlcj1cIlBpbiBDb2RlXCIgWyhuZ01vZGVsKV09XCJwaW5jb2RlXCIgY2xhc3M9XCJ3LTkwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmJhY2tncm91bmRDb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmNvbG9yXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cImdldFRleHRDb2xvcihkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmNvbG9yKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInBpbmNvZGUudG9TdHJpbmcoKS5sZW5ndGggIT0gNiA/IHN1Ym1pdCA9IGZhbHNlIDogZXJyb3IgPSBmYWxzZTtcIiAvPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IChjbGljayk9XCJnZXREYXRhV2l0aFBpbmNvZGUoKVwiIGNsYXNzPVwiZi0xMyBjdXJzb3ItcG9pbnRlclwiPlN1Ym1pdDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmLTEyIHctMjUgdGV4dC1zdGFydCBtdC0yXCIgKm5nSWY9XCJlcnJvclwiIFtzdHlsZS5jb2xvcl09XCInI2RjMzU0NSdcIj5JbnZhbGlkIFBpbmNvZGVcclxuICAgICAgICAgICAgICAgIChFeDo1MDAwODgpPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJib3R0b20tY29udGFpbmVyIHJvdyBteC1hdXRvIG10LTNcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0YXRlLWNvbnRhaW5lciByb3cgZ2FwLTMganVzdGlmeS1jb250ZW50LWNlbnRlciBtYi01XCIgKm5nSWY9XCJzaG93U3RhdGUgJiYgIXBpbmNvZGVcIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHN0YXRlIG9mIHN0YXRlTGlzdDsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdGF0ZS1jYXJkIHAtMiBjb2wtc20tNlwiIChjbGljayk9XCJzZXRTdGF0ZURhdGEoc3RhdGUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdGF0ZT8uc3RhdGVJbWFnZTsgZWxzZSBub0ltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwidy0xMDAgaC03NVwiIFtzcmNdPVwic3RhdGU/LnN0YXRlSW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9JbWFnZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJ3LTEwMCBoLTc1XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL2Nkbi5jYXJhdGxhbmUuY29tL21lZGlhL3N0YXRpYy9pbWFnZXMvRmluZF9Jbl9TdG9yZS9jaXR5XzUuc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciBtdC0yIHN0YXRlLW5hbWVcIj57e3N0YXRlPy5zdGF0ZU5hbWV9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RvcmUtY291bnQgdGV4dC1jZW50ZXIgbWItMyBtdC0xXCI+e3tzdGF0ZT8uc3RvcmVDb3VudCArIFwiIHN0b3Jlc1wifX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctMTAwIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciBtYi0zXCJcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwic3VibWl0ICYmIHNob3dNZXNzYWdlID09IGZhbHNlICYmIHBpbmNvZGUgJiYgcGluY29kZS50b1N0cmluZygpLmxlbmd0aCA9PTYgJiYgIWxvYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIG5vdC1hdmFpbGFibGUtdGV4dFwiPldlIGFyZSBub3QgYXZhaWxhYmxlIGluIHRoaXMgbG9jYXRpb24gY3VycmVudGx5PC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibG9hZGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViLXRleHQgdy0xMDAgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmd4LXNrZWxldG9uLWxvYWRlciBbdGhlbWVdPVwie1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6ICczNSUnLFxyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAnNnZoJyxcclxuICAgICAgICAgICAgICAgJ2JvcmRlci1yYWRpdXMnOiAnMTJweCcsXHJcbiAgICAgICAgICAgICAgICAgfVwiPjwvbmd4LXNrZWxldG9uLWxvYWRlcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvdHRvbS1zdWItdGV4dCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgbWItMyB3LTEwMCBmLTIwIGZ3LWJvbGRcIj4ge3tcclxuICAgICAgICAgICAgICAgIHN1Ym1pdCAmJlxyXG4gICAgICAgICAgICAgICAgc2hvd01lc3NhZ2UgPT0gdHJ1ZSAmJiBwaW5jb2RlID8gXCJTaG93aW5nIFwiICsgdG90YWxDb3VudCArIFwiIFN0b3JlcyBpbiBcIiArIHBpbmNvZGUgOlxyXG4gICAgICAgICAgICAgICAgXCJTaG93aW5nIEFsbCBTdG9yZXNcIn19PC9kaXY+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbG9hZGVyO2Vsc2UgbG9hZGVyU2NyZWVuXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNCBwLTIgc3RvcmUgZC1mbGV4IGZsZXgtY29sdW1uIFwiIHN0eWxlPVwiYm9yZGVyLXJhZGl1czogMTJweDsgYm9yZGVyOiBub25lO1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBlbGUgb2Ygc3RvcmVzTGlzdDsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHBvc2l0aW9uLXJlbGF0aXZlIGQtZmxleCBmbGV4LWNvbHVtbiAgaC0xMDBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gQ29udGVudCAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJoLTEwMCAgcC0zIHBiLTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuIGFsaWduLWl0ZW1zLXN0YXJ0IG1iLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBtYi0yIGJiLTEgdy0xMDAgcGItMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGg2IGNsYXNzPVwiY2FyZC10aXRsZSBmdy1ib2xkIG1iLTEgdy0xMDBcIj57e2VsZT8uc3RvcmVOYW1lfX08L2g2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImYtMTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICDirZA0Lnt7ZWxlPy5zdGFyfX0gJm5ic3A7JiN4MjAyMjsmbmJzcDt7e2VsZT8ucmV2aWV3Q291bnR9fSZuYnNwO0dvb2dsZSBSZXZpZXdzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTIgZi0xMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cIm1iLTEgdGV4dC1kYXJrIGZ3LW1lZGl1bVwiPnt7ZWxlPy5hZGRyZXNzRGV0YWlscz8uYWRkcmVzc0xpbmV9fSw8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwibWItMSB0ZXh0LWRhcmsgZnctbWVkaXVtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2VsZT8uYWRkcmVzc0RldGFpbHM/LmNpdHl9fSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ZWxlPy5hZGRyZXNzRGV0YWlscz8uc3RhdGV9fSx7e2VsZT8uYWRkcmVzc0RldGFpbHM/LnBpbmNvZGV9fSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cIm1iLTAgZnctYm9sZFwiPlBob25lLVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiPnt7ZWxlPy5zdG9yZUNvbnRhY3REZXRhaWxzPy5tb2JpbGV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0yIGYtMTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJtYi0wICBmdy1ib2xkXCIgW3N0eWxlLmNvbG9yXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNUT1JFIEhPVVJTIC1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7Z2V0VGltZShlbGU/LnN0b3JlSG91cnMsJ09QRU4nKX19IHRvIHt7Z2V0VGltZShlbGU/LnN0b3JlSG91cnMsJ0NMT1NFJyl9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gRml4ZWQgYm90dG9tIGJ1dHRvbnMgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGdhcC0zIGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiAgcC0zIHctMTAwIGJyLTIwXCIgW3N0eWxlLmJhY2tncm91bmRDb2xvcl09XCJnZXRSR0JBKHN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3IsMTApXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJyLTEyIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDMwcHg7IGhlaWdodDogMzBweDtcIiAoY2xpY2spPVwib3BlbldoYXRzYXBwKGVsZT8uc3RvcmVDb250YWN0RGV0YWlscz8ubW9iaWxlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kQ29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB2aWV3Qm94PVwiMCAwIDQ0OCA1MTJcIiBzdHlsZT1cImhlaWdodDogMjBweDtjdXJzb3I6IHBvaW50ZXI7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBbYXR0ci5maWxsXT1cImdldFRleHRDb2xvcihkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0zODAuOSA5Ny4xYy00MS45LTQyLTk3LjctNjUuMS0xNTctNjUuMS0xMjIuNCAwLTIyMiA5OS42LTIyMiAyMjIgMCAzOS4xIDEwLjIgNzcuMyAyOS42IDExMUwwIDQ4MCAxMTcuNyA0NDkuMWMzMi40IDE3LjcgNjguOSAyNyAxMDYuMSAyN2wuMSAwYzEyMi4zIDAgMjI0LjEtOTkuNiAyMjQuMS0yMjIgMC01OS4zLTI1LjItMTE1LTY3LjEtMTU3em0tMTU3IDM0MS42Yy0zMy4yIDAtNjUuNy04LjktOTQtMjUuN2wtNi43LTQtNjkuOCAxOC4zIDE4LjYtNjguMS00LjQtN2MtMTguNS0yOS40LTI4LjItNjMuMy0yOC4yLTk4LjIgMC0xMDEuNyA4Mi44LTE4NC41IDE4NC42LTE4NC41IDQ5LjMgMCA5NS42IDE5LjIgMTMwLjQgNTQuMXM1Ni4yIDgxLjIgNTYuMSAxMzAuNWMwIDEwMS44LTg0LjkgMTg0LjYtMTg2LjYgMTg0LjZ6TTMyNS4xIDMwMC41Yy01LjUtMi44LTMyLjgtMTYuMi0zNy45LTE4LTUuMS0xLjktOC44LTIuOC0xMi41IDIuOHMtMTQuMyAxOC0xNy42IDIxLjhjLTMuMiAzLjctNi41IDQuMi0xMiAxLjQtMzIuNi0xNi4zLTU0LTI5LjEtNzUuNS02Ni01LjctOS44IDUuNy05LjEgMTYuMy0zMC4zIDEuOC0zLjcgLjktNi45LS41LTkuN3MtMTIuNS0zMC4xLTE3LjEtNDEuMmMtNC41LTEwLjgtOS4xLTkuMy0xMi41LTkuNS0zLjItLjItNi45LS4yLTEwLjYtLjJzLTkuNyAxLjQtMTQuOCA2LjljLTUuMSA1LjYtMTkuNCAxOS0xOS40IDQ2LjNzMTkuOSA1My43IDIyLjYgNTcuNGMyLjggMy43IDM5LjEgNTkuNyA5NC44IDgzLjggMzUuMiAxNS4yIDQ5IDE2LjUgNjYuNiAxMy45IDEwLjctMS42IDMyLjgtMTMuNCAzNy40LTI2LjRzNC42LTI0LjEgMy4yLTI2LjRjLTEuMy0yLjUtNS0zLjktMTAuNS02LjZ6XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biB3LTUwXCIgW2J1dHRvbkRhdGFdPVwiYnV0dG9uPy5jb250ZW50XCIgW2J1dHRvblN0eWxlXT1cImJ1dHRvbj8uc3R5bGVzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2ltcG9CdXR0b25EaXJlY3RpdmUgW2lkXT1cImRhdGE/LmlkKyhidXR0b24/LmlkIHx8ICcnKVwiIFtzZWN0aW9uSWRdPVwiZGF0YT8uaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtiYWNrZ3JvdW5kSW5mb109XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmRcIiBbYXBwQnV0dG9uRWRpdG9yXT1cImVkaXQgPz8gZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYnV0dG9uSWRdPVwiYnV0dG9uPy5pZCA/PyAnJ1wiIChjbGljayk9XCJ2aWV3U3RvcmUoZWxlLmlkKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2J1dHRvbj8uY29udGVudD8ubGFiZWx9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNsb2FkZXJTY3JlZW4+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGxvYWRlci1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBlbGUgb2YgWzEsMiwzLDQsNSw2XVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmd4LXNrZWxldG9uLWxvYWRlciBjbGFzcz1cImNvbC00IGxvYWRlci1jb2x1bW5cIiBbdGhlbWVdPVwie1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6ICcxMDAlJyxcclxuICAgICAgICAgICAgICAgIGhlaWdodDogJzQwdmgnLFxyXG4gICAgICAgICAgICAgICAnYm9yZGVyLXJhZGl1cyc6ICcxMnB4JyxcclxuICAgICAgICAgICAgICAgICB9XCI+PC9uZ3gtc2tlbGV0b24tbG9hZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgW25nQ2xhc3NdPVwieydob3Zlcl9lZmZlY3QnOiBlZGl0fVwiICpuZ0lmPVwic2hvd0VkaXRvcnNcIj5cclxuICAgICAgICA8c2ltcG8taG92ZXItZWxlbWVudHMgW2RhdGFdPVwiZGF0YVwiIFtpbmRleF09XCJpbmRleFwiIFtlZGl0T3B0aW9uc109XCJlZGl0XCI+PC9zaW1wby1ob3Zlci1lbGVtZW50cz5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgKm5nSWY9XCJzaG93RGVsZXRlXCIgW25nQ2xhc3NdPVwieydob3Zlcl9lZmZlY3QnOiBkZWxldGV9XCI+XHJcbiAgICAgICAgPHNpbXBvLWRlbGV0ZS1ob3Zlci1lbGVtZW50IFtkYXRhXT1cImRhdGFcIiBbaW5kZXhdPVwiaW5kZXhcIj48L3NpbXBvLWRlbGV0ZS1ob3Zlci1lbGVtZW50PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
|
166
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmUtbGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaW1wby11aS9zcmMvbGliL2Vjb21tZXJjZS9zZWN0aW9ucy9zdG9yZS1saXN0L3N0b3JlLWxpc3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2ltcG8tdWkvc3JjL2xpYi9lY29tbWVyY2Uvc2VjdGlvbnMvc3RvcmUtbGlzdC9zdG9yZS1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUF1QixNQUFNLGVBQWUsQ0FBQztBQUN0RSxPQUFPLFdBQVcsTUFBTSwrQkFBK0IsQ0FBQztBQUV4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDNUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDOUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFHL0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDOUQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFFbkYsT0FBTyxF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QkFBMEIsMkdBQzFCLGVBQWU7OzRGQUtOLGtCQUFrQjtrQkF0QjlCLFNBQVM7K0JBQ0Usa0JBQWtCLGNBQ2hCLElBQUksV0FDUCxDQUFDLFlBQVk7d0JBQ3BCLFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixPQUFPO3dCQUNQLG9CQUFvQjt3QkFDcEIsa0JBQWtCO3dCQUNsQixtQkFBbUI7d0JBQ25CLGNBQWM7d0JBQ2Qsd0JBQXdCO3dCQUN4QixtQkFBbUI7d0JBQ25CLHVCQUF1Qjt3QkFDdkIscUJBQXFCO3dCQUNyQixjQUFjO3dCQUNkLDBCQUEwQjt3QkFDMUIsZUFBZTtxQkFDaEI7cUdBTVEsSUFBSTtzQkFBWixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBOZ01vZHVsZSwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCBCYXNlU2VjdGlvbiBmcm9tICcuLi8uLi8uLi9zZWN0aW9ucy9CYXNlU2VjdGlvbic7XHJcbmltcG9ydCB7IFN0b3JlTGlzdE1vZGFsLCBTdG9yZUxpc3RTdHlsZU1vZGVsIH0gZnJvbSAnLi9zdG9yZS1saXN0Lm1vZGFsJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQW5pbWF0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL2FuaW1hdGlvbi1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBCYWNrZ3JvdW5kRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL2JhY2tncm91bmQtZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgU2ltcG9Db21wb25lbnRNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2luZGV4JztcclxuaW1wb3J0IHsgSG92ZXJEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvaG92ZXItZWxlbWVudC1kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBCdXR0b25EaXJlY3RpdmVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvYnV0dG9uLWRpcmVjdGl2ZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWF0SWNvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBDb250ZW50Rml0RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL2NvbnRlbnQtZml0LWRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IFJlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcmVzdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgTmd4U2tlbGV0b25Mb2FkZXJNb2R1bGUgfSBmcm9tICduZ3gtc2tlbGV0b24tbG9hZGVyJztcclxuaW1wb3J0IHsgQnV0dG9uRWRpdG9yRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlL2J1dHRvbi1lZGl0b3IuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgQnV0dG9uTW9kZWwsIExheU91dE1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vc3R5bGVzL3N0eWxlLm1vZGVsJztcclxuaW1wb3J0IHsgQ29sb3JEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvY29sb3IuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgU3BhY2luZ0hvcml6b250YWxEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmUvc3BhY2luZy1ob3Jpem9udGFsLmRpcmVjdGl2ZSc7XHJcbmltcG9ydCB7IENvcm5lckRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZS9jb3JuZXItZGlyZWN0aXZlJztcclxuXHJcblxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzaW1wby1zdG9yZS1saXN0JyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBNYXRJY29uLFxyXG4gICAgU2ltcG9Db21wb25lbnRNb2R1bGUsXHJcbiAgICBBbmltYXRpb25EaXJlY3RpdmUsXHJcbiAgICBCYWNrZ3JvdW5kRGlyZWN0aXZlLFxyXG4gICAgSG92ZXJEaXJlY3RpdmUsXHJcbiAgICBCdXR0b25EaXJlY3RpdmVEaXJlY3RpdmUsXHJcbiAgICBDb250ZW50Rml0RGlyZWN0aXZlLFxyXG4gICAgTmd4U2tlbGV0b25Mb2FkZXJNb2R1bGUsXHJcbiAgICBCdXR0b25FZGl0b3JEaXJlY3RpdmUsXHJcbiAgICBDb2xvckRpcmVjdGl2ZSxcclxuICAgIFNwYWNpbmdIb3Jpem9udGFsRGlyZWN0aXZlLFxyXG4gICAgQ29ybmVyRGlyZWN0aXZlLFxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3N0b3JlLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9zdG9yZS1saXN0LmNvbXBvbmVudC5jc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTdG9yZUxpc3RDb21wb25lbnQgZXh0ZW5kcyBCYXNlU2VjdGlvbiB7XHJcblxyXG4gIEBJbnB1dCgpIGRhdGE/OiBTdG9yZUxpc3RNb2RhbFxyXG4gIEBJbnB1dCgpIGVkaXQ/OiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBjdXN0b21DbGFzcz86IHN0cmluZztcclxuICBASW5wdXQoKSBkZWxldGU/OiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGluZGV4PzogbnVtYmVyO1xyXG4gIHBhZ2VObzogbnVtYmVyID0gMDtcclxuICBpc0xvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBjYXJkU2l6ZTogbnVtYmVyID0gNTA7XHJcblxyXG5cclxuICBzdHlsZXM/OiBTdG9yZUxpc3RTdHlsZU1vZGVsO1xyXG4gIGJ1dHRvbj86IEJ1dHRvbk1vZGVsXHJcblxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlc3RTZXJ2aWNlOiBSZXN0U2VydmljZSxcclxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXJcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuc3R5bGVzID0gdGhpcy5kYXRhPy5zdHlsZXM7XHJcbiAgICB0aGlzLmJ1dHRvbiA9IHRoaXMuZGF0YT8uYWN0aW9uPy5idXR0b25zWzBdO1xyXG4gICAgdGhpcy5waW5jb2RlID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3BpbmNvZGUnKSA/PyBcIlwiO1xyXG4gICAgaWYgKHRoaXMucGluY29kZT8udG9TdHJpbmcoKS5sZW5ndGggPT0gNikge1xyXG4gICAgICB0aGlzLmdldERhdGFXaXRoUGluY29kZSgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5nZXRTdG9yZURldGFpbHMoKTtcclxuICB9XHJcbiAgc3RvcmVzTGlzdDogYW55ID0gW107XHJcbiAgcGluY29kZTogYW55O1xyXG4gIHN0b3JlUGF5bG9hZDogYW55ID0ge1xyXG4gICAgYnVzaW5lc3NJZDogbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2J1c2luZXNzSWQnKSA/PyBcIjFmMDVmMDg1LWQ4NjUtNmJjNS04MmI0LTA1NzA2NjdkNmY1ZVwiLFxyXG4gICAgcGFnZU5vOiAwLFxyXG4gICAgcGFnZVNpemU6IDE1XHJcbiAgfVxyXG4gIGdldERhdGFXaXRoUGluY29kZSgpIHtcclxuICAgIGlmICh0aGlzLnBpbmNvZGUudG9TdHJpbmcoKS5sZW5ndGggIT0gNikge1xyXG4gICAgICB0aGlzLmVycm9yID0gdHJ1ZVxyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLnN0b3JlUGF5bG9hZC5waW5jb2RlID0gdGhpcy5waW5jb2RlO1xyXG4gICAgdGhpcy5nZXRTdG9yZURldGFpbHMoKTtcclxuICB9XHJcbiAgZ2V0IHN0eWxlc0xheW91dCgpIHtcclxuICAgIHJldHVybiB7IC4uLnRoaXMuc3R5bGVzPy5sYXlvdXQgfSBhcyBMYXlPdXRNb2RlbDtcclxuICB9XHJcbiAgc2hvd01lc3NhZ2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuICB0b3RhbENvdW50OiBudW1iZXIgPSAwO1xyXG4gIHN1Ym1pdDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGxvYWRlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGVycm9yOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc3RhdGVMaXN0OiBhbnlcclxuICBnZXRTdG9yZURldGFpbHMoKSB7XHJcbiAgICB0aGlzLnN1Ym1pdCA9IHRydWU7XHJcbiAgICB0aGlzLmxvYWRlciA9IHRydWU7XHJcbiAgICB0aGlzLnJlc3RTZXJ2aWNlLmdldEFsbFN0b3Jlcyh0aGlzLnN0b3JlUGF5bG9hZCkuc3Vic2NyaWJlKChyZXM6IGFueSkgPT4ge1xyXG4gICAgICB0aGlzLnN0b3Jlc0xpc3QgPSByZXM/LmRhdGE/LmRhdGE7XHJcbiAgICAgIHRoaXMuc3RvcmVzTGlzdC5mb3JFYWNoKChzdG9yZTogYW55KSA9PiB7XHJcbiAgICAgICAgc3RvcmUuc3RhciA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIDkpICsgMTtcclxuICAgICAgICBzdG9yZS5yZXZpZXdDb3VudCA9IE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqICg1MDAgLSAxMDAgKyAxKSkgKyAxMDA7XHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLnRvdGFsQ291bnQgPSByZXM/LmRhdGE/LmNvdW50O1xyXG4gICAgICB0aGlzLnN0YXRlTGlzdCA9IHJlcz8uZGF0YT8uc3RhdGVEZXRhaWxzO1xyXG4gICAgICBpZiAodGhpcy5waW5jb2RlPy50b1N0cmluZygpLmxlbmd0aCA9PSA2KVxyXG4gICAgICAgIHRoaXMuc2hvd01lc3NhZ2UgPSByZXM/LmRhdGE/LnN0b3JlUHJlc2VudDtcclxuICAgICAgdGhpcy5zdG9yZVBheWxvYWQucGFnZU5vKys7XHJcbiAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2VcclxuICAgICAgdGhpcy5sb2FkZXIgPSBmYWxzZTtcclxuICAgIH0sXHJcbiAgICAgIChlcnJvcikgPT4ge1xyXG4gICAgICAgIHRoaXMubG9hZGVyID0gZmFsc2VcclxuICAgICAgfSlcclxuICB9XHJcbiAgc2hvd1N0YXRlOiBib29sZWFuID0gdHJ1ZVxyXG4gIHNlbGVjdGVkU3RhdGU6IHN0cmluZyA9IFwiXCJcclxuICBzZXRTdGF0ZURhdGEoc3RhdGVEYXRhOiBhbnkpIHtcclxuICAgIHRoaXMuc3RvcmVzTGlzdCA9IHN0YXRlRGF0YT8uc3RvcmVMaXN0O1xyXG4gICAgdGhpcy5zaG93U3RhdGUgPSBmYWxzZTtcclxuICB9XHJcbiAgZ2V0VGV4dENvbG9yKGJnQ29sb3I6IGFueSkge1xyXG4gICAgaWYgKGJnQ29sb3IpIHtcclxuICAgICAgY29uc3QgdGhyZXNob2xkID0gMTMwOyAvLyBBZGp1c3QgdGhpcyB0aHJlc2hvbGQgYXMgbmVlZGVkXHJcbiAgICAgIGNvbnN0IHIgPSBwYXJzZUludChiZ0NvbG9yLnNsaWNlKDEsIDMpLCAxNik7XHJcbiAgICAgIGNvbnN0IGcgPSBwYXJzZUludChiZ0NvbG9yLnNsaWNlKDMsIDUpLCAxNik7XHJcbiAgICAgIGNvbnN0IGIgPSBwYXJzZUludChiZ0NvbG9yLnNsaWNlKDUsIDcpLCAxNik7XHJcbiAgICAgIGNvbnN0IGJyaWdodG5lc3MgPSAociAqIDI5OSArIGcgKiA1ODcgKyBiICogMTE0KSAvIDEwMDA7XHJcblxyXG4gICAgICByZXR1cm4gYnJpZ2h0bmVzcyA+IHRocmVzaG9sZCA/ICcjMDAwMDAwJyA6ICcjZmZmZmZmJztcclxuICAgIH1cclxuICAgIHJldHVybiBcIiNmZmZmZmY7XCJcclxuICB9XHJcbiAgb3BlbldoYXRzYXBwKHBob25lOiBzdHJpbmcpIHtcclxuICAgIGlmIChwaG9uZSkge1xyXG4gICAgICBjb25zdCB3aGF0c2FwcFVybCA9IGBodHRwczovL3dhLm1lLyR7cGhvbmV9YDtcclxuICAgICAgd2luZG93Lm9wZW4od2hhdHNhcHBVcmwsICdfYmxhbmsnKTtcclxuICAgIH1cclxuICB9XHJcbiAgdmlld1N0b3JlKHN0b3JlSWQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvc3RvcmUnXSwgeyBxdWVyeVBhcmFtczogeyBzdG9yZUlkOiBzdG9yZUlkIH0gfSk7XHJcbiAgfVxyXG4gIGdldFRpbWUoc3RvcmVIb3VyczogYW55LCB0eXBlOiBzdHJpbmcpIHtcclxuICAgIGlmICghc3RvcmVIb3VycyB8fCBzdG9yZUhvdXJzPy5sZW5ndGggPT0gMClcclxuICAgICAgcmV0dXJuO1xyXG4gICAgY29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpO1xyXG4gICAgY29uc3QgZGF5TmFtZSA9IHRvZGF5LnRvTG9jYWxlRGF0ZVN0cmluZygnZW4tVVMnLCB7IHdlZWtkYXk6ICdsb25nJyB9KS50b1VwcGVyQ2FzZSgpO1xyXG4gICAgZm9yIChsZXQgZWxlIG9mIE9iamVjdC5rZXlzKHN0b3JlSG91cnMpKSB7XHJcbiAgICAgIGlmIChlbGUgPT0gZGF5TmFtZSkge1xyXG4gICAgICAgIGlmICh0eXBlID09ICdPUEVOJykge1xyXG4gICAgICAgICAgcmV0dXJuIHN0b3JlSG91cnNbZWxlXS5vcGVuaW5nVGltZVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXR1cm4gc3RvcmVIb3Vyc1tlbGVdLmNsb3NpbmdUaW1lXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldFJHQkEoYmdDb2xvcjogYW55LCBvcGFjaXR5OiBudW1iZXIpOiBhbnkge1xyXG4gICAgY29uc3QgciA9IHBhcnNlSW50KGJnQ29sb3Iuc2xpY2UoMSwgMyksIDE2KTtcclxuICAgIGNvbnN0IGcgPSBwYXJzZUludChiZ0NvbG9yLnNsaWNlKDMsIDUpLCAxNik7XHJcbiAgICBjb25zdCBiID0gcGFyc2VJbnQoYmdDb2xvci5zbGljZSg1LCA3KSwgMTYpO1xyXG4gICAgcmV0dXJuIGByZ2JhKCR7cn0sICR7Z30sICR7Yn0sICR7b3BhY2l0eSAvIDEwMH0pYDtcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ0b3RhbC1jb250YWluZXIgcG9zaXRpb24tcmVsYXRpdmVcIiBzaW1wb0hvdmVyIChob3ZlcmluZyk9XCJzaG93RWRpdFRhYnMoJGV2ZW50KVwiIFtpZF09XCJkYXRhPy5pZFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1haW4tY29udGFpbmVyXCIgW3NpbXBvQW5pbWF0aW9uXT1cInN0eWxlcz8uYW5pbWF0aW9uXCIgW2lkXT1cImRhdGE/LmlkXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInRvcC1zZWN0aW9uIHctMTAwIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciB0ZXh0LWNlbnRlciBmbGV4LWNvbHVtblwiXHJcbiAgICAgICAgICAgIFtzaW1wb0JhY2tncm91bmRdPVwic3R5bGVzPy5iYWNrZ3JvdW5kXCIgW2lkXT1cImRhdGE/LmlkXCIgW3NpbXBvTGF5b3V0XT1cInN0eWxlc0xheW91dFwiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWxvYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0b3JlLWhlYWRlciBtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgc3VibWl0ICYmIHNob3dNZXNzYWdlID09IHRydWUgJiYgcGluY29kZSAmJiBwaW5jb2RlPy50b1N0cmluZygpPy5sZW5ndGggPT0gNiA/IFwiU3RvcmVzIGluIFwiICtcclxuICAgICAgICAgICAgICAgICAgICBwaW5jb2RlIDpcclxuICAgICAgICAgICAgICAgICAgICBcIkZpbmQgYSBTdG9yZSBOZWFyIFlvdVwifX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1Yi10ZXh0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgc3VibWl0ICYmIHNob3dNZXNzYWdlID09IHRydWUgJiYgcGluY29kZSAmJiBwaW5jb2RlPy50b1N0cmluZygpPy5sZW5ndGggPT0gNiA/ICdXZSBoYXZlICcgK1xyXG4gICAgICAgICAgICAgICAgICAgIHRvdGFsQ291bnRcclxuICAgICAgICAgICAgICAgICAgICArICcgc3RvcmVzIGluIHRoaXMgbG9jYWxpdHksIHNjcm9sbCBkb3duIHRvIHZpZXcgdGhlIHN0b3Jlc1xyXG4gICAgICAgICAgICAgICAgICAgIGFuZCBicm93c2UgdGhlIGRlc2lnbnMgYXZhaWxhYmxlLicgOiAnTG9jYXRlIGEgc3RvcmUgbmVhciB5b3Ug4oCUIG91ciBwcmVzZW5jZSBpcyBleHBhbmRpbmcgZXZlcnkgZGF5LFxyXG4gICAgICAgICAgICAgICAgICAgIGFuZFxyXG4gICAgICAgICAgICAgICAgICAgIHdlIGxvb2sgZm9yd2FyZCB0byBzZXJ2aW5nIHlvdS4nIH19XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsb2FkZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWItdGV4dFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZ3gtc2tlbGV0b24tbG9hZGVyIFt0aGVtZV09XCJ7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogJzM1JScsXHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6ICczdmgnLFxyXG4gICAgICAgICAgICAgICAnYm9yZGVyLXJhZGl1cyc6ICcxMnB4JyxcclxuICAgICAgICAgICAgICAgICB9XCI+PC9uZ3gtc2tlbGV0b24tbG9hZGVyPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViLXRleHQgdy03NVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZ3gtc2tlbGV0b24tbG9hZGVyIFt0aGVtZV09XCJ7XHJcbiAgICAgICAgICAgICAgICB3aWR0aDogJzM1JScsXHJcbiAgICAgICAgICAgICAgICBoZWlnaHQ6ICcydmgnLFxyXG4gICAgICAgICAgICAgICAnYm9yZGVyLXJhZGl1cyc6ICcxMnB4JyxcclxuICAgICAgICAgICAgICAgICB9XCI+PC9uZ3gtc2tlbGV0b24tbG9hZGVyPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibG9jYXRpb24tY29udGFpbmVyIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWJldHdlZW4gdy0yNVwiXHJcbiAgICAgICAgICAgICAgICBbY2xhc3MuZXJyb3ItYm9yZGVyXT1cImVycm9yXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciB3LTkwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBteC0xXCI+PG1hdC1pY29uIGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGYtMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmNvbG9yXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIj5ncHNfZml4ZWQ8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwibnVtYmVyXCIgcGxhY2Vob2xkZXI9XCJQaW4gQ29kZVwiIFsobmdNb2RlbCldPVwicGluY29kZVwiIGNsYXNzPVwidy05MFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kQ29sb3JdPVwiJyNmZmZmZmYnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwicGluY29kZS50b1N0cmluZygpLmxlbmd0aCAhPSA2ID8gc3VibWl0ID0gZmFsc2UgOiBlcnJvciA9IGZhbHNlO1wiIC8+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgKGNsaWNrKT1cImdldERhdGFXaXRoUGluY29kZSgpXCIgY2xhc3M9XCJmLTEzIGN1cnNvci1wb2ludGVyXCI+U3VibWl0PC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImYtMTIgdy0yNSB0ZXh0LXN0YXJ0IG10LTJcIiAqbmdJZj1cImVycm9yXCIgW3N0eWxlLmNvbG9yXT1cIicjZGMzNTQ1J1wiPkludmFsaWQgUGluY29kZVxyXG4gICAgICAgICAgICAgICAgKEV4OjUwMDA4OCk8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImJvdHRvbS1jb250YWluZXIgcm93ICBtdC0zIHctMTAwXCIgW3NwYWNpbmdIb3Jpem9udGFsXT1cInN0eWxlc0xheW91dFwiIFtzaW1wb0xheW91dF09XCJzdHlsZXNMYXlvdXRcIlxyXG4gICAgICAgICAgICBbaWRdPVwiZGF0YT8uaWRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0YXRlLWNvbnRhaW5lciByb3cgZ2FwLTMganVzdGlmeS1jb250ZW50LWNlbnRlciBtYi01XCIgKm5nSWY9XCJzaG93U3RhdGUgJiYgIXBpbmNvZGVcIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHN0YXRlIG9mIHN0YXRlTGlzdDsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdGF0ZS1jYXJkIHAtMiBjb2wtc20tNlwiIChjbGljayk9XCJzZXRTdGF0ZURhdGEoc3RhdGUpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdGF0ZT8uc3RhdGVJbWFnZTsgZWxzZSBub0ltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwidy0xMDAgaC03NVwiIFtzcmNdPVwic3RhdGU/LnN0YXRlSW1hZ2VcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm9JbWFnZT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJ3LTEwMCBoLTc1XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9XCJodHRwczovL2Nkbi5jYXJhdGxhbmUuY29tL21lZGlhL3N0YXRpYy9pbWFnZXMvRmluZF9Jbl9TdG9yZS9jaXR5XzUuc3ZnXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciBtdC0yIHN0YXRlLW5hbWVcIj57e3N0YXRlPy5zdGF0ZU5hbWV9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3RvcmUtY291bnQgdGV4dC1jZW50ZXIgbWItMyBtdC0xXCI+e3tzdGF0ZT8uc3RvcmVDb3VudCArIFwiIHN0b3Jlc1wifX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctMTAwIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciBtYi0zXCJcclxuICAgICAgICAgICAgICAgICpuZ0lmPVwic3VibWl0ICYmIHNob3dNZXNzYWdlID09IGZhbHNlICYmIHBpbmNvZGUgJiYgcGluY29kZS50b1N0cmluZygpLmxlbmd0aCA9PTYgJiYgIWxvYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIG5vdC1hdmFpbGFibGUtdGV4dFwiPldlIGFyZSBub3QgYXZhaWxhYmxlIGluIHRoaXMgbG9jYXRpb24gY3VycmVudGx5PC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibG9hZGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViLXRleHQgdy0xMDAgdGV4dC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmd4LXNrZWxldG9uLWxvYWRlciBbdGhlbWVdPVwie1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6ICczNSUnLFxyXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAnNnZoJyxcclxuICAgICAgICAgICAgICAgJ2JvcmRlci1yYWRpdXMnOiAnMTJweCcsXHJcbiAgICAgICAgICAgICAgICAgfVwiPjwvbmd4LXNrZWxldG9uLWxvYWRlcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvdHRvbS1zdWItdGV4dCBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXIgbWItMyB3LTEwMCBmLTIwIGZ3LWJvbGRcIj4ge3tcclxuICAgICAgICAgICAgICAgIHN1Ym1pdCAmJlxyXG4gICAgICAgICAgICAgICAgc2hvd01lc3NhZ2UgPT0gdHJ1ZSAmJiBwaW5jb2RlID8gXCJTaG93aW5nIFwiICsgdG90YWxDb3VudCArIFwiIFN0b3JlcyBpbiBcIiArIHBpbmNvZGUgOlxyXG4gICAgICAgICAgICAgICAgXCJTaG93aW5nIEFsbCBTdG9yZXNcIn19PC9kaXY+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbG9hZGVyO2Vsc2UgbG9hZGVyU2NyZWVuXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGQtZmxleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtNCBwLTIgc3RvcmUgZC1mbGV4IGZsZXgtY29sdW1uXCIgW2lkXT1cImRhdGE/LmlkXCIgW3NpbXBvQ29ybmVyXT1cInN0eWxlcz8uY29ybmVyc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBlbGUgb2Ygc3RvcmVzTGlzdDsgbGV0IGkgPSBpbmRleFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IHBvc2l0aW9uLXJlbGF0aXZlIGQtZmxleCBmbGV4LWNvbHVtbiAgaC0xMDBcIiBbc2ltcG9Db3JuZXJdPVwic3R5bGVzPy5jb3JuZXJzXCIgW2lkXT1cImRhdGE/LmlkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIENvbnRlbnQgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaC0xMDAgIHAtMyBwYi0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBhbGlnbi1pdGVtcy1zdGFydCBtYi0yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggZmxleC1jb2x1bW4gbWItMiBiYi0xIHctMTAwIHBiLTJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoNiBjbGFzcz1cImNhcmQtdGl0bGUgZnctYm9sZCBtYi0xIHctMTAwXCI+e3tlbGU/LnN0b3JlTmFtZX19PC9oNj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmLTExXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg4q2QNC57e2VsZT8uc3Rhcn19ICZuYnNwOyYjeDIwMjI7Jm5ic3A7e3tlbGU/LnJldmlld0NvdW50fX0mbmJzcDtHb29nbGVcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXZpZXdzXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTIgZi0xMVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cIm1iLTEgdGV4dC1kYXJrIGZ3LW1lZGl1bVwiPnt7ZWxlPy5hZGRyZXNzRGV0YWlscz8uYWRkcmVzc0xpbmV9fSw8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwibWItMSB0ZXh0LWRhcmsgZnctbWVkaXVtXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2VsZT8uYWRkcmVzc0RldGFpbHM/LmNpdHl9fSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ZWxlPy5hZGRyZXNzRGV0YWlscz8uc3RhdGV9fSx7e2VsZT8uYWRkcmVzc0RldGFpbHM/LnBpbmNvZGV9fSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cIm1iLTAgZnctYm9sZFwiPlBob25lLVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUuY29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiPnt7ZWxlPy5zdG9yZUNvbnRhY3REZXRhaWxzPy5tb2JpbGV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0yIGYtMTFcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJtYi0wICBmdy1ib2xkXCIgW3N0eWxlLmNvbG9yXT1cImRhdGE/LnN0eWxlcz8uYmFja2dyb3VuZD8uYWNjZW50Q29sb3JcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNUT1JFIEhPVVJTIC1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7Z2V0VGltZShlbGU/LnN0b3JlSG91cnMsJ09QRU4nKX19IHRvIHt7Z2V0VGltZShlbGU/LnN0b3JlSG91cnMsJ0NMT1NFJyl9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gRml4ZWQgYm90dG9tIGJ1dHRvbnMgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGdhcC0zIGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiAgcC0zIHctMTAwIGJyLTIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUuYmFja2dyb3VuZENvbG9yXT1cImdldFJHQkEoc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvciwxMClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzaW1wb0Nvcm5lcl09XCJzdHlsZXM/LmNvcm5lcnNcIiBbaWRdPVwiZGF0YT8uaWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnItMTIgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDogMzBweDsgaGVpZ2h0OiAzMHB4O1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvcGVuV2hhdHNhcHAoZWxlPy5zdG9yZUNvbnRhY3REZXRhaWxzPy5tb2JpbGUpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmJhY2tncm91bmRDb2xvcl09XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHZpZXdCb3g9XCIwIDAgNDQ4IDUxMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cImhlaWdodDogMjBweDtjdXJzb3I6IHBvaW50ZXI7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBbYXR0ci5maWxsXT1cImdldFRleHRDb2xvcihkYXRhPy5zdHlsZXM/LmJhY2tncm91bmQ/LmFjY2VudENvbG9yKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0zODAuOSA5Ny4xYy00MS45LTQyLTk3LjctNjUuMS0xNTctNjUuMS0xMjIuNCAwLTIyMiA5OS42LTIyMiAyMjIgMCAzOS4xIDEwLjIgNzcuMyAyOS42IDExMUwwIDQ4MCAxMTcuNyA0NDkuMWMzMi40IDE3LjcgNjguOSAyNyAxMDYuMSAyN2wuMSAwYzEyMi4zIDAgMjI0LjEtOTkuNiAyMjQuMS0yMjIgMC01OS4zLTI1LjItMTE1LTY3LjEtMTU3em0tMTU3IDM0MS42Yy0zMy4yIDAtNjUuNy04LjktOTQtMjUuN2wtNi43LTQtNjkuOCAxOC4zIDE4LjYtNjguMS00LjQtN2MtMTguNS0yOS40LTI4LjItNjMuMy0yOC4yLTk4LjIgMC0xMDEuNyA4Mi44LTE4NC41IDE4NC42LTE4NC41IDQ5LjMgMCA5NS42IDE5LjIgMTMwLjQgNTQuMXM1Ni4yIDgxLjIgNTYuMSAxMzAuNWMwIDEwMS44LTg0LjkgMTg0LjYtMTg2LjYgMTg0LjZ6TTMyNS4xIDMwMC41Yy01LjUtMi44LTMyLjgtMTYuMi0zNy45LTE4LTUuMS0xLjktOC44LTIuOC0xMi41IDIuOHMtMTQuMyAxOC0xNy42IDIxLjhjLTMuMiAzLjctNi41IDQuMi0xMiAxLjQtMzIuNi0xNi4zLTU0LTI5LjEtNzUuNS02Ni01LjctOS44IDUuNy05LjEgMTYuMy0zMC4zIDEuOC0zLjcgLjktNi45LS41LTkuN3MtMTIuNS0zMC4xLTE3LjEtNDEuMmMtNC41LTEwLjgtOS4xLTkuMy0xMi41LTkuNS0zLjItLjItNi45LS4yLTEwLjYtLjJzLTkuNyAxLjQtMTQuOCA2LjljLTUuMSA1LjYtMTkuNCAxOS0xOS40IDQ2LjNzMTkuOSA1My43IDIyLjYgNTcuNGMyLjggMy43IDM5LjEgNTkuNyA5NC44IDgzLjggMzUuMiAxNS4yIDQ5IDE2LjUgNjYuNiAxMy45IDEwLjctMS42IDMyLjgtMTMuNCAzNy40LTI2LjRzNC42LTI0LjEgMy4yLTI2LjRjLTEuMy0yLjUtNS0zLjktMTAuNS02LjZ6XCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biB3LTUwXCIgW2J1dHRvbkRhdGFdPVwiYnV0dG9uPy5jb250ZW50XCIgW2J1dHRvblN0eWxlXT1cImJ1dHRvbj8uc3R5bGVzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2ltcG9CdXR0b25EaXJlY3RpdmUgW2lkXT1cImRhdGE/LmlkKyhidXR0b24/LmlkIHx8ICcnKVwiIFtzZWN0aW9uSWRdPVwiZGF0YT8uaWRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29sb3JdPVwiZGF0YT8uc3R5bGVzPy5iYWNrZ3JvdW5kPy5hY2NlbnRDb2xvclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtiYWNrZ3JvdW5kSW5mb109XCJkYXRhPy5zdHlsZXM/LmJhY2tncm91bmRcIiBbYXBwQnV0dG9uRWRpdG9yXT1cImVkaXQgPz8gZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYnV0dG9uSWRdPVwiYnV0dG9uPy5pZCA/PyAnJ1wiIChjbGljayk9XCJ2aWV3U3RvcmUoZWxlLmlkKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2J1dHRvbj8uY29udGVudD8ubGFiZWx9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNsb2FkZXJTY3JlZW4+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGxvYWRlci1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBlbGUgb2YgWzEsMiwzLDQsNSw2XVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bmd4LXNrZWxldG9uLWxvYWRlciBjbGFzcz1cImNvbC00IGxvYWRlci1jb2x1bW5cIiBbdGhlbWVdPVwie1xyXG4gICAgICAgICAgICAgICAgd2lkdGg6ICcxMDAlJyxcclxuICAgICAgICAgICAgICAgIGhlaWdodDogJzQwdmgnLFxyXG4gICAgICAgICAgICAgICAnYm9yZGVyLXJhZGl1cyc6ICcxMnB4JyxcclxuICAgICAgICAgICAgICAgICB9XCI+PC9uZ3gtc2tlbGV0b24tbG9hZGVyPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgW25nQ2xhc3NdPVwieydob3Zlcl9lZmZlY3QnOiBlZGl0fVwiICpuZ0lmPVwic2hvd0VkaXRvcnNcIj5cclxuICAgICAgICA8c2ltcG8taG92ZXItZWxlbWVudHMgW2RhdGFdPVwiZGF0YVwiIFtpbmRleF09XCJpbmRleFwiIFtlZGl0T3B0aW9uc109XCJlZGl0XCI+PC9zaW1wby1ob3Zlci1lbGVtZW50cz5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgKm5nSWY9XCJzaG93RGVsZXRlXCIgW25nQ2xhc3NdPVwieydob3Zlcl9lZmZlY3QnOiBkZWxldGV9XCI+XHJcbiAgICAgICAgPHNpbXBvLWRlbGV0ZS1ob3Zlci1lbGVtZW50IFtkYXRhXT1cImRhdGFcIiBbaW5kZXhdPVwiaW5kZXhcIj48L3NpbXBvLWRlbGV0ZS1ob3Zlci1lbGVtZW50PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
|