{"version":3,"file":"ng-devui-input-group.mjs","sources":["../../devui/input-group/input-group.pipe.ts","../../devui/input-group/input-group.component.ts","../../devui/input-group/input-group.component.html","../../devui/input-group/input-group.module.ts","../../devui/input-group/ng-devui-input-group.ts"],"sourcesContent":["import { Pipe, PipeTransform, Renderer2, TemplateRef } from '@angular/core';\n\n@Pipe({\n  name: 'dInputGroupPipe',\n})\nexport class InputGroupPipe implements PipeTransform {\n\n  constructor(private render: Renderer2) {}\n\n  transform(\n    content: string | TemplateRef<any>,\n    defaultTemplate: TemplateRef<any>,\n    isEmbed: boolean,\n    containerEl: HTMLElement,\n    affixEl: HTMLElement,\n    style: string\n  ): TemplateRef<any> {\n    if (isEmbed) {\n      const inputEl = containerEl?.querySelector('input[dTextInput]');\n      if (inputEl) {\n        setTimeout(() => this.render.setStyle(inputEl, style, `${affixEl?.offsetWidth + 4}px`));\n      }\n    }\n    return typeof content === 'string' ? defaultTemplate : content;\n  }\n}\n","import {\n  AfterViewInit,\n  ChangeDetectionStrategy,\n  ChangeDetectorRef,\n  Component,\n  ElementRef,\n  HostBinding,\n  Input,\n  OnDestroy,\n  Renderer2,\n  TemplateRef,\n  ViewChild\n} from '@angular/core';\n\nexport type ISpliceType = 'standalone' | 'left' | 'right' | 'both';\n\n@Component({\n  selector: 'd-input-group',\n  templateUrl: './input-group.component.html',\n  styleUrls: ['./input-group.component.scss'],\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  preserveWhitespaces: false,\n})\nexport class InputGroupComponent implements AfterViewInit, OnDestroy {\n  @Input() isEmbed = false;\n  @Input() disabled = false;\n  @Input() prefixContent: string | TemplateRef<any>;\n  @Input() suffixContent: string | TemplateRef<any>;\n  @Input() spliceType: ISpliceType = 'standalone';\n  @ViewChild('container') container: ElementRef;\n  @HostBinding('class.embed')\n  get embed() {\n    return this.isEmbed;\n  }\n\n  isPrefix = false;\n  isSuffix = false;\n  innerContentClass = '';\n\n  private parent: HTMLElement;\n  private resizeObserver: any;\n\n  constructor(private cdr: ChangeDetectorRef, private el: ElementRef, private render: Renderer2) {}\n\n  ngAfterViewInit(): void {\n    if (this.el.nativeElement.parentElement && !this.isEmbed) {\n      this.parent = this.el.nativeElement.parentElement;\n      this.handlerSpliceStatus();\n      // 监听父容器尺寸变化刷新拼接效果\n      this.resizeObserver = new (window as any).ResizeObserver(() => this.handlerSpliceStatus());\n      this.resizeObserver.observe(this.parent);\n    }\n  }\n\n  ngOnDestroy(): void {\n    if (this.resizeObserver) {\n      this.resizeObserver.unobserve(this.parent);\n    }\n  }\n\n  checkIsInputGroup(dom: HTMLElement) {\n    return dom?.nodeName === 'D-INPUT-GROUP' && dom;\n  }\n\n  handlerSpliceStatus = () => {\n    const rect = this.el.nativeElement.getBoundingClientRect();\n    const previous = this.checkIsInputGroup(this.el.nativeElement.previousElementSibling);\n    const next = this.checkIsInputGroup(this.el.nativeElement.nextElementSibling);\n    this.spliceLeft(previous, rect);\n    this.spliceRight(next, rect);\n    this.setInnerContentBorderRadius();\n  };\n\n  spliceLeft(previous: HTMLElement, rect: DOMRect) {\n    if (previous && ['left', 'both'].includes(this.spliceType)) {\n      const previousRect = previous.getBoundingClientRect();\n      this.isPrefix = rect.left > previousRect.left;\n      if (this.isPrefix) {\n        this.render.addClass(this.el.nativeElement, 'devui-splice-left-item');\n        return;\n      }\n    }\n    this.render.removeClass(this.el.nativeElement, 'devui-splice-left-item');\n  }\n\n  spliceRight(next: HTMLElement, rect: DOMRect) {\n    if (next && ['right', 'both'].includes(this.spliceType)) {\n      const nextRect = next.getBoundingClientRect();\n      this.isSuffix = nextRect.left > rect.left;\n      if (this.isSuffix) {\n        this.render.addClass(this.el.nativeElement, 'devui-splice-right-item');\n        return;\n      }\n    }\n    this.render.removeClass(this.el.nativeElement, 'devui-splice-right-item');\n  }\n\n  setInnerContentBorderRadius() {\n    const isPrefix = this.isPrefix || this.prefixContent;\n    const isSuffix = this.isSuffix || this.suffixContent;\n    const prefix = isPrefix && 'prefix';\n    const suffix = isSuffix && 'suffix';\n    this.innerContentClass = isPrefix && isSuffix ? 'both' : prefix || suffix || '';\n    this.cdr.markForCheck();\n  }\n\n  changeInputPadding(pos: ISpliceType, style: string): void {\n    if (this.isEmbed && this.container) {\n      const dom = this.container.nativeElement.querySelector('input[dTextInput]');\n      if (!dom) {\n        return;\n      }\n      if (['right', 'both'].includes(pos)) {\n        this.render.setStyle(dom, 'padding-right', style);\n      }\n      if (['left', 'both'].includes(pos)) {\n        this.render.setStyle(dom, 'padding-left', style);\n      }\n    }\n  }\n}\n","<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","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { InputGroupComponent } from './input-group.component';\nimport { InputGroupPipe } from './input-group.pipe';\n\n@NgModule({\n  imports: [CommonModule],\n  declarations: [InputGroupComponent, InputGroupPipe],\n  exports: [InputGroupComponent, InputGroupPipe],\n})\nexport class InputGroupModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.InputGroupPipe"],"mappings":"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"}