ng-devui
Version:
DevUI components based on Angular
112 lines • 42.9 kB
JavaScript
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, HostBinding, Input, Renderer2, ViewChild } from '@angular/core';
import * as i0 from "@angular/core";
import * as i1 from "@angular/common";
import * as i2 from "./input-group.pipe";
export class InputGroupComponent {
get embed() {
return this.isEmbed;
}
constructor(cdr, el, render) {
this.cdr = cdr;
this.el = el;
this.render = render;
this.isEmbed = false;
this.disabled = false;
this.spliceType = 'standalone';
this.isPrefix = false;
this.isSuffix = false;
this.innerContentClass = '';
this.handlerSpliceStatus = () => {
const rect = this.el.nativeElement.getBoundingClientRect();
const previous = this.checkIsInputGroup(this.el.nativeElement.previousElementSibling);
const next = this.checkIsInputGroup(this.el.nativeElement.nextElementSibling);
this.spliceLeft(previous, rect);
this.spliceRight(next, rect);
this.setInnerContentBorderRadius();
};
}
ngAfterViewInit() {
if (this.el.nativeElement.parentElement && !this.isEmbed) {
this.parent = this.el.nativeElement.parentElement;
this.handlerSpliceStatus();
// 监听父容器尺寸变化刷新拼接效果
this.resizeObserver = new window.ResizeObserver(() => this.handlerSpliceStatus());
this.resizeObserver.observe(this.parent);
}
}
ngOnDestroy() {
if (this.resizeObserver) {
this.resizeObserver.unobserve(this.parent);
}
}
checkIsInputGroup(dom) {
return dom?.nodeName === 'D-INPUT-GROUP' && dom;
}
spliceLeft(previous, rect) {
if (previous && ['left', 'both'].includes(this.spliceType)) {
const previousRect = previous.getBoundingClientRect();
this.isPrefix = rect.left > previousRect.left;
if (this.isPrefix) {
this.render.addClass(this.el.nativeElement, 'devui-splice-left-item');
return;
}
}
this.render.removeClass(this.el.nativeElement, 'devui-splice-left-item');
}
spliceRight(next, rect) {
if (next && ['right', 'both'].includes(this.spliceType)) {
const nextRect = next.getBoundingClientRect();
this.isSuffix = nextRect.left > rect.left;
if (this.isSuffix) {
this.render.addClass(this.el.nativeElement, 'devui-splice-right-item');
return;
}
}
this.render.removeClass(this.el.nativeElement, 'devui-splice-right-item');
}
setInnerContentBorderRadius() {
const isPrefix = this.isPrefix || this.prefixContent;
const isSuffix = this.isSuffix || this.suffixContent;
const prefix = isPrefix && 'prefix';
const suffix = isSuffix && 'suffix';
this.innerContentClass = isPrefix && isSuffix ? 'both' : prefix || suffix || '';
this.cdr.markForCheck();
}
changeInputPadding(pos, style) {
if (this.isEmbed && this.container) {
const dom = this.container.nativeElement.querySelector('input[dTextInput]');
if (!dom) {
return;
}
if (['right', 'both'].includes(pos)) {
this.render.setStyle(dom, 'padding-right', style);
}
if (['left', 'both'].includes(pos)) {
this.render.setStyle(dom, 'padding-left', style);
}
}
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InputGroupComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: InputGroupComponent, selector: "d-input-group", inputs: { isEmbed: "isEmbed", disabled: "disabled", prefixContent: "prefixContent", suffixContent: "suffixContent", spliceType: "spliceType" }, host: { properties: { "class.embed": "this.embed" } }, viewQueries: [{ propertyName: "container", first: true, predicate: ["container"], descendants: true }], ngImport: i0, template: "<div class=\"devui-input-group-container\" [class.disabled]=\"isEmbed && disabled\">\n <span #prefix *ngIf=\"prefixContent\" class=\"devui-input-group-item prefix\">\n <ng-template\n [ngTemplateOutlet]=\"prefixContent | dInputGroupPipe : defaultInputGroupTemplate : isEmbed : container : prefix : 'padding-left'\"\n [ngTemplateOutletContext]=\"{ content: prefixContent, disabled: disabled }\"\n ></ng-template>\n </span>\n <span #container class=\"devui-input-group-content {{ innerContentClass }}\">\n <ng-content></ng-content>\n </span>\n <span #suffix *ngIf=\"suffixContent\" class=\"devui-input-group-item suffix\">\n <ng-template\n [ngTemplateOutlet]=\"suffixContent | dInputGroupPipe : defaultInputGroupTemplate : isEmbed : container : suffix : 'padding-right'\"\n [ngTemplateOutletContext]=\"{ content: suffixContent, disabled: disabled }\"\n ></ng-template>\n </span>\n</div>\n\n<ng-template #defaultInputGroupTemplate let-content=\"content\">\n <span>{{ content }}</span>\n</ng-template>\n", styles: [":host{display:inline-block;position:relative}:host .devui-input-group-container{display:flex;align-items:stretch}:host .devui-input-group-container .devui-input-group-item{padding:4px 8px;width:fit-content;border:1px solid var(--devui-form-control-line, #dbdbdb);border-radius:var(--devui-border-radius, 2px);background-color:var(--devui-gray-form-control-bg, #f5f5f5);white-space:nowrap;display:flex;align-items:center}:host .devui-input-group-container .devui-input-group-item:has(+.devui-input-group-content:not(:empty)).prefix{border-top-right-radius:0;border-bottom-right-radius:0;border-right:none}:host .devui-input-group-container .devui-input-group-content:not(:empty)+.devui-input-group-item.suffix{border-top-left-radius:0;border-bottom-left-radius:0;border-left:none}:host:not([class*=devui-splice-]){margin-right:8px}:host.devui-splice-left-item .devui-input-group-item.prefix{border-top-left-radius:0;border-bottom-left-radius:0;border-left:none}:host.devui-splice-left-item ::ng-deep [dTextInput],:host.devui-splice-left-item ::ng-deep d-select{margin-right:-1px}:host.devui-splice-left-item ::ng-deep [dTextInput],:host.devui-splice-left-item ::ng-deep [dTextInput]>div.devui-dropdown-origin,:host.devui-splice-left-item ::ng-deep d-select,:host.devui-splice-left-item ::ng-deep d-select>div.devui-dropdown-origin{border-radius:0!important}:host.devui-splice-left-item ::ng-deep [dTextInput]:first-child,:host.devui-splice-left-item ::ng-deep d-select:first-child{border-top-left-radius:0!important;border-bottom-left-radius:0!important}:host.devui-splice-left-item ::ng-deep [dTextInput]:first-child>div.devui-dropdown-origin,:host.devui-splice-left-item ::ng-deep d-select:first-child>div.devui-dropdown-origin{border-top-left-radius:0!important;border-bottom-left-radius:0!important}:host.devui-splice-left-item ::ng-deep [dTextInput]:last-child,:host.devui-splice-left-item ::ng-deep d-select:last-child{margin-right:0;border-top-right-radius:var(--devui-border-radius, 2px)!important;border-bottom-right-radius:var(--devui-border-radius, 2px)!important}:host.devui-splice-left-item ::ng-deep [dTextInput]:last-child>div.devui-dropdown-origin,:host.devui-splice-left-item ::ng-deep d-select:last-child>div.devui-dropdown-origin{border-top-right-radius:var(--devui-border-radius, 2px)!important;border-bottom-right-radius:var(--devui-border-radius, 2px)!important}:host.devui-splice-left-item ::ng-deep [dTextInput]{z-index:0}:host.devui-splice-left-item ::ng-deep [dTextInput]:hover{z-index:1}:host.devui-splice-left-item ::ng-deep [dTextInput]:focus,:host.devui-splice-left-item ::ng-deep [dTextInput]:has(:focus){z-index:2}:host.devui-splice-right-item .devui-input-group-item.suffix{border-top-right-radius:0;border-bottom-right-radius:0;border-right:none}:host.devui-splice-right-item ::ng-deep [dTextInput],:host.devui-splice-right-item ::ng-deep d-select{margin-right:-1px}:host.devui-splice-right-item ::ng-deep [dTextInput],:host.devui-splice-right-item ::ng-deep [dTextInput]>div.devui-dropdown-origin,:host.devui-splice-right-item ::ng-deep d-select,:host.devui-splice-right-item ::ng-deep d-select>div.devui-dropdown-origin{border-radius:0!important}:host.devui-splice-right-item ::ng-deep [dTextInput]:first-child,:host.devui-splice-right-item ::ng-deep d-select:first-child{border-top-right-radius:var(--devui-border-radius, 2px)!important;border-bottom-right-radius:var(--devui-border-radius, 2px)!important}:host.devui-splice-right-item ::ng-deep [dTextInput]:first-child>div.devui-dropdown-origin,:host.devui-splice-right-item ::ng-deep d-select:first-child>div.devui-dropdown-origin{border-top-right-radius:var(--devui-border-radius, 2px)!important;border-bottom-right-radius:var(--devui-border-radius, 2px)!important}:host.devui-splice-right-item ::ng-deep [dTextInput]:last-child,:host.devui-splice-right-item ::ng-deep d-select:last-child{margin-right:0;border-top-left-radius:0!important;border-bottom-left-radius:0!important}:host.devui-splice-right-item ::ng-deep [dTextInput]:last-child>div.devui-dropdown-origin,:host.devui-splice-right-item ::ng-deep d-select:last-child>div.devui-dropdown-origin{border-top-left-radius:0!important;border-bottom-left-radius:0!important}:host.devui-splice-right-item ::ng-deep [dTextInput]{z-index:0}:host.devui-splice-right-item ::ng-deep [dTextInput]:hover{z-index:1}:host.devui-splice-right-item ::ng-deep [dTextInput]:focus,:host.devui-splice-right-item ::ng-deep [dTextInput]:has(:focus){z-index:2}:host ::ng-deep span.devui-input-group-content{display:flex;align-items:stretch;justify-content:flex-start;flex-wrap:nowrap}:host ::ng-deep span.devui-input-group-content.both [dTextInput],:host ::ng-deep span.devui-input-group-content.both d-select{margin-right:-1px}:host ::ng-deep span.devui-input-group-content.both [dTextInput],:host ::ng-deep span.devui-input-group-content.both [dTextInput]>div.devui-dropdown-origin,:host ::ng-deep span.devui-input-group-content.both d-select,:host ::ng-deep span.devui-input-group-content.both d-select>div.devui-dropdown-origin{border-radius:0!important}:host ::ng-deep span.devui-input-group-content.both [dTextInput]:first-child,:host ::ng-deep span.devui-input-group-content.both d-select:first-child{border-top-left-radius:0!important;border-bottom-left-radius:0!important}:host ::ng-deep span.devui-input-group-content.both [dTextInput]:first-child>div.devui-dropdown-origin,:host ::ng-deep span.devui-input-group-content.both d-select:first-child>div.devui-dropdown-origin{border-top-left-radius:0!important;border-bottom-left-radius:0!important}:host ::ng-deep span.devui-input-group-content.both [dTextInput]:last-child,:host ::ng-deep span.devui-input-group-content.both d-select:last-child{margin-right:0;border-top-right-radius:0!important;border-bottom-right-radius:0!important}:host ::ng-deep span.devui-input-group-content.both [dTextInput]:last-child>div.devui-dropdown-origin,:host ::ng-deep span.devui-input-group-content.both d-select:last-child>div.devui-dropdown-origin{border-top-right-radius:0!important;border-bottom-right-radius:0!important}:host ::ng-deep span.devui-input-group-content.both [dTextInput]{z-index:0}:host ::ng-deep span.devui-input-group-content.both [dTextInput]:hover{z-index:1}:host ::ng-deep span.devui-input-group-content.both [dTextInput]:focus,:host ::ng-deep span.devui-input-group-content.both [dTextInput]:has(:focus){z-index:2}:host ::ng-deep span.devui-input-group-content.prefix [dTextInput],:host ::ng-deep span.devui-input-group-content.prefix d-select{margin-right:-1px}:host ::ng-deep span.devui-input-group-content.prefix [dTextInput],:host ::ng-deep span.devui-input-group-content.prefix [dTextInput]>div.devui-dropdown-origin,:host ::ng-deep span.devui-input-group-content.prefix d-select,:host ::ng-deep span.devui-input-group-content.prefix d-select>div.devui-dropdown-origin{border-radius:0!important}:host ::ng-deep span.devui-input-group-content.prefix [dTextInput]:first-child,:host ::ng-deep span.devui-input-group-content.prefix d-select:first-child{border-top-left-radius:0!important;border-bottom-left-radius:0!important}:host ::ng-deep span.devui-input-group-content.prefix [dTextInput]:first-child>div.devui-dropdown-origin,:host ::ng-deep span.devui-input-group-content.prefix d-select:first-child>div.devui-dropdown-origin{border-top-left-radius:0!important;border-bottom-left-radius:0!important}:host ::ng-deep span.devui-input-group-content.prefix [dTextInput]:last-child,:host ::ng-deep span.devui-input-group-content.prefix d-select:last-child{margin-right:0;border-top-right-radius:var(--devui-border-radius, 2px)!important;border-bottom-right-radius:var(--devui-border-radius, 2px)!important}:host ::ng-deep span.devui-input-group-content.prefix [dTextInput]:last-child>div.devui-dropdown-origin,:host ::ng-deep span.devui-input-group-content.prefix d-select:last-child>div.devui-dropdown-origin{border-top-right-radius:var(--devui-border-radius, 2px)!important;border-bottom-right-radius:var(--devui-border-radius, 2px)!important}:host ::ng-deep span.devui-input-group-content.prefix [dTextInput]{z-index:0}:host ::ng-deep span.devui-input-group-content.prefix [dTextInput]:hover{z-index:1}:host ::ng-deep span.devui-input-group-content.prefix [dTextInput]:focus,:host ::ng-deep span.devui-input-group-content.prefix [dTextInput]:has(:focus){z-index:2}:host ::ng-deep span.devui-input-group-content.suffix [dTextInput],:host ::ng-deep span.devui-input-group-content.suffix d-select{margin-right:-1px}:host ::ng-deep span.devui-input-group-content.suffix [dTextInput],:host ::ng-deep span.devui-input-group-content.suffix [dTextInput]>div.devui-dropdown-origin,:host ::ng-deep span.devui-input-group-content.suffix d-select,:host ::ng-deep span.devui-input-group-content.suffix d-select>div.devui-dropdown-origin{border-radius:0!important}:host ::ng-deep span.devui-input-group-content.suffix [dTextInput]:first-child,:host ::ng-deep span.devui-input-group-content.suffix d-select:first-child{border-top-right-radius:0!important;border-bottom-right-radius:0!important}:host ::ng-deep span.devui-input-group-content.suffix [dTextInput]:first-child>div.devui-dropdown-origin,:host ::ng-deep span.devui-input-group-content.suffix d-select:first-child>div.devui-dropdown-origin{border-top-right-radius:0!important;border-bottom-right-radius:0!important}:host ::ng-deep span.devui-input-group-content.suffix [dTextInput]:last-child,:host ::ng-deep span.devui-input-group-content.suffix d-select:last-child{margin-right:0;border-top-left-radius:var(--devui-border-radius, 2px)!important;border-bottom-left-radius:var(--devui-border-radius, 2px)!important}:host ::ng-deep span.devui-input-group-content.suffix [dTextInput]:last-child>div.devui-dropdown-origin,:host ::ng-deep span.devui-input-group-content.suffix d-select:last-child>div.devui-dropdown-origin{border-top-left-radius:var(--devui-border-radius, 2px)!important;border-bottom-left-radius:var(--devui-border-radius, 2px)!important}:host ::ng-deep span.devui-input-group-content.suffix [dTextInput]{z-index:0}:host ::ng-deep span.devui-input-group-content.suffix [dTextInput]:hover{z-index:1}:host ::ng-deep span.devui-input-group-content.suffix [dTextInput]:focus,:host ::ng-deep span.devui-input-group-content.suffix [dTextInput]:has(:focus){z-index:2}:host.embed .devui-input-group-container .devui-input-group-item{height:100%;position:absolute;border:none;background:transparent}:host.embed .devui-input-group-container .devui-input-group-item.prefix{left:0}:host.embed .devui-input-group-container .devui-input-group-item.suffix{right:0}:host.embed .devui-input-group-container ::ng-deep span.devui-input-group-content [dTextInput],:host.embed .devui-input-group-container ::ng-deep span.devui-input-group-content d-select>div{border-top-left-radius:var(--devui-border-radius, 2px)!important;border-bottom-left-radius:var(--devui-border-radius, 2px)!important}:host.embed .devui-input-group-container ::ng-deep span.devui-input-group-content [dTextInput],:host.embed .devui-input-group-container ::ng-deep span.devui-input-group-content d-select>div{border-top-right-radius:var(--devui-border-radius, 2px)!important;border-bottom-right-radius:var(--devui-border-radius, 2px)!important}:host.embed:not(.disabled) ::ng-deep:hover input[dTextInput]{border-color:var(--devui-form-control-line-hover, #808080);box-shadow:0 0 0 4px var(--devui-form-control-interactive-outline, rgba(94, 124, 224, .08))}:host.embed:not(.disabled) ::ng-deep:has(:focus) input[dTextInput]{border-color:var(--devui-form-control-line-active, #0a59f7)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i2.InputGroupPipe, name: "dInputGroupPipe" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: InputGroupComponent, decorators: [{
type: Component,
args: [{ selector: 'd-input-group', changeDetection: ChangeDetectionStrategy.OnPush, preserveWhitespaces: false, template: "<div class=\"devui-input-group-container\" [class.disabled]=\"isEmbed && disabled\">\n <span #prefix *ngIf=\"prefixContent\" class=\"devui-input-group-item prefix\">\n <ng-template\n [ngTemplateOutlet]=\"prefixContent | dInputGroupPipe : defaultInputGroupTemplate : isEmbed : container : prefix : 'padding-left'\"\n [ngTemplateOutletContext]=\"{ content: prefixContent, disabled: disabled }\"\n ></ng-template>\n </span>\n <span #container class=\"devui-input-group-content {{ innerContentClass }}\">\n <ng-content></ng-content>\n </span>\n <span #suffix *ngIf=\"suffixContent\" class=\"devui-input-group-item suffix\">\n <ng-template\n [ngTemplateOutlet]=\"suffixContent | dInputGroupPipe : defaultInputGroupTemplate : isEmbed : container : suffix : 'padding-right'\"\n [ngTemplateOutletContext]=\"{ content: suffixContent, disabled: disabled }\"\n ></ng-template>\n </span>\n</div>\n\n<ng-template #defaultInputGroupTemplate let-content=\"content\">\n <span>{{ content }}</span>\n</ng-template>\n", styles: [":host{display:inline-block;position:relative}:host .devui-input-group-container{display:flex;align-items:stretch}:host .devui-input-group-container .devui-input-group-item{padding:4px 8px;width:fit-content;border:1px solid var(--devui-form-control-line, #dbdbdb);border-radius:var(--devui-border-radius, 2px);background-color:var(--devui-gray-form-control-bg, #f5f5f5);white-space:nowrap;display:flex;align-items:center}:host .devui-input-group-container .devui-input-group-item:has(+.devui-input-group-content:not(:empty)).prefix{border-top-right-radius:0;border-bottom-right-radius:0;border-right:none}:host .devui-input-group-container .devui-input-group-content:not(:empty)+.devui-input-group-item.suffix{border-top-left-radius:0;border-bottom-left-radius:0;border-left:none}:host:not([class*=devui-splice-]){margin-right:8px}:host.devui-splice-left-item .devui-input-group-item.prefix{border-top-left-radius:0;border-bottom-left-radius:0;border-left:none}:host.devui-splice-left-item ::ng-deep [dTextInput],:host.devui-splice-left-item ::ng-deep d-select{margin-right:-1px}:host.devui-splice-left-item ::ng-deep [dTextInput],:host.devui-splice-left-item ::ng-deep [dTextInput]>div.devui-dropdown-origin,:host.devui-splice-left-item ::ng-deep d-select,:host.devui-splice-left-item ::ng-deep d-select>div.devui-dropdown-origin{border-radius:0!important}:host.devui-splice-left-item ::ng-deep [dTextInput]:first-child,:host.devui-splice-left-item ::ng-deep d-select:first-child{border-top-left-radius:0!important;border-bottom-left-radius:0!important}:host.devui-splice-left-item ::ng-deep [dTextInput]:first-child>div.devui-dropdown-origin,:host.devui-splice-left-item ::ng-deep d-select:first-child>div.devui-dropdown-origin{border-top-left-radius:0!important;border-bottom-left-radius:0!important}:host.devui-splice-left-item ::ng-deep [dTextInput]:last-child,:host.devui-splice-left-item ::ng-deep d-select:last-child{margin-right:0;border-top-right-radius:var(--devui-border-radius, 2px)!important;border-bottom-right-radius:var(--devui-border-radius, 2px)!important}:host.devui-splice-left-item ::ng-deep [dTextInput]:last-child>div.devui-dropdown-origin,:host.devui-splice-left-item ::ng-deep d-select:last-child>div.devui-dropdown-origin{border-top-right-radius:var(--devui-border-radius, 2px)!important;border-bottom-right-radius:var(--devui-border-radius, 2px)!important}:host.devui-splice-left-item ::ng-deep [dTextInput]{z-index:0}:host.devui-splice-left-item ::ng-deep [dTextInput]:hover{z-index:1}:host.devui-splice-left-item ::ng-deep [dTextInput]:focus,:host.devui-splice-left-item ::ng-deep [dTextInput]:has(:focus){z-index:2}:host.devui-splice-right-item .devui-input-group-item.suffix{border-top-right-radius:0;border-bottom-right-radius:0;border-right:none}:host.devui-splice-right-item ::ng-deep [dTextInput],:host.devui-splice-right-item ::ng-deep d-select{margin-right:-1px}:host.devui-splice-right-item ::ng-deep [dTextInput],:host.devui-splice-right-item ::ng-deep [dTextInput]>div.devui-dropdown-origin,:host.devui-splice-right-item ::ng-deep d-select,:host.devui-splice-right-item ::ng-deep d-select>div.devui-dropdown-origin{border-radius:0!important}:host.devui-splice-right-item ::ng-deep [dTextInput]:first-child,:host.devui-splice-right-item ::ng-deep d-select:first-child{border-top-right-radius:var(--devui-border-radius, 2px)!important;border-bottom-right-radius:var(--devui-border-radius, 2px)!important}:host.devui-splice-right-item ::ng-deep [dTextInput]:first-child>div.devui-dropdown-origin,:host.devui-splice-right-item ::ng-deep d-select:first-child>div.devui-dropdown-origin{border-top-right-radius:var(--devui-border-radius, 2px)!important;border-bottom-right-radius:var(--devui-border-radius, 2px)!important}:host.devui-splice-right-item ::ng-deep [dTextInput]:last-child,:host.devui-splice-right-item ::ng-deep d-select:last-child{margin-right:0;border-top-left-radius:0!important;border-bottom-left-radius:0!important}:host.devui-splice-right-item ::ng-deep [dTextInput]:last-child>div.devui-dropdown-origin,:host.devui-splice-right-item ::ng-deep d-select:last-child>div.devui-dropdown-origin{border-top-left-radius:0!important;border-bottom-left-radius:0!important}:host.devui-splice-right-item ::ng-deep [dTextInput]{z-index:0}:host.devui-splice-right-item ::ng-deep [dTextInput]:hover{z-index:1}:host.devui-splice-right-item ::ng-deep [dTextInput]:focus,:host.devui-splice-right-item ::ng-deep [dTextInput]:has(:focus){z-index:2}:host ::ng-deep span.devui-input-group-content{display:flex;align-items:stretch;justify-content:flex-start;flex-wrap:nowrap}:host ::ng-deep span.devui-input-group-content.both [dTextInput],:host ::ng-deep span.devui-input-group-content.both d-select{margin-right:-1px}:host ::ng-deep span.devui-input-group-content.both [dTextInput],:host ::ng-deep span.devui-input-group-content.both [dTextInput]>div.devui-dropdown-origin,:host ::ng-deep span.devui-input-group-content.both d-select,:host ::ng-deep span.devui-input-group-content.both d-select>div.devui-dropdown-origin{border-radius:0!important}:host ::ng-deep span.devui-input-group-content.both [dTextInput]:first-child,:host ::ng-deep span.devui-input-group-content.both d-select:first-child{border-top-left-radius:0!important;border-bottom-left-radius:0!important}:host ::ng-deep span.devui-input-group-content.both [dTextInput]:first-child>div.devui-dropdown-origin,:host ::ng-deep span.devui-input-group-content.both d-select:first-child>div.devui-dropdown-origin{border-top-left-radius:0!important;border-bottom-left-radius:0!important}:host ::ng-deep span.devui-input-group-content.both [dTextInput]:last-child,:host ::ng-deep span.devui-input-group-content.both d-select:last-child{margin-right:0;border-top-right-radius:0!important;border-bottom-right-radius:0!important}:host ::ng-deep span.devui-input-group-content.both [dTextInput]:last-child>div.devui-dropdown-origin,:host ::ng-deep span.devui-input-group-content.both d-select:last-child>div.devui-dropdown-origin{border-top-right-radius:0!important;border-bottom-right-radius:0!important}:host ::ng-deep span.devui-input-group-content.both [dTextInput]{z-index:0}:host ::ng-deep span.devui-input-group-content.both [dTextInput]:hover{z-index:1}:host ::ng-deep span.devui-input-group-content.both [dTextInput]:focus,:host ::ng-deep span.devui-input-group-content.both [dTextInput]:has(:focus){z-index:2}:host ::ng-deep span.devui-input-group-content.prefix [dTextInput],:host ::ng-deep span.devui-input-group-content.prefix d-select{margin-right:-1px}:host ::ng-deep span.devui-input-group-content.prefix [dTextInput],:host ::ng-deep span.devui-input-group-content.prefix [dTextInput]>div.devui-dropdown-origin,:host ::ng-deep span.devui-input-group-content.prefix d-select,:host ::ng-deep span.devui-input-group-content.prefix d-select>div.devui-dropdown-origin{border-radius:0!important}:host ::ng-deep span.devui-input-group-content.prefix [dTextInput]:first-child,:host ::ng-deep span.devui-input-group-content.prefix d-select:first-child{border-top-left-radius:0!important;border-bottom-left-radius:0!important}:host ::ng-deep span.devui-input-group-content.prefix [dTextInput]:first-child>div.devui-dropdown-origin,:host ::ng-deep span.devui-input-group-content.prefix d-select:first-child>div.devui-dropdown-origin{border-top-left-radius:0!important;border-bottom-left-radius:0!important}:host ::ng-deep span.devui-input-group-content.prefix [dTextInput]:last-child,:host ::ng-deep span.devui-input-group-content.prefix d-select:last-child{margin-right:0;border-top-right-radius:var(--devui-border-radius, 2px)!important;border-bottom-right-radius:var(--devui-border-radius, 2px)!important}:host ::ng-deep span.devui-input-group-content.prefix [dTextInput]:last-child>div.devui-dropdown-origin,:host ::ng-deep span.devui-input-group-content.prefix d-select:last-child>div.devui-dropdown-origin{border-top-right-radius:var(--devui-border-radius, 2px)!important;border-bottom-right-radius:var(--devui-border-radius, 2px)!important}:host ::ng-deep span.devui-input-group-content.prefix [dTextInput]{z-index:0}:host ::ng-deep span.devui-input-group-content.prefix [dTextInput]:hover{z-index:1}:host ::ng-deep span.devui-input-group-content.prefix [dTextInput]:focus,:host ::ng-deep span.devui-input-group-content.prefix [dTextInput]:has(:focus){z-index:2}:host ::ng-deep span.devui-input-group-content.suffix [dTextInput],:host ::ng-deep span.devui-input-group-content.suffix d-select{margin-right:-1px}:host ::ng-deep span.devui-input-group-content.suffix [dTextInput],:host ::ng-deep span.devui-input-group-content.suffix [dTextInput]>div.devui-dropdown-origin,:host ::ng-deep span.devui-input-group-content.suffix d-select,:host ::ng-deep span.devui-input-group-content.suffix d-select>div.devui-dropdown-origin{border-radius:0!important}:host ::ng-deep span.devui-input-group-content.suffix [dTextInput]:first-child,:host ::ng-deep span.devui-input-group-content.suffix d-select:first-child{border-top-right-radius:0!important;border-bottom-right-radius:0!important}:host ::ng-deep span.devui-input-group-content.suffix [dTextInput]:first-child>div.devui-dropdown-origin,:host ::ng-deep span.devui-input-group-content.suffix d-select:first-child>div.devui-dropdown-origin{border-top-right-radius:0!important;border-bottom-right-radius:0!important}:host ::ng-deep span.devui-input-group-content.suffix [dTextInput]:last-child,:host ::ng-deep span.devui-input-group-content.suffix d-select:last-child{margin-right:0;border-top-left-radius:var(--devui-border-radius, 2px)!important;border-bottom-left-radius:var(--devui-border-radius, 2px)!important}:host ::ng-deep span.devui-input-group-content.suffix [dTextInput]:last-child>div.devui-dropdown-origin,:host ::ng-deep span.devui-input-group-content.suffix d-select:last-child>div.devui-dropdown-origin{border-top-left-radius:var(--devui-border-radius, 2px)!important;border-bottom-left-radius:var(--devui-border-radius, 2px)!important}:host ::ng-deep span.devui-input-group-content.suffix [dTextInput]{z-index:0}:host ::ng-deep span.devui-input-group-content.suffix [dTextInput]:hover{z-index:1}:host ::ng-deep span.devui-input-group-content.suffix [dTextInput]:focus,:host ::ng-deep span.devui-input-group-content.suffix [dTextInput]:has(:focus){z-index:2}:host.embed .devui-input-group-container .devui-input-group-item{height:100%;position:absolute;border:none;background:transparent}:host.embed .devui-input-group-container .devui-input-group-item.prefix{left:0}:host.embed .devui-input-group-container .devui-input-group-item.suffix{right:0}:host.embed .devui-input-group-container ::ng-deep span.devui-input-group-content [dTextInput],:host.embed .devui-input-group-container ::ng-deep span.devui-input-group-content d-select>div{border-top-left-radius:var(--devui-border-radius, 2px)!important;border-bottom-left-radius:var(--devui-border-radius, 2px)!important}:host.embed .devui-input-group-container ::ng-deep span.devui-input-group-content [dTextInput],:host.embed .devui-input-group-container ::ng-deep span.devui-input-group-content d-select>div{border-top-right-radius:var(--devui-border-radius, 2px)!important;border-bottom-right-radius:var(--devui-border-radius, 2px)!important}:host.embed:not(.disabled) ::ng-deep:hover input[dTextInput]{border-color:var(--devui-form-control-line-hover, #808080);box-shadow:0 0 0 4px var(--devui-form-control-interactive-outline, rgba(94, 124, 224, .08))}:host.embed:not(.disabled) ::ng-deep:has(:focus) input[dTextInput]{border-color:var(--devui-form-control-line-active, #0a59f7)}\n"] }]
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { isEmbed: [{
type: Input
}], disabled: [{
type: Input
}], prefixContent: [{
type: Input
}], suffixContent: [{
type: Input
}], spliceType: [{
type: Input
}], container: [{
type: ViewChild,
args: ['container']
}], embed: [{
type: HostBinding,
args: ['class.embed']
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZGV2dWkvaW5wdXQtZ3JvdXAvaW5wdXQtZ3JvdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vZGV2dWkvaW5wdXQtZ3JvdXAvaW5wdXQtZ3JvdXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixXQUFXLEVBQ1gsS0FBSyxFQUVMLFNBQVMsRUFFVCxTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7Ozs7QUFXdkIsTUFBTSxPQUFPLG1CQUFtQjtJQU85QixJQUNJLEtBQUs7UUFDUCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQVNELFlBQW9CLEdBQXNCLEVBQVUsRUFBYyxFQUFVLE1BQWlCO1FBQXpFLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBWTtRQUFVLFdBQU0sR0FBTixNQUFNLENBQVc7UUFsQnBGLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUdqQixlQUFVLEdBQWdCLFlBQVksQ0FBQztRQU9oRCxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsc0JBQWlCLEdBQUcsRUFBRSxDQUFDO1FBMkJ2Qix3QkFBbUIsR0FBRyxHQUFHLEVBQUU7WUFDekIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQztZQUMzRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsc0JBQXNCLENBQUMsQ0FBQztZQUN0RixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMs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K0dBaEdVLG1CQUFtQjttR0FBbkIsbUJBQW1CLG9XQ3ZCaEMsa2hDQXFCQTs7NEZERWEsbUJBQW1CO2tCQVAvQixTQUFTOytCQUNFLGVBQWUsbUJBR1IsdUJBQXVCLENBQUMsTUFBTSx1QkFDMUIsS0FBSzt1SUFHakIsT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ2tCLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVztnQkFFbEIsS0FBSztzQkFEUixXQUFXO3VCQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIFJlbmRlcmVyMixcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IHR5cGUgSVNwbGljZVR5cGUgPSAnc3RhbmRhbG9uZScgfCAnbGVmdCcgfCAncmlnaHQnIHwgJ2JvdGgnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkLWlucHV0LWdyb3VwJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2lucHV0LWdyb3VwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtZ3JvdXAuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlLFxufSlcbmV4cG9ydCBjbGFzcyBJbnB1dEdyb3VwQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgaXNFbWJlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBwcmVmaXhDb250ZW50OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+O1xuICBASW5wdXQoKSBzdWZmaXhDb250ZW50OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+O1xuICBASW5wdXQoKSBzcGxpY2VUeXBlOiBJU3BsaWNlVHlwZSA9ICdzdGFuZGFsb25lJztcbiAgQFZpZXdDaGlsZCgnY29udGFpbmVyJykgY29udGFpbmVyOiBFbGVtZW50UmVmO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmVtYmVkJylcbiAgZ2V0IGVtYmVkKCkge1xuICAgIHJldHVybiB0aGlzLmlzRW1iZWQ7XG4gIH1cblxuICBpc1ByZWZpeCA9IGZhbHNlO1xuICBpc1N1ZmZpeCA9IGZhbHNlO1xuICBpbm5lckNvbnRlbnRDbGFzcyA9ICcnO1xuXG4gIHByaXZhdGUgcGFyZW50OiBIVE1MRWxlbWVudDtcbiAgcHJpdmF0ZSByZXNpemVPYnNlcnZlcjogYW55O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHJpdmF0ZSBlbDogRWxlbWVudFJlZiwgcHJpdmF0ZSByZW5kZXI6IFJlbmRlcmVyMikge31cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZWwubmF0aXZlRWxlbWVudC5wYXJlbnRFbGVtZW50ICYmICF0aGlzLmlzRW1iZWQpIHtcbiAgICAgIHRoaXMucGFyZW50ID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnBhcmVudEVsZW1lbnQ7XG4gICAgICB0aGlzLmhhbmRsZXJTcGxpY2VTdGF0dXMoKTtcbiAgICAgIC8vIOebkeWQrOeItuWuueWZqOWwuuWvuOWPmOWMluWIt+aWsOaLvOaOpeaViOaenFxuICAgICAgdGhpcy5yZXNpemVPYnNlcnZlciA9IG5ldyAod2luZG93IGFzIGFueSkuUmVzaXplT2JzZXJ2ZXIoKCkgPT4gdGhpcy5oYW5kbGVyU3BsaWNlU3RhdHVzKCkpO1xuICAgICAgdGhpcy5yZXNpemVPYnNlcnZlci5vYnNlcnZlKHRoaXMucGFyZW50KTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5yZXNpemVPYnNlcnZlcikge1xuICAgICAgdGhpcy5yZXNpemVPYnNlcnZlci51bm9ic2VydmUodGhpcy5wYXJlbnQpO1xuICAgIH1cbiAgfVxuXG4gIGNoZWNrSXNJbnB1dEdyb3VwKGRvbTogSFRNTEVsZW1lbnQpIHtcbiAgICByZXR1cm4gZG9tPy5ub2RlTmFtZSA9PT0gJ0QtSU5QVVQtR1JPVVAnICYmIGRvbTtcbiAgfVxuXG4gIGhhbmRsZXJTcGxpY2VTdGF0dXMgPSAoKSA9PiB7XG4gICAgY29uc3QgcmVjdCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICBjb25zdCBwcmV2aW91cyA9IHRoaXMuY2hlY2tJc0lucHV0R3JvdXAodGhpcy5lbC5uYXRpdmVFbGVtZW50LnByZXZpb3VzRWxlbWVudFNpYmxpbmcpO1xuICAgIGNvbnN0IG5leHQgPSB0aGlzLmNoZWNrSXNJbnB1dEdyb3VwKHRoaXMuZWwubmF0aXZlRWxlbWVudC5uZXh0RWxlbWVudFNpYmxpbmcpO1xuICAgIHRoaXMuc3BsaWNlTGVmdChwcmV2aW91cywgcmVjdCk7XG4gICAgdGhpcy5zcGxpY2VSaWdodChuZXh0LCByZWN0KTtcbiAgICB0aGlzLnNldElubmVyQ29udGVudEJvcmRlclJhZGl1cygpO1xuICB9O1xuXG4gIHNwbGljZUxlZnQocHJldmlvdXM6IEhUTUxFbGVtZW50LCByZWN0OiBET01SZWN0KSB7XG4gICAgaWYgKHByZXZpb3VzICYmIFsnbGVmdCcsICdib3RoJ10uaW5jbHVkZXModGhpcy5zcGxpY2VUeXBlKSkge1xuICAgICAgY29uc3QgcHJldmlvdXNSZWN0ID0gcHJldmlvdXMuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICB0aGlzLmlzUHJlZml4ID0gcmVjdC5sZWZ0ID4gcHJldmlvdXNSZWN0LmxlZnQ7XG4gICAgICBpZiAodGhpcy5pc1ByZWZpeCkge1xuICAgICAgICB0aGlzLnJlbmRlci5hZGRDbGFzcyh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICdkZXZ1aS1zcGxpY2UtbGVmdC1pdGVtJyk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5yZW5kZXIucmVtb3ZlQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LCAnZGV2dWktc3BsaWNlLWxlZnQtaXRlbScpO1xuICB9XG5cbiAgc3BsaWNlUmlnaHQobmV4dDogSFRNTEVsZW1lbnQsIHJlY3Q6IERPTVJlY3QpIHtcbiAgICBpZiAobmV4dCAmJiBbJ3JpZ2h0JywgJ2JvdGgnXS5pbmNsdWRlcyh0aGlzLnNwbGljZVR5cGUpKSB7XG4gICAgICBjb25zdCBuZXh0UmVjdCA9IG5leHQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICB0aGlzLmlzU3VmZml4ID0gbmV4dFJlY3QubGVmdCA+IHJlY3QubGVmdDtcbiAgICAgIGlmICh0aGlzLmlzU3VmZml4KSB7XG4gICAgICAgIHRoaXMucmVuZGVyLmFkZENsYXNzKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ2RldnVpLXNwbGljZS1yaWdodC1pdGVtJyk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5yZW5kZXIucmVtb3ZlQ2xhc3ModGhpcy5lbC5uYXRpdmVFbGVtZW50LCAnZGV2dWktc3BsaWNlLXJpZ2h0LWl0ZW0nKTtcbiAgfVxuXG4gIHNldElubmVyQ29udGVudEJvcmRlclJhZGl1cygpIHtcbiAgICBjb25zdCBpc1ByZWZpeCA9IHRoaXMuaXNQcmVmaXggfHwgdGhpcy5wcmVmaXhDb250ZW50O1xuICAgIGNvbnN0IGlzU3VmZml4ID0gdGhpcy5pc1N1ZmZpeCB8fCB0aGlzLnN1ZmZpeENvbnRlbnQ7XG4gICAgY29uc3QgcHJlZml4ID0gaXNQcmVmaXggJiYgJ3ByZWZpeCc7XG4gICAgY29uc3Qgc3VmZml4ID0gaXNTdWZmaXggJiYgJ3N1ZmZpeCc7XG4gICAgdGhpcy5pbm5lckNvbnRlbnRDbGFzcyA9IGlzUHJlZml4ICYmIGlzU3VmZml4ID8gJ2JvdGgnIDogcHJlZml4IHx8IHN1ZmZpeCB8fCAnJztcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIGNoYW5nZUlucHV0UGFkZGluZyhwb3M6IElTcGxpY2VUeXBlLCBzdHlsZTogc3RyaW5nKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNFbWJlZCAmJiB0aGlzLmNvbnRhaW5lcikge1xuICAgICAgY29uc3QgZG9tID0gdGhpcy5jb250YWluZXIubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dFtkVGV4dElucHV0XScpO1xuICAgICAgaWYgKCFkb20pIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKFsncmlnaHQnLCAnYm90aCddLmluY2x1ZGVzKHBvcykpIHtcbiAgICAgICAgdGhpcy5yZW5kZXIuc2V0U3R5bGUoZG9tLCAncGFkZGluZy1yaWdodCcsIHN0eWxlKTtcbiAgICAgIH1cbiAgICAgIGlmIChbJ2xlZnQnLCAnYm90aCddLmluY2x1ZGVzKHBvcykpIHtcbiAgICAgICAgdGhpcy5yZW5kZXIuc2V0U3R5bGUoZG9tLCAncGFkZGluZy1sZWZ0Jywgc3R5bGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImRldnVpLWlucHV0LWdyb3VwLWNvbnRhaW5lclwiIFtjbGFzcy5kaXNhYmxlZF09XCJpc0VtYmVkICYmIGRpc2FibGVkXCI+XG4gIDxzcGFuICNwcmVmaXggKm5nSWY9XCJwcmVmaXhDb250ZW50XCIgY2xhc3M9XCJkZXZ1aS1pbnB1dC1ncm91cC1pdGVtIHByZWZpeFwiPlxuICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwicHJlZml4Q29udGVudCB8IGRJbnB1dEdyb3VwUGlwZSA6IGRlZmF1bHRJbnB1dEdyb3VwVGVtcGxhdGUgOiBpc0VtYmVkIDogY29udGFpbmVyIDogcHJlZml4IDogJ3BhZGRpbmctbGVmdCdcIlxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgY29udGVudDogcHJlZml4Q29udGVudCwgZGlzYWJsZWQ6IGRpc2FibGVkIH1cIlxuICAgID48L25nLXRlbXBsYXRlPlxuICA8L3NwYW4+XG4gIDxzcGFuICNjb250YWluZXIgY2xhc3M9XCJkZXZ1aS1pbnB1dC1ncm91cC1jb250ZW50IHt7IGlubmVyQ29udGVudENsYXNzIH19XCI+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L3NwYW4+XG4gIDxzcGFuICNzdWZmaXggKm5nSWY9XCJzdWZmaXhDb250ZW50XCIgY2xhc3M9XCJkZXZ1aS1pbnB1dC1ncm91cC1pdGVtIHN1ZmZpeFwiPlxuICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwic3VmZml4Q29udGVudCB8IGRJbnB1dEdyb3VwUGlwZSA6IGRlZmF1bHRJbnB1dEdyb3VwVGVtcGxhdGUgOiBpc0VtYmVkIDogY29udGFpbmVyIDogc3VmZml4IDogJ3BhZGRpbmctcmlnaHQnXCJcbiAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IGNvbnRlbnQ6IHN1ZmZpeENvbnRlbnQsIGRpc2FibGVkOiBkaXNhYmxlZCB9XCJcbiAgICA+PC9uZy10ZW1wbGF0ZT5cbiAgPC9zcGFuPlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdElucHV0R3JvdXBUZW1wbGF0ZSBsZXQtY29udGVudD1cImNvbnRlbnRcIj5cbiAgPHNwYW4+e3sgY29udGVudCB9fTwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=