myrta-ui 1.0.42 → 1.0.44
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.
|
@@ -81,7 +81,7 @@ export class RatingComponent {
|
|
|
81
81
|
return `${RatingValueSizesEnum[this.size]}`;
|
|
82
82
|
}
|
|
83
83
|
get formattedValue() {
|
|
84
|
-
return Number(
|
|
84
|
+
return Number(this.value.toFixed(this.value % 1 == 0 ? 0 : 1));
|
|
85
85
|
}
|
|
86
86
|
get ratingText() {
|
|
87
87
|
if (this.ratingCount === 1) {
|
|
@@ -150,13 +150,17 @@ export class RatingComponent {
|
|
|
150
150
|
}
|
|
151
151
|
_updateState(value) {
|
|
152
152
|
this.elements.forEach((element) => {
|
|
153
|
-
if (this.ratingCount === 1
|
|
154
|
-
element.filled =
|
|
155
|
-
element.double = false;
|
|
153
|
+
if (this.ratingCount === 1) {
|
|
154
|
+
element.filled = value > 0;
|
|
156
155
|
return;
|
|
157
156
|
}
|
|
158
|
-
|
|
159
|
-
|
|
157
|
+
if (!this.double) {
|
|
158
|
+
element.filled = element.value <= value;
|
|
159
|
+
}
|
|
160
|
+
else {
|
|
161
|
+
element.filled = element.value - this.step <= value;
|
|
162
|
+
element.double = value >= this.step && value < element.value;
|
|
163
|
+
}
|
|
160
164
|
});
|
|
161
165
|
}
|
|
162
166
|
}
|
|
@@ -167,7 +171,7 @@ RatingComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versio
|
|
|
167
171
|
useExisting: forwardRef(() => RatingComponent),
|
|
168
172
|
multi: true,
|
|
169
173
|
},
|
|
170
|
-
], ngImport: i0, template: "<div class=\"mrx-rating-wrapper\" [class]=\"getWrapperClasses\">\r\n <div\r\n *ngIf=\"canActive; else viewTemplate\"\r\n class=\"mrx-rating edit-state\"\r\n [class]=\"getClasses\"\r\n (mouseleave)=\"resetElementHandle()\"\r\n >\r\n <ng-container *ngFor=\"let item of elements; let idx = index; trackBy: trackByFn\">\r\n <div class=\"mrx-rating-item\" [class.disabled]=\"disabled || readonly\">\r\n <div *ngIf=\"double\" class=\"mrx-rating-item-double-wrapper\">\r\n <span\r\n class=\"mrx-icon\"\r\n [class]=\"iconClass\"\r\n [class.icon-font-16]=\"size === 'small'\"\r\n [class.icon-font-24]=\"size === 'large'\"\r\n [class.filled]=\"item.filled && item.double\"\r\n (mouseenter)=\"canActive && hoverElementHandle(item, 'double')\"\r\n (click)=\"canActive && changeValue(item.value, 'double')\"\r\n ></span>\r\n </div>\r\n\r\n <div class=\"mrx-rating-item-wrapper\">\r\n <span\r\n class=\"mrx-icon\"\r\n [class]=\"iconClass\"\r\n [class.icon-font-16]=\"size === 'small'\"\r\n [class.icon-font-24]=\"size === 'large'\"\r\n [class.filled]=\"item.filled && !item.double\"\r\n (mouseenter)=\"canActive && hoverElementHandle(item, 'single')\"\r\n (click)=\"canActive && changeValue(item.value, 'single')\"\r\n ></span>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n <ng-template #viewTemplate>\r\n <div class=\"mrx-rating\" [class]=\"getClasses\">\r\n <ng-container *ngFor=\"let item of elements; let idx = index; trackBy: trackByFn\">\r\n <div class=\"mrx-rating-item\" [class.disabled]=\"disabled || readonly\">\r\n <div *ngIf=\"double\" class=\"mrx-rating-item-double-wrapper\">\r\n
|
|
174
|
+
], ngImport: i0, template: "<div class=\"mrx-rating-wrapper\" [class]=\"getWrapperClasses\">\r\n <div\r\n *ngIf=\"canActive; else viewTemplate\"\r\n class=\"mrx-rating edit-state\"\r\n [class]=\"getClasses\"\r\n (mouseleave)=\"resetElementHandle()\"\r\n >\r\n <ng-container *ngFor=\"let item of elements; let idx = index; trackBy: trackByFn\">\r\n <div class=\"mrx-rating-item\" [class.disabled]=\"disabled || readonly\">\r\n <div *ngIf=\"double\" class=\"mrx-rating-item-double-wrapper\">\r\n <span\r\n class=\"mrx-icon\"\r\n [class]=\"iconClass\"\r\n [class.icon-font-16]=\"size === 'small'\"\r\n [class.icon-font-24]=\"size === 'large'\"\r\n [class.filled]=\"item.filled && item.double\"\r\n (mouseenter)=\"canActive && hoverElementHandle(item, 'double')\"\r\n (click)=\"canActive && changeValue(item.value, 'double')\"\r\n ></span>\r\n </div>\r\n\r\n <div class=\"mrx-rating-item-wrapper\">\r\n <span\r\n class=\"mrx-icon\"\r\n [class]=\"iconClass\"\r\n [class.icon-font-16]=\"size === 'small'\"\r\n [class.icon-font-24]=\"size === 'large'\"\r\n [class.filled]=\"item.filled && !item.double\"\r\n (mouseenter)=\"canActive && hoverElementHandle(item, 'single')\"\r\n (click)=\"canActive && changeValue(item.value, 'single')\"\r\n ></span>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n <ng-template #viewTemplate>\r\n <div class=\"mrx-rating\" [class]=\"getClasses\">\r\n <ng-container *ngFor=\"let item of elements; let idx = index; trackBy: trackByFn\">\r\n <div class=\"mrx-rating-item\" [class.disabled]=\"disabled || readonly\">\r\n <div *ngIf=\"double\" class=\"mrx-rating-item-double-wrapper\">\r\n <span\r\n class=\"mrx-icon\"\r\n [class]=\"iconClass\"\r\n [class.icon-font-16]=\"size === 'small'\"\r\n [class.icon-font-24]=\"size === 'large'\"\r\n [class.filled]=\"item.filled && item.double\"\r\n ></span>\r\n </div>\r\n\r\n <div class=\"mrx-rating-item-wrapper\">\r\n <span\r\n class=\"mrx-icon\"\r\n [class]=\"iconClass\"\r\n [class.icon-font-16]=\"size === 'small'\"\r\n [class.icon-font-24]=\"size === 'large'\"\r\n [class.filled]=\"item.filled && !item.double\"\r\n ></span>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-container [ngSwitch]=\"viewMode\">\r\n <span *ngSwitchCase=\"'text'\" [class]=\"getValueClasses\">{{ ratingText }}</span>\r\n <span *ngSwitchCase=\"'value'\" [class]=\"getValueClasses\">{{ toNumberFormatFunc(value) }}</span>\r\n <span *ngSwitchCase=\"'text-with-value'\" [class]=\"getValueClasses\">\r\n {{ ratingText }} ({{ toNumberFormatFunc(value) }})\r\n </span>\r\n </ng-container>\r\n</div>\r\n\r\n<mrx-error-message *ngIf=\"(!isValid || invalid) && isInvalidMessage\" [invalidMessage]=\"invalidMessage\">\r\n</mrx-error-message>\r\n", styles: [".mrx-rating{display:inline-flex}.mrx-rating-wrapper{display:flex;align-items:center;flex-wrap:wrap}.mrx-rating-wrapper-sm{grid-gap:var(--spacing-2)}.mrx-rating-wrapper-lg{grid-gap:var(--spacing-3)}.mrx-rating.mrx-rating-lg{grid-gap:8px}.mrx-rating.mrx-rating-sm{grid-gap:4px}.mrx-rating-value-sm{font-family:var(--body-sm-font-family);font-weight:var(--body-sm-font-weight);line-height:var(--body-sm-line-height);font-size:var(--body-sm-font-size)}.mrx-rating-value-lg{font-family:var(--body-md-font-family);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height);font-size:var(--body-md-font-size)}.mrx-rating.edit-state .mrx-rating-item{cursor:pointer}.mrx-rating.edit-state .mrx-rating-item:hover{transform:scale(1.1)}.mrx-rating .mrx-rating-item{display:flex;align-items:center;position:relative;transition:transform .2s}.mrx-rating .mrx-rating-item-wrapper,.mrx-rating .mrx-rating-item-double-wrapper{display:flex;align-items:center}.mrx-rating .mrx-rating-item-wrapper .mrx-icon,.mrx-rating .mrx-rating-item-double-wrapper .mrx-icon{color:var(--system-rating-default)}.mrx-rating .mrx-rating-item-wrapper .mrx-icon.filled,.mrx-rating .mrx-rating-item-double-wrapper .mrx-icon.filled{color:var(--system-rating-selected);opacity:1}.mrx-rating .mrx-rating-item-double-wrapper{position:absolute;top:0;left:0;width:50%;overflow:hidden}.mrx-rating .mrx-rating-item-double-wrapper .mrx-icon{opacity:0}\n"], components: [{ type: i1.ErrorMessageComponent, selector: "mrx-error-message", inputs: ["invalidMessage", "customClasses"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
171
175
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: RatingComponent, decorators: [{
|
|
172
176
|
type: Component,
|
|
173
177
|
args: [{ selector: 'mrx-rating', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
@@ -176,7 +180,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
176
180
|
useExisting: forwardRef(() => RatingComponent),
|
|
177
181
|
multi: true,
|
|
178
182
|
},
|
|
179
|
-
], template: "<div class=\"mrx-rating-wrapper\" [class]=\"getWrapperClasses\">\r\n <div\r\n *ngIf=\"canActive; else viewTemplate\"\r\n class=\"mrx-rating edit-state\"\r\n [class]=\"getClasses\"\r\n (mouseleave)=\"resetElementHandle()\"\r\n >\r\n <ng-container *ngFor=\"let item of elements; let idx = index; trackBy: trackByFn\">\r\n <div class=\"mrx-rating-item\" [class.disabled]=\"disabled || readonly\">\r\n <div *ngIf=\"double\" class=\"mrx-rating-item-double-wrapper\">\r\n <span\r\n class=\"mrx-icon\"\r\n [class]=\"iconClass\"\r\n [class.icon-font-16]=\"size === 'small'\"\r\n [class.icon-font-24]=\"size === 'large'\"\r\n [class.filled]=\"item.filled && item.double\"\r\n (mouseenter)=\"canActive && hoverElementHandle(item, 'double')\"\r\n (click)=\"canActive && changeValue(item.value, 'double')\"\r\n ></span>\r\n </div>\r\n\r\n <div class=\"mrx-rating-item-wrapper\">\r\n <span\r\n class=\"mrx-icon\"\r\n [class]=\"iconClass\"\r\n [class.icon-font-16]=\"size === 'small'\"\r\n [class.icon-font-24]=\"size === 'large'\"\r\n [class.filled]=\"item.filled && !item.double\"\r\n (mouseenter)=\"canActive && hoverElementHandle(item, 'single')\"\r\n (click)=\"canActive && changeValue(item.value, 'single')\"\r\n ></span>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n <ng-template #viewTemplate>\r\n <div class=\"mrx-rating\" [class]=\"getClasses\">\r\n <ng-container *ngFor=\"let item of elements; let idx = index; trackBy: trackByFn\">\r\n <div class=\"mrx-rating-item\" [class.disabled]=\"disabled || readonly\">\r\n <div *ngIf=\"double\" class=\"mrx-rating-item-double-wrapper\">\r\n
|
|
183
|
+
], template: "<div class=\"mrx-rating-wrapper\" [class]=\"getWrapperClasses\">\r\n <div\r\n *ngIf=\"canActive; else viewTemplate\"\r\n class=\"mrx-rating edit-state\"\r\n [class]=\"getClasses\"\r\n (mouseleave)=\"resetElementHandle()\"\r\n >\r\n <ng-container *ngFor=\"let item of elements; let idx = index; trackBy: trackByFn\">\r\n <div class=\"mrx-rating-item\" [class.disabled]=\"disabled || readonly\">\r\n <div *ngIf=\"double\" class=\"mrx-rating-item-double-wrapper\">\r\n <span\r\n class=\"mrx-icon\"\r\n [class]=\"iconClass\"\r\n [class.icon-font-16]=\"size === 'small'\"\r\n [class.icon-font-24]=\"size === 'large'\"\r\n [class.filled]=\"item.filled && item.double\"\r\n (mouseenter)=\"canActive && hoverElementHandle(item, 'double')\"\r\n (click)=\"canActive && changeValue(item.value, 'double')\"\r\n ></span>\r\n </div>\r\n\r\n <div class=\"mrx-rating-item-wrapper\">\r\n <span\r\n class=\"mrx-icon\"\r\n [class]=\"iconClass\"\r\n [class.icon-font-16]=\"size === 'small'\"\r\n [class.icon-font-24]=\"size === 'large'\"\r\n [class.filled]=\"item.filled && !item.double\"\r\n (mouseenter)=\"canActive && hoverElementHandle(item, 'single')\"\r\n (click)=\"canActive && changeValue(item.value, 'single')\"\r\n ></span>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n <ng-template #viewTemplate>\r\n <div class=\"mrx-rating\" [class]=\"getClasses\">\r\n <ng-container *ngFor=\"let item of elements; let idx = index; trackBy: trackByFn\">\r\n <div class=\"mrx-rating-item\" [class.disabled]=\"disabled || readonly\">\r\n <div *ngIf=\"double\" class=\"mrx-rating-item-double-wrapper\">\r\n <span\r\n class=\"mrx-icon\"\r\n [class]=\"iconClass\"\r\n [class.icon-font-16]=\"size === 'small'\"\r\n [class.icon-font-24]=\"size === 'large'\"\r\n [class.filled]=\"item.filled && item.double\"\r\n ></span>\r\n </div>\r\n\r\n <div class=\"mrx-rating-item-wrapper\">\r\n <span\r\n class=\"mrx-icon\"\r\n [class]=\"iconClass\"\r\n [class.icon-font-16]=\"size === 'small'\"\r\n [class.icon-font-24]=\"size === 'large'\"\r\n [class.filled]=\"item.filled && !item.double\"\r\n ></span>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-container [ngSwitch]=\"viewMode\">\r\n <span *ngSwitchCase=\"'text'\" [class]=\"getValueClasses\">{{ ratingText }}</span>\r\n <span *ngSwitchCase=\"'value'\" [class]=\"getValueClasses\">{{ toNumberFormatFunc(value) }}</span>\r\n <span *ngSwitchCase=\"'text-with-value'\" [class]=\"getValueClasses\">\r\n {{ ratingText }} ({{ toNumberFormatFunc(value) }})\r\n </span>\r\n </ng-container>\r\n</div>\r\n\r\n<mrx-error-message *ngIf=\"(!isValid || invalid) && isInvalidMessage\" [invalidMessage]=\"invalidMessage\">\r\n</mrx-error-message>\r\n", styles: [".mrx-rating{display:inline-flex}.mrx-rating-wrapper{display:flex;align-items:center;flex-wrap:wrap}.mrx-rating-wrapper-sm{grid-gap:var(--spacing-2)}.mrx-rating-wrapper-lg{grid-gap:var(--spacing-3)}.mrx-rating.mrx-rating-lg{grid-gap:8px}.mrx-rating.mrx-rating-sm{grid-gap:4px}.mrx-rating-value-sm{font-family:var(--body-sm-font-family);font-weight:var(--body-sm-font-weight);line-height:var(--body-sm-line-height);font-size:var(--body-sm-font-size)}.mrx-rating-value-lg{font-family:var(--body-md-font-family);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height);font-size:var(--body-md-font-size)}.mrx-rating.edit-state .mrx-rating-item{cursor:pointer}.mrx-rating.edit-state .mrx-rating-item:hover{transform:scale(1.1)}.mrx-rating .mrx-rating-item{display:flex;align-items:center;position:relative;transition:transform .2s}.mrx-rating .mrx-rating-item-wrapper,.mrx-rating .mrx-rating-item-double-wrapper{display:flex;align-items:center}.mrx-rating .mrx-rating-item-wrapper .mrx-icon,.mrx-rating .mrx-rating-item-double-wrapper .mrx-icon{color:var(--system-rating-default)}.mrx-rating .mrx-rating-item-wrapper .mrx-icon.filled,.mrx-rating .mrx-rating-item-double-wrapper .mrx-icon.filled{color:var(--system-rating-selected);opacity:1}.mrx-rating .mrx-rating-item-double-wrapper{position:absolute;top:0;left:0;width:50%;overflow:hidden}.mrx-rating .mrx-rating-item-double-wrapper .mrx-icon{opacity:0}\n"] }]
|
|
180
184
|
}], propDecorators: { ratingCount: [{
|
|
181
185
|
type: Input
|
|
182
186
|
}], size: [{
|
|
@@ -210,4 +214,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
210
214
|
}], changed: [{
|
|
211
215
|
type: Output
|
|
212
216
|
}] } });
|
|
213
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF0aW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRhLXVpL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL3JhdGluZy9yYXRpbmcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vcmF0aW5nL3JhdGluZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwSCxPQUFPLEVBR0wsZUFBZSxFQUNnQixvQkFBb0IsRUFHbkMsc0JBQXNCLEVBQ3ZDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7QUFlaEUsTUFBTSxPQUFPLGVBQWU7SUFiNUI7UUFjUyxVQUFLLEdBQW9CLENBQUMsQ0FBQztRQUMzQixhQUFRLEdBQW9CLEVBQUUsQ0FBQztRQUU5QixxQkFBZ0IsR0FBdUI7WUFDN0M7Z0JBQ0UsUUFBUSxFQUFFLENBQUM7Z0JBQ1gsUUFBUSxFQUFFLEVBQUU7Z0JBQ1osSUFBSSxFQUFFLGFBQWE7YUFDcEI7WUFDRDtnQkFDRSxRQUFRLEVBQUUsRUFBRTtnQkFDWixRQUFRLEVBQUUsRUFBRTtnQkFDWixJQUFJLEVBQUUsT0FBTzthQUNkO1lBQ0Q7Z0JBQ0UsUUFBUSxFQUFFLEVBQUU7Z0JBQ1osUUFBUSxFQUFFLEVBQUU7Z0JBQ1osSUFBSSxFQUFFLG1CQUFtQjthQUMxQjtZQUNEO2dCQUNFLFFBQVEsRUFBRSxFQUFFO2dCQUNaLFFBQVEsRUFBRSxFQUFF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SUFBSTtzQkFBWixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFFVSxPQUFPO3NCQUF0QixLQUFLO2dCQUNVLGNBQWM7c0JBQTdCLEtBQUs7Z0JBQ1UsWUFBWTtzQkFBM0IsS0FBSztnQkFFVyxPQUFPO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBSYXRpbmdFbGVtZW50LFxyXG4gIFJhdGluZ1Byb3BlcnRpZXMsXHJcbiAgUmF0aW5nU2l6ZXNFbnVtLFxyXG4gIFJhdGluZ1NpemVzVHlwZXMsIFJhdGluZ1N0YXRlLCBSYXRpbmdWYWx1ZVNpemVzRW51bSxcclxuICBSYXRpbmdWYWx1ZVNpemVzVHlwZXMsXHJcbiAgUmF0aW5nVmFsdWVUeXBlLFxyXG4gIFJhdGluZ1ZpZXdNb2RlLCBSYXRpbmdXcmFwcGVyU2l6ZXNFbnVtXHJcbn0gZnJvbSAnLi9yYXRpbmcuZW51bSc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgdG9OdW1iZXJGb3JtYXQgfSBmcm9tICcuLi8uLi8uLi9oZWxwZXJzL251bWJlci1mb3JtYXQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdtcngtcmF0aW5nJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcmF0aW5nLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9yYXRpbmcuY29tcG9uZW50Lmxlc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFJhdGluZ0NvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgfSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUmF0aW5nQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCB7XHJcbiAgcHVibGljIHZhbHVlOiBSYXRpbmdWYWx1ZVR5cGUgPSAwO1xyXG4gIHB1YmxpYyBlbGVtZW50czogUmF0aW5nRWxlbWVudFtdID0gW107XHJcblxyXG4gIHByaXZhdGUgcmF0aW5nUHJvcGVydGllczogUmF0aW5nUHJvcGVydGllc1tdID0gW1xyXG4gICAge1xyXG4gICAgICBtaW5WYWx1ZTogMCxcclxuICAgICAgbWF4VmFsdWU6IDIwLFxyXG4gICAgICB0ZXh0OiAn0J7Rh9C10L3RjCDQv9C70L7RhdC+J1xyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbWluVmFsdWU6IDIwLFxyXG4gICAgICBtYXhWYWx1ZTogNDAsXHJcbiAgICAgIHRleHQ6ICfQn9C70L7RhdC+J1xyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbWluVmFsdWU6IDQwLFxyXG4gICAgICBtYXhWYWx1ZTogNjAsXHJcbiAgICAgIHRleHQ6ICfQo9C00L7QstC70LXRgtCy0L7RgNC40YLQtdC70YzQvdC+J1xyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgbWluVmFsdWU6IDYwLFxyXG4gICAgICBtYXhWYWx1ZTogODAsXHJcbiAgICAgIHRleHQ6ICfQpdC+0YDQvtGI0L4nXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBtaW5WYWx1ZTogODAsXHJcbiAgICAgIG1heFZhbHVlOiAxMDAsXHJcbiAgICAgIHRleHQ6ICfQntGC0LvQuNGH0L3QvidcclxuICAgIH1cclxuICBdO1xyXG5cclxuICBASW5wdXQoKSByYXRpbmdDb3VudCA9IDU7XHJcbiAgQElucHV0KCkgc2l6ZTogUmF0aW5nU2l6ZXNUeXBlcyA9ICdsYXJnZSc7XHJcbiAgQElucHV0KCkgdmFsdWVTaXplOiBSYXRpbmdWYWx1ZVNpemVzVHlwZXMgPSAnbGFyZ2UnO1xyXG5cclxuICBASW5wdXQoKSBpY29uQ2xhc3MgPSAnaWNvbi1zdGFyLWZpbGxlZCc7XHJcbiAgQElucHV0KCkgY3VzdG9tQ2xhc3NlcyA9ICcnO1xyXG4gIEBJbnB1dCgpIHJlYWRvbmx5ID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBkb3VibGUgPSBmYWxzZTtcclxuICBASW5wdXQoKSB2aWV3TW9kZTogUmF0aW5nVmlld01vZGUgPSAnbm9uZSc7XHJcblxyXG4gIEBJbnB1dCgpIHN0ZXAgPSAwLjU7XHJcbiAgQElucHV0KCkgcmF0aW5nU2V0dGluZ3M6IFJhdGluZ1Byb3BlcnRpZXNbXSA9IHRoaXMucmF0aW5nUHJvcGVydGllcztcclxuICBASW5wdXQoKSBtYXhWYWx1ZSA9IDU7XHJcblxyXG4gIEBJbnB1dCgpIHB1YmxpYyBpbnZhbGlkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIGludmFsaWRNZXNzYWdlOiBzdHJpbmcgfCBzdHJpbmdbXSA9ICcnO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBjaGVja0ludmFsaWQ6IHRydWUgfCBmYWxzZSB8IG51bGwgPSBudWxsO1xyXG5cclxuICBAT3V0cHV0KCkgcHVibGljIGNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxSYXRpbmdWYWx1ZVR5cGU+ID0gbmV3IEV2ZW50RW1pdHRlcjxSYXRpbmdWYWx1ZVR5cGU+KCk7XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5lbGVtZW50cyA9IEFycmF5KHRoaXMucmF0aW5nQ291bnQpLmZpbGwoMCkubWFwKCh4LCBpKSA9PiB7XHJcbiAgICAgIHJldHVybiB7dmFsdWU6IGkgKyAxLCBmaWxsZWQ6IGZhbHNlLCBkb3VibGU6IGZhbHNlfTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBpc1ZhbGlkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuYmFzZVZhbGlkYXRlKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGlzSW52YWxpZE1lc3NhZ2UoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gISF0aGlzLmludmFsaWRNZXNzYWdlIHx8ICEhdGhpcy5pbnZhbGlkTWVzc2FnZS5sZW5ndGg7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IHJlYWRvbmx5Q2xhc3MoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLnJlYWRvbmx5ID8gJ21yeC1pbnB1dF9fcmVhZG9ubHknIDogJyc7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGdldFdyYXBwZXJDbGFzc2VzKCkge1xyXG4gICAgcmV0dXJuIGAke3RoaXMuY3VzdG9tQ2xhc3Nlc30gJHtSYXRpbmdXcmFwcGVyU2l6ZXNFbnVtW3RoaXMuc2l6ZV19YDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZ2V0Q2xhc3NlcygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGAke1JhdGluZ1NpemVzRW51bVt0aGlzLnNpemVdfSAke3RoaXMucmVhZG9ubHlDbGFzc31gO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBnZXRWYWx1ZUNsYXNzZXMoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBgJHtSYXRpbmdWYWx1ZVNpemVzRW51bVt0aGlzLnNpemVdfWA7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGZvcm1hdHRlZFZhbHVlKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gTnVtYmVyKChNYXRoLnJvdW5kKE1hdGguYWJzKHRoaXMudmFsdWUgKiAyIC0gdGhpcy5zdGVwKSkgLyAyKS50b0ZpeGVkKHRoaXMudmFsdWUgJSAxID09IDAgPyAwIDogMSkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCByYXRpbmdUZXh0KCk6IHN0cmluZyB7XHJcbiAgICBpZih0aGlzLnJhdGluZ0NvdW50ID09PSAxKSB7XHJcbiAgICAgIHRoaXMubWF4VmFsdWUgPSB0aGlzLm1heFZhbHVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5tYXhWYWx1ZSA9IHRoaXMucmF0aW5nQ291bnQ7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgcmF0aW5nVmFsdWUgPSB0aGlzLnZhbHVlICogMTAwIC8gdGhpcy5tYXhWYWx1ZTtcclxuXHJcbiAgICBpZiAocmF0aW5nVmFsdWUpIHtcclxuICAgICAgcmV0dXJuIHRoaXMucmF0aW5nU2V0dGluZ3MuZmlsdGVyKChpKSA9PiByYXRpbmdWYWx1ZSA+IGkubWluVmFsdWUgJiYgcmF0aW5nVmFsdWUgPD0gaS5tYXhWYWx1ZSlbMF0udGV4dDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gJyc7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGNhbkFjdGl2ZSgpIHtcclxuICAgIHJldHVybiAhKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5yZWFkb25seSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdG9OdW1iZXJGb3JtYXRGdW5jKHZhbHVlOiBudW1iZXIpIHtcclxuICAgIHJldHVybiB0b051bWJlckZvcm1hdCh2YWx1ZSwgdGhpcy5kb3VibGUgPyAxIDogMCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgYmFzZVZhbGlkYXRlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2hhbmdlVmFsdWUodmFsdWU6IG51bWJlciwgdHlwZTogJ3NpbmdsZScgfCAnZG91YmxlJyk6IHZvaWQge1xyXG4gICAgaWYgKHR5cGUgPT09ICdzaW5nbGUnKSB7XHJcbiAgICAgIHRoaXMudXBkYXRlVmFsdWUodmFsdWUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy51cGRhdGVWYWx1ZSh2YWx1ZSAtIHRoaXMuc3RlcCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaG92ZXJFbGVtZW50SGFuZGxlKGl0ZW06IFJhdGluZ0VsZW1lbnQsIHR5cGU6ICdzaW5nbGUnIHwgJ2RvdWJsZScpIHtcclxuICAgIGlmICh0eXBlID09PSAnc2luZ2xlJykge1xyXG4gICAgICB0aGlzLl91cGRhdGVTdGF0ZShpdGVtLnZhbHVlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX3VwZGF0ZVN0YXRlKGl0ZW0udmFsdWUgLSB0aGlzLnN0ZXApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlc2V0RWxlbWVudEhhbmRsZSgpIHtcclxuICAgIHRoaXMuX3VwZGF0ZVN0YXRlKHRoaXMuZm9ybWF0dGVkVmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHRyYWNrQnlGbihpbmRleDogbnVtYmVyLCBpdGVtOiBSYXRpbmdFbGVtZW50KSB7XHJcbiAgICByZXR1cm4gaXRlbS52YWx1ZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgb25DaGFuZ2UgPSAodmFsdWU6IFJhdGluZ1ZhbHVlVHlwZSkgPT4ge1xyXG4gIH07XHJcbiAgcHJpdmF0ZSBvblRvdWNoZWQgPSAoKSA9PiB7XHJcbiAgfTtcclxuXHJcbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xyXG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB7fSk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB3cml0ZVZhbHVlKG91dHNpZGVWYWx1ZTogUmF0aW5nVmFsdWVUeXBlKSB7XHJcbiAgICB0aGlzLnZhbHVlID0gb3V0c2lkZVZhbHVlO1xyXG5cclxuICAgIGlmIChvdXRzaWRlVmFsdWUgIT09IG51bGwpIHtcclxuICAgICAgdGhpcy5fdXBkYXRlU3RhdGUodGhpcy5mb3JtYXR0ZWRWYWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKSB7XHJcbiAgICAvLyB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB1cGRhdGVWYWx1ZShpbnNpZGVWYWx1ZTogUmF0aW5nVmFsdWVUeXBlKSB7XHJcbiAgICB0aGlzLnZhbHVlID0gaW5zaWRlVmFsdWU7XHJcbiAgICB0aGlzLmNoYW5nZWQuZW1pdChpbnNpZGVWYWx1ZSk7XHJcbiAgICB0aGlzLm9uQ2hhbmdlKGluc2lkZVZhbHVlKTtcclxuICAgIHRoaXMub25Ub3VjaGVkKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF91cGRhdGVTdGF0ZSh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLmVsZW1lbnRzLmZvckVhY2goKGVsZW1lbnQ6IFJhdGluZ0VsZW1lbnQpID0+IHtcclxuICAgICAgaWYodGhpcy5yYXRpbmdDb3VudCA9PT0gMSAmJiB2YWx1ZSArIHRoaXMuc3RlcCkge1xyXG4gICAgICAgIGVsZW1lbnQuZmlsbGVkID0gdHJ1ZVxyXG4gICAgICAgIGVsZW1lbnQuZG91YmxlID0gZmFsc2VcclxuICAgICAgICByZXR1cm5cclxuICAgICAgfVxyXG5cclxuICAgICAgZWxlbWVudC5maWxsZWQgPSBlbGVtZW50LnZhbHVlIC0gdGhpcy5zdGVwIDw9IHZhbHVlO1xyXG4gICAgICBlbGVtZW50LmRvdWJsZSA9IGVsZW1lbnQudmFsdWUgLSB0aGlzLnN0ZXAgPT09IHZhbHVlO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJtcngtcmF0aW5nLXdyYXBwZXJcIiBbY2xhc3NdPVwiZ2V0V3JhcHBlckNsYXNzZXNcIj5cclxuICA8ZGl2XHJcbiAgICAqbmdJZj1cImNhbkFjdGl2ZTsgZWxzZSB2aWV3VGVtcGxhdGVcIlxyXG4gICAgY2xhc3M9XCJtcngtcmF0aW5nIGVkaXQtc3RhdGVcIlxyXG4gICAgW2NsYXNzXT1cImdldENsYXNzZXNcIlxyXG4gICAgKG1vdXNlbGVhdmUpPVwicmVzZXRFbGVtZW50SGFuZGxlKClcIlxyXG4gID5cclxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZWxlbWVudHM7IGxldCBpZHggPSBpbmRleDsgdHJhY2tCeTogdHJhY2tCeUZuXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJtcngtcmF0aW5nLWl0ZW1cIiBbY2xhc3MuZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgcmVhZG9ubHlcIj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiZG91YmxlXCIgY2xhc3M9XCJtcngtcmF0aW5nLWl0ZW0tZG91YmxlLXdyYXBwZXJcIj5cclxuICAgICAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgICBjbGFzcz1cIm1yeC1pY29uXCJcclxuICAgICAgICAgICAgICBbY2xhc3NdPVwiaWNvbkNsYXNzXCJcclxuICAgICAgICAgICAgICBbY2xhc3MuaWNvbi1mb250LTE2XT1cInNpemUgPT09ICdzbWFsbCdcIlxyXG4gICAgICAgICAgICAgIFtjbGFzcy5pY29uLWZvbnQtMjRdPVwic2l6ZSA9PT0gJ2xhcmdlJ1wiXHJcbiAgICAgICAgICAgICAgW2NsYXNzLmZpbGxlZF09XCJpdGVtLmZpbGxlZCAmJiBpdGVtLmRvdWJsZVwiXHJcbiAgICAgICAgICAgICAgKG1vdXNlZW50ZXIpPVwiY2FuQWN0aXZlICYmIGhvdmVyRWxlbWVudEhhbmRsZShpdGVtLCAnZG91YmxlJylcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJjYW5BY3RpdmUgJiYgY2hhbmdlVmFsdWUoaXRlbS52YWx1ZSwgJ2RvdWJsZScpXCJcclxuICAgICAgICAgICAgPjwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1yeC1yYXRpbmctaXRlbS13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJtcngtaWNvblwiXHJcbiAgICAgICAgICAgICAgW2NsYXNzXT1cImljb25DbGFzc1wiXHJcbiAgICAgICAgICAgICAgW2NsYXNzLmljb24tZm9udC0xNl09XCJzaXplID09PSAnc21hbGwnXCJcclxuICAgICAgICAgICAgICBbY2xhc3MuaWNvbi1mb250LTI0XT1cInNpemUgPT09ICdsYXJnZSdcIlxyXG4gICAgICAgICAgICAgIFtjbGFzcy5maWxsZWRdPVwiaXRlbS5maWxsZWQgJiYgIWl0ZW0uZG91YmxlXCJcclxuICAgICAgICAgICAgICAobW91c2VlbnRlcik9XCJjYW5BY3RpdmUgJiYgaG92ZXJFbGVtZW50SGFuZGxlKGl0ZW0sICdzaW5nbGUnKVwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImNhbkFjdGl2ZSAmJiBjaGFuZ2VWYWx1ZShpdGVtLnZhbHVlLCAnc2luZ2xlJylcIlxyXG4gICAgICAgICAgICA+PC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8bmctdGVtcGxhdGUgI3ZpZXdUZW1wbGF0ZT5cclxuICAgIDxkaXYgY2xhc3M9XCJtcngtcmF0aW5nXCIgW2NsYXNzXT1cImdldENsYXNzZXNcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBlbGVtZW50czsgbGV0IGlkeCA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5Rm5cIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwibXJ4LXJhdGluZy1pdGVtXCIgW2NsYXNzLmRpc2FibGVkXT1cImRpc2FibGVkIHx8IHJlYWRvbmx5XCI+XHJcbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZG91YmxlXCIgY2xhc3M9XCJtcngtcmF0aW5nLWl0ZW0tZG91YmxlLXdyYXBwZXJcIj5cclxuICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgIGNsYXNzPVwibXJ4LWljb25cIlxyXG4gICAgICAgICAgICBbY2xhc3NdPVwiaWNvbkNsYXNzXCJcclxuICAgICAgICAgICAgW2NsYXNzLmljb24tZm9udC0xNl09XCJzaXplID09PSAnc21hbGwnXCJcclxuICAgICAgICAgICAgW2NsYXNzLmljb24tZm9udC0yNF09XCJzaXplID09PSAnbGFyZ2UnXCJcclxuICAgICAgICAgICAgW2NsYXNzLmZpbGxlZF09XCJpdGVtLmZpbGxlZCAmJiBpdGVtLmRvdWJsZVwiXHJcbiAgICAgICAgICA+PC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1yeC1yYXRpbmctaXRlbS13cmFwcGVyXCI+XHJcbiAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICBjbGFzcz1cIm1yeC1pY29uXCJcclxuICAgICAgICAgICAgW2NsYXNzXT1cImljb25DbGFzc1wiXHJcbiAgICAgICAgICAgIFtjbGFzcy5pY29uLWZvbnQtMTZdPVwic2l6ZSA9PT0gJ3NtYWxsJ1wiXHJcbiAgICAgICAgICAgIFtjbGFzcy5pY29uLWZvbnQtMjRdPVwic2l6ZSA9PT0gJ2xhcmdlJ1wiXHJcbiAgICAgICAgICAgIFtjbGFzcy5maWxsZWRdPVwiaXRlbS5maWxsZWQgJiYgIWl0ZW0uZG91YmxlXCJcclxuICAgICAgICAgID48L3NwYW4+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJ2aWV3TW9kZVwiPlxyXG4gICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIid0ZXh0J1wiIFtjbGFzc109XCJnZXRWYWx1ZUNsYXNzZXNcIj57eyByYXRpbmdUZXh0IH19PC9zcGFuPlxyXG4gICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIid2YWx1ZSdcIiBbY2xhc3NdPVwiZ2V0VmFsdWVDbGFzc2VzXCI+e3sgdG9OdW1iZXJGb3JtYXRGdW5jKHZhbHVlKSB9fTwvc3Bhbj5cclxuICAgIDxzcGFuICpuZ1N3aXRjaENhc2U9XCIndGV4dC13aXRoLXZhbHVlJ1wiIFtjbGFzc109XCJnZXRWYWx1ZUNsYXNzZXNcIj5cclxuICAgICAge3sgcmF0aW5nVGV4dCB9fSAoe3sgdG9OdW1iZXJGb3JtYXRGdW5jKHZhbHVlKSB9fSlcclxuICAgIDwvc3Bhbj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9kaXY+XHJcblxyXG48bXJ4LWVycm9yLW1lc3NhZ2UgKm5nSWY9XCIoIWlzVmFsaWQgfHwgaW52YWxpZCkgJiYgaXNJbnZhbGlkTWVzc2FnZVwiIFtpbnZhbGlkTWVzc2FnZV09XCJpbnZhbGlkTWVzc2FnZVwiPlxyXG48L21yeC1lcnJvci1tZXNzYWdlPlxyXG4iXX0=
|
|
217
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmF0aW5nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRhLXVpL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL3JhdGluZy9yYXRpbmcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vcmF0aW5nL3JhdGluZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwSCxPQUFPLEVBR0wsZUFBZSxFQUNnQixvQkFBb0IsRUFHbkMsc0JBQXNCLEVBQ3ZDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7Ozs7QUFlaEUsTUFBTSxPQUFPLGVBQWU7SUFiNUI7UUFjUyxVQUFLLEdBQW9CLENBQUMsQ0FBQztRQUMzQixhQUFRLEdBQW9CLEVBQUUsQ0FBQztRQUU5QixxQkFBZ0IsR0FBdUI7WUFDN0M7Z0JBQ0UsUUFBUSxFQUFFLENBQUM7Z0JBQ1gsUUFBUSxFQUFFLEVBQUU7Z0JBQ1osSUFBSSxFQUFFLGFBQWE7YUFDcEI7WUFDRDtnQkFDRSxRQUFRLEVBQUUsRUFBRTtnQkFDWixRQUFRLEVBQUUsRUFBRTtnQkFDWixJQUFJLEVBQUUsT0FBTzthQUNkO1lBQ0Q7Z0JBQ0UsUUFBUSxFQUFFLEVBQUU7Z0JBQ1osUUFBUSxFQUFFLEVBQUU7Z0JBQ1osSUFBSSxFQUFFLG1CQUFtQjthQUMxQjtZQUNEO2dCQUNFLFFBQVEsRUFBRSxFQUFFO2dCQUNaLFFBQVEsRUFBRSxFQUFF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SztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVVLE9BQU87c0JBQXRCLEtBQUs7Z0JBQ1UsY0FBYztzQkFBN0IsS0FBSztnQkFDVSxZQUFZO3NCQUEzQixLQUFLO2dCQUVXLE9BQU87c0JBQXZCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIGZvcndhcmRSZWYsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIFJhdGluZ0VsZW1lbnQsXHJcbiAgUmF0aW5nUHJvcGVydGllcyxcclxuICBSYXRpbmdTaXplc0VudW0sXHJcbiAgUmF0aW5nU2l6ZXNUeXBlcywgUmF0aW5nU3RhdGUsIFJhdGluZ1ZhbHVlU2l6ZXNFbnVtLFxyXG4gIFJhdGluZ1ZhbHVlU2l6ZXNUeXBlcyxcclxuICBSYXRpbmdWYWx1ZVR5cGUsXHJcbiAgUmF0aW5nVmlld01vZGUsIFJhdGluZ1dyYXBwZXJTaXplc0VudW1cclxufSBmcm9tICcuL3JhdGluZy5lbnVtJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyB0b051bWJlckZvcm1hdCB9IGZyb20gJy4uLy4uLy4uL2hlbHBlcnMvbnVtYmVyLWZvcm1hdCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ21yeC1yYXRpbmcnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9yYXRpbmcuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3JhdGluZy5jb21wb25lbnQubGVzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUmF0aW5nQ29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSYXRpbmdDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25Jbml0IHtcclxuICBwdWJsaWMgdmFsdWU6IFJhdGluZ1ZhbHVlVHlwZSA9IDA7XHJcbiAgcHVibGljIGVsZW1lbnRzOiBSYXRpbmdFbGVtZW50W10gPSBbXTtcclxuXHJcbiAgcHJpdmF0ZSByYXRpbmdQcm9wZXJ0aWVzOiBSYXRpbmdQcm9wZXJ0aWVzW10gPSBbXHJcbiAgICB7XHJcbiAgICAgIG1pblZhbHVlOiAwLFxyXG4gICAgICBtYXhWYWx1ZTogMjAsXHJcbiAgICAgIHRleHQ6ICfQntGH0LXQvdGMINC/0LvQvtGF0L4nXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBtaW5WYWx1ZTogMjAsXHJcbiAgICAgIG1heFZhbHVlOiA0MCxcclxuICAgICAgdGV4dDogJ9Cf0LvQvtGF0L4nXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBtaW5WYWx1ZTogNDAsXHJcbiAgICAgIG1heFZhbHVlOiA2MCxcclxuICAgICAgdGV4dDogJ9Cj0LTQvtCy0LvQtdGC0LLQvtGA0LjRgtC10LvRjNC90L4nXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBtaW5WYWx1ZTogNjAsXHJcbiAgICAgIG1heFZhbHVlOiA4MCxcclxuICAgICAgdGV4dDogJ9Cl0L7RgNC+0YjQvidcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIG1pblZhbHVlOiA4MCxcclxuICAgICAgbWF4VmFsdWU6IDEwMCxcclxuICAgICAgdGV4dDogJ9Ce0YLQu9C40YfQvdC+J1xyXG4gICAgfVxyXG4gIF07XHJcblxyXG4gIEBJbnB1dCgpIHJhdGluZ0NvdW50ID0gNTtcclxuICBASW5wdXQoKSBzaXplOiBSYXRpbmdTaXplc1R5cGVzID0gJ2xhcmdlJztcclxuICBASW5wdXQoKSB2YWx1ZVNpemU6IFJhdGluZ1ZhbHVlU2l6ZXNUeXBlcyA9ICdsYXJnZSc7XHJcblxyXG4gIEBJbnB1dCgpIGljb25DbGFzcyA9ICdpY29uLXN0YXItZmlsbGVkJztcclxuICBASW5wdXQoKSBjdXN0b21DbGFzc2VzID0gJyc7XHJcbiAgQElucHV0KCkgcmVhZG9ubHkgPSBmYWxzZTtcclxuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGRvdWJsZSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHZpZXdNb2RlOiBSYXRpbmdWaWV3TW9kZSA9ICdub25lJztcclxuXHJcbiAgQElucHV0KCkgc3RlcCA9IDAuNTtcclxuICBASW5wdXQoKSByYXRpbmdTZXR0aW5nczogUmF0aW5nUHJvcGVydGllc1tdID0gdGhpcy5yYXRpbmdQcm9wZXJ0aWVzO1xyXG4gIEBJbnB1dCgpIG1heFZhbHVlID0gNTtcclxuXHJcbiAgQElucHV0KCkgcHVibGljIGludmFsaWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBwdWJsaWMgaW52YWxpZE1lc3NhZ2U6IHN0cmluZyB8IHN0cmluZ1tdID0gJyc7XHJcbiAgQElucHV0KCkgcHVibGljIGNoZWNrSW52YWxpZDogdHJ1ZSB8IGZhbHNlIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIEBPdXRwdXQoKSBwdWJsaWMgY2hhbmdlZDogRXZlbnRFbWl0dGVyPFJhdGluZ1ZhbHVlVHlwZT4gPSBuZXcgRXZlbnRFbWl0dGVyPFJhdGluZ1ZhbHVlVHlwZT4oKTtcclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmVsZW1lbnRzID0gQXJyYXkodGhpcy5yYXRpbmdDb3VudCkuZmlsbCgwKS5tYXAoKHgsIGkpID0+IHtcclxuICAgICAgcmV0dXJuIHt2YWx1ZTogaSArIDEsIGZpbGxlZDogZmFsc2UsIGRvdWJsZTogZmFsc2V9O1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGlzVmFsaWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5iYXNlVmFsaWRhdGUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgaXNJbnZhbGlkTWVzc2FnZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhIXRoaXMuaW52YWxpZE1lc3NhZ2UgfHwgISF0aGlzLmludmFsaWRNZXNzYWdlLmxlbmd0aDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgcmVhZG9ubHlDbGFzcygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMucmVhZG9ubHkgPyAnbXJ4LWlucHV0X19yZWFkb25seScgOiAnJztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZ2V0V3JhcHBlckNsYXNzZXMoKSB7XHJcbiAgICByZXR1cm4gYCR7dGhpcy5jdXN0b21DbGFzc2VzfSAke1JhdGluZ1dyYXBwZXJTaXplc0VudW1bdGhpcy5zaXplXX1gO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBnZXRDbGFzc2VzKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gYCR7UmF0aW5nU2l6ZXNFbnVtW3RoaXMuc2l6ZV19ICR7dGhpcy5yZWFkb25seUNsYXNzfWA7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGdldFZhbHVlQ2xhc3NlcygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGAke1JhdGluZ1ZhbHVlU2l6ZXNFbnVtW3RoaXMuc2l6ZV19YDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZm9ybWF0dGVkVmFsdWUoKTogbnVtYmVyIHtcclxuICAgIHJldHVybiBOdW1iZXIodGhpcy52YWx1ZS50b0ZpeGVkKHRoaXMudmFsdWUgJSAxID09IDAgPyAwIDogMSkpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCByYXRpbmdUZXh0KCk6IHN0cmluZyB7XHJcbiAgICBpZih0aGlzLnJhdGluZ0NvdW50ID09PSAxKSB7XHJcbiAgICAgIHRoaXMubWF4VmFsdWUgPSB0aGlzLm1heFZhbHVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5tYXhWYWx1ZSA9IHRoaXMucmF0aW5nQ291bnQ7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgcmF0aW5nVmFsdWUgPSB0aGlzLnZhbHVlICogMTAwIC8gdGhpcy5tYXhWYWx1ZTtcclxuXHJcbiAgICBpZiAocmF0aW5nVmFsdWUpIHtcclxuICAgICAgcmV0dXJuIHRoaXMucmF0aW5nU2V0dGluZ3MuZmlsdGVyKChpKSA9PiByYXRpbmdWYWx1ZSA+IGkubWluVmFsdWUgJiYgcmF0aW5nVmFsdWUgPD0gaS5tYXhWYWx1ZSlbMF0udGV4dDtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gJyc7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGNhbkFjdGl2ZSgpIHtcclxuICAgIHJldHVybiAhKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5yZWFkb25seSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdG9OdW1iZXJGb3JtYXRGdW5jKHZhbHVlOiBudW1iZXIpIHtcclxuICAgIHJldHVybiB0b051bWJlckZvcm1hdCh2YWx1ZSwgdGhpcy5kb3VibGUgPyAxIDogMCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgYmFzZVZhbGlkYXRlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2hhbmdlVmFsdWUodmFsdWU6IG51bWJlciwgdHlwZTogJ3NpbmdsZScgfCAnZG91YmxlJyk6IHZvaWQge1xyXG4gICAgaWYgKHR5cGUgPT09ICdzaW5nbGUnKSB7XHJcbiAgICAgIHRoaXMudXBkYXRlVmFsdWUodmFsdWUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy51cGRhdGVWYWx1ZSh2YWx1ZSAtIHRoaXMuc3RlcCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgaG92ZXJFbGVtZW50SGFuZGxlKGl0ZW06IFJhdGluZ0VsZW1lbnQsIHR5cGU6ICdzaW5nbGUnIHwgJ2RvdWJsZScpIHtcclxuICAgIGlmICh0eXBlID09PSAnc2luZ2xlJykge1xyXG4gICAgICB0aGlzLl91cGRhdGVTdGF0ZShpdGVtLnZhbHVlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuX3VwZGF0ZVN0YXRlKGl0ZW0udmFsdWUgLSB0aGlzLnN0ZXApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlc2V0RWxlbWVudEhhbmRsZSgpIHtcclxuICAgIHRoaXMuX3VwZGF0ZVN0YXRlKHRoaXMuZm9ybWF0dGVkVmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHRyYWNrQnlGbihpbmRleDogbnVtYmVyLCBpdGVtOiBSYXRpbmdFbGVtZW50KSB7XHJcbiAgICByZXR1cm4gaXRlbS52YWx1ZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgb25DaGFuZ2UgPSAodmFsdWU6IFJhdGluZ1ZhbHVlVHlwZSkgPT4ge1xyXG4gIH07XHJcbiAgcHJpdmF0ZSBvblRvdWNoZWQgPSAoKSA9PiB7XHJcbiAgfTtcclxuXHJcbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xyXG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB7fSk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB3cml0ZVZhbHVlKG91dHNpZGVWYWx1ZTogUmF0aW5nVmFsdWVUeXBlKSB7XHJcbiAgICB0aGlzLnZhbHVlID0gb3V0c2lkZVZhbHVlO1xyXG5cclxuICAgIGlmIChvdXRzaWRlVmFsdWUgIT09IG51bGwpIHtcclxuICAgICAgdGhpcy5fdXBkYXRlU3RhdGUodGhpcy5mb3JtYXR0ZWRWYWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKSB7XHJcbiAgICAvLyB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB1cGRhdGVWYWx1ZShpbnNpZGVWYWx1ZTogUmF0aW5nVmFsdWVUeXBlKSB7XHJcbiAgICB0aGlzLnZhbHVlID0gaW5zaWRlVmFsdWU7XHJcbiAgICB0aGlzLmNoYW5nZWQuZW1pdChpbnNpZGVWYWx1ZSk7XHJcbiAgICB0aGlzLm9uQ2hhbmdlKGluc2lkZVZhbHVlKTtcclxuICAgIHRoaXMub25Ub3VjaGVkKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF91cGRhdGVTdGF0ZSh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICB0aGlzLmVsZW1lbnRzLmZvckVhY2goKGVsZW1lbnQ6IFJhdGluZ0VsZW1lbnQpID0+IHtcclxuICAgICAgaWYodGhpcy5yYXRpbmdDb3VudCA9PT0gMSkge1xyXG4gICAgICAgIGVsZW1lbnQuZmlsbGVkID0gdmFsdWUgPiAwXHJcbiAgICAgICAgcmV0dXJuXHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmKCF0aGlzLmRvdWJsZSkge1xyXG4gICAgICAgIGVsZW1lbnQuZmlsbGVkID0gZWxlbWVudC52YWx1ZSA8PSB2YWx1ZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBlbGVtZW50LmZpbGxlZCA9IGVsZW1lbnQudmFsdWUgLSB0aGlzLnN0ZXAgPD0gdmFsdWU7XHJcbiAgICAgICAgZWxlbWVudC5kb3VibGUgPSB2YWx1ZSA+PSB0aGlzLnN0ZXAgJiYgdmFsdWUgPCBlbGVtZW50LnZhbHVlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcbn0iLCI8ZGl2IGNsYXNzPVwibXJ4LXJhdGluZy13cmFwcGVyXCIgW2NsYXNzXT1cImdldFdyYXBwZXJDbGFzc2VzXCI+XHJcbiAgPGRpdlxyXG4gICAgKm5nSWY9XCJjYW5BY3RpdmU7IGVsc2Ugdmlld1RlbXBsYXRlXCJcclxuICAgIGNsYXNzPVwibXJ4LXJhdGluZyBlZGl0LXN0YXRlXCJcclxuICAgIFtjbGFzc109XCJnZXRDbGFzc2VzXCJcclxuICAgIChtb3VzZWxlYXZlKT1cInJlc2V0RWxlbWVudEhhbmRsZSgpXCJcclxuICA+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGVsZW1lbnRzOyBsZXQgaWR4ID0gaW5kZXg7IHRyYWNrQnk6IHRyYWNrQnlGblwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwibXJ4LXJhdGluZy1pdGVtXCIgW2NsYXNzLmRpc2FibGVkXT1cImRpc2FibGVkIHx8IHJlYWRvbmx5XCI+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cImRvdWJsZVwiIGNsYXNzPVwibXJ4LXJhdGluZy1pdGVtLWRvdWJsZS13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJtcngtaWNvblwiXHJcbiAgICAgICAgICAgICAgW2NsYXNzXT1cImljb25DbGFzc1wiXHJcbiAgICAgICAgICAgICAgW2NsYXNzLmljb24tZm9udC0xNl09XCJzaXplID09PSAnc21hbGwnXCJcclxuICAgICAgICAgICAgICBbY2xhc3MuaWNvbi1mb250LTI0XT1cInNpemUgPT09ICdsYXJnZSdcIlxyXG4gICAgICAgICAgICAgIFtjbGFzcy5maWxsZWRdPVwiaXRlbS5maWxsZWQgJiYgaXRlbS5kb3VibGVcIlxyXG4gICAgICAgICAgICAgIChtb3VzZWVudGVyKT1cImNhbkFjdGl2ZSAmJiBob3ZlckVsZW1lbnRIYW5kbGUoaXRlbSwgJ2RvdWJsZScpXCJcclxuICAgICAgICAgICAgICAoY2xpY2spPVwiY2FuQWN0aXZlICYmIGNoYW5nZVZhbHVlKGl0ZW0udmFsdWUsICdkb3VibGUnKVwiXHJcbiAgICAgICAgICAgID48L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtcngtcmF0aW5nLWl0ZW0td3JhcHBlclwiPlxyXG4gICAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgIGNsYXNzPVwibXJ4LWljb25cIlxyXG4gICAgICAgICAgICAgIFtjbGFzc109XCJpY29uQ2xhc3NcIlxyXG4gICAgICAgICAgICAgIFtjbGFzcy5pY29uLWZvbnQtMTZdPVwic2l6ZSA9PT0gJ3NtYWxsJ1wiXHJcbiAgICAgICAgICAgICAgW2NsYXNzLmljb24tZm9udC0yNF09XCJzaXplID09PSAnbGFyZ2UnXCJcclxuICAgICAgICAgICAgICBbY2xhc3MuZmlsbGVkXT1cIml0ZW0uZmlsbGVkICYmICFpdGVtLmRvdWJsZVwiXHJcbiAgICAgICAgICAgICAgKG1vdXNlZW50ZXIpPVwiY2FuQWN0aXZlICYmIGhvdmVyRWxlbWVudEhhbmRsZShpdGVtLCAnc2luZ2xlJylcIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJjYW5BY3RpdmUgJiYgY2hhbmdlVmFsdWUoaXRlbS52YWx1ZSwgJ3NpbmdsZScpXCJcclxuICAgICAgICAgICAgPjwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPG5nLXRlbXBsYXRlICN2aWV3VGVtcGxhdGU+XHJcbiAgICA8ZGl2IGNsYXNzPVwibXJ4LXJhdGluZ1wiIFtjbGFzc109XCJnZXRDbGFzc2VzXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZWxlbWVudHM7IGxldCBpZHggPSBpbmRleDsgdHJhY2tCeTogdHJhY2tCeUZuXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1yeC1yYXRpbmctaXRlbVwiIFtjbGFzcy5kaXNhYmxlZF09XCJkaXNhYmxlZCB8fCByZWFkb25seVwiPlxyXG4gICAgICAgICAgPGRpdiAqbmdJZj1cImRvdWJsZVwiIGNsYXNzPVwibXJ4LXJhdGluZy1pdGVtLWRvdWJsZS13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJtcngtaWNvblwiXHJcbiAgICAgICAgICAgICAgW2NsYXNzXT1cImljb25DbGFzc1wiXHJcbiAgICAgICAgICAgICAgW2NsYXNzLmljb24tZm9udC0xNl09XCJzaXplID09PSAnc21hbGwnXCJcclxuICAgICAgICAgICAgICBbY2xhc3MuaWNvbi1mb250LTI0XT1cInNpemUgPT09ICdsYXJnZSdcIlxyXG4gICAgICAgICAgICAgIFtjbGFzcy5maWxsZWRdPVwiaXRlbS5maWxsZWQgJiYgaXRlbS5kb3VibGVcIlxyXG4gICAgICAgICAgICA+PC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm1yeC1yYXRpbmctaXRlbS13cmFwcGVyXCI+XHJcbiAgICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJtcngtaWNvblwiXHJcbiAgICAgICAgICAgICAgW2NsYXNzXT1cImljb25DbGFzc1wiXHJcbiAgICAgICAgICAgICAgW2NsYXNzLmljb24tZm9udC0xNl09XCJzaXplID09PSAnc21hbGwnXCJcclxuICAgICAgICAgICAgICBbY2xhc3MuaWNvbi1mb250LTI0XT1cInNpemUgPT09ICdsYXJnZSdcIlxyXG4gICAgICAgICAgICAgIFtjbGFzcy5maWxsZWRdPVwiaXRlbS5maWxsZWQgJiYgIWl0ZW0uZG91YmxlXCJcclxuICAgICAgICAgICAgPjwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInZpZXdNb2RlXCI+XHJcbiAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ3RleHQnXCIgW2NsYXNzXT1cImdldFZhbHVlQ2xhc3Nlc1wiPnt7IHJhdGluZ1RleHQgfX08L3NwYW4+XHJcbiAgICA8c3BhbiAqbmdTd2l0Y2hDYXNlPVwiJ3ZhbHVlJ1wiIFtjbGFzc109XCJnZXRWYWx1ZUNsYXNzZXNcIj57eyB0b051bWJlckZvcm1hdEZ1bmModmFsdWUpIH19PC9zcGFuPlxyXG4gICAgPHNwYW4gKm5nU3dpdGNoQ2FzZT1cIid0ZXh0LXdpdGgtdmFsdWUnXCIgW2NsYXNzXT1cImdldFZhbHVlQ2xhc3Nlc1wiPlxyXG4gICAgICB7eyByYXRpbmdUZXh0IH19ICh7eyB0b051bWJlckZvcm1hdEZ1bmModmFsdWUpIH19KVxyXG4gICAgPC9zcGFuPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L2Rpdj5cclxuXHJcbjxtcngtZXJyb3ItbWVzc2FnZSAqbmdJZj1cIighaXNWYWxpZCB8fCBpbnZhbGlkKSAmJiBpc0ludmFsaWRNZXNzYWdlXCIgW2ludmFsaWRNZXNzYWdlXT1cImludmFsaWRNZXNzYWdlXCI+XHJcbjwvbXJ4LWVycm9yLW1lc3NhZ2U+XHJcbiJdfQ==
|
package/fesm2015/myrta-ui.mjs
CHANGED
|
@@ -10468,7 +10468,7 @@ class RatingComponent {
|
|
|
10468
10468
|
return `${RatingValueSizesEnum[this.size]}`;
|
|
10469
10469
|
}
|
|
10470
10470
|
get formattedValue() {
|
|
10471
|
-
return Number(
|
|
10471
|
+
return Number(this.value.toFixed(this.value % 1 == 0 ? 0 : 1));
|
|
10472
10472
|
}
|
|
10473
10473
|
get ratingText() {
|
|
10474
10474
|
if (this.ratingCount === 1) {
|
|
@@ -10537,13 +10537,17 @@ class RatingComponent {
|
|
|
10537
10537
|
}
|
|
10538
10538
|
_updateState(value) {
|
|
10539
10539
|
this.elements.forEach((element) => {
|
|
10540
|
-
if (this.ratingCount === 1
|
|
10541
|
-
element.filled =
|
|
10542
|
-
element.double = false;
|
|
10540
|
+
if (this.ratingCount === 1) {
|
|
10541
|
+
element.filled = value > 0;
|
|
10543
10542
|
return;
|
|
10544
10543
|
}
|
|
10545
|
-
|
|
10546
|
-
|
|
10544
|
+
if (!this.double) {
|
|
10545
|
+
element.filled = element.value <= value;
|
|
10546
|
+
}
|
|
10547
|
+
else {
|
|
10548
|
+
element.filled = element.value - this.step <= value;
|
|
10549
|
+
element.double = value >= this.step && value < element.value;
|
|
10550
|
+
}
|
|
10547
10551
|
});
|
|
10548
10552
|
}
|
|
10549
10553
|
}
|
|
@@ -10554,7 +10558,7 @@ RatingComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versio
|
|
|
10554
10558
|
useExisting: forwardRef(() => RatingComponent),
|
|
10555
10559
|
multi: true,
|
|
10556
10560
|
},
|
|
10557
|
-
], ngImport: i0, template: "<div class=\"mrx-rating-wrapper\" [class]=\"getWrapperClasses\">\r\n <div\r\n *ngIf=\"canActive; else viewTemplate\"\r\n class=\"mrx-rating edit-state\"\r\n [class]=\"getClasses\"\r\n (mouseleave)=\"resetElementHandle()\"\r\n >\r\n <ng-container *ngFor=\"let item of elements; let idx = index; trackBy: trackByFn\">\r\n <div class=\"mrx-rating-item\" [class.disabled]=\"disabled || readonly\">\r\n <div *ngIf=\"double\" class=\"mrx-rating-item-double-wrapper\">\r\n <span\r\n class=\"mrx-icon\"\r\n [class]=\"iconClass\"\r\n [class.icon-font-16]=\"size === 'small'\"\r\n [class.icon-font-24]=\"size === 'large'\"\r\n [class.filled]=\"item.filled && item.double\"\r\n (mouseenter)=\"canActive && hoverElementHandle(item, 'double')\"\r\n (click)=\"canActive && changeValue(item.value, 'double')\"\r\n ></span>\r\n </div>\r\n\r\n <div class=\"mrx-rating-item-wrapper\">\r\n <span\r\n class=\"mrx-icon\"\r\n [class]=\"iconClass\"\r\n [class.icon-font-16]=\"size === 'small'\"\r\n [class.icon-font-24]=\"size === 'large'\"\r\n [class.filled]=\"item.filled && !item.double\"\r\n (mouseenter)=\"canActive && hoverElementHandle(item, 'single')\"\r\n (click)=\"canActive && changeValue(item.value, 'single')\"\r\n ></span>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n <ng-template #viewTemplate>\r\n <div class=\"mrx-rating\" [class]=\"getClasses\">\r\n <ng-container *ngFor=\"let item of elements; let idx = index; trackBy: trackByFn\">\r\n <div class=\"mrx-rating-item\" [class.disabled]=\"disabled || readonly\">\r\n <div *ngIf=\"double\" class=\"mrx-rating-item-double-wrapper\">\r\n
|
|
10561
|
+
], ngImport: i0, template: "<div class=\"mrx-rating-wrapper\" [class]=\"getWrapperClasses\">\r\n <div\r\n *ngIf=\"canActive; else viewTemplate\"\r\n class=\"mrx-rating edit-state\"\r\n [class]=\"getClasses\"\r\n (mouseleave)=\"resetElementHandle()\"\r\n >\r\n <ng-container *ngFor=\"let item of elements; let idx = index; trackBy: trackByFn\">\r\n <div class=\"mrx-rating-item\" [class.disabled]=\"disabled || readonly\">\r\n <div *ngIf=\"double\" class=\"mrx-rating-item-double-wrapper\">\r\n <span\r\n class=\"mrx-icon\"\r\n [class]=\"iconClass\"\r\n [class.icon-font-16]=\"size === 'small'\"\r\n [class.icon-font-24]=\"size === 'large'\"\r\n [class.filled]=\"item.filled && item.double\"\r\n (mouseenter)=\"canActive && hoverElementHandle(item, 'double')\"\r\n (click)=\"canActive && changeValue(item.value, 'double')\"\r\n ></span>\r\n </div>\r\n\r\n <div class=\"mrx-rating-item-wrapper\">\r\n <span\r\n class=\"mrx-icon\"\r\n [class]=\"iconClass\"\r\n [class.icon-font-16]=\"size === 'small'\"\r\n [class.icon-font-24]=\"size === 'large'\"\r\n [class.filled]=\"item.filled && !item.double\"\r\n (mouseenter)=\"canActive && hoverElementHandle(item, 'single')\"\r\n (click)=\"canActive && changeValue(item.value, 'single')\"\r\n ></span>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n <ng-template #viewTemplate>\r\n <div class=\"mrx-rating\" [class]=\"getClasses\">\r\n <ng-container *ngFor=\"let item of elements; let idx = index; trackBy: trackByFn\">\r\n <div class=\"mrx-rating-item\" [class.disabled]=\"disabled || readonly\">\r\n <div *ngIf=\"double\" class=\"mrx-rating-item-double-wrapper\">\r\n <span\r\n class=\"mrx-icon\"\r\n [class]=\"iconClass\"\r\n [class.icon-font-16]=\"size === 'small'\"\r\n [class.icon-font-24]=\"size === 'large'\"\r\n [class.filled]=\"item.filled && item.double\"\r\n ></span>\r\n </div>\r\n\r\n <div class=\"mrx-rating-item-wrapper\">\r\n <span\r\n class=\"mrx-icon\"\r\n [class]=\"iconClass\"\r\n [class.icon-font-16]=\"size === 'small'\"\r\n [class.icon-font-24]=\"size === 'large'\"\r\n [class.filled]=\"item.filled && !item.double\"\r\n ></span>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-container [ngSwitch]=\"viewMode\">\r\n <span *ngSwitchCase=\"'text'\" [class]=\"getValueClasses\">{{ ratingText }}</span>\r\n <span *ngSwitchCase=\"'value'\" [class]=\"getValueClasses\">{{ toNumberFormatFunc(value) }}</span>\r\n <span *ngSwitchCase=\"'text-with-value'\" [class]=\"getValueClasses\">\r\n {{ ratingText }} ({{ toNumberFormatFunc(value) }})\r\n </span>\r\n </ng-container>\r\n</div>\r\n\r\n<mrx-error-message *ngIf=\"(!isValid || invalid) && isInvalidMessage\" [invalidMessage]=\"invalidMessage\">\r\n</mrx-error-message>\r\n", styles: [".mrx-rating{display:inline-flex}.mrx-rating-wrapper{display:flex;align-items:center;flex-wrap:wrap}.mrx-rating-wrapper-sm{grid-gap:var(--spacing-2)}.mrx-rating-wrapper-lg{grid-gap:var(--spacing-3)}.mrx-rating.mrx-rating-lg{grid-gap:8px}.mrx-rating.mrx-rating-sm{grid-gap:4px}.mrx-rating-value-sm{font-family:var(--body-sm-font-family);font-weight:var(--body-sm-font-weight);line-height:var(--body-sm-line-height);font-size:var(--body-sm-font-size)}.mrx-rating-value-lg{font-family:var(--body-md-font-family);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height);font-size:var(--body-md-font-size)}.mrx-rating.edit-state .mrx-rating-item{cursor:pointer}.mrx-rating.edit-state .mrx-rating-item:hover{transform:scale(1.1)}.mrx-rating .mrx-rating-item{display:flex;align-items:center;position:relative;transition:transform .2s}.mrx-rating .mrx-rating-item-wrapper,.mrx-rating .mrx-rating-item-double-wrapper{display:flex;align-items:center}.mrx-rating .mrx-rating-item-wrapper .mrx-icon,.mrx-rating .mrx-rating-item-double-wrapper .mrx-icon{color:var(--system-rating-default)}.mrx-rating .mrx-rating-item-wrapper .mrx-icon.filled,.mrx-rating .mrx-rating-item-double-wrapper .mrx-icon.filled{color:var(--system-rating-selected);opacity:1}.mrx-rating .mrx-rating-item-double-wrapper{position:absolute;top:0;left:0;width:50%;overflow:hidden}.mrx-rating .mrx-rating-item-double-wrapper .mrx-icon{opacity:0}\n"], components: [{ type: ErrorMessageComponent, selector: "mrx-error-message", inputs: ["invalidMessage", "customClasses"] }], directives: [{ type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1$1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i1$1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
10558
10562
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: RatingComponent, decorators: [{
|
|
10559
10563
|
type: Component,
|
|
10560
10564
|
args: [{ selector: 'mrx-rating', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
@@ -10563,7 +10567,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
10563
10567
|
useExisting: forwardRef(() => RatingComponent),
|
|
10564
10568
|
multi: true,
|
|
10565
10569
|
},
|
|
10566
|
-
], template: "<div class=\"mrx-rating-wrapper\" [class]=\"getWrapperClasses\">\r\n <div\r\n *ngIf=\"canActive; else viewTemplate\"\r\n class=\"mrx-rating edit-state\"\r\n [class]=\"getClasses\"\r\n (mouseleave)=\"resetElementHandle()\"\r\n >\r\n <ng-container *ngFor=\"let item of elements; let idx = index; trackBy: trackByFn\">\r\n <div class=\"mrx-rating-item\" [class.disabled]=\"disabled || readonly\">\r\n <div *ngIf=\"double\" class=\"mrx-rating-item-double-wrapper\">\r\n <span\r\n class=\"mrx-icon\"\r\n [class]=\"iconClass\"\r\n [class.icon-font-16]=\"size === 'small'\"\r\n [class.icon-font-24]=\"size === 'large'\"\r\n [class.filled]=\"item.filled && item.double\"\r\n (mouseenter)=\"canActive && hoverElementHandle(item, 'double')\"\r\n (click)=\"canActive && changeValue(item.value, 'double')\"\r\n ></span>\r\n </div>\r\n\r\n <div class=\"mrx-rating-item-wrapper\">\r\n <span\r\n class=\"mrx-icon\"\r\n [class]=\"iconClass\"\r\n [class.icon-font-16]=\"size === 'small'\"\r\n [class.icon-font-24]=\"size === 'large'\"\r\n [class.filled]=\"item.filled && !item.double\"\r\n (mouseenter)=\"canActive && hoverElementHandle(item, 'single')\"\r\n (click)=\"canActive && changeValue(item.value, 'single')\"\r\n ></span>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n <ng-template #viewTemplate>\r\n <div class=\"mrx-rating\" [class]=\"getClasses\">\r\n <ng-container *ngFor=\"let item of elements; let idx = index; trackBy: trackByFn\">\r\n <div class=\"mrx-rating-item\" [class.disabled]=\"disabled || readonly\">\r\n <div *ngIf=\"double\" class=\"mrx-rating-item-double-wrapper\">\r\n
|
|
10570
|
+
], template: "<div class=\"mrx-rating-wrapper\" [class]=\"getWrapperClasses\">\r\n <div\r\n *ngIf=\"canActive; else viewTemplate\"\r\n class=\"mrx-rating edit-state\"\r\n [class]=\"getClasses\"\r\n (mouseleave)=\"resetElementHandle()\"\r\n >\r\n <ng-container *ngFor=\"let item of elements; let idx = index; trackBy: trackByFn\">\r\n <div class=\"mrx-rating-item\" [class.disabled]=\"disabled || readonly\">\r\n <div *ngIf=\"double\" class=\"mrx-rating-item-double-wrapper\">\r\n <span\r\n class=\"mrx-icon\"\r\n [class]=\"iconClass\"\r\n [class.icon-font-16]=\"size === 'small'\"\r\n [class.icon-font-24]=\"size === 'large'\"\r\n [class.filled]=\"item.filled && item.double\"\r\n (mouseenter)=\"canActive && hoverElementHandle(item, 'double')\"\r\n (click)=\"canActive && changeValue(item.value, 'double')\"\r\n ></span>\r\n </div>\r\n\r\n <div class=\"mrx-rating-item-wrapper\">\r\n <span\r\n class=\"mrx-icon\"\r\n [class]=\"iconClass\"\r\n [class.icon-font-16]=\"size === 'small'\"\r\n [class.icon-font-24]=\"size === 'large'\"\r\n [class.filled]=\"item.filled && !item.double\"\r\n (mouseenter)=\"canActive && hoverElementHandle(item, 'single')\"\r\n (click)=\"canActive && changeValue(item.value, 'single')\"\r\n ></span>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n <ng-template #viewTemplate>\r\n <div class=\"mrx-rating\" [class]=\"getClasses\">\r\n <ng-container *ngFor=\"let item of elements; let idx = index; trackBy: trackByFn\">\r\n <div class=\"mrx-rating-item\" [class.disabled]=\"disabled || readonly\">\r\n <div *ngIf=\"double\" class=\"mrx-rating-item-double-wrapper\">\r\n <span\r\n class=\"mrx-icon\"\r\n [class]=\"iconClass\"\r\n [class.icon-font-16]=\"size === 'small'\"\r\n [class.icon-font-24]=\"size === 'large'\"\r\n [class.filled]=\"item.filled && item.double\"\r\n ></span>\r\n </div>\r\n\r\n <div class=\"mrx-rating-item-wrapper\">\r\n <span\r\n class=\"mrx-icon\"\r\n [class]=\"iconClass\"\r\n [class.icon-font-16]=\"size === 'small'\"\r\n [class.icon-font-24]=\"size === 'large'\"\r\n [class.filled]=\"item.filled && !item.double\"\r\n ></span>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-container [ngSwitch]=\"viewMode\">\r\n <span *ngSwitchCase=\"'text'\" [class]=\"getValueClasses\">{{ ratingText }}</span>\r\n <span *ngSwitchCase=\"'value'\" [class]=\"getValueClasses\">{{ toNumberFormatFunc(value) }}</span>\r\n <span *ngSwitchCase=\"'text-with-value'\" [class]=\"getValueClasses\">\r\n {{ ratingText }} ({{ toNumberFormatFunc(value) }})\r\n </span>\r\n </ng-container>\r\n</div>\r\n\r\n<mrx-error-message *ngIf=\"(!isValid || invalid) && isInvalidMessage\" [invalidMessage]=\"invalidMessage\">\r\n</mrx-error-message>\r\n", styles: [".mrx-rating{display:inline-flex}.mrx-rating-wrapper{display:flex;align-items:center;flex-wrap:wrap}.mrx-rating-wrapper-sm{grid-gap:var(--spacing-2)}.mrx-rating-wrapper-lg{grid-gap:var(--spacing-3)}.mrx-rating.mrx-rating-lg{grid-gap:8px}.mrx-rating.mrx-rating-sm{grid-gap:4px}.mrx-rating-value-sm{font-family:var(--body-sm-font-family);font-weight:var(--body-sm-font-weight);line-height:var(--body-sm-line-height);font-size:var(--body-sm-font-size)}.mrx-rating-value-lg{font-family:var(--body-md-font-family);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height);font-size:var(--body-md-font-size)}.mrx-rating.edit-state .mrx-rating-item{cursor:pointer}.mrx-rating.edit-state .mrx-rating-item:hover{transform:scale(1.1)}.mrx-rating .mrx-rating-item{display:flex;align-items:center;position:relative;transition:transform .2s}.mrx-rating .mrx-rating-item-wrapper,.mrx-rating .mrx-rating-item-double-wrapper{display:flex;align-items:center}.mrx-rating .mrx-rating-item-wrapper .mrx-icon,.mrx-rating .mrx-rating-item-double-wrapper .mrx-icon{color:var(--system-rating-default)}.mrx-rating .mrx-rating-item-wrapper .mrx-icon.filled,.mrx-rating .mrx-rating-item-double-wrapper .mrx-icon.filled{color:var(--system-rating-selected);opacity:1}.mrx-rating .mrx-rating-item-double-wrapper{position:absolute;top:0;left:0;width:50%;overflow:hidden}.mrx-rating .mrx-rating-item-double-wrapper .mrx-icon{opacity:0}\n"] }]
|
|
10567
10571
|
}], propDecorators: { ratingCount: [{
|
|
10568
10572
|
type: Input
|
|
10569
10573
|
}], size: [{
|