UNPKG

ng-devui

Version:

DevUI components based on Angular

82 lines 16.9 kB
import { Component, HostBinding, Inject, ViewEncapsulation } from '@angular/core'; import { AccordionBaseComponent } from './accordion-base-component.class'; import { ACCORDION } from './accordion-token'; import { AccordionService } from './accordion.service'; import * as i0 from "@angular/core"; import * as i1 from "./accordion.service"; import * as i2 from "@angular/common"; export class AccordionMenuComponent extends AccordionBaseComponent { get open() { return this.keyOpen === undefined && this.accordion.autoOpenActiveMenu ? this.childActivated : this.keyOpen; } get routerLinkActivated() { return this.accordionListFromView && this.accordionListFromView.routerLinkActivated; } get hasActiveChildren() { return this.accordionListFromView && this.accordionListFromView.hasActiveChildren; } get keyOpen() { return this.item && this.item[this.accordion.openKey]; } get children() { return this.item && this.item[this.accordion.childrenKey]; } get childActivated() { return this.routerLinkActivated || this.hasActiveChildren; } get menuItemTemplate() { return this.accordion.menuItemTemplate; } constructor(accordion, accordionService) { super(accordion); this.accordion = accordion; this.accordionService = accordionService; this.defaultClasses = true; } ngOnInit() { this.childListSub = this.accordionService.getChildListInstance().subscribe(({ listInstance, parent }) => { // list的parent与menu的item为同一数据,通过该属性匹配父子关系,避免互相嵌套导致循环依赖 if (parent === this.item) { // 延时赋值规避脏检查后值改变报错 setTimeout(() => { this.accordionListFromView = listInstance; }); } }); } ngOnDestroy() { if (this.childListSub) { this.childListSub.unsubscribe(); } } toggle(event) { this.accordion.menuToggleFn({ item: this.item, open: !this.open, parent: this.parent, event: event, }); } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AccordionMenuComponent, deps: [{ token: ACCORDION }, { token: i1.AccordionService }], target: i0.ɵɵFactoryTarget.Component }); } static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: AccordionMenuComponent, selector: "d-accordion-menu", host: { properties: { "class.devui-accordion-menu-item": "this.defaultClasses", "class.open": "this.open", "class.devui-router-active": "this.routerLinkActivated", "class.devui-has-active-item": "this.hasActiveChildren" } }, usesInheritance: true, ngImport: i0, template: "<div\r\n class=\"devui-accordion-item-title devui-over-flow-ellipsis\"\r\n [ngClass]=\"{\r\n open: open,\r\n active: childActivated,\r\n disabled: disabled\r\n }\"\r\n title=\"{{ title }}\"\r\n (click)=\"!disabled && toggle($event)\"\r\n>\r\n <div\r\n class=\"devui-accordion-splitter\"\r\n [ngClass]=\"{\r\n 'devui-parent-list': deepth === 0\r\n }\"\r\n [ngStyle]=\"{ left: deepth * 20 + 10 + 'px' }\"\r\n ></div>\r\n <ng-container *ngIf=\"!menuItemTemplate\">\r\n {{ title }}\r\n </ng-container>\r\n <ng-template\r\n *ngIf=\"menuItemTemplate\"\r\n [ngTemplateOutlet]=\"menuItemTemplate\"\r\n [ngTemplateOutletContext]=\"{\r\n parent: parent,\r\n item: item,\r\n deepth: deepth\r\n }\"\r\n ></ng-template>\r\n <span class=\"devui-accordion-open-icon\">\r\n <svg\r\n width=\"16px\"\r\n height=\"16px\"\r\n viewBox=\"0 0 16 16\"\r\n version=\"1.1\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n >\r\n <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\r\n <path\r\n d=\"M3.64644661,5.64644661 C3.82001296,5.47288026 4.08943736,5.45359511 4.2843055,5.58859116 L4.35355339,5.64644661 L8,9.293 L11.6464466,5.64644661 C11.820013,5.47288026 12.0894374,5.45359511 12.2843055,5.58859116 L12.3535534,5.64644661 C12.5271197,5.82001296 12.5464049,6.08943736 12.4114088,6.2843055 L12.3535534,6.35355339 L8.35355339,10.3535534 C8.17998704,10.5271197 7.91056264,10.5464049 7.7156945,10.4114088 L7.64644661,10.3535534 L3.64644661,6.35355339 C3.45118446,6.15829124 3.45118446,5.84170876 3.64644661,5.64644661 Z\"\r\n ></path>\r\n </g>\r\n </svg>\r\n </span>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], encapsulation: i0.ViewEncapsulation.None }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AccordionMenuComponent, decorators: [{ type: Component, args: [{ selector: 'd-accordion-menu', encapsulation: ViewEncapsulation.None, preserveWhitespaces: false, template: "<div\r\n class=\"devui-accordion-item-title devui-over-flow-ellipsis\"\r\n [ngClass]=\"{\r\n open: open,\r\n active: childActivated,\r\n disabled: disabled\r\n }\"\r\n title=\"{{ title }}\"\r\n (click)=\"!disabled && toggle($event)\"\r\n>\r\n <div\r\n class=\"devui-accordion-splitter\"\r\n [ngClass]=\"{\r\n 'devui-parent-list': deepth === 0\r\n }\"\r\n [ngStyle]=\"{ left: deepth * 20 + 10 + 'px' }\"\r\n ></div>\r\n <ng-container *ngIf=\"!menuItemTemplate\">\r\n {{ title }}\r\n </ng-container>\r\n <ng-template\r\n *ngIf=\"menuItemTemplate\"\r\n [ngTemplateOutlet]=\"menuItemTemplate\"\r\n [ngTemplateOutletContext]=\"{\r\n parent: parent,\r\n item: item,\r\n deepth: deepth\r\n }\"\r\n ></ng-template>\r\n <span class=\"devui-accordion-open-icon\">\r\n <svg\r\n width=\"16px\"\r\n height=\"16px\"\r\n viewBox=\"0 0 16 16\"\r\n version=\"1.1\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\r\n >\r\n <g stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\r\n <path\r\n d=\"M3.64644661,5.64644661 C3.82001296,5.47288026 4.08943736,5.45359511 4.2843055,5.58859116 L4.35355339,5.64644661 L8,9.293 L11.6464466,5.64644661 C11.820013,5.47288026 12.0894374,5.45359511 12.2843055,5.58859116 L12.3535534,5.64644661 C12.5271197,5.82001296 12.5464049,6.08943736 12.4114088,6.2843055 L12.3535534,6.35355339 L8.35355339,10.3535534 C8.17998704,10.5271197 7.91056264,10.5464049 7.7156945,10.4114088 L7.64644661,10.3535534 L3.64644661,6.35355339 C3.45118446,6.15829124 3.45118446,5.84170876 3.64644661,5.64644661 Z\"\r\n ></path>\r\n </g>\r\n </svg>\r\n </span>\r\n</div>\r\n" }] }], ctorParameters: () => [{ type: undefined, decorators: [{ type: Inject, args: [ACCORDION] }] }, { type: i1.AccordionService }], propDecorators: { defaultClasses: [{ type: HostBinding, args: ['class.devui-accordion-menu-item'] }], open: [{ type: HostBinding, args: ['class.open'] }], routerLinkActivated: [{ type: HostBinding, args: ['class.devui-router-active'] }], hasActiveChildren: [{ type: HostBinding, args: ['class.devui-has-active-item'] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZGV2dWkvYWNjb3JkaW9uL2FjY29yZGlvbi1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uL2RldnVpL2FjY29yZGlvbi9hY2NvcmRpb24tbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQXFCLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXJHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7OztBQVF2RCxNQUFNLE9BQU8sc0JBQXVCLFNBQVEsc0JBQTREO0lBTXRHLElBQ0ksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLE9BQU8sS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUM5RyxDQUFDO0lBRUQsSUFDSSxtQkFBbUI7UUFDckIsT0FBTyxJQUFJLENBQUMscUJBQXFCLElBQUksSUFBSSxDQUFDLHFCQUFxQixDQUFDLG1CQUFtQixDQUFDO0lBQ3RGLENBQUM7SUFFRCxJQUNJLGlCQUFpQjtRQUNuQixPQUFPLElBQUksQ0FBQyxxQkFBcUIsSUFBSSxJQUFJLENBQUMscUJBQXFCLENBQUMsaUJBQWlCLENBQUM7SUFDcEYsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxtQkFBbUIsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDNUQsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQztJQUN6QyxDQUFDO0lBRUQsWUFBc0MsU0FBYyxFQUFVLGdCQUFrQztRQUM5RixLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFEbUIsY0FBUyxHQUFULFNBQVMsQ0FBSztRQUFVLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFqQ2hELG1CQUFjLEdBQUcsSUFBSSxDQUFDO0lBbUN0RSxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLG9CQUFvQixFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRTtZQUN0RyxzREFBc0Q7WUFDdEQsSUFBSSxNQUFNLEtBQUssSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUN6QixrQkFBa0I7Z0JBQ2xCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7b0JBQ2QsSUFBSSxDQUFDLHFCQUFxQixHQUFHLFlBQVksQ0FBQztnQkFDNUMsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDbEMsQ0FBQztJQUNILENBQUM7SUFFRCxNQUFNLENBQUMsS0FBSztRQUNWLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDO1lBQzFCLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtZQUNmLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJO1lBQ2hCLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixLQUFLLEVBQUUsS0FBSztTQUNiLENBQUMsQ0FBQztJQUNMLENBQUM7K0dBbEVVLHNCQUFzQixrQkFxQ2IsU0FBUzttR0FyQ2xCLHNCQUFzQixnVENabkMsMHVEQThDQTs7NEZEbENhLHNCQUFzQjtrQkFObEMsU0FBUzsrQkFDRSxrQkFBa0IsaUJBRWIsaUJBQWlCLENBQUMsSUFBSSx1QkFDaEIsS0FBSzs7MEJBdUNiLE1BQU07MkJBQUMsU0FBUzt3RUFqQ21CLGNBQWM7c0JBQTdELFdBQVc7dUJBQUMsaUNBQWlDO2dCQUcxQyxJQUFJO3NCQURQLFdBQVc7dUJBQUMsWUFBWTtnQkFNckIsbUJBQW1CO3NCQUR0QixXQUFXO3VCQUFDLDJCQUEyQjtnQkFNcEMsaUJBQWlCO3NCQURwQixXQUFXO3VCQUFDLDZCQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSG9zdEJpbmRpbmcsIEluamVjdCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFjY29yZGlvbkJhc2VDb21wb25lbnQgfSBmcm9tICcuL2FjY29yZGlvbi1iYXNlLWNvbXBvbmVudC5jbGFzcyc7XG5pbXBvcnQgeyBBQ0NPUkRJT04gfSBmcm9tICcuL2FjY29yZGlvbi10b2tlbic7XG5pbXBvcnQgeyBBY2NvcmRpb25TZXJ2aWNlIH0gZnJvbSAnLi9hY2NvcmRpb24uc2VydmljZSc7XG5pbXBvcnQgeyBBY2NvcmRpb25CYXNlTWVudSwgQWNjb3JkaW9uTWVudUl0ZW0gfSBmcm9tICcuL2FjY29yZGlvbi50eXBlJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2QtYWNjb3JkaW9uLW1lbnUnLFxuICB0ZW1wbGF0ZVVybDogJy4vYWNjb3JkaW9uLW1lbnUuY29tcG9uZW50Lmh0bWwnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZSxcbn0pXG5leHBvcnQgY2xhc3MgQWNjb3JkaW9uTWVudUNvbXBvbmVudCBleHRlbmRzIEFjY29yZGlvbkJhc2VDb21wb25lbnQ8QWNjb3JkaW9uQmFzZU1lbnU8QWNjb3JkaW9uTWVudUl0ZW0+PiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgY2hpbGRMaXN0U3ViOiBTdWJzY3JpcHRpb247XG4gIGFjY29yZGlvbkxpc3RGcm9tVmlldzogYW55OyAvLyBBY2NvcmRpb25MaXN0Q29tcG9uZW50XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5kZXZ1aS1hY2NvcmRpb24tbWVudS1pdGVtJykgZGVmYXVsdENsYXNzZXMgPSB0cnVlO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3Mub3BlbicpXG4gIGdldCBvcGVuKCkge1xuICAgIHJldHVybiB0aGlzLmtleU9wZW4gPT09IHVuZGVmaW5lZCAmJiB0aGlzLmFjY29yZGlvbi5hdXRvT3BlbkFjdGl2ZU1lbnUgPyB0aGlzLmNoaWxkQWN0aXZhdGVkIDogdGhpcy5rZXlPcGVuO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5kZXZ1aS1yb3V0ZXItYWN0aXZlJylcbiAgZ2V0IHJvdXRlckxpbmtBY3RpdmF0ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWNjb3JkaW9uTGlzdEZyb21WaWV3ICYmIHRoaXMuYWNjb3JkaW9uTGlzdEZyb21WaWV3LnJvdXRlckxpbmtBY3RpdmF0ZWQ7XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmRldnVpLWhhcy1hY3RpdmUtaXRlbScpXG4gIGdldCBoYXNBY3RpdmVDaGlsZHJlbigpIHtcbiAgICByZXR1cm4gdGhpcy5hY2NvcmRpb25MaXN0RnJvbVZpZXcgJiYgdGhpcy5hY2NvcmRpb25MaXN0RnJvbVZpZXcuaGFzQWN0aXZlQ2hpbGRyZW47XG4gIH1cblxuICBnZXQga2V5T3BlbigpIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtICYmIHRoaXMuaXRlbVt0aGlzLmFjY29yZGlvbi5vcGVuS2V5XTtcbiAgfVxuXG4gIGdldCBjaGlsZHJlbigpIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtICYmIHRoaXMuaXRlbVt0aGlzLmFjY29yZGlvbi5jaGlsZHJlbktleV07XG4gIH1cblxuICBnZXQgY2hpbGRBY3RpdmF0ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMucm91dGVyTGlua0FjdGl2YXRlZCB8fCB0aGlzLmhhc0FjdGl2ZUNoaWxkcmVuO1xuICB9XG5cbiAgZ2V0IG1lbnVJdGVtVGVtcGxhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWNjb3JkaW9uLm1lbnVJdGVtVGVtcGxhdGU7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KEFDQ09SRElPTikgcHVibGljIGFjY29yZGlvbjogYW55LCBwcml2YXRlIGFjY29yZGlvblNlcnZpY2U6IEFjY29yZGlvblNlcnZpY2UpIHtcbiAgICBzdXBlcihhY2NvcmRpb24pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jaGlsZExpc3RTdWIgPSB0aGlzLmFjY29yZGlvblNlcnZpY2UuZ2V0Q2hpbGRMaXN0SW5zdGFuY2UoKS5zdWJzY3JpYmUoKHsgbGlzdEluc3RhbmNlLCBwYXJlbnQgfSkgPT4ge1xuICAgICAgLy8gbGlzdOeahHBhcmVudOS4jm1lbnXnmoRpdGVt5Li65ZCM5LiA5pWw5o2u77yM6YCa6L+H6K+l5bGe5oCn5Yy56YWN54i25a2Q5YWz57O777yM6YG/5YWN5LqS55u45bWM5aWX5a+86Ie05b6q546v5L6d6LWWXG4gICAgICBpZiAocGFyZW50ID09PSB0aGlzLml0ZW0pIHtcbiAgICAgICAgLy8g5bu25pe26LWL5YC86KeE6YG/6ISP5qOA5p+l5ZCO5YC85pS55Y+Y5oql6ZSZXG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgIHRoaXMuYWNjb3JkaW9uTGlzdEZyb21WaWV3ID0gbGlzdEluc3RhbmNlO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNoaWxkTGlzdFN1Yikge1xuICAgICAgdGhpcy5jaGlsZExpc3RTdWIudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICB0b2dnbGUoZXZlbnQpIHtcbiAgICB0aGlzLmFjY29yZGlvbi5tZW51VG9nZ2xlRm4oe1xuICAgICAgaXRlbTogdGhpcy5pdGVtLFxuICAgICAgb3BlbjogIXRoaXMub3BlbixcbiAgICAgIHBhcmVudDogdGhpcy5wYXJlbnQsXG4gICAgICBldmVudDogZXZlbnQsXG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXZcclxuICBjbGFzcz1cImRldnVpLWFjY29yZGlvbi1pdGVtLXRpdGxlIGRldnVpLW92ZXItZmxvdy1lbGxpcHNpc1wiXHJcbiAgW25nQ2xhc3NdPVwie1xyXG4gICAgb3Blbjogb3BlbixcclxuICAgIGFjdGl2ZTogY2hpbGRBY3RpdmF0ZWQsXHJcbiAgICBkaXNhYmxlZDogZGlzYWJsZWRcclxuICB9XCJcclxuICB0aXRsZT1cInt7IHRpdGxlIH19XCJcclxuICAoY2xpY2spPVwiIWRpc2FibGVkICYmIHRvZ2dsZSgkZXZlbnQpXCJcclxuPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiZGV2dWktYWNjb3JkaW9uLXNwbGl0dGVyXCJcclxuICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgJ2RldnVpLXBhcmVudC1saXN0JzogZGVlcHRoID09PSAwXHJcbiAgICB9XCJcclxuICAgIFtuZ1N0eWxlXT1cInsgbGVmdDogZGVlcHRoICogMjAgKyAxMCArICdweCcgfVwiXHJcbiAgPjwvZGl2PlxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbWVudUl0ZW1UZW1wbGF0ZVwiPlxyXG4gICAge3sgdGl0bGUgfX1cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICA8bmctdGVtcGxhdGVcclxuICAgICpuZ0lmPVwibWVudUl0ZW1UZW1wbGF0ZVwiXHJcbiAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJtZW51SXRlbVRlbXBsYXRlXCJcclxuICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7XHJcbiAgICAgIHBhcmVudDogcGFyZW50LFxyXG4gICAgICBpdGVtOiBpdGVtLFxyXG4gICAgICBkZWVwdGg6IGRlZXB0aFxyXG4gICAgfVwiXHJcbiAgPjwvbmctdGVtcGxhdGU+XHJcbiAgPHNwYW4gY2xhc3M9XCJkZXZ1aS1hY2NvcmRpb24tb3Blbi1pY29uXCI+XHJcbiAgICA8c3ZnXHJcbiAgICAgIHdpZHRoPVwiMTZweFwiXHJcbiAgICAgIGhlaWdodD1cIjE2cHhcIlxyXG4gICAgICB2aWV3Qm94PVwiMCAwIDE2IDE2XCJcclxuICAgICAgdmVyc2lvbj1cIjEuMVwiXHJcbiAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICB4bWxuczp4bGluaz1cImh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmtcIlxyXG4gICAgPlxyXG4gICAgICA8ZyBzdHJva2U9XCJub25lXCIgc3Ryb2tlLXdpZHRoPVwiMVwiIGZpbGw9XCJub25lXCIgZmlsbC1ydWxlPVwiZXZlbm9kZFwiPlxyXG4gICAgICAgIDxwYXRoXHJcbiAgICAgICAgICBkPVwiTTMuNjQ2NDQ2NjEsNS42NDY0NDY2MSBDMy44MjAwMTI5Niw1LjQ3Mjg4MDI2IDQuMDg5NDM3MzYsNS40NTM1OTUxMSA0LjI4NDMwNTUsNS41ODg1OTExNiBMNC4zNTM1NTMzOSw1LjY0NjQ0NjYxIEw4LDkuMjkzIEwxMS42NDY0NDY2LDUuNjQ2NDQ2NjEgQzExLjgyMDAxMyw1LjQ3Mjg4MDI2IDEyLjA4OTQzNzQsNS40NTM1OTUxMSAxMi4yODQzMDU1LDUuNTg4NTkxMTYgTDEyLjM1MzU1MzQsNS42NDY0NDY2MSBDMTIuNTI3MTE5Nyw1LjgyMDAxMjk2IDEyLjU0NjQwNDksNi4wODk0MzczNiAxMi40MTE0MDg4LDYuMjg0MzA1NSBMMTIuMzUzNTUzNCw2LjM1MzU1MzM5IEw4LjM1MzU1MzM5LDEwLjM1MzU1MzQgQzguMTc5OTg3MDQsMTAuNTI3MTE5NyA3LjkxMDU2MjY0LDEwLjU0NjQwNDkgNy43MTU2OTQ1LDEwLjQxMTQwODggTDcuNjQ2NDQ2NjEsMTAuMzUzNTUzNCBMMy42NDY0NDY2MSw2LjM1MzU1MzM5IEMzLjQ1MTE4NDQ2LDYuMTU4MjkxMjQgMy40NTExODQ0Niw1Ljg0MTcwODc2IDMuNjQ2NDQ2NjEsNS42NDY0NDY2MSBaXCJcclxuICAgICAgICA+PC9wYXRoPlxyXG4gICAgICA8L2c+XHJcbiAgICA8L3N2Zz5cclxuICA8L3NwYW4+XHJcbjwvZGl2PlxyXG4iXX0=