myrta-ui 13.0.36 → 13.0.37
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/components/form/select/select.component.mjs +2 -2
- package/esm2020/lib/components/gallery/components/gallery-item/gallery-item.component.mjs +7 -3
- package/esm2020/lib/components/gallery/gallery.component.mjs +9 -3
- package/fesm2015/myrta-ui.mjs +16 -6
- package/fesm2015/myrta-ui.mjs.map +1 -1
- package/fesm2020/myrta-ui.mjs +16 -6
- package/fesm2020/myrta-ui.mjs.map +1 -1
- package/lib/components/gallery/components/gallery-item/gallery-item.component.d.ts +3 -1
- package/lib/components/gallery/gallery.component.d.ts +3 -1
- package/package.json +1 -1
|
@@ -237,7 +237,7 @@ SelectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", versio
|
|
|
237
237
|
useExisting: forwardRef(() => SelectComponent),
|
|
238
238
|
multi: true,
|
|
239
239
|
},
|
|
240
|
-
], queries: [{ propertyName: "optionTemplate", first: true, predicate: ["optionTemplate"], descendants: true }, { propertyName: "labelTemplate", first: true, predicate: ["labelTemplate"], descendants: true }, { propertyName: "popupHeaderTemplate", first: true, predicate: ["popupHeaderTemplate"], descendants: true }, { propertyName: "popupFooterTemplate", first: true, predicate: ["popupFooterTemplate"], descendants: true }, { propertyName: "contentTemplate", first: true, predicate: ["contentTemplate"], descendants: true }], viewQueries: [{ propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true }], ngImport: i0, template: "<div\r\n [class.-disabled]=\"disabled\"\r\n [class.-readonly]=\"readonly\"\r\n [class.mrx-input-error]=\"invalid\"\r\n [class]=\"getClasses\"\r\n class=\"mrx-select\"\r\n>\r\n <div class=\"mrx-select__wrapper\">\r\n <ng-container [ngSwitch]=\"use\">\r\n <ng-container *ngSwitchCase=\"'default'\">\r\n <div\r\n class=\"mrx-select__input\"\r\n [mrxPopupTrigger]=\"dropdown\"\r\n [popupPosition]=\"popupPosition\"\r\n [scrollContainerRef]=\"scrollContainer\"\r\n [scrollStrategy]=\"scrollStrategy\"\r\n [isFullWidthDropdown]=\"isFullWidthDropdown\"\r\n >\r\n <ng-container *ngIf=\"getSelectedLabels.length\">\r\n <div class=\"mrx-select__input__values\" *ngIf=\"multiple\">\r\n <ng-container *ngIf=\"multiCollapseCount && getSelectedLabels.length >= multiCollapseCount; else multipleNotCollapse\">\r\n <div class=\"mrx-select__input__badge\">\r\n <p>\u0412\u044B\u0431\u0440\u0430\u043D\u043E: {{ getSelectedLabels.length }}</p>\r\n <span *ngIf=\"!disabled && !readonly\" class=\"mrx-icon icon-close icon-font-16\" (click)=\"onClear($event)\"></span>\r\n </div>\r\n </ng-container>\r\n <ng-template #multipleNotCollapse>\r\n <ng-container *ngFor=\"let item of getSelectedLabels; let first = first; let last = last\">\r\n <ng-container *ngIf=\"labelTemplate; else defaultLabelTpl\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"labelTemplate\"\r\n [ngTemplateOutletContext]=\"{item: item, first, last, clear: clearItem.bind(this)}\"\r\n ></ng-container>\r\n </ng-container>\r\n <ng-template #defaultLabelTpl>\r\n <ng-container\r\n [ngTemplateOutlet]=\"defaultLabelTemplate\"\r\n [ngTemplateOutletContext]=\"{item: item, first, last}\"\r\n ></ng-container>\r\n </ng-template>\r\n </ng-container>\r\n </ng-template>\r\n </div>\r\n\r\n <div class=\"mrx-select__input__value\" *ngIf=\"!multiple\">\r\n <ng-container *ngFor=\"let item of getSelectedLabels\">\r\n {{ bindLabel ? item.__origin[bindLabel] : item.__origin['label'] || item.__origin }}\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!getSelectedLabels.length\">\r\n <div class=\"mrx-select__input__placeholder\">{{ placeholder }}</div>\r\n </ng-container>\r\n\r\n <div class=\"mrx-select__input__controls\">\r\n <mrx-loader\r\n *ngIf=\"isLoading\"\r\n [size]=\"size === 'large' ? 'small' : 'extra-small'\"\r\n [color]=\"'brand'\"\r\n ></mrx-loader>\r\n\r\n <div\r\n *ngIf=\"getSelectedLabels.length && clearable\"\r\n class=\"mrx-icon icon-close mrx-select__input__controls--icon\"\r\n [class]=\"getIconSize\"\r\n (click)=\"onClear($event)\"\r\n ></div>\r\n\r\n <div\r\n class=\"mrx-icon icon-chevron-down mrx-select__input__controls--icon\"\r\n [class.opened]=\"isOpen\"\r\n [class]=\"getIconSize\"\r\n ></div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'link'\">\r\n <div\r\n class=\"mrx-select__input-link\"\r\n [mrxPopupTrigger]=\"dropdown\"\r\n [popupPosition]=\"popupPosition\"\r\n [isFullWidthDropdown]=\"isFullWidthDropdown\"\r\n >\r\n <div class=\"mrx-select__input-link__controls\">\r\n <p *ngIf=\"sortPlaceholder\">{{ sortPlaceholder }}</p>\r\n\r\n <span\r\n *ngIf=\"sortIcon\"\r\n class=\"mrx-icon {{sortIcon === 'asc' ? 'icon-sorting-up' : 'icon-sorting-down'}}\"\r\n [class]=\"getIconSize\"\r\n ></span>\r\n </div>\r\n\r\n <div class=\"mrx-select__input-link__controls\">\r\n <ng-container *ngIf=\"getSelectedLabels.length\">\r\n <div class=\"mrx-select__input-link__value\">\r\n <ng-container *ngFor=\"let item of getSelectedLabels\">\r\n {{ bindLabel ? item.__origin[bindLabel] : item.__origin['label'] || item.__origin }}\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n <div\r\n class=\"mrx-icon icon-chevron-down mrx-select__input__controls--icon\"\r\n [class.opened]=\"isOpen\"\r\n [class]=\"getIconSize\"\r\n ></div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <mrx-popup #dropdown [closeAfterClick]=\"closable\" (toggle)=\"togglePopup($event)\">\r\n <ng-container *ngIf=\"filteredItems.length\">\r\n <ng-container *ngFor=\"let item of filteredItems; let first = first; let last = last\">\r\n <mrx-popup-item [custom]=\"true\" [id]=\"item.__id\" (clicked)=\"onSelect(item)\">\r\n <ng-container *ngIf=\"optionTemplate\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"optionTemplate\"\r\n [ngTemplateOutletContext]=\"{item: item, first, last}\"\r\n ></ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!optionTemplate\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"defaultOptionTemplate\"\r\n [ngTemplateOutletContext]=\"{item: item, first, last}\"\r\n ></ng-container>\r\n </ng-container>\r\n </mrx-popup-item>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!filteredItems.length\">\r\n <mrx-popup-item [custom]=\"true\">\r\n <div class=\"mrx-select__dropdown__empty\">{{ emptyText }}</div>\r\n </mrx-popup-item>\r\n </ng-container>\r\n\r\n <ng-template #headerTemplate>\r\n <ng-container *ngIf=\"searchable\">\r\n <div class=\"mrx-select__dropdown__search\">\r\n <mrx-input-search\r\n [size]=\"'medium'\"\r\n [placeholder]=\"searchPlaceholder\"\r\n [(ngModel)]=\"searchValue\"\r\n ></mrx-input-search>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"contentTemplate\">\r\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"popupHeaderTemplate\">\r\n <ng-container [ngTemplateOutlet]=\"popupHeaderTemplate\"></ng-container>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <ng-template #footerTemplate>\r\n <ng-container *ngIf=\"!!addOption\">\r\n <div class=\"mrx-select__dropdown__extra-option\">\r\n <mrx-input-text\r\n class=\"flex-grow-1\"\r\n [size]=\"'medium'\"\r\n [placeholder]=\"extraOptionPlaceholder\"\r\n [(ngModel)]=\"model.label\"\r\n [maxlength]=\"300\"\r\n [invalid]=\"!!form.errors['label']\"\r\n [invalidMessage]=\"form.errors['label']\"\r\n (ngModelChange)=\"changeTextValueEmpty()\"\r\n ></mrx-input-text>\r\n\r\n <mrx-button\r\n [iconOnly]=\"true\"\r\n icon=\"<span class='mrx-icon icon-plus icon-font-24'></span>\"\r\n size=\"medium\"\r\n type=\"secondary\"\r\n (click)=\"onAddNewCustomOption()\"\r\n ></mrx-button>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"popupFooterTemplate\">\r\n <ng-container [ngTemplateOutlet]=\"popupFooterTemplate\"></ng-container>\r\n </ng-container>\r\n </ng-template>\r\n </mrx-popup>\r\n </div>\r\n\r\n <ng-container *ngIf=\"invalid && isInvalidMessage\">\r\n <mrx-error-message [invalidMessage]=\"invalidMessage\"></mrx-error-message>\r\n </ng-container>\r\n\r\n <mrx-save-state [fields]=\"fields\" [id]=\"uuid\" [type]=\"'input'\"></mrx-save-state>\r\n</div>\r\n\r\n<ng-template #defaultLabelTemplate let-item=\"item\">\r\n <ng-container *ngIf=\"asLabel(item) as label\">\r\n <div class=\"mrx-select__input__badge\">\r\n <p>{{ bindLabel ? label.__origin[bindLabel] : label.__origin['label'] || label.__origin }}</p>\r\n <span class=\"mrx-icon icon-close icon-font-16\" (click)=\"onUnselect(label)\"></span>\r\n </div>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #defaultOptionTemplate let-item=\"item\">\r\n <ng-container *ngIf=\"asOption(item) as option\">\r\n <div class=\"mrx-select__dropdown__item\">\r\n <div class=\"mrx-select__dropdown__item--content\">\r\n <ng-container *ngIf=\"bindIcon && option.__origin[bindIcon]\">\r\n <span class=\"mrx-icon icon-font-24\" [class]=\"option[bindIcon]\"></span>\r\n </ng-container>\r\n\r\n <p>{{ bindLabel ? option.__origin[bindLabel] : option.__origin['label'] || option.__origin }}</p>\r\n </div>\r\n\r\n <ng-container *ngIf=\"option.__selected\">\r\n <span class=\"mrx-icon icon-check icon-font-24\"></span>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n</ng-template>\r\n", styles: [".mrx-select{position:relative}.mrx-select__input{border:var(--border-width-default) solid var(--neutral-bg-stroke-default);border-radius:var(--border-radius-1);width:100%;outline:none;transition:outline-width .2s,border .2s;cursor:pointer;display:flex;align-items:flex-start;justify-content:space-between;gap:8px;height:100%;max-height:200px;overflow-y:auto}.mrx-select__input:focus,.mrx-select__input:active{outline:var(--neutral-bg-island-default) solid var(--border-width-focused)}.mrx-select__input:hover{border:var(--border-width-default) solid var(--neutral-bg-stroke-hover)}.mrx-select__input__box{flex-grow:1}.mrx-select__input__controls{display:flex;align-items:center;gap:8px;padding:5px 0}.mrx-select__input__controls--icon{position:relative}.mrx-select__input__controls--icon:after{content:\"\";position:absolute;width:100%;height:100%;border-radius:var(--border-raius-1, 4px);z-index:-1;transition:.2s}.mrx-select__input__controls--icon.opened{transform:rotate(180deg)}.mrx-select__input__controls--icon.opened:after{background-color:var(--brand-bg-tertiary-hover, #EDF5FF);transform:rotate(-180deg)}.mrx-select__input-link{border-radius:var(--border-radius-1);background:var(--brand-bg-tertiary-default, #FFF);outline:none;transition:outline-width .2s,border .2s;cursor:pointer;display:flex;flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:8px;width:fit-content}.mrx-select__input-link__box{flex-grow:1}.mrx-select__input-link__controls{display:flex;align-items:center;gap:8px}.mrx-select__input-link__controls--icon:after{content:\"\";position:absolute;width:100%;height:100%;border-radius:var(--border-raius-1, 4px);z-index:-1;transition:.2s}.mrx-select__input-link__controls--icon.opened{transform:rotate(180deg)}.mrx-select__input-link__controls--icon.opened:after{background-color:var(--brand-bg-tertiary-hover, #EDF5FF);transform:rotate(-180deg)}.mrx-select.mrx-select-lg .mrx-select__input,.mrx-select.mrx-select-lg .mrx-select__input-link{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-select.mrx-select-lg .mrx-select__input__values,.mrx-select.mrx-select-lg .mrx-select__input-link__values{min-height:32px}.mrx-select.mrx-select-lg .mrx-select__input__badge,.mrx-select.mrx-select-lg .mrx-select__input-link__badge{padding:6px 8px 6px 12px}.mrx-select.mrx-select-lg .mrx-select__input__badge p,.mrx-select.mrx-select-lg .mrx-select__input-link__badge p{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-select.mrx-select-lg .mrx-select__input{padding:calc(var(--spacing-2) - var(--border-width-default)) var(--spacing-3) calc(var(--spacing-2) - var(--border-width-default)) var(--spacing-2)}.mrx-select.mrx-select-lg .mrx-select__input__placeholder,.mrx-select.mrx-select-lg .mrx-select__input__value{padding:6px 8px}.mrx-select.mrx-select-lg .mrx-select__input__controls--icon{font-size:22px}.mrx-select.mrx-select-lg .mrx-select__input-link{padding:0}.mrx-select.mrx-select-lg .mrx-select__input-link__placeholder,.mrx-select.mrx-select-lg .mrx-select__input-link__value{padding:2px 0}.mrx-select.mrx-select-md .mrx-select__input,.mrx-select.mrx-select-md .mrx-select__input-link{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-select.mrx-select-md .mrx-select__input__values,.mrx-select.mrx-select-md .mrx-select__input-link__values{min-height:24px}.mrx-select.mrx-select-md .mrx-select__input__badge,.mrx-select.mrx-select-md .mrx-select__input-link__badge{padding:4px 4px 4px 8px}.mrx-select.mrx-select-md .mrx-select__input__badge p,.mrx-select.mrx-select-md .mrx-select__input-link__badge p{font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:var(--body-sm-line-height)}.mrx-select.mrx-select-md .mrx-select__input{padding:calc(var(--spacing-2) - var(--border-width-default)) var(--spacing-4) calc(var(--spacing-2) - var(--border-width-default)) var(--spacing-2)}.mrx-select.mrx-select-md .mrx-select__input__placeholder,.mrx-select.mrx-select-md .mrx-select__input__value{padding:2px 8px}.mrx-select.mrx-select-md .mrx-select__input-link,.mrx-select.mrx-select-md .mrx-select__input-link__placeholder,.mrx-select.mrx-select-md .mrx-select__input-link__value{padding:0}.mrx-select__input__value{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-select__input__values{display:flex;align-items:center;justify-content:flex-start;flex-wrap:wrap;gap:8px}.mrx-select__input__badge{display:flex;align-items:center;gap:4px;border-radius:4px;background-color:var(--brand-bg-secondary-default, #EDF5FF)}.mrx-select__input__badge .icon-close{transform:scale(1);transition:transform .2s}.mrx-select__input__badge .icon-close:hover{transform:scale(1.1)}.mrx-select__input__placeholder{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height);color:var(--neutral-text-tertiary, #71767E)}.mrx-select__dropdown__item{padding:8px 8px 8px 16px;background-color:transparent;transition:background-color .3s;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:8px}.mrx-select__dropdown__item:hover{background-color:var(--brand-bg-tertiary-hover, #EDF5FF)}.mrx-select__dropdown__item--content{display:flex;align-items:center;justify-content:flex-start;gap:8px;flex-grow:1}.mrx-select__dropdown__item--content p{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height);padding-top:2px;padding-bottom:2px}.mrx-select__dropdown__search{padding:8px;border-bottom:1.794px solid var(--neutral-bg-divider, #DBDFE5);background:var(--brand-bg-tertiary-default, #FFF)}.mrx-select__dropdown__extra-option{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:8px;border-top:1.794px solid var(--neutral-bg-divider, #DBDFE5);border-top:var(--border-width-default) solid var(--neutral-bg-stroke-default)}.mrx-select__dropdown__empty{padding:8px 16px;font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-select.mrx-input-error .mrx-select__input{border-color:var(--system-bg-controls-negative-default)}.mrx-select.mrx-input-error .mrx-select__input:hover{border:var(--border-width-default) solid var(--system-bg-controls-negative-default)}.mrx-select.mrx-input-checked-error .mrx-select__input{border-color:var(--system-bg-controls-negative-default);background-color:var(--system-bg-negative-secondary)}.mrx-select.mrx-input-checked-error .mrx-select__input:hover{border:var(--border-width-default) solid var(--system-bg-controls-negative-default)}.mrx-select.mrx-input-checked-success .mrx-select__input{background-color:var(--system-bg-positive-secondary);border-color:var(--system-bg-controls-positive-default)}.mrx-select.mrx-input-checked-success .mrx-select__input:hover{border:var(--border-width-default) solid var(--system-bg-controls-positive-default)}.mrx-select.-disabled .mrx-select__input{background-color:var(--neutral-bg-disabled, #EEF0F4);-webkit-text-fill-color:var(--neutral-text-tertiary, #71767E);color:var(--neutral-text-tertiary, #71767E);pointer-events:none}.mrx-select.-readonly .mrx-select__input{background-color:var(--neutral-bg-disabled, #EEF0F4);-webkit-text-fill-color:var(--neutral-text-primary, #262626);color:var(--neutral-text-primary, #262626);pointer-events:none}.mrx-select.-readonly .mrx-select__input__placeholder{-webkit-text-fill-color:var(--neutral-text-tertiary, #71767E);color:var(--neutral-text-tertiary, #71767E)}\n"], components: [{ type: i1.LoaderComponent, selector: "mrx-loader", inputs: ["size", "color", "customClasses"] }, { type: i2.PopupComponent, selector: "mrx-popup", inputs: ["closeAfterClick", "minWidth"], outputs: ["toggle", "_toggleInner", "_updateInner"] }, { type: i3.PopupItemComponent, selector: "mrx-popup-item", inputs: ["custom", "id", "disabled"], outputs: ["clicked"] }, { type: i4.InputSearchComponent, selector: "mrx-input-search", inputs: ["fields", "disabled", "required", "readonly", "maxlength", "minlength", "placeholder", "customClasses", "mask", "size", "invalid", "invalidMessage", "checkInvalid", "restrictInput"], outputs: ["changed", "modelChange", "blurred", "cleared", "searched"] }, { type: i5.InputTextComponent, selector: "mrx-input-text", inputs: ["fields", "disabled", "allowPattern", "required", "readonly", "maxlength", "minlength", "placeholder", "customClasses", "size", "isTooltipValue", "icon", "iconColor", "invalid", "invalidMessage", "checkInvalid", "restrictInput", "mask", "maskPrefix", "showMaskTyped", "maskDropSpecialCharacters"], outputs: ["changed", "blurred", "modelChange"] }, { type: i6.ButtonComponent, selector: "mrx-button", inputs: ["size", "type", "color", "iconPosition", "active", "disabled", "isLoading", "iconOnly", "customClasses", "label", "icon", "iconClass", "buttonType", "href", "target", "routerLink", "queryParams"], outputs: ["mrxClick"] }, { type: i7.ErrorMessageComponent, selector: "mrx-error-message", inputs: ["invalid", "invalidMessage", "customClasses"] }, { type: i8.SaveStateComponent, selector: "mrx-save-state", inputs: ["type", "fields", "id"] }], directives: [{ type: i9.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i9.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i10.PopupTriggerDirective, selector: "[mrxPopupTrigger]", inputs: ["mrxPopupTrigger", "popupPosition", "isFullWidthDropdown", "minWidthDropdown", "maxWidthDropdown", "scrollContainerRef", "scrollStrategy"] }, { type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i9.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i11.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i11.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i11.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }] });
|
|
240
|
+
], queries: [{ propertyName: "optionTemplate", first: true, predicate: ["optionTemplate"], descendants: true }, { propertyName: "labelTemplate", first: true, predicate: ["labelTemplate"], descendants: true }, { propertyName: "popupHeaderTemplate", first: true, predicate: ["popupHeaderTemplate"], descendants: true }, { propertyName: "popupFooterTemplate", first: true, predicate: ["popupFooterTemplate"], descendants: true }, { propertyName: "contentTemplate", first: true, predicate: ["contentTemplate"], descendants: true }], viewQueries: [{ propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true }], ngImport: i0, template: "<div\r\n [class.-disabled]=\"disabled\"\r\n [class.-readonly]=\"readonly\"\r\n [class.mrx-input-error]=\"invalid\"\r\n [class]=\"getClasses\"\r\n class=\"mrx-select\"\r\n>\r\n <div class=\"mrx-select__wrapper\">\r\n <ng-container [ngSwitch]=\"use\">\r\n <ng-container *ngSwitchCase=\"'default'\">\r\n <div\r\n class=\"mrx-select__input\"\r\n [mrxPopupTrigger]=\"dropdown\"\r\n [popupPosition]=\"popupPosition\"\r\n [scrollContainerRef]=\"scrollContainer\"\r\n [scrollStrategy]=\"scrollStrategy\"\r\n [isFullWidthDropdown]=\"isFullWidthDropdown\"\r\n >\r\n <ng-container *ngIf=\"getSelectedLabels.length\">\r\n <div class=\"mrx-select__input__values\" *ngIf=\"multiple\">\r\n <ng-container *ngIf=\"multiCollapseCount && getSelectedLabels.length >= multiCollapseCount; else multipleNotCollapse\">\r\n <div class=\"mrx-select__input__badge\">\r\n <p>\u0412\u044B\u0431\u0440\u0430\u043D\u043E: {{ getSelectedLabels.length }}</p>\r\n <span *ngIf=\"!disabled && !readonly\" class=\"mrx-icon icon-close icon-font-16\" (click)=\"onClear($event)\"></span>\r\n </div>\r\n </ng-container>\r\n <ng-template #multipleNotCollapse>\r\n <ng-container *ngFor=\"let item of getSelectedLabels; let first = first; let last = last\">\r\n <ng-container *ngIf=\"labelTemplate; else defaultLabelTpl\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"labelTemplate\"\r\n [ngTemplateOutletContext]=\"{item: item, first, last, clear: clearItem.bind(this)}\"\r\n ></ng-container>\r\n </ng-container>\r\n <ng-template #defaultLabelTpl>\r\n <ng-container\r\n [ngTemplateOutlet]=\"defaultLabelTemplate\"\r\n [ngTemplateOutletContext]=\"{item: item, first, last}\"\r\n ></ng-container>\r\n </ng-template>\r\n </ng-container>\r\n </ng-template>\r\n </div>\r\n\r\n <div class=\"mrx-select__input__value\" *ngIf=\"!multiple\">\r\n <ng-container *ngFor=\"let item of getSelectedLabels\">\r\n {{ bindLabel ? item.__origin[bindLabel] : item.__origin['label'] || item.__origin }}\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!getSelectedLabels.length\">\r\n <div class=\"mrx-select__input__placeholder\">{{ placeholder }}</div>\r\n </ng-container>\r\n\r\n <div class=\"mrx-select__input__controls\">\r\n <mrx-loader\r\n *ngIf=\"isLoading\"\r\n [size]=\"size === 'large' ? 'small' : 'extra-small'\"\r\n [color]=\"'brand'\"\r\n ></mrx-loader>\r\n\r\n <div\r\n *ngIf=\"getSelectedLabels.length && clearable\"\r\n class=\"mrx-icon icon-close mrx-select__input__controls--icon\"\r\n [class]=\"getIconSize\"\r\n (click)=\"onClear($event)\"\r\n ></div>\r\n\r\n <div\r\n class=\"mrx-icon icon-chevron-down mrx-select__input__controls--icon\"\r\n [class.opened]=\"isOpen\"\r\n [class]=\"getIconSize\"\r\n ></div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'link'\">\r\n <div\r\n class=\"mrx-select__input-link\"\r\n [mrxPopupTrigger]=\"dropdown\"\r\n [popupPosition]=\"popupPosition\"\r\n [isFullWidthDropdown]=\"isFullWidthDropdown\"\r\n >\r\n <div class=\"mrx-select__input-link__controls\">\r\n <p *ngIf=\"sortPlaceholder\">{{ sortPlaceholder }}</p>\r\n\r\n <span\r\n *ngIf=\"sortIcon\"\r\n class=\"mrx-icon {{sortIcon === 'asc' ? 'icon-sorting-up' : 'icon-sorting-down'}}\"\r\n [class]=\"getIconSize\"\r\n ></span>\r\n </div>\r\n\r\n <div class=\"mrx-select__input-link__controls\">\r\n <ng-container *ngIf=\"getSelectedLabels.length\">\r\n <div class=\"mrx-select__input-link__value\">\r\n <ng-container *ngFor=\"let item of getSelectedLabels\">\r\n {{ bindLabel ? item.__origin[bindLabel] : item.__origin['label'] || item.__origin }}\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n <div\r\n class=\"mrx-icon icon-chevron-down mrx-select__input__controls--icon\"\r\n [class.opened]=\"isOpen\"\r\n [class]=\"getIconSize\"\r\n ></div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <mrx-popup #dropdown [closeAfterClick]=\"closable\" (toggle)=\"togglePopup($event)\">\r\n <ng-container *ngIf=\"filteredItems.length\">\r\n <ng-container *ngFor=\"let item of filteredItems; let first = first; let last = last\">\r\n <mrx-popup-item [custom]=\"true\" [id]=\"item.__id\" (clicked)=\"onSelect(item)\">\r\n <ng-container *ngIf=\"optionTemplate\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"optionTemplate\"\r\n [ngTemplateOutletContext]=\"{item: item, first, last}\"\r\n ></ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!optionTemplate\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"defaultOptionTemplate\"\r\n [ngTemplateOutletContext]=\"{item: item, first, last}\"\r\n ></ng-container>\r\n </ng-container>\r\n </mrx-popup-item>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!filteredItems.length\">\r\n <mrx-popup-item [custom]=\"true\">\r\n <div class=\"mrx-select__dropdown__empty\">{{ emptyText }}</div>\r\n </mrx-popup-item>\r\n </ng-container>\r\n\r\n <ng-template #headerTemplate>\r\n <ng-container *ngIf=\"searchable\">\r\n <div class=\"mrx-select__dropdown__search\">\r\n <mrx-input-search\r\n [size]=\"'medium'\"\r\n [placeholder]=\"searchPlaceholder\"\r\n [(ngModel)]=\"searchValue\"\r\n ></mrx-input-search>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"contentTemplate\">\r\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"popupHeaderTemplate\">\r\n <ng-container [ngTemplateOutlet]=\"popupHeaderTemplate\"></ng-container>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <ng-template #footerTemplate>\r\n <ng-container *ngIf=\"!!addOption\">\r\n <div class=\"mrx-select__dropdown__extra-option\">\r\n <mrx-input-text\r\n class=\"flex-grow-1\"\r\n [size]=\"'medium'\"\r\n [placeholder]=\"extraOptionPlaceholder\"\r\n [(ngModel)]=\"model.label\"\r\n [maxlength]=\"300\"\r\n [invalid]=\"!!form.errors['label']\"\r\n [invalidMessage]=\"form.errors['label']\"\r\n (ngModelChange)=\"changeTextValueEmpty()\"\r\n ></mrx-input-text>\r\n\r\n <mrx-button\r\n [iconOnly]=\"true\"\r\n icon=\"<span class='mrx-icon icon-plus icon-font-24'></span>\"\r\n size=\"medium\"\r\n type=\"secondary\"\r\n (click)=\"onAddNewCustomOption()\"\r\n ></mrx-button>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"popupFooterTemplate\">\r\n <ng-container [ngTemplateOutlet]=\"popupFooterTemplate\"></ng-container>\r\n </ng-container>\r\n </ng-template>\r\n </mrx-popup>\r\n </div>\r\n\r\n <ng-container *ngIf=\"invalid && isInvalidMessage\">\r\n <mrx-error-message [invalidMessage]=\"invalidMessage\"></mrx-error-message>\r\n </ng-container>\r\n\r\n <mrx-save-state [fields]=\"fields\" [id]=\"uuid\" [type]=\"'input'\"></mrx-save-state>\r\n</div>\r\n\r\n<ng-template #defaultLabelTemplate let-item=\"item\">\r\n <ng-container *ngIf=\"asLabel(item) as label\">\r\n <div class=\"mrx-select__input__badge\">\r\n <p>{{ bindLabel ? label.__origin[bindLabel] : label.__origin['label'] || label.__origin }}</p>\r\n <span class=\"mrx-icon icon-close icon-font-16\" (click)=\"onUnselect(label)\"></span>\r\n </div>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #defaultOptionTemplate let-item=\"item\">\r\n <ng-container *ngIf=\"asOption(item) as option\">\r\n <div class=\"mrx-select__dropdown__item\">\r\n <div class=\"mrx-select__dropdown__item--content\">\r\n <ng-container *ngIf=\"bindIcon && option.__origin[bindIcon]\">\r\n <span class=\"mrx-icon icon-font-24\" [class]=\"option[bindIcon]\"></span>\r\n </ng-container>\r\n\r\n <p>{{ bindLabel ? option.__origin[bindLabel] : option.__origin['label'] || option.__origin }}</p>\r\n </div>\r\n\r\n <ng-container *ngIf=\"option.__selected\">\r\n <span class=\"mrx-icon icon-check icon-font-24\"></span>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n</ng-template>\r\n", styles: [".mrx-select{position:relative}.mrx-select__input{border:var(--border-width-default) solid var(--neutral-bg-stroke-default);border-radius:var(--border-radius-1);width:100%;outline:none;transition:outline-width .2s,border .2s;cursor:pointer;display:flex;align-items:flex-start;justify-content:space-between;gap:8px;height:100%;max-height:200px;overflow-y:auto}.mrx-select__input:focus,.mrx-select__input:active{outline:var(--neutral-bg-island-default) solid var(--border-width-focused)}.mrx-select__input:hover{border:var(--border-width-default) solid var(--neutral-bg-stroke-hover)}.mrx-select__input__box{flex-grow:1}.mrx-select__input__controls{display:flex;align-items:center;gap:8px;padding:5px 0}.mrx-select__input__controls--icon{position:relative}.mrx-select__input__controls--icon:after{content:\"\";position:absolute;width:100%;height:100%;border-radius:var(--border-raius-1, 4px);z-index:-1;transition:.2s}.mrx-select__input__controls--icon.opened{transform:rotate(180deg)}.mrx-select__input__controls--icon.opened:after{background-color:var(--brand-bg-tertiary-hover, #EDF5FF);transform:rotate(-180deg)}.mrx-select__input-link{border-radius:var(--border-radius-1);background:var(--brand-bg-tertiary-default, #FFF);outline:none;transition:outline-width .2s,border .2s;cursor:pointer;display:flex;flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:8px;width:-moz-fit-content;width:fit-content}.mrx-select__input-link__box{flex-grow:1}.mrx-select__input-link__controls{display:flex;align-items:center;gap:8px}.mrx-select__input-link__controls--icon:after{content:\"\";position:absolute;width:100%;height:100%;border-radius:var(--border-raius-1, 4px);z-index:-1;transition:.2s}.mrx-select__input-link__controls--icon.opened{transform:rotate(180deg)}.mrx-select__input-link__controls--icon.opened:after{background-color:var(--brand-bg-tertiary-hover, #EDF5FF);transform:rotate(-180deg)}.mrx-select.mrx-select-lg .mrx-select__input,.mrx-select.mrx-select-lg .mrx-select__input-link{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-select.mrx-select-lg .mrx-select__input__values,.mrx-select.mrx-select-lg .mrx-select__input-link__values{min-height:32px}.mrx-select.mrx-select-lg .mrx-select__input__badge,.mrx-select.mrx-select-lg .mrx-select__input-link__badge{padding:6px 8px 6px 12px}.mrx-select.mrx-select-lg .mrx-select__input__badge p,.mrx-select.mrx-select-lg .mrx-select__input-link__badge p{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-select.mrx-select-lg .mrx-select__input{padding:calc(var(--spacing-2) - var(--border-width-default)) var(--spacing-3) calc(var(--spacing-2) - var(--border-width-default)) var(--spacing-2)}.mrx-select.mrx-select-lg .mrx-select__input__placeholder,.mrx-select.mrx-select-lg .mrx-select__input__value{padding:6px 8px}.mrx-select.mrx-select-lg .mrx-select__input__controls--icon{font-size:22px}.mrx-select.mrx-select-lg .mrx-select__input-link{padding:0}.mrx-select.mrx-select-lg .mrx-select__input-link__placeholder,.mrx-select.mrx-select-lg .mrx-select__input-link__value{padding:2px 0}.mrx-select.mrx-select-md .mrx-select__input,.mrx-select.mrx-select-md .mrx-select__input-link{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-select.mrx-select-md .mrx-select__input__values,.mrx-select.mrx-select-md .mrx-select__input-link__values{min-height:24px}.mrx-select.mrx-select-md .mrx-select__input__badge,.mrx-select.mrx-select-md .mrx-select__input-link__badge{padding:4px 4px 4px 8px}.mrx-select.mrx-select-md .mrx-select__input__badge p,.mrx-select.mrx-select-md .mrx-select__input-link__badge p{font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:var(--body-sm-line-height)}.mrx-select.mrx-select-md .mrx-select__input{padding:calc(var(--spacing-2) - var(--border-width-default)) var(--spacing-4) calc(var(--spacing-2) - var(--border-width-default)) var(--spacing-2)}.mrx-select.mrx-select-md .mrx-select__input__placeholder,.mrx-select.mrx-select-md .mrx-select__input__value{padding:2px 8px}.mrx-select.mrx-select-md .mrx-select__input-link,.mrx-select.mrx-select-md .mrx-select__input-link__placeholder,.mrx-select.mrx-select-md .mrx-select__input-link__value{padding:0}.mrx-select__input__value{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-select__input__values{display:flex;align-items:center;justify-content:flex-start;flex-wrap:wrap;gap:8px}.mrx-select__input__badge{display:flex;align-items:center;gap:4px;border-radius:4px;background-color:var(--brand-bg-secondary-default, #EDF5FF)}.mrx-select__input__badge .icon-close{transform:scale(1);transition:transform .2s}.mrx-select__input__badge .icon-close:hover{transform:scale(1.1)}.mrx-select__input__placeholder{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height);color:var(--neutral-text-tertiary, #71767E)}.mrx-select__dropdown__item{padding:8px 8px 8px 16px;background-color:transparent;transition:background-color .3s;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:8px}.mrx-select__dropdown__item:hover{background-color:var(--brand-bg-tertiary-hover, #EDF5FF)}.mrx-select__dropdown__item--content{display:flex;align-items:center;justify-content:flex-start;gap:8px;flex-grow:1}.mrx-select__dropdown__item--content p{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height);padding-top:2px;padding-bottom:2px}.mrx-select__dropdown__search{padding:8px;border-bottom:1.794px solid var(--neutral-bg-divider, #DBDFE5);background:var(--brand-bg-tertiary-default, #FFF)}.mrx-select__dropdown__extra-option{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:8px;border-top:1.794px solid var(--neutral-bg-divider, #DBDFE5);border-top:var(--border-width-default) solid var(--neutral-bg-stroke-default)}.mrx-select__dropdown__empty{padding:8px 16px;font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-select.mrx-input-error .mrx-select__input{border-color:var(--system-bg-controls-negative-default)}.mrx-select.mrx-input-error .mrx-select__input:hover{border:var(--border-width-default) solid var(--system-bg-controls-negative-default)}.mrx-select.mrx-input-checked-error .mrx-select__input{border-color:var(--system-bg-controls-negative-default);background-color:var(--system-bg-negative-secondary)}.mrx-select.mrx-input-checked-error .mrx-select__input:hover{border:var(--border-width-default) solid var(--system-bg-controls-negative-default)}.mrx-select.mrx-input-checked-success .mrx-select__input{background-color:var(--system-bg-positive-secondary);border-color:var(--system-bg-controls-positive-default)}.mrx-select.mrx-input-checked-success .mrx-select__input:hover{border:var(--border-width-default) solid var(--system-bg-controls-positive-default)}.mrx-select.-disabled .mrx-select__input{background-color:var(--neutral-bg-disabled, #EEF0F4);-webkit-text-fill-color:var(--neutral-text-tertiary, #71767E);color:var(--neutral-text-tertiary, #71767E);pointer-events:none}.mrx-select.-readonly .mrx-select__input{background-color:var(--neutral-bg-disabled, #EEF0F4);-webkit-text-fill-color:var(--neutral-text-primary, #262626);color:var(--neutral-text-primary, #262626);pointer-events:none}.mrx-select.-readonly .mrx-select__input__placeholder{-webkit-text-fill-color:var(--neutral-text-tertiary, #71767E);color:var(--neutral-text-tertiary, #71767E)}\n"], components: [{ type: i1.LoaderComponent, selector: "mrx-loader", inputs: ["size", "color", "customClasses"] }, { type: i2.PopupComponent, selector: "mrx-popup", inputs: ["closeAfterClick", "minWidth"], outputs: ["toggle", "_toggleInner", "_updateInner"] }, { type: i3.PopupItemComponent, selector: "mrx-popup-item", inputs: ["custom", "id", "disabled"], outputs: ["clicked"] }, { type: i4.InputSearchComponent, selector: "mrx-input-search", inputs: ["fields", "disabled", "required", "readonly", "maxlength", "minlength", "placeholder", "customClasses", "mask", "size", "invalid", "invalidMessage", "checkInvalid", "restrictInput"], outputs: ["changed", "modelChange", "blurred", "cleared", "searched"] }, { type: i5.InputTextComponent, selector: "mrx-input-text", inputs: ["fields", "disabled", "allowPattern", "required", "readonly", "maxlength", "minlength", "placeholder", "customClasses", "size", "isTooltipValue", "icon", "iconColor", "invalid", "invalidMessage", "checkInvalid", "restrictInput", "mask", "maskPrefix", "showMaskTyped", "maskDropSpecialCharacters"], outputs: ["changed", "blurred", "modelChange"] }, { type: i6.ButtonComponent, selector: "mrx-button", inputs: ["size", "type", "color", "iconPosition", "active", "disabled", "isLoading", "iconOnly", "customClasses", "label", "icon", "iconClass", "buttonType", "href", "target", "routerLink", "queryParams"], outputs: ["mrxClick"] }, { type: i7.ErrorMessageComponent, selector: "mrx-error-message", inputs: ["invalid", "invalidMessage", "customClasses"] }, { type: i8.SaveStateComponent, selector: "mrx-save-state", inputs: ["type", "fields", "id"] }], directives: [{ type: i9.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i9.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i10.PopupTriggerDirective, selector: "[mrxPopupTrigger]", inputs: ["mrxPopupTrigger", "popupPosition", "isFullWidthDropdown", "minWidthDropdown", "maxWidthDropdown", "scrollContainerRef", "scrollStrategy"] }, { type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i9.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i11.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i11.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i11.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }] });
|
|
241
241
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: SelectComponent, decorators: [{
|
|
242
242
|
type: Component,
|
|
243
243
|
args: [{ selector: 'mrx-select', providers: [
|
|
@@ -246,7 +246,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
246
246
|
useExisting: forwardRef(() => SelectComponent),
|
|
247
247
|
multi: true,
|
|
248
248
|
},
|
|
249
|
-
], template: "<div\r\n [class.-disabled]=\"disabled\"\r\n [class.-readonly]=\"readonly\"\r\n [class.mrx-input-error]=\"invalid\"\r\n [class]=\"getClasses\"\r\n class=\"mrx-select\"\r\n>\r\n <div class=\"mrx-select__wrapper\">\r\n <ng-container [ngSwitch]=\"use\">\r\n <ng-container *ngSwitchCase=\"'default'\">\r\n <div\r\n class=\"mrx-select__input\"\r\n [mrxPopupTrigger]=\"dropdown\"\r\n [popupPosition]=\"popupPosition\"\r\n [scrollContainerRef]=\"scrollContainer\"\r\n [scrollStrategy]=\"scrollStrategy\"\r\n [isFullWidthDropdown]=\"isFullWidthDropdown\"\r\n >\r\n <ng-container *ngIf=\"getSelectedLabels.length\">\r\n <div class=\"mrx-select__input__values\" *ngIf=\"multiple\">\r\n <ng-container *ngIf=\"multiCollapseCount && getSelectedLabels.length >= multiCollapseCount; else multipleNotCollapse\">\r\n <div class=\"mrx-select__input__badge\">\r\n <p>\u0412\u044B\u0431\u0440\u0430\u043D\u043E: {{ getSelectedLabels.length }}</p>\r\n <span *ngIf=\"!disabled && !readonly\" class=\"mrx-icon icon-close icon-font-16\" (click)=\"onClear($event)\"></span>\r\n </div>\r\n </ng-container>\r\n <ng-template #multipleNotCollapse>\r\n <ng-container *ngFor=\"let item of getSelectedLabels; let first = first; let last = last\">\r\n <ng-container *ngIf=\"labelTemplate; else defaultLabelTpl\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"labelTemplate\"\r\n [ngTemplateOutletContext]=\"{item: item, first, last, clear: clearItem.bind(this)}\"\r\n ></ng-container>\r\n </ng-container>\r\n <ng-template #defaultLabelTpl>\r\n <ng-container\r\n [ngTemplateOutlet]=\"defaultLabelTemplate\"\r\n [ngTemplateOutletContext]=\"{item: item, first, last}\"\r\n ></ng-container>\r\n </ng-template>\r\n </ng-container>\r\n </ng-template>\r\n </div>\r\n\r\n <div class=\"mrx-select__input__value\" *ngIf=\"!multiple\">\r\n <ng-container *ngFor=\"let item of getSelectedLabels\">\r\n {{ bindLabel ? item.__origin[bindLabel] : item.__origin['label'] || item.__origin }}\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!getSelectedLabels.length\">\r\n <div class=\"mrx-select__input__placeholder\">{{ placeholder }}</div>\r\n </ng-container>\r\n\r\n <div class=\"mrx-select__input__controls\">\r\n <mrx-loader\r\n *ngIf=\"isLoading\"\r\n [size]=\"size === 'large' ? 'small' : 'extra-small'\"\r\n [color]=\"'brand'\"\r\n ></mrx-loader>\r\n\r\n <div\r\n *ngIf=\"getSelectedLabels.length && clearable\"\r\n class=\"mrx-icon icon-close mrx-select__input__controls--icon\"\r\n [class]=\"getIconSize\"\r\n (click)=\"onClear($event)\"\r\n ></div>\r\n\r\n <div\r\n class=\"mrx-icon icon-chevron-down mrx-select__input__controls--icon\"\r\n [class.opened]=\"isOpen\"\r\n [class]=\"getIconSize\"\r\n ></div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'link'\">\r\n <div\r\n class=\"mrx-select__input-link\"\r\n [mrxPopupTrigger]=\"dropdown\"\r\n [popupPosition]=\"popupPosition\"\r\n [isFullWidthDropdown]=\"isFullWidthDropdown\"\r\n >\r\n <div class=\"mrx-select__input-link__controls\">\r\n <p *ngIf=\"sortPlaceholder\">{{ sortPlaceholder }}</p>\r\n\r\n <span\r\n *ngIf=\"sortIcon\"\r\n class=\"mrx-icon {{sortIcon === 'asc' ? 'icon-sorting-up' : 'icon-sorting-down'}}\"\r\n [class]=\"getIconSize\"\r\n ></span>\r\n </div>\r\n\r\n <div class=\"mrx-select__input-link__controls\">\r\n <ng-container *ngIf=\"getSelectedLabels.length\">\r\n <div class=\"mrx-select__input-link__value\">\r\n <ng-container *ngFor=\"let item of getSelectedLabels\">\r\n {{ bindLabel ? item.__origin[bindLabel] : item.__origin['label'] || item.__origin }}\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n <div\r\n class=\"mrx-icon icon-chevron-down mrx-select__input__controls--icon\"\r\n [class.opened]=\"isOpen\"\r\n [class]=\"getIconSize\"\r\n ></div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <mrx-popup #dropdown [closeAfterClick]=\"closable\" (toggle)=\"togglePopup($event)\">\r\n <ng-container *ngIf=\"filteredItems.length\">\r\n <ng-container *ngFor=\"let item of filteredItems; let first = first; let last = last\">\r\n <mrx-popup-item [custom]=\"true\" [id]=\"item.__id\" (clicked)=\"onSelect(item)\">\r\n <ng-container *ngIf=\"optionTemplate\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"optionTemplate\"\r\n [ngTemplateOutletContext]=\"{item: item, first, last}\"\r\n ></ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!optionTemplate\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"defaultOptionTemplate\"\r\n [ngTemplateOutletContext]=\"{item: item, first, last}\"\r\n ></ng-container>\r\n </ng-container>\r\n </mrx-popup-item>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!filteredItems.length\">\r\n <mrx-popup-item [custom]=\"true\">\r\n <div class=\"mrx-select__dropdown__empty\">{{ emptyText }}</div>\r\n </mrx-popup-item>\r\n </ng-container>\r\n\r\n <ng-template #headerTemplate>\r\n <ng-container *ngIf=\"searchable\">\r\n <div class=\"mrx-select__dropdown__search\">\r\n <mrx-input-search\r\n [size]=\"'medium'\"\r\n [placeholder]=\"searchPlaceholder\"\r\n [(ngModel)]=\"searchValue\"\r\n ></mrx-input-search>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"contentTemplate\">\r\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"popupHeaderTemplate\">\r\n <ng-container [ngTemplateOutlet]=\"popupHeaderTemplate\"></ng-container>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <ng-template #footerTemplate>\r\n <ng-container *ngIf=\"!!addOption\">\r\n <div class=\"mrx-select__dropdown__extra-option\">\r\n <mrx-input-text\r\n class=\"flex-grow-1\"\r\n [size]=\"'medium'\"\r\n [placeholder]=\"extraOptionPlaceholder\"\r\n [(ngModel)]=\"model.label\"\r\n [maxlength]=\"300\"\r\n [invalid]=\"!!form.errors['label']\"\r\n [invalidMessage]=\"form.errors['label']\"\r\n (ngModelChange)=\"changeTextValueEmpty()\"\r\n ></mrx-input-text>\r\n\r\n <mrx-button\r\n [iconOnly]=\"true\"\r\n icon=\"<span class='mrx-icon icon-plus icon-font-24'></span>\"\r\n size=\"medium\"\r\n type=\"secondary\"\r\n (click)=\"onAddNewCustomOption()\"\r\n ></mrx-button>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"popupFooterTemplate\">\r\n <ng-container [ngTemplateOutlet]=\"popupFooterTemplate\"></ng-container>\r\n </ng-container>\r\n </ng-template>\r\n </mrx-popup>\r\n </div>\r\n\r\n <ng-container *ngIf=\"invalid && isInvalidMessage\">\r\n <mrx-error-message [invalidMessage]=\"invalidMessage\"></mrx-error-message>\r\n </ng-container>\r\n\r\n <mrx-save-state [fields]=\"fields\" [id]=\"uuid\" [type]=\"'input'\"></mrx-save-state>\r\n</div>\r\n\r\n<ng-template #defaultLabelTemplate let-item=\"item\">\r\n <ng-container *ngIf=\"asLabel(item) as label\">\r\n <div class=\"mrx-select__input__badge\">\r\n <p>{{ bindLabel ? label.__origin[bindLabel] : label.__origin['label'] || label.__origin }}</p>\r\n <span class=\"mrx-icon icon-close icon-font-16\" (click)=\"onUnselect(label)\"></span>\r\n </div>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #defaultOptionTemplate let-item=\"item\">\r\n <ng-container *ngIf=\"asOption(item) as option\">\r\n <div class=\"mrx-select__dropdown__item\">\r\n <div class=\"mrx-select__dropdown__item--content\">\r\n <ng-container *ngIf=\"bindIcon && option.__origin[bindIcon]\">\r\n <span class=\"mrx-icon icon-font-24\" [class]=\"option[bindIcon]\"></span>\r\n </ng-container>\r\n\r\n <p>{{ bindLabel ? option.__origin[bindLabel] : option.__origin['label'] || option.__origin }}</p>\r\n </div>\r\n\r\n <ng-container *ngIf=\"option.__selected\">\r\n <span class=\"mrx-icon icon-check icon-font-24\"></span>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n</ng-template>\r\n", styles: [".mrx-select{position:relative}.mrx-select__input{border:var(--border-width-default) solid var(--neutral-bg-stroke-default);border-radius:var(--border-radius-1);width:100%;outline:none;transition:outline-width .2s,border .2s;cursor:pointer;display:flex;align-items:flex-start;justify-content:space-between;gap:8px;height:100%;max-height:200px;overflow-y:auto}.mrx-select__input:focus,.mrx-select__input:active{outline:var(--neutral-bg-island-default) solid var(--border-width-focused)}.mrx-select__input:hover{border:var(--border-width-default) solid var(--neutral-bg-stroke-hover)}.mrx-select__input__box{flex-grow:1}.mrx-select__input__controls{display:flex;align-items:center;gap:8px;padding:5px 0}.mrx-select__input__controls--icon{position:relative}.mrx-select__input__controls--icon:after{content:\"\";position:absolute;width:100%;height:100%;border-radius:var(--border-raius-1, 4px);z-index:-1;transition:.2s}.mrx-select__input__controls--icon.opened{transform:rotate(180deg)}.mrx-select__input__controls--icon.opened:after{background-color:var(--brand-bg-tertiary-hover, #EDF5FF);transform:rotate(-180deg)}.mrx-select__input-link{border-radius:var(--border-radius-1);background:var(--brand-bg-tertiary-default, #FFF);outline:none;transition:outline-width .2s,border .2s;cursor:pointer;display:flex;flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:8px;width:fit-content}.mrx-select__input-link__box{flex-grow:1}.mrx-select__input-link__controls{display:flex;align-items:center;gap:8px}.mrx-select__input-link__controls--icon:after{content:\"\";position:absolute;width:100%;height:100%;border-radius:var(--border-raius-1, 4px);z-index:-1;transition:.2s}.mrx-select__input-link__controls--icon.opened{transform:rotate(180deg)}.mrx-select__input-link__controls--icon.opened:after{background-color:var(--brand-bg-tertiary-hover, #EDF5FF);transform:rotate(-180deg)}.mrx-select.mrx-select-lg .mrx-select__input,.mrx-select.mrx-select-lg .mrx-select__input-link{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-select.mrx-select-lg .mrx-select__input__values,.mrx-select.mrx-select-lg .mrx-select__input-link__values{min-height:32px}.mrx-select.mrx-select-lg .mrx-select__input__badge,.mrx-select.mrx-select-lg .mrx-select__input-link__badge{padding:6px 8px 6px 12px}.mrx-select.mrx-select-lg .mrx-select__input__badge p,.mrx-select.mrx-select-lg .mrx-select__input-link__badge p{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-select.mrx-select-lg .mrx-select__input{padding:calc(var(--spacing-2) - var(--border-width-default)) var(--spacing-3) calc(var(--spacing-2) - var(--border-width-default)) var(--spacing-2)}.mrx-select.mrx-select-lg .mrx-select__input__placeholder,.mrx-select.mrx-select-lg .mrx-select__input__value{padding:6px 8px}.mrx-select.mrx-select-lg .mrx-select__input__controls--icon{font-size:22px}.mrx-select.mrx-select-lg .mrx-select__input-link{padding:0}.mrx-select.mrx-select-lg .mrx-select__input-link__placeholder,.mrx-select.mrx-select-lg .mrx-select__input-link__value{padding:2px 0}.mrx-select.mrx-select-md .mrx-select__input,.mrx-select.mrx-select-md .mrx-select__input-link{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-select.mrx-select-md .mrx-select__input__values,.mrx-select.mrx-select-md .mrx-select__input-link__values{min-height:24px}.mrx-select.mrx-select-md .mrx-select__input__badge,.mrx-select.mrx-select-md .mrx-select__input-link__badge{padding:4px 4px 4px 8px}.mrx-select.mrx-select-md .mrx-select__input__badge p,.mrx-select.mrx-select-md .mrx-select__input-link__badge p{font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:var(--body-sm-line-height)}.mrx-select.mrx-select-md .mrx-select__input{padding:calc(var(--spacing-2) - var(--border-width-default)) var(--spacing-4) calc(var(--spacing-2) - var(--border-width-default)) var(--spacing-2)}.mrx-select.mrx-select-md .mrx-select__input__placeholder,.mrx-select.mrx-select-md .mrx-select__input__value{padding:2px 8px}.mrx-select.mrx-select-md .mrx-select__input-link,.mrx-select.mrx-select-md .mrx-select__input-link__placeholder,.mrx-select.mrx-select-md .mrx-select__input-link__value{padding:0}.mrx-select__input__value{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-select__input__values{display:flex;align-items:center;justify-content:flex-start;flex-wrap:wrap;gap:8px}.mrx-select__input__badge{display:flex;align-items:center;gap:4px;border-radius:4px;background-color:var(--brand-bg-secondary-default, #EDF5FF)}.mrx-select__input__badge .icon-close{transform:scale(1);transition:transform .2s}.mrx-select__input__badge .icon-close:hover{transform:scale(1.1)}.mrx-select__input__placeholder{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height);color:var(--neutral-text-tertiary, #71767E)}.mrx-select__dropdown__item{padding:8px 8px 8px 16px;background-color:transparent;transition:background-color .3s;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:8px}.mrx-select__dropdown__item:hover{background-color:var(--brand-bg-tertiary-hover, #EDF5FF)}.mrx-select__dropdown__item--content{display:flex;align-items:center;justify-content:flex-start;gap:8px;flex-grow:1}.mrx-select__dropdown__item--content p{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height);padding-top:2px;padding-bottom:2px}.mrx-select__dropdown__search{padding:8px;border-bottom:1.794px solid var(--neutral-bg-divider, #DBDFE5);background:var(--brand-bg-tertiary-default, #FFF)}.mrx-select__dropdown__extra-option{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:8px;border-top:1.794px solid var(--neutral-bg-divider, #DBDFE5);border-top:var(--border-width-default) solid var(--neutral-bg-stroke-default)}.mrx-select__dropdown__empty{padding:8px 16px;font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-select.mrx-input-error .mrx-select__input{border-color:var(--system-bg-controls-negative-default)}.mrx-select.mrx-input-error .mrx-select__input:hover{border:var(--border-width-default) solid var(--system-bg-controls-negative-default)}.mrx-select.mrx-input-checked-error .mrx-select__input{border-color:var(--system-bg-controls-negative-default);background-color:var(--system-bg-negative-secondary)}.mrx-select.mrx-input-checked-error .mrx-select__input:hover{border:var(--border-width-default) solid var(--system-bg-controls-negative-default)}.mrx-select.mrx-input-checked-success .mrx-select__input{background-color:var(--system-bg-positive-secondary);border-color:var(--system-bg-controls-positive-default)}.mrx-select.mrx-input-checked-success .mrx-select__input:hover{border:var(--border-width-default) solid var(--system-bg-controls-positive-default)}.mrx-select.-disabled .mrx-select__input{background-color:var(--neutral-bg-disabled, #EEF0F4);-webkit-text-fill-color:var(--neutral-text-tertiary, #71767E);color:var(--neutral-text-tertiary, #71767E);pointer-events:none}.mrx-select.-readonly .mrx-select__input{background-color:var(--neutral-bg-disabled, #EEF0F4);-webkit-text-fill-color:var(--neutral-text-primary, #262626);color:var(--neutral-text-primary, #262626);pointer-events:none}.mrx-select.-readonly .mrx-select__input__placeholder{-webkit-text-fill-color:var(--neutral-text-tertiary, #71767E);color:var(--neutral-text-tertiary, #71767E)}\n"] }]
|
|
249
|
+
], template: "<div\r\n [class.-disabled]=\"disabled\"\r\n [class.-readonly]=\"readonly\"\r\n [class.mrx-input-error]=\"invalid\"\r\n [class]=\"getClasses\"\r\n class=\"mrx-select\"\r\n>\r\n <div class=\"mrx-select__wrapper\">\r\n <ng-container [ngSwitch]=\"use\">\r\n <ng-container *ngSwitchCase=\"'default'\">\r\n <div\r\n class=\"mrx-select__input\"\r\n [mrxPopupTrigger]=\"dropdown\"\r\n [popupPosition]=\"popupPosition\"\r\n [scrollContainerRef]=\"scrollContainer\"\r\n [scrollStrategy]=\"scrollStrategy\"\r\n [isFullWidthDropdown]=\"isFullWidthDropdown\"\r\n >\r\n <ng-container *ngIf=\"getSelectedLabels.length\">\r\n <div class=\"mrx-select__input__values\" *ngIf=\"multiple\">\r\n <ng-container *ngIf=\"multiCollapseCount && getSelectedLabels.length >= multiCollapseCount; else multipleNotCollapse\">\r\n <div class=\"mrx-select__input__badge\">\r\n <p>\u0412\u044B\u0431\u0440\u0430\u043D\u043E: {{ getSelectedLabels.length }}</p>\r\n <span *ngIf=\"!disabled && !readonly\" class=\"mrx-icon icon-close icon-font-16\" (click)=\"onClear($event)\"></span>\r\n </div>\r\n </ng-container>\r\n <ng-template #multipleNotCollapse>\r\n <ng-container *ngFor=\"let item of getSelectedLabels; let first = first; let last = last\">\r\n <ng-container *ngIf=\"labelTemplate; else defaultLabelTpl\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"labelTemplate\"\r\n [ngTemplateOutletContext]=\"{item: item, first, last, clear: clearItem.bind(this)}\"\r\n ></ng-container>\r\n </ng-container>\r\n <ng-template #defaultLabelTpl>\r\n <ng-container\r\n [ngTemplateOutlet]=\"defaultLabelTemplate\"\r\n [ngTemplateOutletContext]=\"{item: item, first, last}\"\r\n ></ng-container>\r\n </ng-template>\r\n </ng-container>\r\n </ng-template>\r\n </div>\r\n\r\n <div class=\"mrx-select__input__value\" *ngIf=\"!multiple\">\r\n <ng-container *ngFor=\"let item of getSelectedLabels\">\r\n {{ bindLabel ? item.__origin[bindLabel] : item.__origin['label'] || item.__origin }}\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!getSelectedLabels.length\">\r\n <div class=\"mrx-select__input__placeholder\">{{ placeholder }}</div>\r\n </ng-container>\r\n\r\n <div class=\"mrx-select__input__controls\">\r\n <mrx-loader\r\n *ngIf=\"isLoading\"\r\n [size]=\"size === 'large' ? 'small' : 'extra-small'\"\r\n [color]=\"'brand'\"\r\n ></mrx-loader>\r\n\r\n <div\r\n *ngIf=\"getSelectedLabels.length && clearable\"\r\n class=\"mrx-icon icon-close mrx-select__input__controls--icon\"\r\n [class]=\"getIconSize\"\r\n (click)=\"onClear($event)\"\r\n ></div>\r\n\r\n <div\r\n class=\"mrx-icon icon-chevron-down mrx-select__input__controls--icon\"\r\n [class.opened]=\"isOpen\"\r\n [class]=\"getIconSize\"\r\n ></div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngSwitchCase=\"'link'\">\r\n <div\r\n class=\"mrx-select__input-link\"\r\n [mrxPopupTrigger]=\"dropdown\"\r\n [popupPosition]=\"popupPosition\"\r\n [isFullWidthDropdown]=\"isFullWidthDropdown\"\r\n >\r\n <div class=\"mrx-select__input-link__controls\">\r\n <p *ngIf=\"sortPlaceholder\">{{ sortPlaceholder }}</p>\r\n\r\n <span\r\n *ngIf=\"sortIcon\"\r\n class=\"mrx-icon {{sortIcon === 'asc' ? 'icon-sorting-up' : 'icon-sorting-down'}}\"\r\n [class]=\"getIconSize\"\r\n ></span>\r\n </div>\r\n\r\n <div class=\"mrx-select__input-link__controls\">\r\n <ng-container *ngIf=\"getSelectedLabels.length\">\r\n <div class=\"mrx-select__input-link__value\">\r\n <ng-container *ngFor=\"let item of getSelectedLabels\">\r\n {{ bindLabel ? item.__origin[bindLabel] : item.__origin['label'] || item.__origin }}\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n <div\r\n class=\"mrx-icon icon-chevron-down mrx-select__input__controls--icon\"\r\n [class.opened]=\"isOpen\"\r\n [class]=\"getIconSize\"\r\n ></div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <mrx-popup #dropdown [closeAfterClick]=\"closable\" (toggle)=\"togglePopup($event)\">\r\n <ng-container *ngIf=\"filteredItems.length\">\r\n <ng-container *ngFor=\"let item of filteredItems; let first = first; let last = last\">\r\n <mrx-popup-item [custom]=\"true\" [id]=\"item.__id\" (clicked)=\"onSelect(item)\">\r\n <ng-container *ngIf=\"optionTemplate\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"optionTemplate\"\r\n [ngTemplateOutletContext]=\"{item: item, first, last}\"\r\n ></ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!optionTemplate\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"defaultOptionTemplate\"\r\n [ngTemplateOutletContext]=\"{item: item, first, last}\"\r\n ></ng-container>\r\n </ng-container>\r\n </mrx-popup-item>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"!filteredItems.length\">\r\n <mrx-popup-item [custom]=\"true\">\r\n <div class=\"mrx-select__dropdown__empty\">{{ emptyText }}</div>\r\n </mrx-popup-item>\r\n </ng-container>\r\n\r\n <ng-template #headerTemplate>\r\n <ng-container *ngIf=\"searchable\">\r\n <div class=\"mrx-select__dropdown__search\">\r\n <mrx-input-search\r\n [size]=\"'medium'\"\r\n [placeholder]=\"searchPlaceholder\"\r\n [(ngModel)]=\"searchValue\"\r\n ></mrx-input-search>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"contentTemplate\">\r\n <ng-container *ngTemplateOutlet=\"contentTemplate\"></ng-container>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"popupHeaderTemplate\">\r\n <ng-container [ngTemplateOutlet]=\"popupHeaderTemplate\"></ng-container>\r\n </ng-container>\r\n </ng-template>\r\n\r\n <ng-template #footerTemplate>\r\n <ng-container *ngIf=\"!!addOption\">\r\n <div class=\"mrx-select__dropdown__extra-option\">\r\n <mrx-input-text\r\n class=\"flex-grow-1\"\r\n [size]=\"'medium'\"\r\n [placeholder]=\"extraOptionPlaceholder\"\r\n [(ngModel)]=\"model.label\"\r\n [maxlength]=\"300\"\r\n [invalid]=\"!!form.errors['label']\"\r\n [invalidMessage]=\"form.errors['label']\"\r\n (ngModelChange)=\"changeTextValueEmpty()\"\r\n ></mrx-input-text>\r\n\r\n <mrx-button\r\n [iconOnly]=\"true\"\r\n icon=\"<span class='mrx-icon icon-plus icon-font-24'></span>\"\r\n size=\"medium\"\r\n type=\"secondary\"\r\n (click)=\"onAddNewCustomOption()\"\r\n ></mrx-button>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container *ngIf=\"popupFooterTemplate\">\r\n <ng-container [ngTemplateOutlet]=\"popupFooterTemplate\"></ng-container>\r\n </ng-container>\r\n </ng-template>\r\n </mrx-popup>\r\n </div>\r\n\r\n <ng-container *ngIf=\"invalid && isInvalidMessage\">\r\n <mrx-error-message [invalidMessage]=\"invalidMessage\"></mrx-error-message>\r\n </ng-container>\r\n\r\n <mrx-save-state [fields]=\"fields\" [id]=\"uuid\" [type]=\"'input'\"></mrx-save-state>\r\n</div>\r\n\r\n<ng-template #defaultLabelTemplate let-item=\"item\">\r\n <ng-container *ngIf=\"asLabel(item) as label\">\r\n <div class=\"mrx-select__input__badge\">\r\n <p>{{ bindLabel ? label.__origin[bindLabel] : label.__origin['label'] || label.__origin }}</p>\r\n <span class=\"mrx-icon icon-close icon-font-16\" (click)=\"onUnselect(label)\"></span>\r\n </div>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #defaultOptionTemplate let-item=\"item\">\r\n <ng-container *ngIf=\"asOption(item) as option\">\r\n <div class=\"mrx-select__dropdown__item\">\r\n <div class=\"mrx-select__dropdown__item--content\">\r\n <ng-container *ngIf=\"bindIcon && option.__origin[bindIcon]\">\r\n <span class=\"mrx-icon icon-font-24\" [class]=\"option[bindIcon]\"></span>\r\n </ng-container>\r\n\r\n <p>{{ bindLabel ? option.__origin[bindLabel] : option.__origin['label'] || option.__origin }}</p>\r\n </div>\r\n\r\n <ng-container *ngIf=\"option.__selected\">\r\n <span class=\"mrx-icon icon-check icon-font-24\"></span>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n</ng-template>\r\n", styles: [".mrx-select{position:relative}.mrx-select__input{border:var(--border-width-default) solid var(--neutral-bg-stroke-default);border-radius:var(--border-radius-1);width:100%;outline:none;transition:outline-width .2s,border .2s;cursor:pointer;display:flex;align-items:flex-start;justify-content:space-between;gap:8px;height:100%;max-height:200px;overflow-y:auto}.mrx-select__input:focus,.mrx-select__input:active{outline:var(--neutral-bg-island-default) solid var(--border-width-focused)}.mrx-select__input:hover{border:var(--border-width-default) solid var(--neutral-bg-stroke-hover)}.mrx-select__input__box{flex-grow:1}.mrx-select__input__controls{display:flex;align-items:center;gap:8px;padding:5px 0}.mrx-select__input__controls--icon{position:relative}.mrx-select__input__controls--icon:after{content:\"\";position:absolute;width:100%;height:100%;border-radius:var(--border-raius-1, 4px);z-index:-1;transition:.2s}.mrx-select__input__controls--icon.opened{transform:rotate(180deg)}.mrx-select__input__controls--icon.opened:after{background-color:var(--brand-bg-tertiary-hover, #EDF5FF);transform:rotate(-180deg)}.mrx-select__input-link{border-radius:var(--border-radius-1);background:var(--brand-bg-tertiary-default, #FFF);outline:none;transition:outline-width .2s,border .2s;cursor:pointer;display:flex;flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:8px;width:-moz-fit-content;width:fit-content}.mrx-select__input-link__box{flex-grow:1}.mrx-select__input-link__controls{display:flex;align-items:center;gap:8px}.mrx-select__input-link__controls--icon:after{content:\"\";position:absolute;width:100%;height:100%;border-radius:var(--border-raius-1, 4px);z-index:-1;transition:.2s}.mrx-select__input-link__controls--icon.opened{transform:rotate(180deg)}.mrx-select__input-link__controls--icon.opened:after{background-color:var(--brand-bg-tertiary-hover, #EDF5FF);transform:rotate(-180deg)}.mrx-select.mrx-select-lg .mrx-select__input,.mrx-select.mrx-select-lg .mrx-select__input-link{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-select.mrx-select-lg .mrx-select__input__values,.mrx-select.mrx-select-lg .mrx-select__input-link__values{min-height:32px}.mrx-select.mrx-select-lg .mrx-select__input__badge,.mrx-select.mrx-select-lg .mrx-select__input-link__badge{padding:6px 8px 6px 12px}.mrx-select.mrx-select-lg .mrx-select__input__badge p,.mrx-select.mrx-select-lg .mrx-select__input-link__badge p{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-select.mrx-select-lg .mrx-select__input{padding:calc(var(--spacing-2) - var(--border-width-default)) var(--spacing-3) calc(var(--spacing-2) - var(--border-width-default)) var(--spacing-2)}.mrx-select.mrx-select-lg .mrx-select__input__placeholder,.mrx-select.mrx-select-lg .mrx-select__input__value{padding:6px 8px}.mrx-select.mrx-select-lg .mrx-select__input__controls--icon{font-size:22px}.mrx-select.mrx-select-lg .mrx-select__input-link{padding:0}.mrx-select.mrx-select-lg .mrx-select__input-link__placeholder,.mrx-select.mrx-select-lg .mrx-select__input-link__value{padding:2px 0}.mrx-select.mrx-select-md .mrx-select__input,.mrx-select.mrx-select-md .mrx-select__input-link{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-select.mrx-select-md .mrx-select__input__values,.mrx-select.mrx-select-md .mrx-select__input-link__values{min-height:24px}.mrx-select.mrx-select-md .mrx-select__input__badge,.mrx-select.mrx-select-md .mrx-select__input-link__badge{padding:4px 4px 4px 8px}.mrx-select.mrx-select-md .mrx-select__input__badge p,.mrx-select.mrx-select-md .mrx-select__input-link__badge p{font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:var(--body-sm-line-height)}.mrx-select.mrx-select-md .mrx-select__input{padding:calc(var(--spacing-2) - var(--border-width-default)) var(--spacing-4) calc(var(--spacing-2) - var(--border-width-default)) var(--spacing-2)}.mrx-select.mrx-select-md .mrx-select__input__placeholder,.mrx-select.mrx-select-md .mrx-select__input__value{padding:2px 8px}.mrx-select.mrx-select-md .mrx-select__input-link,.mrx-select.mrx-select-md .mrx-select__input-link__placeholder,.mrx-select.mrx-select-md .mrx-select__input-link__value{padding:0}.mrx-select__input__value{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-select__input__values{display:flex;align-items:center;justify-content:flex-start;flex-wrap:wrap;gap:8px}.mrx-select__input__badge{display:flex;align-items:center;gap:4px;border-radius:4px;background-color:var(--brand-bg-secondary-default, #EDF5FF)}.mrx-select__input__badge .icon-close{transform:scale(1);transition:transform .2s}.mrx-select__input__badge .icon-close:hover{transform:scale(1.1)}.mrx-select__input__placeholder{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height);color:var(--neutral-text-tertiary, #71767E)}.mrx-select__dropdown__item{padding:8px 8px 8px 16px;background-color:transparent;transition:background-color .3s;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:8px}.mrx-select__dropdown__item:hover{background-color:var(--brand-bg-tertiary-hover, #EDF5FF)}.mrx-select__dropdown__item--content{display:flex;align-items:center;justify-content:flex-start;gap:8px;flex-grow:1}.mrx-select__dropdown__item--content p{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height);padding-top:2px;padding-bottom:2px}.mrx-select__dropdown__search{padding:8px;border-bottom:1.794px solid var(--neutral-bg-divider, #DBDFE5);background:var(--brand-bg-tertiary-default, #FFF)}.mrx-select__dropdown__extra-option{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:8px;border-top:1.794px solid var(--neutral-bg-divider, #DBDFE5);border-top:var(--border-width-default) solid var(--neutral-bg-stroke-default)}.mrx-select__dropdown__empty{padding:8px 16px;font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height)}.mrx-select.mrx-input-error .mrx-select__input{border-color:var(--system-bg-controls-negative-default)}.mrx-select.mrx-input-error .mrx-select__input:hover{border:var(--border-width-default) solid var(--system-bg-controls-negative-default)}.mrx-select.mrx-input-checked-error .mrx-select__input{border-color:var(--system-bg-controls-negative-default);background-color:var(--system-bg-negative-secondary)}.mrx-select.mrx-input-checked-error .mrx-select__input:hover{border:var(--border-width-default) solid var(--system-bg-controls-negative-default)}.mrx-select.mrx-input-checked-success .mrx-select__input{background-color:var(--system-bg-positive-secondary);border-color:var(--system-bg-controls-positive-default)}.mrx-select.mrx-input-checked-success .mrx-select__input:hover{border:var(--border-width-default) solid var(--system-bg-controls-positive-default)}.mrx-select.-disabled .mrx-select__input{background-color:var(--neutral-bg-disabled, #EEF0F4);-webkit-text-fill-color:var(--neutral-text-tertiary, #71767E);color:var(--neutral-text-tertiary, #71767E);pointer-events:none}.mrx-select.-readonly .mrx-select__input{background-color:var(--neutral-bg-disabled, #EEF0F4);-webkit-text-fill-color:var(--neutral-text-primary, #262626);color:var(--neutral-text-primary, #262626);pointer-events:none}.mrx-select.-readonly .mrx-select__input__placeholder{-webkit-text-fill-color:var(--neutral-text-tertiary, #71767E);color:var(--neutral-text-tertiary, #71767E)}\n"] }]
|
|
250
250
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { fields: [{
|
|
251
251
|
type: Input
|
|
252
252
|
}], items: [{
|
|
@@ -166,10 +166,10 @@ export class GalleryItemComponent {
|
|
|
166
166
|
}
|
|
167
167
|
}
|
|
168
168
|
GalleryItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: GalleryItemComponent, deps: [{ token: i1.GalleryService }, { token: i2.SimpleModalService }, { token: i3.Store }], target: i0.ɵɵFactoryTarget.Component });
|
|
169
|
-
GalleryItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: GalleryItemComponent, selector: "mrx-gallery-item", inputs: { preview: "preview", index: "index", isEditing: "isEditing", descriptionMaxLength: "descriptionMaxLength", descriptionRows: "descriptionRows", descriptionAutosize: "descriptionAutosize", deleteEndPoint: "deleteEndPoint", updateEndPoint: "updateEndPoint", rotateSlides: "rotateSlides", showDate: "showDate", showCounterparties: "showCounterparties", minDate: "minDate", maxDate: "maxDate", requiredDate: "requiredDate", maxSelectedItems: "maxSelectedItems", counterpartySelectionHint: "counterpartySelectionHint", setIsLoading: ["isLoading", "setIsLoading"], needToSaveInvalidDate: "needToSaveInvalidDate", minDateInvalidMessage: "minDateInvalidMessage", maxDateInvalidMessage: "maxDateInvalidMessage", validateOnSubmit: "validateOnSubmit" }, outputs: { openGalleryModal: "openGalleryModal", deletePhoto: "deletePhoto", updatePhoto: "updatePhoto" }, providers: [MrxAutosaveService], ngImport: i0, template: "<div class=\"mrx-gallery-item\">\r\n <div class=\"mrx-gallery-item__preview\" (click)=\"onOpenGalleryModal()\">\r\n\r\n <img [src]=\"getImageUrl()\" [alt]=\"preview.imageName || 'image'\" *ngIf=\"!isLoadingImage; else skeletonTemplate\">\r\n\r\n <ng-template #skeletonTemplate>\r\n <div class=\"d-flex align-items-center justify-content-center w-100 h-100\">\r\n <mrx-loader size=\"medium\" color=\"brand\"></mrx-loader>\r\n </div>\r\n </ng-template>\r\n\r\n <div class=\"mrx-gallery-item__preview-overlay\" *ngIf=\"!isLoadingImage\"></div>\r\n\r\n <div class=\"mrx-gallery-item__preview-controls\" *ngIf=\"!isLoadingImage\">\r\n <a class=\"mrx-gallery-item__preview-controls--icon\" [href]=\"yandexCheckUrl\" target=\"_blank\" (click)=\"$event.stopPropagation()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_12346_12076)\">\r\n <path d=\"M8.00031 15.9838C12.4096 15.9838 15.984 12.4093 15.984 8.00006C15.984 3.59078 12.4096 0.0163574 8.00031 0.0163574C3.59103 0.0163574 0.0166016 3.59078 0.0166016 8.00006C0.0166016 12.4093 3.59103 15.9838 8.00031 15.9838Z\" fill=\"white\"/>\r\n <path d=\"M10.8893 13.0118H9.1367V4.34361H8.35596C6.92484 4.34361 6.17521 5.05916 6.17521 6.12731C6.17521 7.33916 6.69225 7.90065 7.76188 8.6162L8.64336 9.21028L6.11003 13.0103H4.22559L6.50559 9.61768C5.19447 8.68139 4.4567 7.76731 4.4567 6.22509C4.4567 4.29768 5.8004 2.98657 8.3441 2.98657H10.8774V13.0088H10.8893V13.0118Z\" fill=\"#FC3F1D\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_12346_12076\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\"/>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </a>\r\n\r\n <a class=\"mrx-gallery-item__preview-controls--icon\" [href]=\"googleCheckUrl\" target=\"_blank\" (click)=\"$event.stopPropagation()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path d=\"M11.5561 4.8901H11.0997V4.86659H5.99967V7.13325H9.20219C8.73497 8.45273 7.47952 9.39992 5.99967 9.39992C4.12202 9.39992 2.59967 7.87757 2.59967 5.99992C2.59967 4.12227 4.12202 2.59992 5.99967 2.59992C6.86639 2.59992 7.65491 2.92689 8.25529 3.46097L9.85811 1.85815C8.84604 0.914935 7.49227 0.333252 5.99967 0.333252C2.87026 0.333252 0.333008 2.8705 0.333008 5.99992C0.333008 9.12934 2.87026 11.6666 5.99967 11.6666C9.12909 11.6666 11.6663 9.12934 11.6663 5.99992C11.6663 5.61997 11.6272 5.24909 11.5561 4.8901Z\" fill=\"#FBC02D\"/>\r\n <path d=\"M0.987305 3.36237L2.84909 4.72775C3.35285 3.48052 4.57289 2.59992 6.0006 2.59992C6.86732 2.59992 7.65584 2.92689 8.25622 3.46097L9.85904 1.85815C8.84697 0.914935 7.4932 0.333252 6.0006 0.333252C3.82404 0.333252 1.93647 1.56207 0.987305 3.36237Z\" fill=\"#E53935\"/>\r\n <path d=\"M6.0008 11.6665C7.4645 11.6665 8.79447 11.1063 9.80002 10.1954L8.04619 8.7113C7.47725 9.14225 6.77005 9.3998 6.0008 9.3998C4.5269 9.3998 3.27542 8.45999 2.80395 7.14844L0.956055 8.57219C1.89389 10.4073 3.79845 11.6665 6.0008 11.6665Z\" fill=\"#4CAF50\"/>\r\n <path d=\"M11.5564 4.88997L11.5519 4.86646H11.1H6V7.13312H9.20252C8.97812 7.76694 8.5704 8.31349 8.04453 8.71157C8.04482 8.71129 8.0451 8.71129 8.04538 8.71101L9.79922 10.1951C9.67512 10.3079 11.6667 8.83312 11.6667 5.99979C11.6667 5.61984 11.6276 5.24896 11.5564 4.88997Z\" fill=\"#1565C0\"/>\r\n </svg>\r\n </a>\r\n\r\n <div class=\"mrx-gallery-item__preview-controls__button d-flex align-items-center justify-content-center\" *ngIf=\"isEditing\" (click)=\"$event.stopPropagation()\">\r\n <span class=\"mrx-icon icon-delete icon-font-16 text-bold\" (click)=\"deleteImage()\"></span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"showDate\" class=\"mrx-gallery-item__date mb-2\">\r\n <ng-container *ngIf=\"isEditing; else dateTemplate\">\r\n <mrx-label [required]=\"requiredDate\">\u0414\u0430\u0442\u0430 \u043C\u0435\u0440\u043E\u043F\u0440\u0438\u044F\u0442\u0438\u044F</mrx-label>\r\n\r\n <mrx-input-datepicker\r\n [fields]=\"(fields$ | async)!\"\r\n [(ngModel)]=\"preview.eventDate\"\r\n [invalid]=\"isDateInvalid\"\r\n [minDate]=\"minDate\"\r\n [maxDate]=\"maxDate\"\r\n [isShowMessages]=\"false\"\r\n [invalidMessage]=\"dateInvalidMessage\"\r\n [closable]=\"false\"\r\n [format]=\"'YYYY-MM-DD'\"\r\n [timepicker]=\"false\"\r\n [leadZeroDateTime]=\"true\"\r\n [mask]=\"'d0.M0.0000'\"\r\n (modelChange)=\"changeField(ChangeableField.EventDate, $event)\"\r\n ></mrx-input-datepicker>\r\n </ng-container>\r\n\r\n <ng-template #dateTemplate>\r\n <p>\u0414\u0430\u0442\u0430 \u043C\u0435\u0440\u043E\u043F\u0440\u0438\u044F\u0442\u0438\u044F: {{ preview.eventDate | dateFormat }}</p>\r\n </ng-template>\r\n </div>\r\n\r\n <div *ngIf=\"showCounterparties\" class=\"mrx-gallery-item__counterparties mb-2\">\r\n <ng-container *ngIf=\"isEditing; else counterpartiesTemplate\">\r\n <mrx-label>\u041D\u0430\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u043D\u0438\u0435 \u043A\u043E\u043D\u0442\u0440\u0430\u0433\u0435\u043D\u0442\u0430</mrx-label>\r\n\r\n <mrx-input-select\r\n [fields]=\"(fields$ | async)!\"\r\n [(ngModel)]=\"preview.counterpartySelectedIds\"\r\n [items]=\"preview.counterparties || []\"\r\n [multiple]=\"true\"\r\n [sortable]=\"true\"\r\n [clearable]=\"false\"\r\n [maxSelectedItems]=\"maxSelectedItems\"\r\n [bindValue]=\"'value'\"\r\n [bindLabel]=\"'text'\"\r\n [placeholder]=\"'\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u043A\u043E\u043D\u0442\u0440\u0430\u0433\u0435\u043D\u0442\u0430'\"\r\n [checkInvalid]=\"counterpartiesCheckInvalid\"\r\n [invalid]=\"isCounterpartiesInvalid\"\r\n [invalidMessage]=\"counterpartiesInvalidMessage\"\r\n (modelChange)=\"changeField(ChangeableField.Counterparties, $event)\"\r\n >\r\n <ng-template #contentTemplate>\r\n <span class=\"py-1 px-3 mnh-px-36 d-flex align-items-center color-text-secondary\">{{ counterpartySelectionHint }}</span>\r\n </ng-template>\r\n </mrx-input-select>\r\n </ng-container>\r\n\r\n <ng-template #counterpartiesTemplate>\r\n <p>\u041D\u0430\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u043D\u0438\u0435 \u043A\u043E\u043D\u0442\u0440\u0430\u0433\u0435\u043D\u0442\u0430: {{ counterpartiesText }}</p>\r\n </ng-template>\r\n </div>\r\n\r\n <div class=\"mrx-gallery-item__description\">\r\n <mrx-input-textarea\r\n *ngIf=\"isEditing; else textTemplate\"\r\n [fields]=\"(fields$ | async)!\"\r\n [ngModel]=\"preview.description\"\r\n [autosize]=\"descriptionAutosize\"\r\n [rows]=\"descriptionRows\"\r\n [maxlength]=\"descriptionMaxLength\"\r\n [placeholder]=\"'\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435'\"\r\n [checkInvalid]=\"descriptionCheckInvalid\"\r\n [invalid]=\"isDescriptionInvalid\"\r\n [invalidMessage]=\"descriptionInvalidMessage\"\r\n (modelChange)=\"changeField(ChangeableField.Description, $event)\"\r\n ></mrx-input-textarea>\r\n\r\n <ng-template #textTemplate>\r\n {{ preview.description }}\r\n </ng-template>\r\n </div>\r\n</div>\r\n", styles: [".mrx-gallery-item{cursor:pointer}.mrx-gallery-item__preview{width:100%;height:180px;border-radius:4px;overflow:hidden;position:relative;margin-bottom:8px}.mrx-gallery-item__preview img{width:100%;height:100%;object-fit:cover;object-position:center top}.mrx-gallery-item__preview-overlay{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(0,0,0,0) 78.93%,rgba(0,0,0,.35) 91.52%)}.mrx-gallery-item__preview-controls{position:absolute;bottom:0;left:0;right:0;z-index:2;padding:8px;display:flex;align-items:center;justify-content:flex-end;gap:8px}.mrx-gallery-item__preview-controls--text{font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:var(--body-sm-line-height);color:var(--neutral-text-inverse);opacity:.8}.mrx-gallery-item__preview-controls--icon{width:16px;height:16px;display:flex;align-items:center;justify-content:center;background-color:#fff;border-radius:50%}.mrx-gallery-item__preview-controls__button{padding:4px;border-radius:4px;background:var(--system-white, #FFF)}.mrx-gallery-item__description{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height);color:var(--neutral-text-primary);word-break:break-word}.mrx-gallery-item__date p,.mrx-gallery-item__counterparties p{font-family:var(--body-md-bold-font-family);font-size:var(--body-md-bold-font-size);font-weight:var(--body-md-bold-font-weight);line-height:var(--body-md-bold-line-height);color:var(--neutral-text-primary)}.mrx-gallery-item ::ng-deep .ng-value-label{text-wrap:wrap;word-break:break-word}\n"], components: [{ type: i4.LoaderComponent, selector: "mrx-loader", inputs: ["size", "color", "customClasses"] }, { type: i5.LabelComponent, selector: "mrx-label", inputs: ["requiredHidden", "required", "boldLabel", "placeholder", "label", "customClasses", "triggerTextPosition", "isPublicInfo", "publicInfoTooltip", "disabled", "isSwitch", "switchLabel", "switchValue", "isCheckbox", "checkboxLabel", "checkboxValue", "counter", "linkText", "linkPrevent", "linkType", "linkMonochrome", "href", "triggerType", "tooltip", "tooltipInitialVisible", "isSaveToStorage"], outputs: ["changeCheckboxValue", "clickedLink"] }, { type: i6.InputDatepickerComponent, selector: "mrx-input-datepicker", inputs: ["fields", "size", "format", "locale", "customClasses", "dateLabel", "timeLabel", "datePlaceholder", "placeholder", "disabled", "readonly", "required", "timepicker", "minDate", "maxDate", "inline", "closable", "leadZeroDateTime", "mask", "container", "validationType", "disableValidation", "invalid", "invalidMessage", "checkInvalid", "isShowMessages"], outputs: ["changed", "modelChange"] }, { type: i7.InputSelectComponent, selector: "mrx-input-select", inputs: ["fields", "size", "selected", "bindValue", "bindLabel", "customClasses", "wrapperCustomClasses", "multiple", "loading", "addTag", "clearable", "items", "groupBy", "emptyValue", "virtualScroll", "trackByFn", "displayValue", "disabledFromDisplay", "hideSelected", "maxLength", "customSearchFn", "isBottomLabel", "search", "required", "disabled", "readonly", "showEmptyFields", "placeholder", "searchable", "sortable", "loadLabel", "notFoundText", "closeOnSelect", "multiCollapseCount", "editableSearchTerm", "invalid", "invalidMessage", "checkInvalid", "label", "labelRequiredHidden", "labelExtraClass", "tooltip", "tooltipHidden", "tooltipVisible", "maxSelectedItems"], outputs: ["changed", "modelChange", "searched", "cleared"] }, { type: i8.InputTextareaComponent, selector: "mrx-input-textarea", inputs: ["fields", "disabled", "readonly", "autosize", "maxlength", "minlength", "rows", "placeholder", "customClasses", "mask", "size", "invalid", "invalidMessage", "checkInvalid", "restrictInput", "allowPattern"], outputs: ["changed", "blurred", "modelChange"] }], directives: [{ type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i10.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i10.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }], pipes: { "async": i9.AsyncPipe, "dateFormat": i11.DateFormatPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
169
|
+
GalleryItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: GalleryItemComponent, selector: "mrx-gallery-item", inputs: { preview: "preview", index: "index", isEditing: "isEditing", descriptionMaxLength: "descriptionMaxLength", descriptionRows: "descriptionRows", descriptionAutosize: "descriptionAutosize", deleteEndPoint: "deleteEndPoint", updateEndPoint: "updateEndPoint", rotateSlides: "rotateSlides", showDate: "showDate", showCounterparties: "showCounterparties", minDate: "minDate", maxDate: "maxDate", requiredDate: "requiredDate", maxSelectedItems: "maxSelectedItems", counterpartySelectionHint: "counterpartySelectionHint", enableYandexCheck: "enableYandexCheck", enableGoogleCheck: "enableGoogleCheck", setIsLoading: ["isLoading", "setIsLoading"], needToSaveInvalidDate: "needToSaveInvalidDate", minDateInvalidMessage: "minDateInvalidMessage", maxDateInvalidMessage: "maxDateInvalidMessage", validateOnSubmit: "validateOnSubmit" }, outputs: { openGalleryModal: "openGalleryModal", deletePhoto: "deletePhoto", updatePhoto: "updatePhoto" }, providers: [MrxAutosaveService], ngImport: i0, template: "<div class=\"mrx-gallery-item\">\r\n <div class=\"mrx-gallery-item__preview\" (click)=\"onOpenGalleryModal()\">\r\n\r\n <img [src]=\"getImageUrl()\" [alt]=\"preview.imageName || 'image'\" *ngIf=\"!isLoadingImage; else skeletonTemplate\">\r\n\r\n <ng-template #skeletonTemplate>\r\n <div class=\"d-flex align-items-center justify-content-center w-100 h-100\">\r\n <mrx-loader size=\"medium\" color=\"brand\"></mrx-loader>\r\n </div>\r\n </ng-template>\r\n\r\n <div class=\"mrx-gallery-item__preview-overlay\" *ngIf=\"!isLoadingImage\"></div>\r\n\r\n <div class=\"mrx-gallery-item__preview-controls\" *ngIf=\"!isLoadingImage\">\r\n <a *ngIf=\"enableYandexCheck\" class=\"mrx-gallery-item__preview-controls--icon\" [href]=\"yandexCheckUrl\" target=\"_blank\" (click)=\"$event.stopPropagation()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_12346_12076)\">\r\n <path d=\"M8.00031 15.9838C12.4096 15.9838 15.984 12.4093 15.984 8.00006C15.984 3.59078 12.4096 0.0163574 8.00031 0.0163574C3.59103 0.0163574 0.0166016 3.59078 0.0166016 8.00006C0.0166016 12.4093 3.59103 15.9838 8.00031 15.9838Z\" fill=\"white\"/>\r\n <path d=\"M10.8893 13.0118H9.1367V4.34361H8.35596C6.92484 4.34361 6.17521 5.05916 6.17521 6.12731C6.17521 7.33916 6.69225 7.90065 7.76188 8.6162L8.64336 9.21028L6.11003 13.0103H4.22559L6.50559 9.61768C5.19447 8.68139 4.4567 7.76731 4.4567 6.22509C4.4567 4.29768 5.8004 2.98657 8.3441 2.98657H10.8774V13.0088H10.8893V13.0118Z\" fill=\"#FC3F1D\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_12346_12076\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\"/>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </a>\r\n\r\n <a *ngIf=\"enableGoogleCheck\" class=\"mrx-gallery-item__preview-controls--icon\" [href]=\"googleCheckUrl\" target=\"_blank\" (click)=\"$event.stopPropagation()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path d=\"M11.5561 4.8901H11.0997V4.86659H5.99967V7.13325H9.20219C8.73497 8.45273 7.47952 9.39992 5.99967 9.39992C4.12202 9.39992 2.59967 7.87757 2.59967 5.99992C2.59967 4.12227 4.12202 2.59992 5.99967 2.59992C6.86639 2.59992 7.65491 2.92689 8.25529 3.46097L9.85811 1.85815C8.84604 0.914935 7.49227 0.333252 5.99967 0.333252C2.87026 0.333252 0.333008 2.8705 0.333008 5.99992C0.333008 9.12934 2.87026 11.6666 5.99967 11.6666C9.12909 11.6666 11.6663 9.12934 11.6663 5.99992C11.6663 5.61997 11.6272 5.24909 11.5561 4.8901Z\" fill=\"#FBC02D\"/>\r\n <path d=\"M0.987305 3.36237L2.84909 4.72775C3.35285 3.48052 4.57289 2.59992 6.0006 2.59992C6.86732 2.59992 7.65584 2.92689 8.25622 3.46097L9.85904 1.85815C8.84697 0.914935 7.4932 0.333252 6.0006 0.333252C3.82404 0.333252 1.93647 1.56207 0.987305 3.36237Z\" fill=\"#E53935\"/>\r\n <path d=\"M6.0008 11.6665C7.4645 11.6665 8.79447 11.1063 9.80002 10.1954L8.04619 8.7113C7.47725 9.14225 6.77005 9.3998 6.0008 9.3998C4.5269 9.3998 3.27542 8.45999 2.80395 7.14844L0.956055 8.57219C1.89389 10.4073 3.79845 11.6665 6.0008 11.6665Z\" fill=\"#4CAF50\"/>\r\n <path d=\"M11.5564 4.88997L11.5519 4.86646H11.1H6V7.13312H9.20252C8.97812 7.76694 8.5704 8.31349 8.04453 8.71157C8.04482 8.71129 8.0451 8.71129 8.04538 8.71101L9.79922 10.1951C9.67512 10.3079 11.6667 8.83312 11.6667 5.99979C11.6667 5.61984 11.6276 5.24896 11.5564 4.88997Z\" fill=\"#1565C0\"/>\r\n </svg>\r\n </a>\r\n\r\n <div class=\"mrx-gallery-item__preview-controls__button d-flex align-items-center justify-content-center\" *ngIf=\"isEditing\" (click)=\"$event.stopPropagation()\">\r\n <span class=\"mrx-icon icon-delete icon-font-16 text-bold\" (click)=\"deleteImage()\"></span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"showDate\" class=\"mrx-gallery-item__date mb-2\">\r\n <ng-container *ngIf=\"isEditing; else dateTemplate\">\r\n <mrx-label [required]=\"requiredDate\">\u0414\u0430\u0442\u0430 \u043C\u0435\u0440\u043E\u043F\u0440\u0438\u044F\u0442\u0438\u044F</mrx-label>\r\n\r\n <mrx-input-datepicker\r\n [fields]=\"(fields$ | async)!\"\r\n [(ngModel)]=\"preview.eventDate\"\r\n [invalid]=\"isDateInvalid\"\r\n [minDate]=\"minDate\"\r\n [maxDate]=\"maxDate\"\r\n [isShowMessages]=\"false\"\r\n [invalidMessage]=\"dateInvalidMessage\"\r\n [closable]=\"false\"\r\n [format]=\"'YYYY-MM-DD'\"\r\n [timepicker]=\"false\"\r\n [leadZeroDateTime]=\"true\"\r\n [mask]=\"'d0.M0.0000'\"\r\n (modelChange)=\"changeField(ChangeableField.EventDate, $event)\"\r\n ></mrx-input-datepicker>\r\n </ng-container>\r\n\r\n <ng-template #dateTemplate>\r\n <p>\u0414\u0430\u0442\u0430 \u043C\u0435\u0440\u043E\u043F\u0440\u0438\u044F\u0442\u0438\u044F: {{ preview.eventDate | dateFormat }}</p>\r\n </ng-template>\r\n </div>\r\n\r\n <div *ngIf=\"showCounterparties\" class=\"mrx-gallery-item__counterparties mb-2\">\r\n <ng-container *ngIf=\"isEditing; else counterpartiesTemplate\">\r\n <mrx-label>\u041D\u0430\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u043D\u0438\u0435 \u043A\u043E\u043D\u0442\u0440\u0430\u0433\u0435\u043D\u0442\u0430</mrx-label>\r\n\r\n <mrx-input-select\r\n [fields]=\"(fields$ | async)!\"\r\n [(ngModel)]=\"preview.counterpartySelectedIds\"\r\n [items]=\"preview.counterparties || []\"\r\n [multiple]=\"true\"\r\n [sortable]=\"true\"\r\n [clearable]=\"false\"\r\n [maxSelectedItems]=\"maxSelectedItems\"\r\n [bindValue]=\"'value'\"\r\n [bindLabel]=\"'text'\"\r\n [placeholder]=\"'\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u043A\u043E\u043D\u0442\u0440\u0430\u0433\u0435\u043D\u0442\u0430'\"\r\n [checkInvalid]=\"counterpartiesCheckInvalid\"\r\n [invalid]=\"isCounterpartiesInvalid\"\r\n [invalidMessage]=\"counterpartiesInvalidMessage\"\r\n (modelChange)=\"changeField(ChangeableField.Counterparties, $event)\"\r\n >\r\n <ng-template #contentTemplate>\r\n <span class=\"py-1 px-3 mnh-px-36 d-flex align-items-center color-text-secondary\">{{ counterpartySelectionHint }}</span>\r\n </ng-template>\r\n </mrx-input-select>\r\n </ng-container>\r\n\r\n <ng-template #counterpartiesTemplate>\r\n <p>\u041D\u0430\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u043D\u0438\u0435 \u043A\u043E\u043D\u0442\u0440\u0430\u0433\u0435\u043D\u0442\u0430: {{ counterpartiesText }}</p>\r\n </ng-template>\r\n </div>\r\n\r\n <div class=\"mrx-gallery-item__description\">\r\n <mrx-input-textarea\r\n *ngIf=\"isEditing; else textTemplate\"\r\n [fields]=\"(fields$ | async)!\"\r\n [ngModel]=\"preview.description\"\r\n [autosize]=\"descriptionAutosize\"\r\n [rows]=\"descriptionRows\"\r\n [maxlength]=\"descriptionMaxLength\"\r\n [placeholder]=\"'\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435'\"\r\n [checkInvalid]=\"descriptionCheckInvalid\"\r\n [invalid]=\"isDescriptionInvalid\"\r\n [invalidMessage]=\"descriptionInvalidMessage\"\r\n (modelChange)=\"changeField(ChangeableField.Description, $event)\"\r\n ></mrx-input-textarea>\r\n\r\n <ng-template #textTemplate>\r\n {{ preview.description }}\r\n </ng-template>\r\n </div>\r\n</div>\r\n", styles: [".mrx-gallery-item{cursor:pointer}.mrx-gallery-item__preview{width:100%;height:180px;border-radius:4px;overflow:hidden;position:relative;margin-bottom:8px}.mrx-gallery-item__preview img{width:100%;height:100%;object-fit:cover;object-position:center top}.mrx-gallery-item__preview-overlay{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(0,0,0,0) 78.93%,rgba(0,0,0,.35) 91.52%)}.mrx-gallery-item__preview-controls{position:absolute;bottom:0;left:0;right:0;z-index:2;padding:8px;display:flex;align-items:center;justify-content:flex-end;gap:8px}.mrx-gallery-item__preview-controls--text{font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:var(--body-sm-line-height);color:var(--neutral-text-inverse);opacity:.8}.mrx-gallery-item__preview-controls--icon{width:16px;height:16px;display:flex;align-items:center;justify-content:center;background-color:#fff;border-radius:50%}.mrx-gallery-item__preview-controls__button{padding:4px;border-radius:4px;background:var(--system-white, #FFF)}.mrx-gallery-item__description{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height);color:var(--neutral-text-primary);word-break:break-word}.mrx-gallery-item__date p,.mrx-gallery-item__counterparties p{font-family:var(--body-md-bold-font-family);font-size:var(--body-md-bold-font-size);font-weight:var(--body-md-bold-font-weight);line-height:var(--body-md-bold-line-height);color:var(--neutral-text-primary)}.mrx-gallery-item ::ng-deep .ng-value-label{text-wrap:wrap;word-break:break-word}\n"], components: [{ type: i4.LoaderComponent, selector: "mrx-loader", inputs: ["size", "color", "customClasses"] }, { type: i5.LabelComponent, selector: "mrx-label", inputs: ["requiredHidden", "required", "boldLabel", "placeholder", "label", "customClasses", "triggerTextPosition", "isPublicInfo", "publicInfoTooltip", "disabled", "isSwitch", "switchLabel", "switchValue", "isCheckbox", "checkboxLabel", "checkboxValue", "counter", "linkText", "linkPrevent", "linkType", "linkMonochrome", "href", "triggerType", "tooltip", "tooltipInitialVisible", "isSaveToStorage"], outputs: ["changeCheckboxValue", "clickedLink"] }, { type: i6.InputDatepickerComponent, selector: "mrx-input-datepicker", inputs: ["fields", "size", "format", "locale", "customClasses", "dateLabel", "timeLabel", "datePlaceholder", "placeholder", "disabled", "readonly", "required", "timepicker", "minDate", "maxDate", "inline", "closable", "leadZeroDateTime", "mask", "container", "validationType", "disableValidation", "invalid", "invalidMessage", "checkInvalid", "isShowMessages"], outputs: ["changed", "modelChange"] }, { type: i7.InputSelectComponent, selector: "mrx-input-select", inputs: ["fields", "size", "selected", "bindValue", "bindLabel", "customClasses", "wrapperCustomClasses", "multiple", "loading", "addTag", "clearable", "items", "groupBy", "emptyValue", "virtualScroll", "trackByFn", "displayValue", "disabledFromDisplay", "hideSelected", "maxLength", "customSearchFn", "isBottomLabel", "search", "required", "disabled", "readonly", "showEmptyFields", "placeholder", "searchable", "sortable", "loadLabel", "notFoundText", "closeOnSelect", "multiCollapseCount", "editableSearchTerm", "invalid", "invalidMessage", "checkInvalid", "label", "labelRequiredHidden", "labelExtraClass", "tooltip", "tooltipHidden", "tooltipVisible", "maxSelectedItems"], outputs: ["changed", "modelChange", "searched", "cleared"] }, { type: i8.InputTextareaComponent, selector: "mrx-input-textarea", inputs: ["fields", "disabled", "readonly", "autosize", "maxlength", "minlength", "rows", "placeholder", "customClasses", "mask", "size", "invalid", "invalidMessage", "checkInvalid", "restrictInput", "allowPattern"], outputs: ["changed", "blurred", "modelChange"] }], directives: [{ type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i10.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i10.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i10.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }], pipes: { "async": i9.AsyncPipe, "dateFormat": i11.DateFormatPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
170
170
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: GalleryItemComponent, decorators: [{
|
|
171
171
|
type: Component,
|
|
172
|
-
args: [{ selector: 'mrx-gallery-item', changeDetection: ChangeDetectionStrategy.OnPush, providers: [MrxAutosaveService], template: "<div class=\"mrx-gallery-item\">\r\n <div class=\"mrx-gallery-item__preview\" (click)=\"onOpenGalleryModal()\">\r\n\r\n <img [src]=\"getImageUrl()\" [alt]=\"preview.imageName || 'image'\" *ngIf=\"!isLoadingImage; else skeletonTemplate\">\r\n\r\n <ng-template #skeletonTemplate>\r\n <div class=\"d-flex align-items-center justify-content-center w-100 h-100\">\r\n <mrx-loader size=\"medium\" color=\"brand\"></mrx-loader>\r\n </div>\r\n </ng-template>\r\n\r\n <div class=\"mrx-gallery-item__preview-overlay\" *ngIf=\"!isLoadingImage\"></div>\r\n\r\n <div class=\"mrx-gallery-item__preview-controls\" *ngIf=\"!isLoadingImage\">\r\n <a class=\"mrx-gallery-item__preview-controls--icon\" [href]=\"yandexCheckUrl\" target=\"_blank\" (click)=\"$event.stopPropagation()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_12346_12076)\">\r\n <path d=\"M8.00031 15.9838C12.4096 15.9838 15.984 12.4093 15.984 8.00006C15.984 3.59078 12.4096 0.0163574 8.00031 0.0163574C3.59103 0.0163574 0.0166016 3.59078 0.0166016 8.00006C0.0166016 12.4093 3.59103 15.9838 8.00031 15.9838Z\" fill=\"white\"/>\r\n <path d=\"M10.8893 13.0118H9.1367V4.34361H8.35596C6.92484 4.34361 6.17521 5.05916 6.17521 6.12731C6.17521 7.33916 6.69225 7.90065 7.76188 8.6162L8.64336 9.21028L6.11003 13.0103H4.22559L6.50559 9.61768C5.19447 8.68139 4.4567 7.76731 4.4567 6.22509C4.4567 4.29768 5.8004 2.98657 8.3441 2.98657H10.8774V13.0088H10.8893V13.0118Z\" fill=\"#FC3F1D\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_12346_12076\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\"/>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </a>\r\n\r\n <a class=\"mrx-gallery-item__preview-controls--icon\" [href]=\"googleCheckUrl\" target=\"_blank\" (click)=\"$event.stopPropagation()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path d=\"M11.5561 4.8901H11.0997V4.86659H5.99967V7.13325H9.20219C8.73497 8.45273 7.47952 9.39992 5.99967 9.39992C4.12202 9.39992 2.59967 7.87757 2.59967 5.99992C2.59967 4.12227 4.12202 2.59992 5.99967 2.59992C6.86639 2.59992 7.65491 2.92689 8.25529 3.46097L9.85811 1.85815C8.84604 0.914935 7.49227 0.333252 5.99967 0.333252C2.87026 0.333252 0.333008 2.8705 0.333008 5.99992C0.333008 9.12934 2.87026 11.6666 5.99967 11.6666C9.12909 11.6666 11.6663 9.12934 11.6663 5.99992C11.6663 5.61997 11.6272 5.24909 11.5561 4.8901Z\" fill=\"#FBC02D\"/>\r\n <path d=\"M0.987305 3.36237L2.84909 4.72775C3.35285 3.48052 4.57289 2.59992 6.0006 2.59992C6.86732 2.59992 7.65584 2.92689 8.25622 3.46097L9.85904 1.85815C8.84697 0.914935 7.4932 0.333252 6.0006 0.333252C3.82404 0.333252 1.93647 1.56207 0.987305 3.36237Z\" fill=\"#E53935\"/>\r\n <path d=\"M6.0008 11.6665C7.4645 11.6665 8.79447 11.1063 9.80002 10.1954L8.04619 8.7113C7.47725 9.14225 6.77005 9.3998 6.0008 9.3998C4.5269 9.3998 3.27542 8.45999 2.80395 7.14844L0.956055 8.57219C1.89389 10.4073 3.79845 11.6665 6.0008 11.6665Z\" fill=\"#4CAF50\"/>\r\n <path d=\"M11.5564 4.88997L11.5519 4.86646H11.1H6V7.13312H9.20252C8.97812 7.76694 8.5704 8.31349 8.04453 8.71157C8.04482 8.71129 8.0451 8.71129 8.04538 8.71101L9.79922 10.1951C9.67512 10.3079 11.6667 8.83312 11.6667 5.99979C11.6667 5.61984 11.6276 5.24896 11.5564 4.88997Z\" fill=\"#1565C0\"/>\r\n </svg>\r\n </a>\r\n\r\n <div class=\"mrx-gallery-item__preview-controls__button d-flex align-items-center justify-content-center\" *ngIf=\"isEditing\" (click)=\"$event.stopPropagation()\">\r\n <span class=\"mrx-icon icon-delete icon-font-16 text-bold\" (click)=\"deleteImage()\"></span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"showDate\" class=\"mrx-gallery-item__date mb-2\">\r\n <ng-container *ngIf=\"isEditing; else dateTemplate\">\r\n <mrx-label [required]=\"requiredDate\">\u0414\u0430\u0442\u0430 \u043C\u0435\u0440\u043E\u043F\u0440\u0438\u044F\u0442\u0438\u044F</mrx-label>\r\n\r\n <mrx-input-datepicker\r\n [fields]=\"(fields$ | async)!\"\r\n [(ngModel)]=\"preview.eventDate\"\r\n [invalid]=\"isDateInvalid\"\r\n [minDate]=\"minDate\"\r\n [maxDate]=\"maxDate\"\r\n [isShowMessages]=\"false\"\r\n [invalidMessage]=\"dateInvalidMessage\"\r\n [closable]=\"false\"\r\n [format]=\"'YYYY-MM-DD'\"\r\n [timepicker]=\"false\"\r\n [leadZeroDateTime]=\"true\"\r\n [mask]=\"'d0.M0.0000'\"\r\n (modelChange)=\"changeField(ChangeableField.EventDate, $event)\"\r\n ></mrx-input-datepicker>\r\n </ng-container>\r\n\r\n <ng-template #dateTemplate>\r\n <p>\u0414\u0430\u0442\u0430 \u043C\u0435\u0440\u043E\u043F\u0440\u0438\u044F\u0442\u0438\u044F: {{ preview.eventDate | dateFormat }}</p>\r\n </ng-template>\r\n </div>\r\n\r\n <div *ngIf=\"showCounterparties\" class=\"mrx-gallery-item__counterparties mb-2\">\r\n <ng-container *ngIf=\"isEditing; else counterpartiesTemplate\">\r\n <mrx-label>\u041D\u0430\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u043D\u0438\u0435 \u043A\u043E\u043D\u0442\u0440\u0430\u0433\u0435\u043D\u0442\u0430</mrx-label>\r\n\r\n <mrx-input-select\r\n [fields]=\"(fields$ | async)!\"\r\n [(ngModel)]=\"preview.counterpartySelectedIds\"\r\n [items]=\"preview.counterparties || []\"\r\n [multiple]=\"true\"\r\n [sortable]=\"true\"\r\n [clearable]=\"false\"\r\n [maxSelectedItems]=\"maxSelectedItems\"\r\n [bindValue]=\"'value'\"\r\n [bindLabel]=\"'text'\"\r\n [placeholder]=\"'\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u043A\u043E\u043D\u0442\u0440\u0430\u0433\u0435\u043D\u0442\u0430'\"\r\n [checkInvalid]=\"counterpartiesCheckInvalid\"\r\n [invalid]=\"isCounterpartiesInvalid\"\r\n [invalidMessage]=\"counterpartiesInvalidMessage\"\r\n (modelChange)=\"changeField(ChangeableField.Counterparties, $event)\"\r\n >\r\n <ng-template #contentTemplate>\r\n <span class=\"py-1 px-3 mnh-px-36 d-flex align-items-center color-text-secondary\">{{ counterpartySelectionHint }}</span>\r\n </ng-template>\r\n </mrx-input-select>\r\n </ng-container>\r\n\r\n <ng-template #counterpartiesTemplate>\r\n <p>\u041D\u0430\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u043D\u0438\u0435 \u043A\u043E\u043D\u0442\u0440\u0430\u0433\u0435\u043D\u0442\u0430: {{ counterpartiesText }}</p>\r\n </ng-template>\r\n </div>\r\n\r\n <div class=\"mrx-gallery-item__description\">\r\n <mrx-input-textarea\r\n *ngIf=\"isEditing; else textTemplate\"\r\n [fields]=\"(fields$ | async)!\"\r\n [ngModel]=\"preview.description\"\r\n [autosize]=\"descriptionAutosize\"\r\n [rows]=\"descriptionRows\"\r\n [maxlength]=\"descriptionMaxLength\"\r\n [placeholder]=\"'\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435'\"\r\n [checkInvalid]=\"descriptionCheckInvalid\"\r\n [invalid]=\"isDescriptionInvalid\"\r\n [invalidMessage]=\"descriptionInvalidMessage\"\r\n (modelChange)=\"changeField(ChangeableField.Description, $event)\"\r\n ></mrx-input-textarea>\r\n\r\n <ng-template #textTemplate>\r\n {{ preview.description }}\r\n </ng-template>\r\n </div>\r\n</div>\r\n", styles: [".mrx-gallery-item{cursor:pointer}.mrx-gallery-item__preview{width:100%;height:180px;border-radius:4px;overflow:hidden;position:relative;margin-bottom:8px}.mrx-gallery-item__preview img{width:100%;height:100%;object-fit:cover;object-position:center top}.mrx-gallery-item__preview-overlay{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(0,0,0,0) 78.93%,rgba(0,0,0,.35) 91.52%)}.mrx-gallery-item__preview-controls{position:absolute;bottom:0;left:0;right:0;z-index:2;padding:8px;display:flex;align-items:center;justify-content:flex-end;gap:8px}.mrx-gallery-item__preview-controls--text{font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:var(--body-sm-line-height);color:var(--neutral-text-inverse);opacity:.8}.mrx-gallery-item__preview-controls--icon{width:16px;height:16px;display:flex;align-items:center;justify-content:center;background-color:#fff;border-radius:50%}.mrx-gallery-item__preview-controls__button{padding:4px;border-radius:4px;background:var(--system-white, #FFF)}.mrx-gallery-item__description{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height);color:var(--neutral-text-primary);word-break:break-word}.mrx-gallery-item__date p,.mrx-gallery-item__counterparties p{font-family:var(--body-md-bold-font-family);font-size:var(--body-md-bold-font-size);font-weight:var(--body-md-bold-font-weight);line-height:var(--body-md-bold-line-height);color:var(--neutral-text-primary)}.mrx-gallery-item ::ng-deep .ng-value-label{text-wrap:wrap;word-break:break-word}\n"] }]
|
|
172
|
+
args: [{ selector: 'mrx-gallery-item', changeDetection: ChangeDetectionStrategy.OnPush, providers: [MrxAutosaveService], template: "<div class=\"mrx-gallery-item\">\r\n <div class=\"mrx-gallery-item__preview\" (click)=\"onOpenGalleryModal()\">\r\n\r\n <img [src]=\"getImageUrl()\" [alt]=\"preview.imageName || 'image'\" *ngIf=\"!isLoadingImage; else skeletonTemplate\">\r\n\r\n <ng-template #skeletonTemplate>\r\n <div class=\"d-flex align-items-center justify-content-center w-100 h-100\">\r\n <mrx-loader size=\"medium\" color=\"brand\"></mrx-loader>\r\n </div>\r\n </ng-template>\r\n\r\n <div class=\"mrx-gallery-item__preview-overlay\" *ngIf=\"!isLoadingImage\"></div>\r\n\r\n <div class=\"mrx-gallery-item__preview-controls\" *ngIf=\"!isLoadingImage\">\r\n <a *ngIf=\"enableYandexCheck\" class=\"mrx-gallery-item__preview-controls--icon\" [href]=\"yandexCheckUrl\" target=\"_blank\" (click)=\"$event.stopPropagation()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_12346_12076)\">\r\n <path d=\"M8.00031 15.9838C12.4096 15.9838 15.984 12.4093 15.984 8.00006C15.984 3.59078 12.4096 0.0163574 8.00031 0.0163574C3.59103 0.0163574 0.0166016 3.59078 0.0166016 8.00006C0.0166016 12.4093 3.59103 15.9838 8.00031 15.9838Z\" fill=\"white\"/>\r\n <path d=\"M10.8893 13.0118H9.1367V4.34361H8.35596C6.92484 4.34361 6.17521 5.05916 6.17521 6.12731C6.17521 7.33916 6.69225 7.90065 7.76188 8.6162L8.64336 9.21028L6.11003 13.0103H4.22559L6.50559 9.61768C5.19447 8.68139 4.4567 7.76731 4.4567 6.22509C4.4567 4.29768 5.8004 2.98657 8.3441 2.98657H10.8774V13.0088H10.8893V13.0118Z\" fill=\"#FC3F1D\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_12346_12076\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\"/>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </a>\r\n\r\n <a *ngIf=\"enableGoogleCheck\" class=\"mrx-gallery-item__preview-controls--icon\" [href]=\"googleCheckUrl\" target=\"_blank\" (click)=\"$event.stopPropagation()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path d=\"M11.5561 4.8901H11.0997V4.86659H5.99967V7.13325H9.20219C8.73497 8.45273 7.47952 9.39992 5.99967 9.39992C4.12202 9.39992 2.59967 7.87757 2.59967 5.99992C2.59967 4.12227 4.12202 2.59992 5.99967 2.59992C6.86639 2.59992 7.65491 2.92689 8.25529 3.46097L9.85811 1.85815C8.84604 0.914935 7.49227 0.333252 5.99967 0.333252C2.87026 0.333252 0.333008 2.8705 0.333008 5.99992C0.333008 9.12934 2.87026 11.6666 5.99967 11.6666C9.12909 11.6666 11.6663 9.12934 11.6663 5.99992C11.6663 5.61997 11.6272 5.24909 11.5561 4.8901Z\" fill=\"#FBC02D\"/>\r\n <path d=\"M0.987305 3.36237L2.84909 4.72775C3.35285 3.48052 4.57289 2.59992 6.0006 2.59992C6.86732 2.59992 7.65584 2.92689 8.25622 3.46097L9.85904 1.85815C8.84697 0.914935 7.4932 0.333252 6.0006 0.333252C3.82404 0.333252 1.93647 1.56207 0.987305 3.36237Z\" fill=\"#E53935\"/>\r\n <path d=\"M6.0008 11.6665C7.4645 11.6665 8.79447 11.1063 9.80002 10.1954L8.04619 8.7113C7.47725 9.14225 6.77005 9.3998 6.0008 9.3998C4.5269 9.3998 3.27542 8.45999 2.80395 7.14844L0.956055 8.57219C1.89389 10.4073 3.79845 11.6665 6.0008 11.6665Z\" fill=\"#4CAF50\"/>\r\n <path d=\"M11.5564 4.88997L11.5519 4.86646H11.1H6V7.13312H9.20252C8.97812 7.76694 8.5704 8.31349 8.04453 8.71157C8.04482 8.71129 8.0451 8.71129 8.04538 8.71101L9.79922 10.1951C9.67512 10.3079 11.6667 8.83312 11.6667 5.99979C11.6667 5.61984 11.6276 5.24896 11.5564 4.88997Z\" fill=\"#1565C0\"/>\r\n </svg>\r\n </a>\r\n\r\n <div class=\"mrx-gallery-item__preview-controls__button d-flex align-items-center justify-content-center\" *ngIf=\"isEditing\" (click)=\"$event.stopPropagation()\">\r\n <span class=\"mrx-icon icon-delete icon-font-16 text-bold\" (click)=\"deleteImage()\"></span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"showDate\" class=\"mrx-gallery-item__date mb-2\">\r\n <ng-container *ngIf=\"isEditing; else dateTemplate\">\r\n <mrx-label [required]=\"requiredDate\">\u0414\u0430\u0442\u0430 \u043C\u0435\u0440\u043E\u043F\u0440\u0438\u044F\u0442\u0438\u044F</mrx-label>\r\n\r\n <mrx-input-datepicker\r\n [fields]=\"(fields$ | async)!\"\r\n [(ngModel)]=\"preview.eventDate\"\r\n [invalid]=\"isDateInvalid\"\r\n [minDate]=\"minDate\"\r\n [maxDate]=\"maxDate\"\r\n [isShowMessages]=\"false\"\r\n [invalidMessage]=\"dateInvalidMessage\"\r\n [closable]=\"false\"\r\n [format]=\"'YYYY-MM-DD'\"\r\n [timepicker]=\"false\"\r\n [leadZeroDateTime]=\"true\"\r\n [mask]=\"'d0.M0.0000'\"\r\n (modelChange)=\"changeField(ChangeableField.EventDate, $event)\"\r\n ></mrx-input-datepicker>\r\n </ng-container>\r\n\r\n <ng-template #dateTemplate>\r\n <p>\u0414\u0430\u0442\u0430 \u043C\u0435\u0440\u043E\u043F\u0440\u0438\u044F\u0442\u0438\u044F: {{ preview.eventDate | dateFormat }}</p>\r\n </ng-template>\r\n </div>\r\n\r\n <div *ngIf=\"showCounterparties\" class=\"mrx-gallery-item__counterparties mb-2\">\r\n <ng-container *ngIf=\"isEditing; else counterpartiesTemplate\">\r\n <mrx-label>\u041D\u0430\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u043D\u0438\u0435 \u043A\u043E\u043D\u0442\u0440\u0430\u0433\u0435\u043D\u0442\u0430</mrx-label>\r\n\r\n <mrx-input-select\r\n [fields]=\"(fields$ | async)!\"\r\n [(ngModel)]=\"preview.counterpartySelectedIds\"\r\n [items]=\"preview.counterparties || []\"\r\n [multiple]=\"true\"\r\n [sortable]=\"true\"\r\n [clearable]=\"false\"\r\n [maxSelectedItems]=\"maxSelectedItems\"\r\n [bindValue]=\"'value'\"\r\n [bindLabel]=\"'text'\"\r\n [placeholder]=\"'\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u043A\u043E\u043D\u0442\u0440\u0430\u0433\u0435\u043D\u0442\u0430'\"\r\n [checkInvalid]=\"counterpartiesCheckInvalid\"\r\n [invalid]=\"isCounterpartiesInvalid\"\r\n [invalidMessage]=\"counterpartiesInvalidMessage\"\r\n (modelChange)=\"changeField(ChangeableField.Counterparties, $event)\"\r\n >\r\n <ng-template #contentTemplate>\r\n <span class=\"py-1 px-3 mnh-px-36 d-flex align-items-center color-text-secondary\">{{ counterpartySelectionHint }}</span>\r\n </ng-template>\r\n </mrx-input-select>\r\n </ng-container>\r\n\r\n <ng-template #counterpartiesTemplate>\r\n <p>\u041D\u0430\u0438\u043C\u0435\u043D\u043E\u0432\u0430\u043D\u0438\u0435 \u043A\u043E\u043D\u0442\u0440\u0430\u0433\u0435\u043D\u0442\u0430: {{ counterpartiesText }}</p>\r\n </ng-template>\r\n </div>\r\n\r\n <div class=\"mrx-gallery-item__description\">\r\n <mrx-input-textarea\r\n *ngIf=\"isEditing; else textTemplate\"\r\n [fields]=\"(fields$ | async)!\"\r\n [ngModel]=\"preview.description\"\r\n [autosize]=\"descriptionAutosize\"\r\n [rows]=\"descriptionRows\"\r\n [maxlength]=\"descriptionMaxLength\"\r\n [placeholder]=\"'\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043E\u043F\u0438\u0441\u0430\u043D\u0438\u0435'\"\r\n [checkInvalid]=\"descriptionCheckInvalid\"\r\n [invalid]=\"isDescriptionInvalid\"\r\n [invalidMessage]=\"descriptionInvalidMessage\"\r\n (modelChange)=\"changeField(ChangeableField.Description, $event)\"\r\n ></mrx-input-textarea>\r\n\r\n <ng-template #textTemplate>\r\n {{ preview.description }}\r\n </ng-template>\r\n </div>\r\n</div>\r\n", styles: [".mrx-gallery-item{cursor:pointer}.mrx-gallery-item__preview{width:100%;height:180px;border-radius:4px;overflow:hidden;position:relative;margin-bottom:8px}.mrx-gallery-item__preview img{width:100%;height:100%;object-fit:cover;object-position:center top}.mrx-gallery-item__preview-overlay{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(0,0,0,0) 78.93%,rgba(0,0,0,.35) 91.52%)}.mrx-gallery-item__preview-controls{position:absolute;bottom:0;left:0;right:0;z-index:2;padding:8px;display:flex;align-items:center;justify-content:flex-end;gap:8px}.mrx-gallery-item__preview-controls--text{font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:var(--body-sm-line-height);color:var(--neutral-text-inverse);opacity:.8}.mrx-gallery-item__preview-controls--icon{width:16px;height:16px;display:flex;align-items:center;justify-content:center;background-color:#fff;border-radius:50%}.mrx-gallery-item__preview-controls__button{padding:4px;border-radius:4px;background:var(--system-white, #FFF)}.mrx-gallery-item__description{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height);color:var(--neutral-text-primary);word-break:break-word}.mrx-gallery-item__date p,.mrx-gallery-item__counterparties p{font-family:var(--body-md-bold-font-family);font-size:var(--body-md-bold-font-size);font-weight:var(--body-md-bold-font-weight);line-height:var(--body-md-bold-line-height);color:var(--neutral-text-primary)}.mrx-gallery-item ::ng-deep .ng-value-label{text-wrap:wrap;word-break:break-word}\n"] }]
|
|
173
173
|
}], ctorParameters: function () { return [{ type: i1.GalleryService }, { type: i2.SimpleModalService }, { type: i3.Store }]; }, propDecorators: { preview: [{
|
|
174
174
|
type: Input
|
|
175
175
|
}], index: [{
|
|
@@ -202,6 +202,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
202
202
|
type: Input
|
|
203
203
|
}], counterpartySelectionHint: [{
|
|
204
204
|
type: Input
|
|
205
|
+
}], enableYandexCheck: [{
|
|
206
|
+
type: Input
|
|
207
|
+
}], enableGoogleCheck: [{
|
|
208
|
+
type: Input
|
|
205
209
|
}], setIsLoading: [{
|
|
206
210
|
type: Input,
|
|
207
211
|
args: ['isLoading']
|
|
@@ -220,4 +224,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
220
224
|
}], updatePhoto: [{
|
|
221
225
|
type: Output
|
|
222
226
|
}] } });
|
|
223
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FsbGVyeS1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRhLXVpL3NyYy9saWIvY29tcG9uZW50cy9nYWxsZXJ5L2NvbXBvbmVudHMvZ2FsbGVyeS1pdGVtL2dhbGxlcnktaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJ0YS11aS9zcmMvbGliL2NvbXBvbmVudHMvZ2FsbGVyeS9jb21wb25lbnRzL2dhbGxlcnktaXRlbS9nYWxsZXJ5LWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRyxPQUFPLEVBQ0wsZUFBZSxFQUloQixNQUFNLGlDQUFpQyxDQUFDO0FBR3pDLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQ3hHLE9BQU8sRUFDTCxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBRXJFLGtCQUFrQixFQUNsQixZQUFZLEVBQ2IsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7Ozs7OztBQVc5QixNQUFNLE9BQU8sb0JBQW9CO0lBdUMvQixZQUNVLGNBQThCLEVBQzlCLG1CQUF1QyxFQUN2QyxNQUFhO1FBRmIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBb0I7UUFDdkMsV0FBTSxHQUFOLE1BQU0sQ0FBTztRQXpDZixjQUFTLEdBQVcsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDM0MsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUdWLG9CQUFlLEdBQUcsZUFBZSxDQUFDO1FBQzNDLFlB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QW5DLEtBQUs7dUJBQUMsV0FBVztnQkFLVCxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0cscUJBQXFCO3NCQUE3QixLQUFLO2dCQUNHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBRUksZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIENoYW5nZWFibGVGaWVsZCxcclxuICBHYWxsZXJ5SXRlbU1vZGVsLFxyXG4gIEdhbGxlcnlSb3RhdGVTbGlkZXMsXHJcbiAgR2FsbGVyeVVwZGF0ZVBheWxvYWRcclxufSBmcm9tICcuLi8uLi9tb2RlbHMvZ2FsbGVyeS1pdGVtLm1vZGVsJztcclxuaW1wb3J0IHsgR2FsbGVyeVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9nYWxsZXJ5LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTaW1wbGVNb2RhbFNlcnZpY2UgfSBmcm9tICduZ3gtc2ltcGxlLW1vZGFsJztcclxuaW1wb3J0IHsgR2FsbGVyeUNvbmZpcm1Nb2RhbENvbXBvbmVudCB9IGZyb20gJy4uL2dhbGxlcnktY29uZmlybS1tb2RhbC9nYWxsZXJ5LWNvbmZpcm0tbW9kYWwuY29tcG9uZW50JztcclxuaW1wb3J0IHtcclxuICBhdXRvc2F2ZUFkZElkLCBhdXRvc2F2ZUVycm9yRm9yLCBhdXRvc2F2ZVN0YXJ0Rm9yLCBhdXRvc2F2ZVN1Y2Nlc3NGb3IsXHJcbiAgRmllbGQsXHJcbiAgTXJ4QXV0b3NhdmVTZXJ2aWNlLFxyXG4gIHNlbGVjdEZpZWxkc1xyXG59IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgU3RvcmUgfSBmcm9tIFwiQG5ncngvc3RvcmVcIjtcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ21yeC1nYWxsZXJ5LWl0ZW0nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9nYWxsZXJ5LWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2dhbGxlcnktaXRlbS5jb21wb25lbnQubGVzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHByb3ZpZGVyczogW01yeEF1dG9zYXZlU2VydmljZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIEdhbGxlcnlJdGVtQ29tcG9uZW50IHtcclxuICBwcml2YXRlIHRpbWVTdGFtcDogbnVtYmVyID0gKG5ldyBEYXRlKCkpLmdldFRpbWUoKTtcclxuICBwcml2YXRlIGlzTG9hZGluZyA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX3RpbWVyITogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD47XHJcblxyXG4gIHB1YmxpYyByZWFkb25seSBDaGFuZ2VhYmxlRmllbGQgPSBDaGFuZ2VhYmxlRmllbGQ7XHJcbiAgcHVibGljIGZpZWxkcyQ6IE9ic2VydmFibGU8RmllbGRbXT4gPSB0aGlzLl9zdG9yZS5zZWxlY3Qoc2VsZWN0RmllbGRzKVxyXG5cclxuICBASW5wdXQoKSBwcmV2aWV3ITogR2FsbGVyeUl0ZW1Nb2RlbDtcclxuICBASW5wdXQoKSBpbmRleCE6IG51bWJlcjtcclxuICBASW5wdXQoKSBpc0VkaXRpbmcgPSBmYWxzZTtcclxuICBASW5wdXQoKSBkZXNjcmlwdGlvbk1heExlbmd0aCA9IDA7XHJcbiAgQElucHV0KCkgZGVzY3JpcHRpb25Sb3dzID0gMTtcclxuICBASW5wdXQoKSBkZXNjcmlwdGlvbkF1dG9zaXplOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZGVsZXRlRW5kUG9pbnQhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgdXBkYXRlRW5kUG9pbnQhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcm90YXRlU2xpZGVzOiBHYWxsZXJ5Um90YXRlU2xpZGVzW10gPSBbXTtcclxuICBASW5wdXQoKSBzaG93RGF0ZSE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgc2hvd0NvdW50ZXJwYXJ0aWVzITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBtaW5EYXRlITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIG1heERhdGUhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcmVxdWlyZWREYXRlITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBtYXhTZWxlY3RlZEl0ZW1zITogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIGNvdW50ZXJwYXJ0eVNlbGVjdGlvbkhpbnQhOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgnaXNMb2FkaW5nJykgc2V0IHNldElzTG9hZGluZyh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5pc0xvYWRpbmcgPSB2YWx1ZTtcclxuICAgIHRoaXMudGltZVN0YW1wID0gKG5ldyBEYXRlKCkpLmdldFRpbWUoKTtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIG5lZWRUb1NhdmVJbnZhbGlkRGF0ZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgbWluRGF0ZUludmFsaWRNZXNzYWdlOiBzdHJpbmcgPSAnJztcclxuICBASW5wdXQoKSBtYXhEYXRlSW52YWxpZE1lc3NhZ2U6IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpIHZhbGlkYXRlT25TdWJtaXQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgQE91dHB1dCgpIG9wZW5HYWxsZXJ5TW9kYWw6IEV2ZW50RW1pdHRlcjxudW1iZXI+ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XHJcbiAgQE91dHB1dCgpIGRlbGV0ZVBob3RvOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIEBPdXRwdXQoKSB1cGRhdGVQaG90bzogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGdhbGxlcnlTZXJ2aWNlOiBHYWxsZXJ5U2VydmljZSxcclxuICAgIHByaXZhdGUgX3NpbXBsZU1vZGFsU2VydmljZTogU2ltcGxlTW9kYWxTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc3RvcmU6IFN0b3JlXHJcbiAgKSB7XHJcbiAgfVxyXG5cclxuICBnZXRJbWFnZVVybCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMucHJldmlldy5wcmV2aWV3VXJsICsgJz8nICsgdGhpcy50aW1lU3RhbXA7XHJcbiAgfVxyXG5cclxuICBnZXQgeWFuZGV4Q2hlY2tVcmwoKSB7XHJcbiAgICByZXR1cm4gYGh0dHBzOi8veWFuZGV4LnJ1L2ltYWdlcy9zZWFyY2g/c291cmNlPWNvbGxlY3Rpb25zJnJwdD1pbWFnZXZpZXcmdXJsPSR7dGhpcy5wcmV2aWV3LnVybH1gO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGdvb2dsZUNoZWNrVXJsKCkge1xyXG4gICAgcmV0dXJuIGBodHRwczovL2xlbnMuZ29vZ2xlLmNvbS91cGxvYWRieXVybD91cmw9JHt0aGlzLnByZXZpZXcudXJsfWA7XHJcbiAgfVxyXG5cclxuICBnZXQgaXNMb2FkaW5nSW1hZ2UoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5pc0xvYWRpbmcgJiYgISF0aGlzLnJvdGF0ZVNsaWRlcy5maW5kKChzKSA9PiBzLnByZXZpZXdJbWFnZUlkID09PSB0aGlzLnByZXZpZXcucHJldmlld0ltYWdlSWQpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGNvdW50ZXJwYXJ0aWVzVGV4dCgpOiBzdHJpbmcge1xyXG4gICAgaWYgKCF0aGlzLnByZXZpZXcuY291bnRlcnBhcnRpZXMpIHtcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLnByZXZpZXcuY291bnRlcnBhcnRpZXMubWFwKGl0ZW0gPT4gaXRlbS50ZXh0KS5qb2luKCcsICcpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzQ291bnRlcnBhcnRpZXNJbnZhbGlkKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKCF0aGlzLnZhbGlkYXRlT25TdWJtaXQpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiAhdGhpcy5wcmV2aWV3LmNvdW50ZXJwYXJ0eVNlbGVjdGVkSWRzIHx8IHRoaXMucHJldmlldy5jb3VudGVycGFydHlTZWxlY3RlZElkcy5sZW5ndGggPT09IDA7XHJcbiAgfVxyXG5cclxuICBnZXQgY291bnRlcnBhcnRpZXNDaGVja0ludmFsaWQoKTogdHJ1ZSB8IG51bGwge1xyXG4gICAgcmV0dXJuIHRoaXMuaXNDb3VudGVycGFydGllc0ludmFsaWQgPyB0cnVlIDogbnVsbDtcclxuICB9XHJcblxyXG4gIGdldCBjb3VudGVycGFydGllc0ludmFsaWRNZXNzYWdlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5pc0NvdW50ZXJwYXJ0aWVzSW52YWxpZCA/ICfQktGL0LHQtdGA0LjRgtC1INC+0YIgMSDQtNC+IDMg0LLQsNGA0LjQsNC90YLQvtCyJyA6ICcnO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzRGVzY3JpcHRpb25JbnZhbGlkKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKCF0aGlzLnZhbGlkYXRlT25TdWJtaXQpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiAhdGhpcy5wcmV2aWV3LmRlc2NyaXB0aW9uIHx8ICF0aGlzLnByZXZpZXcuZGVzY3JpcHRpb24udHJpbSgpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGRlc2NyaXB0aW9uQ2hlY2tJbnZhbGlkKCk6IHRydWUgfCBudWxsIHtcclxuICAgIHJldHVybiB0aGlzLmlzRGVzY3JpcHRpb25JbnZhbGlkID8gdHJ1ZSA6IG51bGw7XHJcbiAgfVxyXG5cclxuICBnZXQgZGVzY3JpcHRpb25JbnZhbGlkTWVzc2FnZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuaXNEZXNjcmlwdGlvbkludmFsaWQgPyAn0J/QvtC70LUg0L7QsdGP0LfQsNGC0LXQu9GM0L3QviDQtNC70Y8g0LfQsNC/0L7Qu9C90LXQvdC40Y8nIDogJyc7XHJcbiAgfVxyXG5cclxuICBnZXQgaXNFcnJvck1pbkRhdGUoKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIXRoaXMucHJldmlldy5ldmVudERhdGUpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGZhY3REYXRlID0gbmV3IERhdGUodGhpcy5wcmV2aWV3LmV2ZW50RGF0ZSk7XHJcbiAgICByZXR1cm4gISF0aGlzLm1pbkRhdGUgPyBuZXcgRGF0ZSh0aGlzLm1pbkRhdGUpLmdldFRpbWUoKSA+IGZhY3REYXRlLmdldFRpbWUoKSA6IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzRXJyb3JNYXhEYXRlKCk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKCF0aGlzLnByZXZpZXcuZXZlbnREYXRlKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBmYWN0RGF0ZSA9IG5ldyBEYXRlKHRoaXMucHJldmlldy5ldmVudERhdGUpO1xyXG4gICAgcmV0dXJuICEhdGhpcy5tYXhEYXRlID8gbmV3IERhdGUodGhpcy5tYXhEYXRlKS5nZXRUaW1lKCkgPCBmYWN0RGF0ZS5nZXRUaW1lKCkgOiBmYWxzZTtcclxuICB9XHJcblxyXG4gIGdldCBpc0RhdGVJbnZhbGlkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICh0aGlzLmlzRXJyb3JNaW5EYXRlIHx8IHRoaXMuaXNFcnJvck1heERhdGUpIHx8XHJcbiAgICAgICghdGhpcy5wcmV2aWV3LmV2ZW50RGF0ZSAmJiB0aGlzLnJlcXVpcmVkRGF0ZSk7XHJcbiAgfVxyXG5cclxuICBnZXQgZGF0ZUludmFsaWRNZXNzYWdlKCkge1xyXG4gICAgaWYgKCF0aGlzLnByZXZpZXcuZXZlbnREYXRlKSB7XHJcbiAgICAgIHJldHVybiAnJztcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBmYWN0RGF0ZSA9IG5ldyBEYXRlKHRoaXMucHJldmlldy5ldmVudERhdGUpO1xyXG4gICAgY29uc3QgbWluRGF0ZSA9IHRoaXMubWluRGF0ZSA/IG5ldyBEYXRlKHRoaXMubWluRGF0ZSkgOiBudWxsO1xyXG4gICAgY29uc3QgbWF4RGF0ZSA9IHRoaXMubWF4RGF0ZSA/IG5ldyBEYXRlKHRoaXMubWF4RGF0ZSkgOiBudWxsO1xyXG5cclxuICAgIGlmIChtaW5EYXRlICYmIG1pbkRhdGUuZ2V0VGltZSgpID4gZmFjdERhdGUuZ2V0VGltZSgpKSB7XHJcbiAgICAgIHJldHVybiAhIXRoaXMubWluRGF0ZUludmFsaWRNZXNzYWdlID8gdGhpcy5taW5EYXRlSW52YWxpZE1lc3NhZ2UgOiB0aGlzLmZvcm1hdERhdGVFcnJvck1lc3NhZ2UodGhpcy5taW5EYXRlLCAn0J3QtdC70YzQt9GPINGD0YHRgtCw0L3QvtCy0LjRgtGMINC00LDRgtGDLCDRgNCw0L3QtdC1INGH0LXQvCcpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChtYXhEYXRlICYmIG1heERhdGUuZ2V0VGltZSgpIDwgZmFjdERhdGUuZ2V0VGltZSgpKSB7XHJcbiAgICAgIHJldHVybiAhIXRoaXMubWF4RGF0ZUludmFsaWRNZXNzYWdlID8gdGhpcy5tYXhEYXRlSW52YWxpZE1lc3NhZ2UgOiB0aGlzLmZvcm1hdERhdGVFcnJvck1lc3NhZ2UodGhpcy5tYXhEYXRlLCAn0J3QtdC70YzQt9GPINGD0YHRgtCw0L3QvtCy0LjRgtGMINC00LDRgtGDLCDQv9C+0LfQtNC90LXQtSDRh9C10LwnKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gJyc7XHJcbiAgfVxyXG5cclxuXHJcbiAgZm9ybWF0RGF0ZUVycm9yTWVzc2FnZShkYXRlOiBzdHJpbmcsIG1lc3NhZ2U6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBmb3JtYXR0ZWREYXRlID0gbmV3IERhdGUoZGF0ZSkudG9Mb2NhbGVEYXRlU3RyaW5nKCdydS1SVScsIHtcclxuICAgICAgZGF5OiAnMi1kaWdpdCcsXHJcbiAgICAgIG1vbnRoOiAnMi1kaWdpdCcsXHJcbiAgICAgIHllYXI6ICdudW1lcmljJ1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gYCR7bWVzc2FnZX0gJHtmb3JtYXR0ZWREYXRlfWA7XHJcbiAgfVxyXG5cclxuICBvbk9wZW5HYWxsZXJ5TW9kYWwoKSB7XHJcbiAgICB0aGlzLm9wZW5HYWxsZXJ5TW9kYWwuZW1pdCh0aGlzLmluZGV4KTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZUltYWdlKCkge1xyXG4gICAgdGhpcy5fc2ltcGxlTW9kYWxTZXJ2aWNlLmFkZE1vZGFsKEdhbGxlcnlDb25maXJtTW9kYWxDb21wb25lbnQsIHtcclxuICAgICAgdGl0bGU6ICfQo9CU0JDQm9CV0J3QmNCVINCk0J7QotCe0JPQoNCQ0KTQmNCYJyxcclxuICAgICAgbWVzc2FnZTogJ9CS0Ysg0YXQvtGC0LjRgtC1INGD0LTQsNC70LjRgtGMINGE0L7RgtC+0LPRgNCw0YTQuNGOPydcclxuICAgIH0sIHt3cmFwcGVyRGVmYXVsdENsYXNzZXM6ICdtcngtbW9kYWwgZmFkZS1hbmltJ30pXHJcbiAgICAgIC5zdWJzY3JpYmUoKHJlcykgPT4ge1xyXG4gICAgICAgIGlmIChyZXMucmVzdWx0KSB7XHJcbiAgICAgICAgICB0aGlzLmdhbGxlcnlTZXJ2aWNlLmRlbGV0ZSh0aGlzLmRlbGV0ZUVuZFBvaW50LCB0aGlzLnByZXZpZXcudXVpZCkuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuZGVsZXRlUGhvdG8uZW1pdChyZXMpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gIH1cclxuXHJcbiAgY2hhbmdlRmllbGQoZmllbGQ6IENoYW5nZWFibGVGaWVsZCwgb2JqOiBhbnkpIHtcclxuICAgIGNsZWFyVGltZW91dCh0aGlzLl90aW1lcik7XHJcblxyXG4gICAgdGhpcy5wcmV2aWV3W2ZpZWxkXSA9IG9iai52YWx1ZTtcclxuXHJcbiAgICBpZighdGhpcy5uZWVkVG9TYXZlSW52YWxpZERhdGUgJiYgdGhpcy5pc0RhdGVJbnZhbGlkKSByZXR1cm47XHJcblxyXG4gICAgdGhpcy5fc3RvcmUuZGlzcGF0Y2goYXV0b3NhdmVBZGRJZCh7aWQ6IG9iai5pZCwgZ3JvdXBJZDogdGhpcy5wcmV2aWV3LnV1aWR9KSlcclxuICAgIHRoaXMuX3N0b3JlLmRpc3BhdGNoKGF1dG9zYXZlU3RhcnRGb3Ioe2lkOiBvYmouaWQsIGdyb3VwSWQ6IHRoaXMucHJldmlldy51dWlkfSkpXHJcblxyXG4gICAgdGhpcy5fdGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgY29uc3QgdXBkYXRlRGF0YTogR2FsbGVyeVVwZGF0ZVBheWxvYWQgPSB7XHJcbiAgICAgICAgZGVzY3JpcHRpb246IHRoaXMucHJldmlldy5kZXNjcmlwdGlvblxyXG4gICAgICB9O1xyXG5cclxuICAgICAgaWYgKHRoaXMucHJldmlldy5ldmVudERhdGUpIHtcclxuICAgICAgICB1cGRhdGVEYXRhLmV2ZW50RGF0ZSA9IHRoaXMucHJldmlldy5ldmVudERhdGU7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh0aGlzLnByZXZpZXcuY291bnRlcnBhcnR5U2VsZWN0ZWRJZHMpIHtcclxuICAgICAgICB1cGRhdGVEYXRhLmNvdW50ZXJwYXJ0eVNlbGVjdGVkSWRzID0gdGhpcy5wcmV2aWV3LmNvdW50ZXJwYXJ0eVNlbGVjdGVkSWRzO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLmdhbGxlcnlTZXJ2aWNlLnVwZGF0ZSh0aGlzLnVwZGF0ZUVuZFBvaW50LCB0aGlzLnByZXZpZXcudXVpZCwgdXBkYXRlRGF0YSkuc3Vic2NyaWJlKHJlcyA9PiB7XHJcbiAgICAgICAgdGhpcy51cGRhdGVQaG90by5lbWl0KHJlcyk7XHJcbiAgICAgICAgdGhpcy5fc3RvcmUuZGlzcGF0Y2goYXV0b3NhdmVTdWNjZXNzRm9yKHtpZDogb2JqLmlkLCBncm91cElkOiB0aGlzLnByZXZpZXcudXVpZH0pKVxyXG4gICAgICB9LCAoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5fc3RvcmUuZGlzcGF0Y2goYXV0b3NhdmVFcnJvckZvcih7aWQ6IG9iai5pZCwgZ3JvdXBJZDogdGhpcy5wcmV2aWV3LnV1aWR9KSlcclxuICAgICAgfSk7XHJcbiAgICB9LCAxNTAwKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIm1yeC1nYWxsZXJ5LWl0ZW1cIj5cclxuICA8ZGl2IGNsYXNzPVwibXJ4LWdhbGxlcnktaXRlbV9fcHJldmlld1wiIChjbGljayk9XCJvbk9wZW5HYWxsZXJ5TW9kYWwoKVwiPlxyXG5cclxuICAgIDxpbWcgW3NyY109XCJnZXRJbWFnZVVybCgpXCIgW2FsdF09XCJwcmV2aWV3LmltYWdlTmFtZSB8fCAnaW1hZ2UnXCIgKm5nSWY9XCIhaXNMb2FkaW5nSW1hZ2U7IGVsc2Ugc2tlbGV0b25UZW1wbGF0ZVwiPlxyXG5cclxuICAgIDxuZy10ZW1wbGF0ZSAjc2tlbGV0b25UZW1wbGF0ZT5cclxuICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlciB3LTEwMCBoLTEwMFwiPlxyXG4gICAgICAgIDxtcngtbG9hZGVyIHNpemU9XCJtZWRpdW1cIiBjb2xvcj1cImJyYW5kXCI+PC9tcngtbG9hZGVyPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cIm1yeC1nYWxsZXJ5LWl0ZW1fX3ByZXZpZXctb3ZlcmxheVwiICpuZ0lmPVwiIWlzTG9hZGluZ0ltYWdlXCI+PC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cIm1yeC1nYWxsZXJ5LWl0ZW1fX3ByZXZpZXctY29udHJvbHNcIiAqbmdJZj1cIiFpc0xvYWRpbmdJbWFnZVwiPlxyXG4gICAgICA8YSBjbGFzcz1cIm1yeC1nYWxsZXJ5LWl0ZW1fX3ByZXZpZXctY29udHJvbHMtLWljb25cIiBbaHJlZl09XCJ5YW5kZXhDaGVja1VybFwiIHRhcmdldD1cIl9ibGFua1wiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cclxuICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMTIzNDZfMTIwNzYpXCI+XHJcbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNOC4wMDAzMSAxNS45ODM4QzEyLjQwOTYgMTUuOTgzOCAxNS45ODQgMTIuNDA5MyAxNS45ODQgOC4wMDAwNkMxNS45ODQgMy41OTA3OCAxMi40MDk2IDAuMDE2MzU3NCA4LjAwMDMxIDAuMDE2MzU3NEMzLjU5MTAzIDAuMDE2MzU3NCAwLjAxNjYwMTYgMy41OTA3OCAwLjAxNjYwMTYgOC4wMDAwNkMwLjAxNjYwMTYgMTIuNDA5MyAzLjU5MTAzIDE1Ljk4MzggOC4wMDAzMSAxNS45ODM4WlwiIGZpbGw9XCJ3aGl0ZVwiLz5cclxuICAgICAgICAgICAgPHBhdGggZD1cIk0xMC44ODkzIDEzLjAxMThIOS4xMzY3VjQuMzQzNjFIOC4zNTU5NkM2LjkyNDg0IDQuMzQzNjEgNi4xNzUyMSA1LjA1OTE2IDYuMTc1MjEgNi4xMjczMUM2LjE3NTIxIDcuMzM5MTYgNi42OTIyNSA3LjkwMDY1IDcuNzYxODggOC42MTYyTDguNjQzMzYgOS4yMTAyOEw2LjExMDAzIDEzLjAxMDNINC4yMjU1OUw2LjUwNTU5IDkuNjE3NjhDNS4xOTQ0NyA4LjY4MTM5IDQuNDU2NyA3Ljc2NzMxIDQuNDU2NyA2LjIyNTA5QzQuNDU2NyA0LjI5NzY4IDUuODAwNCAyLjk4NjU3IDguMzQ0MSAyLjk4NjU3SDEwLjg3NzRWMTMuMDA4OEgxMC44ODkzVjEzLjAxMThaXCIgZmlsbD1cIiNGQzNGMURcIi8+XHJcbiAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfMTIzNDZfMTIwNzZcIj5cclxuICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiBmaWxsPVwid2hpdGVcIi8+XHJcbiAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgPC9zdmc+XHJcbiAgICAgIDwvYT5cclxuXHJcbiAgICAgIDxhIGNsYXNzPVwibXJ4LWdhbGxlcnktaXRlbV9fcHJldmlldy1jb250cm9scy0taWNvblwiIFtocmVmXT1cImdvb2dsZUNoZWNrVXJsXCIgdGFyZ2V0PVwiX2JsYW5rXCIgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxyXG4gICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMTJcIiBoZWlnaHQ9XCIxMlwiIHZpZXdCb3g9XCIwIDAgMTIgMTJcIiBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgPHBhdGggZD1cIk0xMS41NTYxIDQuODkwMUgxMS4wOTk3VjQuODY2NTlINS45OTk2N1Y3LjEzMzI1SDkuMjAyMTlDOC43MzQ5NyA4LjQ1MjczIDcuNDc5NTIgOS4zOTk5MiA1Ljk5OTY3IDkuMzk5OTJDNC4xMjIwMiA5LjM5OTkyIDIuNTk5NjcgNy44Nzc1NyAyLjU5OTY3IDUuOTk5OTJDMi41OTk2NyA0LjEyMjI3IDQuMTIyMDIgMi41OTk5MiA1Ljk5OTY3IDIuNTk5OTJDNi44NjYzOSAyLjU5OTkyIDcuNjU0OTEgMi45MjY4OSA4LjI1NTI5IDMuNDYwOTdMOS44NTgxMSAxLjg1ODE1QzguODQ2MDQgMC45MTQ5MzUgNy40OTIyNyAwLjMzMzI1MiA1Ljk5OTY3IDAuMzMzMjUyQzIuODcwMjYgMC4zMzMyNTIgMC4zMzMwMDggMi44NzA1IDAuMzMzMDA4IDUuOTk5OTJDMC4zMzMwMDggOS4xMjkzNCAyLjg3MDI2IDExLjY2NjYgNS45OTk2NyAxMS42NjY2QzkuMTI5MDkgMTEuNjY2NiAxMS42NjYzIDkuMTI5MzQgMTEuNjY2MyA1Ljk5OTkyQzExLjY2NjMgNS42MTk5NyAxMS42MjcyIDUuMjQ5MDkgMTEuNTU2MSA0Ljg5MDFaXCIgZmlsbD1cIiNGQkMwMkRcIi8+XHJcbiAgICAgICAgICA8cGF0aCBkPVwiTTAuOTg3MzA1IDMuMzYyMzdMMi44NDkwOSA0LjcyNzc1QzMuMzUyODUgMy40ODA1MiA0LjU3Mjg5IDIuNTk5OTIgNi4wMDA2IDIuNTk5OTJDNi44NjczMiAyLjU5OTkyIDcuNjU1ODQgMi45MjY4OSA4LjI1NjIyIDMuNDYwOTdMOS44NTkwNCAxLjg1ODE1QzguODQ2OTcgMC45MTQ5MzUgNy40OTMyIDAuMzMzMjUyIDYuMDAwNiAwLjMzMzI1MkMzLjgyNDA0IDAuMzMzMjUyIDEuOTM2NDcgMS41NjIwNyAwLjk4NzMwNSAzLjM2MjM3WlwiIGZpbGw9XCIjRTUzOTM1XCIvPlxyXG4gICAgICAgICAgPHBhdGggZD1cIk02LjAwMDggMTEuNjY2NUM3LjQ2NDUgMTEuNjY2NSA4Ljc5NDQ3IDExLjEwNjMgOS44MDAwMiAxMC4xOTU0TDguMDQ2MTkgOC43MTEzQzcuNDc3MjUgOS4xNDIyNSA2Ljc3MDA1IDkuMzk5OCA2LjAwMDggOS4zOTk4QzQuNTI2OSA5LjM5OTggMy4yNzU0MiA4LjQ1OTk5IDIuODAzOTUgNy4xNDg0NEwwLjk1NjA1NSA4LjU3MjE5QzEuODkzODkgMTAuNDA3MyAzLjc5ODQ1IDExLjY2NjUgNi4wMDA4IDExLjY2NjVaXCIgZmlsbD1cIiM0Q0FGNTBcIi8+XHJcbiAgICAgICAgICA8cGF0aCBkPVwiTTExLjU1NjQgNC44ODk5N0wxMS41NTE5IDQuODY2NDZIMTEuMUg2VjcuMTMzMTJIOS4yMDI1MkM4Ljk3ODEyIDcuNzY2OTQgOC41NzA0IDguMzEzNDkgOC4wNDQ1MyA4LjcxMTU3QzguMDQ0ODIgOC43MTEyOSA4LjA0NTEgOC43MTEyOSA4LjA0NTM4IDguNzExMDFMOS43OTkyMiAxMC4xOTUxQzkuNjc1MTIgMTAuMzA3OSAxMS42NjY3IDguODMzMTIgMTEuNjY2NyA1Ljk5OTc5QzExLjY2NjcgNS42MTk4NCAxMS42Mjc2IDUuMjQ4OTYgMTEuNTU2NCA0Ljg4OTk3WlwiIGZpbGw9XCIjMTU2NUMwXCIvPlxyXG4gICAgICAgIDwvc3ZnPlxyXG4gICAgICA8L2E+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwibXJ4LWdhbGxlcnktaXRlbV9fcHJldmlldy1jb250cm9sc19fYnV0dG9uIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiICpuZ0lmPVwiaXNFZGl0aW5nXCIgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibXJ4LWljb24gaWNvbi1kZWxldGUgaWNvbi1mb250LTE2IHRleHQtYm9sZFwiIChjbGljayk9XCJkZWxldGVJbWFnZSgpXCI+PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2ICpuZ0lmPVwic2hvd0RhdGVcIiBjbGFzcz1cIm1yeC1nYWxsZXJ5LWl0ZW1fX2RhdGUgbWItMlwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzRWRpdGluZzsgZWxzZSBkYXRlVGVtcGxhdGVcIj5cclxuICAgICAgPG1yeC1sYWJlbCBbcmVxdWlyZWRdPVwicmVxdWlyZWREYXRlXCI+0JTQsNGC0LAg0LzQtdGA0L7Qv9GA0LjRj9GC0LjRjzwvbXJ4LWxhYmVsPlxyXG5cclxuICAgICAgPG1yeC1pbnB1dC1kYXRlcGlja2VyXHJcbiAgICAgICAgW2ZpZWxkc109XCIoZmllbGRzJCB8IGFzeW5jKSFcIlxyXG4gICAgICAgIFsobmdNb2RlbCldPVwicHJldmlldy5ldmVudERhdGVcIlxyXG4gICAgICAgIFtpbnZhbGlkXT1cImlzRGF0ZUludmFsaWRcIlxyXG4gICAgICAgIFttaW5EYXRlXT1cIm1pbkRhdGVcIlxyXG4gICAgICAgIFttYXhEYXRlXT1cIm1heERhdGVcIlxyXG4gICAgICAgIFtpc1Nob3dNZXNzYWdlc109XCJmYWxzZVwiXHJcbiAgICAgICAgW2ludmFsaWRNZXNzYWdlXT1cImRhdGVJbnZhbGlkTWVzc2FnZVwiXHJcbiAgICAgICAgW2Nsb3NhYmxlXT1cImZhbHNlXCJcclxuICAgICAgICBbZm9ybWF0XT1cIidZWVlZLU1NLUREJ1wiXHJcbiAgICAgICAgW3RpbWVwaWNrZXJdPVwiZmFsc2VcIlxyXG4gICAgICAgIFtsZWFkWmVyb0RhdGVUaW1lXT1cInRydWVcIlxyXG4gICAgICAgIFttYXNrXT1cIidkMC5NMC4wMDAwJ1wiXHJcbiAgICAgICAgKG1vZGVsQ2hhbmdlKT1cImNoYW5nZUZpZWxkKENoYW5nZWFibGVGaWVsZC5FdmVudERhdGUsICRldmVudClcIlxyXG4gICAgICA+PC9tcngtaW5wdXQtZGF0ZXBpY2tlcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDxuZy10ZW1wbGF0ZSAjZGF0ZVRlbXBsYXRlPlxyXG4gICAgICA8cD7QlNCw0YLQsCDQvNC10YDQvtC/0YDQuNGP0YLQuNGPOiB7eyBwcmV2aWV3LmV2ZW50RGF0ZSB8IGRhdGVGb3JtYXQgfX08L3A+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2ICpuZ0lmPVwic2hvd0NvdW50ZXJwYXJ0aWVzXCIgY2xhc3M9XCJtcngtZ2FsbGVyeS1pdGVtX19jb3VudGVycGFydGllcyBtYi0yXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNFZGl0aW5nOyBlbHNlIGNvdW50ZXJwYXJ0aWVzVGVtcGxhdGVcIj5cclxuICAgICAgPG1yeC1sYWJlbD7QndCw0LjQvNC10L3QvtCy0LDQvdC40LUg0LrQvtC90YLRgNCw0LPQtdC90YLQsDwvbXJ4LWxhYmVsPlxyXG5cclxuICAgICAgPG1yeC1pbnB1dC1zZWxlY3RcclxuICAgICAgICBbZmllbGRzXT1cIihmaWVsZHMkIHwgYXN5bmMpIVwiXHJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJwcmV2aWV3LmNvdW50ZXJwYXJ0eVNlbGVjdGVkSWRzXCJcclxuICAgICAgICBbaXRlbXNdPVwicHJldmlldy5jb3VudGVycGFydGllcyB8fCBbXVwiXHJcbiAgICAgICAgW211bHRpcGxlXT1cInRydWVcIlxyXG4gICAgICAgIFtzb3J0YWJsZV09XCJ0cnVlXCJcclxuICAgICAgICBbY2xlYXJhYmxlXT1cImZhbHNlXCJcclxuICAgICAgICBbbWF4U2VsZWN0ZWRJdGVtc109XCJtYXhTZWxlY3RlZEl0ZW1zXCJcclxuICAgICAgICBbYmluZFZhbHVlXT1cIid2YWx1ZSdcIlxyXG4gICAgICAgIFtiaW5kTGFiZWxdPVwiJ3RleHQnXCJcclxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ9CS0YvQsdC10YDQuNGC0LUg0LrQvtC90YLRgNCw0LPQtdC90YLQsCdcIlxyXG4gICAgICAgIFtjaGVja0ludmFsaWRdPVwiY291bnRlcnBhcnRpZXNDaGVja0ludmFsaWRcIlxyXG4gICAgICAgIFtpbnZhbGlkXT1cImlzQ291bnRlcnBhcnRpZXNJbnZhbGlkXCJcclxuICAgICAgICBbaW52YWxpZE1lc3NhZ2VdPVwiY291bnRlcnBhcnRpZXNJbnZhbGlkTWVzc2FnZVwiXHJcbiAgICAgICAgKG1vZGVsQ2hhbmdlKT1cImNoYW5nZUZpZWxkKENoYW5nZWFibGVGaWVsZC5Db3VudGVycGFydGllcywgJGV2ZW50KVwiXHJcbiAgICAgID5cclxuICAgICAgICA8bmctdGVtcGxhdGUgI2NvbnRlbnRUZW1wbGF0ZT5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwicHktMSBweC0zIG1uaC1weC0zNiBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGNvbG9yLXRleHQtc2Vjb25kYXJ5XCI+e3sgY291bnRlcnBhcnR5U2VsZWN0aW9uSGludCB9fTwvc3Bhbj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8L21yeC1pbnB1dC1zZWxlY3Q+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUgI2NvdW50ZXJwYXJ0aWVzVGVtcGxhdGU+XHJcbiAgICAgIDxwPtCd0LDQuNC80LXQvdC+0LLQsNC90LjQtSDQutC+0L3RgtGA0LDQs9C10L3RgtCwOiB7eyBjb3VudGVycGFydGllc1RleHQgfX08L3A+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwibXJ4LWdhbGxlcnktaXRlbV9fZGVzY3JpcHRpb25cIj5cclxuICAgIDxtcngtaW5wdXQtdGV4dGFyZWFcclxuICAgICAgKm5nSWY9XCJpc0VkaXRpbmc7IGVsc2UgdGV4dFRlbXBsYXRlXCJcclxuICAgICAgW2ZpZWxkc109XCIoZmllbGRzJCB8IGFzeW5jKSFcIlxyXG4gICAgICBbbmdNb2RlbF09XCJwcmV2aWV3LmRlc2NyaXB0aW9uXCJcclxuICAgICAgW2F1dG9zaXplXT1cImRlc2NyaXB0aW9uQXV0b3NpemVcIlxyXG4gICAgICBbcm93c109XCJkZXNjcmlwdGlvblJvd3NcIlxyXG4gICAgICBbbWF4bGVuZ3RoXT1cImRlc2NyaXB0aW9uTWF4TGVuZ3RoXCJcclxuICAgICAgW3BsYWNlaG9sZGVyXT1cIifQktCy0LXQtNC40YLQtSDQvtC/0LjRgdCw0L3QuNC1J1wiXHJcbiAgICAgIFtjaGVja0ludmFsaWRdPVwiZGVzY3JpcHRpb25DaGVja0ludmFsaWRcIlxyXG4gICAgICBbaW52YWxpZF09XCJpc0Rlc2NyaXB0aW9uSW52YWxpZFwiXHJcbiAgICAgIFtpbnZhbGlkTWVzc2FnZV09XCJkZXNjcmlwdGlvbkludmFsaWRNZXNzYWdlXCJcclxuICAgICAgKG1vZGVsQ2hhbmdlKT1cImNoYW5nZUZpZWxkKENoYW5nZWFibGVGaWVsZC5EZXNjcmlwdGlvbiwgJGV2ZW50KVwiXHJcbiAgICA+PC9tcngtaW5wdXQtdGV4dGFyZWE+XHJcblxyXG4gICAgPG5nLXRlbXBsYXRlICN0ZXh0VGVtcGxhdGU+XHJcbiAgICAgIHt7IHByZXZpZXcuZGVzY3JpcHRpb24gfX1cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
227
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2FsbGVyeS1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRhLXVpL3NyYy9saWIvY29tcG9uZW50cy9nYWxsZXJ5L2NvbXBvbmVudHMvZ2FsbGVyeS1pdGVtL2dhbGxlcnktaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJ0YS11aS9zcmMvbGliL2NvbXBvbmVudHMvZ2FsbGVyeS9jb21wb25lbnRzL2dhbGxlcnktaXRlbS9nYWxsZXJ5LWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNoRyxPQUFPLEVBQ0wsZUFBZSxFQUloQixNQUFNLGlDQUFpQyxDQUFDO0FBR3pDLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQ3hHLE9BQU8sRUFDTCxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBRXJFLGtCQUFrQixFQUNsQixZQUFZLEVBQ2IsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7Ozs7OztBQVc5QixNQUFNLE9BQU8sb0JBQW9CO0lBeUMvQixZQUNVLGNBQThCLEVBQzlCLG1CQUF1QyxFQUN2QyxNQUFhO1FBRmIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBb0I7UUFDdkMsV0FBTSxHQUFOLE1BQU0sQ0FBTztRQTNDZixjQUFTLEdBQVcsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDM0MsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUdWLG9CQUFlLEdBQUcsZUFBZSxDQUFDO1FBQzNDLFlBQU8sR0FBd0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUE7UUFJN0QsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQix5QkFBb0IsR0FBRyxDQUFDLENBQUM7UUFDekIsb0JBQWUsR0FBRyxDQUFDLENBQUM7UUFDcEIsd0JBQW1CLEdBQVksS0FBSyxDQUFDO1FBR3JDLGlCQUFZLEdBQTBCLEVBQUUsQ0FBQztRQWdCekMsMEJBQXFCLEdBQVksSUFBSSxDQUFDO1FBQ3RDLDBCQUFxQixHQUFXLEVBQUUsQ0FBQztRQUNuQywwQkFBcUIsR0FBVyxFQUFFLENBQUM7UUFDbkMscUJBQWdCLEdBQVksS0FBSyxDQUFDO1FBRWpDLHFCQUFnQixHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBQ3BFLGdCQUFXLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7UUFDekQsZ0JBQVcsR0FBc0IsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQU9uRSxDQUFDO0lBbkJELElBQXdCLFlBQVksQ0FBQyxLQUFjO1FBQ2pELElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQWtCRCxXQUFXO1FBQ1QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsR0FBRyxHQUFHLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sd0VBQXdFLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDcEcsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPLDJDQUEyQyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGNBQWMsS0FBSyxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzdHLENBQUM7SUFFRCxJQUFJLGtCQUFrQjtRQUNwQixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUU7WUFDaEMsT0FBTyxFQUFFLENBQUM7U0FDWDtRQUVELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQsSUFBSSx1QkFBdUI7UUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUMxQixPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsdUJBQXVCLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO0lBQ3BHLENBQUM7SUFFRCxJQUFJLDBCQUEwQjtRQUM1QixPQUFPLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7SUFDcEQsQ0FBQztJQUVELElBQUksNEJBQTRCO1FBQzlCLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQzVFLENBQUM7SUFFRCxJQUFJLG9CQUFvQjtRQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQzFCLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFFRCxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN2RSxDQUFDO0lBRUQsSUFBSSx1QkFBdUI7UUFDekIsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ2pELENBQUM7SUFFRCxJQUFJLHlCQUF5QjtRQUMzQixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsaUNBQWlDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUM1RSxDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRTtZQUMzQixPQUFPLEtBQUssQ0FBQztTQUNkO1FBRUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNsRCxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEdBQUcsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDeEYsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUU7WUFDM0IsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUVELE1BQU0sUUFBUSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbEQsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxHQUFHLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ3hGLENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDZixPQUFPLENBQUMsSUFBSSxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDO1lBQ2pELENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELElBQUksa0JBQWtCO1FBQ3BCLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRTtZQUMzQixPQUFPLEVBQUUsQ0FBQztTQUNYO1FBRUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNsRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUM3RCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUU3RCxJQUFJLE9BQU8sSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFLEdBQUcsUUFBUSxDQUFDLE9BQU8sRUFBRSxFQUFFO1lBQ3JELE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxtQ0FBbUMsQ0FBQyxDQUFDO1NBQ25KO1FBRUQsSUFBSSxPQUFPLElBQUksT0FBTyxDQUFDLE9BQU8sRUFBRSxHQUFHLFFBQVEsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUNyRCxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUscUNBQXFDLENBQUMsQ0FBQztTQUNySjtRQUVELE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUdELHNCQUFzQixDQUFDLElBQVksRUFBRSxPQUFlO1FBQ2xELE1BQU0sYUFBYSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRTtZQUMvRCxHQUFHLEVBQUUsU0FBUztZQUNkLEtBQUssRUFBRSxTQUFTO1lBQ2hCLElBQUksRUFBRSxTQUFTO1NBQ2hCLENBQUMsQ0FBQztRQUNILE9BQU8sR0FBRyxPQUFPLElBQUksYUFBYSxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsNEJBQTRCLEVBQUU7WUFDOUQsS0FBSyxFQUFFLHFCQUFxQjtZQUM1QixPQUFPLEVBQUUsK0JBQStCO1NBQ3pDLEVBQUUsRUFBQyxxQkFBcUIsRUFBRSxxQkFBcUIsRUFBQyxDQUFDO2FBQy9DLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ2pCLElBQUksR0FBRyxDQUFDLE1BQU0sRUFBRTtnQkFDZCxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFO29CQUNqRixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDN0IsQ0FBQyxDQUFDLENBQUM7YUFDSjtRQUNILENBQUMsQ0FBQyxDQUFBO0lBQ04sQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFzQixFQUFFLEdBQVE7UUFDMUMsWUFBWSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUUxQixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUM7UUFFaEMsSUFBRyxDQUFDLElBQUksQ0FBQyxxQkFBcUIsSUFBSSxJQUFJLENBQUMsYUFBYTtZQUFFLE9BQU87UUFFN0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEVBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFDLENBQUMsQ0FBQyxDQUFBO1FBQzdFLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLEVBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFDLENBQUMsQ0FBQyxDQUFBO1FBRWhGLElBQUksQ0FBQyxNQUFNLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUM1QixNQUFNLFVBQVUsR0FBeUI7Z0JBQ3ZDLFdBQVcsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVc7YUFDdEMsQ0FBQztZQUVGLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUU7Z0JBQzFCLFVBQVUsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7YUFDL0M7WUFFRCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsdUJBQXVCLEVBQUU7Z0JBQ3hDLFVBQVUsQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUFDO2FBQzNFO1lBRUQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxVQUFVLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQzdGLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUMzQixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksRUFBQyxDQUFDLENBQUMsQ0FBQTtZQUNwRixDQUFDLEVBQUUsR0FBRyxFQUFFO2dCQUNOLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLEVBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFDLENBQUMsQ0FBQyxDQUFBO1lBQ2xGLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ1gsQ0FBQzs7aUhBN01VLG9CQUFvQjtxR0FBcEIsb0JBQW9CLHE5QkFGcEIsQ0FBQyxrQkFBa0IsQ0FBQywwQkN4QmpDLHk1T0F3SEE7MkZEOUZhLG9CQUFvQjtrQkFQaEMsU0FBUzsrQkFDRSxrQkFBa0IsbUJBR1gsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLGtCQUFrQixDQUFDOzBKQVV0QixPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0cseUJBQXlCO3NCQUFqQyxLQUFLO2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBRWtCLFlBQVk7c0JBQW5DLEtBQUs7dUJBQUMsV0FBVztnQkFLVCxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0cscUJBQXFCO3NCQUE3QixLQUFLO2dCQUNHLHFCQUFxQjtzQkFBN0IsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBRUksZ0JBQWdCO3NCQUF6QixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIENoYW5nZWFibGVGaWVsZCxcclxuICBHYWxsZXJ5SXRlbU1vZGVsLFxyXG4gIEdhbGxlcnlSb3RhdGVTbGlkZXMsXHJcbiAgR2FsbGVyeVVwZGF0ZVBheWxvYWRcclxufSBmcm9tICcuLi8uLi9tb2RlbHMvZ2FsbGVyeS1pdGVtLm1vZGVsJztcclxuaW1wb3J0IHsgR2FsbGVyeVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9nYWxsZXJ5LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTaW1wbGVNb2RhbFNlcnZpY2UgfSBmcm9tICduZ3gtc2ltcGxlLW1vZGFsJztcclxuaW1wb3J0IHsgR2FsbGVyeUNvbmZpcm1Nb2RhbENvbXBvbmVudCB9IGZyb20gJy4uL2dhbGxlcnktY29uZmlybS1tb2RhbC9nYWxsZXJ5LWNvbmZpcm0tbW9kYWwuY29tcG9uZW50JztcclxuaW1wb3J0IHtcclxuICBhdXRvc2F2ZUFkZElkLCBhdXRvc2F2ZUVycm9yRm9yLCBhdXRvc2F2ZVN0YXJ0Rm9yLCBhdXRvc2F2ZVN1Y2Nlc3NGb3IsXHJcbiAgRmllbGQsXHJcbiAgTXJ4QXV0b3NhdmVTZXJ2aWNlLFxyXG4gIHNlbGVjdEZpZWxkc1xyXG59IGZyb20gJy4uLy4uLy4uLy4uL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgU3RvcmUgfSBmcm9tIFwiQG5ncngvc3RvcmVcIjtcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ21yeC1nYWxsZXJ5LWl0ZW0nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9nYWxsZXJ5LWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2dhbGxlcnktaXRlbS5jb21wb25lbnQubGVzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHByb3ZpZGVyczogW01yeEF1dG9zYXZlU2VydmljZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIEdhbGxlcnlJdGVtQ29tcG9uZW50IHtcclxuICBwcml2YXRlIHRpbWVTdGFtcDogbnVtYmVyID0gKG5ldyBEYXRlKCkpLmdldFRpbWUoKTtcclxuICBwcml2YXRlIGlzTG9hZGluZyA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX3RpbWVyITogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD47XHJcblxyXG4gIHB1YmxpYyByZWFkb25seSBDaGFuZ2VhYmxlRmllbGQgPSBDaGFuZ2VhYmxlRmllbGQ7XHJcbiAgcHVibGljIGZpZWxkcyQ6IE9ic2VydmFibGU8RmllbGRbXT4gPSB0aGlzLl9zdG9yZS5zZWxlY3Qoc2VsZWN0RmllbGRzKVxyXG5cclxuICBASW5wdXQoKSBwcmV2aWV3ITogR2FsbGVyeUl0ZW1Nb2RlbDtcclxuICBASW5wdXQoKSBpbmRleCE6IG51bWJlcjtcclxuICBASW5wdXQoKSBpc0VkaXRpbmcgPSBmYWxzZTtcclxuICBASW5wdXQoKSBkZXNjcmlwdGlvbk1heExlbmd0aCA9IDA7XHJcbiAgQElucHV0KCkgZGVzY3JpcHRpb25Sb3dzID0gMTtcclxuICBASW5wdXQoKSBkZXNjcmlwdGlvbkF1dG9zaXplOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZGVsZXRlRW5kUG9pbnQhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgdXBkYXRlRW5kUG9pbnQhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcm90YXRlU2xpZGVzOiBHYWxsZXJ5Um90YXRlU2xpZGVzW10gPSBbXTtcclxuICBASW5wdXQoKSBzaG93RGF0ZSE6IGJvb2xlYW47XHJcbiAgQElucHV0KCkgc2hvd0NvdW50ZXJwYXJ0aWVzITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBtaW5EYXRlITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIG1heERhdGUhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcmVxdWlyZWREYXRlITogYm9vbGVhbjtcclxuICBASW5wdXQoKSBtYXhTZWxlY3RlZEl0ZW1zITogbnVtYmVyO1xyXG4gIEBJbnB1dCgpIGNvdW50ZXJwYXJ0eVNlbGVjdGlvbkhpbnQhOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgZW5hYmxlWWFuZGV4Q2hlY2shOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpIGVuYWJsZUdvb2dsZUNoZWNrITogYm9vbGVhbjtcclxuXHJcbiAgQElucHV0KCdpc0xvYWRpbmcnKSBzZXQgc2V0SXNMb2FkaW5nKHZhbHVlOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IHZhbHVlO1xyXG4gICAgdGhpcy50aW1lU3RhbXAgPSAobmV3IERhdGUoKSkuZ2V0VGltZSgpO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgbmVlZFRvU2F2ZUludmFsaWREYXRlOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBtaW5EYXRlSW52YWxpZE1lc3NhZ2U6IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpIG1heERhdGVJbnZhbGlkTWVzc2FnZTogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgdmFsaWRhdGVPblN1Ym1pdDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBAT3V0cHV0KCkgb3BlbkdhbGxlcnlNb2RhbDogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxuICBAT3V0cHV0KCkgZGVsZXRlUGhvdG86IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpIHVwZGF0ZVBob3RvOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZ2FsbGVyeVNlcnZpY2U6IEdhbGxlcnlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBfc2ltcGxlTW9kYWxTZXJ2aWNlOiBTaW1wbGVNb2RhbFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIF9zdG9yZTogU3RvcmVcclxuICApIHtcclxuICB9XHJcblxyXG4gIGdldEltYWdlVXJsKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5wcmV2aWV3LnByZXZpZXdVcmwgKyAnPycgKyB0aGlzLnRpbWVTdGFtcDtcclxuICB9XHJcblxyXG4gIGdldCB5YW5kZXhDaGVja1VybCgpIHtcclxuICAgIHJldHVybiBgaHR0cHM6Ly95YW5kZXgucnUvaW1hZ2VzL3NlYXJjaD9zb3VyY2U9Y29sbGVjdGlvbnMmcnB0PWltYWdldmlldyZ1cmw9JHt0aGlzLnByZXZpZXcudXJsfWA7XHJcbiAgfVxyXG5cclxuICBnZXQgZ29vZ2xlQ2hlY2tVcmwoKSB7XHJcbiAgICByZXR1cm4gYGh0dHBzOi8vbGVucy5nb29nbGUuY29tL3VwbG9hZGJ5dXJsP3VybD0ke3RoaXMucHJldmlldy51cmx9YDtcclxuICB9XHJcblxyXG4gIGdldCBpc0xvYWRpbmdJbWFnZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmlzTG9hZGluZyAmJiAhIXRoaXMucm90YXRlU2xpZGVzLmZpbmQoKHMpID0+IHMucHJldmlld0ltYWdlSWQgPT09IHRoaXMucHJldmlldy5wcmV2aWV3SW1hZ2VJZCk7XHJcbiAgfVxyXG5cclxuICBnZXQgY291bnRlcnBhcnRpZXNUZXh0KCk6IHN0cmluZyB7XHJcbiAgICBpZiAoIXRoaXMucHJldmlldy5jb3VudGVycGFydGllcykge1xyXG4gICAgICByZXR1cm4gJyc7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRoaXMucHJldmlldy5jb3VudGVycGFydGllcy5tYXAoaXRlbSA9PiBpdGVtLnRleHQpLmpvaW4oJywgJyk7XHJcbiAgfVxyXG5cclxuICBnZXQgaXNDb3VudGVycGFydGllc0ludmFsaWQoKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIXRoaXMudmFsaWRhdGVPblN1Ym1pdCkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuICF0aGlzLnByZXZpZXcuY291bnRlcnBhcnR5U2VsZWN0ZWRJZHMgfHwgdGhpcy5wcmV2aWV3LmNvdW50ZXJwYXJ0eVNlbGVjdGVkSWRzLmxlbmd0aCA9PT0gMDtcclxuICB9XHJcblxyXG4gIGdldCBjb3VudGVycGFydGllc0NoZWNrSW52YWxpZCgpOiB0cnVlIHwgbnVsbCB7XHJcbiAgICByZXR1cm4gdGhpcy5pc0NvdW50ZXJwYXJ0aWVzSW52YWxpZCA/IHRydWUgOiBudWxsO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGNvdW50ZXJwYXJ0aWVzSW52YWxpZE1lc3NhZ2UoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmlzQ291bnRlcnBhcnRpZXNJbnZhbGlkID8gJ9CS0YvQsdC10YDQuNGC0LUg0L7RgiAxINC00L4gMyDQstCw0YDQuNCw0L3RgtC+0LInIDogJyc7XHJcbiAgfVxyXG5cclxuICBnZXQgaXNEZXNjcmlwdGlvbkludmFsaWQoKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIXRoaXMudmFsaWRhdGVPblN1Ym1pdCkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuICF0aGlzLnByZXZpZXcuZGVzY3JpcHRpb24gfHwgIXRoaXMucHJldmlldy5kZXNjcmlwdGlvbi50cmltKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgZGVzY3JpcHRpb25DaGVja0ludmFsaWQoKTogdHJ1ZSB8IG51bGwge1xyXG4gICAgcmV0dXJuIHRoaXMuaXNEZXNjcmlwdGlvbkludmFsaWQgPyB0cnVlIDogbnVsbDtcclxuICB9XHJcblxyXG4gIGdldCBkZXNjcmlwdGlvbkludmFsaWRNZXNzYWdlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5pc0Rlc2NyaXB0aW9uSW52YWxpZCA/ICfQn9C+0LvQtSDQvtCx0Y/Qt9Cw0YLQtdC70YzQvdC+INC00LvRjyDQt9Cw0L/QvtC70L3QtdC90LjRjycgOiAnJztcclxuICB9XHJcblxyXG4gIGdldCBpc0Vycm9yTWluRGF0ZSgpOiBib29sZWFuIHtcclxuICAgIGlmICghdGhpcy5wcmV2aWV3LmV2ZW50RGF0ZSkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZmFjdERhdGUgPSBuZXcgRGF0ZSh0aGlzLnByZXZpZXcuZXZlbnREYXRlKTtcclxuICAgIHJldHVybiAhIXRoaXMubWluRGF0ZSA/IG5ldyBEYXRlKHRoaXMubWluRGF0ZSkuZ2V0VGltZSgpID4gZmFjdERhdGUuZ2V0VGltZSgpIDogZmFsc2U7XHJcbiAgfVxyXG5cclxuICBnZXQgaXNFcnJvck1heERhdGUoKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoIXRoaXMucHJldmlldy5ldmVudERhdGUpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGZhY3REYXRlID0gbmV3IERhdGUodGhpcy5wcmV2aWV3LmV2ZW50RGF0ZSk7XHJcbiAgICByZXR1cm4gISF0aGlzLm1heERhdGUgPyBuZXcgRGF0ZSh0aGlzLm1heERhdGUpLmdldFRpbWUoKSA8IGZhY3REYXRlLmdldFRpbWUoKSA6IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGlzRGF0ZUludmFsaWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gKHRoaXMuaXNFcnJvck1pbkRhdGUgfHwgdGhpcy5pc0Vycm9yTWF4RGF0ZSkgfHxcclxuICAgICAgKCF0aGlzLnByZXZpZXcuZXZlbnREYXRlICYmIHRoaXMucmVxdWlyZWREYXRlKTtcclxuICB9XHJcblxyXG4gIGdldCBkYXRlSW52YWxpZE1lc3NhZ2UoKSB7XHJcbiAgICBpZiAoIXRoaXMucHJldmlldy5ldmVudERhdGUpIHtcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGZhY3REYXRlID0gbmV3IERhdGUodGhpcy5wcmV2aWV3LmV2ZW50RGF0ZSk7XHJcbiAgICBjb25zdCBtaW5EYXRlID0gdGhpcy5taW5EYXRlID8gbmV3IERhdGUodGhpcy5taW5EYXRlKSA6IG51bGw7XHJcbiAgICBjb25zdCBtYXhEYXRlID0gdGhpcy5tYXhEYXRlID8gbmV3IERhdGUodGhpcy5tYXhEYXRlKSA6IG51bGw7XHJcblxyXG4gICAgaWYgKG1pbkRhdGUgJiYgbWluRGF0ZS5nZXRUaW1lKCkgPiBmYWN0RGF0ZS5nZXRUaW1lKCkpIHtcclxuICAgICAgcmV0dXJuICEhdGhpcy5taW5EYXRlSW52YWxpZE1lc3NhZ2UgPyB0aGlzLm1pbkRhdGVJbnZhbGlkTWVzc2FnZSA6IHRoaXMuZm9ybWF0RGF0ZUVycm9yTWVzc2FnZSh0aGlzLm1pbkRhdGUsICfQndC10LvRjNC30Y8g0YPRgdGC0LDQvdC+0LLQuNGC0Ywg0LTQsNGC0YMsINGA0LDQvdC10LUg0YfQtdC8Jyk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKG1heERhdGUgJiYgbWF4RGF0ZS5nZXRUaW1lKCkgPCBmYWN0RGF0ZS5nZXRUaW1lKCkpIHtcclxuICAgICAgcmV0dXJuICEhdGhpcy5tYXhEYXRlSW52YWxpZE1lc3NhZ2UgPyB0aGlzLm1heERhdGVJbnZhbGlkTWVzc2FnZSA6IHRoaXMuZm9ybWF0RGF0ZUVycm9yTWVzc2FnZSh0aGlzLm1heERhdGUsICfQndC10LvRjNC30Y8g0YPRgdGC0LDQvdC+0LLQuNGC0Ywg0LTQsNGC0YMsINC/0L7Qt9C00L3QtdC1INGH0LXQvCcpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiAnJztcclxuICB9XHJcblxyXG5cclxuICBmb3JtYXREYXRlRXJyb3JNZXNzYWdlKGRhdGU6IHN0cmluZywgbWVzc2FnZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IGZvcm1hdHRlZERhdGUgPSBuZXcgRGF0ZShkYXRlKS50b0xvY2FsZURhdGVTdHJpbmcoJ3J1LVJVJywge1xyXG4gICAgICBkYXk6ICcyLWRpZ2l0JyxcclxuICAgICAgbW9udGg6ICcyLWRpZ2l0JyxcclxuICAgICAgeWVhcjogJ251bWVyaWMnXHJcbiAgICB9KTtcclxuICAgIHJldHVybiBgJHttZXNzYWdlfSAke2Zvcm1hdHRlZERhdGV9YDtcclxuICB9XHJcblxyXG4gIG9uT3BlbkdhbGxlcnlNb2RhbCgpIHtcclxuICAgIHRoaXMub3BlbkdhbGxlcnlNb2RhbC5lbWl0KHRoaXMuaW5kZXgpO1xyXG4gIH1cclxuXHJcbiAgZGVsZXRlSW1hZ2UoKSB7XHJcbiAgICB0aGlzLl9zaW1wbGVNb2RhbFNlcnZpY2UuYWRkTW9kYWwoR2FsbGVyeUNvbmZpcm1Nb2RhbENvbXBvbmVudCwge1xyXG4gICAgICB0aXRsZTogJ9Cj0JTQkNCb0JXQndCY0JUg0KTQntCi0J7Qk9Cg0JDQpNCY0JgnLFxyXG4gICAgICBtZXNzYWdlOiAn0JLRiyDRhdC+0YLQuNGC0LUg0YPQtNCw0LvQuNGC0Ywg0YTQvtGC0L7Qs9GA0LDRhNC40Y4/J1xyXG4gICAgfSwge3dyYXBwZXJEZWZhdWx0Q2xhc3NlczogJ21yeC1tb2RhbCBmYWRlLWFuaW0nfSlcclxuICAgICAgLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcy5yZXN1bHQpIHtcclxuICAgICAgICAgIHRoaXMuZ2FsbGVyeVNlcnZpY2UuZGVsZXRlKHRoaXMuZGVsZXRlRW5kUG9pbnQsIHRoaXMucHJldmlldy51dWlkKS5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgICAgICAgdGhpcy5kZWxldGVQaG90by5lbWl0KHJlcyk7XHJcbiAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgfVxyXG5cclxuICBjaGFuZ2VGaWVsZChmaWVsZDogQ2hhbmdlYWJsZUZpZWxkLCBvYmo6IGFueSkge1xyXG4gICAgY2xlYXJUaW1lb3V0KHRoaXMuX3RpbWVyKTtcclxuXHJcbiAgICB0aGlzLnByZXZpZXdbZmllbGRdID0gb2JqLnZhbHVlO1xyXG5cclxuICAgIGlmKCF0aGlzLm5lZWRUb1NhdmVJbnZhbGlkRGF0ZSAmJiB0aGlzLmlzRGF0ZUludmFsaWQpIHJldHVybjtcclxuXHJcbiAgICB0aGlzLl9zdG9yZS5kaXNwYXRjaChhdXRvc2F2ZUFkZElkKHtpZDogb2JqLmlkLCBncm91cElkOiB0aGlzLnByZXZpZXcudXVpZH0pKVxyXG4gICAgdGhpcy5fc3RvcmUuZGlzcGF0Y2goYXV0b3NhdmVTdGFydEZvcih7aWQ6IG9iai5pZCwgZ3JvdXBJZDogdGhpcy5wcmV2aWV3LnV1aWR9KSlcclxuXHJcbiAgICB0aGlzLl90aW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBjb25zdCB1cGRhdGVEYXRhOiBHYWxsZXJ5VXBkYXRlUGF5bG9hZCA9IHtcclxuICAgICAgICBkZXNjcmlwdGlvbjogdGhpcy5wcmV2aWV3LmRlc2NyaXB0aW9uXHJcbiAgICAgIH07XHJcblxyXG4gICAgICBpZiAodGhpcy5wcmV2aWV3LmV2ZW50RGF0ZSkge1xyXG4gICAgICAgIHVwZGF0ZURhdGEuZXZlbnREYXRlID0gdGhpcy5wcmV2aWV3LmV2ZW50RGF0ZTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHRoaXMucHJldmlldy5jb3VudGVycGFydHlTZWxlY3RlZElkcykge1xyXG4gICAgICAgIHVwZGF0ZURhdGEuY291bnRlcnBhcnR5U2VsZWN0ZWRJZHMgPSB0aGlzLnByZXZpZXcuY291bnRlcnBhcnR5U2VsZWN0ZWRJZHM7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuZ2FsbGVyeVNlcnZpY2UudXBkYXRlKHRoaXMudXBkYXRlRW5kUG9pbnQsIHRoaXMucHJldmlldy51dWlkLCB1cGRhdGVEYXRhKS5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgICB0aGlzLnVwZGF0ZVBob3RvLmVtaXQocmVzKTtcclxuICAgICAgICB0aGlzLl9zdG9yZS5kaXNwYXRjaChhdXRvc2F2ZVN1Y2Nlc3NGb3Ioe2lkOiBvYmouaWQsIGdyb3VwSWQ6IHRoaXMucHJldmlldy51dWlkfSkpXHJcbiAgICAgIH0sICgpID0+IHtcclxuICAgICAgICB0aGlzLl9zdG9yZS5kaXNwYXRjaChhdXRvc2F2ZUVycm9yRm9yKHtpZDogb2JqLmlkLCBncm91cElkOiB0aGlzLnByZXZpZXcudXVpZH0pKVxyXG4gICAgICB9KTtcclxuICAgIH0sIDE1MDApO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwibXJ4LWdhbGxlcnktaXRlbVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJtcngtZ2FsbGVyeS1pdGVtX19wcmV2aWV3XCIgKGNsaWNrKT1cIm9uT3BlbkdhbGxlcnlNb2RhbCgpXCI+XHJcblxyXG4gICAgPGltZyBbc3JjXT1cImdldEltYWdlVXJsKClcIiBbYWx0XT1cInByZXZpZXcuaW1hZ2VOYW1lIHx8ICdpbWFnZSdcIiAqbmdJZj1cIiFpc0xvYWRpbmdJbWFnZTsgZWxzZSBza2VsZXRvblRlbXBsYXRlXCI+XHJcblxyXG4gICAgPG5nLXRlbXBsYXRlICNza2VsZXRvblRlbXBsYXRlPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIHctMTAwIGgtMTAwXCI+XHJcbiAgICAgICAgPG1yeC1sb2FkZXIgc2l6ZT1cIm1lZGl1bVwiIGNvbG9yPVwiYnJhbmRcIj48L21yeC1sb2FkZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwibXJ4LWdhbGxlcnktaXRlbV9fcHJldmlldy1vdmVybGF5XCIgKm5nSWY9XCIhaXNMb2FkaW5nSW1hZ2VcIj48L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwibXJ4LWdhbGxlcnktaXRlbV9fcHJldmlldy1jb250cm9sc1wiICpuZ0lmPVwiIWlzTG9hZGluZ0ltYWdlXCI+XHJcbiAgICAgIDxhICpuZ0lmPVwiZW5hYmxlWWFuZGV4Q2hlY2tcIiBjbGFzcz1cIm1yeC1nYWxsZXJ5LWl0ZW1fX3ByZXZpZXctY29udHJvbHMtLWljb25cIiBbaHJlZl09XCJ5YW5kZXhDaGVja1VybFwiIHRhcmdldD1cIl9ibGFua1wiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cclxuICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiB2aWV3Qm94PVwiMCAwIDE2IDE2XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMTIzNDZfMTIwNzYpXCI+XHJcbiAgICAgICAgICAgIDxwYXRoIGQ9XCJNOC4wMDAzMSAxNS45ODM4QzEyLjQwOTYgMTUuOTgzOCAxNS45ODQgMTIuNDA5MyAxNS45ODQgOC4wMDAwNkMxNS45ODQgMy41OTA3OCAxMi40MDk2IDAuMDE2MzU3NCA4LjAwMDMxIDAuMDE2MzU3NEMzLjU5MTAzIDAuMDE2MzU3NCAwLjAxNjYwMTYgMy41OTA3OCAwLjAxNjYwMTYgOC4wMDAwNkMwLjAxNjYwMTYgMTIuNDA5MyAzLjU5MTAzIDE1Ljk4MzggOC4wMDAzMSAxNS45ODM4WlwiIGZpbGw9XCJ3aGl0ZVwiLz5cclxuICAgICAgICAgICAgPHBhdGggZD1cIk0xMC44ODkzIDEzLjAxMThIOS4xMzY3VjQuMzQzNjFIOC4zNTU5NkM2LjkyNDg0IDQuMzQzNjEgNi4xNzUyMSA1LjA1OTE2IDYuMTc1MjEgNi4xMjczMUM2LjE3NTIxIDcuMzM5MTYgNi42OTIyNSA3LjkwMDY1IDcuNzYxODggOC42MTYyTDguNjQzMzYgOS4yMTAyOEw2LjExMDAzIDEzLjAxMDNINC4yMjU1OUw2LjUwNTU5IDkuNjE3NjhDNS4xOTQ0NyA4LjY4MTM5IDQuNDU2NyA3Ljc2NzMxIDQuNDU2NyA2LjIyNTA5QzQuNDU2NyA0LjI5NzY4IDUuODAwNCAyLjk4NjU3IDguMzQ0MSAyLjk4NjU3SDEwLjg3NzRWMTMuMDA4OEgxMC44ODkzVjEzLjAxMThaXCIgZmlsbD1cIiNGQzNGMURcIi8+XHJcbiAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgPGNsaXBQYXRoIGlkPVwiY2xpcDBfMTIzNDZfMTIwNzZcIj5cclxuICAgICAgICAgICAgICA8cmVjdCB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMTZcIiBmaWxsPVwid2hpdGVcIi8+XHJcbiAgICAgICAgICAgIDwvY2xpcFBhdGg+XHJcbiAgICAgICAgICA8L2RlZnM+XHJcbiAgICAgICAgPC9zdmc+XHJcbiAgICAgIDwvYT5cclxuXHJcbiAgICAgIDxhICpuZ0lmPVwiZW5hYmxlR29vZ2xlQ2hlY2tcIiBjbGFzcz1cIm1yeC1nYWxsZXJ5LWl0ZW1fX3ByZXZpZXctY29udHJvbHMtLWljb25cIiBbaHJlZl09XCJnb29nbGVDaGVja1VybFwiIHRhcmdldD1cIl9ibGFua1wiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cclxuICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjEyXCIgaGVpZ2h0PVwiMTJcIiB2aWV3Qm94PVwiMCAwIDEyIDEyXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgIDxwYXRoIGQ9XCJNMTEuNTU2MSA0Ljg5MDFIMTEuMDk5N1Y0Ljg2NjU5SDUuOTk5NjdWNy4xMzMyNUg5LjIwMjE5QzguNzM0OTcgOC40NTI3MyA3LjQ3OTUyIDkuMzk5OTIgNS45OTk2NyA5LjM5OTkyQzQuMTIyMDIgOS4zOTk5MiAyLjU5OTY3IDcuODc3NTcgMi41OTk2NyA1Ljk5OTkyQzIuNTk5NjcgNC4xMjIyNyA0LjEyMjAyIDIuNTk5OTIgNS45OTk2NyAyLjU5OTkyQzYuODY2MzkgMi41OTk5MiA3LjY1NDkxIDIuOTI2ODkgOC4yNTUyOSAzLjQ2MDk3TDkuODU4MTEgMS44NTgxNUM4Ljg0NjA0IDAuOTE0OTM1IDcuNDkyMjcgMC4zMzMyNTIgNS45OTk2NyAwLjMzMzI1MkMyLjg3MDI2IDAuMzMzMjUyIDAuMzMzMDA4IDIuODcwNSAwLjMzMzAwOCA1Ljk5OTkyQzAuMzMzMDA4IDkuMTI5MzQgMi44NzAyNiAxMS42NjY2IDUuOTk5NjcgMTEuNjY2NkM5LjEyOTA5IDExLjY2NjYgMTEuNjY2MyA5LjEyOTM0IDExLjY2NjMgNS45OTk5MkMxMS42NjYzIDUuNjE5OTcgMTEuNjI3MiA1LjI0OTA5IDExLjU1NjEgNC44OTAxWlwiIGZpbGw9XCIjRkJDMDJEXCIvPlxyXG4gICAgICAgICAgPHBhdGggZD1cIk0wLjk4NzMwNSAzLjM2MjM3TDIuODQ5MDkgNC43Mjc3NUMzLjM1Mjg1IDMuNDgwNTIgNC41NzI4OSAyLjU5OTkyIDYuMDAwNiAyLjU5OTkyQzYuODY3MzIgMi41OTk5MiA3LjY1NTg0IDIuOTI2ODkgOC4yNTYyMiAzLjQ2MDk3TDkuODU5MDQgMS44NTgxNUM4Ljg0Njk3IDAuOTE0OTM1IDcuNDkzMiAwLjMzMzI1MiA2LjAwMDYgMC4zMzMyNTJDMy44MjQwNCAwLjMzMzI1MiAxLjkzNjQ3IDEuNTYyMDcgMC45ODczMDUgMy4zNjIzN1pcIiBmaWxsPVwiI0U1MzkzNVwiLz5cclxuICAgICAgICAgIDxwYXRoIGQ9XCJNNi4wMDA4IDExLjY2NjVDNy40NjQ1IDExLjY2NjUgOC43OTQ0NyAxMS4xMDYzIDkuODAwMDIgMTAuMTk1NEw4LjA0NjE5IDguNzExM0M3LjQ3NzI1IDkuMTQyMjUgNi43NzAwNSA5LjM5OTggNi4wMDA4IDkuMzk5OEM0LjUyNjkgOS4zOTk4IDMuMjc1NDIgOC40NTk5OSAyLjgwMzk1IDcuMTQ4NDRMMC45NTYwNTUgOC41NzIxOUMxLjg5Mzg5IDEwLjQwNzMgMy43OTg0NSAxMS42NjY1IDYuMDAwOCAxMS42NjY1WlwiIGZpbGw9XCIjNENBRjUwXCIvPlxyXG4gICAgICAgICAgPHBhdGggZD1cIk0xMS41NTY0IDQuODg5OTdMMTEuNTUxOSA0Ljg2NjQ2SDExLjFINlY3LjEzMzEySDkuMjAyNTJDOC45NzgxMiA3Ljc2Njk0IDguNTcwNCA4LjMxMzQ5IDguMDQ0NTMgOC43MTE1N0M4LjA0NDgyIDguNzExMjkgOC4wNDUxIDguNzExMjkgOC4wNDUzOCA4LjcxMTAxTDkuNzk5MjIgMTAuMTk1MUM5LjY3NTEyIDEwLjMwNzkgMTEuNjY2NyA4LjgzMzEyIDExLjY2NjcgNS45OTk3OUMxMS42NjY3IDUuNjE5ODQgMTEuNjI3NiA1LjI0ODk2IDExLjU1NjQgNC44ODk5N1pcIiBmaWxsPVwiIzE1NjVDMFwiLz5cclxuICAgICAgICA8L3N2Zz5cclxuICAgICAgPC9hPlxyXG5cclxuICAgICAgPGRpdiBjbGFzcz1cIm1yeC1nYWxsZXJ5LWl0ZW1fX3ByZXZpZXctY29udHJvbHNfX2J1dHRvbiBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1jZW50ZXJcIiAqbmdJZj1cImlzRWRpdGluZ1wiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIm1yeC1pY29uIGljb24tZGVsZXRlIGljb24tZm9udC0xNiB0ZXh0LWJvbGRcIiAoY2xpY2spPVwiZGVsZXRlSW1hZ2UoKVwiPjwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiAqbmdJZj1cInNob3dEYXRlXCIgY2xhc3M9XCJtcngtZ2FsbGVyeS1pdGVtX19kYXRlIG1iLTJcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0VkaXRpbmc7IGVsc2UgZGF0ZVRlbXBsYXRlXCI+XHJcbiAgICAgIDxtcngtbGFiZWwgW3JlcXVpcmVkXT1cInJlcXVpcmVkRGF0ZVwiPtCU0LDRgtCwINC80LXRgNC+0L/RgNC40Y/RgtC40Y88L21yeC1sYWJlbD5cclxuXHJcbiAgICAgIDxtcngtaW5wdXQtZGF0ZXBpY2tlclxyXG4gICAgICAgIFtmaWVsZHNdPVwiKGZpZWxkcyQgfCBhc3luYykhXCJcclxuICAgICAgICBbKG5nTW9kZWwpXT1cInByZXZpZXcuZXZlbnREYXRlXCJcclxuICAgICAgICBbaW52YWxpZF09XCJpc0RhdGVJbnZhbGlkXCJcclxuICAgICAgICBbbWluRGF0ZV09XCJtaW5EYXRlXCJcclxuICAgICAgICBbbWF4RGF0ZV09XCJtYXhEYXRlXCJcclxuICAgICAgICBbaXNTaG93TWVzc2FnZXNdPVwiZmFsc2VcIlxyXG4gICAgICAgIFtpbnZhbGlkTWVzc2FnZV09XCJkYXRlSW52YWxpZE1lc3NhZ2VcIlxyXG4gICAgICAgIFtjbG9zYWJsZV09XCJmYWxzZVwiXHJcbiAgICAgICAgW2Zvcm1hdF09XCInWVlZWS1NTS1ERCdcIlxyXG4gICAgICAgIFt0aW1lcGlja2VyXT1cImZhbHNlXCJcclxuICAgICAgICBbbGVhZFplcm9EYXRlVGltZV09XCJ0cnVlXCJcclxuICAgICAgICBbbWFza109XCInZDAuTTAuMDAwMCdcIlxyXG4gICAgICAgIChtb2RlbENoYW5nZSk9XCJjaGFuZ2VGaWVsZChDaGFuZ2VhYmxlRmllbGQuRXZlbnREYXRlLCAkZXZlbnQpXCJcclxuICAgICAgPjwvbXJ4LWlucHV0LWRhdGVwaWNrZXI+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUgI2RhdGVUZW1wbGF0ZT5cclxuICAgICAgPHA+0JTQsNGC0LAg0LzQtdGA0L7Qv9GA0LjRj9GC0LjRjzoge3sgcHJldmlldy5ldmVudERhdGUgfCBkYXRlRm9ybWF0IH19PC9wPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiAqbmdJZj1cInNob3dDb3VudGVycGFydGllc1wiIGNsYXNzPVwibXJ4LWdhbGxlcnktaXRlbV9fY291bnRlcnBhcnRpZXMgbWItMlwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzRWRpdGluZzsgZWxzZSBjb3VudGVycGFydGllc1RlbXBsYXRlXCI+XHJcbiAgICAgIDxtcngtbGFiZWw+0J3QsNC40LzQtdC90L7QstCw0L3QuNC1INC60L7QvdGC0YDQsNCz0LXQvdGC0LA8L21yeC1sYWJlbD5cclxuXHJcbiAgICAgIDxtcngtaW5wdXQtc2VsZWN0XHJcbiAgICAgICAgW2ZpZWxkc109XCIoZmllbGRzJCB8IGFzeW5jKSFcIlxyXG4gICAgICAgIFsobmdNb2RlbCldPVwicHJldmlldy5jb3VudGVycGFydHlTZWxlY3RlZElkc1wiXHJcbiAgICAgICAgW2l0ZW1zXT1cInByZXZpZXcuY291bnRlcnBhcnRpZXMgfHwgW11cIlxyXG4gICAgICAgIFttdWx0aXBsZV09XCJ0cnVlXCJcclxuICAgICAgICBbc29ydGFibGVdPVwidHJ1ZVwiXHJcbiAgICAgICAgW2NsZWFyYWJsZV09XCJmYWxzZVwiXHJcbiAgICAgICAgW21heFNlbGVjdGVkSXRlbXNdPVwibWF4U2VsZWN0ZWRJdGVtc1wiXHJcbiAgICAgICAgW2JpbmRWYWx1ZV09XCIndmFsdWUnXCJcclxuICAgICAgICBbYmluZExhYmVsXT1cIid0ZXh0J1wiXHJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cIifQktGL0LHQtdGA0LjRgtC1INC60L7QvdGC0YDQsNCz0LXQvdGC0LAnXCJcclxuICAgICAgICBbY2hlY2tJbnZhbGlkXT1cImNvdW50ZXJwYXJ0aWVzQ2hlY2tJbnZhbGlkXCJcclxuICAgICAgICBbaW52YWxpZF09XCJpc0NvdW50ZXJwYXJ0aWVzSW52YWxpZFwiXHJcbiAgICAgICAgW2ludmFsaWRNZXNzYWdlXT1cImNvdW50ZXJwYXJ0aWVzSW52YWxpZE1lc3NhZ2VcIlxyXG4gICAgICAgIChtb2RlbENoYW5nZSk9XCJjaGFuZ2VGaWVsZChDaGFuZ2VhYmxlRmllbGQuQ291bnRlcnBhcnRpZXMsICRldmVudClcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNjb250ZW50VGVtcGxhdGU+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInB5LTEgcHgtMyBtbmgtcHgtMzYgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBjb2xvci10ZXh0LXNlY29uZGFyeVwiPnt7IGNvdW50ZXJwYXJ0eVNlbGVjdGlvbkhpbnQgfX08L3NwYW4+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgPC9tcngtaW5wdXQtc2VsZWN0PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPG5nLXRlbXBsYXRlICNjb3VudGVycGFydGllc1RlbXBsYXRlPlxyXG4gICAgICA8cD7QndCw0LjQvNC10L3QvtCy0LDQvdC40LUg0LrQvtC90YLRgNCw0LPQtdC90YLQsDoge3sgY291bnRlcnBhcnRpZXNUZXh0IH19PC9wPlxyXG4gICAgPC9uZy10ZW1wbGF0ZT5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cIm1yeC1nYWxsZXJ5LWl0ZW1fX2Rlc2NyaXB0aW9uXCI+XHJcbiAgICA8bXJ4LWlucHV0LXRleHRhcmVhXHJcbiAgICAgICpuZ0lmPVwiaXNFZGl0aW5nOyBlbHNlIHRleHRUZW1wbGF0ZVwiXHJcbiAgICAgIFtmaWVsZHNdPVwiKGZpZWxkcyQgfCBhc3luYykhXCJcclxuICAgICAgW25nTW9kZWxdPVwicHJldmlldy5kZXNjcmlwdGlvblwiXHJcbiAgICAgIFthdXRvc2l6ZV09XCJkZXNjcmlwdGlvbkF1dG9zaXplXCJcclxuICAgICAgW3Jvd3NdPVwiZGVzY3JpcHRpb25Sb3dzXCJcclxuICAgICAgW21heGxlbmd0aF09XCJkZXNjcmlwdGlvbk1heExlbmd0aFwiXHJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCIn0JLQstC10LTQuNGC0LUg0L7Qv9C40YHQsNC90LjQtSdcIlxyXG4gICAgICBbY2hlY2tJbnZhbGlkXT1cImRlc2NyaXB0aW9uQ2hlY2tJbnZhbGlkXCJcclxuICAgICAgW2ludmFsaWRdPVwiaXNEZXNjcmlwdGlvbkludmFsaWRcIlxyXG4gICAgICBbaW52YWxpZE1lc3NhZ2VdPVwiZGVzY3JpcHRpb25JbnZhbGlkTWVzc2FnZVwiXHJcbiAgICAgIChtb2RlbENoYW5nZSk9XCJjaGFuZ2VGaWVsZChDaGFuZ2VhYmxlRmllbGQuRGVzY3JpcHRpb24sICRldmVudClcIlxyXG4gICAgPjwvbXJ4LWlucHV0LXRleHRhcmVhPlxyXG5cclxuICAgIDxuZy10ZW1wbGF0ZSAjdGV4dFRlbXBsYXRlPlxyXG4gICAgICB7eyBwcmV2aWV3LmRlc2NyaXB0aW9uIH19XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|