@elxjs/ui 0.0.176 → 0.0.177
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.
|
@@ -14,6 +14,7 @@ export class EluxCarouselComponent {
|
|
|
14
14
|
this.nextClickEventEmitter = new EventEmitter();
|
|
15
15
|
this.dotClickEventEmitter = new EventEmitter();
|
|
16
16
|
this.currentIndex = 0;
|
|
17
|
+
this.currentStepIndex = 0; // Separate index for tracking current step/page
|
|
17
18
|
this.offset = 0;
|
|
18
19
|
this.touchStartX = 0;
|
|
19
20
|
this.touchEndX = 0;
|
|
@@ -66,42 +67,47 @@ export class EluxCarouselComponent {
|
|
|
66
67
|
this.nextSlide();
|
|
67
68
|
}
|
|
68
69
|
}
|
|
69
|
-
|
|
70
|
+
getStepIndexCount() {
|
|
70
71
|
const totalSteps = Math.ceil(this.items.length / this.itemsPerSlide);
|
|
71
72
|
return Array.from({ length: totalSteps }, (_, i) => i);
|
|
72
73
|
}
|
|
73
74
|
getCurrentStepIndex() {
|
|
74
|
-
return
|
|
75
|
+
return this.currentStepIndex;
|
|
75
76
|
}
|
|
76
77
|
goToFirstSlide() {
|
|
77
78
|
this.currentIndex = 0;
|
|
79
|
+
this.currentStepIndex = 0;
|
|
78
80
|
this.updateOffset();
|
|
79
81
|
this.scrollActiveDotIntoView(0);
|
|
80
82
|
}
|
|
81
83
|
goToSlide(index) {
|
|
82
|
-
this.
|
|
84
|
+
this.currentStepIndex = index;
|
|
85
|
+
this.currentIndex = Math.min(index * this.itemsPerSlide, this.items.length - this.itemsPerSlide);
|
|
83
86
|
this.updateOffset();
|
|
84
87
|
this.scrollActiveDotIntoView(index);
|
|
85
88
|
this.dotClickEventEmitter.emit();
|
|
86
89
|
}
|
|
87
90
|
prevSlide() {
|
|
88
|
-
if (this.
|
|
89
|
-
this.
|
|
91
|
+
if (this.currentStepIndex > 0) {
|
|
92
|
+
this.currentStepIndex--;
|
|
93
|
+
this.currentIndex = this.currentStepIndex * this.itemsPerSlide;
|
|
90
94
|
this.updateOffset();
|
|
91
|
-
this.scrollActiveDotIntoView(this.
|
|
95
|
+
this.scrollActiveDotIntoView(this.currentStepIndex);
|
|
92
96
|
this.previousClickEventEmitter.emit();
|
|
93
97
|
}
|
|
94
98
|
}
|
|
95
99
|
nextSlide() {
|
|
96
|
-
const
|
|
97
|
-
if (this.
|
|
100
|
+
const totalSteps = Math.ceil(this.items.length / this.itemsPerSlide);
|
|
101
|
+
if (this.currentStepIndex >= totalSteps - 1) {
|
|
102
|
+
this.currentStepIndex = 0;
|
|
98
103
|
this.currentIndex = 0;
|
|
99
104
|
}
|
|
100
105
|
else {
|
|
101
|
-
this.
|
|
106
|
+
this.currentStepIndex++;
|
|
107
|
+
this.currentIndex = Math.min(this.currentStepIndex * this.itemsPerSlide, this.items.length - this.itemsPerSlide);
|
|
102
108
|
}
|
|
103
109
|
this.updateOffset();
|
|
104
|
-
this.scrollActiveDotIntoView(this.
|
|
110
|
+
this.scrollActiveDotIntoView(this.currentStepIndex);
|
|
105
111
|
this.nextClickEventEmitter.emit();
|
|
106
112
|
}
|
|
107
113
|
updateOffset() {
|
|
@@ -126,11 +132,11 @@ export class EluxCarouselComponent {
|
|
|
126
132
|
});
|
|
127
133
|
}
|
|
128
134
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EluxCarouselComponent, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
129
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: EluxCarouselComponent, isStandalone: true, selector: "lib-elux-carousel", inputs: { itemsPerSlide: "itemsPerSlide", removeArrows: "removeArrows", removeDots: "removeDots", autoPlayInterval: "autoPlayInterval" }, outputs: { previousClickEventEmitter: "previousClickEventEmitter", nextClickEventEmitter: "nextClickEventEmitter", dotClickEventEmitter: "dotClickEventEmitter" }, queries: [{ propertyName: "items", predicate: ["carouselItem"], read: ElementRef }], viewQueries: [{ propertyName: "dotsContainer", first: true, predicate: ["dotsContainer"], descendants: true }], ngImport: i0, template: "<div class=\"c-carousel-container\">\n <div class=\"c-carousel-slides\" [style.transform]=\"'translateX(' + offset + '%)'\" (touchstart)=\"onTouchStart($event)\" (touchmove)=\"onTouchMove($event)\" (touchend)=\"onTouchEnd()\">\n <ng-content></ng-content>\n </div>\n\n <div class=\"c-carousel-footer\">\n <button [hidden]=\"removeArrows\" class=\"c-carousel-nav prev\" title=\"Slide anterior\" aria-label=\"Slide anterior\" (click)=\"prevSlide()\">\n <lib-elux-icon [icon]=\"'Chevron_Left.svg'\" [size]=\"'16'\" [sizeType]=\"'px'\" [color]=\"'#020F2E'\"></lib-elux-icon>\n </button>\n\n <div [hidden]=\"removeDots\" class=\"c-carousel-dots\" #dotsContainer>\n <span\n role=\"button\"\n class=\"dot\"\n *ngFor=\"let index of
|
|
135
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: EluxCarouselComponent, isStandalone: true, selector: "lib-elux-carousel", inputs: { itemsPerSlide: "itemsPerSlide", removeArrows: "removeArrows", removeDots: "removeDots", autoPlayInterval: "autoPlayInterval" }, outputs: { previousClickEventEmitter: "previousClickEventEmitter", nextClickEventEmitter: "nextClickEventEmitter", dotClickEventEmitter: "dotClickEventEmitter" }, queries: [{ propertyName: "items", predicate: ["carouselItem"], read: ElementRef }], viewQueries: [{ propertyName: "dotsContainer", first: true, predicate: ["dotsContainer"], descendants: true }], ngImport: i0, template: "<div class=\"c-carousel-container\">\n <div class=\"c-carousel-slides\" [style.transform]=\"'translateX(' + offset + '%)'\" (touchstart)=\"onTouchStart($event)\" (touchmove)=\"onTouchMove($event)\" (touchend)=\"onTouchEnd()\">\n <ng-content></ng-content>\n </div>\n\n <div class=\"c-carousel-footer\">\n <button [hidden]=\"removeArrows\" class=\"c-carousel-nav prev\" title=\"Slide anterior\" aria-label=\"Slide anterior\" (click)=\"prevSlide()\">\n <lib-elux-icon [icon]=\"'Chevron_Left.svg'\" [size]=\"'16'\" [sizeType]=\"'px'\" [color]=\"'#020F2E'\"></lib-elux-icon>\n </button>\n\n <div [hidden]=\"removeDots\" class=\"c-carousel-dots\" #dotsContainer>\n <span\n role=\"button\"\n class=\"dot\"\n *ngFor=\"let index of getStepIndexCount()\"\n (click)=\"goToSlide(index)\"\n (keyup)=\"goToSlide(index)\"\n [class.active]=\"index === getCurrentStepIndex()\"\n [attr.aria-disabled]=\"true\"\n [attr.aria-label]=\"'pagina' + (index + 1)\"\n >\n </span>\n </div>\n\n <button [hidden]=\"removeArrows\" class=\"c-carousel-nav next\" title=\"Pr\u00F3ximo slide\" aria-label=\"Pr\u00F3ximo slide\" (click)=\"nextSlide()\">\n <lib-elux-icon [icon]=\"'Chevron_Right.svg'\" [size]=\"'16'\" [sizeType]=\"'px'\" [color]=\"'#020F2E'\"></lib-elux-icon>\n </button>\n </div>\n</div>\n", styles: [".display{font-family:Electrolux Sans;font-size:48px;font-weight:700;line-height:56px}.heading-1{font-family:Electrolux Sans;font-size:34px;font-weight:700;line-height:40px}.heading-2{font-family:Electrolux Sans;font-size:28px;font-weight:600;line-height:32px}.heading-3{font-family:Electrolux Sans;font-size:20px;font-weight:600;line-height:24px}.subtitle-1{font-family:Electrolux Sans;font-size:16px;font-weight:600;line-height:20px}.body{font-family:Electrolux Sans;font-size:16px;font-weight:400;line-height:21px}.caption{font-family:Electrolux Sans;font-size:14px;font-weight:400;line-height:normal}.links{font-family:Electrolux Sans;font-size:16px;font-weight:600;line-height:normal;text-decoration-line:underline}@media screen and (max-width: 768px){.display{font-family:Electrolux Sans;font-size:40px;font-weight:700;line-height:46px}.heading-1{font-family:Electrolux Sans;font-size:28px;font-weight:600;line-height:32px}.heading-2{font-family:Electrolux Sans;font-size:24px;font-weight:600;line-height:28px}.heading-3{font-family:Electrolux Sans;font-size:20px;font-weight:600;line-height:24px}.subtitle-1{font-family:Electrolux Sans;font-size:16px;font-weight:600;line-height:20px}.body{font-family:Electrolux Sans;font-size:16px;font-weight:400;line-height:21px}.caption{font-family:Electrolux Sans;font-size:14px;font-weight:400;line-height:normal}.links{font-family:Electrolux Sans;font-size:16px;font-weight:600;line-height:normal;text-decoration-line:underline}}.c-carousel-container{position:relative;width:100%}.c-carousel-slides{display:flex;transition:transform .4s ease-in-out;touch-action:pan-y}.c-carousel-item{display:flex;flex-direction:column;text-align:center;align-items:center;justify-content:center;gap:16px;height:150px;margin:6px;border:1px solid #dee7ea;border-radius:2px;cursor:pointer}.c-carousel-item .c-span{font-weight:400;font-size:18px;color:#011e41}.c-carousel-footer{width:min-content;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:16px 0 24px}.c-carousel-footer .c-carousel-nav{background:none;border:none;cursor:pointer;padding:8px;border-radius:50px;background-color:#dfe7ea;transition:all ease-in-out .2s;z-index:2}.c-carousel-footer .c-carousel-nav:hover{transform:scale(1.1)}.c-carousel-footer .c-carousel-nav ::ng-deep span{display:block}.c-carousel-footer .c-carousel-dots{padding:6px;display:flex;text-align:center;border:1px solid #020f2e;border-radius:16px;margin:0 16px;max-width:120px;overflow:hidden;position:relative}@media (max-width: 768px){.c-carousel-footer .c-carousel-dots{margin:0 12px;max-width:100px}}.c-carousel-footer .dot{height:10px;width:10px;margin:0 5px;background-color:#dfe7ea;border-radius:50%;display:inline-block;cursor:pointer;transition:all ease-in-out .2s;flex-shrink:0}.c-carousel-footer .dot:hover,.c-carousel-footer .dot.active{background-color:#011e41}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: EluxIcon, selector: "lib-elux-icon", inputs: ["color", "useSubscription", "icon", "description", "size", "height", "width", "sizeType"] }] }); }
|
|
130
136
|
}
|
|
131
137
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EluxCarouselComponent, decorators: [{
|
|
132
138
|
type: Component,
|
|
133
|
-
args: [{ standalone: true, selector: 'lib-elux-carousel', imports: [CommonModule, EluxIcon], template: "<div class=\"c-carousel-container\">\n <div class=\"c-carousel-slides\" [style.transform]=\"'translateX(' + offset + '%)'\" (touchstart)=\"onTouchStart($event)\" (touchmove)=\"onTouchMove($event)\" (touchend)=\"onTouchEnd()\">\n <ng-content></ng-content>\n </div>\n\n <div class=\"c-carousel-footer\">\n <button [hidden]=\"removeArrows\" class=\"c-carousel-nav prev\" title=\"Slide anterior\" aria-label=\"Slide anterior\" (click)=\"prevSlide()\">\n <lib-elux-icon [icon]=\"'Chevron_Left.svg'\" [size]=\"'16'\" [sizeType]=\"'px'\" [color]=\"'#020F2E'\"></lib-elux-icon>\n </button>\n\n <div [hidden]=\"removeDots\" class=\"c-carousel-dots\" #dotsContainer>\n <span\n role=\"button\"\n class=\"dot\"\n *ngFor=\"let index of
|
|
139
|
+
args: [{ standalone: true, selector: 'lib-elux-carousel', imports: [CommonModule, EluxIcon], template: "<div class=\"c-carousel-container\">\n <div class=\"c-carousel-slides\" [style.transform]=\"'translateX(' + offset + '%)'\" (touchstart)=\"onTouchStart($event)\" (touchmove)=\"onTouchMove($event)\" (touchend)=\"onTouchEnd()\">\n <ng-content></ng-content>\n </div>\n\n <div class=\"c-carousel-footer\">\n <button [hidden]=\"removeArrows\" class=\"c-carousel-nav prev\" title=\"Slide anterior\" aria-label=\"Slide anterior\" (click)=\"prevSlide()\">\n <lib-elux-icon [icon]=\"'Chevron_Left.svg'\" [size]=\"'16'\" [sizeType]=\"'px'\" [color]=\"'#020F2E'\"></lib-elux-icon>\n </button>\n\n <div [hidden]=\"removeDots\" class=\"c-carousel-dots\" #dotsContainer>\n <span\n role=\"button\"\n class=\"dot\"\n *ngFor=\"let index of getStepIndexCount()\"\n (click)=\"goToSlide(index)\"\n (keyup)=\"goToSlide(index)\"\n [class.active]=\"index === getCurrentStepIndex()\"\n [attr.aria-disabled]=\"true\"\n [attr.aria-label]=\"'pagina' + (index + 1)\"\n >\n </span>\n </div>\n\n <button [hidden]=\"removeArrows\" class=\"c-carousel-nav next\" title=\"Pr\u00F3ximo slide\" aria-label=\"Pr\u00F3ximo slide\" (click)=\"nextSlide()\">\n <lib-elux-icon [icon]=\"'Chevron_Right.svg'\" [size]=\"'16'\" [sizeType]=\"'px'\" [color]=\"'#020F2E'\"></lib-elux-icon>\n </button>\n </div>\n</div>\n", styles: [".display{font-family:Electrolux Sans;font-size:48px;font-weight:700;line-height:56px}.heading-1{font-family:Electrolux Sans;font-size:34px;font-weight:700;line-height:40px}.heading-2{font-family:Electrolux Sans;font-size:28px;font-weight:600;line-height:32px}.heading-3{font-family:Electrolux Sans;font-size:20px;font-weight:600;line-height:24px}.subtitle-1{font-family:Electrolux Sans;font-size:16px;font-weight:600;line-height:20px}.body{font-family:Electrolux Sans;font-size:16px;font-weight:400;line-height:21px}.caption{font-family:Electrolux Sans;font-size:14px;font-weight:400;line-height:normal}.links{font-family:Electrolux Sans;font-size:16px;font-weight:600;line-height:normal;text-decoration-line:underline}@media screen and (max-width: 768px){.display{font-family:Electrolux Sans;font-size:40px;font-weight:700;line-height:46px}.heading-1{font-family:Electrolux Sans;font-size:28px;font-weight:600;line-height:32px}.heading-2{font-family:Electrolux Sans;font-size:24px;font-weight:600;line-height:28px}.heading-3{font-family:Electrolux Sans;font-size:20px;font-weight:600;line-height:24px}.subtitle-1{font-family:Electrolux Sans;font-size:16px;font-weight:600;line-height:20px}.body{font-family:Electrolux Sans;font-size:16px;font-weight:400;line-height:21px}.caption{font-family:Electrolux Sans;font-size:14px;font-weight:400;line-height:normal}.links{font-family:Electrolux Sans;font-size:16px;font-weight:600;line-height:normal;text-decoration-line:underline}}.c-carousel-container{position:relative;width:100%}.c-carousel-slides{display:flex;transition:transform .4s ease-in-out;touch-action:pan-y}.c-carousel-item{display:flex;flex-direction:column;text-align:center;align-items:center;justify-content:center;gap:16px;height:150px;margin:6px;border:1px solid #dee7ea;border-radius:2px;cursor:pointer}.c-carousel-item .c-span{font-weight:400;font-size:18px;color:#011e41}.c-carousel-footer{width:min-content;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:16px 0 24px}.c-carousel-footer .c-carousel-nav{background:none;border:none;cursor:pointer;padding:8px;border-radius:50px;background-color:#dfe7ea;transition:all ease-in-out .2s;z-index:2}.c-carousel-footer .c-carousel-nav:hover{transform:scale(1.1)}.c-carousel-footer .c-carousel-nav ::ng-deep span{display:block}.c-carousel-footer .c-carousel-dots{padding:6px;display:flex;text-align:center;border:1px solid #020f2e;border-radius:16px;margin:0 16px;max-width:120px;overflow:hidden;position:relative}@media (max-width: 768px){.c-carousel-footer .c-carousel-dots{margin:0 12px;max-width:100px}}.c-carousel-footer .dot{height:10px;width:10px;margin:0 5px;background-color:#dfe7ea;border-radius:50%;display:inline-block;cursor:pointer;transition:all ease-in-out .2s;flex-shrink:0}.c-carousel-footer .dot:hover,.c-carousel-footer .dot.active{background-color:#011e41}\n"] }]
|
|
134
140
|
}], ctorParameters: () => [{ type: i0.Renderer2 }], propDecorators: { items: [{
|
|
135
141
|
type: ContentChildren,
|
|
136
142
|
args: ['carouselItem', { read: ElementRef }]
|
|
@@ -152,4 +158,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
152
158
|
}], dotClickEventEmitter: [{
|
|
153
159
|
type: Output
|
|
154
160
|
}] } });
|
|
155
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vdWkvbGlicmFyeS9zcmMvbGliL2NvbXBvbmVudHMvY2Fyb3VzZWwvY2Fyb3VzZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vdWkvbGlicmFyeS9zcmMvbGliL2NvbXBvbmVudHMvY2Fyb3VzZWwvY2Fyb3VzZWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBb0IsU0FBUyxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQXVDLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqTCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sU0FBUyxDQUFDOzs7QUFjbkMsTUFBTSxPQUFPLHFCQUFxQjtJQW9CaEMsWUFBb0IsUUFBbUI7UUFBbkIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQWhCOUIsa0JBQWEsR0FBVyxDQUFDLENBQUM7UUFDMUIsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFDOUIsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUM1QixxQkFBZ0IsR0FBa0IsSUFBSSxDQUFDO1FBRXRDLDhCQUF5QixHQUFHLElBQUksWUFBWSxFQUFTLENBQUM7UUFDdEQsMEJBQXFCLEdBQUcsSUFBSSxZQUFZLEVBQVMsQ0FBQztRQUNsRCx5QkFBb0IsR0FBRyxJQUFJLFlBQVksRUFBUyxDQUFDO1FBRTNELGlCQUFZLEdBQUcsQ0FBQyxDQUFDO1FBQ2pCLFdBQU0sR0FBRyxDQUFDLENBQUM7UUFFSCxnQkFBVyxHQUFHLENBQUMsQ0FBQztRQUNoQixjQUFTLEdBQUcsQ0FBQyxDQUFDO0lBR29CLENBQUM7SUFFM0Msa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxhQUFhLEVBQUUs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LDZJQ2pCckQsZzJDQTZCQSxpM0ZEZlksWUFBWSw0SkFBRSxRQUFROzs0RkFFckIscUJBQXFCO2tCQVBqQyxTQUFTO2lDQUNJLElBQUksWUFDTixtQkFBbUIsV0FHcEIsQ0FBQyxZQUFZLEVBQUUsUUFBUSxDQUFDOzhFQUdzQixLQUFLO3NCQUEzRCxlQUFlO3VCQUFDLGNBQWMsRUFBRSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBQ3pCLGFBQWE7c0JBQXhDLFNBQVM7dUJBQUMsZUFBZTtnQkFFakIsYUFBYTtzQkFBckIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUVJLHlCQUF5QjtzQkFBbEMsTUFBTTtnQkFDRyxxQkFBcUI7c0JBQTlCLE1BQU07Z0JBQ0csb0JBQW9CO3NCQUE3QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEFmdGVyQ29udGVudEluaXQsIENvbXBvbmVudCwgQ29udGVudENoaWxkcmVuLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE91dHB1dCwgUXVlcnlMaXN0LCBSZW5kZXJlcjIsIFNpbXBsZUNoYW5nZXMsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRWx1eEljb24gfSBmcm9tICcuLi9pY29uJztcblxuZXhwb3J0IHR5cGUgUHJvZHVjdEl0ZW0gPSB7XG4gIG5hbWU6IHN0cmluZztcbiAgaW1hZ2U6IHN0cmluZztcbn07XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ2xpYi1lbHV4LWNhcm91c2VsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Nhcm91c2VsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2Fyb3VzZWwuY29tcG9uZW50LnNjc3MnXSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRWx1eEljb25dLFxufSlcbmV4cG9ydCBjbGFzcyBFbHV4Q2Fyb3VzZWxDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0IHtcbiAgQENvbnRlbnRDaGlsZHJlbignY2Fyb3VzZWxJdGVtJywgeyByZWFkOiBFbGVtZW50UmVmIH0pIGl0ZW1zITogUXVlcnlMaXN0PEVsZW1lbnRSZWY+O1xuICBAVmlld0NoaWxkKCdkb3RzQ29udGFpbmVyJykgZG90c0NvbnRhaW5lciE6IEVsZW1lbnRSZWY7XG5cbiAgQElucHV0KCkgaXRlbXNQZXJTbGlkZTogbnVtYmVyID0gNDtcbiAgQElucHV0KCkgcmVtb3ZlQXJyb3dzOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHJlbW92ZURvdHM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgYXV0b1BsYXlJbnRlcnZhbDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgQE91dHB1dCgpIHByZXZpb3VzQ2xpY2tFdmVudEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xuICBAT3V0cHV0KCkgbmV4dENsaWNrRXZlbnRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcbiAgQE91dHB1dCgpIGRvdENsaWNrRXZlbnRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTsgIFxuXG4gIGN1cnJlbnRJbmRleCA9IDA7XG4gIG9mZnNldCA9IDA7XG5cbiAgcHJpdmF0ZSB0b3VjaFN0YXJ0WCA9IDA7XG4gIHByaXZhdGUgdG91Y2hFbmRYID0gMDtcbiAgcHJpdmF0ZSBhdXRvUGxheVRpbWVyOiBhbnk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyKSB7fVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICB0aGlzLnNldEl0ZW1XaWR0aHMoKTtcblxuICAgIGlmICh0aGlzLmF1dG9QbGF5SW50ZXJ2YWwpIHtcbiAgICAgIHRoaXMuc3RhcnRBdXRvUGxheSgpO1xuICAgIH1cblxuICAgIHRoaXMuaXRlbXMuY2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5zZXRJdGVtV2lkdGhzKCk7XG4gICAgICB0aGlzLnVwZGF0ZU9mZnNldCgpO1xuICAgICAgdGhpcy5nb1RvRmlyc3RTbGlkZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRJdGVtV2lkdGhzKCkge1xuICAgIHRoaXMuaXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgY29uc3QgbWluV2lkdGggPSBgY2FsYygxMDAlIC8gJHt0aGlzLml0ZW1zUGVyU2xpZGV9KWA7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGl0ZW0ubmF0aXZlRWxlbWVudCwgJ21pbldpZHRoJywgbWluV2lkdGgpO1xuICAgIH0pO1xuICB9XG5cbiAgc3RhcnRBdXRvUGxheSgpIHtcbiAgICB0aGlzLnN0b3BBdXRvUGxheSgpOyAvLyBHYXJhbnRlIHF1ZSBuw6NvIGjDoSBpbnRlcnZhbG9zIGF0aXZvc1xuICAgIHRoaXMuYXV0b1BsYXlUaW1lciA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgIHRoaXMubmV4dFNsaWRlKCk7XG4gICAgfSwgKHRoaXMuYXV0b1BsYXlJbnRlcnZhbCB8fCAwKSAqIDEwMDApO1xuICB9XG5cbiAgc3RvcEF1dG9QbGF5KCkge1xuICAgIGlmICh0aGlzLmF1dG9QbGF5VGltZXIpIHtcbiAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5hdXRvUGxheVRpbWVyKTtcbiAgICAgIHRoaXMuYXV0b1BsYXlUaW1lciA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgb25Ub3VjaFN0YXJ0KGV2ZW50OiBUb3VjaEV2ZW50KSB7XG4gICAgdGhpcy50b3VjaFN0YXJ0WCA9IGV2ZW50LnRvdWNoZXNbMF0uY2xpZW50WDtcbiAgICB0aGlzLnRvdWNoRW5kWCA9IHRoaXMudG91Y2hTdGFydFg7IC8vIHJlc2V0YSBwYXJhIGV2aXRhciBzd2lwZSBmYWxzb1xuICB9XG5cbiAgb25Ub3VjaE1vdmUoZXZlbnQ6IFRvdWNoRXZlbnQpIHtcbiAgICB0aGlzLnRvdWNoRW5kWCA9IGV2ZW50LnRvdWNoZXNbMF0uY2xpZW50WDtcbiAgfVxuXG4gIG9uVG91Y2hFbmQoKSB7XG4gICAgY29uc3Qgc3dpcGVEaXN0YW5jZSA9IHRoaXMudG91Y2hFbmRYIC0gdGhpcy50b3VjaFN0YXJ0WDtcblxuICAgIC8vIFPDsyBjb25zaWRlcmEgc3dpcGUgc2UgbW92aW1lbnRvIGZvciBtYWlvciBxdWUgMnB4XG4gICAgaWYgKE1hdGguYWJzKHN3aXBlRGlzdGFuY2UpIDwgMikgcmV0dXJuO1xuXG4gICAgaWYgKHN3aXBlRGlzdGFuY2UgPiAwKSB7XG4gICAgICB0aGlzLnByZXZTbGlkZSgpO1xuICAgIH0gZWxzZSBpZiAoc3dpcGVEaXN0YW5jZSA8IDApIHtcbiAgICAgIHRoaXMubmV4dFNsaWRlKCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0U3RlcEluZGV4ZXMoKTogbnVtYmVyW10ge1xuICAgIGNvbnN0IHRvdGFsU3RlcHMgPSBNYXRoLmNlaWwodGhpcy5pdGVtcy5sZW5ndGggLyB0aGlzLml0ZW1zUGVyU2xpZGUpO1xuICAgIHJldHVybiBBcnJheS5mcm9tKHsgbGVuZ3RoOiB0b3RhbFN0ZXBzIH0sIChfLCBpKSA9PiBpKTtcbiAgfVxuXG4gIGdldEN1cnJlbnRTdGVwSW5kZXgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gTWF0aC5mbG9vcih0aGlzLmN1cnJlbnRJbmRleCAvIHRoaXMuaXRlbXNQZXJTbGlkZSk7XG4gIH1cblxuICBnb1RvRmlyc3RTbGlkZSgpIHtcbiAgICB0aGlzLmN1cnJlbnRJbmRleCA9IDA7XG4gICAgdGhpcy51cGRhdGVPZmZzZXQoKTtcbiAgICB0aGlzLnNjcm9sbEFjdGl2ZURvdEludG9WaWV3KDApO1xuICB9XG5cbiAgZ29Ub1NsaWRlKGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLmN1cnJlbnRJbmRleCA9IGluZGV4ICogdGhpcy5pdGVtc1BlclNsaWRlO1xuICAgIHRoaXMudXBkYXRlT2Zmc2V0KCk7XG4gICAgdGhpcy5zY3JvbGxBY3RpdmVEb3RJbnRvVmlldyhpbmRleCk7XG4gICAgdGhpcy5kb3RDbGlja0V2ZW50RW1pdHRlci5lbWl0KCk7XG4gIH1cblxuICBwcmV2U2xpZGUoKSB7XG4gICAgaWYgKHRoaXMuY3VycmVudEluZGV4ID4gMCkge1xuICAgICAgdGhpcy5jdXJyZW50SW5kZXggPSBNYXRoLm1heCgwLCB0aGlzLmN1cnJlbnRJbmRleCAtIHRoaXMuaXRlbXNQZXJTbGlkZSk7XG4gICAgICB0aGlzLnVwZGF0ZU9mZnNldCgpO1xuICAgICAgdGhpcy5zY3JvbGxBY3RpdmVEb3RJbnRvVmlldyh0aGlzLmdldEN1cnJlbnRTdGVwSW5kZXgoKSk7XG4gICAgICB0aGlzLnByZXZpb3VzQ2xpY2tFdmVudEVtaXR0ZXIuZW1pdCgpO1xuICAgIH1cbiAgfVxuXG4gIG5leHRTbGlkZSgpIHtcbiAgICBjb25zdCBtYXhJbmRleCA9IHRoaXMuaXRlbXMubGVuZ3RoIC0gdGhpcy5pdGVtc1BlclNsaWRlO1xuICAgIGlmICh0aGlzLmN1cnJlbnRJbmRleCA+PSBtYXhJbmRleCkge1xuICAgICAgdGhpcy5jdXJyZW50SW5kZXggPSAwO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmN1cnJlbnRJbmRleCA9IE1hdGgubWluKG1heEluZGV4LCB0aGlzLmN1cnJlbnRJbmRleCArIHRoaXMuaXRlbXNQZXJTbGlkZSk7XG4gICAgfVxuICAgIHRoaXMudXBkYXRlT2Zmc2V0KCk7XG4gICAgdGhpcy5zY3JvbGxBY3RpdmVEb3RJbnRvVmlldyh0aGlzLmdldEN1cnJlbnRTdGVwSW5kZXgoKSk7XG4gICAgdGhpcy5uZXh0Q2xpY2tFdmVudEVtaXR0ZXIuZW1pdCgpO1xuICB9XG5cbiAgdXBkYXRlT2Zmc2V0KCkge1xuICAgIHRoaXMub2Zmc2V0ID0gLTEwMCAqICh0aGlzLmN1cnJlbnRJbmRleCAvIHRoaXMuaXRlbXNQZXJTbGlkZSk7XG4gIH1cblxuICBwcml2YXRlIHNjcm9sbEFjdGl2ZURvdEludG9WaWV3KGluZGV4OiBudW1iZXIpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGNvbnN0IGRvdHNDb250YWluZXIgPSB0aGlzLmRvdHNDb250YWluZXI/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICBpZiAoIWRvdHNDb250YWluZXIpIHJldHVybjtcblxuICAgICAgY29uc3QgZG90cyA9IGRvdHNDb250YWluZXIuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnZG90Jyk7XG4gICAgICBpZiAoIWRvdHMgfHwgIWRvdHNbaW5kZXhdKSByZXR1cm47XG5cbiAgICAgIGNvbnN0IGFjdGl2ZURvdCA9IGRvdHNbaW5kZXhdO1xuICAgICAgY29uc3QgY29udGFpbmVyV2lkdGggPSBkb3RzQ29udGFpbmVyLm9mZnNldFdpZHRoO1xuICAgICAgY29uc3QgZG90V2lkdGggPSBhY3RpdmVEb3Qub2Zmc2V0V2lkdGggKyAxMDtcbiAgICAgIGNvbnN0IHNjcm9sbFBvc2l0aW9uID0gZG90V2lkdGggKiBpbmRleCAtIGNvbnRhaW5lcldpZHRoIC8gMiArIGRvdFdpZHRoIC8gMjtcblxuICAgICAgZG90c0NvbnRhaW5lci5zY3JvbGxUbyh7XG4gICAgICAgIGxlZnQ6IE1hdGgubWF4KDAsIHNjcm9sbFBvc2l0aW9uKSxcbiAgICAgICAgYmVoYXZpb3I6ICdzbW9vdGgnLFxuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjLWNhcm91c2VsLWNvbnRhaW5lclwiPlxuICA8ZGl2IGNsYXNzPVwiYy1jYXJvdXNlbC1zbGlkZXNcIiBbc3R5bGUudHJhbnNmb3JtXT1cIid0cmFuc2xhdGVYKCcgKyBvZmZzZXQgKyAnJSknXCIgKHRvdWNoc3RhcnQpPVwib25Ub3VjaFN0YXJ0KCRldmVudClcIiAodG91Y2htb3ZlKT1cIm9uVG91Y2hNb3ZlKCRldmVudClcIiAodG91Y2hlbmQpPVwib25Ub3VjaEVuZCgpXCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiYy1jYXJvdXNlbC1mb290ZXJcIj5cbiAgICA8YnV0dG9uIFtoaWRkZW5dPVwicmVtb3ZlQXJyb3dzXCIgY2xhc3M9XCJjLWNhcm91c2VsLW5hdiBwcmV2XCIgdGl0bGU9XCJTbGlkZSBhbnRlcmlvclwiIGFyaWEtbGFiZWw9XCJTbGlkZSBhbnRlcmlvclwiIChjbGljayk9XCJwcmV2U2xpZGUoKVwiPlxuICAgICAgPGxpYi1lbHV4LWljb24gW2ljb25dPVwiJ0NoZXZyb25fTGVmdC5zdmcnXCIgW3NpemVdPVwiJzE2J1wiIFtzaXplVHlwZV09XCIncHgnXCIgW2NvbG9yXT1cIicjMDIwRjJFJ1wiPjwvbGliLWVsdXgtaWNvbj5cbiAgICA8L2J1dHRvbj5cblxuICAgIDxkaXYgW2hpZGRlbl09XCJyZW1vdmVEb3RzXCIgY2xhc3M9XCJjLWNhcm91c2VsLWRvdHNcIiAjZG90c0NvbnRhaW5lcj5cbiAgICAgIDxzcGFuXG4gICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cImRvdFwiXG4gICAgICAgICpuZ0Zvcj1cImxldCBpbmRleCBvZiBnZXRTdGVwSW5kZXhlcygpXCJcbiAgICAgICAgKGNsaWNrKT1cImdvVG9TbGlkZShpbmRleClcIlxuICAgICAgICAoa2V5dXApPVwiZ29Ub1NsaWRlKGluZGV4KVwiXG4gICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiaW5kZXggPT09IGdldEN1cnJlbnRTdGVwSW5kZXgoKVwiXG4gICAgICAgIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwidHJ1ZVwiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiJ3BhZ2luYScgKyAoaW5kZXggKyAxKVwiXG4gICAgICA+XG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG5cbiAgICA8YnV0dG9uIFtoaWRkZW5dPVwicmVtb3ZlQXJyb3dzXCIgY2xhc3M9XCJjLWNhcm91c2VsLW5hdiBuZXh0XCIgdGl0bGU9XCJQcsOzeGltbyBzbGlkZVwiIGFyaWEtbGFiZWw9XCJQcsOzeGltbyBzbGlkZVwiIChjbGljayk9XCJuZXh0U2xpZGUoKVwiPlxuICAgICAgPGxpYi1lbHV4LWljb24gW2ljb25dPVwiJ0NoZXZyb25fUmlnaHQuc3ZnJ1wiIFtzaXplXT1cIicxNidcIiBbc2l6ZVR5cGVdPVwiJ3B4J1wiIFtjb2xvcl09XCInIzAyMEYyRSdcIj48L2xpYi1lbHV4LWljb24+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
161
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vdWkvbGlicmFyeS9zcmMvbGliL2NvbXBvbmVudHMvY2Fyb3VzZWwvY2Fyb3VzZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vdWkvbGlicmFyeS9zcmMvbGliL2NvbXBvbmVudHMvY2Fyb3VzZWwvY2Fyb3VzZWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBb0IsU0FBUyxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQXVDLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqTCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sU0FBUyxDQUFDOzs7QUFjbkMsTUFBTSxPQUFPLHFCQUFxQjtJQXFCaEMsWUFBb0IsUUFBbUI7UUFBbkIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQWpCOUIsa0JBQWEsR0FBVyxDQUFDLENBQUM7UUFDMUIsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFDOUIsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUM1QixxQkFBZ0IsR0FBa0IsSUFBSSxDQUFDO1FBRXRDLDhCQUF5QixHQUFHLElBQUksWUFBWSxFQUFTLENBQUM7UUFDdEQsMEJBQXFCLEdBQUcsSUFBSSxZQUFZLEVBQVMsQ0FBQztRQUNsRCx5QkFBb0IsR0FBRyxJQUFJLFlBQVksRUFBUyxDQUFDO1FBRTNELGlCQUFZLEdBQUcsQ0FBQyxDQUFDO1FBQ2pCLHFCQUFnQixHQUFHLENBQUMsQ0FBQyxDQUFDLGdEQUFnRDtRQUN0RSxXQUFNLEdBQUcsQ0FBQyxDQUFDO1FBRUgsZ0JBQVcsR0FBRyxDQUFDLENBQUM7UUFDaEIsY0FBUyxHQUFHLENBQUMsQ0FBQztJQUdvQixDQUFD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QyxXQUFXLEdBQUcsRUFBRSxDQUFDO1lBQzVDLE1BQU0sY0FBYyxHQUFHLFFBQVEsR0FBRyxLQUFLLEdBQUcsY0FBYyxHQUFHLENBQUMsR0FBRyxRQUFRLEdBQUcsQ0FBQyxDQUFDO1lBRTVFLGFBQWEsQ0FBQyxRQUFRLENBQUM7Z0JBQ3JCLElBQUksRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxjQUFjLENBQUM7Z0JBQ2pDLFFBQVEsRUFBRSxRQUFRO2FBQ25CLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0F0SlUscUJBQXFCO21HQUFyQixxQkFBcUIsd2FBQ1MsVUFBVSw2SUNqQnJELG0yQ0E2QkEsaTNGRGZZLFlBQVksNEpBQUUsUUFBUTs7NEZBRXJCLHFCQUFxQjtrQkFQakMsU0FBUztpQ0FDSSxJQUFJLFlBQ04sbUJBQW1CLFdBR3BCLENBQUMsWUFBWSxFQUFFLFFBQVEsQ0FBQzs4RUFHc0IsS0FBSztzQkFBM0QsZUFBZTt1QkFBQyxjQUFjLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQUN6QixhQUFhO3NCQUF4QyxTQUFTO3VCQUFDLGVBQWU7Z0JBRWpCLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFFSSx5QkFBeUI7c0JBQWxDLE1BQU07Z0JBQ0cscUJBQXFCO3NCQUE5QixNQUFNO2dCQUNHLG9CQUFvQjtzQkFBN0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBBZnRlckNvbnRlbnRJbml0LCBDb21wb25lbnQsIENvbnRlbnRDaGlsZHJlbiwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPdXRwdXQsIFF1ZXJ5TGlzdCwgUmVuZGVyZXIyLCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEVsdXhJY29uIH0gZnJvbSAnLi4vaWNvbic7XG5cbmV4cG9ydCB0eXBlIFByb2R1Y3RJdGVtID0ge1xuICBuYW1lOiBzdHJpbmc7XG4gIGltYWdlOiBzdHJpbmc7XG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdsaWItZWx1eC1jYXJvdXNlbCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYXJvdXNlbC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Nhcm91c2VsLmNvbXBvbmVudC5zY3NzJ10sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEVsdXhJY29uXSxcbn0pXG5leHBvcnQgY2xhc3MgRWx1eENhcm91c2VsQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XG4gIEBDb250ZW50Q2hpbGRyZW4oJ2Nhcm91c2VsSXRlbScsIHsgcmVhZDogRWxlbWVudFJlZiB9KSBpdGVtcyE6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPjtcbiAgQFZpZXdDaGlsZCgnZG90c0NvbnRhaW5lcicpIGRvdHNDb250YWluZXIhOiBFbGVtZW50UmVmO1xuXG4gIEBJbnB1dCgpIGl0ZW1zUGVyU2xpZGU6IG51bWJlciA9IDQ7XG4gIEBJbnB1dCgpIHJlbW92ZUFycm93czogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSByZW1vdmVEb3RzOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGF1dG9QbGF5SW50ZXJ2YWw6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gIEBPdXRwdXQoKSBwcmV2aW91c0NsaWNrRXZlbnRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcbiAgQE91dHB1dCgpIG5leHRDbGlja0V2ZW50RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG4gIEBPdXRwdXQoKSBkb3RDbGlja0V2ZW50RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7ICBcblxuICBjdXJyZW50SW5kZXggPSAwO1xuICBjdXJyZW50U3RlcEluZGV4ID0gMDsgLy8gU2VwYXJhdGUgaW5kZXggZm9yIHRyYWNraW5nIGN1cnJlbnQgc3RlcC9wYWdlXG4gIG9mZnNldCA9IDA7XG5cbiAgcHJpdmF0ZSB0b3VjaFN0YXJ0WCA9IDA7XG4gIHByaXZhdGUgdG91Y2hFbmRYID0gMDtcbiAgcHJpdmF0ZSBhdXRvUGxheVRpbWVyOiBhbnk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyKSB7fVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICB0aGlzLnNldEl0ZW1XaWR0aHMoKTtcblxuICAgIGlmICh0aGlzLmF1dG9QbGF5SW50ZXJ2YWwpIHtcbiAgICAgIHRoaXMuc3RhcnRBdXRvUGxheSgpO1xuICAgIH1cblxuICAgIHRoaXMuaXRlbXMuY2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5zZXRJdGVtV2lkdGhzKCk7XG4gICAgICB0aGlzLnVwZGF0ZU9mZnNldCgpO1xuICAgICAgdGhpcy5nb1RvRmlyc3RTbGlkZSgpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRJdGVtV2lkdGhzKCkge1xuICAgIHRoaXMuaXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgY29uc3QgbWluV2lkdGggPSBgY2FsYygxMDAlIC8gJHt0aGlzLml0ZW1zUGVyU2xpZGV9KWA7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGl0ZW0ubmF0aXZlRWxlbWVudCwgJ21pbldpZHRoJywgbWluV2lkdGgpO1xuICAgIH0pO1xuICB9XG5cbiAgc3RhcnRBdXRvUGxheSgpIHtcbiAgICB0aGlzLnN0b3BBdXRvUGxheSgpOyAvLyBHYXJhbnRlIHF1ZSBuw6NvIGjDoSBpbnRlcnZhbG9zIGF0aXZvc1xuICAgIHRoaXMuYXV0b1BsYXlUaW1lciA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgIHRoaXMubmV4dFNsaWRlKCk7XG4gICAgfSwgKHRoaXMuYXV0b1BsYXlJbnRlcnZhbCB8fCAwKSAqIDEwMDApO1xuICB9XG5cbiAgc3RvcEF1dG9QbGF5KCkge1xuICAgIGlmICh0aGlzLmF1dG9QbGF5VGltZXIpIHtcbiAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5hdXRvUGxheVRpbWVyKTtcbiAgICAgIHRoaXMuYXV0b1BsYXlUaW1lciA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgb25Ub3VjaFN0YXJ0KGV2ZW50OiBUb3VjaEV2ZW50KSB7XG4gICAgdGhpcy50b3VjaFN0YXJ0WCA9IGV2ZW50LnRvdWNoZXNbMF0uY2xpZW50WDtcbiAgICB0aGlzLnRvdWNoRW5kWCA9IHRoaXMudG91Y2hTdGFydFg7IC8vIHJlc2V0YSBwYXJhIGV2aXRhciBzd2lwZSBmYWxzb1xuICB9XG5cbiAgb25Ub3VjaE1vdmUoZXZlbnQ6IFRvdWNoRXZlbnQpIHtcbiAgICB0aGlzLnRvdWNoRW5kWCA9IGV2ZW50LnRvdWNoZXNbMF0uY2xpZW50WDtcbiAgfVxuXG4gIG9uVG91Y2hFbmQoKSB7XG4gICAgY29uc3Qgc3dpcGVEaXN0YW5jZSA9IHRoaXMudG91Y2hFbmRYIC0gdGhpcy50b3VjaFN0YXJ0WDtcblxuICAgIC8vIFPDsyBjb25zaWRlcmEgc3dpcGUgc2UgbW92aW1lbnRvIGZvciBtYWlvciBxdWUgMnB4XG4gICAgaWYgKE1hdGguYWJzKHN3aXBlRGlzdGFuY2UpIDwgMikgcmV0dXJuO1xuXG4gICAgaWYgKHN3aXBlRGlzdGFuY2UgPiAwKSB7XG4gICAgICB0aGlzLnByZXZTbGlkZSgpO1xuICAgIH0gZWxzZSBpZiAoc3dpcGVEaXN0YW5jZSA8IDApIHtcbiAgICAgIHRoaXMubmV4dFNsaWRlKCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0U3RlcEluZGV4Q291bnQoKTogbnVtYmVyW10ge1xuICAgIGNvbnN0IHRvdGFsU3RlcHMgPSBNYXRoLmNlaWwodGhpcy5pdGVtcy5sZW5ndGggLyB0aGlzLml0ZW1zUGVyU2xpZGUpO1xuICAgIHJldHVybiBBcnJheS5mcm9tKHsgbGVuZ3RoOiB0b3RhbFN0ZXBzIH0sIChfLCBpKSA9PiBpKTtcbiAgfVxuXG4gIGdldEN1cnJlbnRTdGVwSW5kZXgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50U3RlcEluZGV4OyBcbiAgfVxuXG4gIGdvVG9GaXJzdFNsaWRlKCkge1xuICAgIHRoaXMuY3VycmVudEluZGV4ID0gMDtcbiAgICB0aGlzLmN1cnJlbnRTdGVwSW5kZXggPSAwO1xuICAgIHRoaXMudXBkYXRlT2Zmc2V0KCk7XG4gICAgdGhpcy5zY3JvbGxBY3RpdmVEb3RJbnRvVmlldygwKTtcbiAgfVxuXG4gIGdvVG9TbGlkZShpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5jdXJyZW50U3RlcEluZGV4ID0gaW5kZXg7XG4gICAgdGhpcy5jdXJyZW50SW5kZXggPSBNYXRoLm1pbihpbmRleCAqIHRoaXMuaXRlbXNQZXJTbGlkZSwgdGhpcy5pdGVtcy5sZW5ndGggLSB0aGlzLml0ZW1zUGVyU2xpZGUpO1xuICAgIHRoaXMudXBkYXRlT2Zmc2V0KCk7XG4gICAgdGhpcy5zY3JvbGxBY3RpdmVEb3RJbnRvVmlldyhpbmRleCk7XG4gICAgdGhpcy5kb3RDbGlja0V2ZW50RW1pdHRlci5lbWl0KCk7XG4gIH1cblxuICBwcmV2U2xpZGUoKSB7XG4gICAgaWYgKHRoaXMuY3VycmVudFN0ZXBJbmRleCA+IDApIHtcbiAgICAgIHRoaXMuY3VycmVudFN0ZXBJbmRleC0tO1xuICAgICAgdGhpcy5jdXJyZW50SW5kZXggPSB0aGlzLmN1cnJlbnRTdGVwSW5kZXggKiB0aGlzLml0ZW1zUGVyU2xpZGU7XG4gICAgICB0aGlzLnVwZGF0ZU9mZnNldCgpO1xuICAgICAgdGhpcy5zY3JvbGxBY3RpdmVEb3RJbnRvVmlldyh0aGlzLmN1cnJlbnRTdGVwSW5kZXgpO1xuICAgICAgdGhpcy5wcmV2aW91c0NsaWNrRXZlbnRFbWl0dGVyLmVtaXQoKTtcbiAgICB9XG4gIH1cblxuICBuZXh0U2xpZGUoKSB7XG4gICAgY29uc3QgdG90YWxTdGVwcyA9IE1hdGguY2VpbCh0aGlzLml0ZW1zLmxlbmd0aCAvIHRoaXMuaXRlbXNQZXJTbGlkZSk7XG4gICAgaWYgKHRoaXMuY3VycmVudFN0ZXBJbmRleCA+PSB0b3RhbFN0ZXBzIC0gMSkge1xuICAgICAgdGhpcy5jdXJyZW50U3RlcEluZGV4ID0gMDtcbiAgICAgIHRoaXMuY3VycmVudEluZGV4ID0gMDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jdXJyZW50U3RlcEluZGV4Kys7XG4gICAgICB0aGlzLmN1cnJlbnRJbmRleCA9IE1hdGgubWluKHRoaXMuY3VycmVudFN0ZXBJbmRleCAqIHRoaXMuaXRlbXNQZXJTbGlkZSwgdGhpcy5pdGVtcy5sZW5ndGggLSB0aGlzLml0ZW1zUGVyU2xpZGUpO1xuICAgIH1cbiAgICB0aGlzLnVwZGF0ZU9mZnNldCgpO1xuICAgIHRoaXMuc2Nyb2xsQWN0aXZlRG90SW50b1ZpZXcodGhpcy5jdXJyZW50U3RlcEluZGV4KTtcbiAgICB0aGlzLm5leHRDbGlja0V2ZW50RW1pdHRlci5lbWl0KCk7XG4gIH1cblxuICB1cGRhdGVPZmZzZXQoKSB7XG4gICAgdGhpcy5vZmZzZXQgPSAtMTAwICogKHRoaXMuY3VycmVudEluZGV4IC8gdGhpcy5pdGVtc1BlclNsaWRlKTtcbiAgfVxuXG4gIHByaXZhdGUgc2Nyb2xsQWN0aXZlRG90SW50b1ZpZXcoaW5kZXg6IG51bWJlcikge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY29uc3QgZG90c0NvbnRhaW5lciA9IHRoaXMuZG90c0NvbnRhaW5lcj8ubmF0aXZlRWxlbWVudDtcbiAgICAgIGlmICghZG90c0NvbnRhaW5lcikgcmV0dXJuO1xuXG4gICAgICBjb25zdCBkb3RzID0gZG90c0NvbnRhaW5lci5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdkb3QnKTtcbiAgICAgIGlmICghZG90cyB8fCAhZG90c1tpbmRleF0pIHJldHVybjtcblxuICAgICAgY29uc3QgYWN0aXZlRG90ID0gZG90c1tpbmRleF07XG4gICAgICBjb25zdCBjb250YWluZXJXaWR0aCA9IGRvdHNDb250YWluZXIub2Zmc2V0V2lkdGg7XG4gICAgICBjb25zdCBkb3RXaWR0aCA9IGFjdGl2ZURvdC5vZmZzZXRXaWR0aCArIDEwO1xuICAgICAgY29uc3Qgc2Nyb2xsUG9zaXRpb24gPSBkb3RXaWR0aCAqIGluZGV4IC0gY29udGFpbmVyV2lkdGggLyAyICsgZG90V2lkdGggLyAyO1xuXG4gICAgICBkb3RzQ29udGFpbmVyLnNjcm9sbFRvKHtcbiAgICAgICAgbGVmdDogTWF0aC5tYXgoMCwgc2Nyb2xsUG9zaXRpb24pLFxuICAgICAgICBiZWhhdmlvcjogJ3Ntb290aCcsXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImMtY2Fyb3VzZWwtY29udGFpbmVyXCI+XG4gIDxkaXYgY2xhc3M9XCJjLWNhcm91c2VsLXNsaWRlc1wiIFtzdHlsZS50cmFuc2Zvcm1dPVwiJ3RyYW5zbGF0ZVgoJyArIG9mZnNldCArICclKSdcIiAodG91Y2hzdGFydCk9XCJvblRvdWNoU3RhcnQoJGV2ZW50KVwiICh0b3VjaG1vdmUpPVwib25Ub3VjaE1vdmUoJGV2ZW50KVwiICh0b3VjaGVuZCk9XCJvblRvdWNoRW5kKClcIj5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJjLWNhcm91c2VsLWZvb3RlclwiPlxuICAgIDxidXR0b24gW2hpZGRlbl09XCJyZW1vdmVBcnJvd3NcIiBjbGFzcz1cImMtY2Fyb3VzZWwtbmF2IHByZXZcIiB0aXRsZT1cIlNsaWRlIGFudGVyaW9yXCIgYXJpYS1sYWJlbD1cIlNsaWRlIGFudGVyaW9yXCIgKGNsaWNrKT1cInByZXZTbGlkZSgpXCI+XG4gICAgICA8bGliLWVsdXgtaWNvbiBbaWNvbl09XCInQ2hldnJvbl9MZWZ0LnN2ZydcIiBbc2l6ZV09XCInMTYnXCIgW3NpemVUeXBlXT1cIidweCdcIiBbY29sb3JdPVwiJyMwMjBGMkUnXCI+PC9saWItZWx1eC1pY29uPlxuICAgIDwvYnV0dG9uPlxuXG4gICAgPGRpdiBbaGlkZGVuXT1cInJlbW92ZURvdHNcIiBjbGFzcz1cImMtY2Fyb3VzZWwtZG90c1wiICNkb3RzQ29udGFpbmVyPlxuICAgICAgPHNwYW5cbiAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgIGNsYXNzPVwiZG90XCJcbiAgICAgICAgKm5nRm9yPVwibGV0IGluZGV4IG9mIGdldFN0ZXBJbmRleENvdW50KClcIlxuICAgICAgICAoY2xpY2spPVwiZ29Ub1NsaWRlKGluZGV4KVwiXG4gICAgICAgIChrZXl1cCk9XCJnb1RvU2xpZGUoaW5kZXgpXCJcbiAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJpbmRleCA9PT0gZ2V0Q3VycmVudFN0ZXBJbmRleCgpXCJcbiAgICAgICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJ0cnVlXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCIncGFnaW5hJyArIChpbmRleCArIDEpXCJcbiAgICAgID5cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cblxuICAgIDxidXR0b24gW2hpZGRlbl09XCJyZW1vdmVBcnJvd3NcIiBjbGFzcz1cImMtY2Fyb3VzZWwtbmF2IG5leHRcIiB0aXRsZT1cIlByw7N4aW1vIHNsaWRlXCIgYXJpYS1sYWJlbD1cIlByw7N4aW1vIHNsaWRlXCIgKGNsaWNrKT1cIm5leHRTbGlkZSgpXCI+XG4gICAgICA8bGliLWVsdXgtaWNvbiBbaWNvbl09XCInQ2hldnJvbl9SaWdodC5zdmcnXCIgW3NpemVdPVwiJzE2J1wiIFtzaXplVHlwZV09XCIncHgnXCIgW2NvbG9yXT1cIicjMDIwRjJFJ1wiPjwvbGliLWVsdXgtaWNvbj5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
package/fesm2022/elxjs-ui.mjs
CHANGED
|
@@ -1305,6 +1305,7 @@ class EluxCarouselComponent {
|
|
|
1305
1305
|
this.nextClickEventEmitter = new EventEmitter();
|
|
1306
1306
|
this.dotClickEventEmitter = new EventEmitter();
|
|
1307
1307
|
this.currentIndex = 0;
|
|
1308
|
+
this.currentStepIndex = 0; // Separate index for tracking current step/page
|
|
1308
1309
|
this.offset = 0;
|
|
1309
1310
|
this.touchStartX = 0;
|
|
1310
1311
|
this.touchEndX = 0;
|
|
@@ -1357,42 +1358,47 @@ class EluxCarouselComponent {
|
|
|
1357
1358
|
this.nextSlide();
|
|
1358
1359
|
}
|
|
1359
1360
|
}
|
|
1360
|
-
|
|
1361
|
+
getStepIndexCount() {
|
|
1361
1362
|
const totalSteps = Math.ceil(this.items.length / this.itemsPerSlide);
|
|
1362
1363
|
return Array.from({ length: totalSteps }, (_, i) => i);
|
|
1363
1364
|
}
|
|
1364
1365
|
getCurrentStepIndex() {
|
|
1365
|
-
return
|
|
1366
|
+
return this.currentStepIndex;
|
|
1366
1367
|
}
|
|
1367
1368
|
goToFirstSlide() {
|
|
1368
1369
|
this.currentIndex = 0;
|
|
1370
|
+
this.currentStepIndex = 0;
|
|
1369
1371
|
this.updateOffset();
|
|
1370
1372
|
this.scrollActiveDotIntoView(0);
|
|
1371
1373
|
}
|
|
1372
1374
|
goToSlide(index) {
|
|
1373
|
-
this.
|
|
1375
|
+
this.currentStepIndex = index;
|
|
1376
|
+
this.currentIndex = Math.min(index * this.itemsPerSlide, this.items.length - this.itemsPerSlide);
|
|
1374
1377
|
this.updateOffset();
|
|
1375
1378
|
this.scrollActiveDotIntoView(index);
|
|
1376
1379
|
this.dotClickEventEmitter.emit();
|
|
1377
1380
|
}
|
|
1378
1381
|
prevSlide() {
|
|
1379
|
-
if (this.
|
|
1380
|
-
this.
|
|
1382
|
+
if (this.currentStepIndex > 0) {
|
|
1383
|
+
this.currentStepIndex--;
|
|
1384
|
+
this.currentIndex = this.currentStepIndex * this.itemsPerSlide;
|
|
1381
1385
|
this.updateOffset();
|
|
1382
|
-
this.scrollActiveDotIntoView(this.
|
|
1386
|
+
this.scrollActiveDotIntoView(this.currentStepIndex);
|
|
1383
1387
|
this.previousClickEventEmitter.emit();
|
|
1384
1388
|
}
|
|
1385
1389
|
}
|
|
1386
1390
|
nextSlide() {
|
|
1387
|
-
const
|
|
1388
|
-
if (this.
|
|
1391
|
+
const totalSteps = Math.ceil(this.items.length / this.itemsPerSlide);
|
|
1392
|
+
if (this.currentStepIndex >= totalSteps - 1) {
|
|
1393
|
+
this.currentStepIndex = 0;
|
|
1389
1394
|
this.currentIndex = 0;
|
|
1390
1395
|
}
|
|
1391
1396
|
else {
|
|
1392
|
-
this.
|
|
1397
|
+
this.currentStepIndex++;
|
|
1398
|
+
this.currentIndex = Math.min(this.currentStepIndex * this.itemsPerSlide, this.items.length - this.itemsPerSlide);
|
|
1393
1399
|
}
|
|
1394
1400
|
this.updateOffset();
|
|
1395
|
-
this.scrollActiveDotIntoView(this.
|
|
1401
|
+
this.scrollActiveDotIntoView(this.currentStepIndex);
|
|
1396
1402
|
this.nextClickEventEmitter.emit();
|
|
1397
1403
|
}
|
|
1398
1404
|
updateOffset() {
|
|
@@ -1417,11 +1423,11 @@ class EluxCarouselComponent {
|
|
|
1417
1423
|
});
|
|
1418
1424
|
}
|
|
1419
1425
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EluxCarouselComponent, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1420
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: EluxCarouselComponent, isStandalone: true, selector: "lib-elux-carousel", inputs: { itemsPerSlide: "itemsPerSlide", removeArrows: "removeArrows", removeDots: "removeDots", autoPlayInterval: "autoPlayInterval" }, outputs: { previousClickEventEmitter: "previousClickEventEmitter", nextClickEventEmitter: "nextClickEventEmitter", dotClickEventEmitter: "dotClickEventEmitter" }, queries: [{ propertyName: "items", predicate: ["carouselItem"], read: ElementRef }], viewQueries: [{ propertyName: "dotsContainer", first: true, predicate: ["dotsContainer"], descendants: true }], ngImport: i0, template: "<div class=\"c-carousel-container\">\n <div class=\"c-carousel-slides\" [style.transform]=\"'translateX(' + offset + '%)'\" (touchstart)=\"onTouchStart($event)\" (touchmove)=\"onTouchMove($event)\" (touchend)=\"onTouchEnd()\">\n <ng-content></ng-content>\n </div>\n\n <div class=\"c-carousel-footer\">\n <button [hidden]=\"removeArrows\" class=\"c-carousel-nav prev\" title=\"Slide anterior\" aria-label=\"Slide anterior\" (click)=\"prevSlide()\">\n <lib-elux-icon [icon]=\"'Chevron_Left.svg'\" [size]=\"'16'\" [sizeType]=\"'px'\" [color]=\"'#020F2E'\"></lib-elux-icon>\n </button>\n\n <div [hidden]=\"removeDots\" class=\"c-carousel-dots\" #dotsContainer>\n <span\n role=\"button\"\n class=\"dot\"\n *ngFor=\"let index of
|
|
1426
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: EluxCarouselComponent, isStandalone: true, selector: "lib-elux-carousel", inputs: { itemsPerSlide: "itemsPerSlide", removeArrows: "removeArrows", removeDots: "removeDots", autoPlayInterval: "autoPlayInterval" }, outputs: { previousClickEventEmitter: "previousClickEventEmitter", nextClickEventEmitter: "nextClickEventEmitter", dotClickEventEmitter: "dotClickEventEmitter" }, queries: [{ propertyName: "items", predicate: ["carouselItem"], read: ElementRef }], viewQueries: [{ propertyName: "dotsContainer", first: true, predicate: ["dotsContainer"], descendants: true }], ngImport: i0, template: "<div class=\"c-carousel-container\">\n <div class=\"c-carousel-slides\" [style.transform]=\"'translateX(' + offset + '%)'\" (touchstart)=\"onTouchStart($event)\" (touchmove)=\"onTouchMove($event)\" (touchend)=\"onTouchEnd()\">\n <ng-content></ng-content>\n </div>\n\n <div class=\"c-carousel-footer\">\n <button [hidden]=\"removeArrows\" class=\"c-carousel-nav prev\" title=\"Slide anterior\" aria-label=\"Slide anterior\" (click)=\"prevSlide()\">\n <lib-elux-icon [icon]=\"'Chevron_Left.svg'\" [size]=\"'16'\" [sizeType]=\"'px'\" [color]=\"'#020F2E'\"></lib-elux-icon>\n </button>\n\n <div [hidden]=\"removeDots\" class=\"c-carousel-dots\" #dotsContainer>\n <span\n role=\"button\"\n class=\"dot\"\n *ngFor=\"let index of getStepIndexCount()\"\n (click)=\"goToSlide(index)\"\n (keyup)=\"goToSlide(index)\"\n [class.active]=\"index === getCurrentStepIndex()\"\n [attr.aria-disabled]=\"true\"\n [attr.aria-label]=\"'pagina' + (index + 1)\"\n >\n </span>\n </div>\n\n <button [hidden]=\"removeArrows\" class=\"c-carousel-nav next\" title=\"Pr\u00F3ximo slide\" aria-label=\"Pr\u00F3ximo slide\" (click)=\"nextSlide()\">\n <lib-elux-icon [icon]=\"'Chevron_Right.svg'\" [size]=\"'16'\" [sizeType]=\"'px'\" [color]=\"'#020F2E'\"></lib-elux-icon>\n </button>\n </div>\n</div>\n", styles: [".display{font-family:Electrolux Sans;font-size:48px;font-weight:700;line-height:56px}.heading-1{font-family:Electrolux Sans;font-size:34px;font-weight:700;line-height:40px}.heading-2{font-family:Electrolux Sans;font-size:28px;font-weight:600;line-height:32px}.heading-3{font-family:Electrolux Sans;font-size:20px;font-weight:600;line-height:24px}.subtitle-1{font-family:Electrolux Sans;font-size:16px;font-weight:600;line-height:20px}.body{font-family:Electrolux Sans;font-size:16px;font-weight:400;line-height:21px}.caption{font-family:Electrolux Sans;font-size:14px;font-weight:400;line-height:normal}.links{font-family:Electrolux Sans;font-size:16px;font-weight:600;line-height:normal;text-decoration-line:underline}@media screen and (max-width: 768px){.display{font-family:Electrolux Sans;font-size:40px;font-weight:700;line-height:46px}.heading-1{font-family:Electrolux Sans;font-size:28px;font-weight:600;line-height:32px}.heading-2{font-family:Electrolux Sans;font-size:24px;font-weight:600;line-height:28px}.heading-3{font-family:Electrolux Sans;font-size:20px;font-weight:600;line-height:24px}.subtitle-1{font-family:Electrolux Sans;font-size:16px;font-weight:600;line-height:20px}.body{font-family:Electrolux Sans;font-size:16px;font-weight:400;line-height:21px}.caption{font-family:Electrolux Sans;font-size:14px;font-weight:400;line-height:normal}.links{font-family:Electrolux Sans;font-size:16px;font-weight:600;line-height:normal;text-decoration-line:underline}}.c-carousel-container{position:relative;width:100%}.c-carousel-slides{display:flex;transition:transform .4s ease-in-out;touch-action:pan-y}.c-carousel-item{display:flex;flex-direction:column;text-align:center;align-items:center;justify-content:center;gap:16px;height:150px;margin:6px;border:1px solid #dee7ea;border-radius:2px;cursor:pointer}.c-carousel-item .c-span{font-weight:400;font-size:18px;color:#011e41}.c-carousel-footer{width:min-content;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:16px 0 24px}.c-carousel-footer .c-carousel-nav{background:none;border:none;cursor:pointer;padding:8px;border-radius:50px;background-color:#dfe7ea;transition:all ease-in-out .2s;z-index:2}.c-carousel-footer .c-carousel-nav:hover{transform:scale(1.1)}.c-carousel-footer .c-carousel-nav ::ng-deep span{display:block}.c-carousel-footer .c-carousel-dots{padding:6px;display:flex;text-align:center;border:1px solid #020f2e;border-radius:16px;margin:0 16px;max-width:120px;overflow:hidden;position:relative}@media (max-width: 768px){.c-carousel-footer .c-carousel-dots{margin:0 12px;max-width:100px}}.c-carousel-footer .dot{height:10px;width:10px;margin:0 5px;background-color:#dfe7ea;border-radius:50%;display:inline-block;cursor:pointer;transition:all ease-in-out .2s;flex-shrink:0}.c-carousel-footer .dot:hover,.c-carousel-footer .dot.active{background-color:#011e41}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: EluxIcon, selector: "lib-elux-icon", inputs: ["color", "useSubscription", "icon", "description", "size", "height", "width", "sizeType"] }] }); }
|
|
1421
1427
|
}
|
|
1422
1428
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: EluxCarouselComponent, decorators: [{
|
|
1423
1429
|
type: Component,
|
|
1424
|
-
args: [{ standalone: true, selector: 'lib-elux-carousel', imports: [CommonModule, EluxIcon], template: "<div class=\"c-carousel-container\">\n <div class=\"c-carousel-slides\" [style.transform]=\"'translateX(' + offset + '%)'\" (touchstart)=\"onTouchStart($event)\" (touchmove)=\"onTouchMove($event)\" (touchend)=\"onTouchEnd()\">\n <ng-content></ng-content>\n </div>\n\n <div class=\"c-carousel-footer\">\n <button [hidden]=\"removeArrows\" class=\"c-carousel-nav prev\" title=\"Slide anterior\" aria-label=\"Slide anterior\" (click)=\"prevSlide()\">\n <lib-elux-icon [icon]=\"'Chevron_Left.svg'\" [size]=\"'16'\" [sizeType]=\"'px'\" [color]=\"'#020F2E'\"></lib-elux-icon>\n </button>\n\n <div [hidden]=\"removeDots\" class=\"c-carousel-dots\" #dotsContainer>\n <span\n role=\"button\"\n class=\"dot\"\n *ngFor=\"let index of
|
|
1430
|
+
args: [{ standalone: true, selector: 'lib-elux-carousel', imports: [CommonModule, EluxIcon], template: "<div class=\"c-carousel-container\">\n <div class=\"c-carousel-slides\" [style.transform]=\"'translateX(' + offset + '%)'\" (touchstart)=\"onTouchStart($event)\" (touchmove)=\"onTouchMove($event)\" (touchend)=\"onTouchEnd()\">\n <ng-content></ng-content>\n </div>\n\n <div class=\"c-carousel-footer\">\n <button [hidden]=\"removeArrows\" class=\"c-carousel-nav prev\" title=\"Slide anterior\" aria-label=\"Slide anterior\" (click)=\"prevSlide()\">\n <lib-elux-icon [icon]=\"'Chevron_Left.svg'\" [size]=\"'16'\" [sizeType]=\"'px'\" [color]=\"'#020F2E'\"></lib-elux-icon>\n </button>\n\n <div [hidden]=\"removeDots\" class=\"c-carousel-dots\" #dotsContainer>\n <span\n role=\"button\"\n class=\"dot\"\n *ngFor=\"let index of getStepIndexCount()\"\n (click)=\"goToSlide(index)\"\n (keyup)=\"goToSlide(index)\"\n [class.active]=\"index === getCurrentStepIndex()\"\n [attr.aria-disabled]=\"true\"\n [attr.aria-label]=\"'pagina' + (index + 1)\"\n >\n </span>\n </div>\n\n <button [hidden]=\"removeArrows\" class=\"c-carousel-nav next\" title=\"Pr\u00F3ximo slide\" aria-label=\"Pr\u00F3ximo slide\" (click)=\"nextSlide()\">\n <lib-elux-icon [icon]=\"'Chevron_Right.svg'\" [size]=\"'16'\" [sizeType]=\"'px'\" [color]=\"'#020F2E'\"></lib-elux-icon>\n </button>\n </div>\n</div>\n", styles: [".display{font-family:Electrolux Sans;font-size:48px;font-weight:700;line-height:56px}.heading-1{font-family:Electrolux Sans;font-size:34px;font-weight:700;line-height:40px}.heading-2{font-family:Electrolux Sans;font-size:28px;font-weight:600;line-height:32px}.heading-3{font-family:Electrolux Sans;font-size:20px;font-weight:600;line-height:24px}.subtitle-1{font-family:Electrolux Sans;font-size:16px;font-weight:600;line-height:20px}.body{font-family:Electrolux Sans;font-size:16px;font-weight:400;line-height:21px}.caption{font-family:Electrolux Sans;font-size:14px;font-weight:400;line-height:normal}.links{font-family:Electrolux Sans;font-size:16px;font-weight:600;line-height:normal;text-decoration-line:underline}@media screen and (max-width: 768px){.display{font-family:Electrolux Sans;font-size:40px;font-weight:700;line-height:46px}.heading-1{font-family:Electrolux Sans;font-size:28px;font-weight:600;line-height:32px}.heading-2{font-family:Electrolux Sans;font-size:24px;font-weight:600;line-height:28px}.heading-3{font-family:Electrolux Sans;font-size:20px;font-weight:600;line-height:24px}.subtitle-1{font-family:Electrolux Sans;font-size:16px;font-weight:600;line-height:20px}.body{font-family:Electrolux Sans;font-size:16px;font-weight:400;line-height:21px}.caption{font-family:Electrolux Sans;font-size:14px;font-weight:400;line-height:normal}.links{font-family:Electrolux Sans;font-size:16px;font-weight:600;line-height:normal;text-decoration-line:underline}}.c-carousel-container{position:relative;width:100%}.c-carousel-slides{display:flex;transition:transform .4s ease-in-out;touch-action:pan-y}.c-carousel-item{display:flex;flex-direction:column;text-align:center;align-items:center;justify-content:center;gap:16px;height:150px;margin:6px;border:1px solid #dee7ea;border-radius:2px;cursor:pointer}.c-carousel-item .c-span{font-weight:400;font-size:18px;color:#011e41}.c-carousel-footer{width:min-content;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:16px 0 24px}.c-carousel-footer .c-carousel-nav{background:none;border:none;cursor:pointer;padding:8px;border-radius:50px;background-color:#dfe7ea;transition:all ease-in-out .2s;z-index:2}.c-carousel-footer .c-carousel-nav:hover{transform:scale(1.1)}.c-carousel-footer .c-carousel-nav ::ng-deep span{display:block}.c-carousel-footer .c-carousel-dots{padding:6px;display:flex;text-align:center;border:1px solid #020f2e;border-radius:16px;margin:0 16px;max-width:120px;overflow:hidden;position:relative}@media (max-width: 768px){.c-carousel-footer .c-carousel-dots{margin:0 12px;max-width:100px}}.c-carousel-footer .dot{height:10px;width:10px;margin:0 5px;background-color:#dfe7ea;border-radius:50%;display:inline-block;cursor:pointer;transition:all ease-in-out .2s;flex-shrink:0}.c-carousel-footer .dot:hover,.c-carousel-footer .dot.active{background-color:#011e41}\n"] }]
|
|
1425
1431
|
}], ctorParameters: () => [{ type: i0.Renderer2 }], propDecorators: { items: [{
|
|
1426
1432
|
type: ContentChildren,
|
|
1427
1433
|
args: ['carouselItem', { read: ElementRef }]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"elxjs-ui.mjs","sources":["../../../../ui/library/src/lib/components/icon/icon.component.ts","../../../../ui/library/src/lib/components/icon/icon.component.html","../../../../ui/library/src/lib/components/breadcrumb/breadcrumb.component.ts","../../../../ui/library/src/lib/components/breadcrumb/breadcrumb.component.html","../../../../ui/library/src/lib/components/loading/loading.component.ts","../../../../ui/library/src/lib/components/loading/loading.component.html","../../../../ui/library/src/lib/components/button/button.component.ts","../../../../ui/library/src/lib/components/button/button.component.html","../../../../ui/library/src/lib/components/dropdown/dropdown.component.ts","../../../../ui/library/src/lib/components/dropdown/dropdown.component.html","../../../../ui/library/src/lib/components/paginator/paginator.component.ts","../../../../ui/library/src/lib/components/paginator/paginator.component.html","../../../../ui/library/src/lib/components/stepbar/stepbar.component.ts","../../../../ui/library/src/lib/components/stepbar/stepbar.component.html","../../../../ui/library/src/lib/components/datepicker/datepicker.component.ts","../../../../ui/library/src/lib/components/datepicker/datepicker.component.html","../../../../ui/library/src/lib/services/toaster.service.ts","../../../../ui/library/src/lib/components/toast/toast.component.ts","../../../../ui/library/src/lib/components/toast/toast.component.html","../../../../ui/library/src/lib/components/datatable/datatable.component.ts","../../../../ui/library/src/lib/components/datatable/datatable.component.html","../../../../ui/library/src/lib/components/accordion/accordion.component.ts","../../../../ui/library/src/lib/components/accordion/accordion.component.html","../../../../ui/library/src/lib/components/modal/modal.component.ts","../../../../ui/library/src/lib/components/modal/modal.component.html","../../../../ui/library/src/lib/components/input-search/input-search.component.ts","../../../../ui/library/src/lib/components/input-search/input-search.component.html","../../../../ui/library/src/lib/components/input-search-modal/input-search-modal.component.ts","../../../../ui/library/src/lib/components/input-search-modal/input-search-modal.component.html","../../../../ui/library/src/lib/components/dropdown-multiple/dropdown-multiple.component.ts","../../../../ui/library/src/lib/components/dropdown-multiple/dropdown-multiple.component.html","../../../../ui/library/src/lib/components/carousel/carousel.component.ts","../../../../ui/library/src/lib/components/carousel/carousel.component.html","../../../../ui/library/src/lib/components/switch/switch.component.ts","../../../../ui/library/src/lib/components/chip/chip.component.ts","../../../../ui/library/src/lib/components/chip/chip.component.html","../../../../ui/library/src/lib/components/card-1/card1.component.ts","../../../../ui/library/src/lib/components/card-1/card1.component.html","../../../../ui/library/src/lib/components/card-2/card2.component.ts","../../../../ui/library/src/lib/components/card-2/card2.component.html","../../../../ui/library/src/lib/components/card-3/card3.component.ts","../../../../ui/library/src/lib/components/card-3/card3.component.html","../../../../ui/library/src/lib/components/card-4/card4.component.ts","../../../../ui/library/src/lib/components/card-4/card4.component.html","../../../../ui/library/src/lib/components/loading-2/loading-2.component.ts","../../../../ui/library/src/lib/components/loading-2/loading-2.component.html","../../../../ui/library/src/lib/components/arrow-link/arrow-link.component.ts","../../../../ui/library/src/lib/components/arrow-link/arrow-link.component.html","../../../../ui/library/src/lib/components/index.ts","../../../../ui/library/src/lib/modules/electrolux-design-system.module.ts","../../../../ui/library/src/elxjs-ui.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { Component, ElementRef, Input, ViewChild } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\n\n@Component({\n selector: 'lib-elux-icon',\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule],\n templateUrl: './icon.component.html',\n styleUrl: './icon.component.scss'\n})\nexport class EluxIcon {\n @ViewChild('iconSpan') iconSpan!: ElementRef;\n\n @Input() color = '#011e41';\n @Input() useSubscription = false;\n @Input() icon = '';\n @Input() description = '';\n @Input() size = '';\n @Input() height = '';\n @Input() width = '';\n @Input() sizeType = 'px';\n\n constructor() {\n }\n\n public iconMask() {\n return {\n height: this.size ? `${this.size}${this.sizeType}` : `${this.height}${this.sizeType}`,\n width: this.size ? `${this.size}${this.sizeType}` : `${this.width}${this.sizeType}`,\n mask: `url(./assets/icons/${this.icon}) no-repeat`,\n '-webkit-mask': `url(./assets/icons/${this.icon}) no-repeat`,\n 'background-color': this.color,\n '-webkit-mask-size': 'contain',\n 'mask-size': 'contain',\n 'mask-repeat': 'no-repeat',\n '-webkit-mask-repeat': 'no-repeat',\n 'mask-position': 'center',\n '-webkit-mask-position': 'center'\n };\n }\n}\n","@if (icon) {\n<span #iconSpan class=\"icon\" [ngStyle]=\"iconMask()\"></span>\n}","import { Component, ElementRef, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { EluxIcon } from '../icon/icon.component';\nimport { RouterModule } from '@angular/router';\n\nexport interface BreadCrumbRoute {\n name: string;\n route: string;\n}\n\n@Component({\n selector: 'lib-elux-breadcrumb',\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, RouterModule, EluxIcon],\n templateUrl: './breadcrumb.component.html',\n styleUrl: './breadcrumb.component.scss'\n})\nexport class EluxBreadcrumb implements OnChanges {\n @Input() routes: BreadCrumbRoute[] = [];\n //@Input() canChange: boolean = true;\n\n showBreadcrumbDrop = false;\n\n constructor(\n //private previousRouteService: PreviousRouteService,\n private elementRef: ElementRef\n ) { }\n\n ngOnChanges(changes: SimpleChanges) {\n // if ((!this.canChange && changes.routes.previousValue) || !changes.routes.currentValue) {\n // return;\n // }\n\n // this.previousRouteService.setPreviousBreadcrumb(changes.routes.currentValue);\n }\n\n toggleBreadcrumbDrop() {\n this.showBreadcrumbDrop = !this.showBreadcrumbDrop;\n\n if (this.showBreadcrumbDrop) {\n document.addEventListener('click', this.closeDropdown.bind(this));\n } else {\n document.removeEventListener('click', this.closeDropdown.bind(this));\n }\n }\n\n closeDropdown(event: any) {\n if (!this.elementRef.nativeElement.contains(event.target)) {\n this.showBreadcrumbDrop = false;\n document.removeEventListener('click', this.closeDropdown.bind(this));\n }\n }\n}\n","<div aria-label=\"breadcrumb\" class=\"breadCrumb\" *ngIf=\"routes && routes.length > 0\">\n <div class=\"breadcrumbMobile\">\n <div>\n <div class=\"dots\" (click)=\"toggleBreadcrumbDrop()\">...</div>\n <div class=\"dropGroup\" *ngIf=\"showBreadcrumbDrop\">\n <div *ngFor=\"let route of routes; let i = index\">\n <a class=\"text-decoration-none\" *ngIf=\"i != routes.length - 1\" [routerLink]=\"route.route\">\n <div class=\"dropOption\">\n {{ route.name }}\n </div>\n </a>\n </div>\n </div>\n </div>\n <div class=\"divBreadCrumbDesktop\">\n <lib-elux-icon class=\"align-middle mr-1\" color=\"#011E41\" icon=\"Chevron_Right.svg\" size=\"15\" sizeType=\"px\"></lib-elux-icon>\n <span class=\"lastRoute\" aria-current>{{ routes[routes.length-1].name }}</span>\n </div>\n </div>\n <div class=\"breadcrumbDesktop\">\n <div class=\"divBreadCrumbDesktop\" *ngFor=\"let route of routes; let i = index\">\n <a [routerLink]=\"route.route\" class=\"route\" *ngIf=\"i != routes.length - 1\">\n {{ route.name }}\n </a>\n <span class=\"lastRoute\" aria-current *ngIf=\"i == routes.length - 1\">\n {{ route.name }}\n </span>\n <lib-elux-icon class=\"align-middle mr-1 \" *ngIf=\"i != routes.length - 1\" color=\"#011E41\" icon=\"Chevron_Right.svg\"\n size=\"15\" sizeType=\"px\"></lib-elux-icon>\n </div>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, input, Input } from '@angular/core';\n\n@Component({\n selector: 'lib-elux-loading',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './loading.component.html',\n styleUrl: './loading.component.scss'\n})\nexport class EluxLoading {\n @Input() size: number = 50;\n @Input() white: boolean = false;\n}\n","<div class=\"backdrop\">\n <div class=\"spinner\" [ngClass]=\"{ white: white, blue: !white }\" [ngStyle]=\"{ 'width.px': size, 'height.px': size }\"></div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { EluxIcon } from '../icon/icon.component';\nimport { EluxLoading } from '../loading/loading.component';\n\n@Component({\n selector: 'lib-elux-button',\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, EluxIcon, EluxLoading],\n templateUrl: './button.component.html',\n styleUrl: './button.component.scss',\n})\nexport class EluxButton implements OnInit {\n @Input() disabled = false;\n @Input() type: 'basic' | 'basic-action' | 'outline' | 'text' | 'basic-dark' | 'basicWhite' | 'basicBlue' | 'outline-dark' = 'basic';\n @Input() typeButton: 'button' | 'submit' = 'button';\n @Input() content!: string;\n\n @Input() done = false;\n @Input() routerLink!: string;\n @Input() link!: string;\n @Input() size!: number;\n\n @Input() icon = '';\n @Input() iconAlign!: 'left' | 'right';\n @Input() externalLink = false;\n @Input() loading = false;\n @Input() onlyfirstLetterUpper = true;\n\n @Output() onClick = new EventEmitter<Event>();\n\n constructor(private router: Router) {}\n\n ngOnInit() {\n if (this.done) {\n this.icon = 'Check.svg';\n }\n\n if (this.externalLink) {\n this.icon = 'Link.svg';\n }\n\n if (this.loading) {\n this.icon = 'Loading.svg';\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['loading']) {\n }\n }\n\n firstLetterUpper(value: string) {\n if (value) {\n return value.charAt(0).toUpperCase() + value.slice(1).toLowerCase();\n }\n\n return '';\n }\n\n clickButton($event: Event) {\n if (this.loading == false) {\n this.onClick.emit($event);\n if (this.routerLink) {\n this.router.navigateByUrl(this.routerLink);\n } else if (this.link) {\n this.router.navigateByUrl(this.link);\n } \n }\n }\n}\n","<button\n [type]=\"typeButton\"\n class=\"btn elux-button size-{{ size }}\"\n [disabled]=\"disabled\"\n [ngClass]=\"type\"\n (click)=\"clickButton($event)\"\n (keyup.enter)=\"clickButton($event)\"\n>\n <div *ngIf=\"loading\" [ngStyle]=\"{ 'width': '24px', 'margin': 'auto' , 'margin-top' : '3px' }\">\n <lib-elux-loading [size]=\"30\" [white]=\"true\"></lib-elux-loading>\n </div>\n <div [ngClass]=\"iconAlign\">\n <lib-elux-icon *ngIf=\"icon !== ''\" [icon]=\"icon\" [size]=\"'24'\" [sizeType]=\"'px'\"></lib-elux-icon>\n <span *ngIf=\"!done && !loading\">\n {{ onlyfirstLetterUpper ? firstLetterUpper(content) : content }}\n </span>\n </div>\n</button>\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, forwardRef, HostListener, Injector, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { ControlValueAccessor, FormControl, FormsModule, NG_VALUE_ACCESSOR, NgControl, ReactiveFormsModule } from '@angular/forms';\nimport { EluxIcon } from '../icon';\n\nexport interface DropdownOption {\n value: any;\n text: string;\n}\n\n@Component({\n selector: 'lib-elux-dropdown',\n standalone: true,\n imports: [CommonModule, FormsModule, ReactiveFormsModule, EluxIcon],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EluxDropdown),\n multi: true,\n },\n ],\n templateUrl: './dropdown.component.html',\n styleUrl: './dropdown.component.scss',\n})\nexport class EluxDropdown implements OnInit, OnChanges, ControlValueAccessor {\n\n @Input() placeholder: string = 'Selecione';\n @Input() options: DropdownOption[] = [];\n @Input() selectedOption: any = '';\n @Input() disabled: boolean = false;\n @Input() idInput: string = '';\n @Input() showSearch: boolean = false;\n\n @Output() optionSelected: EventEmitter<any> = new EventEmitter<any>();\n\n isOpen: boolean = false;\n selectedOptionText = '';\n\n optionsFiltered: DropdownOption[] = [];\n\n private onChange: Function = () => undefined;\n private onTouched: Function = () => undefined;\n private parentFormControl!: FormControl;\n\n constructor(private readonly injector: Injector) {}\n\n ngOnInit(): void {\n this.injectParentFormControl();\n this.addPlaceholderOption();\n this.updateSelectedOption();\n if (!this.idInput) {\n this.idInput = `dropdown-${Math.random().toString(36).substring(2, 11)}`;\n }\n\n this.optionsFiltered = this.options;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['selectedOption'] && !changes['selectedOption'].isFirstChange()) {\n this.updateSelectedOption();\n }\n\n if (changes['placeholder'] && !changes['placeholder'].isFirstChange()) {\n this.updatePlaceholderOption();\n }\n }\n\n injectParentFormControl() {\n const ngControl = this.injector.get(NgControl, null);\n if (ngControl) {\n this.parentFormControl = ngControl.control as FormControl;\n }\n }\n\n addPlaceholderOption(): void {\n if (!this.options.some((option) => option.value === null)) {\n this.options.unshift({ value: null, text: this.placeholder });\n }\n }\n\n updateSelectedOption(): void {\n const selectedOption = this.options.find((option) => option.value === this.selectedOption);\n this.selectedOptionText = selectedOption ? selectedOption.text : this.showSearch ? '' : this.placeholder;\n }\n\n updatePlaceholderOption(): void {\n const placeholderOptionIndex = this.options.findIndex(option => option.value === null);\n if (placeholderOptionIndex !== -1) {\n this.options[placeholderOptionIndex].text = this.placeholder;\n } else {\n this.addPlaceholderOption();\n }\n\n if (!this.showSearch && !this.selectedOption) {\n this.selectedOptionText = this.placeholder;\n }\n }\n\n toggleDropdown(): void {\n if (!this.disabled) {\n this.isOpen = !this.isOpen;\n }\n }\n\n @HostListener('document:click', ['$event'])\n onDocumentClick(event: MouseEvent): void {\n const target = event.target as HTMLElement;\n if (!target.closest(`#${this.idInput}`)) {\n this.isOpen = false;\n }\n }\n\n selectOption(option: DropdownOption) {\n this.selectedOptionText = option.text;\n this.optionSelected.emit(option.value);\n this.onChange(option.value);\n this.onTouched();\n this.isOpen = false;\n\n this.optionsFiltered = this.options;\n }\n\n writeValue(value: string): void {\n this.selectedOption = value;\n this.updateSelectedOption();\n }\n\n registerOnChange(fn: Function): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: Function): void {\n this.onTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n onChangeFilter(event: any) {\n const term = event?.target?.value?.toLowerCase() || '';\n this.optionsFiltered = this.options.filter(option =>\n option.text.toLowerCase().includes(term)\n );\n }\n\n get isTouched(): boolean {\n return this.parentFormControl?.touched || this.parentFormControl?.dirty;\n }\n\n get isInvalid(): boolean {\n return this.parentFormControl?.invalid;\n }\n}","<div class=\"custom-dropdown\">\n <input\n type=\"text\"\n class=\"selected-option\"\n [id]=\"idInput\"\n [readonly]=\"showSearch ? false : true\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n [value]=\"selectedOptionText ? selectedOptionText : ''\"\n [ngClass]=\"{\n 'ng-invalid': isInvalid,\n 'ng-touched': isTouched,\n 'selected-option-border': !isInvalid || !isTouched,\n }\"\n (click)=\"toggleDropdown()\"\n (input)=\"onChangeFilter($event)\"\n />\n <lib-elux-icon\n class=\"arrow-icon noClick\"\n [color]=\"'#7A8A9B'\"\n [icon]=\"'Chevron_Down.svg'\"\n [ngClass]=\"{ 'arrow-rotate': isOpen }\"\n [size]=\"'16'\"\n [sizeType]=\"'px'\"\n ></lib-elux-icon>\n <ul class=\"dropdown-list\" *ngIf=\"isOpen\">\n <li *ngFor=\"let option of showSearch ? optionsFiltered : options\" (click)=\"selectOption(option)\">\n {{ option.text }}\n </li>\n </ul>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { EluxIcon } from '../icon';\n\nexport interface Page {\n length: number;\n current: number;\n}\n\nexport interface PaginationEvent {\n type: 'goTo';\n page: number;\n}\n\n@Component({\n selector: 'lib-elux-paginator',\n standalone: true,\n imports: [CommonModule, EluxIcon],\n templateUrl: './paginator.component.html',\n styleUrl: './paginator.component.scss',\n})\nexport class EluxPaginator implements OnInit, OnChanges {\n @Input() length: number = 0;\n @Input() current: number = 0;\n @Input() anchor: boolean = true;\n @Input() scrollTo?: string = undefined;\n\n @Output() paginationEvents = new EventEmitter<PaginationEvent>();\n\n pages: number[] = [];\n previousPages: number[] = [];\n nextPages: number[] = [];\n\n constructor() {}\n\n ngOnInit() {\n this.showPages();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['length'] || changes['current']) {\n this.showPages();\n }\n }\n\n scrollToElement(event: any): void {\n let el = event.target;\n\n if (this.anchor && !this.scrollTo) {\n const container = el.closest('.table-container');\n setTimeout(() => {\n if (container) {\n container.closest('.table-container').scrollIntoView({ behavior: 'smooth', block: 'start', inline: 'nearest' });\n }\n }, 100);\n }\n\n if (this.scrollTo != undefined) {\n el = document.querySelector(this.scrollTo);\n setTimeout(() => {\n el.scrollIntoView({ behavior: 'smooth', block: 'start', inline: 'nearest' });\n }, 100);\n }\n }\n\n goLast() {\n this.goToPage(this.length);\n }\n\n goFirst() {\n this.goToPage(1);\n }\n\n nextPage() {\n this.goToPage(this.current + 1);\n }\n\n prevPage() {\n this.goToPage(this.current - 1);\n }\n\n goToPage(page: number) {\n this.paginationEvents.emit({ type: 'goTo', page: page });\n this.current = page;\n this.showPages();\n }\n\n goToSpecPage(page: number, event: any) {\n this.paginationEvents.emit({ type: 'goTo', page: page });\n this.current = page;\n this.showPages();\n setTimeout(()=> {\n this.scrollToElement(event);\n\n }, 400)\n }\n\n showPages() {\n this.previousPages = [];\n this.nextPages = [];\n this.pages = [];\n\n if (!this.current) {\n return;\n }\n\n if (this.length <= 5) {\n for (let i = 0; i < this.length; i++) {\n this.pages.push(i + 1);\n }\n return;\n }\n\n if (this.current < 4) {\n for (let i = 0; i < 5 - this.current; i++) {\n const element = i + 1;\n this.nextPages.push(element + this.current);\n }\n\n for (let i = 0; i < this.current - 1; i++) {\n const element = i + 1;\n this.previousPages.push(element);\n }\n\n return;\n }\n\n if (this.current > 3 && this.current <= this.length - 2) {\n this.nextPages.push(this.current + 1);\n this.nextPages.push(this.current + 2);\n this.previousPages.push(this.current - 2);\n this.previousPages.push(this.current - 1);\n return;\n }\n\n if (this.current > this.length - 2) {\n for (let i = 0; i < this.length - this.current; i++) {\n const element = i + 1;\n this.nextPages.push(element + this.current);\n }\n\n for (let i = 0; i < 4 - this.nextPages.length; i++) {\n const element = this.current - (i + 1);\n this.previousPages.push(element);\n }\n\n this.previousPages.reverse();\n return;\n }\n }\n}\n","<nav>\n <ul class=\"paginator\" *ngIf=\"length > 5\">\n <li class=\"pagination-number\">\n <div *ngIf=\"current !== 1\" (click)=\"goFirst(); scrollToElement($event)\">\n <lib-elux-icon [icon]=\"'Chevron_Left_Double.svg'\" [sizeType]=\"'px'\" [size]=\"'16'\"> </lib-elux-icon>\n </div>\n </li>\n\n <li class=\"last-page\">\n <div *ngIf=\"current !== 1\" (click)=\"prevPage(); scrollToElement($event)\" title=\"next page\">\n <lib-elux-icon [icon]=\"'Chevron_Left.svg'\" [size]=\"'16'\" [sizeType]=\"'px'\"> </lib-elux-icon>\n </div>\n </li>\n\n <li class=\"pages-before pagination-number\" *ngFor=\"let page of previousPages\">\n <div (click)=\"goToSpecPage(page, $event)\">{{ page }}</div>\n </li>\n\n <li class=\"pagination-number current-page\">\n <div>\n {{ current }}\n </div>\n </li>\n\n <li class=\"pages-after pagination-number\" *ngFor=\"let page of nextPages\">\n <div (click)=\"goToSpecPage(page, $event); scrollToElement($event)\">{{ page }}</div>\n </li>\n\n <li class=\"next-page\">\n <div *ngIf=\"current !== length\" (click)=\"nextPage(); scrollToElement($event)\" title=\"next page\">\n <lib-elux-icon [icon]=\"'Chevron_Right.svg'\" [size]=\"'16'\" [sizeType]=\"'px'\"></lib-elux-icon>\n </div>\n </li>\n\n <li class=\"pagination-number\">\n <div *ngIf=\"current !== length\" (click)=\"goLast(); scrollToElement($event)\">\n <lib-elux-icon [icon]=\"'Chevron_Right_Double.svg'\" [sizeType]=\"'px'\" [size]=\"'16'\"></lib-elux-icon>\n </div>\n </li>\n </ul>\n\n <ul class=\"paginator\" *ngIf=\"length <= 5\">\n <li *ngFor=\"let page of pages\" class=\"pagination-number\" [ngClass]=\"current === page ? 'current-page' : ''\">\n <div (click)=\"goToSpecPage(page, $event);\">\n {{ page }}\n </div>\n </li>\n </ul>\n</nav>\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output, ElementRef, ViewChild, AfterViewInit, HostListener, QueryList, ViewChildren } from '@angular/core';\n\n@Component({\n selector: 'lib-elux-stepbar',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './stepbar.component.html',\n styleUrl: './stepbar.component.scss',\n})\nexport class EluxStepBar {\n @Input() steps: number = 0;\n @Input() currentStep: number = 0;\n @Output() stepClicked: EventEmitter<number> = new EventEmitter<number>();\n\n constructor() {}\n\n stepClickedHandler(step: number) {\n this.stepClicked.emit(step);\n }\n\n isLastStep(): boolean {\n return this.currentStep === this.steps;\n }\n\n getStepsArray() {\n return new Array(this.steps);\n }\n\n getProgressWidth(): string {\n if (this.steps <= 1) return '0%';\n\n const segmentWidth = 100 / this.steps;\n const adjustment = this.isLastStep() ? 1 : 0.95;\n const progress = (this.currentStep - 1 + adjustment) * segmentWidth;\n\n return `${progress}%`;\n }\n}\n","<div class=\"progress-bar\">\n <div class=\"steps-container\">\n <div class=\"step\" \n *ngFor=\"let step of [].constructor(steps + 1); let i = index\"\n #stepElement\n [class.hidden]=\"i === steps\"\n (click)=\"i < steps && stepClickedHandler(i)\">\n {{ i < steps ? (i + 1) : '' }}\n </div>\n </div>\n <div class=\"progress\" [style.width]=\"getProgressWidth()\"></div>\n <div class=\"progress-background\" [style.width]=\"'100%'\"></div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { ControlValueAccessor, FormControl, FormsModule, NG_VALUE_ACCESSOR, NgControl, ReactiveFormsModule } from '@angular/forms';\nimport { Component, EventEmitter, Input, OnInit, OnChanges, Output, SimpleChanges, HostListener, ViewChild, ElementRef, Injector, forwardRef } from '@angular/core';\nimport { EluxIcon } from '../icon';\n\nexport interface Day {\n day: number;\n selected?: boolean;\n today?: boolean;\n disabled: boolean;\n}\nexport interface Month {\n value: number;\n text: string;\n disabled: boolean;\n}\nexport interface Year {\n value: number;\n disabled: boolean;\n}\n@Component({\n selector: 'lib-elux-datepicker',\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, FormsModule, EluxIcon],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EluxDatepicker),\n multi: true,\n },\n ],\n templateUrl: './datepicker.component.html',\n styleUrl: './datepicker.component.scss',\n})\nexport class EluxDatepicker implements OnInit, OnChanges, ControlValueAccessor {\n @Input() value: string = '';\n @Input() locale: string = 'pt-BR';\n @Input() idInput: string = '';\n @Input() placeholder: string = '00/00/0000';\n @Input() minDate?: string;\n @Input() maxDate?: string;\n @Output() dateSelected: EventEmitter<string> = new EventEmitter<string>();\n @Output() invalidDate: EventEmitter<string> = new EventEmitter<string>();\n @ViewChild('datepicker') datepicker!: ElementRef;\n\n disabled = false;\n showCalendar = false;\n pickerView: 'week' | 'month' | 'year' = 'week';\n currentDate = new Date();\n selectedDate: Date | null = null;\n formatedDate: string = '';\n days: Day[] = [];\n months: Month[] = [];\n years: Year[] = [];\n\n private onChange: Function = () => undefined;\n private onTouched: Function = () => undefined;\n private parentFormControl!: FormControl;\n\n constructor(private readonly injector: Injector) {}\n\n injectParentFormControl() {\n const ngControl = this.injector.get(NgControl, null);\n if (ngControl) {\n this.parentFormControl = ngControl.control as FormControl;\n }\n }\n\n writeValue(value: string): void {\n this.formatedDate = value;\n this.onBlur();\n }\n\n registerOnChange(fn: Function): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: Function): void {\n this.onTouched = fn;\n }\n\n get isTouched(): boolean {\n return this.parentFormControl?.touched || this.parentFormControl?.dirty;\n }\n\n get isInvalid(): boolean {\n return this.parentFormControl?.invalid;\n }\n\n headerDate() {\n return `${this.currentDate.toLocaleString(this.locale, {\n month: 'long',\n })} ${this.currentDate.getFullYear()}`;\n }\n\n headerDateWeek() {\n const daysOfWeek = [];\n const baseDate = new Date();\n\n for (let i = 0; i < 7; i++) {\n const day = new Date(baseDate.setDate(baseDate.getDate() - baseDate.getDay() + i));\n daysOfWeek.push(day.toLocaleDateString(this.locale, { weekday: 'narrow' }));\n }\n\n return daysOfWeek;\n }\n\n ngOnInit() {\n this.injectParentFormControl();\n\n if (this.value) {\n this.formatedDate = this.value;\n this.onBlur();\n }\n\n this.generateCalendar(this.currentDate);\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['value'] && !changes['value'].isFirstChange()) {\n this.formatedDate = this.value;\n this.onBlur();\n }\n }\n\n onChangeValue(event: Event) {\n const input = event.target as HTMLInputElement;\n let value = input.value.replace(/\\D/g, '');\n const separator = this.detectLocaleDateSeparator(this.locale);\n\n if (value.length <= 2) {\n this.formatedDate = value;\n } else if (value.length <= 4) {\n this.formatedDate = `${value.slice(0, 2)}${separator}${value.slice(2)}`;\n } else {\n this.formatedDate = `${value.slice(0, 2)}${separator}${value.slice(2, 4)}${separator}${value.slice(4, 8)}`;\n }\n\n input.value = this.formatedDate;\n input.setSelectionRange(input.value.length, input.value.length);\n }\n\n detectLocaleDateSeparator(locale: string): string {\n const sampleDate = new Date(2000, 0, 15);\n const formatted = sampleDate.toLocaleDateString(locale);\n const match = formatted.match(/[^0-9]/);\n return match ? match[0] : '/';\n }\n\n toggleCalendar() {\n this.showCalendar = !this.showCalendar;\n if (this.showCalendar) {\n this.pickerView = 'week';\n }\n }\n\n changeView() {\n switch (this.pickerView) {\n case 'week':\n this.pickerView = 'month';\n this.generateMonths();\n break;\n case 'month':\n this.pickerView = 'year';\n this.generateYears();\n break;\n case 'year':\n break;\n default:\n break;\n }\n }\n\n closeCalendar() {\n this.showCalendar = false;\n }\n\n previous() {\n switch (this.pickerView) {\n case 'week':\n this.prevMonth();\n break;\n case 'month':\n this.prevYear(1);\n break;\n case 'year':\n this.prevYear(30);\n break;\n default:\n break;\n }\n }\n\n next() {\n switch (this.pickerView) {\n case 'week':\n this.nextMonth();\n break;\n case 'month':\n this.nextYear(1);\n break;\n case 'year':\n this.nextYear(30);\n break;\n default:\n break;\n }\n }\n\n prevMonth() {\n this.currentDate = new Date(this.currentDate.setMonth(this.currentDate.getMonth() - 1));\n this.generateCalendar(this.currentDate);\n }\n\n nextMonth() {\n this.currentDate = new Date(this.currentDate.setMonth(this.currentDate.getMonth() + 1));\n this.generateCalendar(this.currentDate);\n }\n\n prevYear(yearQtde: number) {\n this.onChangeYear(this.currentDate.getFullYear() - yearQtde);\n this.generateYears();\n }\n\n nextYear(yearQtde: number) {\n this.onChangeYear(this.currentDate.getFullYear() + yearQtde);\n this.generateYears();\n }\n\n selectDate(day: Day) {\n const selected = new Date(this.currentDate.getFullYear(), this.currentDate.getMonth(), day.day);\n\n this.selectedDate = selected;\n this.formatedDate = this.selectedDate.toLocaleDateString(this.locale, {\n day: '2-digit',\n month: '2-digit',\n year: 'numeric',\n });\n\n this.generateCalendar(this.currentDate);\n this.closeCalendar();\n this.onBlur();\n }\n\n selectMonth(monthValue: number) {\n const maxDate = this.maxDate ? new Date(this.maxDate) : null;\n const selectedMonth = new Date(this.currentDate.getFullYear(), monthValue, 1);\n\n if (maxDate && selectedMonth > new Date(maxDate.getFullYear(), maxDate.getMonth(), 1)) {\n return;\n }\n\n this.currentDate = new Date(this.currentDate.getFullYear(), monthValue, 10);\n this.pickerView = 'week';\n this.generateCalendar(this.currentDate);\n }\n\n onChangeYear(year: number) {\n this.currentDate = new Date(this.currentDate.setFullYear(year));\n this.generateMonths();\n }\n\n selectYear(year: number) {\n this.onChangeYear(year);\n this.pickerView = 'month';\n }\n\n generateCalendar(date: Date) {\n this.days = [];\n const year = date.getFullYear();\n const month = date.getMonth();\n const minDate = this.minDate ? new Date(this.minDate) : null;\n const maxDate = this.maxDate ? new Date(this.maxDate) : null;\n const today = new Date();\n const isTodayMonth = today.getMonth() === month && today.getFullYear() === year;\n const selectedYear = this.selectedDate?.getFullYear();\n const selectedMonth = this.selectedDate?.getMonth();\n const selectedDay = this.selectedDate?.getDate();\n\n const firstWeekDayOfMonth = new Date(year, month, 1).getDay();\n const lastWeekDayOfMonth = new Date(year, month + 1, 0).getDate();\n\n // Preenche os dias do mês anterior, se necessário\n for (let i = firstWeekDayOfMonth; i > 0; i--) {\n this.days.push({ day: 0, disabled: true });\n }\n\n // Preenche os dias do mês atual\n for (let i = 1; i <= lastWeekDayOfMonth; i++) {\n const dateValue = new Date(year, month, i);\n const isToday = isTodayMonth && today.getDate() === i;\n const isSelected = selectedYear === year && selectedMonth === month && selectedDay === i;\n const disabled = ((minDate && dateValue < minDate) || (maxDate && dateValue > maxDate)) ?? false;\n this.days.push({ day: i, today: isToday, selected: isSelected, disabled: disabled });\n }\n }\n\n generateMonths() {\n this.months = [];\n const currentYear = this.currentDate.getFullYear();\n const maxDate = this.maxDate ? new Date(this.maxDate) : null;\n const minDate = this.minDate ? new Date(this.minDate) : null;\n\n for (let i = 0; i < 12; i++) {\n // Usar o dia 1 para evitar problemas com meses que não têm 31 dias\n const dateValue = new Date(currentYear, i, 1);\n const isDisabled = ((minDate && dateValue < minDate) || (maxDate && dateValue > maxDate)) ?? false;\n this.months.push({ value: i, text: dateValue.toLocaleString(this.locale, { month: 'long' }), disabled: isDisabled });\n }\n }\n\n generateYears() {\n this.years = [];\n const currentYear = this.currentDate.getFullYear();\n const maxDate = this.maxDate ? new Date(this.maxDate) : null;\n const minDate = this.minDate ? new Date(this.minDate) : null;\n\n for (let i = currentYear - 19; i <= currentYear + 10; i++) {\n const isDisabled = ((minDate && i < minDate.getFullYear()) || (maxDate && i > maxDate.getFullYear())) ?? false;\n this.years.push({ value: i, disabled: isDisabled });\n }\n }\n\n validDate(date: Date): boolean {\n return date instanceof Date && !isNaN(date.getTime());\n }\n\n onBlur(): void {\n const order = this.detectDateOrder(this.locale);\n const separator = this.detectDateSeparator(this.formatedDate);\n\n const parts = this.formatedDate.split(separator).map(Number);\n\n let isValid = false;\n let date: Date | undefined = undefined;\n\n if (parts.length === 3 && !parts.some(isNaN)) {\n const dateMap: { [key: string]: number } = {};\n [dateMap[order[0]], dateMap[order[1]], dateMap[order[2]]] = parts;\n\n const { day, month, year } = dateMap as { day: number; month: number; year: number };\n\n date = new Date(year, month - 1, day);\n\n isValid = this.validDate(date) && date.getFullYear() === year && date.getMonth() === month - 1 && date.getDate() === day;\n }\n\n this.onTouched();\n this.onChange(this.formatedDate);\n\n if (isValid && date) {\n this.dateSelected.emit(this.formatedDate);\n this.selectedDate = date;\n this.generateCalendar(this.currentDate);\n } else {\n this.invalidDate.emit(this.formatedDate);\n }\n }\n\n private detectDateOrder(locale: string): string[] {\n const sample = new Date(2025, 10, 23); // 23/11/2025\n const formatted = new Intl.DateTimeFormat(locale).format(sample);\n\n const parts = formatted.match(/\\d+/g);\n if (!parts || parts.length !== 3) return ['year', 'month', 'day']; // fallback\n\n const order: string[] = [];\n for (const part of parts) {\n if (part === '23') order.push('day');\n else if (part === '11') order.push('month');\n else if (part === '2025') order.push('year');\n }\n\n return order;\n }\n\n private detectDateSeparator(dateStr: string): string {\n if (dateStr.includes('/')) return '/';\n if (dateStr.includes('-')) return '-';\n return ''; // fallback\n }\n\n @HostListener('document:click', ['$event'])\n clickOutside(event: Event) {\n const target = event.target as HTMLElement;\n if (!target.closest('.date-picker') && !target.closest('.month-body') && !target.closest('.year-body')) {\n this.showCalendar = false;\n }\n }\n\n isPreviousDisabled(): boolean {\n if (!this.minDate) {\n return false;\n }\n\n const minDate = new Date(this.minDate);\n switch (this.pickerView) {\n case 'week':\n return this.currentDate.getFullYear() === minDate.getFullYear() && this.currentDate.getMonth() === minDate.getMonth();\n case 'month':\n return this.currentDate.getFullYear() === minDate.getFullYear();\n case 'year':\n return this.currentDate.getFullYear() - 30 < minDate.getFullYear();\n default:\n return false;\n }\n }\n\n isNextDisabled(): boolean {\n if (!this.maxDate) {\n return false;\n }\n\n const maxDate = new Date(this.maxDate);\n switch (this.pickerView) {\n case 'week':\n return this.currentDate.getFullYear() === maxDate.getFullYear() && this.currentDate.getMonth() === maxDate.getMonth();\n case 'month':\n return this.currentDate.getFullYear() === maxDate.getFullYear();\n case 'year':\n return this.currentDate.getFullYear() + 30 > maxDate.getFullYear();\n default:\n return false;\n }\n }\n}\n","<div class=\"date-picker\" #datepicker>\n <div class=\"div-calendar-icon\" (click)=\"!disabled ? toggleCalendar() : ''\">\n <lib-elux-icon class=\"calendar-icon\" [icon]=\"'Calendar.svg'\" [color]=\"'#011E41'\" [size]=\"'24'\" [sizeType]=\"'px'\"></lib-elux-icon>\n </div>\n <input\n [ngClass]=\"{\n 'date-input': true,\n 'ng-invalid': isInvalid,\n 'ng-touched': isTouched,\n }\"\n [value]=\"formatedDate\"\n (input)=\"onChangeValue($event)\"\n [id]=\"idInput\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n maxlength=\"10\"\n type=\"text\"\n (blur)=\"onBlur()\"\n />\n <div class=\"calendar\" *ngIf=\"showCalendar\">\n <div class=\"calendar-header\">\n <div class=\"previous\" (click)=\"previous()\">\n <lib-elux-icon [hidden]=\"isPreviousDisabled()\" [icon]=\"'Chevron_Left.svg'\" [size]=\"'22'\" [sizeType]=\"'px'\"> </lib-elux-icon>\n </div>\n <span (click)=\"changeView()\">{{ pickerView === 'week' ? headerDate() : currentDate.getFullYear() }}</span>\n <div class=\"next\" (click)=\"next()\">\n <lib-elux-icon [hidden]=\"isNextDisabled()\" [icon]=\"'Chevron_Right.svg'\" [size]=\"'22'\" [sizeType]=\"'px'\"> </lib-elux-icon>\n </div>\n </div>\n <div class=\"calendar-body\" *ngIf=\"pickerView === 'week'\">\n <div class=\"day-labels\">\n <span *ngFor=\"let day of headerDateWeek()\">{{ day }}</span>\n </div>\n <ng-container *ngFor=\"let day of days\">\n <div class=\"day\" [ngClass]=\"{ disabled: day.disabled, today: day.today, selected: day.selected }\" (click)=\"day.disabled ? null : selectDate(day)\">\n <span>{{ day.day }}</span>\n </div>\n </ng-container>\n </div>\n <div class=\"year-body\" *ngIf=\"pickerView === 'year'\">\n <ng-container *ngFor=\"let year of years\">\n <div class=\"year\" *ngIf=\"!year.disabled\" (click)=\"!year.disabled && selectYear(year.value)\">\n {{ year.value }}\n </div>\n </ng-container>\n </div>\n <div class=\"month-body\" *ngIf=\"pickerView === 'month'\">\n <ng-container *ngFor=\"let month of months\">\n <div class=\"month\" *ngIf=\"!month.disabled\" (click)=\"!month.disabled && selectMonth(month.value)\">\n {{ month.text }}\n </div>\n </ng-container>\n </div>\n </div>\n</div>\n","// toaster.service.ts\n\nimport { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ToasterService {\n toasts: any[] = [];\n\n private toastIdCounter = 0;\n\n success(message: string) {\n this.showToast('success', 'Check_Tick.svg', '#0C5F29', message);\n }\n\n error(message: string) {\n this.showToast('error', 'Warning.svg', '#9C231C', message);\n }\n\n warning(message: string) {\n this.showToast('warning', 'Warning.svg', '#b19459', message);\n }\n\n info(message: string) {\n this.showToast('info', 'Info.svg', '#557cb3', message);\n }\n\n public showToast(type: string, iconName: string, iconColor: string, message: string) {\n this.toastIdCounter++;\n const id = `${Date.now()}-${this.toastIdCounter}`;\n this.toasts.push({ id, type, iconName, iconColor, message, paused: false });\n if (type === 'success' || type === 'info' || type === 'warning') {\n this.removeToastAfter5Seconds(id);\n }\n }\n\n public removeToast(id: string) {\n this.toasts = this.toasts.filter((toast) => toast.id !== id);\n }\n\n public removeToastAfter5Seconds(id: string) {\n setTimeout(() => {\n const toast = this.toasts.find((toast) => toast.id === id);\n const removableTypes = ['success', 'info', 'warning'];\n\n if (toast && removableTypes.includes(toast.type) && !toast.paused) {\n this.toasts = this.toasts.filter((toast) => toast.id !== id);\n } else if (toast) {\n this.removeToastAfter5Seconds(id); // Recheck later if it was paused\n }\n }, 5000);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component } from '@angular/core';\nimport { ToasterService } from '../../services/toaster.service';\nimport { EluxIcon } from '../icon/icon.component';\n\n@Component({\n selector: 'lib-elux-toaster',\n standalone: true,\n imports: [CommonModule, EluxIcon],\n templateUrl: './toast.component.html',\n styleUrl: './toast.component.scss',\n\n})\nexport class EluxToast {\n constructor(public toasterService: ToasterService) { }\n\n pauseToast(toast: any) {\n toast.paused = true;\n }\n\n resumeToast(toast: any) {\n toast.paused = false;\n this.toasterService.removeToastAfter5Seconds(toast.id);\n }\n\n closeToast(toast: any) {\n this.toasterService.removeToast(toast.id)\n }\n}\n","<div class=\"elux-toast-container\">\n <div class=\"d-flex\" *ngFor=\"let toast of toasterService.toasts\" [ngClass]=\"['elux-toast-element', toast.type]\" (mouseenter)=\"pauseToast(toast)\" (mouseleave)=\"resumeToast(toast)\">\n <lib-elux-icon class=\"me-2\" [color]=\"toast.iconColor\" [icon]=\"toast.iconName\" size=\"20\" sizeType=\"px\"></lib-elux-icon>\n <div>\n {{ toast.message }}\n </div>\n <lib-elux-icon (click)=\"closeToast(toast)\" class=\"ms-auto cursor-pointer\" [color]=\"toast.iconColor\" icon=\"Close.svg\" size=\"24\" sizeType=\"px\"></lib-elux-icon>\n </div>\n</div>\n","import { RouterModule } from '@angular/router';\nimport { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, booleanAttribute } from '@angular/core';\nimport {\n DataTableRow,\n DataTableCell,\n DataTableCheckEvent,\n DataTableClickEvent,\n DataTableHeader,\n DatatableInputEvent,\n} from './datatable.component.types';\nimport { EluxLoading } from '../loading';\nimport { EluxPaginator, PaginationEvent } from '../paginator';\n\n@Component({\n selector: 'lib-elux-datatable',\n standalone: true,\n imports: [CommonModule, RouterModule, EluxPaginator, EluxLoading],\n templateUrl: './datatable.component.html',\n styleUrl: './datatable.component.scss',\n})\nexport class EluxDataTable implements OnInit, OnChanges {\n @Input() columns: DataTableHeader[] = [];\n @Input() rows: DataTableRow[] = [];\n @Input() totalRows: number = 1;\n @Input() itemsPerPage: number = 15;\n @Input() backendPagination: Boolean = false;\n @Input() emptyMessage: string = 'Nenhum item localizado com base nos critérios de busca.';\n @Input() loading: Boolean = false;\n @Input({ transform: booleanAttribute }) isRowClickable!: boolean;\n @Input({ transform: booleanAttribute }) isCellClickable!: boolean;\n @Input({ transform: booleanAttribute }) hasPaginator!: boolean;\n\n @Output() currentPageChange = new EventEmitter<number>();\n @Output() onClick = new EventEmitter<DataTableClickEvent>();\n @Output() onChecked = new EventEmitter<DataTableCheckEvent>();\n @Output() ontInputChange = new EventEmitter<DatatableInputEvent>();\n\n currentPage: number = 1;\n paginatorTotalPages: number = 1;\n displayRows: DataTableRow[] = [];\n\n ngOnInit(): void {\n this.paginatorTotalPages = Math.ceil(this.totalRows / this.itemsPerPage);\n this.populateTable();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['itemsPerPage']) {\n this.refreshPaginator();\n this.populateTable();\n }\n\n if (changes['totalRows']) {\n this.refreshPaginator();\n this.populateTable();\n }\n\n if (changes['rows']) {\n this.populateTable();\n }\n }\n\n onPageChange(event: PaginationEvent) {\n this.currentPage = event.page;\n if (this.backendPagination) {\n this.currentPageChange.emit(event.page);\n } else {\n this.populateTable();\n }\n }\n\n refreshPaginator() {\n this.paginatorTotalPages = Math.ceil(this.totalRows / this.itemsPerPage);\n this.currentPage = 1;\n }\n\n populateTable() {\n if (this.backendPagination) {\n this.displayRows = this.rows;\n } else {\n const startOfPage = (this.currentPage - 1) * this.itemsPerPage;\n const endOfPage = startOfPage + this.itemsPerPage;\n this.displayRows = this.rows.slice(startOfPage, endOfPage);\n }\n }\n\n onCheckboxChange(event: Event, row: any, cell: any, index: number) {\n cell.value = (event.target as HTMLInputElement).checked;\n this.onChecked.emit({ event, row, cell, index });\n }\n\n onInputChange(event: Event, row: any, cell: any, index: number) {\n cell.value = (event.target as HTMLInputElement).value;\n this.ontInputChange.emit({ event, row, cell, index });\n if (cell.type == 'input-number') {\n if (cell.value > cell.max) {\n cell.value = cell.max;\n (event.target as HTMLInputElement).value = cell.max;\n }\n if (cell.value < cell.min) {\n cell.value = cell.min;\n (event.target as HTMLInputElement).value = cell.min;\n }\n }\n }\n\n onRowClick(event: Event, row: DataTableRow, index: number) {\n if (this.isRowClickable) {\n this.onClick.emit({ event, row, index });\n }\n }\n\n onCellClick(event: Event, row: DataTableRow, cell: DataTableCell, index: number) {\n if (this.isCellClickable) {\n this.onClick.emit({ event, row, cell, index });\n }\n }\n\n getCellClasses(cell: DataTableCell): { [key: string]: boolean } {\n let classes: { [key: string]: boolean } = {\n 'clickable': this.isCellClickable\n };\n\n if (cell.customClass) {\n classes[cell.customClass] = true;\n }\n\n return classes;\n }\n\n getHeaderClasses(column: DataTableHeader): { [key: string]: boolean } {\n let classes: { [key: string]: boolean } = {};\n\n if (column.customClass) {\n classes[column.customClass] = true;\n }\n\n return classes;\n }\n}\n","<div class=\"table-container\">\n <div class=\"table-header\">\n @for (column of columns; track $index) {\n <div class=\"header-row-cell\" [ngClass]=\"getHeaderClasses(column)\">\n {{column.text}}\n </div>\n }\n </div>\n\n @if(loading){\n <div class=\"table-row justify-content-center\">\n <lib-elux-loading></lib-elux-loading>\n </div>\n }\n\n @if (displayRows.length == 0) {\n <div class=\"table-row pt-3 pb-3\">\n {{emptyMessage}}\n </div>\n }\n\n @for (row of displayRows; track $index) {\n <div class=\"table-row\" [ngClass]=\"{'clickable': isRowClickable}\" (click)=\"onRowClick($event, row, $index)\">\n @for (cell of row; track $index) {\n @switch (cell.type) {\n @case (\"redirect-internal\") {\n <div class=\"row-cell\" [ngClass]=\"getCellClasses(cell)\" (click)=\"onCellClick($event, row, cell, $index)\">\n <a [routerLink]=\"cell.value.toString()\" class=\"route\">{{cell.name}}</a>\n </div>\n }\n @case (\"redirect-external\") {\n <div class=\"row-cell\" [ngClass]=\"getCellClasses(cell)\" (click)=\"onCellClick($event, row, cell, $index)\">\n <a [href]=\"cell.value\" class=\"route\" target=\"_blank\">{{cell.name}}</a>\n </div>\n }\n @case (\"checkbox\") {\n <div class=\"row-cell\" [ngClass]=\"getCellClasses(cell)\">\n <input type=\"checkbox\" [checked]=\"cell.value\" (change)=\"onCheckboxChange($event, row, cell, $index)\" [attr.disabled]=\"cell.disabled ? true : null\" />\n </div>\n }\n @case (\"input\") {\n <div class=\"row-cell\" [ngClass]=\"getCellClasses(cell)\">\n <input step=\"\" type=\"text\" [value]=\"cell.value\" (blur)=\"onInputChange($event, row, cell, $index)\" />\n </div>\n }\n @case (\"input-number\") {\n <div class=\"row-cell\" [ngClass]=\"getCellClasses(cell)\">\n <input step=\"\" type=\"number\" [value]=\"cell.value\" [min]=\"cell.min\" [max]=\"cell.max\" (blur)=\"onInputChange($event, row, cell, $index)\" />\n </div>\n }\n @default {\n <div class=\"row-cell\" [ngClass]=\"getCellClasses(cell)\" (click)=\"onCellClick($event, row, cell, $index)\">\n {{cell.value}}\n </div>\n }\n }\n }\n </div>\n }\n\n @if (hasPaginator && totalRows > itemsPerPage) {\n <div class=\"table-footer\">\n <lib-elux-paginator (paginationEvents)=\"onPageChange($event)\" [anchor]=\"true\" [length]=\"paginatorTotalPages\"\n [current]=\"currentPage\">\n </lib-elux-paginator>\n </div>\n }\n\n</div>","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { EluxIcon } from '../icon';\n\n@Component({\n selector: 'lib-elux-accordion',\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, EluxIcon],\n templateUrl: './accordion.component.html',\n styleUrl: './accordion.component.scss', \n})\nexport class EluxAccordion {\n @Input() leftArrow: boolean = false;\n\n @Output() toggleEventEmitter = new EventEmitter<boolean>();\n \n isOpen = false;\n\n toggle() {\n this.isOpen = !this.isOpen;\n this.toggleEventEmitter.emit(this.isOpen);\n }\n}\n","<div class=\"accordion\">\n <div class=\"accordion-header\" [class.left-arrow]=\"leftArrow\" (click)=\"toggle()\">\n <lib-elux-icon *ngIf=\"leftArrow\" class=\"header-icon me-4\" [icon]=\"isOpen ? 'Chevron_Up.svg' : 'Chevron_Down.svg'\" [color]=\"'#011E41'\" [size]=\"'24'\" [sizeType]=\"'px'\"></lib-elux-icon>\n <ng-content select=\"[header]\"></ng-content>\n <lib-elux-icon *ngIf=\"!leftArrow\" class=\"header-icon\" [icon]=\"isOpen ? 'Chevron_Up.svg' : 'Chevron_Down.svg'\" [color]=\"'#011E41'\" [size]=\"'24'\" [sizeType]=\"'px'\"></lib-elux-icon>\n </div>\n <div class=\"accordion-body\" [ngClass]=\"{ open: isOpen }\">\n <ng-content></ng-content>\n </div>\n</div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { EluxIcon } from '../icon';\n\n@Component({\n selector: 'lib-elux-modal',\n templateUrl: './modal.component.html',\n styleUrls: ['./modal.component.scss'],\n imports: [\n EluxIcon,\n CommonModule\n ],\n standalone: true,\n})\nexport class EluxModal {\n @Input() open = false;\n @Input() buttonClose = true;\n @Output() onClose = new EventEmitter<void>();\n\n handleClose() {\n this.onClose.emit();\n }\n}\n","<div class=\"modal\" [class.open]=\"open\">\n <div class=\"modal-content\">\n <lib-elux-icon *ngIf=\"buttonClose\" class=\"close-icon\" [icon]=\"'Close.svg'\" [color]=\"'#011E41'\" [size]=\"'28'\" [sizeType]=\"'px'\"\n (click)=\"handleClose()\"></lib-elux-icon>\n <div class=\"modal-header\">\n <ng-content select=\"[modal-header]\"></ng-content>\n </div>\n <div class=\"modal-body\">\n <ng-content select=\"[modal-body]\"></ng-content>\n </div>\n <div class=\"modal-footer\">\n <ng-content select=\"[modal-footer]\"></ng-content>\n </div>\n </div>\n <div class=\"modal-backdrop\" (click)=\"handleClose()\"></div>\n</div>\n","import { CommonModule } from '@angular/common';\n\nimport { Component, ElementRef, EventEmitter, HostListener, input, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { EluxIcon } from '../icon';\nimport { debounceTime, Subject } from 'rxjs';\nimport { EluxLoading } from \"../loading/loading.component\";\n\ninterface Options {\n value: string;\n text: string;\n}\n\n@Component({\n selector: 'lib-elux-input-search',\n standalone: true,\n imports: [EluxIcon, CommonModule, FormsModule, EluxLoading, EluxLoading],\n templateUrl: './input-search.component.html',\n styleUrl: './input-search.component.scss',\n})\nexport class EluxInputSearchComponent implements OnInit {\n @Input() options: Options[] = [];\n @Input() placeholder: string = '';\n @Input() value: string = '';\n @Input() loading: boolean = false;\n @Input() disabled: boolean = false;\n @ViewChild('inputsearch') inputsearch!: ElementRef;\n\n @Output() valueSelected = new EventEmitter<Options>();\n @Output() keyUpValue = new EventEmitter<string>();\n\n isOpen: boolean = false;\n private keyUpSubject = new Subject<string>();\n\n constructor() {\n this.keyUpSubject.pipe(\n debounceTime(500)\n ).subscribe(value => {\n if (value.length > 2) {\n this.keyUpValue.emit(value);\n this.isOpen = true;\n } else {\n this.isOpen = false;\n }\n });\n }\n\n ngOnInit() {\n\n }\n\n selectOption(option: Options) {\n this.valueSelected.emit(option);\n this.value = option.text;\n this.isOpen = false;\n }\n keyUp(event: any): void {\n this.value = event.srcElement.value;\n this.keyUpSubject.next(this.value);\n }\n\n @HostListener('document:click', ['$event'])\n onClickOutside(event: MouseEvent) {\n if (!this.inputsearch.nativeElement.contains(event.target)) {\n this.isOpen = false;\n }\n }\n}\n","<div class=\"input-search\" #inputsearch>\n <input type=\"search\" class=\"input-field\" [disabled]=\"disabled\" [placeholder]=\"placeholder\" (keyup)=\"keyUp($event)\" [value]=\"value\" />\n <lib-elux-loading class=\"loading\" *ngIf=\"loading\" [size]=\"32\"></lib-elux-loading>\n <div class=\"search-list\" *ngIf=\"isOpen\">\n <div *ngFor=\"let item of options\">\n <div class=\"item-search\" *ngIf=\"item.text.toLowerCase().includes(value.toLowerCase())\" (click)=\"selectOption(item)\">\n {{ item.text }}\n </div>\n </div>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { EluxButton } from '../button';\n\n@Component({\n selector: 'lib-elux-input-search-modal',\n standalone: true,\n imports: [CommonModule, EluxButton],\n templateUrl: './input-search-modal.component.html',\n styleUrl: './input-search-modal.component.scss',\n})\nexport class EluxInputSearchModalComponent implements OnInit, OnChanges {\n @Input() value: string = '';\n @Input() placeholder: string = '';\n @Output() searchClickEvent = new EventEmitter<Event>(); \n\n constructor() {}\n\n ngOnInit(): void {}\n\n ngOnChanges(changes: SimpleChanges): void {}\n\n searchClick(event: Event) {\n this.searchClickEvent.emit(event);\n }\n}\n","<div class=\"input-search\">\n <input\n type=\"text\"\n class=\"input-field\"\n [placeholder]=\"placeholder\"\n [value]=\"value\"\n disabled\n />\n <lib-elux-button [icon]=\"'Search.svg'\" type=\"basic\" (onClick)=\"searchClick($event)\"></lib-elux-button>\n</div>\n","import { Component, EventEmitter, Input, Output, OnInit, OnChanges, SimpleChanges, HostListener } from '@angular/core';\nimport { EluxIcon } from '../icon';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n@Component({\n selector: 'lib-elux-dropdown-multiple',\n templateUrl: './dropdown-multiple.component.html',\n styleUrls: ['./dropdown-multiple.component.scss'],\n imports: [CommonModule, FormsModule, ReactiveFormsModule, EluxIcon],\n standalone: true,\n})\nexport class EluxDropdownMultiple implements OnInit, OnChanges {\n @Input() disabled: boolean = false;\n @Input() idInput: string = '';\n @Input() placeholder: string = 'Selecione';\n @Input() options: { value: any; text: string }[] = [];\n @Input() selectedOptions: any[] = [];\n @Output() optionSelected: EventEmitter<any[]> = new EventEmitter<any[]>();\n\n isOpen: boolean = false;\n selectedOptionsText: string[] = [];\n\n constructor() {}\n\n ngOnInit() {\n this.updateSelectedOptions();\n if (!this.idInput) {\n this.idInput = `dropdown-multiple-${Math.random().toString(36).substring(2, 11)}`;\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['selectedOptions'] && !changes['selectedOptions'].isFirstChange()) {\n this.updateSelectedOptions();\n }\n }\n\n updateSelectedOptions() {\n this.selectedOptionsText = this.options.filter((option) => this.selectedOptions.includes(option.value)).map((option) => option.text);\n }\n\n toggleDropdown() {\n if (!this.disabled) {\n this.isOpen = !this.isOpen;\n }\n }\n\n selectOption(option: { value: any; text: string }) {\n const index = this.selectedOptions.indexOf(option.value);\n if (index > -1) {\n this.selectedOptions.splice(index, 1);\n } else {\n this.selectedOptions.push(option.value);\n }\n this.updateSelectedOptions();\n this.optionSelected.emit(this.selectedOptions);\n }\n\n @HostListener('document:click', ['$event'])\n onDocumentClick(event: MouseEvent): void {\n const target = event.target as HTMLElement;\n if (!target.closest(`#${this.idInput}`)) {\n this.isOpen = false;\n }\n }\n}\n","<div class=\"custom-dropdown\">\n <input class=\"selected-option\" type=\"text\" [id]=\"idInput\" [placeholder]=\"placeholder\" [value]=\"selectedOptionsText.length ? selectedOptionsText.join(', ') : ''\" readonly (click)=\"toggleDropdown()\" />\n <lib-elux-icon class=\"arrow-icon noClick\" [color]=\"'#7A8A9B'\" [icon]=\"'Chevron_Down.svg'\" [ngClass]=\"{ 'arrow-rotate': isOpen }\" [size]=\"'16'\" [sizeType]=\"'px'\"></lib-elux-icon>\n <ul class=\"dropdown-list\" *ngIf=\"isOpen\">\n <li *ngFor=\"let option of options\" (click)=\"selectOption(option)\" class=\"d-flex align-items-center\" [class.selected]=\"selectedOptions.includes(option.value)\">\n <input class=\"me-2 col-3 ml-\" type=\"checkbox\" [checked]=\"selectedOptions.includes(option.value)\" />\n <span class=\"col-9\">\n {{ option.text }}\n </span>\n </li>\n </ul>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { AfterContentInit, Component, ContentChildren, ElementRef, EventEmitter, Input, OnChanges, Output, QueryList, Renderer2, SimpleChanges, ViewChild } from '@angular/core';\nimport { EluxIcon } from '../icon';\n\nexport type ProductItem = {\n name: string;\n image: string;\n};\n\n@Component({\n standalone: true,\n selector: 'lib-elux-carousel',\n templateUrl: './carousel.component.html',\n styleUrls: ['./carousel.component.scss'],\n imports: [CommonModule, EluxIcon],\n})\nexport class EluxCarouselComponent implements AfterContentInit {\n @ContentChildren('carouselItem', { read: ElementRef }) items!: QueryList<ElementRef>;\n @ViewChild('dotsContainer') dotsContainer!: ElementRef;\n\n @Input() itemsPerSlide: number = 4;\n @Input() removeArrows: boolean = false;\n @Input() removeDots: boolean = false;\n @Input() autoPlayInterval: number | null = null;\n\n @Output() previousClickEventEmitter = new EventEmitter<Event>();\n @Output() nextClickEventEmitter = new EventEmitter<Event>();\n @Output() dotClickEventEmitter = new EventEmitter<Event>(); \n\n currentIndex = 0;\n offset = 0;\n\n private touchStartX = 0;\n private touchEndX = 0;\n private autoPlayTimer: any;\n\n constructor(private renderer: Renderer2) {}\n\n ngAfterContentInit() {\n this.setItemWidths();\n\n if (this.autoPlayInterval) {\n this.startAutoPlay();\n }\n\n this.items.changes.subscribe(() => {\n this.setItemWidths();\n this.updateOffset();\n this.goToFirstSlide();\n });\n }\n\n private setItemWidths() {\n this.items.forEach((item) => {\n const minWidth = `calc(100% / ${this.itemsPerSlide})`;\n this.renderer.setStyle(item.nativeElement, 'minWidth', minWidth);\n });\n }\n\n startAutoPlay() {\n this.stopAutoPlay(); // Garante que não há intervalos ativos\n this.autoPlayTimer = setInterval(() => {\n this.nextSlide();\n }, (this.autoPlayInterval || 0) * 1000);\n }\n\n stopAutoPlay() {\n if (this.autoPlayTimer) {\n clearInterval(this.autoPlayTimer);\n this.autoPlayTimer = null;\n }\n }\n\n onTouchStart(event: TouchEvent) {\n this.touchStartX = event.touches[0].clientX;\n this.touchEndX = this.touchStartX; // reseta para evitar swipe falso\n }\n\n onTouchMove(event: TouchEvent) {\n this.touchEndX = event.touches[0].clientX;\n }\n\n onTouchEnd() {\n const swipeDistance = this.touchEndX - this.touchStartX;\n\n // Só considera swipe se movimento for maior que 2px\n if (Math.abs(swipeDistance) < 2) return;\n\n if (swipeDistance > 0) {\n this.prevSlide();\n } else if (swipeDistance < 0) {\n this.nextSlide();\n }\n }\n\n getStepIndexes(): number[] {\n const totalSteps = Math.ceil(this.items.length / this.itemsPerSlide);\n return Array.from({ length: totalSteps }, (_, i) => i);\n }\n\n getCurrentStepIndex(): number {\n return Math.floor(this.currentIndex / this.itemsPerSlide);\n }\n\n goToFirstSlide() {\n this.currentIndex = 0;\n this.updateOffset();\n this.scrollActiveDotIntoView(0);\n }\n\n goToSlide(index: number) {\n this.currentIndex = index * this.itemsPerSlide;\n this.updateOffset();\n this.scrollActiveDotIntoView(index);\n this.dotClickEventEmitter.emit();\n }\n\n prevSlide() {\n if (this.currentIndex > 0) {\n this.currentIndex = Math.max(0, this.currentIndex - this.itemsPerSlide);\n this.updateOffset();\n this.scrollActiveDotIntoView(this.getCurrentStepIndex());\n this.previousClickEventEmitter.emit();\n }\n }\n\n nextSlide() {\n const maxIndex = this.items.length - this.itemsPerSlide;\n if (this.currentIndex >= maxIndex) {\n this.currentIndex = 0;\n } else {\n this.currentIndex = Math.min(maxIndex, this.currentIndex + this.itemsPerSlide);\n }\n this.updateOffset();\n this.scrollActiveDotIntoView(this.getCurrentStepIndex());\n this.nextClickEventEmitter.emit();\n }\n\n updateOffset() {\n this.offset = -100 * (this.currentIndex / this.itemsPerSlide);\n }\n\n private scrollActiveDotIntoView(index: number) {\n setTimeout(() => {\n const dotsContainer = this.dotsContainer?.nativeElement;\n if (!dotsContainer) return;\n\n const dots = dotsContainer.getElementsByClassName('dot');\n if (!dots || !dots[index]) return;\n\n const activeDot = dots[index];\n const containerWidth = dotsContainer.offsetWidth;\n const dotWidth = activeDot.offsetWidth + 10;\n const scrollPosition = dotWidth * index - containerWidth / 2 + dotWidth / 2;\n\n dotsContainer.scrollTo({\n left: Math.max(0, scrollPosition),\n behavior: 'smooth',\n });\n });\n }\n}\n","<div class=\"c-carousel-container\">\n <div class=\"c-carousel-slides\" [style.transform]=\"'translateX(' + offset + '%)'\" (touchstart)=\"onTouchStart($event)\" (touchmove)=\"onTouchMove($event)\" (touchend)=\"onTouchEnd()\">\n <ng-content></ng-content>\n </div>\n\n <div class=\"c-carousel-footer\">\n <button [hidden]=\"removeArrows\" class=\"c-carousel-nav prev\" title=\"Slide anterior\" aria-label=\"Slide anterior\" (click)=\"prevSlide()\">\n <lib-elux-icon [icon]=\"'Chevron_Left.svg'\" [size]=\"'16'\" [sizeType]=\"'px'\" [color]=\"'#020F2E'\"></lib-elux-icon>\n </button>\n\n <div [hidden]=\"removeDots\" class=\"c-carousel-dots\" #dotsContainer>\n <span\n role=\"button\"\n class=\"dot\"\n *ngFor=\"let index of getStepIndexes()\"\n (click)=\"goToSlide(index)\"\n (keyup)=\"goToSlide(index)\"\n [class.active]=\"index === getCurrentStepIndex()\"\n [attr.aria-disabled]=\"true\"\n [attr.aria-label]=\"'pagina' + (index + 1)\"\n >\n </span>\n </div>\n\n <button [hidden]=\"removeArrows\" class=\"c-carousel-nav next\" title=\"Próximo slide\" aria-label=\"Próximo slide\" (click)=\"nextSlide()\">\n <lib-elux-icon [icon]=\"'Chevron_Right.svg'\" [size]=\"'16'\" [sizeType]=\"'px'\" [color]=\"'#020F2E'\"></lib-elux-icon>\n </button>\n </div>\n</div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'lib-elux-switch',\n standalone: true,\n template: `\n <div\n [class.small]=\"size === 'small'\"\n [class.medium]=\"size === 'medium'\"\n [class.large]=\"size === 'large'\"\n >\n <label class=\"lib-elux-switch\">\n <input type=\"checkbox\" [checked]=\"checked\" (change)=\"_onChange($event)\" />\n <span class=\"slider\"></span>\n </label>\n </div>\n `,\n styleUrls: ['./switch.component.scss']\n})\nexport class EluxSwitch {\n @Input() checked = false;\n @Input() size: 'small' | 'medium' | 'large' = 'medium';\n @Output() onChange = new EventEmitter<boolean>();\n\n _onChange(event: any) {\n this.onChange.emit(event.target.checked);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { EluxIcon } from '../icon';\n\n@Component({\n selector: 'lib-elux-chip',\n standalone: true,\n imports: [CommonModule, EluxIcon],\n templateUrl: './chip.component.html',\n styleUrls: ['./chip.component.scss'],\n})\nexport class EluxChip {\n @Input() value: string = '';\n @Input() ariaLabel: string = '';\n @Output() onClick = new EventEmitter<any>();\n\n _onClick() {\n this.onClick.emit();\n }\n}\n","<div class=\"chip\" (click)=\"_onClick()\" tabindex=\"0\" role=\"button\" [attr.aria-label]=\"ariaLabel\">\n {{ value }}\n <lib-elux-icon icon=\"Close.svg\" size=\"24\" sizeType=\"px\" color=\"#fff\" />\n</div>\n","import { Component, Input } from '@angular/core';\nimport { EluxIcon } from '../icon';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'lib-elux-card-1',\n templateUrl: './card1.component.html',\n styleUrls: ['./card1.component.scss'],\n standalone: true,\n imports: [EluxIcon, CommonModule],\n})\nexport class EluxCard1 {\n @Input() text!: string;\n @Input() iconLeft!: string;\n @Input() iconRight!: string;\n}\n","<div class=\"card1 p-3\">\n <lib-elux-icon *ngIf=\"iconLeft\" class=\"iconLeft\" [icon]=\"iconLeft\" [size]=\"'24'\" [sizeType]=\"'px'\"></lib-elux-icon>\n <div class=\"card-content\">\n <span class=\"subtitle-1\">{{ text }}</span>\n <lib-elux-icon class=\"iconRight\" [icon]=\"iconRight\" [size]=\"'24'\" [sizeType]=\"'px'\"></lib-elux-icon>\n </div>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { EluxIcon } from '../icon';\n\n@Component({\n selector: 'lib-elux-card-2',\n templateUrl: './card2.component.html',\n styleUrls: ['./card2.component.scss'],\n standalone: true,\n imports: [EluxIcon],\n})\nexport class EluxCard2 {\n @Input() text!: string;\n @Input() icon!: string;\n}\n","<div class=\"subtitle-1 card2 d-flex justify-content-between align-items-center\">\n <span class=\"subtitle-1 text-blue\">{{ text }}</span>\n <lib-elux-icon [icon]=\"icon\" [size]=\"'24'\" [sizeType]=\"'px'\"></lib-elux-icon>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { EluxIcon } from '../icon';\n\n@Component({\n selector: 'lib-elux-card-3',\n templateUrl: './card3.component.html',\n styleUrls: ['./card3.component.scss'],\n standalone: true,\n imports: [EluxIcon],\n})\nexport class EluxCard3 {\n @Input() title!: string;\n @Input() text!: string;\n @Input() icon!: string;\n}\n","<div class=\"card3 p-3 subtitle-1 d-flex align-items-center\">\n <div class=\"pe-3\">\n <lib-elux-icon [icon]=\"icon\" [size]=\"'40'\" [sizeType]=\"'px'\"></lib-elux-icon>\n </div>\n <div class=\"d-flex flex-column\">\n <span class=\"heading-3 text-blue\">{{ title }}</span>\n <span class=\"body mt-2\">{{ text }}</span>\n </div>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { EluxIcon } from '../icon';\n\n@Component({\n selector: 'lib-elux-card-4',\n templateUrl: './card4.component.html',\n styleUrls: ['./card4.component.scss'],\n standalone: true,\n imports: [EluxIcon],\n})\nexport class EluxCard4 {\n @Input() title!: string;\n @Input() text!: string;\n}\n","<div class=\"card4 p-3\">\n <div class=\"d-flex flex-row justify-content-between align-items-center\">\n <span class=\"subtitle-1 text-blue\">{{ title }}</span>\n <lib-elux-icon [icon]=\"'Arrow_Right.svg'\" [size]=\"'24'\" [sizeType]=\"'px'\"></lib-elux-icon>\n </div>\n <div class=\"d-flex mt-2\">\n <span class=\"body\">{{ text }}</span>\n </div>\n</div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'lib-elux-loading-2',\n templateUrl: './loading-2.component.html',\n styleUrls: ['./loading-2.component.scss'],\n imports: [],\n standalone: true,\n})\nexport class EluxLoading2 {\n @Input() open = false;\n}\n","<div class=\"modal\" [class.open]=\"open\">\n <div class=\"modal-content\">\n <img class=\"content-icon mb-4\" src=\"/assets/icons/Loading.webp\" />\n <span class=\"content-title mt-2 mb-3\">Carregando...</span>\n <span class=\"content-description\">Por favor, aguarde enquanto buscamos a melhor solução.</span>\n </div>\n <div class=\"modal-backdrop\"></div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { EluxIcon } from '../icon';\n\n@Component({\n selector: 'lib-elux-arrow-link',\n templateUrl: './arrow-link.component.html',\n styleUrls: ['./arrow-link.component.scss'],\n imports: [CommonModule, RouterModule, EluxIcon],\n standalone: true,\n})\nexport class EluxArrowLink {\n @Input() title: string = '';\n @Input() reverse: boolean = false;\n @Input() icon_name: string = '';\n @Input() icon_size: string = '26';\n}\n","<div *ngIf=\"title\" class=\"single-action mat-elevation-z0\">\n <div class=\"text-container\">\n <lib-elux-icon *ngIf=\"reverse\" class=\"back\" [icon]=\"'Chevron_Left.svg'\" [color]=\"'#A5742E'\" [size]=\"'24'\" [sizeType]=\"'px'\"> </lib-elux-icon>\n <div class=\"content\">\n <lib-elux-icon class=\"content-icon\" *ngIf=\"!!icon_name\" [icon]=\"icon_name\" [sizeType]=\"'px'\" [size]=\"icon_size\"> </lib-elux-icon>\n <span>{{ title }}</span> \n </div>\n <lib-elux-icon *ngIf=\"!reverse\" class=\"go\" [icon]=\"'Chevron_Right.svg'\" [color]=\"'#A5742E'\" [size]=\"'24'\" [sizeType]=\"'px'\"> </lib-elux-icon>\n </div>\n</div>\n","import { Type } from '@angular/core';\nimport { EluxBreadcrumb } from './breadcrumb';\nimport { EluxButton } from './button';\nimport { EluxDropdown } from './dropdown';\nimport { EluxIcon } from './icon';\nimport { EluxPaginator } from './paginator';\nimport { EluxStepBar } from './stepbar';\nimport { EluxDatepicker } from './datepicker';\nimport { EluxToast } from './toast';\nimport { EluxDataTable } from './datatable';\nimport { EluxAccordion } from './accordion';\nimport { EluxModal } from './modal';\nimport { EluxInputSearchComponent } from './input-search';\nimport { EluxLoading } from './loading';\nimport { EluxInputSearchModalComponent } from './input-search-modal/input-search-modal.component';\nimport { EluxDropdownMultiple } from './dropdown-multiple';\nimport { EluxCarouselComponent } from './carousel';\nimport { EluxSwitch } from './switch';\nimport { EluxChip } from './chip';\n\nexport const ElectroluxComponents: Type<any>[] = [\n EluxBreadcrumb,\n EluxButton,\n EluxDatepicker,\n EluxDropdown,\n EluxIcon,\n EluxPaginator,\n EluxStepBar,\n EluxToast,\n EluxDataTable,\n EluxAccordion,\n EluxModal,\n EluxInputSearchComponent,\n EluxInputSearchModalComponent,\n EluxLoading,\n EluxDropdownMultiple,\n EluxCarouselComponent,\n EluxSwitch,\n EluxChip,\n];\n\nexport * from './breadcrumb';\nexport * from './button';\nexport * from './dropdown';\nexport * from './icon';\nexport * from './paginator';\nexport * from './stepbar';\nexport * from './datepicker';\nexport * from './toast';\nexport * from './datatable';\nexport * from './accordion';\nexport * from './modal';\nexport * from './loading';\nexport * from './input-search';\nexport * from './input-search-modal';\nexport * from './card-1';\nexport * from './card-2';\nexport * from './card-3';\nexport * from './card-4';\nexport * from './dropdown-multiple';\nexport * from './loading-2';\nexport * from './carousel';\nexport * from './arrow-link';\nexport * from './switch';\nexport * from './chip';\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ElectroluxComponents } from '../components';\n\n@NgModule({\n imports: [CommonModule, ...ElectroluxComponents],\n exports: [...ElectroluxComponents],\n})\nexport class ElectroluxDesignSystemModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i1","i1.ToasterService","i1.EluxBreadcrumb","i2.EluxButton","i3.EluxDatepicker","i4.EluxDropdown","i5.EluxIcon","i6.EluxPaginator","i7.EluxStepBar","i8.EluxToast","i9.EluxDataTable","i10.EluxAccordion","i11.EluxModal","i12.EluxInputSearchComponent","i13.EluxInputSearchModalComponent","i14.EluxLoading","i15.EluxDropdownMultiple","i16.EluxCarouselComponent","i17.EluxSwitch","i18.EluxChip"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"elxjs-ui.mjs","sources":["../../../../ui/library/src/lib/components/icon/icon.component.ts","../../../../ui/library/src/lib/components/icon/icon.component.html","../../../../ui/library/src/lib/components/breadcrumb/breadcrumb.component.ts","../../../../ui/library/src/lib/components/breadcrumb/breadcrumb.component.html","../../../../ui/library/src/lib/components/loading/loading.component.ts","../../../../ui/library/src/lib/components/loading/loading.component.html","../../../../ui/library/src/lib/components/button/button.component.ts","../../../../ui/library/src/lib/components/button/button.component.html","../../../../ui/library/src/lib/components/dropdown/dropdown.component.ts","../../../../ui/library/src/lib/components/dropdown/dropdown.component.html","../../../../ui/library/src/lib/components/paginator/paginator.component.ts","../../../../ui/library/src/lib/components/paginator/paginator.component.html","../../../../ui/library/src/lib/components/stepbar/stepbar.component.ts","../../../../ui/library/src/lib/components/stepbar/stepbar.component.html","../../../../ui/library/src/lib/components/datepicker/datepicker.component.ts","../../../../ui/library/src/lib/components/datepicker/datepicker.component.html","../../../../ui/library/src/lib/services/toaster.service.ts","../../../../ui/library/src/lib/components/toast/toast.component.ts","../../../../ui/library/src/lib/components/toast/toast.component.html","../../../../ui/library/src/lib/components/datatable/datatable.component.ts","../../../../ui/library/src/lib/components/datatable/datatable.component.html","../../../../ui/library/src/lib/components/accordion/accordion.component.ts","../../../../ui/library/src/lib/components/accordion/accordion.component.html","../../../../ui/library/src/lib/components/modal/modal.component.ts","../../../../ui/library/src/lib/components/modal/modal.component.html","../../../../ui/library/src/lib/components/input-search/input-search.component.ts","../../../../ui/library/src/lib/components/input-search/input-search.component.html","../../../../ui/library/src/lib/components/input-search-modal/input-search-modal.component.ts","../../../../ui/library/src/lib/components/input-search-modal/input-search-modal.component.html","../../../../ui/library/src/lib/components/dropdown-multiple/dropdown-multiple.component.ts","../../../../ui/library/src/lib/components/dropdown-multiple/dropdown-multiple.component.html","../../../../ui/library/src/lib/components/carousel/carousel.component.ts","../../../../ui/library/src/lib/components/carousel/carousel.component.html","../../../../ui/library/src/lib/components/switch/switch.component.ts","../../../../ui/library/src/lib/components/chip/chip.component.ts","../../../../ui/library/src/lib/components/chip/chip.component.html","../../../../ui/library/src/lib/components/card-1/card1.component.ts","../../../../ui/library/src/lib/components/card-1/card1.component.html","../../../../ui/library/src/lib/components/card-2/card2.component.ts","../../../../ui/library/src/lib/components/card-2/card2.component.html","../../../../ui/library/src/lib/components/card-3/card3.component.ts","../../../../ui/library/src/lib/components/card-3/card3.component.html","../../../../ui/library/src/lib/components/card-4/card4.component.ts","../../../../ui/library/src/lib/components/card-4/card4.component.html","../../../../ui/library/src/lib/components/loading-2/loading-2.component.ts","../../../../ui/library/src/lib/components/loading-2/loading-2.component.html","../../../../ui/library/src/lib/components/arrow-link/arrow-link.component.ts","../../../../ui/library/src/lib/components/arrow-link/arrow-link.component.html","../../../../ui/library/src/lib/components/index.ts","../../../../ui/library/src/lib/modules/electrolux-design-system.module.ts","../../../../ui/library/src/elxjs-ui.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\nimport { Component, ElementRef, Input, ViewChild } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\n\n@Component({\n selector: 'lib-elux-icon',\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule],\n templateUrl: './icon.component.html',\n styleUrl: './icon.component.scss'\n})\nexport class EluxIcon {\n @ViewChild('iconSpan') iconSpan!: ElementRef;\n\n @Input() color = '#011e41';\n @Input() useSubscription = false;\n @Input() icon = '';\n @Input() description = '';\n @Input() size = '';\n @Input() height = '';\n @Input() width = '';\n @Input() sizeType = 'px';\n\n constructor() {\n }\n\n public iconMask() {\n return {\n height: this.size ? `${this.size}${this.sizeType}` : `${this.height}${this.sizeType}`,\n width: this.size ? `${this.size}${this.sizeType}` : `${this.width}${this.sizeType}`,\n mask: `url(./assets/icons/${this.icon}) no-repeat`,\n '-webkit-mask': `url(./assets/icons/${this.icon}) no-repeat`,\n 'background-color': this.color,\n '-webkit-mask-size': 'contain',\n 'mask-size': 'contain',\n 'mask-repeat': 'no-repeat',\n '-webkit-mask-repeat': 'no-repeat',\n 'mask-position': 'center',\n '-webkit-mask-position': 'center'\n };\n }\n}\n","@if (icon) {\n<span #iconSpan class=\"icon\" [ngStyle]=\"iconMask()\"></span>\n}","import { Component, ElementRef, Input, OnChanges, SimpleChanges } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { EluxIcon } from '../icon/icon.component';\nimport { RouterModule } from '@angular/router';\n\nexport interface BreadCrumbRoute {\n name: string;\n route: string;\n}\n\n@Component({\n selector: 'lib-elux-breadcrumb',\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, RouterModule, EluxIcon],\n templateUrl: './breadcrumb.component.html',\n styleUrl: './breadcrumb.component.scss'\n})\nexport class EluxBreadcrumb implements OnChanges {\n @Input() routes: BreadCrumbRoute[] = [];\n //@Input() canChange: boolean = true;\n\n showBreadcrumbDrop = false;\n\n constructor(\n //private previousRouteService: PreviousRouteService,\n private elementRef: ElementRef\n ) { }\n\n ngOnChanges(changes: SimpleChanges) {\n // if ((!this.canChange && changes.routes.previousValue) || !changes.routes.currentValue) {\n // return;\n // }\n\n // this.previousRouteService.setPreviousBreadcrumb(changes.routes.currentValue);\n }\n\n toggleBreadcrumbDrop() {\n this.showBreadcrumbDrop = !this.showBreadcrumbDrop;\n\n if (this.showBreadcrumbDrop) {\n document.addEventListener('click', this.closeDropdown.bind(this));\n } else {\n document.removeEventListener('click', this.closeDropdown.bind(this));\n }\n }\n\n closeDropdown(event: any) {\n if (!this.elementRef.nativeElement.contains(event.target)) {\n this.showBreadcrumbDrop = false;\n document.removeEventListener('click', this.closeDropdown.bind(this));\n }\n }\n}\n","<div aria-label=\"breadcrumb\" class=\"breadCrumb\" *ngIf=\"routes && routes.length > 0\">\n <div class=\"breadcrumbMobile\">\n <div>\n <div class=\"dots\" (click)=\"toggleBreadcrumbDrop()\">...</div>\n <div class=\"dropGroup\" *ngIf=\"showBreadcrumbDrop\">\n <div *ngFor=\"let route of routes; let i = index\">\n <a class=\"text-decoration-none\" *ngIf=\"i != routes.length - 1\" [routerLink]=\"route.route\">\n <div class=\"dropOption\">\n {{ route.name }}\n </div>\n </a>\n </div>\n </div>\n </div>\n <div class=\"divBreadCrumbDesktop\">\n <lib-elux-icon class=\"align-middle mr-1\" color=\"#011E41\" icon=\"Chevron_Right.svg\" size=\"15\" sizeType=\"px\"></lib-elux-icon>\n <span class=\"lastRoute\" aria-current>{{ routes[routes.length-1].name }}</span>\n </div>\n </div>\n <div class=\"breadcrumbDesktop\">\n <div class=\"divBreadCrumbDesktop\" *ngFor=\"let route of routes; let i = index\">\n <a [routerLink]=\"route.route\" class=\"route\" *ngIf=\"i != routes.length - 1\">\n {{ route.name }}\n </a>\n <span class=\"lastRoute\" aria-current *ngIf=\"i == routes.length - 1\">\n {{ route.name }}\n </span>\n <lib-elux-icon class=\"align-middle mr-1 \" *ngIf=\"i != routes.length - 1\" color=\"#011E41\" icon=\"Chevron_Right.svg\"\n size=\"15\" sizeType=\"px\"></lib-elux-icon>\n </div>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, input, Input } from '@angular/core';\n\n@Component({\n selector: 'lib-elux-loading',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './loading.component.html',\n styleUrl: './loading.component.scss'\n})\nexport class EluxLoading {\n @Input() size: number = 50;\n @Input() white: boolean = false;\n}\n","<div class=\"backdrop\">\n <div class=\"spinner\" [ngClass]=\"{ white: white, blue: !white }\" [ngStyle]=\"{ 'width.px': size, 'height.px': size }\"></div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { Router } from '@angular/router';\nimport { EluxIcon } from '../icon/icon.component';\nimport { EluxLoading } from '../loading/loading.component';\n\n@Component({\n selector: 'lib-elux-button',\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, EluxIcon, EluxLoading],\n templateUrl: './button.component.html',\n styleUrl: './button.component.scss',\n})\nexport class EluxButton implements OnInit {\n @Input() disabled = false;\n @Input() type: 'basic' | 'basic-action' | 'outline' | 'text' | 'basic-dark' | 'basicWhite' | 'basicBlue' | 'outline-dark' = 'basic';\n @Input() typeButton: 'button' | 'submit' = 'button';\n @Input() content!: string;\n\n @Input() done = false;\n @Input() routerLink!: string;\n @Input() link!: string;\n @Input() size!: number;\n\n @Input() icon = '';\n @Input() iconAlign!: 'left' | 'right';\n @Input() externalLink = false;\n @Input() loading = false;\n @Input() onlyfirstLetterUpper = true;\n\n @Output() onClick = new EventEmitter<Event>();\n\n constructor(private router: Router) {}\n\n ngOnInit() {\n if (this.done) {\n this.icon = 'Check.svg';\n }\n\n if (this.externalLink) {\n this.icon = 'Link.svg';\n }\n\n if (this.loading) {\n this.icon = 'Loading.svg';\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['loading']) {\n }\n }\n\n firstLetterUpper(value: string) {\n if (value) {\n return value.charAt(0).toUpperCase() + value.slice(1).toLowerCase();\n }\n\n return '';\n }\n\n clickButton($event: Event) {\n if (this.loading == false) {\n this.onClick.emit($event);\n if (this.routerLink) {\n this.router.navigateByUrl(this.routerLink);\n } else if (this.link) {\n this.router.navigateByUrl(this.link);\n } \n }\n }\n}\n","<button\n [type]=\"typeButton\"\n class=\"btn elux-button size-{{ size }}\"\n [disabled]=\"disabled\"\n [ngClass]=\"type\"\n (click)=\"clickButton($event)\"\n (keyup.enter)=\"clickButton($event)\"\n>\n <div *ngIf=\"loading\" [ngStyle]=\"{ 'width': '24px', 'margin': 'auto' , 'margin-top' : '3px' }\">\n <lib-elux-loading [size]=\"30\" [white]=\"true\"></lib-elux-loading>\n </div>\n <div [ngClass]=\"iconAlign\">\n <lib-elux-icon *ngIf=\"icon !== ''\" [icon]=\"icon\" [size]=\"'24'\" [sizeType]=\"'px'\"></lib-elux-icon>\n <span *ngIf=\"!done && !loading\">\n {{ onlyfirstLetterUpper ? firstLetterUpper(content) : content }}\n </span>\n </div>\n</button>\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, forwardRef, HostListener, Injector, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { ControlValueAccessor, FormControl, FormsModule, NG_VALUE_ACCESSOR, NgControl, ReactiveFormsModule } from '@angular/forms';\nimport { EluxIcon } from '../icon';\n\nexport interface DropdownOption {\n value: any;\n text: string;\n}\n\n@Component({\n selector: 'lib-elux-dropdown',\n standalone: true,\n imports: [CommonModule, FormsModule, ReactiveFormsModule, EluxIcon],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EluxDropdown),\n multi: true,\n },\n ],\n templateUrl: './dropdown.component.html',\n styleUrl: './dropdown.component.scss',\n})\nexport class EluxDropdown implements OnInit, OnChanges, ControlValueAccessor {\n\n @Input() placeholder: string = 'Selecione';\n @Input() options: DropdownOption[] = [];\n @Input() selectedOption: any = '';\n @Input() disabled: boolean = false;\n @Input() idInput: string = '';\n @Input() showSearch: boolean = false;\n\n @Output() optionSelected: EventEmitter<any> = new EventEmitter<any>();\n\n isOpen: boolean = false;\n selectedOptionText = '';\n\n optionsFiltered: DropdownOption[] = [];\n\n private onChange: Function = () => undefined;\n private onTouched: Function = () => undefined;\n private parentFormControl!: FormControl;\n\n constructor(private readonly injector: Injector) {}\n\n ngOnInit(): void {\n this.injectParentFormControl();\n this.addPlaceholderOption();\n this.updateSelectedOption();\n if (!this.idInput) {\n this.idInput = `dropdown-${Math.random().toString(36).substring(2, 11)}`;\n }\n\n this.optionsFiltered = this.options;\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['selectedOption'] && !changes['selectedOption'].isFirstChange()) {\n this.updateSelectedOption();\n }\n\n if (changes['placeholder'] && !changes['placeholder'].isFirstChange()) {\n this.updatePlaceholderOption();\n }\n }\n\n injectParentFormControl() {\n const ngControl = this.injector.get(NgControl, null);\n if (ngControl) {\n this.parentFormControl = ngControl.control as FormControl;\n }\n }\n\n addPlaceholderOption(): void {\n if (!this.options.some((option) => option.value === null)) {\n this.options.unshift({ value: null, text: this.placeholder });\n }\n }\n\n updateSelectedOption(): void {\n const selectedOption = this.options.find((option) => option.value === this.selectedOption);\n this.selectedOptionText = selectedOption ? selectedOption.text : this.showSearch ? '' : this.placeholder;\n }\n\n updatePlaceholderOption(): void {\n const placeholderOptionIndex = this.options.findIndex(option => option.value === null);\n if (placeholderOptionIndex !== -1) {\n this.options[placeholderOptionIndex].text = this.placeholder;\n } else {\n this.addPlaceholderOption();\n }\n\n if (!this.showSearch && !this.selectedOption) {\n this.selectedOptionText = this.placeholder;\n }\n }\n\n toggleDropdown(): void {\n if (!this.disabled) {\n this.isOpen = !this.isOpen;\n }\n }\n\n @HostListener('document:click', ['$event'])\n onDocumentClick(event: MouseEvent): void {\n const target = event.target as HTMLElement;\n if (!target.closest(`#${this.idInput}`)) {\n this.isOpen = false;\n }\n }\n\n selectOption(option: DropdownOption) {\n this.selectedOptionText = option.text;\n this.optionSelected.emit(option.value);\n this.onChange(option.value);\n this.onTouched();\n this.isOpen = false;\n\n this.optionsFiltered = this.options;\n }\n\n writeValue(value: string): void {\n this.selectedOption = value;\n this.updateSelectedOption();\n }\n\n registerOnChange(fn: Function): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: Function): void {\n this.onTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n onChangeFilter(event: any) {\n const term = event?.target?.value?.toLowerCase() || '';\n this.optionsFiltered = this.options.filter(option =>\n option.text.toLowerCase().includes(term)\n );\n }\n\n get isTouched(): boolean {\n return this.parentFormControl?.touched || this.parentFormControl?.dirty;\n }\n\n get isInvalid(): boolean {\n return this.parentFormControl?.invalid;\n }\n}","<div class=\"custom-dropdown\">\n <input\n type=\"text\"\n class=\"selected-option\"\n [id]=\"idInput\"\n [readonly]=\"showSearch ? false : true\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n [value]=\"selectedOptionText ? selectedOptionText : ''\"\n [ngClass]=\"{\n 'ng-invalid': isInvalid,\n 'ng-touched': isTouched,\n 'selected-option-border': !isInvalid || !isTouched,\n }\"\n (click)=\"toggleDropdown()\"\n (input)=\"onChangeFilter($event)\"\n />\n <lib-elux-icon\n class=\"arrow-icon noClick\"\n [color]=\"'#7A8A9B'\"\n [icon]=\"'Chevron_Down.svg'\"\n [ngClass]=\"{ 'arrow-rotate': isOpen }\"\n [size]=\"'16'\"\n [sizeType]=\"'px'\"\n ></lib-elux-icon>\n <ul class=\"dropdown-list\" *ngIf=\"isOpen\">\n <li *ngFor=\"let option of showSearch ? optionsFiltered : options\" (click)=\"selectOption(option)\">\n {{ option.text }}\n </li>\n </ul>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { EluxIcon } from '../icon';\n\nexport interface Page {\n length: number;\n current: number;\n}\n\nexport interface PaginationEvent {\n type: 'goTo';\n page: number;\n}\n\n@Component({\n selector: 'lib-elux-paginator',\n standalone: true,\n imports: [CommonModule, EluxIcon],\n templateUrl: './paginator.component.html',\n styleUrl: './paginator.component.scss',\n})\nexport class EluxPaginator implements OnInit, OnChanges {\n @Input() length: number = 0;\n @Input() current: number = 0;\n @Input() anchor: boolean = true;\n @Input() scrollTo?: string = undefined;\n\n @Output() paginationEvents = new EventEmitter<PaginationEvent>();\n\n pages: number[] = [];\n previousPages: number[] = [];\n nextPages: number[] = [];\n\n constructor() {}\n\n ngOnInit() {\n this.showPages();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['length'] || changes['current']) {\n this.showPages();\n }\n }\n\n scrollToElement(event: any): void {\n let el = event.target;\n\n if (this.anchor && !this.scrollTo) {\n const container = el.closest('.table-container');\n setTimeout(() => {\n if (container) {\n container.closest('.table-container').scrollIntoView({ behavior: 'smooth', block: 'start', inline: 'nearest' });\n }\n }, 100);\n }\n\n if (this.scrollTo != undefined) {\n el = document.querySelector(this.scrollTo);\n setTimeout(() => {\n el.scrollIntoView({ behavior: 'smooth', block: 'start', inline: 'nearest' });\n }, 100);\n }\n }\n\n goLast() {\n this.goToPage(this.length);\n }\n\n goFirst() {\n this.goToPage(1);\n }\n\n nextPage() {\n this.goToPage(this.current + 1);\n }\n\n prevPage() {\n this.goToPage(this.current - 1);\n }\n\n goToPage(page: number) {\n this.paginationEvents.emit({ type: 'goTo', page: page });\n this.current = page;\n this.showPages();\n }\n\n goToSpecPage(page: number, event: any) {\n this.paginationEvents.emit({ type: 'goTo', page: page });\n this.current = page;\n this.showPages();\n setTimeout(()=> {\n this.scrollToElement(event);\n\n }, 400)\n }\n\n showPages() {\n this.previousPages = [];\n this.nextPages = [];\n this.pages = [];\n\n if (!this.current) {\n return;\n }\n\n if (this.length <= 5) {\n for (let i = 0; i < this.length; i++) {\n this.pages.push(i + 1);\n }\n return;\n }\n\n if (this.current < 4) {\n for (let i = 0; i < 5 - this.current; i++) {\n const element = i + 1;\n this.nextPages.push(element + this.current);\n }\n\n for (let i = 0; i < this.current - 1; i++) {\n const element = i + 1;\n this.previousPages.push(element);\n }\n\n return;\n }\n\n if (this.current > 3 && this.current <= this.length - 2) {\n this.nextPages.push(this.current + 1);\n this.nextPages.push(this.current + 2);\n this.previousPages.push(this.current - 2);\n this.previousPages.push(this.current - 1);\n return;\n }\n\n if (this.current > this.length - 2) {\n for (let i = 0; i < this.length - this.current; i++) {\n const element = i + 1;\n this.nextPages.push(element + this.current);\n }\n\n for (let i = 0; i < 4 - this.nextPages.length; i++) {\n const element = this.current - (i + 1);\n this.previousPages.push(element);\n }\n\n this.previousPages.reverse();\n return;\n }\n }\n}\n","<nav>\n <ul class=\"paginator\" *ngIf=\"length > 5\">\n <li class=\"pagination-number\">\n <div *ngIf=\"current !== 1\" (click)=\"goFirst(); scrollToElement($event)\">\n <lib-elux-icon [icon]=\"'Chevron_Left_Double.svg'\" [sizeType]=\"'px'\" [size]=\"'16'\"> </lib-elux-icon>\n </div>\n </li>\n\n <li class=\"last-page\">\n <div *ngIf=\"current !== 1\" (click)=\"prevPage(); scrollToElement($event)\" title=\"next page\">\n <lib-elux-icon [icon]=\"'Chevron_Left.svg'\" [size]=\"'16'\" [sizeType]=\"'px'\"> </lib-elux-icon>\n </div>\n </li>\n\n <li class=\"pages-before pagination-number\" *ngFor=\"let page of previousPages\">\n <div (click)=\"goToSpecPage(page, $event)\">{{ page }}</div>\n </li>\n\n <li class=\"pagination-number current-page\">\n <div>\n {{ current }}\n </div>\n </li>\n\n <li class=\"pages-after pagination-number\" *ngFor=\"let page of nextPages\">\n <div (click)=\"goToSpecPage(page, $event); scrollToElement($event)\">{{ page }}</div>\n </li>\n\n <li class=\"next-page\">\n <div *ngIf=\"current !== length\" (click)=\"nextPage(); scrollToElement($event)\" title=\"next page\">\n <lib-elux-icon [icon]=\"'Chevron_Right.svg'\" [size]=\"'16'\" [sizeType]=\"'px'\"></lib-elux-icon>\n </div>\n </li>\n\n <li class=\"pagination-number\">\n <div *ngIf=\"current !== length\" (click)=\"goLast(); scrollToElement($event)\">\n <lib-elux-icon [icon]=\"'Chevron_Right_Double.svg'\" [sizeType]=\"'px'\" [size]=\"'16'\"></lib-elux-icon>\n </div>\n </li>\n </ul>\n\n <ul class=\"paginator\" *ngIf=\"length <= 5\">\n <li *ngFor=\"let page of pages\" class=\"pagination-number\" [ngClass]=\"current === page ? 'current-page' : ''\">\n <div (click)=\"goToSpecPage(page, $event);\">\n {{ page }}\n </div>\n </li>\n </ul>\n</nav>\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output, ElementRef, ViewChild, AfterViewInit, HostListener, QueryList, ViewChildren } from '@angular/core';\n\n@Component({\n selector: 'lib-elux-stepbar',\n standalone: true,\n imports: [CommonModule],\n templateUrl: './stepbar.component.html',\n styleUrl: './stepbar.component.scss',\n})\nexport class EluxStepBar {\n @Input() steps: number = 0;\n @Input() currentStep: number = 0;\n @Output() stepClicked: EventEmitter<number> = new EventEmitter<number>();\n\n constructor() {}\n\n stepClickedHandler(step: number) {\n this.stepClicked.emit(step);\n }\n\n isLastStep(): boolean {\n return this.currentStep === this.steps;\n }\n\n getStepsArray() {\n return new Array(this.steps);\n }\n\n getProgressWidth(): string {\n if (this.steps <= 1) return '0%';\n\n const segmentWidth = 100 / this.steps;\n const adjustment = this.isLastStep() ? 1 : 0.95;\n const progress = (this.currentStep - 1 + adjustment) * segmentWidth;\n\n return `${progress}%`;\n }\n}\n","<div class=\"progress-bar\">\n <div class=\"steps-container\">\n <div class=\"step\" \n *ngFor=\"let step of [].constructor(steps + 1); let i = index\"\n #stepElement\n [class.hidden]=\"i === steps\"\n (click)=\"i < steps && stepClickedHandler(i)\">\n {{ i < steps ? (i + 1) : '' }}\n </div>\n </div>\n <div class=\"progress\" [style.width]=\"getProgressWidth()\"></div>\n <div class=\"progress-background\" [style.width]=\"'100%'\"></div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { ControlValueAccessor, FormControl, FormsModule, NG_VALUE_ACCESSOR, NgControl, ReactiveFormsModule } from '@angular/forms';\nimport { Component, EventEmitter, Input, OnInit, OnChanges, Output, SimpleChanges, HostListener, ViewChild, ElementRef, Injector, forwardRef } from '@angular/core';\nimport { EluxIcon } from '../icon';\n\nexport interface Day {\n day: number;\n selected?: boolean;\n today?: boolean;\n disabled: boolean;\n}\nexport interface Month {\n value: number;\n text: string;\n disabled: boolean;\n}\nexport interface Year {\n value: number;\n disabled: boolean;\n}\n@Component({\n selector: 'lib-elux-datepicker',\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, FormsModule, EluxIcon],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => EluxDatepicker),\n multi: true,\n },\n ],\n templateUrl: './datepicker.component.html',\n styleUrl: './datepicker.component.scss',\n})\nexport class EluxDatepicker implements OnInit, OnChanges, ControlValueAccessor {\n @Input() value: string = '';\n @Input() locale: string = 'pt-BR';\n @Input() idInput: string = '';\n @Input() placeholder: string = '00/00/0000';\n @Input() minDate?: string;\n @Input() maxDate?: string;\n @Output() dateSelected: EventEmitter<string> = new EventEmitter<string>();\n @Output() invalidDate: EventEmitter<string> = new EventEmitter<string>();\n @ViewChild('datepicker') datepicker!: ElementRef;\n\n disabled = false;\n showCalendar = false;\n pickerView: 'week' | 'month' | 'year' = 'week';\n currentDate = new Date();\n selectedDate: Date | null = null;\n formatedDate: string = '';\n days: Day[] = [];\n months: Month[] = [];\n years: Year[] = [];\n\n private onChange: Function = () => undefined;\n private onTouched: Function = () => undefined;\n private parentFormControl!: FormControl;\n\n constructor(private readonly injector: Injector) {}\n\n injectParentFormControl() {\n const ngControl = this.injector.get(NgControl, null);\n if (ngControl) {\n this.parentFormControl = ngControl.control as FormControl;\n }\n }\n\n writeValue(value: string): void {\n this.formatedDate = value;\n this.onBlur();\n }\n\n registerOnChange(fn: Function): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: Function): void {\n this.onTouched = fn;\n }\n\n get isTouched(): boolean {\n return this.parentFormControl?.touched || this.parentFormControl?.dirty;\n }\n\n get isInvalid(): boolean {\n return this.parentFormControl?.invalid;\n }\n\n headerDate() {\n return `${this.currentDate.toLocaleString(this.locale, {\n month: 'long',\n })} ${this.currentDate.getFullYear()}`;\n }\n\n headerDateWeek() {\n const daysOfWeek = [];\n const baseDate = new Date();\n\n for (let i = 0; i < 7; i++) {\n const day = new Date(baseDate.setDate(baseDate.getDate() - baseDate.getDay() + i));\n daysOfWeek.push(day.toLocaleDateString(this.locale, { weekday: 'narrow' }));\n }\n\n return daysOfWeek;\n }\n\n ngOnInit() {\n this.injectParentFormControl();\n\n if (this.value) {\n this.formatedDate = this.value;\n this.onBlur();\n }\n\n this.generateCalendar(this.currentDate);\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['value'] && !changes['value'].isFirstChange()) {\n this.formatedDate = this.value;\n this.onBlur();\n }\n }\n\n onChangeValue(event: Event) {\n const input = event.target as HTMLInputElement;\n let value = input.value.replace(/\\D/g, '');\n const separator = this.detectLocaleDateSeparator(this.locale);\n\n if (value.length <= 2) {\n this.formatedDate = value;\n } else if (value.length <= 4) {\n this.formatedDate = `${value.slice(0, 2)}${separator}${value.slice(2)}`;\n } else {\n this.formatedDate = `${value.slice(0, 2)}${separator}${value.slice(2, 4)}${separator}${value.slice(4, 8)}`;\n }\n\n input.value = this.formatedDate;\n input.setSelectionRange(input.value.length, input.value.length);\n }\n\n detectLocaleDateSeparator(locale: string): string {\n const sampleDate = new Date(2000, 0, 15);\n const formatted = sampleDate.toLocaleDateString(locale);\n const match = formatted.match(/[^0-9]/);\n return match ? match[0] : '/';\n }\n\n toggleCalendar() {\n this.showCalendar = !this.showCalendar;\n if (this.showCalendar) {\n this.pickerView = 'week';\n }\n }\n\n changeView() {\n switch (this.pickerView) {\n case 'week':\n this.pickerView = 'month';\n this.generateMonths();\n break;\n case 'month':\n this.pickerView = 'year';\n this.generateYears();\n break;\n case 'year':\n break;\n default:\n break;\n }\n }\n\n closeCalendar() {\n this.showCalendar = false;\n }\n\n previous() {\n switch (this.pickerView) {\n case 'week':\n this.prevMonth();\n break;\n case 'month':\n this.prevYear(1);\n break;\n case 'year':\n this.prevYear(30);\n break;\n default:\n break;\n }\n }\n\n next() {\n switch (this.pickerView) {\n case 'week':\n this.nextMonth();\n break;\n case 'month':\n this.nextYear(1);\n break;\n case 'year':\n this.nextYear(30);\n break;\n default:\n break;\n }\n }\n\n prevMonth() {\n this.currentDate = new Date(this.currentDate.setMonth(this.currentDate.getMonth() - 1));\n this.generateCalendar(this.currentDate);\n }\n\n nextMonth() {\n this.currentDate = new Date(this.currentDate.setMonth(this.currentDate.getMonth() + 1));\n this.generateCalendar(this.currentDate);\n }\n\n prevYear(yearQtde: number) {\n this.onChangeYear(this.currentDate.getFullYear() - yearQtde);\n this.generateYears();\n }\n\n nextYear(yearQtde: number) {\n this.onChangeYear(this.currentDate.getFullYear() + yearQtde);\n this.generateYears();\n }\n\n selectDate(day: Day) {\n const selected = new Date(this.currentDate.getFullYear(), this.currentDate.getMonth(), day.day);\n\n this.selectedDate = selected;\n this.formatedDate = this.selectedDate.toLocaleDateString(this.locale, {\n day: '2-digit',\n month: '2-digit',\n year: 'numeric',\n });\n\n this.generateCalendar(this.currentDate);\n this.closeCalendar();\n this.onBlur();\n }\n\n selectMonth(monthValue: number) {\n const maxDate = this.maxDate ? new Date(this.maxDate) : null;\n const selectedMonth = new Date(this.currentDate.getFullYear(), monthValue, 1);\n\n if (maxDate && selectedMonth > new Date(maxDate.getFullYear(), maxDate.getMonth(), 1)) {\n return;\n }\n\n this.currentDate = new Date(this.currentDate.getFullYear(), monthValue, 10);\n this.pickerView = 'week';\n this.generateCalendar(this.currentDate);\n }\n\n onChangeYear(year: number) {\n this.currentDate = new Date(this.currentDate.setFullYear(year));\n this.generateMonths();\n }\n\n selectYear(year: number) {\n this.onChangeYear(year);\n this.pickerView = 'month';\n }\n\n generateCalendar(date: Date) {\n this.days = [];\n const year = date.getFullYear();\n const month = date.getMonth();\n const minDate = this.minDate ? new Date(this.minDate) : null;\n const maxDate = this.maxDate ? new Date(this.maxDate) : null;\n const today = new Date();\n const isTodayMonth = today.getMonth() === month && today.getFullYear() === year;\n const selectedYear = this.selectedDate?.getFullYear();\n const selectedMonth = this.selectedDate?.getMonth();\n const selectedDay = this.selectedDate?.getDate();\n\n const firstWeekDayOfMonth = new Date(year, month, 1).getDay();\n const lastWeekDayOfMonth = new Date(year, month + 1, 0).getDate();\n\n // Preenche os dias do mês anterior, se necessário\n for (let i = firstWeekDayOfMonth; i > 0; i--) {\n this.days.push({ day: 0, disabled: true });\n }\n\n // Preenche os dias do mês atual\n for (let i = 1; i <= lastWeekDayOfMonth; i++) {\n const dateValue = new Date(year, month, i);\n const isToday = isTodayMonth && today.getDate() === i;\n const isSelected = selectedYear === year && selectedMonth === month && selectedDay === i;\n const disabled = ((minDate && dateValue < minDate) || (maxDate && dateValue > maxDate)) ?? false;\n this.days.push({ day: i, today: isToday, selected: isSelected, disabled: disabled });\n }\n }\n\n generateMonths() {\n this.months = [];\n const currentYear = this.currentDate.getFullYear();\n const maxDate = this.maxDate ? new Date(this.maxDate) : null;\n const minDate = this.minDate ? new Date(this.minDate) : null;\n\n for (let i = 0; i < 12; i++) {\n // Usar o dia 1 para evitar problemas com meses que não têm 31 dias\n const dateValue = new Date(currentYear, i, 1);\n const isDisabled = ((minDate && dateValue < minDate) || (maxDate && dateValue > maxDate)) ?? false;\n this.months.push({ value: i, text: dateValue.toLocaleString(this.locale, { month: 'long' }), disabled: isDisabled });\n }\n }\n\n generateYears() {\n this.years = [];\n const currentYear = this.currentDate.getFullYear();\n const maxDate = this.maxDate ? new Date(this.maxDate) : null;\n const minDate = this.minDate ? new Date(this.minDate) : null;\n\n for (let i = currentYear - 19; i <= currentYear + 10; i++) {\n const isDisabled = ((minDate && i < minDate.getFullYear()) || (maxDate && i > maxDate.getFullYear())) ?? false;\n this.years.push({ value: i, disabled: isDisabled });\n }\n }\n\n validDate(date: Date): boolean {\n return date instanceof Date && !isNaN(date.getTime());\n }\n\n onBlur(): void {\n const order = this.detectDateOrder(this.locale);\n const separator = this.detectDateSeparator(this.formatedDate);\n\n const parts = this.formatedDate.split(separator).map(Number);\n\n let isValid = false;\n let date: Date | undefined = undefined;\n\n if (parts.length === 3 && !parts.some(isNaN)) {\n const dateMap: { [key: string]: number } = {};\n [dateMap[order[0]], dateMap[order[1]], dateMap[order[2]]] = parts;\n\n const { day, month, year } = dateMap as { day: number; month: number; year: number };\n\n date = new Date(year, month - 1, day);\n\n isValid = this.validDate(date) && date.getFullYear() === year && date.getMonth() === month - 1 && date.getDate() === day;\n }\n\n this.onTouched();\n this.onChange(this.formatedDate);\n\n if (isValid && date) {\n this.dateSelected.emit(this.formatedDate);\n this.selectedDate = date;\n this.generateCalendar(this.currentDate);\n } else {\n this.invalidDate.emit(this.formatedDate);\n }\n }\n\n private detectDateOrder(locale: string): string[] {\n const sample = new Date(2025, 10, 23); // 23/11/2025\n const formatted = new Intl.DateTimeFormat(locale).format(sample);\n\n const parts = formatted.match(/\\d+/g);\n if (!parts || parts.length !== 3) return ['year', 'month', 'day']; // fallback\n\n const order: string[] = [];\n for (const part of parts) {\n if (part === '23') order.push('day');\n else if (part === '11') order.push('month');\n else if (part === '2025') order.push('year');\n }\n\n return order;\n }\n\n private detectDateSeparator(dateStr: string): string {\n if (dateStr.includes('/')) return '/';\n if (dateStr.includes('-')) return '-';\n return ''; // fallback\n }\n\n @HostListener('document:click', ['$event'])\n clickOutside(event: Event) {\n const target = event.target as HTMLElement;\n if (!target.closest('.date-picker') && !target.closest('.month-body') && !target.closest('.year-body')) {\n this.showCalendar = false;\n }\n }\n\n isPreviousDisabled(): boolean {\n if (!this.minDate) {\n return false;\n }\n\n const minDate = new Date(this.minDate);\n switch (this.pickerView) {\n case 'week':\n return this.currentDate.getFullYear() === minDate.getFullYear() && this.currentDate.getMonth() === minDate.getMonth();\n case 'month':\n return this.currentDate.getFullYear() === minDate.getFullYear();\n case 'year':\n return this.currentDate.getFullYear() - 30 < minDate.getFullYear();\n default:\n return false;\n }\n }\n\n isNextDisabled(): boolean {\n if (!this.maxDate) {\n return false;\n }\n\n const maxDate = new Date(this.maxDate);\n switch (this.pickerView) {\n case 'week':\n return this.currentDate.getFullYear() === maxDate.getFullYear() && this.currentDate.getMonth() === maxDate.getMonth();\n case 'month':\n return this.currentDate.getFullYear() === maxDate.getFullYear();\n case 'year':\n return this.currentDate.getFullYear() + 30 > maxDate.getFullYear();\n default:\n return false;\n }\n }\n}\n","<div class=\"date-picker\" #datepicker>\n <div class=\"div-calendar-icon\" (click)=\"!disabled ? toggleCalendar() : ''\">\n <lib-elux-icon class=\"calendar-icon\" [icon]=\"'Calendar.svg'\" [color]=\"'#011E41'\" [size]=\"'24'\" [sizeType]=\"'px'\"></lib-elux-icon>\n </div>\n <input\n [ngClass]=\"{\n 'date-input': true,\n 'ng-invalid': isInvalid,\n 'ng-touched': isTouched,\n }\"\n [value]=\"formatedDate\"\n (input)=\"onChangeValue($event)\"\n [id]=\"idInput\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder\"\n maxlength=\"10\"\n type=\"text\"\n (blur)=\"onBlur()\"\n />\n <div class=\"calendar\" *ngIf=\"showCalendar\">\n <div class=\"calendar-header\">\n <div class=\"previous\" (click)=\"previous()\">\n <lib-elux-icon [hidden]=\"isPreviousDisabled()\" [icon]=\"'Chevron_Left.svg'\" [size]=\"'22'\" [sizeType]=\"'px'\"> </lib-elux-icon>\n </div>\n <span (click)=\"changeView()\">{{ pickerView === 'week' ? headerDate() : currentDate.getFullYear() }}</span>\n <div class=\"next\" (click)=\"next()\">\n <lib-elux-icon [hidden]=\"isNextDisabled()\" [icon]=\"'Chevron_Right.svg'\" [size]=\"'22'\" [sizeType]=\"'px'\"> </lib-elux-icon>\n </div>\n </div>\n <div class=\"calendar-body\" *ngIf=\"pickerView === 'week'\">\n <div class=\"day-labels\">\n <span *ngFor=\"let day of headerDateWeek()\">{{ day }}</span>\n </div>\n <ng-container *ngFor=\"let day of days\">\n <div class=\"day\" [ngClass]=\"{ disabled: day.disabled, today: day.today, selected: day.selected }\" (click)=\"day.disabled ? null : selectDate(day)\">\n <span>{{ day.day }}</span>\n </div>\n </ng-container>\n </div>\n <div class=\"year-body\" *ngIf=\"pickerView === 'year'\">\n <ng-container *ngFor=\"let year of years\">\n <div class=\"year\" *ngIf=\"!year.disabled\" (click)=\"!year.disabled && selectYear(year.value)\">\n {{ year.value }}\n </div>\n </ng-container>\n </div>\n <div class=\"month-body\" *ngIf=\"pickerView === 'month'\">\n <ng-container *ngFor=\"let month of months\">\n <div class=\"month\" *ngIf=\"!month.disabled\" (click)=\"!month.disabled && selectMonth(month.value)\">\n {{ month.text }}\n </div>\n </ng-container>\n </div>\n </div>\n</div>\n","// toaster.service.ts\n\nimport { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class ToasterService {\n toasts: any[] = [];\n\n private toastIdCounter = 0;\n\n success(message: string) {\n this.showToast('success', 'Check_Tick.svg', '#0C5F29', message);\n }\n\n error(message: string) {\n this.showToast('error', 'Warning.svg', '#9C231C', message);\n }\n\n warning(message: string) {\n this.showToast('warning', 'Warning.svg', '#b19459', message);\n }\n\n info(message: string) {\n this.showToast('info', 'Info.svg', '#557cb3', message);\n }\n\n public showToast(type: string, iconName: string, iconColor: string, message: string) {\n this.toastIdCounter++;\n const id = `${Date.now()}-${this.toastIdCounter}`;\n this.toasts.push({ id, type, iconName, iconColor, message, paused: false });\n if (type === 'success' || type === 'info' || type === 'warning') {\n this.removeToastAfter5Seconds(id);\n }\n }\n\n public removeToast(id: string) {\n this.toasts = this.toasts.filter((toast) => toast.id !== id);\n }\n\n public removeToastAfter5Seconds(id: string) {\n setTimeout(() => {\n const toast = this.toasts.find((toast) => toast.id === id);\n const removableTypes = ['success', 'info', 'warning'];\n\n if (toast && removableTypes.includes(toast.type) && !toast.paused) {\n this.toasts = this.toasts.filter((toast) => toast.id !== id);\n } else if (toast) {\n this.removeToastAfter5Seconds(id); // Recheck later if it was paused\n }\n }, 5000);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component } from '@angular/core';\nimport { ToasterService } from '../../services/toaster.service';\nimport { EluxIcon } from '../icon/icon.component';\n\n@Component({\n selector: 'lib-elux-toaster',\n standalone: true,\n imports: [CommonModule, EluxIcon],\n templateUrl: './toast.component.html',\n styleUrl: './toast.component.scss',\n\n})\nexport class EluxToast {\n constructor(public toasterService: ToasterService) { }\n\n pauseToast(toast: any) {\n toast.paused = true;\n }\n\n resumeToast(toast: any) {\n toast.paused = false;\n this.toasterService.removeToastAfter5Seconds(toast.id);\n }\n\n closeToast(toast: any) {\n this.toasterService.removeToast(toast.id)\n }\n}\n","<div class=\"elux-toast-container\">\n <div class=\"d-flex\" *ngFor=\"let toast of toasterService.toasts\" [ngClass]=\"['elux-toast-element', toast.type]\" (mouseenter)=\"pauseToast(toast)\" (mouseleave)=\"resumeToast(toast)\">\n <lib-elux-icon class=\"me-2\" [color]=\"toast.iconColor\" [icon]=\"toast.iconName\" size=\"20\" sizeType=\"px\"></lib-elux-icon>\n <div>\n {{ toast.message }}\n </div>\n <lib-elux-icon (click)=\"closeToast(toast)\" class=\"ms-auto cursor-pointer\" [color]=\"toast.iconColor\" icon=\"Close.svg\" size=\"24\" sizeType=\"px\"></lib-elux-icon>\n </div>\n</div>\n","import { RouterModule } from '@angular/router';\nimport { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges, booleanAttribute } from '@angular/core';\nimport {\n DataTableRow,\n DataTableCell,\n DataTableCheckEvent,\n DataTableClickEvent,\n DataTableHeader,\n DatatableInputEvent,\n} from './datatable.component.types';\nimport { EluxLoading } from '../loading';\nimport { EluxPaginator, PaginationEvent } from '../paginator';\n\n@Component({\n selector: 'lib-elux-datatable',\n standalone: true,\n imports: [CommonModule, RouterModule, EluxPaginator, EluxLoading],\n templateUrl: './datatable.component.html',\n styleUrl: './datatable.component.scss',\n})\nexport class EluxDataTable implements OnInit, OnChanges {\n @Input() columns: DataTableHeader[] = [];\n @Input() rows: DataTableRow[] = [];\n @Input() totalRows: number = 1;\n @Input() itemsPerPage: number = 15;\n @Input() backendPagination: Boolean = false;\n @Input() emptyMessage: string = 'Nenhum item localizado com base nos critérios de busca.';\n @Input() loading: Boolean = false;\n @Input({ transform: booleanAttribute }) isRowClickable!: boolean;\n @Input({ transform: booleanAttribute }) isCellClickable!: boolean;\n @Input({ transform: booleanAttribute }) hasPaginator!: boolean;\n\n @Output() currentPageChange = new EventEmitter<number>();\n @Output() onClick = new EventEmitter<DataTableClickEvent>();\n @Output() onChecked = new EventEmitter<DataTableCheckEvent>();\n @Output() ontInputChange = new EventEmitter<DatatableInputEvent>();\n\n currentPage: number = 1;\n paginatorTotalPages: number = 1;\n displayRows: DataTableRow[] = [];\n\n ngOnInit(): void {\n this.paginatorTotalPages = Math.ceil(this.totalRows / this.itemsPerPage);\n this.populateTable();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['itemsPerPage']) {\n this.refreshPaginator();\n this.populateTable();\n }\n\n if (changes['totalRows']) {\n this.refreshPaginator();\n this.populateTable();\n }\n\n if (changes['rows']) {\n this.populateTable();\n }\n }\n\n onPageChange(event: PaginationEvent) {\n this.currentPage = event.page;\n if (this.backendPagination) {\n this.currentPageChange.emit(event.page);\n } else {\n this.populateTable();\n }\n }\n\n refreshPaginator() {\n this.paginatorTotalPages = Math.ceil(this.totalRows / this.itemsPerPage);\n this.currentPage = 1;\n }\n\n populateTable() {\n if (this.backendPagination) {\n this.displayRows = this.rows;\n } else {\n const startOfPage = (this.currentPage - 1) * this.itemsPerPage;\n const endOfPage = startOfPage + this.itemsPerPage;\n this.displayRows = this.rows.slice(startOfPage, endOfPage);\n }\n }\n\n onCheckboxChange(event: Event, row: any, cell: any, index: number) {\n cell.value = (event.target as HTMLInputElement).checked;\n this.onChecked.emit({ event, row, cell, index });\n }\n\n onInputChange(event: Event, row: any, cell: any, index: number) {\n cell.value = (event.target as HTMLInputElement).value;\n this.ontInputChange.emit({ event, row, cell, index });\n if (cell.type == 'input-number') {\n if (cell.value > cell.max) {\n cell.value = cell.max;\n (event.target as HTMLInputElement).value = cell.max;\n }\n if (cell.value < cell.min) {\n cell.value = cell.min;\n (event.target as HTMLInputElement).value = cell.min;\n }\n }\n }\n\n onRowClick(event: Event, row: DataTableRow, index: number) {\n if (this.isRowClickable) {\n this.onClick.emit({ event, row, index });\n }\n }\n\n onCellClick(event: Event, row: DataTableRow, cell: DataTableCell, index: number) {\n if (this.isCellClickable) {\n this.onClick.emit({ event, row, cell, index });\n }\n }\n\n getCellClasses(cell: DataTableCell): { [key: string]: boolean } {\n let classes: { [key: string]: boolean } = {\n 'clickable': this.isCellClickable\n };\n\n if (cell.customClass) {\n classes[cell.customClass] = true;\n }\n\n return classes;\n }\n\n getHeaderClasses(column: DataTableHeader): { [key: string]: boolean } {\n let classes: { [key: string]: boolean } = {};\n\n if (column.customClass) {\n classes[column.customClass] = true;\n }\n\n return classes;\n }\n}\n","<div class=\"table-container\">\n <div class=\"table-header\">\n @for (column of columns; track $index) {\n <div class=\"header-row-cell\" [ngClass]=\"getHeaderClasses(column)\">\n {{column.text}}\n </div>\n }\n </div>\n\n @if(loading){\n <div class=\"table-row justify-content-center\">\n <lib-elux-loading></lib-elux-loading>\n </div>\n }\n\n @if (displayRows.length == 0) {\n <div class=\"table-row pt-3 pb-3\">\n {{emptyMessage}}\n </div>\n }\n\n @for (row of displayRows; track $index) {\n <div class=\"table-row\" [ngClass]=\"{'clickable': isRowClickable}\" (click)=\"onRowClick($event, row, $index)\">\n @for (cell of row; track $index) {\n @switch (cell.type) {\n @case (\"redirect-internal\") {\n <div class=\"row-cell\" [ngClass]=\"getCellClasses(cell)\" (click)=\"onCellClick($event, row, cell, $index)\">\n <a [routerLink]=\"cell.value.toString()\" class=\"route\">{{cell.name}}</a>\n </div>\n }\n @case (\"redirect-external\") {\n <div class=\"row-cell\" [ngClass]=\"getCellClasses(cell)\" (click)=\"onCellClick($event, row, cell, $index)\">\n <a [href]=\"cell.value\" class=\"route\" target=\"_blank\">{{cell.name}}</a>\n </div>\n }\n @case (\"checkbox\") {\n <div class=\"row-cell\" [ngClass]=\"getCellClasses(cell)\">\n <input type=\"checkbox\" [checked]=\"cell.value\" (change)=\"onCheckboxChange($event, row, cell, $index)\" [attr.disabled]=\"cell.disabled ? true : null\" />\n </div>\n }\n @case (\"input\") {\n <div class=\"row-cell\" [ngClass]=\"getCellClasses(cell)\">\n <input step=\"\" type=\"text\" [value]=\"cell.value\" (blur)=\"onInputChange($event, row, cell, $index)\" />\n </div>\n }\n @case (\"input-number\") {\n <div class=\"row-cell\" [ngClass]=\"getCellClasses(cell)\">\n <input step=\"\" type=\"number\" [value]=\"cell.value\" [min]=\"cell.min\" [max]=\"cell.max\" (blur)=\"onInputChange($event, row, cell, $index)\" />\n </div>\n }\n @default {\n <div class=\"row-cell\" [ngClass]=\"getCellClasses(cell)\" (click)=\"onCellClick($event, row, cell, $index)\">\n {{cell.value}}\n </div>\n }\n }\n }\n </div>\n }\n\n @if (hasPaginator && totalRows > itemsPerPage) {\n <div class=\"table-footer\">\n <lib-elux-paginator (paginationEvents)=\"onPageChange($event)\" [anchor]=\"true\" [length]=\"paginatorTotalPages\"\n [current]=\"currentPage\">\n </lib-elux-paginator>\n </div>\n }\n\n</div>","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { EluxIcon } from '../icon';\n\n@Component({\n selector: 'lib-elux-accordion',\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, EluxIcon],\n templateUrl: './accordion.component.html',\n styleUrl: './accordion.component.scss', \n})\nexport class EluxAccordion {\n @Input() leftArrow: boolean = false;\n\n @Output() toggleEventEmitter = new EventEmitter<boolean>();\n \n isOpen = false;\n\n toggle() {\n this.isOpen = !this.isOpen;\n this.toggleEventEmitter.emit(this.isOpen);\n }\n}\n","<div class=\"accordion\">\n <div class=\"accordion-header\" [class.left-arrow]=\"leftArrow\" (click)=\"toggle()\">\n <lib-elux-icon *ngIf=\"leftArrow\" class=\"header-icon me-4\" [icon]=\"isOpen ? 'Chevron_Up.svg' : 'Chevron_Down.svg'\" [color]=\"'#011E41'\" [size]=\"'24'\" [sizeType]=\"'px'\"></lib-elux-icon>\n <ng-content select=\"[header]\"></ng-content>\n <lib-elux-icon *ngIf=\"!leftArrow\" class=\"header-icon\" [icon]=\"isOpen ? 'Chevron_Up.svg' : 'Chevron_Down.svg'\" [color]=\"'#011E41'\" [size]=\"'24'\" [sizeType]=\"'px'\"></lib-elux-icon>\n </div>\n <div class=\"accordion-body\" [ngClass]=\"{ open: isOpen }\">\n <ng-content></ng-content>\n </div>\n</div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { EluxIcon } from '../icon';\n\n@Component({\n selector: 'lib-elux-modal',\n templateUrl: './modal.component.html',\n styleUrls: ['./modal.component.scss'],\n imports: [\n EluxIcon,\n CommonModule\n ],\n standalone: true,\n})\nexport class EluxModal {\n @Input() open = false;\n @Input() buttonClose = true;\n @Output() onClose = new EventEmitter<void>();\n\n handleClose() {\n this.onClose.emit();\n }\n}\n","<div class=\"modal\" [class.open]=\"open\">\n <div class=\"modal-content\">\n <lib-elux-icon *ngIf=\"buttonClose\" class=\"close-icon\" [icon]=\"'Close.svg'\" [color]=\"'#011E41'\" [size]=\"'28'\" [sizeType]=\"'px'\"\n (click)=\"handleClose()\"></lib-elux-icon>\n <div class=\"modal-header\">\n <ng-content select=\"[modal-header]\"></ng-content>\n </div>\n <div class=\"modal-body\">\n <ng-content select=\"[modal-body]\"></ng-content>\n </div>\n <div class=\"modal-footer\">\n <ng-content select=\"[modal-footer]\"></ng-content>\n </div>\n </div>\n <div class=\"modal-backdrop\" (click)=\"handleClose()\"></div>\n</div>\n","import { CommonModule } from '@angular/common';\n\nimport { Component, ElementRef, EventEmitter, HostListener, input, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { EluxIcon } from '../icon';\nimport { debounceTime, Subject } from 'rxjs';\nimport { EluxLoading } from \"../loading/loading.component\";\n\ninterface Options {\n value: string;\n text: string;\n}\n\n@Component({\n selector: 'lib-elux-input-search',\n standalone: true,\n imports: [EluxIcon, CommonModule, FormsModule, EluxLoading, EluxLoading],\n templateUrl: './input-search.component.html',\n styleUrl: './input-search.component.scss',\n})\nexport class EluxInputSearchComponent implements OnInit {\n @Input() options: Options[] = [];\n @Input() placeholder: string = '';\n @Input() value: string = '';\n @Input() loading: boolean = false;\n @Input() disabled: boolean = false;\n @ViewChild('inputsearch') inputsearch!: ElementRef;\n\n @Output() valueSelected = new EventEmitter<Options>();\n @Output() keyUpValue = new EventEmitter<string>();\n\n isOpen: boolean = false;\n private keyUpSubject = new Subject<string>();\n\n constructor() {\n this.keyUpSubject.pipe(\n debounceTime(500)\n ).subscribe(value => {\n if (value.length > 2) {\n this.keyUpValue.emit(value);\n this.isOpen = true;\n } else {\n this.isOpen = false;\n }\n });\n }\n\n ngOnInit() {\n\n }\n\n selectOption(option: Options) {\n this.valueSelected.emit(option);\n this.value = option.text;\n this.isOpen = false;\n }\n keyUp(event: any): void {\n this.value = event.srcElement.value;\n this.keyUpSubject.next(this.value);\n }\n\n @HostListener('document:click', ['$event'])\n onClickOutside(event: MouseEvent) {\n if (!this.inputsearch.nativeElement.contains(event.target)) {\n this.isOpen = false;\n }\n }\n}\n","<div class=\"input-search\" #inputsearch>\n <input type=\"search\" class=\"input-field\" [disabled]=\"disabled\" [placeholder]=\"placeholder\" (keyup)=\"keyUp($event)\" [value]=\"value\" />\n <lib-elux-loading class=\"loading\" *ngIf=\"loading\" [size]=\"32\"></lib-elux-loading>\n <div class=\"search-list\" *ngIf=\"isOpen\">\n <div *ngFor=\"let item of options\">\n <div class=\"item-search\" *ngIf=\"item.text.toLowerCase().includes(value.toLowerCase())\" (click)=\"selectOption(item)\">\n {{ item.text }}\n </div>\n </div>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\nimport { EluxButton } from '../button';\n\n@Component({\n selector: 'lib-elux-input-search-modal',\n standalone: true,\n imports: [CommonModule, EluxButton],\n templateUrl: './input-search-modal.component.html',\n styleUrl: './input-search-modal.component.scss',\n})\nexport class EluxInputSearchModalComponent implements OnInit, OnChanges {\n @Input() value: string = '';\n @Input() placeholder: string = '';\n @Output() searchClickEvent = new EventEmitter<Event>(); \n\n constructor() {}\n\n ngOnInit(): void {}\n\n ngOnChanges(changes: SimpleChanges): void {}\n\n searchClick(event: Event) {\n this.searchClickEvent.emit(event);\n }\n}\n","<div class=\"input-search\">\n <input\n type=\"text\"\n class=\"input-field\"\n [placeholder]=\"placeholder\"\n [value]=\"value\"\n disabled\n />\n <lib-elux-button [icon]=\"'Search.svg'\" type=\"basic\" (onClick)=\"searchClick($event)\"></lib-elux-button>\n</div>\n","import { Component, EventEmitter, Input, Output, OnInit, OnChanges, SimpleChanges, HostListener } from '@angular/core';\nimport { EluxIcon } from '../icon';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n@Component({\n selector: 'lib-elux-dropdown-multiple',\n templateUrl: './dropdown-multiple.component.html',\n styleUrls: ['./dropdown-multiple.component.scss'],\n imports: [CommonModule, FormsModule, ReactiveFormsModule, EluxIcon],\n standalone: true,\n})\nexport class EluxDropdownMultiple implements OnInit, OnChanges {\n @Input() disabled: boolean = false;\n @Input() idInput: string = '';\n @Input() placeholder: string = 'Selecione';\n @Input() options: { value: any; text: string }[] = [];\n @Input() selectedOptions: any[] = [];\n @Output() optionSelected: EventEmitter<any[]> = new EventEmitter<any[]>();\n\n isOpen: boolean = false;\n selectedOptionsText: string[] = [];\n\n constructor() {}\n\n ngOnInit() {\n this.updateSelectedOptions();\n if (!this.idInput) {\n this.idInput = `dropdown-multiple-${Math.random().toString(36).substring(2, 11)}`;\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (changes['selectedOptions'] && !changes['selectedOptions'].isFirstChange()) {\n this.updateSelectedOptions();\n }\n }\n\n updateSelectedOptions() {\n this.selectedOptionsText = this.options.filter((option) => this.selectedOptions.includes(option.value)).map((option) => option.text);\n }\n\n toggleDropdown() {\n if (!this.disabled) {\n this.isOpen = !this.isOpen;\n }\n }\n\n selectOption(option: { value: any; text: string }) {\n const index = this.selectedOptions.indexOf(option.value);\n if (index > -1) {\n this.selectedOptions.splice(index, 1);\n } else {\n this.selectedOptions.push(option.value);\n }\n this.updateSelectedOptions();\n this.optionSelected.emit(this.selectedOptions);\n }\n\n @HostListener('document:click', ['$event'])\n onDocumentClick(event: MouseEvent): void {\n const target = event.target as HTMLElement;\n if (!target.closest(`#${this.idInput}`)) {\n this.isOpen = false;\n }\n }\n}\n","<div class=\"custom-dropdown\">\n <input class=\"selected-option\" type=\"text\" [id]=\"idInput\" [placeholder]=\"placeholder\" [value]=\"selectedOptionsText.length ? selectedOptionsText.join(', ') : ''\" readonly (click)=\"toggleDropdown()\" />\n <lib-elux-icon class=\"arrow-icon noClick\" [color]=\"'#7A8A9B'\" [icon]=\"'Chevron_Down.svg'\" [ngClass]=\"{ 'arrow-rotate': isOpen }\" [size]=\"'16'\" [sizeType]=\"'px'\"></lib-elux-icon>\n <ul class=\"dropdown-list\" *ngIf=\"isOpen\">\n <li *ngFor=\"let option of options\" (click)=\"selectOption(option)\" class=\"d-flex align-items-center\" [class.selected]=\"selectedOptions.includes(option.value)\">\n <input class=\"me-2 col-3 ml-\" type=\"checkbox\" [checked]=\"selectedOptions.includes(option.value)\" />\n <span class=\"col-9\">\n {{ option.text }}\n </span>\n </li>\n </ul>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { AfterContentInit, Component, ContentChildren, ElementRef, EventEmitter, Input, OnChanges, Output, QueryList, Renderer2, SimpleChanges, ViewChild } from '@angular/core';\nimport { EluxIcon } from '../icon';\n\nexport type ProductItem = {\n name: string;\n image: string;\n};\n\n@Component({\n standalone: true,\n selector: 'lib-elux-carousel',\n templateUrl: './carousel.component.html',\n styleUrls: ['./carousel.component.scss'],\n imports: [CommonModule, EluxIcon],\n})\nexport class EluxCarouselComponent implements AfterContentInit {\n @ContentChildren('carouselItem', { read: ElementRef }) items!: QueryList<ElementRef>;\n @ViewChild('dotsContainer') dotsContainer!: ElementRef;\n\n @Input() itemsPerSlide: number = 4;\n @Input() removeArrows: boolean = false;\n @Input() removeDots: boolean = false;\n @Input() autoPlayInterval: number | null = null;\n\n @Output() previousClickEventEmitter = new EventEmitter<Event>();\n @Output() nextClickEventEmitter = new EventEmitter<Event>();\n @Output() dotClickEventEmitter = new EventEmitter<Event>(); \n\n currentIndex = 0;\n currentStepIndex = 0; // Separate index for tracking current step/page\n offset = 0;\n\n private touchStartX = 0;\n private touchEndX = 0;\n private autoPlayTimer: any;\n\n constructor(private renderer: Renderer2) {}\n\n ngAfterContentInit() {\n this.setItemWidths();\n\n if (this.autoPlayInterval) {\n this.startAutoPlay();\n }\n\n this.items.changes.subscribe(() => {\n this.setItemWidths();\n this.updateOffset();\n this.goToFirstSlide();\n });\n }\n\n private setItemWidths() {\n this.items.forEach((item) => {\n const minWidth = `calc(100% / ${this.itemsPerSlide})`;\n this.renderer.setStyle(item.nativeElement, 'minWidth', minWidth);\n });\n }\n\n startAutoPlay() {\n this.stopAutoPlay(); // Garante que não há intervalos ativos\n this.autoPlayTimer = setInterval(() => {\n this.nextSlide();\n }, (this.autoPlayInterval || 0) * 1000);\n }\n\n stopAutoPlay() {\n if (this.autoPlayTimer) {\n clearInterval(this.autoPlayTimer);\n this.autoPlayTimer = null;\n }\n }\n\n onTouchStart(event: TouchEvent) {\n this.touchStartX = event.touches[0].clientX;\n this.touchEndX = this.touchStartX; // reseta para evitar swipe falso\n }\n\n onTouchMove(event: TouchEvent) {\n this.touchEndX = event.touches[0].clientX;\n }\n\n onTouchEnd() {\n const swipeDistance = this.touchEndX - this.touchStartX;\n\n // Só considera swipe se movimento for maior que 2px\n if (Math.abs(swipeDistance) < 2) return;\n\n if (swipeDistance > 0) {\n this.prevSlide();\n } else if (swipeDistance < 0) {\n this.nextSlide();\n }\n }\n\n getStepIndexCount(): number[] {\n const totalSteps = Math.ceil(this.items.length / this.itemsPerSlide);\n return Array.from({ length: totalSteps }, (_, i) => i);\n }\n\n getCurrentStepIndex(): number {\n return this.currentStepIndex; \n }\n\n goToFirstSlide() {\n this.currentIndex = 0;\n this.currentStepIndex = 0;\n this.updateOffset();\n this.scrollActiveDotIntoView(0);\n }\n\n goToSlide(index: number) {\n this.currentStepIndex = index;\n this.currentIndex = Math.min(index * this.itemsPerSlide, this.items.length - this.itemsPerSlide);\n this.updateOffset();\n this.scrollActiveDotIntoView(index);\n this.dotClickEventEmitter.emit();\n }\n\n prevSlide() {\n if (this.currentStepIndex > 0) {\n this.currentStepIndex--;\n this.currentIndex = this.currentStepIndex * this.itemsPerSlide;\n this.updateOffset();\n this.scrollActiveDotIntoView(this.currentStepIndex);\n this.previousClickEventEmitter.emit();\n }\n }\n\n nextSlide() {\n const totalSteps = Math.ceil(this.items.length / this.itemsPerSlide);\n if (this.currentStepIndex >= totalSteps - 1) {\n this.currentStepIndex = 0;\n this.currentIndex = 0;\n } else {\n this.currentStepIndex++;\n this.currentIndex = Math.min(this.currentStepIndex * this.itemsPerSlide, this.items.length - this.itemsPerSlide);\n }\n this.updateOffset();\n this.scrollActiveDotIntoView(this.currentStepIndex);\n this.nextClickEventEmitter.emit();\n }\n\n updateOffset() {\n this.offset = -100 * (this.currentIndex / this.itemsPerSlide);\n }\n\n private scrollActiveDotIntoView(index: number) {\n setTimeout(() => {\n const dotsContainer = this.dotsContainer?.nativeElement;\n if (!dotsContainer) return;\n\n const dots = dotsContainer.getElementsByClassName('dot');\n if (!dots || !dots[index]) return;\n\n const activeDot = dots[index];\n const containerWidth = dotsContainer.offsetWidth;\n const dotWidth = activeDot.offsetWidth + 10;\n const scrollPosition = dotWidth * index - containerWidth / 2 + dotWidth / 2;\n\n dotsContainer.scrollTo({\n left: Math.max(0, scrollPosition),\n behavior: 'smooth',\n });\n });\n }\n}\n","<div class=\"c-carousel-container\">\n <div class=\"c-carousel-slides\" [style.transform]=\"'translateX(' + offset + '%)'\" (touchstart)=\"onTouchStart($event)\" (touchmove)=\"onTouchMove($event)\" (touchend)=\"onTouchEnd()\">\n <ng-content></ng-content>\n </div>\n\n <div class=\"c-carousel-footer\">\n <button [hidden]=\"removeArrows\" class=\"c-carousel-nav prev\" title=\"Slide anterior\" aria-label=\"Slide anterior\" (click)=\"prevSlide()\">\n <lib-elux-icon [icon]=\"'Chevron_Left.svg'\" [size]=\"'16'\" [sizeType]=\"'px'\" [color]=\"'#020F2E'\"></lib-elux-icon>\n </button>\n\n <div [hidden]=\"removeDots\" class=\"c-carousel-dots\" #dotsContainer>\n <span\n role=\"button\"\n class=\"dot\"\n *ngFor=\"let index of getStepIndexCount()\"\n (click)=\"goToSlide(index)\"\n (keyup)=\"goToSlide(index)\"\n [class.active]=\"index === getCurrentStepIndex()\"\n [attr.aria-disabled]=\"true\"\n [attr.aria-label]=\"'pagina' + (index + 1)\"\n >\n </span>\n </div>\n\n <button [hidden]=\"removeArrows\" class=\"c-carousel-nav next\" title=\"Próximo slide\" aria-label=\"Próximo slide\" (click)=\"nextSlide()\">\n <lib-elux-icon [icon]=\"'Chevron_Right.svg'\" [size]=\"'16'\" [sizeType]=\"'px'\" [color]=\"'#020F2E'\"></lib-elux-icon>\n </button>\n </div>\n</div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'lib-elux-switch',\n standalone: true,\n template: `\n <div\n [class.small]=\"size === 'small'\"\n [class.medium]=\"size === 'medium'\"\n [class.large]=\"size === 'large'\"\n >\n <label class=\"lib-elux-switch\">\n <input type=\"checkbox\" [checked]=\"checked\" (change)=\"_onChange($event)\" />\n <span class=\"slider\"></span>\n </label>\n </div>\n `,\n styleUrls: ['./switch.component.scss']\n})\nexport class EluxSwitch {\n @Input() checked = false;\n @Input() size: 'small' | 'medium' | 'large' = 'medium';\n @Output() onChange = new EventEmitter<boolean>();\n\n _onChange(event: any) {\n this.onChange.emit(event.target.checked);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, Input, Output, EventEmitter } from '@angular/core';\nimport { EluxIcon } from '../icon';\n\n@Component({\n selector: 'lib-elux-chip',\n standalone: true,\n imports: [CommonModule, EluxIcon],\n templateUrl: './chip.component.html',\n styleUrls: ['./chip.component.scss'],\n})\nexport class EluxChip {\n @Input() value: string = '';\n @Input() ariaLabel: string = '';\n @Output() onClick = new EventEmitter<any>();\n\n _onClick() {\n this.onClick.emit();\n }\n}\n","<div class=\"chip\" (click)=\"_onClick()\" tabindex=\"0\" role=\"button\" [attr.aria-label]=\"ariaLabel\">\n {{ value }}\n <lib-elux-icon icon=\"Close.svg\" size=\"24\" sizeType=\"px\" color=\"#fff\" />\n</div>\n","import { Component, Input } from '@angular/core';\nimport { EluxIcon } from '../icon';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'lib-elux-card-1',\n templateUrl: './card1.component.html',\n styleUrls: ['./card1.component.scss'],\n standalone: true,\n imports: [EluxIcon, CommonModule],\n})\nexport class EluxCard1 {\n @Input() text!: string;\n @Input() iconLeft!: string;\n @Input() iconRight!: string;\n}\n","<div class=\"card1 p-3\">\n <lib-elux-icon *ngIf=\"iconLeft\" class=\"iconLeft\" [icon]=\"iconLeft\" [size]=\"'24'\" [sizeType]=\"'px'\"></lib-elux-icon>\n <div class=\"card-content\">\n <span class=\"subtitle-1\">{{ text }}</span>\n <lib-elux-icon class=\"iconRight\" [icon]=\"iconRight\" [size]=\"'24'\" [sizeType]=\"'px'\"></lib-elux-icon>\n </div>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { EluxIcon } from '../icon';\n\n@Component({\n selector: 'lib-elux-card-2',\n templateUrl: './card2.component.html',\n styleUrls: ['./card2.component.scss'],\n standalone: true,\n imports: [EluxIcon],\n})\nexport class EluxCard2 {\n @Input() text!: string;\n @Input() icon!: string;\n}\n","<div class=\"subtitle-1 card2 d-flex justify-content-between align-items-center\">\n <span class=\"subtitle-1 text-blue\">{{ text }}</span>\n <lib-elux-icon [icon]=\"icon\" [size]=\"'24'\" [sizeType]=\"'px'\"></lib-elux-icon>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { EluxIcon } from '../icon';\n\n@Component({\n selector: 'lib-elux-card-3',\n templateUrl: './card3.component.html',\n styleUrls: ['./card3.component.scss'],\n standalone: true,\n imports: [EluxIcon],\n})\nexport class EluxCard3 {\n @Input() title!: string;\n @Input() text!: string;\n @Input() icon!: string;\n}\n","<div class=\"card3 p-3 subtitle-1 d-flex align-items-center\">\n <div class=\"pe-3\">\n <lib-elux-icon [icon]=\"icon\" [size]=\"'40'\" [sizeType]=\"'px'\"></lib-elux-icon>\n </div>\n <div class=\"d-flex flex-column\">\n <span class=\"heading-3 text-blue\">{{ title }}</span>\n <span class=\"body mt-2\">{{ text }}</span>\n </div>\n</div>\n","import { Component, Input } from '@angular/core';\nimport { EluxIcon } from '../icon';\n\n@Component({\n selector: 'lib-elux-card-4',\n templateUrl: './card4.component.html',\n styleUrls: ['./card4.component.scss'],\n standalone: true,\n imports: [EluxIcon],\n})\nexport class EluxCard4 {\n @Input() title!: string;\n @Input() text!: string;\n}\n","<div class=\"card4 p-3\">\n <div class=\"d-flex flex-row justify-content-between align-items-center\">\n <span class=\"subtitle-1 text-blue\">{{ title }}</span>\n <lib-elux-icon [icon]=\"'Arrow_Right.svg'\" [size]=\"'24'\" [sizeType]=\"'px'\"></lib-elux-icon>\n </div>\n <div class=\"d-flex mt-2\">\n <span class=\"body\">{{ text }}</span>\n </div>\n</div>\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'lib-elux-loading-2',\n templateUrl: './loading-2.component.html',\n styleUrls: ['./loading-2.component.scss'],\n imports: [],\n standalone: true,\n})\nexport class EluxLoading2 {\n @Input() open = false;\n}\n","<div class=\"modal\" [class.open]=\"open\">\n <div class=\"modal-content\">\n <img class=\"content-icon mb-4\" src=\"/assets/icons/Loading.webp\" />\n <span class=\"content-title mt-2 mb-3\">Carregando...</span>\n <span class=\"content-description\">Por favor, aguarde enquanto buscamos a melhor solução.</span>\n </div>\n <div class=\"modal-backdrop\"></div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { EluxIcon } from '../icon';\n\n@Component({\n selector: 'lib-elux-arrow-link',\n templateUrl: './arrow-link.component.html',\n styleUrls: ['./arrow-link.component.scss'],\n imports: [CommonModule, RouterModule, EluxIcon],\n standalone: true,\n})\nexport class EluxArrowLink {\n @Input() title: string = '';\n @Input() reverse: boolean = false;\n @Input() icon_name: string = '';\n @Input() icon_size: string = '26';\n}\n","<div *ngIf=\"title\" class=\"single-action mat-elevation-z0\">\n <div class=\"text-container\">\n <lib-elux-icon *ngIf=\"reverse\" class=\"back\" [icon]=\"'Chevron_Left.svg'\" [color]=\"'#A5742E'\" [size]=\"'24'\" [sizeType]=\"'px'\"> </lib-elux-icon>\n <div class=\"content\">\n <lib-elux-icon class=\"content-icon\" *ngIf=\"!!icon_name\" [icon]=\"icon_name\" [sizeType]=\"'px'\" [size]=\"icon_size\"> </lib-elux-icon>\n <span>{{ title }}</span> \n </div>\n <lib-elux-icon *ngIf=\"!reverse\" class=\"go\" [icon]=\"'Chevron_Right.svg'\" [color]=\"'#A5742E'\" [size]=\"'24'\" [sizeType]=\"'px'\"> </lib-elux-icon>\n </div>\n</div>\n","import { Type } from '@angular/core';\nimport { EluxBreadcrumb } from './breadcrumb';\nimport { EluxButton } from './button';\nimport { EluxDropdown } from './dropdown';\nimport { EluxIcon } from './icon';\nimport { EluxPaginator } from './paginator';\nimport { EluxStepBar } from './stepbar';\nimport { EluxDatepicker } from './datepicker';\nimport { EluxToast } from './toast';\nimport { EluxDataTable } from './datatable';\nimport { EluxAccordion } from './accordion';\nimport { EluxModal } from './modal';\nimport { EluxInputSearchComponent } from './input-search';\nimport { EluxLoading } from './loading';\nimport { EluxInputSearchModalComponent } from './input-search-modal/input-search-modal.component';\nimport { EluxDropdownMultiple } from './dropdown-multiple';\nimport { EluxCarouselComponent } from './carousel';\nimport { EluxSwitch } from './switch';\nimport { EluxChip } from './chip';\n\nexport const ElectroluxComponents: Type<any>[] = [\n EluxBreadcrumb,\n EluxButton,\n EluxDatepicker,\n EluxDropdown,\n EluxIcon,\n EluxPaginator,\n EluxStepBar,\n EluxToast,\n EluxDataTable,\n EluxAccordion,\n EluxModal,\n EluxInputSearchComponent,\n EluxInputSearchModalComponent,\n EluxLoading,\n EluxDropdownMultiple,\n EluxCarouselComponent,\n EluxSwitch,\n EluxChip,\n];\n\nexport * from './breadcrumb';\nexport * from './button';\nexport * from './dropdown';\nexport * from './icon';\nexport * from './paginator';\nexport * from './stepbar';\nexport * from './datepicker';\nexport * from './toast';\nexport * from './datatable';\nexport * from './accordion';\nexport * from './modal';\nexport * from './loading';\nexport * from './input-search';\nexport * from './input-search-modal';\nexport * from './card-1';\nexport * from './card-2';\nexport * from './card-3';\nexport * from './card-4';\nexport * from './dropdown-multiple';\nexport * from './loading-2';\nexport * from './carousel';\nexport * from './arrow-link';\nexport * from './switch';\nexport * from './chip';\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ElectroluxComponents } from '../components';\n\n@NgModule({\n imports: [CommonModule, ...ElectroluxComponents],\n exports: [...ElectroluxComponents],\n})\nexport class ElectroluxDesignSystemModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i1","i1.ToasterService","i1.EluxBreadcrumb","i2.EluxButton","i3.EluxDatepicker","i4.EluxDropdown","i5.EluxIcon","i6.EluxPaginator","i7.EluxStepBar","i8.EluxToast","i9.EluxDataTable","i10.EluxAccordion","i11.EluxModal","i12.EluxInputSearchComponent","i13.EluxInputSearchModalComponent","i14.EluxLoading","i15.EluxDropdownMultiple","i16.EluxCarouselComponent","i17.EluxSwitch","i18.EluxChip"],"mappings":";;;;;;;;;MAWa,QAAQ,CAAA;AAYnB,IAAA,WAAA,GAAA;QATS,IAAK,CAAA,KAAA,GAAG,SAAS,CAAC;QAClB,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;QACxB,IAAI,CAAA,IAAA,GAAG,EAAE,CAAC;QACV,IAAW,CAAA,WAAA,GAAG,EAAE,CAAC;QACjB,IAAI,CAAA,IAAA,GAAG,EAAE,CAAC;QACV,IAAM,CAAA,MAAA,GAAG,EAAE,CAAC;QACZ,IAAK,CAAA,KAAA,GAAG,EAAE,CAAC;QACX,IAAQ,CAAA,QAAA,GAAG,IAAI,CAAC;KAGxB;IAEM,QAAQ,GAAA;QACb,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,IAAI,GAAG,CAAG,EAAA,IAAI,CAAC,IAAI,CAAG,EAAA,IAAI,CAAC,QAAQ,CAAE,CAAA,GAAG,CAAG,EAAA,IAAI,CAAC,MAAM,CAAG,EAAA,IAAI,CAAC,QAAQ,CAAE,CAAA;YACrF,KAAK,EAAE,IAAI,CAAC,IAAI,GAAG,CAAG,EAAA,IAAI,CAAC,IAAI,CAAG,EAAA,IAAI,CAAC,QAAQ,CAAE,CAAA,GAAG,CAAG,EAAA,IAAI,CAAC,KAAK,CAAG,EAAA,IAAI,CAAC,QAAQ,CAAE,CAAA;AACnF,YAAA,IAAI,EAAE,CAAA,mBAAA,EAAsB,IAAI,CAAC,IAAI,CAAa,WAAA,CAAA;AAClD,YAAA,cAAc,EAAE,CAAA,mBAAA,EAAsB,IAAI,CAAC,IAAI,CAAa,WAAA,CAAA;YAC5D,kBAAkB,EAAE,IAAI,CAAC,KAAK;AAC9B,YAAA,mBAAmB,EAAE,SAAS;AAC9B,YAAA,WAAW,EAAE,SAAS;AACtB,YAAA,aAAa,EAAE,WAAW;AAC1B,YAAA,qBAAqB,EAAE,WAAW;AAClC,YAAA,eAAe,EAAE,QAAQ;AACzB,YAAA,uBAAuB,EAAE,QAAQ;SAClC,CAAC;KACH;+GA7BU,QAAQ,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAR,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,QAAQ,ECXrB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,MAAA,EAAA,WAAA,EAAA,aAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,UAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,kFAEC,EDKW,MAAA,EAAA,CAAA,oHAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,mHAAE,mBAAmB,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIhC,QAAQ,EAAA,UAAA,EAAA,CAAA;kBAPpB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,cACb,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,mBAAmB,CAAC,EAAA,QAAA,EAAA,kFAAA,EAAA,MAAA,EAAA,CAAA,oHAAA,CAAA,EAAA,CAAA;wDAKrB,QAAQ,EAAA,CAAA;sBAA9B,SAAS;uBAAC,UAAU,CAAA;gBAEZ,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;;;MEHK,cAAc,CAAA;AAMzB,IAAA,WAAA;;IAEU,UAAsB,EAAA;QAAtB,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QAPvB,IAAM,CAAA,MAAA,GAAsB,EAAE,CAAC;;QAGxC,IAAkB,CAAA,kBAAA,GAAG,KAAK,CAAC;KAKtB;AAEL,IAAA,WAAW,CAAC,OAAsB,EAAA;;;;;KAMjC;IAED,oBAAoB,GAAA;AAClB,QAAA,IAAI,CAAC,kBAAkB,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC;AAEnD,QAAA,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAC3B,YAAA,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SACnE;aAAM;AACL,YAAA,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SACtE;KACF;AAED,IAAA,aAAa,CAAC,KAAU,EAAA;AACtB,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;AACzD,YAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;AAChC,YAAA,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;SACtE;KACF;+GAlCU,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EClB3B,g8CAgCA,EDlBY,MAAA,EAAA,CAAA,g1EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,+PAAE,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,QAAQ,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,aAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIxD,cAAc,EAAA,UAAA,EAAA,CAAA;kBAP1B,SAAS;+BACE,qBAAqB,EAAA,UAAA,EACnB,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,mBAAmB,EAAE,YAAY,EAAE,QAAQ,CAAC,EAAA,QAAA,EAAA,g8CAAA,EAAA,MAAA,EAAA,CAAA,g1EAAA,CAAA,EAAA,CAAA;+EAK3D,MAAM,EAAA,CAAA;sBAAd,KAAK;;;METK,WAAW,CAAA;AAPxB,IAAA,WAAA,GAAA;QAQW,IAAI,CAAA,IAAA,GAAW,EAAE,CAAC;QAClB,IAAK,CAAA,KAAA,GAAY,KAAK,CAAC;AACjC,KAAA;+GAHY,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAX,WAAW,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECVxB,wKAGA,EAAA,MAAA,EAAA,CAAA,qrDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDGY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIX,WAAW,EAAA,UAAA,EAAA,CAAA;kBAPvB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAChB,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,wKAAA,EAAA,MAAA,EAAA,CAAA,qrDAAA,CAAA,EAAA,CAAA;8BAKd,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;;;MEEK,UAAU,CAAA;AAmBrB,IAAA,WAAA,CAAoB,MAAc,EAAA;QAAd,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QAlBzB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QACjB,IAAI,CAAA,IAAA,GAA+G,OAAO,CAAC;QAC3H,IAAU,CAAA,UAAA,GAAwB,QAAQ,CAAC;QAG3C,IAAI,CAAA,IAAA,GAAG,KAAK,CAAC;QAKb,IAAI,CAAA,IAAA,GAAG,EAAE,CAAC;QAEV,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;QACrB,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;QAChB,IAAoB,CAAA,oBAAA,GAAG,IAAI,CAAC;AAE3B,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAS,CAAC;KAER;IAEtC,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE;AACb,YAAA,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC;SACzB;AAED,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,YAAA,IAAI,CAAC,IAAI,GAAG,UAAU,CAAC;SACxB;AAED,QAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,YAAA,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;SAC3B;KACF;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,SAAS,CAAC,EAAE;SACvB;KACF;AAED,IAAA,gBAAgB,CAAC,KAAa,EAAA;QAC5B,IAAI,KAAK,EAAE;AACT,YAAA,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;SACrE;AAED,QAAA,OAAO,EAAE,CAAC;KACX;AAED,IAAA,WAAW,CAAC,MAAa,EAAA;AACvB,QAAA,IAAI,IAAI,CAAC,OAAO,IAAI,KAAK,EAAE;AACzB,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC1B,YAAA,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aAC5C;AAAM,iBAAA,IAAI,IAAI,CAAC,IAAI,EAAE;gBACpB,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACtC;SACF;KACF;+GAzDU,UAAU,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAV,UAAU,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,IAAA,EAAA,MAAA,EAAA,UAAA,EAAA,YAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAA,EAAA,UAAA,EAAA,YAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,SAAA,EAAA,WAAA,EAAA,YAAA,EAAA,cAAA,EAAA,OAAA,EAAA,SAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECdvB,6qBAkBA,EDRY,MAAA,EAAA,CAAA,uyMAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,qTAAE,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,QAAQ,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,aAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,WAAW,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIvD,UAAU,EAAA,UAAA,EAAA,CAAA;kBAPtB,SAAS;+BACE,iBAAiB,EAAA,UAAA,EACf,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,mBAAmB,EAAE,QAAQ,EAAE,WAAW,CAAC,EAAA,QAAA,EAAA,6qBAAA,EAAA,MAAA,EAAA,CAAA,uyMAAA,CAAA,EAAA,CAAA;6EAK1D,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBAEG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBAEG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,oBAAoB,EAAA,CAAA;sBAA5B,KAAK;gBAEI,OAAO,EAAA,CAAA;sBAAhB,MAAM;;;MEPI,YAAY,CAAA;AAoBvB,IAAA,WAAA,CAA6B,QAAkB,EAAA;QAAlB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;QAlBtC,IAAW,CAAA,WAAA,GAAW,WAAW,CAAC;QAClC,IAAO,CAAA,OAAA,GAAqB,EAAE,CAAC;QAC/B,IAAc,CAAA,cAAA,GAAQ,EAAE,CAAC;QACzB,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;QAC1B,IAAO,CAAA,OAAA,GAAW,EAAE,CAAC;QACrB,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;AAE3B,QAAA,IAAA,CAAA,cAAc,GAAsB,IAAI,YAAY,EAAO,CAAC;QAEtE,IAAM,CAAA,MAAA,GAAY,KAAK,CAAC;QACxB,IAAkB,CAAA,kBAAA,GAAG,EAAE,CAAC;QAExB,IAAe,CAAA,eAAA,GAAqB,EAAE,CAAC;AAE/B,QAAA,IAAA,CAAA,QAAQ,GAAa,MAAM,SAAS,CAAC;AACrC,QAAA,IAAA,CAAA,SAAS,GAAa,MAAM,SAAS,CAAC;KAGK;IAEnD,QAAQ,GAAA;QACN,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC/B,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5B,IAAI,CAAC,oBAAoB,EAAE,CAAC;AAC5B,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,IAAI,CAAC,OAAO,GAAG,CAAA,SAAA,EAAY,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA,CAAE,CAAC;SAC1E;AAED,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC;KACrC;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,aAAa,EAAE,EAAE;YAC3E,IAAI,CAAC,oBAAoB,EAAE,CAAC;SAC7B;AAED,QAAA,IAAI,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,aAAa,EAAE,EAAE;YACrE,IAAI,CAAC,uBAAuB,EAAE,CAAC;SAChC;KACF;IAED,uBAAuB,GAAA;AACrB,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACrD,IAAI,SAAS,EAAE;AACb,YAAA,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC,OAAsB,CAAC;SAC3D;KACF;IAED,oBAAoB,GAAA;AAClB,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC,EAAE;AACzD,YAAA,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;SAC/D;KACF;IAED,oBAAoB,GAAA;QAClB,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC,cAAc,CAAC,CAAC;QAC3F,IAAI,CAAC,kBAAkB,GAAG,cAAc,GAAG,cAAc,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,GAAG,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;KAC1G;IAED,uBAAuB,GAAA;AACrB,QAAA,MAAM,sBAAsB,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,IAAI,MAAM,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;AACvF,QAAA,IAAI,sBAAsB,KAAK,CAAC,CAAC,EAAE;YACjC,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC;SAC9D;aAAM;YACL,IAAI,CAAC,oBAAoB,EAAE,CAAC;SAC7B;QAED,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;AAC5C,YAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,WAAW,CAAC;SAC5C;KACF;IAED,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;SAC5B;KACF;AAGD,IAAA,eAAe,CAAC,KAAiB,EAAA;AAC/B,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAqB,CAAC;AAC3C,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA,CAAA,EAAI,IAAI,CAAC,OAAO,CAAA,CAAE,CAAC,EAAE;AACvC,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;SACrB;KACF;AAED,IAAA,YAAY,CAAC,MAAsB,EAAA;AACjC,QAAA,IAAI,CAAC,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC;QACtC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACvC,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5B,IAAI,CAAC,SAAS,EAAE,CAAC;AACjB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;AAEpB,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC;KACrC;AAED,IAAA,UAAU,CAAC,KAAa,EAAA;AACtB,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,oBAAoB,EAAE,CAAC;KAC7B;AAED,IAAA,gBAAgB,CAAC,EAAY,EAAA;AAC3B,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACpB;AAED,IAAA,iBAAiB,CAAC,EAAY,EAAA;AAC5B,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;AAED,IAAA,gBAAgB,CAAE,UAAmB,EAAA;AACnC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;KAC5B;AAED,IAAA,cAAc,CAAC,KAAU,EAAA;AACvB,QAAA,MAAM,IAAI,GAAG,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;QACvD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,IAC/C,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CACzC,CAAC;KACH;AAED,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,iBAAiB,EAAE,OAAO,IAAI,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC;KACzE;AAED,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC;KACxC;+GAhIU,YAAY,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,YAAY,EAVZ,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,gBAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,YAAY,CAAC;AAC3C,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;SACF,ECpBH,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,47BA+BA,84EDlBY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,WAAW,EAAE,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,mBAAmB,+BAAE,QAAQ,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,aAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAWvD,YAAY,EAAA,UAAA,EAAA,CAAA;kBAdxB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,EACjB,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,QAAQ,CAAC,EACxD,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,kBAAkB,CAAC;AAC3C,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,47BAAA,EAAA,MAAA,EAAA,CAAA,u1EAAA,CAAA,EAAA,CAAA;6EAMQ,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,cAAc,EAAA,CAAA;sBAAtB,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAEI,cAAc,EAAA,CAAA;sBAAvB,MAAM;gBAwEP,eAAe,EAAA,CAAA;sBADd,YAAY;uBAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MEnF/B,aAAa,CAAA;AAYxB,IAAA,WAAA,GAAA;QAXS,IAAM,CAAA,MAAA,GAAW,CAAC,CAAC;QACnB,IAAO,CAAA,OAAA,GAAW,CAAC,CAAC;QACpB,IAAM,CAAA,MAAA,GAAY,IAAI,CAAC;QACvB,IAAQ,CAAA,QAAA,GAAY,SAAS,CAAC;AAE7B,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAmB,CAAC;QAEjE,IAAK,CAAA,KAAA,GAAa,EAAE,CAAC;QACrB,IAAa,CAAA,aAAA,GAAa,EAAE,CAAC;QAC7B,IAAS,CAAA,SAAA,GAAa,EAAE,CAAC;KAET;IAEhB,QAAQ,GAAA;QACN,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;QAChC,IAAI,OAAO,CAAC,QAAQ,CAAC,IAAI,OAAO,CAAC,SAAS,CAAC,EAAE;YAC3C,IAAI,CAAC,SAAS,EAAE,CAAC;SAClB;KACF;AAED,IAAA,eAAe,CAAC,KAAU,EAAA;AACxB,QAAA,IAAI,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC;QAEtB,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YACjC,MAAM,SAAS,GAAI,EAAE,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;YAClD,UAAU,CAAC,MAAK;gBACd,IAAI,SAAS,EAAE;oBACb,SAAS,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;iBACjH;aACF,EAAE,GAAG,CAAC,CAAC;SACT;AAED,QAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,SAAS,EAAE;YAC9B,EAAE,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC3C,UAAU,CAAC,MAAK;AACd,gBAAA,EAAE,CAAC,cAAc,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;aAC9E,EAAE,GAAG,CAAC,CAAC;SACT;KACF;IAED,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAC5B;IAED,OAAO,GAAA;AACL,QAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;KAClB;IAED,QAAQ,GAAA;QACN,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;KACjC;IAED,QAAQ,GAAA;QACN,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;KACjC;AAED,IAAA,QAAQ,CAAC,IAAY,EAAA;AACnB,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AACzD,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,SAAS,EAAE,CAAC;KAClB;IAED,YAAY,CAAC,IAAY,EAAE,KAAU,EAAA;AACnC,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AACzD,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,UAAU,CAAC,MAAI;AACb,YAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;SAE7B,EAAE,GAAG,CAAC,CAAA;KACR;IAED,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;AACpB,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;AAEhB,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,OAAO;SACR;AAED,QAAA,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE;AACpB,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACpC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;aACxB;YACD,OAAO;SACR;AAED,QAAA,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE;AACpB,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE;AACzC,gBAAA,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;gBACtB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;aAC7C;AAED,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACzC,gBAAA,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;AACtB,gBAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aAClC;YAED,OAAO;SACR;AAED,QAAA,IAAI,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YACvD,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;YACtC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;YACtC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;YAC1C,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;YAC1C,OAAO;SACR;QAED,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AAClC,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE;AACnD,gBAAA,MAAM,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC;gBACtB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;aAC7C;AAED,YAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBAClD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACvC,gBAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aAClC;AAED,YAAA,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,CAAC;YAC7B,OAAO;SACR;KACF;+GAhIU,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,aAAa,ECrB1B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,62DAiDA,EDhCY,MAAA,EAAA,CAAA,q/EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,8VAAE,QAAQ,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,aAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIrB,aAAa,EAAA,UAAA,EAAA,CAAA;kBAPzB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,cAClB,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,QAAQ,CAAC,EAAA,QAAA,EAAA,62DAAA,EAAA,MAAA,EAAA,CAAA,q/EAAA,CAAA,EAAA,CAAA;wDAKxB,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBAEI,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;;;MEjBI,WAAW,CAAA;AAKtB,IAAA,WAAA,GAAA;QAJS,IAAK,CAAA,KAAA,GAAW,CAAC,CAAC;QAClB,IAAW,CAAA,WAAA,GAAW,CAAC,CAAC;AACvB,QAAA,IAAA,CAAA,WAAW,GAAyB,IAAI,YAAY,EAAU,CAAC;KAEzD;AAEhB,IAAA,kBAAkB,CAAC,IAAY,EAAA;AAC7B,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC7B;IAED,UAAU,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,WAAW,KAAK,IAAI,CAAC,KAAK,CAAC;KACxC;IAED,aAAa,GAAA;AACX,QAAA,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC9B;IAED,gBAAgB,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC;AAAE,YAAA,OAAO,IAAI,CAAC;AAEjC,QAAA,MAAM,YAAY,GAAG,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC;AACtC,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;AAChD,QAAA,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,GAAG,UAAU,IAAI,YAAY,CAAC;QAEpE,OAAO,CAAA,EAAG,QAAQ,CAAA,CAAA,CAAG,CAAC;KACvB;+GA3BU,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAX,WAAW,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,OAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECVxB,gfAaA,EAAA,MAAA,EAAA,CAAA,63DAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDPY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIX,WAAW,EAAA,UAAA,EAAA,CAAA;kBAPvB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAChB,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,CAAC,EAAA,QAAA,EAAA,gfAAA,EAAA,MAAA,EAAA,CAAA,63DAAA,CAAA,EAAA,CAAA;wDAKd,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACI,WAAW,EAAA,CAAA;sBAApB,MAAM;;;MEqBI,cAAc,CAAA;AAyBzB,IAAA,WAAA,CAA6B,QAAkB,EAAA;QAAlB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;QAxBtC,IAAK,CAAA,KAAA,GAAW,EAAE,CAAC;QACnB,IAAM,CAAA,MAAA,GAAW,OAAO,CAAC;QACzB,IAAO,CAAA,OAAA,GAAW,EAAE,CAAC;QACrB,IAAW,CAAA,WAAA,GAAW,YAAY,CAAC;AAGlC,QAAA,IAAA,CAAA,YAAY,GAAyB,IAAI,YAAY,EAAU,CAAC;AAChE,QAAA,IAAA,CAAA,WAAW,GAAyB,IAAI,YAAY,EAAU,CAAC;QAGzE,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QACjB,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;QACrB,IAAU,CAAA,UAAA,GAA8B,MAAM,CAAC;AAC/C,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC;QACzB,IAAY,CAAA,YAAA,GAAgB,IAAI,CAAC;QACjC,IAAY,CAAA,YAAA,GAAW,EAAE,CAAC;QAC1B,IAAI,CAAA,IAAA,GAAU,EAAE,CAAC;QACjB,IAAM,CAAA,MAAA,GAAY,EAAE,CAAC;QACrB,IAAK,CAAA,KAAA,GAAW,EAAE,CAAC;AAEX,QAAA,IAAA,CAAA,QAAQ,GAAa,MAAM,SAAS,CAAC;AACrC,QAAA,IAAA,CAAA,SAAS,GAAa,MAAM,SAAS,CAAC;KAGK;IAEnD,uBAAuB,GAAA;AACrB,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACrD,IAAI,SAAS,EAAE;AACb,YAAA,IAAI,CAAC,iBAAiB,GAAG,SAAS,CAAC,OAAsB,CAAC;SAC3D;KACF;AAED,IAAA,UAAU,CAAC,KAAa,EAAA;AACtB,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;QAC1B,IAAI,CAAC,MAAM,EAAE,CAAC;KACf;AAED,IAAA,gBAAgB,CAAC,EAAY,EAAA;AAC3B,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACpB;AAED,IAAA,iBAAiB,CAAC,EAAY,EAAA;AAC5B,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;KACrB;AAED,IAAA,IAAI,SAAS,GAAA;QACX,OAAO,IAAI,CAAC,iBAAiB,EAAE,OAAO,IAAI,IAAI,CAAC,iBAAiB,EAAE,KAAK,CAAC;KACzE;AAED,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,iBAAiB,EAAE,OAAO,CAAC;KACxC;IAED,UAAU,GAAA;QACR,OAAO,CAAA,EAAG,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE;AACrD,YAAA,KAAK,EAAE,MAAM;SACd,CAAC,CAAA,CAAA,EAAI,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,EAAE,CAAC;KACxC;IAED,cAAc,GAAA;QACZ,MAAM,UAAU,GAAG,EAAE,CAAC;AACtB,QAAA,MAAM,QAAQ,GAAG,IAAI,IAAI,EAAE,CAAC;AAE5B,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;YAC1B,MAAM,GAAG,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,GAAG,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AACnF,YAAA,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;SAC7E;AAED,QAAA,OAAO,UAAU,CAAC;KACnB;IAED,QAAQ,GAAA;QACN,IAAI,CAAC,uBAAuB,EAAE,CAAC;AAE/B,QAAA,IAAI,IAAI,CAAC,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC;YAC/B,IAAI,CAAC,MAAM,EAAE,CAAC;SACf;AAED,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;KACzC;AAED,IAAA,gBAAgB,CAAE,UAAmB,EAAA;AACnC,QAAA,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC;KAC5B;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,EAAE;AACzD,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC;YAC/B,IAAI,CAAC,MAAM,EAAE,CAAC;SACf;KACF;AAED,IAAA,aAAa,CAAC,KAAY,EAAA;AACxB,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,MAA0B,CAAC;AAC/C,QAAA,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAE9D,QAAA,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;AACrB,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;SAC3B;AAAM,aAAA,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;YAC5B,IAAI,CAAC,YAAY,GAAG,CAAA,EAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAG,EAAA,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA,CAAE,CAAC;SACzE;aAAM;AACL,YAAA,IAAI,CAAC,YAAY,GAAG,CAAA,EAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAG,EAAA,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA,EAAG,SAAS,CAAG,EAAA,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;SAC5G;AAED,QAAA,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC;AAChC,QAAA,KAAK,CAAC,iBAAiB,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;KACjE;AAED,IAAA,yBAAyB,CAAC,MAAc,EAAA;QACtC,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACzC,MAAM,SAAS,GAAG,UAAU,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACxD,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AACxC,QAAA,OAAO,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;KAC/B;IAED,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,YAAY,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC;AACvC,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;AACrB,YAAA,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;SAC1B;KACF;IAED,UAAU,GAAA;AACR,QAAA,QAAQ,IAAI,CAAC,UAAU;AACrB,YAAA,KAAK,MAAM;AACT,gBAAA,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC;gBAC1B,IAAI,CAAC,cAAc,EAAE,CAAC;gBACtB,MAAM;AACR,YAAA,KAAK,OAAO;AACV,gBAAA,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;gBACzB,IAAI,CAAC,aAAa,EAAE,CAAC;gBACrB,MAAM;AACR,YAAA,KAAK,MAAM;gBACT,MAAM;AACR,YAAA;gBACE,MAAM;SACT;KACF;IAED,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;KAC3B;IAED,QAAQ,GAAA;AACN,QAAA,QAAQ,IAAI,CAAC,UAAU;AACrB,YAAA,KAAK,MAAM;gBACT,IAAI,CAAC,SAAS,EAAE,CAAC;gBACjB,MAAM;AACR,YAAA,KAAK,OAAO;AACV,gBAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACjB,MAAM;AACR,YAAA,KAAK,MAAM;AACT,gBAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBAClB,MAAM;AACR,YAAA;gBACE,MAAM;SACT;KACF;IAED,IAAI,GAAA;AACF,QAAA,QAAQ,IAAI,CAAC,UAAU;AACrB,YAAA,KAAK,MAAM;gBACT,IAAI,CAAC,SAAS,EAAE,CAAC;gBACjB,MAAM;AACR,YAAA,KAAK,OAAO;AACV,gBAAA,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACjB,MAAM;AACR,YAAA,KAAK,MAAM;AACT,gBAAA,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBAClB,MAAM;AACR,YAAA;gBACE,MAAM;SACT;KACF;IAED,SAAS,GAAA;QACP,IAAI,CAAC,WAAW,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AACxF,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;KACzC;IAED,SAAS,GAAA;QACP,IAAI,CAAC,WAAW,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;AACxF,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;KACzC;AAED,IAAA,QAAQ,CAAC,QAAgB,EAAA;AACvB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,GAAG,QAAQ,CAAC,CAAC;QAC7D,IAAI,CAAC,aAAa,EAAE,CAAC;KACtB;AAED,IAAA,QAAQ,CAAC,QAAgB,EAAA;AACvB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,GAAG,QAAQ,CAAC,CAAC;QAC7D,IAAI,CAAC,aAAa,EAAE,CAAC;KACtB;AAED,IAAA,UAAU,CAAC,GAAQ,EAAA;QACjB,MAAM,QAAQ,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC;AAEhG,QAAA,IAAI,CAAC,YAAY,GAAG,QAAQ,CAAC;AAC7B,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,IAAI,CAAC,MAAM,EAAE;AACpE,YAAA,GAAG,EAAE,SAAS;AACd,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,IAAI,EAAE,SAAS;AAChB,SAAA,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACxC,IAAI,CAAC,aAAa,EAAE,CAAC;QACrB,IAAI,CAAC,MAAM,EAAE,CAAC;KACf;AAED,IAAA,WAAW,CAAC,UAAkB,EAAA;AAC5B,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;AAC7D,QAAA,MAAM,aAAa,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;QAE9E,IAAI,OAAO,IAAI,aAAa,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE;YACrF,OAAO;SACR;AAED,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;AAC5E,QAAA,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;AACzB,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;KACzC;AAED,IAAA,YAAY,CAAC,IAAY,EAAA;AACvB,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;QAChE,IAAI,CAAC,cAAc,EAAE,CAAC;KACvB;AAED,IAAA,UAAU,CAAC,IAAY,EAAA;AACrB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AACxB,QAAA,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC;KAC3B;AAED,IAAA,gBAAgB,CAAC,IAAU,EAAA;AACzB,QAAA,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;AACf,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;AAChC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;AAC9B,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;AAC7D,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;AAC7D,QAAA,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC;AACzB,QAAA,MAAM,YAAY,GAAG,KAAK,CAAC,QAAQ,EAAE,KAAK,KAAK,IAAI,KAAK,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC;QAChF,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,WAAW,EAAE,CAAC;QACtD,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,CAAC;QACpD,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,CAAC;AAEjD,QAAA,MAAM,mBAAmB,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;AAC9D,QAAA,MAAM,kBAAkB,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;;AAGlE,QAAA,KAAK,IAAI,CAAC,GAAG,mBAAmB,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC5C,YAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;SAC5C;;AAGD,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,kBAAkB,EAAE,CAAC,EAAE,EAAE;YAC5C,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;YAC3C,MAAM,OAAO,GAAG,YAAY,IAAI,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;AACtD,YAAA,MAAM,UAAU,GAAG,YAAY,KAAK,IAAI,IAAI,aAAa,KAAK,KAAK,IAAI,WAAW,KAAK,CAAC,CAAC;YACzF,MAAM,QAAQ,GAAG,CAAC,CAAC,OAAO,IAAI,SAAS,GAAG,OAAO,MAAM,OAAO,IAAI,SAAS,GAAG,OAAO,CAAC,KAAK,KAAK,CAAC;YACjG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;SACtF;KACF;IAED,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,MAAM,GAAG,EAAE,CAAC;QACjB,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;AACnD,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;AAC7D,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;AAE7D,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;;YAE3B,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9C,MAAM,UAAU,GAAG,CAAC,CAAC,OAAO,IAAI,SAAS,GAAG,OAAO,MAAM,OAAO,IAAI,SAAS,GAAG,OAAO,CAAC,KAAK,KAAK,CAAC;AACnG,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;SACtH;KACF;IAED,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;AACnD,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;AAC7D,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;AAE7D,QAAA,KAAK,IAAI,CAAC,GAAG,WAAW,GAAG,EAAE,EAAE,CAAC,IAAI,WAAW,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE;YACzD,MAAM,UAAU,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,GAAG,OAAO,CAAC,WAAW,EAAE,MAAM,OAAO,IAAI,CAAC,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,KAAK,KAAK,CAAC;AAC/G,YAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;SACrD;KACF;AAED,IAAA,SAAS,CAAC,IAAU,EAAA;AAClB,QAAA,OAAO,IAAI,YAAY,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;KACvD;IAED,MAAM,GAAA;QACJ,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAChD,MAAM,SAAS,GAAG,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAE9D,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAE7D,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,IAAI,GAAqB,SAAS,CAAC;AAEvC,QAAA,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YAC5C,MAAM,OAAO,GAA8B,EAAE,CAAC;YAC9C,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;YAElE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,OAAuD,CAAC;AAErF,YAAA,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;AAEtC,YAAA,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,KAAK,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,KAAK,GAAG,CAAC;SAC1H;QAED,IAAI,CAAC,SAAS,EAAE,CAAC;AACjB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAEjC,QAAA,IAAI,OAAO,IAAI,IAAI,EAAE;YACnB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAC1C,YAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACzB,YAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SACzC;aAAM;YACL,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SAC1C;KACF;AAEO,IAAA,eAAe,CAAC,MAAc,EAAA;AACpC,QAAA,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AACtC,QAAA,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAEjE,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACtC,QAAA,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QAElE,MAAM,KAAK,GAAa,EAAE,CAAC;AAC3B,QAAA,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACxB,IAAI,IAAI,KAAK,IAAI;AAAE,gBAAA,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;iBAChC,IAAI,IAAI,KAAK,IAAI;AAAE,gBAAA,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;iBACvC,IAAI,IAAI,KAAK,MAAM;AAAE,gBAAA,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SAC9C;AAED,QAAA,OAAO,KAAK,CAAC;KACd;AAEO,IAAA,mBAAmB,CAAC,OAAe,EAAA;AACzC,QAAA,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;AAAE,YAAA,OAAO,GAAG,CAAC;AACtC,QAAA,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC;AAAE,YAAA,OAAO,GAAG,CAAC;QACtC,OAAO,EAAE,CAAC;KACX;AAGD,IAAA,YAAY,CAAC,KAAY,EAAA;AACvB,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAqB,CAAC;QAC3C,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;AACtG,YAAA,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;SAC3B;KACF;IAED,kBAAkB,GAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACjB,YAAA,OAAO,KAAK,CAAC;SACd;QAED,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACvC,QAAA,QAAQ,IAAI,CAAC,UAAU;AACrB,YAAA,KAAK,MAAM;gBACT,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC;AACxH,YAAA,KAAK,OAAO;gBACV,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC;AAClE,YAAA,KAAK,MAAM;AACT,gBAAA,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;AACrE,YAAA;AACE,gBAAA,OAAO,KAAK,CAAC;SAChB;KACF;IAED,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACjB,YAAA,OAAO,KAAK,CAAC;SACd;QAED,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACvC,QAAA,QAAQ,IAAI,CAAC,UAAU;AACrB,YAAA,KAAK,MAAM;gBACT,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,WAAW,EAAE,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,OAAO,CAAC,QAAQ,EAAE,CAAC;AACxH,YAAA,KAAK,OAAO;gBACV,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC;AAClE,YAAA,KAAK,MAAM;AACT,gBAAA,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;AACrE,YAAA;AACE,gBAAA,OAAO,KAAK,CAAC;SAChB;KACF;+GA1YU,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAd,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,cAAc,EAVd,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,gBAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,cAAc,CAAC;AAC7C,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;SACF,EC9BH,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,20EAuDA,20HDhCY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,mBAAmB,EAAE,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,WAAW,+BAAE,QAAQ,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,aAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAWvD,cAAc,EAAA,UAAA,EAAA,CAAA;kBAd1B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,EACnB,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,EAAE,mBAAmB,EAAE,WAAW,EAAE,QAAQ,CAAC,EACxD,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,oBAAoB,CAAC;AAC7C,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,20EAAA,EAAA,MAAA,EAAA,CAAA,oxHAAA,CAAA,EAAA,CAAA;6EAKQ,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACI,YAAY,EAAA,CAAA;sBAArB,MAAM;gBACG,WAAW,EAAA,CAAA;sBAApB,MAAM;gBACkB,UAAU,EAAA,CAAA;sBAAlC,SAAS;uBAAC,YAAY,CAAA;gBAwVvB,YAAY,EAAA,CAAA;sBADX,YAAY;uBAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,CAAA;;;AElY5C;MAOa,cAAc,CAAA;AAH3B,IAAA,WAAA,GAAA;QAIE,IAAM,CAAA,MAAA,GAAU,EAAE,CAAC;QAEX,IAAc,CAAA,cAAA,GAAG,CAAC,CAAC;AA2C5B,KAAA;AAzCC,IAAA,OAAO,CAAC,OAAe,EAAA;QACrB,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,gBAAgB,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;KACjE;AAED,IAAA,KAAK,CAAC,OAAe,EAAA;QACnB,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;KAC5D;AAED,IAAA,OAAO,CAAC,OAAe,EAAA;QACrB,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,aAAa,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;KAC9D;AAED,IAAA,IAAI,CAAC,OAAe,EAAA;QAClB,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;KACxD;AAEM,IAAA,SAAS,CAAC,IAAY,EAAE,QAAgB,EAAE,SAAiB,EAAE,OAAe,EAAA;QACjF,IAAI,CAAC,cAAc,EAAE,CAAC;AACtB,QAAA,MAAM,EAAE,GAAG,CAAG,EAAA,IAAI,CAAC,GAAG,EAAE,CAAA,CAAA,EAAI,IAAI,CAAC,cAAc,CAAA,CAAE,CAAC;QAClD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;AAC5E,QAAA,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,SAAS,EAAE;AAC/D,YAAA,IAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC;SACnC;KACF;AAEM,IAAA,WAAW,CAAC,EAAU,EAAA;QAC3B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;KAC9D;AAEM,IAAA,wBAAwB,CAAC,EAAU,EAAA;QACxC,UAAU,CAAC,MAAK;AACd,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;YAC3D,MAAM,cAAc,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;AAEtD,YAAA,IAAI,KAAK,IAAI,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE;gBACjE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;aAC9D;iBAAM,IAAI,KAAK,EAAE;AAChB,gBAAA,IAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC;aACnC;SACF,EAAE,IAAI,CAAC,CAAC;KACV;+GA7CU,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAd,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cAFb,MAAM,EAAA,CAAA,CAAA,EAAA;;4FAEP,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;MCOY,SAAS,CAAA;AACpB,IAAA,WAAA,CAAmB,cAA8B,EAAA;QAA9B,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;KAAK;AAEtD,IAAA,UAAU,CAAC,KAAU,EAAA;AACnB,QAAA,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;KACrB;AAED,IAAA,WAAW,CAAC,KAAU,EAAA;AACpB,QAAA,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,cAAc,CAAC,wBAAwB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;KACxD;AAED,IAAA,UAAU,CAAC,KAAU,EAAA;QACnB,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;KAC1C;+GAdU,SAAS,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAT,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,SAAS,ECbtB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,imBASA,EDDY,MAAA,EAAA,CAAA,olEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,0PAAE,QAAQ,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,aAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAKrB,SAAS,EAAA,UAAA,EAAA,CAAA;kBARrB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,cAChB,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,QAAQ,CAAC,EAAA,QAAA,EAAA,imBAAA,EAAA,MAAA,EAAA,CAAA,olEAAA,CAAA,EAAA,CAAA;;;MEatB,aAAa,CAAA;AAP1B,IAAA,WAAA,GAAA;QAQW,IAAO,CAAA,OAAA,GAAsB,EAAE,CAAC;QAChC,IAAI,CAAA,IAAA,GAAmB,EAAE,CAAC;QAC1B,IAAS,CAAA,SAAA,GAAW,CAAC,CAAC;QACtB,IAAY,CAAA,YAAA,GAAW,EAAE,CAAC;QAC1B,IAAiB,CAAA,iBAAA,GAAY,KAAK,CAAC;QACnC,IAAY,CAAA,YAAA,GAAW,yDAAyD,CAAC;QACjF,IAAO,CAAA,OAAA,GAAY,KAAK,CAAC;AAKxB,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,YAAY,EAAU,CAAC;AAC/C,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAuB,CAAC;AAClD,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAuB,CAAC;AACpD,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAuB,CAAC;QAEnE,IAAW,CAAA,WAAA,GAAW,CAAC,CAAC;QACxB,IAAmB,CAAA,mBAAA,GAAW,CAAC,CAAC;QAChC,IAAW,CAAA,WAAA,GAAmB,EAAE,CAAC;AAoGlC,KAAA;IAlGC,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;QACzE,IAAI,CAAC,aAAa,EAAE,CAAC;KACtB;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,cAAc,CAAC,EAAE;YAC3B,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,IAAI,CAAC,aAAa,EAAE,CAAC;SACtB;AAED,QAAA,IAAI,OAAO,CAAC,WAAW,CAAC,EAAE;YACxB,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,IAAI,CAAC,aAAa,EAAE,CAAC;SACtB;AAED,QAAA,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE;YACnB,IAAI,CAAC,aAAa,EAAE,CAAC;SACtB;KACF;AAED,IAAA,YAAY,CAAC,KAAsB,EAAA;AACjC,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC;AAC9B,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;SACzC;aAAM;YACL,IAAI,CAAC,aAAa,EAAE,CAAC;SACtB;KACF;IAED,gBAAgB,GAAA;AACd,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;AACzE,QAAA,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC;KACtB;IAED,aAAa,GAAA;AACX,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAC1B,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC;SAC9B;aAAM;AACL,YAAA,MAAM,WAAW,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC;AAC/D,YAAA,MAAM,SAAS,GAAG,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC;AAClD,YAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;SAC5D;KACF;AAED,IAAA,gBAAgB,CAAC,KAAY,EAAE,GAAQ,EAAE,IAAS,EAAE,KAAa,EAAA;QAC/D,IAAI,CAAC,KAAK,GAAI,KAAK,CAAC,MAA2B,CAAC,OAAO,CAAC;AACxD,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;KAClD;AAED,IAAA,aAAa,CAAC,KAAY,EAAE,GAAQ,EAAE,IAAS,EAAE,KAAa,EAAA;QAC5D,IAAI,CAAC,KAAK,GAAI,KAAK,CAAC,MAA2B,CAAC,KAAK,CAAC;AACtD,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AACtD,QAAA,IAAI,IAAI,CAAC,IAAI,IAAI,cAAc,EAAE;YAC/B,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE;AACzB,gBAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC;gBACrB,KAAK,CAAC,MAA2B,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC;aACrD;YACD,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE;AACzB,gBAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC;gBACrB,KAAK,CAAC,MAA2B,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC;aACrD;SACF;KACF;AAED,IAAA,UAAU,CAAC,KAAY,EAAE,GAAiB,EAAE,KAAa,EAAA;AACvD,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACvB,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;SAC1C;KACF;AAED,IAAA,WAAW,CAAC,KAAY,EAAE,GAAiB,EAAE,IAAmB,EAAE,KAAa,EAAA;AAC7E,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACxB,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;SAChD;KACF;AAED,IAAA,cAAc,CAAC,IAAmB,EAAA;AAChC,QAAA,IAAI,OAAO,GAA+B;YACxC,WAAW,EAAE,IAAI,CAAC,eAAe;SAClC,CAAC;AAEF,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AACpB,YAAA,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;SAClC;AAED,QAAA,OAAO,OAAO,CAAC;KAChB;AAED,IAAA,gBAAgB,CAAC,MAAuB,EAAA;QACtC,IAAI,OAAO,GAA+B,EAAE,CAAC;AAE7C,QAAA,IAAI,MAAM,CAAC,WAAW,EAAE;AACtB,YAAA,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC;SACpC;AAED,QAAA,OAAO,OAAO,CAAC;KAChB;+GAtHU,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,aAAa,EAQJ,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAA,EAAA,SAAA,EAAA,WAAA,EAAA,YAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,OAAA,EAAA,SAAA,EAAA,cAAA,EAAA,CAAA,gBAAA,EAAA,gBAAA,EAAA,gBAAgB,CAChB,EAAA,eAAA,EAAA,CAAA,iBAAA,EAAA,iBAAA,EAAA,gBAAgB,kDAChB,gBAAgB,CAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,OAAA,EAAA,SAAA,EAAA,SAAA,EAAA,WAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC/BtC,q9EAoEM,EAAA,MAAA,EAAA,CAAA,04EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDnDM,YAAY,EAAE,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,EAAE,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,UAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,aAAa,mJAAE,WAAW,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIrD,aAAa,EAAA,UAAA,EAAA,CAAA;kBAPzB,SAAS;+BACE,oBAAoB,EAAA,UAAA,EAClB,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,CAAC,EAAA,QAAA,EAAA,q9EAAA,EAAA,MAAA,EAAA,CAAA,04EAAA,CAAA,EAAA,CAAA;8BAKxD,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,iBAAiB,EAAA,CAAA;sBAAzB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACkC,cAAc,EAAA,CAAA;sBAArD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBACE,eAAe,EAAA,CAAA;sBAAtD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBACE,YAAY,EAAA,CAAA;sBAAnD,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBAE5B,iBAAiB,EAAA,CAAA;sBAA1B,MAAM;gBACG,OAAO,EAAA,CAAA;sBAAhB,MAAM;gBACG,SAAS,EAAA,CAAA;sBAAlB,MAAM;gBACG,cAAc,EAAA,CAAA;sBAAvB,MAAM;;;MExBI,aAAa,CAAA;AAP1B,IAAA,WAAA,GAAA;QAQW,IAAS,CAAA,SAAA,GAAY,KAAK,CAAC;AAE1B,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,YAAY,EAAW,CAAC;QAE3D,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;AAMhB,KAAA;IAJC,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAC3C;+GAVU,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,aAAa,yKCZ1B,krBAUA,EAAA,MAAA,EAAA,CAAA,wwDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDFY,YAAY,EAAE,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,mBAAmB,+BAAE,QAAQ,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,aAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAI1C,aAAa,EAAA,UAAA,EAAA,CAAA;kBAPzB,SAAS;+BACE,oBAAoB,EAAA,UAAA,EAClB,IAAI,EACP,OAAA,EAAA,CAAC,YAAY,EAAE,mBAAmB,EAAE,QAAQ,CAAC,EAAA,QAAA,EAAA,krBAAA,EAAA,MAAA,EAAA,CAAA,wwDAAA,CAAA,EAAA,CAAA;8BAK7C,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBAEI,kBAAkB,EAAA,CAAA;sBAA3B,MAAM;;;MEDI,SAAS,CAAA;AAVtB,IAAA,WAAA,GAAA;QAWW,IAAI,CAAA,IAAA,GAAG,KAAK,CAAC;QACb,IAAW,CAAA,WAAA,GAAG,IAAI,CAAC;AAClB,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAQ,CAAC;AAK9C,KAAA;IAHC,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;KACrB;+GAPU,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAT,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,SAAS,ECdtB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,6pBAgBA,EDPI,MAAA,EAAA,CAAA,gkEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAQ,6JACR,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIH,SAAS,EAAA,UAAA,EAAA,CAAA;kBAVrB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EAGjB,OAAA,EAAA;wBACP,QAAQ;wBACR,YAAY;AACb,qBAAA,EAAA,UAAA,EACW,IAAI,EAAA,QAAA,EAAA,6pBAAA,EAAA,MAAA,EAAA,CAAA,gkEAAA,CAAA,EAAA,CAAA;8BAGP,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACI,OAAO,EAAA,CAAA;sBAAhB,MAAM;;;MEGI,wBAAwB,CAAA;AAcnC,IAAA,WAAA,GAAA;QAbS,IAAO,CAAA,OAAA,GAAc,EAAE,CAAC;QACxB,IAAW,CAAA,WAAA,GAAW,EAAE,CAAC;QACzB,IAAK,CAAA,KAAA,GAAW,EAAE,CAAC;QACnB,IAAO,CAAA,OAAA,GAAY,KAAK,CAAC;QACzB,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;AAGzB,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAW,CAAC;AAC5C,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAU,CAAC;QAElD,IAAM,CAAA,MAAA,GAAY,KAAK,CAAC;AAChB,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,OAAO,EAAU,CAAC;AAG3C,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CACpB,YAAY,CAAC,GAAG,CAAC,CAClB,CAAC,SAAS,CAAC,KAAK,IAAG;AAClB,YAAA,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AACpB,gBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC5B,gBAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;aACpB;iBAAM;AACL,gBAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;aACrB;AACH,SAAC,CAAC,CAAC;KACJ;IAED,QAAQ,GAAA;KAEP;AAED,IAAA,YAAY,CAAC,MAAe,EAAA;AAC1B,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAChC,QAAA,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC;AACzB,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;KACrB;AACD,IAAA,KAAK,CAAC,KAAU,EAAA;QACd,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC;QACpC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACpC;AAGD,IAAA,cAAc,CAAC,KAAiB,EAAA;AAC9B,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE;AAC1D,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;SACrB;KACF;+GA9CU,wBAAwB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,+bCpBrC,8jBAWA,EAAA,MAAA,EAAA,CAAA,o9DAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDKsB,YAAY,EAAE,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,WAAW,+BAAE,WAAW,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAI/C,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAPpC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,uBAAuB,EACrB,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,QAAQ,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,CAAC,EAAA,QAAA,EAAA,8jBAAA,EAAA,MAAA,EAAA,CAAA,o9DAAA,CAAA,EAAA,CAAA;wDAK/D,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACoB,WAAW,EAAA,CAAA;sBAApC,SAAS;uBAAC,aAAa,CAAA;gBAEd,aAAa,EAAA,CAAA;sBAAtB,MAAM;gBACG,UAAU,EAAA,CAAA;sBAAnB,MAAM;gBAiCP,cAAc,EAAA,CAAA;sBADb,YAAY;uBAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MElD/B,6BAA6B,CAAA;AAKxC,IAAA,WAAA,GAAA;QAJS,IAAK,CAAA,KAAA,GAAW,EAAE,CAAC;QACnB,IAAW,CAAA,WAAA,GAAW,EAAE,CAAC;AACxB,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAAS,CAAC;KAEvC;AAEhB,IAAA,QAAQ,MAAW;IAEnB,WAAW,CAAC,OAAsB,EAAA,GAAU;AAE5C,IAAA,WAAW,CAAC,KAAY,EAAA;AACtB,QAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACnC;+GAbU,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA7B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,6BAA6B,ECX1C,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,OAAA,EAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,8RAUA,EDHY,MAAA,EAAA,CAAA,mlDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,+BAAE,UAAU,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,YAAA,EAAA,SAAA,EAAA,MAAA,EAAA,YAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,WAAA,EAAA,cAAA,EAAA,SAAA,EAAA,sBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIvB,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAPzC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,6BAA6B,cAC3B,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,UAAU,CAAC,EAAA,QAAA,EAAA,8RAAA,EAAA,MAAA,EAAA,CAAA,mlDAAA,CAAA,EAAA,CAAA;wDAK1B,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACI,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;;;MEHI,oBAAoB,CAAA;AAW/B,IAAA,WAAA,GAAA;QAVS,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;QAC1B,IAAO,CAAA,OAAA,GAAW,EAAE,CAAC;QACrB,IAAW,CAAA,WAAA,GAAW,WAAW,CAAC;QAClC,IAAO,CAAA,OAAA,GAAmC,EAAE,CAAC;QAC7C,IAAe,CAAA,eAAA,GAAU,EAAE,CAAC;AAC3B,QAAA,IAAA,CAAA,cAAc,GAAwB,IAAI,YAAY,EAAS,CAAC;QAE1E,IAAM,CAAA,MAAA,GAAY,KAAK,CAAC;QACxB,IAAmB,CAAA,mBAAA,GAAa,EAAE,CAAC;KAEnB;IAEhB,QAAQ,GAAA;QACN,IAAI,CAAC,qBAAqB,EAAE,CAAC;AAC7B,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACjB,IAAI,CAAC,OAAO,GAAG,CAAA,kBAAA,EAAqB,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAA,CAAE,CAAC;SACnF;KACF;AAED,IAAA,WAAW,CAAC,OAAsB,EAAA;AAChC,QAAA,IAAI,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,aAAa,EAAE,EAAE;YAC7E,IAAI,CAAC,qBAAqB,EAAE,CAAC;SAC9B;KACF;IAED,qBAAqB,GAAA;AACnB,QAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC;KACtI;IAED,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC;SAC5B;KACF;AAED,IAAA,YAAY,CAAC,MAAoC,EAAA;AAC/C,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AACzD,QAAA,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;YACd,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;SACvC;aAAM;YACL,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SACzC;QACD,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC7B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;KAChD;AAGD,IAAA,eAAe,CAAC,KAAiB,EAAA;AAC/B,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAqB,CAAC;AAC3C,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA,CAAA,EAAI,IAAI,CAAC,OAAO,CAAA,CAAE,CAAC,EAAE;AACvC,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;SACrB;KACF;+GArDU,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,gBAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECXjC,62BAYA,EDJY,MAAA,EAAA,CAAA,6vHAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,6VAAE,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,QAAQ,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,aAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGvD,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAPhC,SAAS;+BACE,4BAA4B,EAAA,OAAA,EAG7B,CAAC,YAAY,EAAE,WAAW,EAAE,mBAAmB,EAAE,QAAQ,CAAC,EAAA,UAAA,EACvD,IAAI,EAAA,QAAA,EAAA,62BAAA,EAAA,MAAA,EAAA,CAAA,6vHAAA,CAAA,EAAA,CAAA;wDAGP,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,eAAe,EAAA,CAAA;sBAAvB,KAAK;gBACI,cAAc,EAAA,CAAA;sBAAvB,MAAM;gBA0CP,eAAe,EAAA,CAAA;sBADd,YAAY;uBAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,CAAA;;;ME1C/B,qBAAqB,CAAA;AAqBhC,IAAA,WAAA,CAAoB,QAAmB,EAAA;QAAnB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAW;QAjB9B,IAAa,CAAA,aAAA,GAAW,CAAC,CAAC;QAC1B,IAAY,CAAA,YAAA,GAAY,KAAK,CAAC;QAC9B,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;QAC5B,IAAgB,CAAA,gBAAA,GAAkB,IAAI,CAAC;AAEtC,QAAA,IAAA,CAAA,yBAAyB,GAAG,IAAI,YAAY,EAAS,CAAC;AACtD,QAAA,IAAA,CAAA,qBAAqB,GAAG,IAAI,YAAY,EAAS,CAAC;AAClD,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,YAAY,EAAS,CAAC;QAE3D,IAAY,CAAA,YAAA,GAAG,CAAC,CAAC;AACjB,QAAA,IAAA,CAAA,gBAAgB,GAAG,CAAC,CAAC;QACrB,IAAM,CAAA,MAAA,GAAG,CAAC,CAAC;QAEH,IAAW,CAAA,WAAA,GAAG,CAAC,CAAC;QAChB,IAAS,CAAA,SAAA,GAAG,CAAC,CAAC;KAGqB;IAE3C,kBAAkB,GAAA;QAChB,IAAI,CAAC,aAAa,EAAE,CAAC;AAErB,QAAA,IAAI,IAAI,CAAC,gBAAgB,EAAE;YACzB,IAAI,CAAC,aAAa,EAAE,CAAC;SACtB;QAED,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,MAAK;YAChC,IAAI,CAAC,aAAa,EAAE,CAAC;YACrB,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,CAAC,cAAc,EAAE,CAAC;AACxB,SAAC,CAAC,CAAC;KACJ;IAEO,aAAa,GAAA;QACnB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;AAC1B,YAAA,MAAM,QAAQ,GAAG,CAAA,YAAA,EAAe,IAAI,CAAC,aAAa,GAAG,CAAC;AACtD,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;AACnE,SAAC,CAAC,CAAC;KACJ;IAED,aAAa,GAAA;AACX,QAAA,IAAI,CAAC,YAAY,EAAE,CAAC;AACpB,QAAA,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC,MAAK;YACpC,IAAI,CAAC,SAAS,EAAE,CAAC;SAClB,EAAE,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC;KACzC;IAED,YAAY,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AACtB,YAAA,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AAClC,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;SAC3B;KACF;AAED,IAAA,YAAY,CAAC,KAAiB,EAAA;QAC5B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;QAC5C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC;KACnC;AAED,IAAA,WAAW,CAAC,KAAiB,EAAA;QAC3B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;KAC3C;IAED,UAAU,GAAA;QACR,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,WAAW,CAAC;;AAGxD,QAAA,IAAI,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC;YAAE,OAAO;AAExC,QAAA,IAAI,aAAa,GAAG,CAAC,EAAE;YACrB,IAAI,CAAC,SAAS,EAAE,CAAC;SAClB;AAAM,aAAA,IAAI,aAAa,GAAG,CAAC,EAAE;YAC5B,IAAI,CAAC,SAAS,EAAE,CAAC;SAClB;KACF;IAED,iBAAiB,GAAA;AACf,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;AACrE,QAAA,OAAO,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;KACxD;IAED,mBAAmB,GAAA;QACjB,OAAO,IAAI,CAAC,gBAAgB,CAAC;KAC9B;IAED,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;AACtB,QAAA,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;QAC1B,IAAI,CAAC,YAAY,EAAE,CAAC;AACpB,QAAA,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC;KACjC;AAED,IAAA,SAAS,CAAC,KAAa,EAAA;AACrB,QAAA,IAAI,CAAC,gBAAgB,GAAG,KAAK,CAAC;QAC9B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;QACjG,IAAI,CAAC,YAAY,EAAE,CAAC;AACpB,QAAA,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;AACpC,QAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC;KAClC;IAED,SAAS,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,gBAAgB,GAAG,CAAC,EAAE;YAC7B,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC;YAC/D,IAAI,CAAC,YAAY,EAAE,CAAC;AACpB,YAAA,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACpD,YAAA,IAAI,CAAC,yBAAyB,CAAC,IAAI,EAAE,CAAC;SACvC;KACF;IAED,SAAS,GAAA;AACP,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;QACrE,IAAI,IAAI,CAAC,gBAAgB,IAAI,UAAU,GAAG,CAAC,EAAE;AAC3C,YAAA,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC;AAC1B,YAAA,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;SACvB;aAAM;YACL,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACxB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;SAClH;QACD,IAAI,CAAC,YAAY,EAAE,CAAC;AACpB,QAAA,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACpD,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,EAAE,CAAC;KACnC;IAED,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;KAC/D;AAEO,IAAA,uBAAuB,CAAC,KAAa,EAAA;QAC3C,UAAU,CAAC,MAAK;AACd,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE,aAAa,CAAC;AACxD,YAAA,IAAI,CAAC,aAAa;gBAAE,OAAO;YAE3B,MAAM,IAAI,GAAG,aAAa,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;AACzD,YAAA,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;gBAAE,OAAO;AAElC,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC;AAC9B,YAAA,MAAM,cAAc,GAAG,aAAa,CAAC,WAAW,CAAC;AACjD,YAAA,MAAM,QAAQ,GAAG,SAAS,CAAC,WAAW,GAAG,EAAE,CAAC;AAC5C,YAAA,MAAM,cAAc,GAAG,QAAQ,GAAG,KAAK,GAAG,cAAc,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC;YAE5E,aAAa,CAAC,QAAQ,CAAC;gBACrB,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,cAAc,CAAC;AACjC,gBAAA,QAAQ,EAAE,QAAQ;AACnB,aAAA,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;KACJ;+GAtJU,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,waACS,UAAU,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,eAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECjBrD,m2CA6BA,EDfY,MAAA,EAAA,CAAA,0zFAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,4JAAE,QAAQ,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,aAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAErB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAPjC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,YACN,mBAAmB,EAAA,OAAA,EAGpB,CAAC,YAAY,EAAE,QAAQ,CAAC,EAAA,QAAA,EAAA,m2CAAA,EAAA,MAAA,EAAA,CAAA,0zFAAA,CAAA,EAAA,CAAA;8EAGsB,KAAK,EAAA,CAAA;sBAA3D,eAAe;AAAC,gBAAA,IAAA,EAAA,CAAA,cAAc,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAA;gBACzB,aAAa,EAAA,CAAA;sBAAxC,SAAS;uBAAC,eAAe,CAAA;gBAEjB,aAAa,EAAA,CAAA;sBAArB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBAEI,yBAAyB,EAAA,CAAA;sBAAlC,MAAM;gBACG,qBAAqB,EAAA,CAAA;sBAA9B,MAAM;gBACG,oBAAoB,EAAA,CAAA;sBAA7B,MAAM;;;MERI,UAAU,CAAA;AAjBvB,IAAA,WAAA,GAAA;QAkBW,IAAO,CAAA,OAAA,GAAG,KAAK,CAAC;QAChB,IAAI,CAAA,IAAA,GAAiC,QAAQ,CAAC;AAC7C,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAW,CAAC;AAKlD,KAAA;AAHC,IAAA,SAAS,CAAC,KAAU,EAAA;QAClB,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;KAC1C;+GAPU,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAV,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,UAAU,EAdX,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;AAWT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,wnEAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGU,UAAU,EAAA,UAAA,EAAA,CAAA;kBAjBtB,SAAS;+BACE,iBAAiB,EAAA,UAAA,EACf,IAAI,EACN,QAAA,EAAA,CAAA;;;;;;;;;;;AAWT,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,wnEAAA,CAAA,EAAA,CAAA;8BAIQ,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACI,QAAQ,EAAA,CAAA;sBAAjB,MAAM;;;MCXI,QAAQ,CAAA;AAPrB,IAAA,WAAA,GAAA;QAQW,IAAK,CAAA,KAAA,GAAW,EAAE,CAAC;QACnB,IAAS,CAAA,SAAA,GAAW,EAAE,CAAC;AACtB,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAO,CAAC;AAK7C,KAAA;IAHC,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;KACrB;+GAPU,QAAQ,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAR,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,QAAQ,ECXrB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,OAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,wNAIA,EDGY,MAAA,EAAA,CAAA,yiBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,+BAAE,QAAQ,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,aAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAIrB,QAAQ,EAAA,UAAA,EAAA,CAAA;kBAPpB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,cACb,IAAI,EAAA,OAAA,EACP,CAAC,YAAY,EAAE,QAAQ,CAAC,EAAA,QAAA,EAAA,wNAAA,EAAA,MAAA,EAAA,CAAA,yiBAAA,CAAA,EAAA,CAAA;8BAKxB,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACI,OAAO,EAAA,CAAA;sBAAhB,MAAM;;;MEHI,SAAS,CAAA;+GAAT,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAT,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,SAAS,ECXtB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,oXAOA,EDEY,MAAA,EAAA,CAAA,m8DAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAQ,6JAAE,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAErB,SAAS,EAAA,UAAA,EAAA,CAAA;kBAPrB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,cAGf,IAAI,EAAA,OAAA,EACP,CAAC,QAAQ,EAAE,YAAY,CAAC,EAAA,QAAA,EAAA,oXAAA,EAAA,MAAA,EAAA,CAAA,m8DAAA,CAAA,EAAA,CAAA;8BAGxB,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,QAAQ,EAAA,CAAA;sBAAhB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;;;MEJK,SAAS,CAAA;+GAAT,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAT,SAAS,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECVtB,+OAIA,EAAA,MAAA,EAAA,CAAA,4kDAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDIY,QAAQ,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,aAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAEP,SAAS,EAAA,UAAA,EAAA,CAAA;kBAPrB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EAGf,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,QAAQ,CAAC,EAAA,QAAA,EAAA,+OAAA,EAAA,MAAA,EAAA,CAAA,4kDAAA,CAAA,EAAA,CAAA;8BAGV,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;;;MEFK,SAAS,CAAA;+GAAT,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAT,SAAS,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECVtB,kWASA,EAAA,MAAA,EAAA,CAAA,k/CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDDY,QAAQ,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,aAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAEP,SAAS,EAAA,UAAA,EAAA,CAAA;kBAPrB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EAGf,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,QAAQ,CAAC,EAAA,QAAA,EAAA,kWAAA,EAAA,MAAA,EAAA,CAAA,k/CAAA,CAAA,EAAA,CAAA;8BAGV,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;;;MEHK,SAAS,CAAA;+GAAT,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAT,SAAS,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECVtB,qXASA,EAAA,MAAA,EAAA,CAAA,0/CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDDY,QAAQ,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,aAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAEP,SAAS,EAAA,UAAA,EAAA,CAAA;kBAPrB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EAGf,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,QAAQ,CAAC,EAAA,QAAA,EAAA,qXAAA,EAAA,MAAA,EAAA,CAAA,0/CAAA,CAAA,EAAA,CAAA;8BAGV,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,IAAI,EAAA,CAAA;sBAAZ,KAAK;;;MEHK,YAAY,CAAA;AAPzB,IAAA,WAAA,GAAA;QAQW,IAAI,CAAA,IAAA,GAAG,KAAK,CAAC;AACvB,KAAA;+GAFY,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,YAAY,wGCTzB,yYAQA,EAAA,MAAA,EAAA,CAAA,quEAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FDCa,YAAY,EAAA,UAAA,EAAA,CAAA;kBAPxB,SAAS;+BACE,oBAAoB,EAAA,OAAA,EAGrB,EAAE,EAAA,UAAA,EACC,IAAI,EAAA,QAAA,EAAA,yYAAA,EAAA,MAAA,EAAA,CAAA,quEAAA,CAAA,EAAA,CAAA;8BAGP,IAAI,EAAA,CAAA;sBAAZ,KAAK;;;MEEK,aAAa,CAAA;AAP1B,IAAA,WAAA,GAAA;QAQW,IAAK,CAAA,KAAA,GAAW,EAAE,CAAC;QACnB,IAAO,CAAA,OAAA,GAAY,KAAK,CAAC;QACzB,IAAS,CAAA,SAAA,GAAW,EAAE,CAAC;QACvB,IAAS,CAAA,SAAA,GAAW,IAAI,CAAC;AACnC,KAAA;+GALY,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAb,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,aAAa,+KCZ1B,spBAUA,EAAA,MAAA,EAAA,CAAA,+rEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDDY,YAAY,EAAE,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,YAAY,+BAAE,QAAQ,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,aAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGnC,aAAa,EAAA,UAAA,EAAA,CAAA;kBAPzB,SAAS;+BACE,qBAAqB,EAAA,OAAA,EAGtB,CAAC,YAAY,EAAE,YAAY,EAAE,QAAQ,CAAC,EAAA,UAAA,EACnC,IAAI,EAAA,QAAA,EAAA,spBAAA,EAAA,MAAA,EAAA,CAAA,+rEAAA,CAAA,EAAA,CAAA;8BAGP,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,SAAS,EAAA,CAAA;sBAAjB,KAAK;;;AEIK,MAAA,oBAAoB,GAAgB;IAC/C,cAAc;IACd,UAAU;IACV,cAAc;IACd,YAAY;IACZ,QAAQ;IACR,aAAa;IACb,WAAW;IACX,SAAS;IACT,aAAa;IACb,aAAa;IACb,SAAS;IACT,wBAAwB;IACxB,6BAA6B;IAC7B,WAAW;IACX,oBAAoB;IACpB,qBAAqB;IACrB,UAAU;IACV,QAAQ;;;MC9BG,4BAA4B,CAAA;+GAA5B,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,YAH7B,YAAY,EAAAG,cAAA,EAAAC,UAAA,EAAAC,cAAA,EAAAC,YAAA,EAAAC,QAAA,EAAAC,aAAA,EAAAC,WAAA,EAAAC,SAAA,EAAAC,aAAA,EAAAC,aAAA,EAAAC,SAAA,EAAAC,wBAAA,EAAAC,6BAAA,EAAAC,WAAA,EAAAC,oBAAA,EAAAC,qBAAA,EAAAC,UAAA,EAAAC,QAAA,CAAA,EAAA,OAAA,EAAA,CAAAjB,cAAA,EAAAC,UAAA,EAAAC,cAAA,EAAAC,YAAA,EAAAC,QAAA,EAAAC,aAAA,EAAAC,WAAA,EAAAC,SAAA,EAAAC,aAAA,EAAAC,aAAA,EAAAC,SAAA,EAAAC,wBAAA,EAAAC,6BAAA,EAAAC,WAAA,EAAAC,oBAAA,EAAAC,qBAAA,EAAAC,UAAA,EAAAC,QAAA,CAAA,EAAA,CAAA,CAAA,EAAA;AAGX,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,YAH7B,YAAY,EAAAjB,cAAA,EAAAC,UAAA,EAAAC,cAAA,EAAAC,YAAA,EAAAC,QAAA,EAAAC,aAAA,EAAAC,WAAA,EAAAC,SAAA,EAAAC,aAAA,EAAAC,aAAA,EAAAC,SAAA,EAAAC,wBAAA,EAAAC,6BAAA,EAAAC,WAAA,EAAAC,oBAAA,EAAAC,qBAAA,EAAAE,QAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAGX,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAJxC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,GAAG,oBAAoB,CAAC;AAChD,oBAAA,OAAO,EAAE,CAAC,GAAG,oBAAoB,CAAC;AACnC,iBAAA,CAAA;;;ACPD;;AAEG;;;;"}
|
|
@@ -16,6 +16,7 @@ export declare class EluxCarouselComponent implements AfterContentInit {
|
|
|
16
16
|
nextClickEventEmitter: EventEmitter<Event>;
|
|
17
17
|
dotClickEventEmitter: EventEmitter<Event>;
|
|
18
18
|
currentIndex: number;
|
|
19
|
+
currentStepIndex: number;
|
|
19
20
|
offset: number;
|
|
20
21
|
private touchStartX;
|
|
21
22
|
private touchEndX;
|
|
@@ -28,7 +29,7 @@ export declare class EluxCarouselComponent implements AfterContentInit {
|
|
|
28
29
|
onTouchStart(event: TouchEvent): void;
|
|
29
30
|
onTouchMove(event: TouchEvent): void;
|
|
30
31
|
onTouchEnd(): void;
|
|
31
|
-
|
|
32
|
+
getStepIndexCount(): number[];
|
|
32
33
|
getCurrentStepIndex(): number;
|
|
33
34
|
goToFirstSlide(): void;
|
|
34
35
|
goToSlide(index: number): void;
|