@indice/ng-components
Version:
Indice common components for Angular v12
66 lines • 14.7 kB
JavaScript
import { Component, ContentChildren, EventEmitter, forwardRef, Output } from '@angular/core';
import { LIBTABGROUP_ACCESSOR } from '../../tokens';
import { LibTabComponent } from './lib-tab.component';
import * as i0 from "@angular/core";
import * as i1 from "@angular/common";
import * as i2 from "@angular/forms";
export class LibTabGroupComponent {
constructor() {
/** The inner tabs of the group. */
this.tabs = undefined;
/** Emmited when a step change occurs. */
this.tabChanged = new EventEmitter();
}
/** The current tab. */
get currentTab() {
return this.tabs?.find(x => x.isActive);
}
/** The index (starting from zero) of the current tab. */
get currentΤabIndex() {
return this.currentTab?.index || undefined;
}
ngOnInit() { }
onTabChanged(selectedTab) {
if (selectedTab.isActive) {
return;
}
this.tabs?.forEach((tab) => tab.isActive = tab.id === selectedTab.id);
this.tabChanged.emit(selectedTab);
}
onTabSelectChanged(selectedTabIndex) {
if (selectedTabIndex === this.currentΤabIndex) {
return;
}
this.tabs?.forEach((tab, index) => tab.isActive = index === selectedTabIndex);
this.tabChanged.emit(this.tabs?.get(selectedTabIndex));
}
ngAfterContentInit() {
if (!this.tabs) {
return;
}
}
ngAfterContentChecked() {
if (this.tabs && this.tabs.length > 0) {
const anyActive = this.tabs.filter(x => x.isActive).length > 0;
if (!anyActive) {
this.tabs.get(0).isActive = true;
}
}
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: LibTabGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.6", type: LibTabGroupComponent, selector: "lib-tab-group", outputs: { tabChanged: "tabChanged" }, providers: [
{ provide: LIBTABGROUP_ACCESSOR, useExisting: forwardRef(() => LibTabGroupComponent) }
], queries: [{ propertyName: "tabs", predicate: LibTabComponent, descendants: true }], ngImport: i0, template: "<div class=\"tab-group-select-hidden\">\r\n <label for=\"tabs\"\r\n class=\"sr-only\">\r\n Select a tab\r\n </label>\r\n <select id=\"tabs\"\r\n name=\"tabs\"\r\n (change)=\"onTabSelectChanged(+tabsSelect.value)\"\r\n class=\"tab-group-select\"\r\n #tabsSelect>\r\n <option [value]=\"i\"\r\n *ngFor=\"let tab of tabs; let i = index\">\r\n {{ tab.labelText }}\r\n </option>\r\n </select>\r\n</div>\r\n<div class=\"tab-group-container-hidden\">\r\n <div class=\"tab-group-container\">\r\n <nav class=\"tab-group-container-nav\"\r\n aria-label=\"Tabs\">\r\n <a *ngFor=\"let tab of tabs\"\r\n href=\"javascript:void(0)\"\r\n [class.tab]=\"!tab.isActive\"\r\n [class.tab-active]=\"tab.isActive\"\r\n (click)=\"onTabChanged(tab)\">\r\n <ng-container *ngTemplateOutlet=\"tab.label ? tab.label.template: defaultTabLabel; context:{ $implicit: tab }\"></ng-container>\r\n </a>\r\n </nav>\r\n </div>\r\n</div>\r\n<div *ngIf=\"currentTab?.content\">\r\n <ng-container [ngTemplateOutlet]=\"currentTab?.content || emptyTemplate\"></ng-container>\r\n</div>\r\n<ng-template let-tab\r\n #defaultTabLabel>\r\n {{ tab.labelText || 'tab-' + (tab.index + 1) }}\r\n</ng-template>\r\n<ng-template #emptyTemplate></ng-template>", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }] }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: LibTabGroupComponent, decorators: [{
type: Component,
args: [{ selector: 'lib-tab-group', providers: [
{ provide: LIBTABGROUP_ACCESSOR, useExisting: forwardRef(() => LibTabGroupComponent) }
], template: "<div class=\"tab-group-select-hidden\">\r\n <label for=\"tabs\"\r\n class=\"sr-only\">\r\n Select a tab\r\n </label>\r\n <select id=\"tabs\"\r\n name=\"tabs\"\r\n (change)=\"onTabSelectChanged(+tabsSelect.value)\"\r\n class=\"tab-group-select\"\r\n #tabsSelect>\r\n <option [value]=\"i\"\r\n *ngFor=\"let tab of tabs; let i = index\">\r\n {{ tab.labelText }}\r\n </option>\r\n </select>\r\n</div>\r\n<div class=\"tab-group-container-hidden\">\r\n <div class=\"tab-group-container\">\r\n <nav class=\"tab-group-container-nav\"\r\n aria-label=\"Tabs\">\r\n <a *ngFor=\"let tab of tabs\"\r\n href=\"javascript:void(0)\"\r\n [class.tab]=\"!tab.isActive\"\r\n [class.tab-active]=\"tab.isActive\"\r\n (click)=\"onTabChanged(tab)\">\r\n <ng-container *ngTemplateOutlet=\"tab.label ? tab.label.template: defaultTabLabel; context:{ $implicit: tab }\"></ng-container>\r\n </a>\r\n </nav>\r\n </div>\r\n</div>\r\n<div *ngIf=\"currentTab?.content\">\r\n <ng-container [ngTemplateOutlet]=\"currentTab?.content || emptyTemplate\"></ng-container>\r\n</div>\r\n<ng-template let-tab\r\n #defaultTabLabel>\r\n {{ tab.labelText || 'tab-' + (tab.index + 1) }}\r\n</ng-template>\r\n<ng-template #emptyTemplate></ng-template>" }]
}], ctorParameters: () => [], propDecorators: { tabs: [{
type: ContentChildren,
args: [LibTabComponent, { descendants: true }]
}], tabChanged: [{
type: Output
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliLXRhYi1ncm91cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1jb21wb25lbnRzL3NyYy9saWIvY29udHJvbHMvdGFicy9saWItdGFiLWdyb3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLWNvbXBvbmVudHMvc3JjL2xpYi9jb250cm9scy90YWJzL2xpYi10YWItZ3JvdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUF5QyxTQUFTLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQVUsTUFBTSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBRXZKLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFTdEQsTUFBTSxPQUFPLG9CQUFvQjtJQUM3QjtRQUVBLG1DQUFtQztRQUM2QixTQUFJLEdBQTJDLFNBQVMsQ0FBQztRQUN6SCx5Q0FBeUM7UUFDckIsZUFBVSxHQUFrQyxJQUFJLFlBQVksRUFBbUIsQ0FBQztJQUxwRixDQUFDO0lBT2pCLHVCQUF1QjtJQUN2QixJQUFXLFVBQVU7UUFDakIsT0FBTyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQseURBQXlEO0lBQ3pELElBQVcsZUFBZTtRQUN0QixPQUFPLElBQUksQ0FBQyxVQUFVLEVBQUUsS0FBSyxJQUFJLFNBQVMsQ0FBQztJQUMvQyxDQUFDO0lBRU0sUUFBUSxLQUFXLENBQUM7SUFFakIsWUFBWSxDQUFDLFdBQTRCO1FBQy9DLElBQUksV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3ZCLE9BQU87UUFDWCxDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxHQUFvQixFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsUUFBUSxHQUFHLEdBQUcsQ0FBQyxFQUFFLEtBQUssV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZGLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFUyxrQkFBa0IsQ0FBQyxnQkFBd0I7UUFDakQsSUFBSSxnQkFBZ0IsS0FBSyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDNUMsT0FBTztRQUNYLENBQUM7UUFDRCxJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDLEdBQW9CLEVBQUUsS0FBYSxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsUUFBUSxHQUFHLEtBQUssS0FBSyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3ZHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRU0sa0JBQWtCO1FBQ3JCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDYixPQUFPO1FBQ1gsQ0FBQztJQUNMLENBQUM7SUFFTSxxQkFBcUI7UUFDeEIsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3BDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7WUFDL0QsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBRSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7WUFDdEMsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDOzhHQWpEUSxvQkFBb0I7a0dBQXBCLG9CQUFvQiwrRUFKbEI7WUFDUCxFQUFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG9CQUFvQixDQUFDLEVBQUU7U0FDekYsK0NBTWdCLGVBQWUsZ0RDaEJwQyxxN0NBcUMwQzs7MkZEekI3QixvQkFBb0I7a0JBUGhDLFNBQVM7K0JBQ0ksZUFBZSxhQUVkO3dCQUNQLEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHFCQUFxQixDQUFDLEVBQUU7cUJBQ3pGO3dEQU0rRCxJQUFJO3NCQUFuRSxlQUFlO3VCQUFDLGVBQWUsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7Z0JBRW5DLFVBQVU7c0JBQTdCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlckNvbnRlbnRDaGVja2VkLCBBZnRlckNvbnRlbnRJbml0LCBDb21wb25lbnQsIENvbnRlbnRDaGlsZHJlbiwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBPbkluaXQsIE91dHB1dCwgUXVlcnlMaXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBMSUJUQUJHUk9VUF9BQ0NFU1NPUiB9IGZyb20gJy4uLy4uL3Rva2Vucyc7XHJcbmltcG9ydCB7IExpYlRhYkNvbXBvbmVudCB9IGZyb20gJy4vbGliLXRhYi5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2xpYi10YWItZ3JvdXAnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2xpYi10YWItZ3JvdXAuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgeyBwcm92aWRlOiBMSUJUQUJHUk9VUF9BQ0NFU1NPUiwgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTGliVGFiR3JvdXBDb21wb25lbnQpIH1cclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIExpYlRhYkdyb3VwQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBBZnRlckNvbnRlbnRJbml0LCBBZnRlckNvbnRlbnRDaGVja2VkIHtcclxuICAgIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gICAgLyoqIFRoZSBpbm5lciB0YWJzIG9mIHRoZSBncm91cC4gKi9cclxuICAgIEBDb250ZW50Q2hpbGRyZW4oTGliVGFiQ29tcG9uZW50LCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pIHB1YmxpYyB0YWJzOiBRdWVyeUxpc3Q8TGliVGFiQ29tcG9uZW50PiB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcclxuICAgIC8qKiBFbW1pdGVkIHdoZW4gYSBzdGVwIGNoYW5nZSBvY2N1cnMuICovXHJcbiAgICBAT3V0cHV0KCkgcHJvdGVjdGVkIHRhYkNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxMaWJUYWJDb21wb25lbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxMaWJUYWJDb21wb25lbnQ+KCk7XHJcblxyXG4gICAgLyoqIFRoZSBjdXJyZW50IHRhYi4gKi9cclxuICAgIHB1YmxpYyBnZXQgY3VycmVudFRhYigpOiBMaWJUYWJDb21wb25lbnQgfCB1bmRlZmluZWQge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnRhYnM/LmZpbmQoeCA9PiB4LmlzQWN0aXZlKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogVGhlIGluZGV4IChzdGFydGluZyBmcm9tIHplcm8pIG9mIHRoZSBjdXJyZW50IHRhYi4gKi9cclxuICAgIHB1YmxpYyBnZXQgY3VycmVudM6kYWJJbmRleCgpOiBudW1iZXIgfCB1bmRlZmluZWQge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmN1cnJlbnRUYWI/LmluZGV4IHx8IHVuZGVmaW5lZDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7IH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgb25UYWJDaGFuZ2VkKHNlbGVjdGVkVGFiOiBMaWJUYWJDb21wb25lbnQpOiB2b2lkIHtcclxuICAgICAgICBpZiAoc2VsZWN0ZWRUYWIuaXNBY3RpdmUpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnRhYnM/LmZvckVhY2goKHRhYjogTGliVGFiQ29tcG9uZW50KSA9PiB0YWIuaXNBY3RpdmUgPSB0YWIuaWQgPT09IHNlbGVjdGVkVGFiLmlkKTtcclxuICAgICAgICB0aGlzLnRhYkNoYW5nZWQuZW1pdChzZWxlY3RlZFRhYik7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIG9uVGFiU2VsZWN0Q2hhbmdlZChzZWxlY3RlZFRhYkluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgICAgICBpZiAoc2VsZWN0ZWRUYWJJbmRleCA9PT0gdGhpcy5jdXJyZW50zqRhYkluZGV4KSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy50YWJzPy5mb3JFYWNoKCh0YWI6IExpYlRhYkNvbXBvbmVudCwgaW5kZXg6IG51bWJlcikgPT4gdGFiLmlzQWN0aXZlID0gaW5kZXggPT09IHNlbGVjdGVkVGFiSW5kZXgpO1xyXG4gICAgICAgIHRoaXMudGFiQ2hhbmdlZC5lbWl0KHRoaXMudGFicz8uZ2V0KHNlbGVjdGVkVGFiSW5kZXgpKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xyXG4gICAgICAgIGlmICghdGhpcy50YWJzKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy50YWJzICYmIHRoaXMudGFicy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IGFueUFjdGl2ZSA9IHRoaXMudGFicy5maWx0ZXIoeCA9PiB4LmlzQWN0aXZlKS5sZW5ndGggPiAwO1xyXG4gICAgICAgICAgICBpZiAoIWFueUFjdGl2ZSkge1xyXG4gICAgICAgICAgICAgICAgdGhpcy50YWJzLmdldCgwKSEuaXNBY3RpdmUgPSB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59IiwiPGRpdiBjbGFzcz1cInRhYi1ncm91cC1zZWxlY3QtaGlkZGVuXCI+XHJcbiAgICA8bGFiZWwgZm9yPVwidGFic1wiXHJcbiAgICAgICAgICAgY2xhc3M9XCJzci1vbmx5XCI+XHJcbiAgICAgICAgU2VsZWN0IGEgdGFiXHJcbiAgICA8L2xhYmVsPlxyXG4gICAgPHNlbGVjdCBpZD1cInRhYnNcIlxyXG4gICAgICAgICAgICBuYW1lPVwidGFic1wiXHJcbiAgICAgICAgICAgIChjaGFuZ2UpPVwib25UYWJTZWxlY3RDaGFuZ2VkKCt0YWJzU2VsZWN0LnZhbHVlKVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwidGFiLWdyb3VwLXNlbGVjdFwiXHJcbiAgICAgICAgICAgICN0YWJzU2VsZWN0PlxyXG4gICAgICAgIDxvcHRpb24gW3ZhbHVlXT1cImlcIlxyXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHRhYiBvZiB0YWJzOyBsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgICAgICAgIHt7IHRhYi5sYWJlbFRleHQgfX1cclxuICAgICAgICA8L29wdGlvbj5cclxuICAgIDwvc2VsZWN0PlxyXG48L2Rpdj5cclxuPGRpdiBjbGFzcz1cInRhYi1ncm91cC1jb250YWluZXItaGlkZGVuXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwidGFiLWdyb3VwLWNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxuYXYgY2xhc3M9XCJ0YWItZ3JvdXAtY29udGFpbmVyLW5hdlwiXHJcbiAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiVGFic1wiPlxyXG4gICAgICAgICAgICA8YSAqbmdGb3I9XCJsZXQgdGFiIG9mIHRhYnNcIlxyXG4gICAgICAgICAgICAgICBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCJcclxuICAgICAgICAgICAgICAgW2NsYXNzLnRhYl09XCIhdGFiLmlzQWN0aXZlXCJcclxuICAgICAgICAgICAgICAgW2NsYXNzLnRhYi1hY3RpdmVdPVwidGFiLmlzQWN0aXZlXCJcclxuICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uVGFiQ2hhbmdlZCh0YWIpXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGFiLmxhYmVsID8gdGFiLmxhYmVsLnRlbXBsYXRlOiBkZWZhdWx0VGFiTGFiZWw7IGNvbnRleHQ6eyAkaW1wbGljaXQ6IHRhYiB9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvYT5cclxuICAgICAgICA8L25hdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuPGRpdiAqbmdJZj1cImN1cnJlbnRUYWI/LmNvbnRlbnRcIj5cclxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiY3VycmVudFRhYj8uY29udGVudCB8fCBlbXB0eVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbjwvZGl2PlxyXG48bmctdGVtcGxhdGUgbGV0LXRhYlxyXG4gICAgICAgICAgICAgI2RlZmF1bHRUYWJMYWJlbD5cclxuICAgIHt7IHRhYi5sYWJlbFRleHQgfHwgJ3RhYi0nICsgKHRhYi5pbmRleCArIDEpIH19XHJcbjwvbmctdGVtcGxhdGU+XHJcbjxuZy10ZW1wbGF0ZSAjZW1wdHlUZW1wbGF0ZT48L25nLXRlbXBsYXRlPiJdfQ==