ng-devui
Version:
DevUI components based on Angular
123 lines • 48.1 kB
JavaScript
import { Component, ContentChildren, ElementRef, EventEmitter, Input, Output, QueryList, Renderer2, TemplateRef, ViewChild, } from '@angular/core';
import { AlertCarouselItemComponent } from './alert-carousel-item.component';
import * as i0 from "@angular/core";
import * as i1 from "@angular/common";
export class AlertComponent {
set dismissTime(time) {
setTimeout(() => {
this.close();
}, time);
}
constructor(el, renderer) {
this.el = el;
this.renderer = renderer;
this.type = 'info';
this.closeable = true;
this.showIcon = true;
this.autoplay = false;
this.autoplaySpeed = 3000;
this.transitionSpeed = 500;
this.closeEvent = new EventEmitter();
this.hide = false;
this.currentIndex = 1;
this.SINGLE_LINE_HEIGHT = '24px';
this.next = () => {
if (this.currentIndex < this.carouselNum) {
this.currentIndex++;
}
else {
this.currentIndex = 1;
}
this.translatePosition(this.currentIndex - 1);
this.autoScheduleTransition();
};
this.close = () => {
this.clearScheduledTransition();
this.closeEvent.emit(this);
this.hide = true;
};
}
ngOnChanges(changes) {
const { autoplay, autoplaySpeed, transitionSpeed } = changes;
if ((autoplay || autoplaySpeed) && (!this.autoplay || !this.autoplaySpeed)) {
this.clearScheduledTransition();
}
else {
this.autoScheduleTransition();
}
if (transitionSpeed && this.transitionSpeed) {
this.renderer.setStyle(this.box.nativeElement, 'transition', `top ${this.transitionSpeed}ms ease`);
}
}
ngAfterViewInit() {
this.renderCarouselItem();
this.carouselItems.changes.subscribe(() => this.renderCarouselItem());
}
ngOnDestroy() {
this.clearScheduledTransition();
}
renderCarouselItem() {
this.carouselNum = this.carouselItems.length;
if (this.carouselNum > 1) {
if (!this.autoplayHeight) {
const itemHeights = this.carouselItems.map((item) => {
const rect = item?.el.nativeElement.getBoundingClientRect();
return rect?.height || 0;
});
const maxHeight = Math.max(...itemHeights);
this.autoplayHeight = maxHeight ? `${maxHeight}px` : this.SINGLE_LINE_HEIGHT;
}
this.el.nativeElement.style.setProperty('--devui-alert-carousel-item-height', this.autoplayHeight);
this.renderer.setStyle(this.box.nativeElement, 'transition', `top ${this.transitionSpeed}ms ease`);
this.autoScheduleTransition();
}
}
autoScheduleTransition() {
this.clearScheduledTransition();
if (this.autoplay && this.autoplaySpeed) {
this.scheduledId = setTimeout(() => this.next(), this.autoplaySpeed);
}
}
clearScheduledTransition() {
if (this.scheduledId) {
clearTimeout(this.scheduledId);
this.scheduledId = undefined;
}
}
translatePosition(size) {
this.renderer.setStyle(this.box.nativeElement, 'top', `${-size * 100}%`);
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AlertComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AlertComponent, selector: "d-alert", inputs: { type: "type", cssClass: "cssClass", closeable: "closeable", showIcon: "showIcon", autoplay: "autoplay", autoplaySpeed: "autoplaySpeed", transitionSpeed: "transitionSpeed", operationTemplate: "operationTemplate", dismissTime: "dismissTime" }, outputs: { closeEvent: "closeEvent" }, queries: [{ propertyName: "carouselItems", predicate: AlertCarouselItemComponent }], viewQueries: [{ propertyName: "box", first: true, predicate: ["carouselContainer"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"devui-alert devui-alert-{{ type }} {{ cssClass }}\" *ngIf=\"!hide\" [style.alignItems]=\"carouselNum > 1 ? 'center' : 'flex-start'\">\n <span class=\"devui-alert-icon\" *ngIf=\"showIcon !== false && type !== 'simple'\">\n <svg\n width=\"16px\"\n height=\"16px\"\n viewBox=\"0 0 16 16\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n class=\"devui-icon\"\n [ngClass]=\"type === 'danger' ? 'devui-icon-error' : 'devui-icon-' + type\"\n >\n <g *ngIf=\"type === 'success'\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n <path fill-rule=\"nonzero\" d=\"M8,0 C3.6,0 0,3.6 0,8 C0,12.4 3.6,16 8,16 C12.4,16 16,12.4 16,8 C16,3.6 12.4,0 8,0 Z\"></path>\n <polygon\n stroke-width=\"0.3\"\n fill-rule=\"nonzero\"\n points=\"6.82767602 11.5282799 3 7.24668779 3.89864233 6.37912367 6.82767602 9.04910002 12.2964408 4 13 4.64144383\"\n ></polygon>\n </g>\n <g *ngIf=\"type === 'warning'\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n <path\n class=\"devui-icon-warning-outer\"\n d=\"M8.96244623,0.57254229 L15.8714442,13.4101975 C16.1549662,13.9370117 15.9538562,14.5918482 15.4222523,14.8728158 C15.2642579,14.9563203 15.0879506,15 14.9088903,15 L1.09089441,15 C0.488410063,15 0,14.5159904 0,13.9189343 C0,13.7414873 0.0440768395,13.5667684 0.128340519,13.4101975 L7.03733844,0.57254229 C7.32086049,0.0457280838 7.98165058,-0.153569987 8.51325441,0.127397589 C8.70423071,0.228333932 8.8605922,0.383286648 8.96244623,0.57254229 Z\"\n ></path>\n <path\n class=\"devui-icon-warning-inner\"\n stroke-width=\"0.3\"\n fill-rule=\"nonzero\"\n d=\"M8.87894737,13 L7.08947368,13 L7.08947368,11.2105263 L8.87894737,11.2105263 L8.87894737,13 Z M8.62102372,9.86842105 L7.32800539,9.86842105 L7,4.5 L8.96842105,4.5 L8.62102372,9.86842105 Z\"\n ></path>\n </g>\n <g *ngIf=\"type === 'info'\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n <g fill-rule=\"nonzero\">\n <path\n class=\"devui-icon-info-outer\"\n d=\"M8,0 C3.6,0 0,3.6 0,8 C0,12.4 3.6,16 8,16 C12.4,16 16,12.4 16,8 C16,3.6 12.4,0 8,0 Z\"\n ></path>\n <path\n class=\"devui-icon-info-inner\"\n d=\"M9.19008504,7 L8.79402696,13 L7.15622605,13 L6.73158434,7 L9.19008504,7 Z M9,3 L9,5 L7,5 L7,3 L9,3 Z\"\n stroke-width=\"0.2\"\n ></path>\n </g>\n </g>\n <g *ngIf=\"type === 'danger'\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n <g fill-rule=\"nonzero\">\n <path\n class=\"devui-icon-error-outer\"\n d=\"M8,0 C3.6,0 0,3.6 0,8 C0,12.4 3.6,16 8,16 C12.4,16 16,12.4 16,8 C16,3.6 12.4,0 8,0 Z\"\n ></path>\n <path\n class=\"devui-icon-error-inner\"\n d=\"M9,10.6 L9,12.6 L7,12.6 L7,10.6 L9,10.6 Z M9.1,3.1 L8.65924344,9.1 L7.28422786,9.1 L6.9,3.1 L9.1,3.1 Z\"\n stroke-width=\"0.2\"\n ></path>\n </g>\n </g>\n </svg>\n </span>\n <div class=\"devui-alert-carousel-container\" [style.height]=\"carouselNum > 1 ? autoplayHeight : 'auto'\">\n <div\n #carouselContainer\n class=\"devui-alert-carousel-box\"\n (mouseenter)=\"clearScheduledTransition()\"\n (mouseleave)=\"autoScheduleTransition()\"\n >\n <ng-content></ng-content>\n </div>\n </div>\n <div class=\"devui-alert-operation-container\">\n <ng-container *ngIf=\"carouselNum > 1\">\n <div class=\"devui-alert-carousel-num\">\n <span>{{ currentIndex }}/{{ carouselNum }}</span>\n </div>\n <span class=\"devui-alert-carousel-button\">\n <svg\n (click)=\"next()\"\n width=\"12px\"\n devui-alert-operation-container\n height=\"12px\"\n viewBox=\"0 0 16 16\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n >\n <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n <path\n d=\"M2.64644661,5.14644661 C2.82001296,4.97288026 3.08943736,4.95359511 3.2843055,5.08859116 L3.35355339,5.14644661 L7.999,9.793 L12.6464466,5.14644661 C12.820013,4.97288026 13.0894374,4.95359511 13.2843055,5.08859116 L13.3535534,5.14644661 C13.5271197,5.32001296 13.5464049,5.58943736 13.4114088,5.7843055 L13.3535534,5.85355339 L8.35355339,10.8535534 C8.17998704,11.0271197 7.91056264,11.0464049 7.7156945,10.9114088 L7.64644661,10.8535534 L2.64644661,5.85355339 C2.45118446,5.65829124 2.45118446,5.34170876 2.64644661,5.14644661 Z\"\n fill-rule=\"nonzero\"\n ></path>\n </g>\n </svg>\n </span>\n </ng-container>\n <ng-template [ngTemplateOutlet]=\"operationTemplate\" [ngTemplateOutletContext]=\"{ close: close }\"> </ng-template>\n <div class=\"devui-close\" (click)=\"close()\" *ngIf=\"closeable\">\n <svg\n width=\"10px\"\n height=\"10px\"\n viewBox=\"0 0 10 10\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n >\n <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n <g transform=\"translate(-3.000000, -3.000000)\" fill-rule=\"nonzero\">\n <path\n d=\"M11.6426,3.19816936 C11.9239974,2.91574512 12.4131626,2.93784891 12.7352108,3.24751057 C13.0571998,3.5572302 13.0901298,4.03723416 12.8087324,4.31965839 L9.14064666,7.99900183 L12.8087324,11.6803416 C13.0645482,11.9370909 13.0605893,12.3571292 12.8158402,12.6640749 L12.7352108,12.7524894 C12.4131626,13.0621511 11.9239974,13.0842548 11.6426,12.8018306 L8,9.14489021 L4.35740003,12.8018306 C4.10158422,13.05858 3.6740594,13.0636532 3.35648225,12.8298003 L3.26478919,12.7524894 C2.94280021,12.4427698 2.90987023,11.9627658 3.19126762,11.6803416 L6.8583349,7.99900183 L3.19126762,4.31965839 C2.93545181,4.06290908 2.93941068,3.64287076 3.18415975,3.3359251 L3.26478919,3.24751057 C3.58683735,2.93784891 4.07600264,2.91574512 4.35740003,3.19816936 L8,6.85411161 L11.6426,3.19816936 Z\"\n ></path>\n </g>\n </g>\n </svg>\n </div>\n </div>\n</div>\n", styles: [".devui-font-size-base{font-size:var(--devui-font-size, 12px)}.devui-font-base{font-size:var(--devui-font-size, 12px);font-weight:var(--devui-font-content-weight, normal);line-height:var(--devui-line-height-base, 1.5)}.devui-font-size-modal-title{font-size:var(--devui-font-size-modal-title, 18px)}.devui-font-modal-title{font-size:var(--devui-font-size-modal-title, 18px);font-weight:var(--devui-font-title-weight, bold);line-height:var(--devui-line-height-base, 1.5)}.devui-font-size-page-title{font-size:var(--devui-font-size-page-title, 16px)}.devui-font-page-title{font-size:var(--devui-font-size-page-title, 16px);font-weight:var(--devui-font-title-weight, bold);line-height:var(--devui-line-height-base, 1.5)}.devui-font-size-secondary-title{font-size:var(--devui-font-size-card-title, 14px)}.devui-font-secondary-title{font-size:var(--devui-font-size-card-title, 14px);font-weight:var(--devui-font-title-weight, bold);line-height:var(--devui-line-height-base, 1.5)}:host{display:block}:host ::ng-deep .devui-alert-carousel-container .devui-alert-carousel-box>d-alert-carousel-item{min-height:var(--devui-alert-carousel-item-height, 24px)}.devui-alert{color:var(--devui-text, #191919);font-size:var(--devui-font-size, 12px);border:1px solid transparent;padding:8px 16px;line-height:24px;border-radius:var(--devui-border-radius, 2px);word-break:normal;word-wrap:break-word;display:flex;flex-wrap:nowrap}.devui-alert.devui-alert-success{background-color:var(--devui-success-bg, #bcf2db);border-color:var(--devui-success-line, #09aa71);color:var(--devui-text, #191919)}.devui-alert.devui-alert-success .devui-close>svg path{fill:var(--devui-success-line, #09aa71)}.devui-alert.devui-alert-info{background-color:var(--devui-info-bg, #cedefd);border-color:var(--devui-info-line, #0a59f7);color:var(--devui-text, #191919)}.devui-alert.devui-alert-info .devui-close>svg path{fill:var(--devui-info-line, #0a59f7)}.devui-alert.devui-alert-warning{background-color:var(--devui-warning-bg, #fde2bd);border-color:var(--devui-warning-line, #f4840c);color:var(--devui-text, #191919)}.devui-alert.devui-alert-warning .devui-close>svg path{fill:var(--devui-warning-line, #f4840c)}.devui-alert.devui-alert-danger{background-color:var(--devui-danger-bg, #fabdc1);border-color:var(--devui-danger-line, #e02128);color:var(--devui-text, #191919)}.devui-alert.devui-alert-danger .devui-close>svg path{fill:var(--devui-danger-line, #e02128)}.devui-alert.devui-alert-simple{border-color:var(--devui-line, #dbdbdb);color:var(--devui-text, #191919)}.devui-alert.devui-alert-simple .devui-close>svg path{fill:var(--devui-text-weak, #333333)}.devui-alert .devui-alert-icon{padding-right:8px}.devui-alert svg.devui-icon{width:16px;height:16px;vertical-align:middle;transform:translateY(-1px)}.devui-alert .devui-icon.devui-icon-success>g path{fill:var(--devui-success-line, #09aa71)}.devui-alert .devui-icon.devui-icon-success>g polygon{fill:var(--devui-light-text, #ffffff);stroke:var(--devui-light-text, #ffffff)}.devui-alert .devui-icon.devui-icon-warning>g path.devui-icon-warning-outer{fill:var(--devui-warning-line, #f4840c)}.devui-alert .devui-icon.devui-icon-warning>g path.devui-icon-warning-inner{fill:var(--devui-light-text, #ffffff);stroke:var(--devui-light-text, #ffffff)}.devui-alert .devui-icon.devui-icon-info>g path.devui-icon-info-outer{fill:var(--devui-info-line, #0a59f7)}.devui-alert .devui-icon.devui-icon-info>g path.devui-icon-info-inner{fill:var(--devui-light-text, #ffffff);stroke:var(--devui-light-text, #ffffff)}.devui-alert .devui-icon.devui-icon-error>g path.devui-icon-error-outer{fill:var(--devui-danger-line, #e02128)}.devui-alert .devui-icon.devui-icon-error>g path.devui-icon-error-inner{fill:var(--devui-light-text, #ffffff);stroke:var(--devui-light-text, #ffffff)}.devui-alert .devui-alert-carousel-container{flex:1;min-height:24px;overflow:hidden}.devui-alert .devui-alert-carousel-container .devui-alert-carousel-box{position:relative;left:0;top:0}.devui-alert .devui-alert-operation-container{flex-grow:0;flex-shrink:1;display:flex;align-items:center;justify-content:flex-end;min-height:24px;width:fit-content}.devui-alert .devui-alert-operation-container:empty{display:none}.devui-alert .devui-alert-operation-container .devui-alert-carousel-num{padding-right:8px}.devui-alert .devui-alert-operation-container .devui-alert-carousel-button{margin-right:8px;display:inline-flex;align-items:center;justify-content:center;width:24px;height:16px;line-height:16px;vertical-align:middle;background-color:transparent;text-align:center;border-radius:var(--devui-border-radius, 2px);cursor:pointer}.devui-alert .devui-alert-operation-container .devui-alert-carousel-button svg path{fill:var(--devui-text, #191919)}.devui-alert .devui-alert-operation-container .devui-alert-carousel-button:hover{background-color:var(--devui-shape-icon-fill-hover, #808080)}.devui-alert .devui-alert-operation-container .devui-alert-carousel-button:hover svg path{fill:var(--devui-light-text, #ffffff)}.devui-alert .devui-close{flex-grow:0;flex-shrink:1;color:var(--devui-text, #191919);opacity:1;line-height:26px;height:24px;padding-left:8px}.devui-alert .devui-close>svg path{fill:var(--devui-light-text, #ffffff)}.devui-alert .devui-close span{color:var(--devui-text, #191919);font-size:var(--devui-font-size, 12px);font-weight:700}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }] }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AlertComponent, decorators: [{
type: Component,
args: [{ selector: 'd-alert', preserveWhitespaces: false, template: "<div class=\"devui-alert devui-alert-{{ type }} {{ cssClass }}\" *ngIf=\"!hide\" [style.alignItems]=\"carouselNum > 1 ? 'center' : 'flex-start'\">\n <span class=\"devui-alert-icon\" *ngIf=\"showIcon !== false && type !== 'simple'\">\n <svg\n width=\"16px\"\n height=\"16px\"\n viewBox=\"0 0 16 16\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n class=\"devui-icon\"\n [ngClass]=\"type === 'danger' ? 'devui-icon-error' : 'devui-icon-' + type\"\n >\n <g *ngIf=\"type === 'success'\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n <path fill-rule=\"nonzero\" d=\"M8,0 C3.6,0 0,3.6 0,8 C0,12.4 3.6,16 8,16 C12.4,16 16,12.4 16,8 C16,3.6 12.4,0 8,0 Z\"></path>\n <polygon\n stroke-width=\"0.3\"\n fill-rule=\"nonzero\"\n points=\"6.82767602 11.5282799 3 7.24668779 3.89864233 6.37912367 6.82767602 9.04910002 12.2964408 4 13 4.64144383\"\n ></polygon>\n </g>\n <g *ngIf=\"type === 'warning'\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n <path\n class=\"devui-icon-warning-outer\"\n d=\"M8.96244623,0.57254229 L15.8714442,13.4101975 C16.1549662,13.9370117 15.9538562,14.5918482 15.4222523,14.8728158 C15.2642579,14.9563203 15.0879506,15 14.9088903,15 L1.09089441,15 C0.488410063,15 0,14.5159904 0,13.9189343 C0,13.7414873 0.0440768395,13.5667684 0.128340519,13.4101975 L7.03733844,0.57254229 C7.32086049,0.0457280838 7.98165058,-0.153569987 8.51325441,0.127397589 C8.70423071,0.228333932 8.8605922,0.383286648 8.96244623,0.57254229 Z\"\n ></path>\n <path\n class=\"devui-icon-warning-inner\"\n stroke-width=\"0.3\"\n fill-rule=\"nonzero\"\n d=\"M8.87894737,13 L7.08947368,13 L7.08947368,11.2105263 L8.87894737,11.2105263 L8.87894737,13 Z M8.62102372,9.86842105 L7.32800539,9.86842105 L7,4.5 L8.96842105,4.5 L8.62102372,9.86842105 Z\"\n ></path>\n </g>\n <g *ngIf=\"type === 'info'\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n <g fill-rule=\"nonzero\">\n <path\n class=\"devui-icon-info-outer\"\n d=\"M8,0 C3.6,0 0,3.6 0,8 C0,12.4 3.6,16 8,16 C12.4,16 16,12.4 16,8 C16,3.6 12.4,0 8,0 Z\"\n ></path>\n <path\n class=\"devui-icon-info-inner\"\n d=\"M9.19008504,7 L8.79402696,13 L7.15622605,13 L6.73158434,7 L9.19008504,7 Z M9,3 L9,5 L7,5 L7,3 L9,3 Z\"\n stroke-width=\"0.2\"\n ></path>\n </g>\n </g>\n <g *ngIf=\"type === 'danger'\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n <g fill-rule=\"nonzero\">\n <path\n class=\"devui-icon-error-outer\"\n d=\"M8,0 C3.6,0 0,3.6 0,8 C0,12.4 3.6,16 8,16 C12.4,16 16,12.4 16,8 C16,3.6 12.4,0 8,0 Z\"\n ></path>\n <path\n class=\"devui-icon-error-inner\"\n d=\"M9,10.6 L9,12.6 L7,12.6 L7,10.6 L9,10.6 Z M9.1,3.1 L8.65924344,9.1 L7.28422786,9.1 L6.9,3.1 L9.1,3.1 Z\"\n stroke-width=\"0.2\"\n ></path>\n </g>\n </g>\n </svg>\n </span>\n <div class=\"devui-alert-carousel-container\" [style.height]=\"carouselNum > 1 ? autoplayHeight : 'auto'\">\n <div\n #carouselContainer\n class=\"devui-alert-carousel-box\"\n (mouseenter)=\"clearScheduledTransition()\"\n (mouseleave)=\"autoScheduleTransition()\"\n >\n <ng-content></ng-content>\n </div>\n </div>\n <div class=\"devui-alert-operation-container\">\n <ng-container *ngIf=\"carouselNum > 1\">\n <div class=\"devui-alert-carousel-num\">\n <span>{{ currentIndex }}/{{ carouselNum }}</span>\n </div>\n <span class=\"devui-alert-carousel-button\">\n <svg\n (click)=\"next()\"\n width=\"12px\"\n devui-alert-operation-container\n height=\"12px\"\n viewBox=\"0 0 16 16\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n >\n <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n <path\n d=\"M2.64644661,5.14644661 C2.82001296,4.97288026 3.08943736,4.95359511 3.2843055,5.08859116 L3.35355339,5.14644661 L7.999,9.793 L12.6464466,5.14644661 C12.820013,4.97288026 13.0894374,4.95359511 13.2843055,5.08859116 L13.3535534,5.14644661 C13.5271197,5.32001296 13.5464049,5.58943736 13.4114088,5.7843055 L13.3535534,5.85355339 L8.35355339,10.8535534 C8.17998704,11.0271197 7.91056264,11.0464049 7.7156945,10.9114088 L7.64644661,10.8535534 L2.64644661,5.85355339 C2.45118446,5.65829124 2.45118446,5.34170876 2.64644661,5.14644661 Z\"\n fill-rule=\"nonzero\"\n ></path>\n </g>\n </svg>\n </span>\n </ng-container>\n <ng-template [ngTemplateOutlet]=\"operationTemplate\" [ngTemplateOutletContext]=\"{ close: close }\"> </ng-template>\n <div class=\"devui-close\" (click)=\"close()\" *ngIf=\"closeable\">\n <svg\n width=\"10px\"\n height=\"10px\"\n viewBox=\"0 0 10 10\"\n version=\"1.1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n >\n <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n <g transform=\"translate(-3.000000, -3.000000)\" fill-rule=\"nonzero\">\n <path\n d=\"M11.6426,3.19816936 C11.9239974,2.91574512 12.4131626,2.93784891 12.7352108,3.24751057 C13.0571998,3.5572302 13.0901298,4.03723416 12.8087324,4.31965839 L9.14064666,7.99900183 L12.8087324,11.6803416 C13.0645482,11.9370909 13.0605893,12.3571292 12.8158402,12.6640749 L12.7352108,12.7524894 C12.4131626,13.0621511 11.9239974,13.0842548 11.6426,12.8018306 L8,9.14489021 L4.35740003,12.8018306 C4.10158422,13.05858 3.6740594,13.0636532 3.35648225,12.8298003 L3.26478919,12.7524894 C2.94280021,12.4427698 2.90987023,11.9627658 3.19126762,11.6803416 L6.8583349,7.99900183 L3.19126762,4.31965839 C2.93545181,4.06290908 2.93941068,3.64287076 3.18415975,3.3359251 L3.26478919,3.24751057 C3.58683735,2.93784891 4.07600264,2.91574512 4.35740003,3.19816936 L8,6.85411161 L11.6426,3.19816936 Z\"\n ></path>\n </g>\n </g>\n </svg>\n </div>\n </div>\n</div>\n", styles: [".devui-font-size-base{font-size:var(--devui-font-size, 12px)}.devui-font-base{font-size:var(--devui-font-size, 12px);font-weight:var(--devui-font-content-weight, normal);line-height:var(--devui-line-height-base, 1.5)}.devui-font-size-modal-title{font-size:var(--devui-font-size-modal-title, 18px)}.devui-font-modal-title{font-size:var(--devui-font-size-modal-title, 18px);font-weight:var(--devui-font-title-weight, bold);line-height:var(--devui-line-height-base, 1.5)}.devui-font-size-page-title{font-size:var(--devui-font-size-page-title, 16px)}.devui-font-page-title{font-size:var(--devui-font-size-page-title, 16px);font-weight:var(--devui-font-title-weight, bold);line-height:var(--devui-line-height-base, 1.5)}.devui-font-size-secondary-title{font-size:var(--devui-font-size-card-title, 14px)}.devui-font-secondary-title{font-size:var(--devui-font-size-card-title, 14px);font-weight:var(--devui-font-title-weight, bold);line-height:var(--devui-line-height-base, 1.5)}:host{display:block}:host ::ng-deep .devui-alert-carousel-container .devui-alert-carousel-box>d-alert-carousel-item{min-height:var(--devui-alert-carousel-item-height, 24px)}.devui-alert{color:var(--devui-text, #191919);font-size:var(--devui-font-size, 12px);border:1px solid transparent;padding:8px 16px;line-height:24px;border-radius:var(--devui-border-radius, 2px);word-break:normal;word-wrap:break-word;display:flex;flex-wrap:nowrap}.devui-alert.devui-alert-success{background-color:var(--devui-success-bg, #bcf2db);border-color:var(--devui-success-line, #09aa71);color:var(--devui-text, #191919)}.devui-alert.devui-alert-success .devui-close>svg path{fill:var(--devui-success-line, #09aa71)}.devui-alert.devui-alert-info{background-color:var(--devui-info-bg, #cedefd);border-color:var(--devui-info-line, #0a59f7);color:var(--devui-text, #191919)}.devui-alert.devui-alert-info .devui-close>svg path{fill:var(--devui-info-line, #0a59f7)}.devui-alert.devui-alert-warning{background-color:var(--devui-warning-bg, #fde2bd);border-color:var(--devui-warning-line, #f4840c);color:var(--devui-text, #191919)}.devui-alert.devui-alert-warning .devui-close>svg path{fill:var(--devui-warning-line, #f4840c)}.devui-alert.devui-alert-danger{background-color:var(--devui-danger-bg, #fabdc1);border-color:var(--devui-danger-line, #e02128);color:var(--devui-text, #191919)}.devui-alert.devui-alert-danger .devui-close>svg path{fill:var(--devui-danger-line, #e02128)}.devui-alert.devui-alert-simple{border-color:var(--devui-line, #dbdbdb);color:var(--devui-text, #191919)}.devui-alert.devui-alert-simple .devui-close>svg path{fill:var(--devui-text-weak, #333333)}.devui-alert .devui-alert-icon{padding-right:8px}.devui-alert svg.devui-icon{width:16px;height:16px;vertical-align:middle;transform:translateY(-1px)}.devui-alert .devui-icon.devui-icon-success>g path{fill:var(--devui-success-line, #09aa71)}.devui-alert .devui-icon.devui-icon-success>g polygon{fill:var(--devui-light-text, #ffffff);stroke:var(--devui-light-text, #ffffff)}.devui-alert .devui-icon.devui-icon-warning>g path.devui-icon-warning-outer{fill:var(--devui-warning-line, #f4840c)}.devui-alert .devui-icon.devui-icon-warning>g path.devui-icon-warning-inner{fill:var(--devui-light-text, #ffffff);stroke:var(--devui-light-text, #ffffff)}.devui-alert .devui-icon.devui-icon-info>g path.devui-icon-info-outer{fill:var(--devui-info-line, #0a59f7)}.devui-alert .devui-icon.devui-icon-info>g path.devui-icon-info-inner{fill:var(--devui-light-text, #ffffff);stroke:var(--devui-light-text, #ffffff)}.devui-alert .devui-icon.devui-icon-error>g path.devui-icon-error-outer{fill:var(--devui-danger-line, #e02128)}.devui-alert .devui-icon.devui-icon-error>g path.devui-icon-error-inner{fill:var(--devui-light-text, #ffffff);stroke:var(--devui-light-text, #ffffff)}.devui-alert .devui-alert-carousel-container{flex:1;min-height:24px;overflow:hidden}.devui-alert .devui-alert-carousel-container .devui-alert-carousel-box{position:relative;left:0;top:0}.devui-alert .devui-alert-operation-container{flex-grow:0;flex-shrink:1;display:flex;align-items:center;justify-content:flex-end;min-height:24px;width:fit-content}.devui-alert .devui-alert-operation-container:empty{display:none}.devui-alert .devui-alert-operation-container .devui-alert-carousel-num{padding-right:8px}.devui-alert .devui-alert-operation-container .devui-alert-carousel-button{margin-right:8px;display:inline-flex;align-items:center;justify-content:center;width:24px;height:16px;line-height:16px;vertical-align:middle;background-color:transparent;text-align:center;border-radius:var(--devui-border-radius, 2px);cursor:pointer}.devui-alert .devui-alert-operation-container .devui-alert-carousel-button svg path{fill:var(--devui-text, #191919)}.devui-alert .devui-alert-operation-container .devui-alert-carousel-button:hover{background-color:var(--devui-shape-icon-fill-hover, #808080)}.devui-alert .devui-alert-operation-container .devui-alert-carousel-button:hover svg path{fill:var(--devui-light-text, #ffffff)}.devui-alert .devui-close{flex-grow:0;flex-shrink:1;color:var(--devui-text, #191919);opacity:1;line-height:26px;height:24px;padding-left:8px}.devui-alert .devui-close>svg path{fill:var(--devui-light-text, #ffffff)}.devui-alert .devui-close span{color:var(--devui-text, #191919);font-size:var(--devui-font-size, 12px);font-weight:700}\n"] }]
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { type: [{
type: Input
}], cssClass: [{
type: Input
}], closeable: [{
type: Input
}], showIcon: [{
type: Input
}], autoplay: [{
type: Input
}], autoplaySpeed: [{
type: Input
}], transitionSpeed: [{
type: Input
}], operationTemplate: [{
type: Input
}], dismissTime: [{
type: Input
}], closeEvent: [{
type: Output
}], box: [{
type: ViewChild,
args: ['carouselContainer']
}], carouselItems: [{
type: ContentChildren,
args: [AlertCarouselItemComponent]
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWxlcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZGV2dWkvYWxlcnQvYWxlcnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vZGV2dWkvYWxlcnQvYWxlcnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLFNBQVMsRUFDVCxlQUFlLEVBQ2YsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBR0wsTUFBTSxFQUNOLFNBQVMsRUFDVCxTQUFTLEVBRVQsV0FBVyxFQUNYLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7O0FBUzdFLE1BQU0sT0FBTyxjQUFjO0lBU3pCLElBQWEsV0FBVyxDQUFDLElBQVk7UUFDbkMsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNmLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNYLENBQUM7SUFXRCxZQUFvQixFQUFjLEVBQVUsUUFBbUI7UUFBM0MsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVc7UUF2QnRELFNBQUksR0FBYyxNQUFNLENBQUM7UUFFekIsY0FBUyxHQUFHLElBQUksQ0FBQztRQUNqQixhQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ2hCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsa0JBQWEsR0FBRyxJQUFJLENBQUM7UUFDckIsb0JBQWUsR0FBRyxHQUFHLENBQUM7UUFPckIsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFrQixDQUFDO1FBRzFELFNBQUksR0FBRyxLQUFLLENBQUM7UUFHYixpQkFBWSxHQUFHLENBQUMsQ0FBQztRQUVqQix1QkFBa0IsR0FBRyxNQUFNLENBQUM7UUEwQzVCLFNBQUksR0FBRyxHQUFTLEVBQUU7WUFDaEIsSUFBSSxJQUFJLENBQUMs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QUtJLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ3lCLEdBQUc7c0JBQWxDLFNBQVM7dUJBQUMsbUJBQW1CO2dCQUNlLGFBQWE7c0JBQXpELGVBQWU7dUJBQUMsMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgUmVuZGVyZXIyLFxuICBTaW1wbGVDaGFuZ2VzLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFsZXJ0Q2Fyb3VzZWxJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9hbGVydC1jYXJvdXNlbC1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBbGVydFR5cGUgfSBmcm9tICcuL2FsZXJ0LnR5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZC1hbGVydCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9hbGVydC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2FsZXJ0LmNvbXBvbmVudC5zY3NzJ10sXG4gIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlLFxufSlcbmV4cG9ydCBjbGFzcyBBbGVydENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KCkgdHlwZTogQWxlcnRUeXBlID0gJ2luZm8nO1xuICBASW5wdXQoKSBjc3NDbGFzczogc3RyaW5nO1xuICBASW5wdXQoKSBjbG9zZWFibGUgPSB0cnVlO1xuICBASW5wdXQoKSBzaG93SWNvbiA9IHRydWU7XG4gIEBJbnB1dCgpIGF1dG9wbGF5ID0gZmFsc2U7XG4gIEBJbnB1dCgpIGF1dG9wbGF5U3BlZWQgPSAzMDAwO1xuICBASW5wdXQoKSB0cmFuc2l0aW9uU3BlZWQgPSA1MDA7XG4gIEBJbnB1dCgpIG9wZXJhdGlvblRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBASW5wdXQoKSBzZXQgZGlzbWlzc1RpbWUodGltZTogbnVtYmVyKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgfSwgdGltZSk7XG4gIH1cbiAgQE91dHB1dCgpIGNsb3NlRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPEFsZXJ0Q29tcG9uZW50PigpO1xuICBAVmlld0NoaWxkKCdjYXJvdXNlbENvbnRhaW5lcicpIGJveDogRWxlbWVudFJlZjxhbnk+O1xuICBAQ29udGVudENoaWxkcmVuKEFsZXJ0Q2Fyb3VzZWxJdGVtQ29tcG9uZW50KSBjYXJvdXNlbEl0ZW1zOiBRdWVyeUxpc3Q8QWxlcnRDYXJvdXNlbEl0ZW1Db21wb25lbnQ+O1xuICBoaWRlID0gZmFsc2U7XG4gIGF1dG9wbGF5SGVpZ2h0OiBzdHJpbmc7XG4gIGNhcm91c2VsTnVtOiBudW1iZXI7XG4gIGN1cnJlbnRJbmRleCA9IDE7XG4gIHNjaGVkdWxlZElkOiBhbnk7XG4gIFNJTkdMRV9MSU5FX0hFSUdIVCA9ICcyNHB4JztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVsOiBFbGVtZW50UmVmLCBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHt9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGNvbnN0IHsgYXV0b3BsYXksIGF1dG9wbGF5U3BlZWQsIHRyYW5zaXRpb25TcGVlZCB9ID0gY2hhbmdlcztcbiAgICBpZiAoKGF1dG9wbGF5IHx8IGF1dG9wbGF5U3BlZWQpICYmICghdGhpcy5hdXRvcGxheSB8fCAhdGhpcy5hdXRvcGxheVNwZWVkKSkge1xuICAgICAgdGhpcy5jbGVhclNjaGVkdWxlZFRyYW5zaXRpb24oKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hdXRvU2NoZWR1bGVUcmFuc2l0aW9uKCk7XG4gICAgfVxuICAgIGlmICh0cmFuc2l0aW9uU3BlZWQgJiYgdGhpcy50cmFuc2l0aW9uU3BlZWQpIHtcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5ib3gubmF0aXZlRWxlbWVudCwgJ3RyYW5zaXRpb24nLCBgdG9wICR7dGhpcy50cmFuc2l0aW9uU3BlZWR9bXMgZWFzZWApO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnJlbmRlckNhcm91c2VsSXRlbSgpO1xuICAgIHRoaXMuY2Fyb3VzZWxJdGVtcy5jaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB0aGlzLnJlbmRlckNhcm91c2VsSXRlbSgpKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuY2xlYXJTY2hlZHVsZWRUcmFuc2l0aW9uKCk7XG4gIH1cblxuICByZW5kZXJDYXJvdXNlbEl0ZW0oKSB7XG4gICAgdGhpcy5jYXJvdXNlbE51bSA9IHRoaXMuY2Fyb3VzZWxJdGVtcy5sZW5ndGg7XG4gICAgaWYgKHRoaXMuY2Fyb3VzZWxOdW0gPiAxKSB7XG4gICAgICBpZiAoIXRoaXMuYXV0b3BsYXlIZWlnaHQpIHtcbiAgICAgICAgY29uc3QgaXRlbUhlaWdodHMgPSB0aGlzLmNhcm91c2VsSXRlbXMubWFwKChpdGVtKSA9PiB7XG4gICAgICAgICAgY29uc3QgcmVjdCA9IGl0ZW0/LmVsLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgcmV0dXJuIHJlY3Q/LmhlaWdodCB8fCAwO1xuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgbWF4SGVpZ2h0ID0gTWF0aC5tYXgoLi4uaXRlbUhlaWdodHMpO1xuICAgICAgICB0aGlzLmF1dG9wbGF5SGVpZ2h0ID0gbWF4SGVpZ2h0ID8gYCR7bWF4SGVpZ2h0fXB4YCA6IHRoaXMuU0lOR0xFX0xJTkVfSEVJR0hUO1xuICAgICAgfVxuICAgICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnN0eWxlLnNldFByb3BlcnR5KCctLWRldnVpLWFsZXJ0LWNhcm91c2VsLWl0ZW0taGVpZ2h0JywgdGhpcy5hdXRvcGxheUhlaWdodCk7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuYm94Lm5hdGl2ZUVsZW1lbnQsICd0cmFuc2l0aW9uJywgYHRvcCAke3RoaXMudHJhbnNpdGlvblNwZWVkfW1zIGVhc2VgKTtcbiAgICAgIHRoaXMuYXV0b1NjaGVkdWxlVHJhbnNpdGlvbigpO1xuICAgIH1cbiAgfVxuXG4gIG5leHQgPSAoKTogdm9pZCA9PiB7XG4gICAgaWYgKHRoaXMuY3VycmVudEluZGV4IDwgdGhpcy5jYXJvdXNlbE51bSkge1xuICAgICAgdGhpcy5jdXJyZW50SW5kZXgrKztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jdXJyZW50SW5kZXggPSAxO1xuICAgIH1cbiAgICB0aGlzLnRyYW5zbGF0ZVBvc2l0aW9uKHRoaXMuY3VycmVudEluZGV4IC0gMSk7XG4gICAgdGhpcy5hdXRvU2NoZWR1bGVUcmFuc2l0aW9uKCk7XG4gIH07XG5cbiAgYXV0b1NjaGVkdWxlVHJhbnNpdGlvbigpIHtcbiAgICB0aGlzLmNsZWFyU2NoZWR1bGVkVHJhbnNpdGlvbigpO1xuICAgIGlmICh0aGlzLmF1dG9wbGF5ICYmIHRoaXMuYXV0b3BsYXlTcGVlZCkge1xuICAgICAgdGhpcy5zY2hlZHVsZWRJZCA9IHNldFRpbWVvdXQoKCkgPT4gdGhpcy5uZXh0KCksIHRoaXMuYXV0b3BsYXlTcGVlZCk7XG4gICAgfVxuICB9XG5cbiAgY2xlYXJTY2hlZHVsZWRUcmFuc2l0aW9uKCkge1xuICAgIGlmICh0aGlzLnNjaGVkdWxlZElkKSB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy5zY2hlZHVsZWRJZCk7XG4gICAgICB0aGlzLnNjaGVkdWxlZElkID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIHRyYW5zbGF0ZVBvc2l0aW9uKHNpemU6IG51bWJlcikge1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5ib3gubmF0aXZlRWxlbWVudCwgJ3RvcCcsIGAkey1zaXplICogMTAwfSVgKTtcbiAgfVxuXG4gIGNsb3NlID0gKCk6IHZvaWQgPT4ge1xuICAgIHRoaXMuY2xlYXJTY2hlZHVsZWRUcmFuc2l0aW9uKCk7XG4gICAgdGhpcy5jbG9zZUV2ZW50LmVtaXQodGhpcyk7XG4gICAgdGhpcy5oaWRlID0gdHJ1ZTtcbiAgfTtcbn1cbiIsIjxkaXYgY2xhc3M9XCJkZXZ1aS1hbGVydCBkZXZ1aS1hbGVydC17eyB0eXBlIH19IHt7IGNzc0NsYXNzIH19XCIgKm5nSWY9XCIhaGlkZVwiIFtzdHlsZS5hbGlnbkl0ZW1zXT1cImNhcm91c2VsTnVtID4gMSA/ICdjZW50ZXInIDogJ2ZsZXgtc3RhcnQnXCI+XG4gIDxzcGFuIGNsYXNzPVwiZGV2dWktYWxlcnQtaWNvblwiICpuZ0lmPVwic2hvd0ljb24gIT09IGZhbHNlICYmIHR5cGUgIT09ICdzaW1wbGUnXCI+XG4gICAgPHN2Z1xuICAgICAgd2lkdGg9XCIxNnB4XCJcbiAgICAgIGhlaWdodD1cIjE2cHhcIlxuICAgICAgdmlld0JveD1cIjAgMCAxNiAxNlwiXG4gICAgICB2ZXJzaW9uPVwiMS4xXCJcbiAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgeG1sbnM6eGxpbms9XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCJcbiAgICAgIGNsYXNzPVwiZGV2dWktaWNvblwiXG4gICAgICBbbmdDbGFzc109XCJ0eXBlID09PSAnZGFuZ2VyJyA/ICdkZXZ1aS1pY29uLWVycm9yJyA6ICdkZXZ1aS1pY29uLScgKyB0eXBlXCJcbiAgICA+XG4gICAgICA8ZyAqbmdJZj1cInR5cGUgPT09ICdzdWNjZXNzJ1wiIHN0cm9rZT1cIm5vbmVcIiBzdHJva2Utd2lkdGg9XCIxXCIgZmlsbD1cIm5vbmVcIiBmaWxsLXJ1bGU9XCJldmVub2RkXCI+XG4gICAgICAgIDxwYXRoIGZpbGwtcnVsZT1cIm5vbnplcm9cIiBkPVwiTTgsMCBDMy42LDAgMCwzLjYgMCw4IEMwLDEyLjQgMy42LDE2IDgsMTYgQzEyLjQsMTYgMTYsMTIuNCAxNiw4IEMxNiwzLjYgMTIuNCwwIDgsMCBaXCI+PC9wYXRoPlxuICAgICAgICA8cG9seWdvblxuICAgICAgICAgIHN0cm9rZS13aWR0aD1cIjAuM1wiXG4gICAgICAgICAgZmlsbC1ydWxlPVwibm9uemVyb1wiXG4gICAgICAgICAgcG9pbnRzPVwiNi44Mjc2NzYwMiAxMS41MjgyNzk5IDMgNy4yNDY2ODc3OSAzLjg5ODY0MjMzIDYuMzc5MTIzNjcgNi44Mjc2NzYwMiA5LjA0OTEwMDAyIDEyLjI5NjQ0MDggNCAxMyA0LjY0MTQ0MzgzXCJcbiAgICAgICAgPjwvcG9seWdvbj5cbiAgICAgIDwvZz5cbiAgICAgIDxnICpuZ0lmPVwidHlwZSA9PT0gJ3dhcm5pbmcnXCIgc3Ryb2tlPVwibm9uZVwiIHN0cm9rZS13aWR0aD1cIjFcIiBmaWxsPVwibm9uZVwiIGZpbGwtcnVsZT1cImV2ZW5vZGRcIj5cbiAgICAgICAgPHBhdGhcbiAgICAgICAgICBjbGFzcz1cImRldnVpLWljb24td2FybmluZy1vdXRlclwiXG4gICAgICAgICAgZD1cIk04Ljk2MjQ0NjIzLDAuNTcyNTQyMjkgTDE1Ljg3MTQ0NDIsMTMuNDEwMTk3NSBDMTYuMTU0OTY2MiwxMy45MzcwMTE3IDE1Ljk1Mzg1NjIsMTQuNTkxODQ4MiAxNS40MjIyNTIzLDE0Ljg3MjgxNTggQzE1LjI2NDI1NzksMTQuOTU2MzIwMyAxNS4wODc5NTA2LDE1IDE0LjkwODg5MDMsMTUgTDEuMDkwODk0NDEsMTUgQzAuNDg4NDEwMDYzLDE1IDAsMTQuNTE1OTkwNCAwLDEzLjkxODkzNDMgQzAsMTMuNzQxNDg3MyAwLjA0NDA3NjgzOTUsMTMuNTY2NzY4NCAwLjEyODM0MDUxOSwxMy40MTAxOTc1IEw3LjAzNzMzODQ0LDAuNTcyNTQyMjkgQzcuMzIwODYwNDksMC4wNDU3MjgwODM4IDcuOTgxNjUwNTgsLTAuMTUzNTY5OTg3IDguNTEzMjU0NDEsMC4xMjczOTc1ODkgQzguNzA0MjMwNzEsMC4yMjgzMzM5MzIgOC44NjA1OTIyLDAuMzgzMjg2NjQ4IDguOTYyNDQ2MjMsMC41NzI1NDIyOSBaXCJcbiAgICAgICAgPjwvcGF0aD5cbiAgICAgICAgPHBhdGhcbiAgICAgICAgICBjbGFzcz1cImRldnVpLWljb24td2FybmluZy1pbm5lclwiXG4gICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMC4zXCJcbiAgICAgICAgICBmaWxsLXJ1bGU9XCJub256ZXJvXCJcbiAgICAgICAgICBkPVwiTTguODc4OTQ3MzcsMTMgTDcuMDg5NDczNjgsMTMgTDcuMDg5NDczNjgsMTEuMjEwNTI2MyBMOC44Nzg5NDczNywxMS4yMTA1MjYzIEw4Ljg3ODk0NzM3LDEzIFogTTguNjIxMDIzNzIsOS44Njg0MjEwNSBMNy4zMjgwMDUzOSw5Ljg2ODQyMTA1IEw3LDQuNSBMOC45Njg0MjEwNSw0LjUgTDguNjIxMDIzNzIsOS44Njg0MjEwNSBaXCJcbiAgICAgICAgPjwvcGF0aD5cbiAgICAgIDwvZz5cbiAgICAgIDxnICpuZ0lmPVwidHlwZSA9PT0gJ2luZm8nXCIgc3Ryb2tlPVwibm9uZVwiIHN0cm9rZS13aWR0aD1cIjFcIiBmaWxsPVwibm9uZVwiIGZpbGwtcnVsZT1cImV2ZW5vZGRcIj5cbiAgICAgICAgPGcgZmlsbC1ydWxlPVwibm9uemVyb1wiPlxuICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICBjbGFzcz1cImRldnVpLWljb24taW5mby1vdXRlclwiXG4gICAgICAgICAgICBkPVwiTTgsMCBDMy42LDAgMCwzLjYgMCw4IEMwLDEyLjQgMy42LDE2IDgsMTYgQzEyLjQsMTYgMTYsMTIuNCAxNiw4IEMxNiwzLjYgMTIuNCwwIDgsMCBaXCJcbiAgICAgICAgICA+PC9wYXRoPlxuICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICBjbGFzcz1cImRldnVpLWljb24taW5mby1pbm5lclwiXG4gICAgICAgICAgICBkPVwiTTkuMTkwMDg1MDQsNyBMOC43OTQwMjY5NiwxMyBMNy4xNTYyMjYwNSwxMyBMNi43MzE1ODQzNCw3IEw5LjE5MDA4NTA0LDcgWiBNOSwzIEw5LDUgTDcsNSBMNywzIEw5LDMgWlwiXG4gICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIwLjJcIlxuICAgICAgICAgID48L3BhdGg+XG4gICAgICAgIDwvZz5cbiAgICAgIDwvZz5cbiAgICAgIDxnICpuZ0lmPVwidHlwZSA9PT0gJ2RhbmdlcidcIiBzdHJva2U9XCJub25lXCIgc3Ryb2tlLXdpZHRoPVwiMVwiIGZpbGw9XCJub25lXCIgZmlsbC1ydWxlPVwiZXZlbm9kZFwiPlxuICAgICAgICA8ZyBmaWxsLXJ1bGU9XCJub256ZXJvXCI+XG4gICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgIGNsYXNzPVwiZGV2dWktaWNvbi1lcnJvci1vdXRlclwiXG4gICAgICAgICAgICBkPVwiTTgsMCBDMy42LDAgMCwzLjYgMCw4IEMwLDEyLjQgMy42LDE2IDgsMTYgQzEyLjQsMTYgMTYsMTIuNCAxNiw4IEMxNiwzLjYgMTIuNCwwIDgsMCBaXCJcbiAgICAgICAgICA+PC9wYXRoPlxuICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICBjbGFzcz1cImRldnVpLWljb24tZXJyb3ItaW5uZXJcIlxuICAgICAgICAgICAgZD1cIk05LDEwLjYgTDksMTIuNiBMNywxMi42IEw3LDEwLjYgTDksMTAuNiBaIE05LjEsMy4xIEw4LjY1OTI0MzQ0LDkuMSBMNy4yODQyMjc4Niw5LjEgTDYuOSwzLjEgTDkuMSwzLjEgWlwiXG4gICAgICAgICAgICBzdHJva2Utd2lkdGg9XCIwLjJcIlxuICAgICAgICAgID48L3BhdGg+XG4gICAgICAgIDwvZz5cbiAgICAgIDwvZz5cbiAgICA8L3N2Zz5cbiAgPC9zcGFuPlxuICA8ZGl2IGNsYXNzPVwiZGV2dWktYWxlcnQtY2Fyb3VzZWwtY29udGFpbmVyXCIgW3N0eWxlLmhlaWdodF09XCJjYXJvdXNlbE51bSA+IDEgPyBhdXRvcGxheUhlaWdodCA6ICdhdXRvJ1wiPlxuICAgIDxkaXZcbiAgICAgICNjYXJvdXNlbENvbnRhaW5lclxuICAgICAgY2xhc3M9XCJkZXZ1aS1hbGVydC1jYXJvdXNlbC1ib3hcIlxuICAgICAgKG1vdXNlZW50ZXIpPVwiY2xlYXJTY2hlZHVsZWRUcmFuc2l0aW9uKClcIlxuICAgICAgKG1vdXNlbGVhdmUpPVwiYXV0b1NjaGVkdWxlVHJhbnNpdGlvbigpXCJcbiAgICA+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiZGV2dWktYWxlcnQtb3BlcmF0aW9uLWNvbnRhaW5lclwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjYXJvdXNlbE51bSA+IDFcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJkZXZ1aS1hbGVydC1jYXJvdXNlbC1udW1cIj5cbiAgICAgICAgPHNwYW4+e3sgY3VycmVudEluZGV4IH19L3t7IGNhcm91c2VsTnVtIH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8c3BhbiBjbGFzcz1cImRldnVpLWFsZXJ0LWNhcm91c2VsLWJ1dHRvblwiPlxuICAgICAgICA8c3ZnXG4gICAgICAgICAgKGNsaWNrKT1cIm5leHQoKVwiXG4gICAgICAgICAgd2lkdGg9XCIxMnB4XCJcbiAgICAgICAgICBkZXZ1aS1hbGVydC1vcGVyYXRpb24tY29udGFpbmVyXG4gICAgICAgICAgaGVpZ2h0PVwiMTJweFwiXG4gICAgICAgICAgdmlld0JveD1cIjAgMCAxNiAxNlwiXG4gICAgICAgICAgdmVyc2lvbj1cIjEuMVwiXG4gICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgeG1sbnM6eGxpbms9XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxnIHN0cm9rZT1cIm5vbmVcIiBzdHJva2Utd2lkdGg9XCIxXCIgZmlsbD1cIm5vbmVcIiBmaWxsLXJ1bGU9XCJldmVub2RkXCI+XG4gICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICBkPVwiTTIuNjQ2NDQ2NjEsNS4xNDY0NDY2MSBDMi44MjAwMTI5Niw0Ljk3Mjg4MDI2IDMuMDg5NDM3MzYsNC45NTM1OTUxMSAzLjI4NDMwNTUsNS4wODg1OTExNiBMMy4zNTM1NTMzOSw1LjE0NjQ0NjYxIEw3Ljk5OSw5Ljc5MyBMMTIuNjQ2NDQ2Niw1LjE0NjQ0NjYxIEMxMi44MjAwMTMsNC45NzI4ODAyNiAxMy4wODk0Mzc0LDQuOTUzNTk1MTEgMTMuMjg0MzA1NSw1LjA4ODU5MTE2IEwxMy4zNTM1NTM0LDUuMTQ2NDQ2NjEgQzEzLjUyNzExOTcsNS4zMjAwMTI5NiAxMy41NDY0MDQ5LDUuNTg5NDM3MzYgMTMuNDExNDA4OCw1Ljc4NDMwNTUgTDEzLjM1MzU1MzQsNS44NTM1NTMzOSBMOC4zNTM1NTMzOSwxMC44NTM1NTM0IEM4LjE3OTk4NzA0LDExLjAyNzExOTcgNy45MTA1NjI2NCwxMS4wNDY0MDQ5IDcuNzE1Njk0NSwxMC45MTE0MDg4IEw3LjY0NjQ0NjYxLDEwLjg1MzU1MzQgTDIuNjQ2NDQ2NjEsNS44NTM1NTMzOSBDMi40NTExODQ0Niw1LjY1ODI5MTI0IDIuNDUxMTg0NDYsNS4zNDE3MDg3NiAyLjY0NjQ0NjYxLDUuMTQ2NDQ2NjEgWlwiXG4gICAgICAgICAgICAgIGZpbGwtcnVsZT1cIm5vbnplcm9cIlxuICAgICAgICAgICAgPjwvcGF0aD5cbiAgICAgICAgICA8L2c+XG4gICAgICAgIDwvc3ZnPlxuICAgICAgPC9zcGFuPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJvcGVyYXRpb25UZW1wbGF0ZVwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IGNsb3NlOiBjbG9zZSB9XCI+IDwvbmctdGVtcGxhdGU+XG4gICAgPGRpdiBjbGFzcz1cImRldnVpLWNsb3NlXCIgKGNsaWNrKT1cImNsb3NlKClcIiAqbmdJZj1cImNsb3NlYWJsZVwiPlxuICAgICAgPHN2Z1xuICAgICAgICB3aWR0aD1cIjEwcHhcIlxuICAgICAgICBoZWlnaHQ9XCIxMHB4XCJcbiAgICAgICAgdmlld0JveD1cIjAgMCAxMCAxMFwiXG4gICAgICAgIHZlcnNpb249XCIxLjFcIlxuICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgeG1sbnM6eGxpbms9XCJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rXCJcbiAgICAgID5cbiAgICAgICAgPGcgc3Ryb2tlPVwibm9uZVwiIHN0cm9rZS13aWR0aD1cIjFcIiBmaWxsPVwibm9uZVwiIGZpbGwtcnVsZT1cImV2ZW5vZGRcIj5cbiAgICAgICAgICA8ZyB0cmFuc2Zvcm09XCJ0cmFuc2xhdGUoLTMuMDAwMDAwLCAtMy4wMDAwMDApXCIgZmlsbC1ydWxlPVwibm9uemVyb1wiPlxuICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgZD1cIk0xMS42NDI2LDMuMTk4MTY5MzYgQzExLjkyMzk5NzQsMi45MTU3NDUxMiAxMi40MTMxNjI2LDIuOTM3ODQ4OTEgMTIuNzM1MjEwOCwzLjI0NzUxMDU3IEMxMy4wNTcxOTk4LDMuNTU3MjMwMiAxMy4wOTAxMjk4LDQuMDM3MjM0MTYgMTIuODA4NzMyNCw0LjMxOTY1ODM5IEw5LjE0MDY0NjY2LDcuOTk5MDAxODMgTDEyLjgwODczMjQsMTEuNjgwMzQxNiBDMTMuMDY0NTQ4MiwxMS45MzcwOTA5IDEzLjA2MDU4OTMsMTIuMzU3MTI5MiAxMi44MTU4NDAyLDEyLjY2NDA3NDkgTDEyLjczNTIxMDgsMTIuNzUyNDg5NCBDMTIuNDEzMTYyNiwxMy4wNjIxNTExIDExLjkyMzk5NzQsMTMuMDg0MjU0OCAxMS42NDI2LDEyLjgwMTgzMDYgTDgsOS4xNDQ4OTAyMSBMNC4zNTc0MDAwMywxMi44MDE4MzA2IEM0LjEwMTU4NDIyLDEzLjA1ODU4IDMuNjc0MDU5NCwxMy4wNjM2NTMyIDMuMzU2NDgyMjUsMTIuODI5ODAwMyBMMy4yNjQ3ODkxOSwxMi43NTI0ODk0IEMyLjk0MjgwMDIxLDEyLjQ0Mjc2OTggMi45MDk4NzAyMywxMS45NjI3NjU4IDMuMTkxMjY3NjIsMTEuNjgwMzQxNiBMNi44NTgzMzQ5LDcuOTk5MDAxODMgTDMuMTkxMjY3NjIsNC4zMTk2NTgzOSBDMi45MzU0NTE4MSw0LjA2MjkwOTA4IDIuOTM5NDEwNjgsMy42NDI4NzA3NiAzLjE4NDE1OTc1LDMuMzM1OTI1MSBMMy4yNjQ3ODkxOSwzLjI0NzUxMDU3IEMzLjU4NjgzNzM1LDIuOTM3ODQ4OTEgNC4wNzYwMDI2NCwyLjkxNTc0NTEyIDQuMzU3NDAwMDMsMy4xOTgxNjkzNiBMOCw2Ljg1NDExMTYxIEwxMS42NDI2LDMuMTk4MTY5MzYgWlwiXG4gICAgICAgICAgICA+PC9wYXRoPlxuICAgICAgICAgIDwvZz5cbiAgICAgICAgPC9nPlxuICAgICAgPC9zdmc+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=