UNPKG

ngx-star-rating-input

Version:

An Angular library for displaying star ratings.

95 lines 14.6 kB
import { Component, EventEmitter, Input, Output, forwardRef } from '@angular/core'; import { NG_VALUE_ACCESSOR } from '@angular/forms'; import * as i0 from "@angular/core"; export class StarRatingComponent { constructor() { this.count = 5; this.filledColor = 'gold'; this.emptyColor = 'lightgray'; this.fillOnHover = true; this.size = 14; this.disabled = false; this.ratingChange = new EventEmitter(); this.stars = []; this.selectedRating = 0; this.hoveredRating = null; this.onChange = (value) => { }; this.onTouched = () => { }; this.updateStars(); } ngOnChanges(changes) { if (changes['count']) { this.updateStars(); } } updateStars() { this.stars = Array.from({ length: this.count }, (_, i) => i + 1); } isStarFilled(index) { return !this.disabled && index <= (this.hoveredRating ?? this.selectedRating); } onMouseEnter(rating) { if (!this.disabled && this.fillOnHover) { this.hoveredRating = rating; } } onMouseLeave() { if (!this.disabled && this.fillOnHover) { this.hoveredRating = null; } } onStarClick(rating) { if (!this.disabled) { this.selectedRating = rating; this.ratingChange.emit(this.selectedRating); this.onChange(this.selectedRating); this.onTouched(); } } // ControlValueAccessor methods writeValue(value) { this.selectedRating = value || 0; } registerOnChange(fn) { this.onChange = fn; } registerOnTouched(fn) { this.onTouched = fn; } setDisabledState(isDisabled) { this.disabled = isDisabled; } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: StarRatingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); } static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.12", type: StarRatingComponent, selector: "ngx-star-rating", inputs: { count: "count", filledColor: "filledColor", emptyColor: "emptyColor", fillOnHover: "fillOnHover", size: "size", disabled: "disabled" }, outputs: { ratingChange: "ratingChange" }, providers: [ { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => StarRatingComponent), multi: true } ], usesOnChanges: true, ngImport: i0, template: "<div class=\"rating-box {{disabled ? 'disabled' : ''}}\">\r\n @for (star of stars;let i = $index; track i) {\r\n <svg version=\"1.0\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" [attr.width]=\"size\"\r\n (click)=\"onStarClick(star)\" [attr.height]=\"size\" (mouseenter)=\"onMouseEnter(star)\" (mouseleave)=\"onMouseLeave()\"\r\n viewBox=\"0 0 64 64\" enable-background=\"new 0 0 64 64\" xml:space=\"preserve\">\r\n <path [attr.fill]=\"isStarFilled(star) ? filledColor : emptyColor\" d=\"M63.893,24.277c-0.238-0.711-0.854-1.229-1.595-1.343l-19.674-3.006L33.809,1.15\r\n\t C33.479,0.448,32.773,0,31.998,0s-1.48,0.448-1.811,1.15l-8.815,18.778L1.698,22.935c-0.741,0.113-1.356,0.632-1.595,1.343\r\n\t c-0.238,0.71-0.059,1.494,0.465,2.031l14.294,14.657L11.484,61.67c-0.124,0.756,0.195,1.517,0.822,1.957\r\n\t c0.344,0.243,0.747,0.366,1.151,0.366c0.332,0,0.666-0.084,0.968-0.25l17.572-9.719l17.572,9.719c0.302,0.166,0.636,0.25,0.968,0.25\r\n\t c0.404,0,0.808-0.123,1.151-0.366c0.627-0.44,0.946-1.201,0.822-1.957l-3.378-20.704l14.294-14.657\r\n\t C63.951,25.771,64.131,24.987,63.893,24.277z\" />\r\n </svg>\r\n }\r\n</div>", styles: [".rating-box{display:inline-flex;gap:4px}.rating-box svg{cursor:pointer}.rating-box.disabled{pointer-events:none;opacity:.5}\n"] }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: StarRatingComponent, decorators: [{ type: Component, args: [{ selector: 'ngx-star-rating', providers: [ { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => StarRatingComponent), multi: true } ], template: "<div class=\"rating-box {{disabled ? 'disabled' : ''}}\">\r\n @for (star of stars;let i = $index; track i) {\r\n <svg version=\"1.0\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" [attr.width]=\"size\"\r\n (click)=\"onStarClick(star)\" [attr.height]=\"size\" (mouseenter)=\"onMouseEnter(star)\" (mouseleave)=\"onMouseLeave()\"\r\n viewBox=\"0 0 64 64\" enable-background=\"new 0 0 64 64\" xml:space=\"preserve\">\r\n <path [attr.fill]=\"isStarFilled(star) ? filledColor : emptyColor\" d=\"M63.893,24.277c-0.238-0.711-0.854-1.229-1.595-1.343l-19.674-3.006L33.809,1.15\r\n\t C33.479,0.448,32.773,0,31.998,0s-1.48,0.448-1.811,1.15l-8.815,18.778L1.698,22.935c-0.741,0.113-1.356,0.632-1.595,1.343\r\n\t c-0.238,0.71-0.059,1.494,0.465,2.031l14.294,14.657L11.484,61.67c-0.124,0.756,0.195,1.517,0.822,1.957\r\n\t c0.344,0.243,0.747,0.366,1.151,0.366c0.332,0,0.666-0.084,0.968-0.25l17.572-9.719l17.572,9.719c0.302,0.166,0.636,0.25,0.968,0.25\r\n\t c0.404,0,0.808-0.123,1.151-0.366c0.627-0.44,0.946-1.201,0.822-1.957l-3.378-20.704l14.294-14.657\r\n\t C63.951,25.771,64.131,24.987,63.893,24.277z\" />\r\n </svg>\r\n }\r\n</div>", styles: [".rating-box{display:inline-flex;gap:4px}.rating-box svg{cursor:pointer}.rating-box.disabled{pointer-events:none;opacity:.5}\n"] }] }], ctorParameters: () => [], propDecorators: { count: [{ type: Input }], filledColor: [{ type: Input }], emptyColor: [{ type: Input }], fillOnHover: [{ type: Input }], size: [{ type: Input }], disabled: [{ type: Input }], ratingChange: [{ type: Output }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Rhci1yYXRpbmcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3Rhci1yYXRpbmcvc3JjL2xpYi9zdGFyLXJhdGluZy9zdGFyLXJhdGluZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zdGFyLXJhdGluZy9zcmMvbGliL3N0YXItcmF0aW5nL3N0YXItcmF0aW5nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQTRCLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RyxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBY3pFLE1BQU0sT0FBTyxtQkFBbUI7SUFpQjlCO1FBaEJTLFVBQUssR0FBVyxDQUFDLENBQUM7UUFDbEIsZ0JBQVcsR0FBVyxNQUFNLENBQUM7UUFDN0IsZUFBVSxHQUFXLFdBQVcsQ0FBQztRQUNqQyxnQkFBVyxHQUFZLElBQUksQ0FBQztRQUM1QixTQUFJLEdBQVcsRUFBRSxDQUFDO1FBQ2xCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFFekIsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBRXBELFVBQUssR0FBYSxFQUFFLENBQUM7UUFDckIsbUJBQWMsR0FBRyxDQUFDLENBQUM7UUFDbkIsa0JBQWEsR0FBa0IsSUFBSSxDQUFDO1FBRTVCLGFBQVEsR0FBRyxDQUFDLEtBQWEsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ2xDLGNBQVMsR0FBRyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFHNUIsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDckIsQ0FBQztJQUNILENBQUM7SUFFTyxXQUFXO1FBQ2pCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFhO1FBQ3hCLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFFRCxZQUFZLENBQUMsTUFBYztRQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDdkMsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUM7UUFDOUIsQ0FBQztJQUNILENBQUM7SUFFRCxZQUFZO1FBQ1YsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQzVCLENBQUM7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFDLE1BQWM7UUFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsY0FBYyxHQUFHLE1BQU0sQ0FBQztZQUM3QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDNUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDbkMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ25CLENBQUM7SUFDSCxDQUFDO0lBRUQsK0JBQStCO0lBQy9CLFVBQVUsQ0FBQyxLQUFhO1FBQ3RCLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxJQUFJLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBTztRQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsaUJBQWlCLENBQUMsRUFBTztRQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsVUFBbUI7UUFDbEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7SUFDN0IsQ0FBQzsrR0F2RVUsbUJBQW1CO21HQUFuQixtQkFBbUIsdU9BUm5CO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztnQkFDbEQsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLCtDQ2JILHNzQ0FhTTs7NEZERU8sbUJBQW1CO2tCQVovQixTQUFTOytCQUNFLGlCQUFpQixhQUdoQjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQzs0QkFDbEQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7d0RBR1EsS0FBSztzQkFBYixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVJLFlBQVk7c0JBQXJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcywgT25DaGFuZ2VzLCBmb3J3YXJkUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbmd4LXN0YXItcmF0aW5nJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc3Rhci1yYXRpbmcuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9zdGFyLXJhdGluZy5jb21wb25lbnQuY3NzJyxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFN0YXJSYXRpbmdDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZVxyXG4gICAgfVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFN0YXJSYXRpbmdDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuICBASW5wdXQoKSBjb3VudDogbnVtYmVyID0gNTtcclxuICBASW5wdXQoKSBmaWxsZWRDb2xvcjogc3RyaW5nID0gJ2dvbGQnO1xyXG4gIEBJbnB1dCgpIGVtcHR5Q29sb3I6IHN0cmluZyA9ICdsaWdodGdyYXknO1xyXG4gIEBJbnB1dCgpIGZpbGxPbkhvdmVyOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzaXplOiBudW1iZXIgPSAxNDtcclxuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBAT3V0cHV0KCkgcmF0aW5nQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XHJcblxyXG4gIHN0YXJzOiBudW1iZXJbXSA9IFtdO1xyXG4gIHNlbGVjdGVkUmF0aW5nID0gMDtcclxuICBob3ZlcmVkUmF0aW5nOiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgcHJpdmF0ZSBvbkNoYW5nZSA9ICh2YWx1ZTogbnVtYmVyKSA9PiB7IH07XHJcbiAgcHJpdmF0ZSBvblRvdWNoZWQgPSAoKSA9PiB7IH07XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgdGhpcy51cGRhdGVTdGFycygpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXNbJ2NvdW50J10pIHtcclxuICAgICAgdGhpcy51cGRhdGVTdGFycygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVTdGFycygpOiB2b2lkIHtcclxuICAgIHRoaXMuc3RhcnMgPSBBcnJheS5mcm9tKHsgbGVuZ3RoOiB0aGlzLmNvdW50IH0sIChfLCBpKSA9PiBpICsgMSk7XHJcbiAgfVxyXG5cclxuICBpc1N0YXJGaWxsZWQoaW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICF0aGlzLmRpc2FibGVkICYmIGluZGV4IDw9ICh0aGlzLmhvdmVyZWRSYXRpbmcgPz8gdGhpcy5zZWxlY3RlZFJhdGluZyk7XHJcbiAgfVxyXG5cclxuICBvbk1vdXNlRW50ZXIocmF0aW5nOiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5kaXNhYmxlZCAmJiB0aGlzLmZpbGxPbkhvdmVyKSB7XHJcbiAgICAgIHRoaXMuaG92ZXJlZFJhdGluZyA9IHJhdGluZztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uTW91c2VMZWF2ZSgpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5kaXNhYmxlZCAmJiB0aGlzLmZpbGxPbkhvdmVyKSB7XHJcbiAgICAgIHRoaXMuaG92ZXJlZFJhdGluZyA9IG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvblN0YXJDbGljayhyYXRpbmc6IG51bWJlcik6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRSYXRpbmcgPSByYXRpbmc7XHJcbiAgICAgIHRoaXMucmF0aW5nQ2hhbmdlLmVtaXQodGhpcy5zZWxlY3RlZFJhdGluZyk7XHJcbiAgICAgIHRoaXMub25DaGFuZ2UodGhpcy5zZWxlY3RlZFJhdGluZyk7XHJcbiAgICAgIHRoaXMub25Ub3VjaGVkKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvLyBDb250cm9sVmFsdWVBY2Nlc3NvciBtZXRob2RzXHJcbiAgd3JpdGVWYWx1ZSh2YWx1ZTogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLnNlbGVjdGVkUmF0aW5nID0gdmFsdWUgfHwgMDtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcclxuICB9XHJcblxyXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJyYXRpbmctYm94IHt7ZGlzYWJsZWQgPyAnZGlzYWJsZWQnIDogJyd9fVwiPlxyXG4gICAgQGZvciAoc3RhciBvZiBzdGFycztsZXQgaSA9ICRpbmRleDsgdHJhY2sgaSkge1xyXG4gICAgPHN2ZyB2ZXJzaW9uPVwiMS4wXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHhtbG5zOnhsaW5rPVwiaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGlua1wiIFthdHRyLndpZHRoXT1cInNpemVcIlxyXG4gICAgICAgIChjbGljayk9XCJvblN0YXJDbGljayhzdGFyKVwiIFthdHRyLmhlaWdodF09XCJzaXplXCIgKG1vdXNlZW50ZXIpPVwib25Nb3VzZUVudGVyKHN0YXIpXCIgKG1vdXNlbGVhdmUpPVwib25Nb3VzZUxlYXZlKClcIlxyXG4gICAgICAgIHZpZXdCb3g9XCIwIDAgNjQgNjRcIiBlbmFibGUtYmFja2dyb3VuZD1cIm5ldyAwIDAgNjQgNjRcIiB4bWw6c3BhY2U9XCJwcmVzZXJ2ZVwiPlxyXG4gICAgICAgIDxwYXRoIFthdHRyLmZpbGxdPVwiaXNTdGFyRmlsbGVkKHN0YXIpID8gZmlsbGVkQ29sb3IgOiBlbXB0eUNvbG9yXCIgZD1cIk02My44OTMsMjQuMjc3Yy0wLjIzOC0wLjcxMS0wLjg1NC0xLjIyOS0xLjU5NS0xLjM0M2wtMTkuNjc0LTMuMDA2TDMzLjgwOSwxLjE1XHJcblx0ICAgICAgICBDMzMuNDc5LDAuNDQ4LDMyLjc3MywwLDMxLjk5OCwwcy0xLjQ4LDAuNDQ4LTEuODExLDEuMTVsLTguODE1LDE4Ljc3OEwxLjY5OCwyMi45MzVjLTAuNzQxLDAuMTEzLTEuMzU2LDAuNjMyLTEuNTk1LDEuMzQzXHJcblx0ICAgICAgICBjLTAuMjM4LDAuNzEtMC4wNTksMS40OTQsMC40NjUsMi4wMzFsMTQuMjk0LDE0LjY1N0wxMS40ODQsNjEuNjdjLTAuMTI0LDAuNzU2LDAuMTk1LDEuNTE3LDAuODIyLDEuOTU3XHJcblx0ICAgICAgICBjMC4zNDQsMC4yNDMsMC43NDcsMC4zNjYsMS4xNTEsMC4zNjZjMC4zMzIsMCwwLjY2Ni0wLjA4NCwwLjk2OC0wLjI1bDE3LjU3Mi05LjcxOWwxNy41NzIsOS43MTljMC4zMDIsMC4xNjYsMC42MzYsMC4yNSwwLjk2OCwwLjI1XHJcblx0ICAgICAgICBjMC40MDQsMCwwLjgwOC0wLjEyMywxLjE1MS0wLjM2NmMwLjYyNy0wLjQ0LDAuOTQ2LTEuMjAxLDAuODIyLTEuOTU3bC0zLjM3OC0yMC43MDRsMTQuMjk0LTE0LjY1N1xyXG5cdCAgICAgICAgQzYzLjk1MSwyNS43NzEsNjQuMTMxLDI0Ljk4Nyw2My44OTMsMjQuMjc3elwiIC8+XHJcbiAgICA8L3N2Zz5cclxuICAgIH1cclxuPC9kaXY+Il19