{"version":3,"file":"vts-voffice-ng-vts-input.mjs","sources":["../../components/input/input.directive.ts","../../components/input/input-group-slot.component.ts","../../components/input/input-group.component.ts","../../components/input/calculateNodeHeight.ts","../../components/input/autosize.directive.ts","../../components/input/textarea-count.component.ts","../../components/input/input.module.ts","../../components/input/public-api.ts","../../components/input/vts-voffice-ng-vts-input.ts"],"sourcesContent":["/**\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\r\n */\r\n\r\nimport { Direction, Directionality } from '@angular/cdk/bidi';\r\nimport {\r\n  Directive,\r\n  ElementRef,\r\n  HostListener,\r\n  Input,\r\n  OnChanges,\r\n  OnDestroy,\r\n  OnInit,\r\n  Optional,\r\n  Renderer2,\r\n  Self,\r\n  SimpleChanges\r\n} from '@angular/core';\r\nimport { NgControl } from '@angular/forms';\r\nimport { BooleanInput, VtsSizeXLMSType } from '@vts-voffice/ng-vts/core/types';\r\nimport { InputBoolean } from '@vts-voffice/ng-vts/core/util';\r\nimport { Subject } from 'rxjs';\r\nimport { filter, takeUntil } from 'rxjs/operators';\r\n\r\n@Directive({\r\n  selector: 'input[vts-input],textarea[vts-input]',\r\n  exportAs: 'vtsInput',\r\n  host: {\r\n    '[class.vts-input-disabled]': 'disabled',\r\n    '[class.vts-input-borderless]': 'vtsBorderless',\r\n    '[class.vts-input-filled]': 'filled',\r\n    '[class.vts-input-xl]': `vtsSize === 'xl'`,\r\n    '[class.vts-input-lg]': `vtsSize === 'lg'`,\r\n    '[class.vts-input-md]': `vtsSize === 'md'`,\r\n    '[class.vts-input-sm]': `vtsSize === 'sm'`,\r\n    '[attr.disabled]': 'disabled || null',\r\n    '[class.vts-input-rtl]': `dir=== 'rtl'`\r\n  }\r\n})\r\nexport class VtsInputDirective implements OnChanges, OnInit, OnDestroy {\r\n  static ngAcceptInputType_disabled: BooleanInput;\r\n  static ngAcceptInputType_vtsBorderless: BooleanInput;\r\n  @Input() @InputBoolean() vtsBorderless = false;\r\n  @Input() vtsSize: VtsSizeXLMSType = 'md';\r\n  @Input()\r\n  get disabled(): boolean {\r\n    if (this.ngControl && this.ngControl.disabled !== null) {\r\n      return this.ngControl.disabled;\r\n    }\r\n    return this._disabled;\r\n  }\r\n  set disabled(value: boolean) {\r\n    this._disabled = value != null && `${value}` !== 'false';\r\n  }\r\n  _disabled = false;\r\n  disabled$ = new Subject<boolean>();\r\n  dir: Direction = 'ltr';\r\n  filled: boolean = false;\r\n  private destroy$ = new Subject<void>();\r\n\r\n  constructor(\r\n    @Optional() @Self() public ngControl: NgControl,\r\n    renderer: Renderer2,\r\n    elementRef: ElementRef,\r\n    @Optional() private directionality: Directionality\r\n  ) {\r\n    renderer.addClass(elementRef.nativeElement, 'vts-input');\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    if (this.ngControl) {\r\n      this.ngControl.statusChanges\r\n        ?.pipe(\r\n          filter(() => this.ngControl.disabled !== null),\r\n          takeUntil(this.destroy$)\r\n        )\r\n        .subscribe(() => {\r\n          this.disabled$.next(this.ngControl.disabled!);\r\n        });\r\n    }\r\n\r\n    this.dir = this.directionality.value;\r\n    this.directionality.change?.pipe(takeUntil(this.destroy$)).subscribe((direction: Direction) => {\r\n      this.dir = direction;\r\n    });\r\n  }\r\n\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n    const { disabled } = changes;\r\n    if (disabled) {\r\n      this.disabled$.next(this.disabled);\r\n    }\r\n  }\r\n\r\n  @HostListener('keyup', ['$event']) onKeyup(e: KeyboardEvent) {\r\n    this.filled = !!e.target && !!(e.target as HTMLInputElement).value;\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this.destroy$.next();\r\n    this.destroy$.complete();\r\n  }\r\n}\r\n","/**\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\r\n */\r\n\r\nimport {\r\n  ChangeDetectionStrategy,\r\n  Component,\r\n  Input,\r\n  TemplateRef,\r\n  ViewEncapsulation\r\n} from '@angular/core';\r\n\r\n@Component({\r\n  selector: '[vts-input-group-slot]',\r\n  preserveWhitespaces: false,\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  template: `\r\n    <i vts-icon [vtsType]=\"icon\" *ngIf=\"icon\"></i>\r\n    <ng-container *vtsStringTemplateOutlet=\"template\">\r\n      {{ template }}\r\n    </ng-container>\r\n  `,\r\n  host: {\r\n    '[class.vts-input-group-addon]': `type === 'addon'`,\r\n    '[class.vts-input-prefix]': `type === 'prefix'`,\r\n    '[class.vts-input-suffix]': `type === 'suffix'`\r\n  }\r\n})\r\nexport class VtsInputGroupSlotComponent {\r\n  @Input() icon?: string | null = null;\r\n  @Input() type: 'addon' | 'prefix' | 'suffix' | null = null;\r\n  @Input() template?: string | TemplateRef<void> | null = null;\r\n}\r\n","/**\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\r\n */\r\nimport { FocusMonitor } from '@angular/cdk/a11y';\r\nimport { Direction, Directionality } from '@angular/cdk/bidi';\r\nimport {\r\n  AfterContentInit,\r\n  ChangeDetectionStrategy,\r\n  ChangeDetectorRef,\r\n  Component,\r\n  ContentChildren,\r\n  Directive,\r\n  ElementRef,\r\n  Input,\r\n  OnChanges,\r\n  OnDestroy,\r\n  OnInit,\r\n  Optional,\r\n  QueryList,\r\n  SimpleChanges,\r\n  TemplateRef,\r\n  ViewEncapsulation\r\n} from '@angular/core';\r\nimport { BooleanInput, VtsSizeXLMSType } from '@vts-voffice/ng-vts/core/types';\r\nimport { InputBoolean } from '@vts-voffice/ng-vts/core/util';\r\nimport { merge, Subject } from 'rxjs';\r\nimport { map, mergeMap, startWith, switchMap, takeUntil } from 'rxjs/operators';\r\nimport { VtsInputDirective } from './input.directive';\r\n\r\n@Directive({\r\n  selector: `vts-input-group[vtsSuffix], vts-input-group[vtsPrefix]`\r\n})\r\nexport class VtsInputGroupWhitSuffixOrPrefixDirective {\r\n  constructor(public elementRef: ElementRef) {}\r\n}\r\n\r\n@Component({\r\n  selector: 'vts-input-group',\r\n  exportAs: 'vtsInputGroup',\r\n  preserveWhitespaces: false,\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  template: `\r\n    <span class=\"vts-input-wrapper vts-input-group\" *ngIf=\"isAddOn; else noAddOnTemplate\">\r\n      <span\r\n        *ngIf=\"vtsAddOnBefore || vtsAddOnBeforeIcon\"\r\n        vts-input-group-slot\r\n        type=\"addon\"\r\n        [icon]=\"vtsAddOnBeforeIcon\"\r\n        [template]=\"vtsAddOnBefore\"\r\n      ></span>\r\n      <span\r\n        *ngIf=\"isAffix; else contentTemplate\"\r\n        class=\"vts-input-affix-wrapper\"\r\n        [class.vts-input-affix-wrapper-sm]=\"vtsSize == 'sm'\"\r\n        [class.vts-input-affix-wrapper-md]=\"vtsSize == 'md'\"\r\n        [class.vts-input-affix-wrapper-lg]=\"vtsSize == 'lg'\"\r\n        [class.vts-input-affix-wrapper-xl]=\"vtsSize == 'xl'\"\r\n      >\r\n        <ng-template [ngTemplateOutlet]=\"affixTemplate\"></ng-template>\r\n      </span>\r\n      <span\r\n        *ngIf=\"vtsAddOnAfter || vtsAddOnAfterIcon\"\r\n        vts-input-group-slot\r\n        type=\"addon\"\r\n        [icon]=\"vtsAddOnAfterIcon\"\r\n        [template]=\"vtsAddOnAfter\"\r\n      ></span>\r\n    </span>\r\n    <ng-template #noAddOnTemplate>\r\n      <ng-template [ngIf]=\"isAffix\" [ngIfElse]=\"contentTemplate\">\r\n        <ng-template [ngTemplateOutlet]=\"affixTemplate\"></ng-template>\r\n      </ng-template>\r\n    </ng-template>\r\n    <ng-template #affixTemplate>\r\n      <span\r\n        *ngIf=\"vtsPrefix || vtsPrefixIcon\"\r\n        vts-input-group-slot\r\n        type=\"prefix\"\r\n        [icon]=\"vtsPrefixIcon\"\r\n        [template]=\"vtsPrefix\"\r\n      ></span>\r\n      <ng-template [ngTemplateOutlet]=\"contentTemplate\"></ng-template>\r\n      <span\r\n        *ngIf=\"vtsSuffix || vtsSuffixIcon\"\r\n        vts-input-group-slot\r\n        type=\"suffix\"\r\n        [icon]=\"vtsSuffixIcon\"\r\n        [template]=\"vtsSuffix\"\r\n      ></span>\r\n    </ng-template>\r\n    <ng-template #contentTemplate>\r\n      <ng-content></ng-content>\r\n    </ng-template>\r\n  `,\r\n  host: {\r\n    '[class.vts-input-group-compact]': `vtsCompact`,\r\n    '[class.vts-input-search-enter-button]': `vtsSearch`,\r\n    '[class.vts-input-search]': `vtsSearch`,\r\n    '[class.vts-input-search-rtl]': `dir === 'rtl'`,\r\n    '[class.vts-input-search-sm]': `vtsSearch && vtsSize == 'sm'`,\r\n    '[class.vts-input-search-md]': `vtsSearch && vtsSize == 'md'`,\r\n    '[class.vts-input-search-lg]': `vtsSearch && vtsSize == 'lg'`,\r\n    '[class.vts-input-search-xl]': `vtsSearch && vtsSize == 'xl'`,\r\n    '[class.vts-input-group-wrapper]': `isAddOn`,\r\n    '[class.vts-input-group-wrapper-rtl]': `dir === 'rtl'`,\r\n    '[class.vts-input-group-wrapper-sm]': `isAddOn && vtsSize == 'sm'`,\r\n    '[class.vts-input-group-wrapper-md]': `isAddOn && vtsSize == 'md'`,\r\n    '[class.vts-input-group-wrapper-lg]': `isAddOn && vtsSize == 'lg'`,\r\n    '[class.vts-input-group-wrapper-xl]': `isAddOn && vtsSize == 'xl'`,\r\n    '[class.vts-input-affix-wrapper]': `isAffix && !isAddOn`,\r\n    '[class.vts-input-affix-wrapper-rtl]': `dir === 'rtl'`,\r\n    '[class.vts-input-affix-wrapper-focused]': `isAffix && focused`,\r\n    '[class.vts-input-affix-wrapper-disabled]': `isAffix && disabled`,\r\n    '[class.vts-input-affix-wrapper-sm]': `isAffix && !isAddOn && vtsSize == 'sm'`,\r\n    '[class.vts-input-affix-wrapper-md]': `isAffix && !isAddOn && vtsSize == 'md'`,\r\n    '[class.vts-input-affix-wrapper-lg]': `isAffix && !isAddOn && vtsSize == 'lg'`,\r\n    '[class.vts-input-affix-wrapper-xl]': `isAffix && !isAddOn && vtsSize == 'xl'`,\r\n    '[class.vts-input-group]': `!isAffix && !isAddOn`,\r\n    '[class.vts-input-group-rtl]': `dir === 'rtl'`,\r\n    '[class.vts-input-group-sm]': `!isAffix && !isAddOn && vtsSize == 'sm'`,\r\n    '[class.vts-input-group-md]': `!isAffix && !isAddOn && vtsSize == 'md'`,\r\n    '[class.vts-input-group-lg]': `!isAffix && !isAddOn && vtsSize == 'lg'`,\r\n    '[class.vts-input-group-xl]': `!isAffix && !isAddOn && vtsSize == 'xl'`\r\n  }\r\n})\r\nexport class VtsInputGroupComponent implements AfterContentInit, OnChanges, OnInit, OnDestroy {\r\n  static ngAcceptInputType_vtsSearch: BooleanInput;\r\n  static ngAcceptInputType_vtsCompact: BooleanInput;\r\n\r\n  @ContentChildren(VtsInputDirective)\r\n  listOfVtsInputDirective!: QueryList<VtsInputDirective>;\r\n  @Input() vtsAddOnBeforeIcon?: string | null = null;\r\n  @Input() vtsAddOnAfterIcon?: string | null = null;\r\n  @Input() vtsPrefixIcon?: string | null = null;\r\n  @Input() vtsSuffixIcon?: string | null = null;\r\n  @Input() vtsAddOnBefore?: string | TemplateRef<void>;\r\n  @Input() vtsAddOnAfter?: string | TemplateRef<void>;\r\n  @Input() vtsPrefix?: string | TemplateRef<void>;\r\n  @Input() vtsSuffix?: string | TemplateRef<void>;\r\n  @Input() vtsSize: VtsSizeXLMSType = 'md';\r\n  @Input() @InputBoolean() vtsSearch = false;\r\n  @Input() @InputBoolean() vtsCompact = false;\r\n  isAffix = false;\r\n  isAddOn = false;\r\n  focused = false;\r\n  disabled = false;\r\n  dir: Direction = 'ltr';\r\n  private destroy$ = new Subject<void>();\r\n\r\n  constructor(\r\n    private focusMonitor: FocusMonitor,\r\n    private elementRef: ElementRef,\r\n    private cdr: ChangeDetectorRef,\r\n    @Optional() private directionality: Directionality\r\n  ) {}\r\n\r\n  updateChildrenInputSize(): void {\r\n    if (this.listOfVtsInputDirective) {\r\n      this.listOfVtsInputDirective.forEach(item => (item.vtsSize = this.vtsSize));\r\n    }\r\n  }\r\n\r\n  ngOnInit(): void {\r\n    this.focusMonitor\r\n      .monitor(this.elementRef, true)\r\n      .pipe(takeUntil(this.destroy$))\r\n      .subscribe(focusOrigin => {\r\n        this.focused = !!focusOrigin;\r\n        this.cdr.markForCheck();\r\n      });\r\n\r\n    this.dir = this.directionality.value;\r\n    this.directionality.change?.pipe(takeUntil(this.destroy$)).subscribe((direction: Direction) => {\r\n      this.dir = direction;\r\n    });\r\n  }\r\n\r\n  ngAfterContentInit(): void {\r\n    this.updateChildrenInputSize();\r\n    const listOfInputChange$ = this.listOfVtsInputDirective.changes.pipe(\r\n      startWith(this.listOfVtsInputDirective)\r\n    );\r\n    listOfInputChange$\r\n      .pipe(\r\n        switchMap(list => {\r\n          return merge(\r\n            ...[listOfInputChange$, ...list.map((input: VtsInputDirective) => input.disabled$)]\r\n          );\r\n        }),\r\n        mergeMap(() => listOfInputChange$),\r\n        map(list => list.some((input: VtsInputDirective) => input.disabled)),\r\n        takeUntil(this.destroy$)\r\n      )\r\n      .subscribe(disabled => {\r\n        this.disabled = disabled;\r\n        this.cdr.markForCheck();\r\n      });\r\n  }\r\n  ngOnChanges(changes: SimpleChanges): void {\r\n    const {\r\n      vtsSize,\r\n      vtsSuffix,\r\n      vtsPrefix,\r\n      vtsPrefixIcon,\r\n      vtsSuffixIcon,\r\n      vtsAddOnAfter,\r\n      vtsAddOnBefore,\r\n      vtsAddOnAfterIcon,\r\n      vtsAddOnBeforeIcon\r\n    } = changes;\r\n    if (vtsSize) {\r\n      this.updateChildrenInputSize();\r\n    }\r\n    if (vtsSuffix || vtsPrefix || vtsPrefixIcon || vtsSuffixIcon) {\r\n      this.isAffix = !!(\r\n        this.vtsSuffix ||\r\n        this.vtsPrefix ||\r\n        this.vtsPrefixIcon ||\r\n        this.vtsSuffixIcon\r\n      );\r\n    }\r\n    if (vtsAddOnAfter || vtsAddOnBefore || vtsAddOnAfterIcon || vtsAddOnBeforeIcon) {\r\n      this.isAddOn = !!(\r\n        this.vtsAddOnAfter ||\r\n        this.vtsAddOnBefore ||\r\n        this.vtsAddOnAfterIcon ||\r\n        this.vtsAddOnBeforeIcon\r\n      );\r\n    }\r\n  }\r\n  ngOnDestroy(): void {\r\n    this.destroy$.next();\r\n    this.destroy$.complete();\r\n  }\r\n}\r\n","// Thanks to https://github.com/andreypopp/react-textarea-autosize/\r\n\r\n/**\r\n * calculateNodeHeight(uiTextNode, useCache = false)\r\n */\r\n\r\nconst HIDDEN_TEXTAREA_STYLE = `\r\n min-height:0 !important;\r\n max-height:none !important;\r\n height:0 !important;\r\n visibility:hidden !important;\r\n overflow:hidden !important;\r\n position:absolute !important;\r\n z-index:-1000 !important;\r\n top:0 !important;\r\n right:0 !important\r\n`;\r\n\r\nconst SIZING_STYLE = [\r\n  'letter-spacing',\r\n  'line-height',\r\n  'padding-top',\r\n  'padding-bottom',\r\n  'font-family',\r\n  'font-weight',\r\n  'font-size',\r\n  'font-variant',\r\n  'text-rendering',\r\n  'text-transform',\r\n  'width',\r\n  'text-indent',\r\n  'padding-left',\r\n  'padding-right',\r\n  'border-width',\r\n  'box-sizing',\r\n  'word-break'\r\n];\r\n\r\nexport interface NodeType {\r\n  sizingStyle: string;\r\n  paddingSize: number;\r\n  borderSize: number;\r\n  boxSizing: string;\r\n}\r\n\r\nconst computedStyleCache: { [key: string]: NodeType } = {};\r\nlet hiddenTextarea: HTMLTextAreaElement;\r\n\r\nexport function calculateNodeStyling(node: HTMLElement, useCache = false) {\r\n  const nodeRef = (node.getAttribute('id') ||\r\n    node.getAttribute('data-reactid') ||\r\n    node.getAttribute('name')) as string;\r\n\r\n  if (useCache && computedStyleCache[nodeRef]) {\r\n    return computedStyleCache[nodeRef];\r\n  }\r\n\r\n  const style = window.getComputedStyle(node);\r\n\r\n  const boxSizing =\r\n    style.getPropertyValue('box-sizing') ||\r\n    style.getPropertyValue('-moz-box-sizing') ||\r\n    style.getPropertyValue('-webkit-box-sizing');\r\n\r\n  const paddingSize =\r\n    parseFloat(style.getPropertyValue('padding-bottom')) +\r\n    parseFloat(style.getPropertyValue('padding-top'));\r\n\r\n  const borderSize =\r\n    parseFloat(style.getPropertyValue('border-bottom-width')) +\r\n    parseFloat(style.getPropertyValue('border-top-width'));\r\n\r\n  const sizingStyle = SIZING_STYLE.map(name => `${name}:${style.getPropertyValue(name)}`).join(';');\r\n\r\n  const nodeInfo: NodeType = {\r\n    sizingStyle,\r\n    paddingSize,\r\n    borderSize,\r\n    boxSizing\r\n  };\r\n\r\n  if (useCache && nodeRef) {\r\n    computedStyleCache[nodeRef] = nodeInfo;\r\n  }\r\n\r\n  return nodeInfo;\r\n}\r\n\r\nexport default function calculateNodeHeight(\r\n  uiTextNode: HTMLTextAreaElement | HTMLInputElement,\r\n  useCache = false,\r\n  minRows: number | null = null,\r\n  maxRows: number | null = null\r\n) {\r\n  if (!hiddenTextarea) {\r\n    hiddenTextarea = document.createElement('textarea');\r\n    hiddenTextarea.setAttribute('tab-index', '-1');\r\n    hiddenTextarea.setAttribute('aria-hidden', 'true');\r\n    document.body.appendChild(hiddenTextarea);\r\n  }\r\n\r\n  // Fix wrap=\"off\" issue\r\n  // https://github.com/ant-design/ant-design/issues/6577\r\n  if (uiTextNode.getAttribute('wrap')) {\r\n    hiddenTextarea.setAttribute('wrap', uiTextNode.getAttribute('wrap') as string);\r\n  } else {\r\n    hiddenTextarea.removeAttribute('wrap');\r\n  }\r\n\r\n  // Copy all CSS properties that have an impact on the height of the content in\r\n  // the textbox\r\n  const { paddingSize, borderSize, boxSizing, sizingStyle } = calculateNodeStyling(\r\n    uiTextNode,\r\n    useCache\r\n  );\r\n\r\n  // Need to have the overflow attribute to hide the scrollbar otherwise\r\n  // text-lines will not calculated properly as the shadow will technically be\r\n  // narrower for content\r\n  hiddenTextarea.setAttribute('style', `${sizingStyle};${HIDDEN_TEXTAREA_STYLE}`);\r\n  hiddenTextarea.value = uiTextNode.value || uiTextNode.placeholder || '';\r\n\r\n  let minHeight = Number.MIN_SAFE_INTEGER;\r\n  let maxHeight = Number.MAX_SAFE_INTEGER;\r\n  let height = hiddenTextarea.scrollHeight;\r\n  let overflowY: any;\r\n\r\n  if (boxSizing === 'border-box') {\r\n    // border-box: add border, since height = content + padding + border\r\n    height += borderSize;\r\n  } else if (boxSizing === 'content-box') {\r\n    // remove padding, since height = content\r\n    height -= paddingSize;\r\n  }\r\n\r\n  if (minRows !== null || maxRows !== null) {\r\n    // measure height of a textarea with a single row\r\n    hiddenTextarea.value = ' ';\r\n    const singleRowHeight = hiddenTextarea.scrollHeight - paddingSize;\r\n    if (minRows !== null) {\r\n      minHeight = singleRowHeight * minRows;\r\n      if (boxSizing === 'border-box') {\r\n        minHeight = minHeight + paddingSize + borderSize;\r\n      }\r\n      height = Math.max(minHeight, height);\r\n    }\r\n    if (maxRows !== null) {\r\n      maxHeight = singleRowHeight * maxRows;\r\n      if (boxSizing === 'border-box') {\r\n        maxHeight = maxHeight + paddingSize + borderSize;\r\n      }\r\n      overflowY = height > maxHeight ? '' : 'hidden';\r\n      height = Math.min(maxHeight, height);\r\n    }\r\n  }\r\n  return {\r\n    height: `${height}px`,\r\n    minHeight: `${minHeight}px`,\r\n    maxHeight: `${maxHeight}px`,\r\n    overflowY,\r\n    resize: 'none'\r\n  };\r\n}\r\n","/**\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\r\n */\r\n\r\nimport { Platform } from '@angular/cdk/platform';\r\nimport {\r\n  AfterViewInit,\r\n  Directive,\r\n  DoCheck,\r\n  ElementRef,\r\n  Input,\r\n  NgZone,\r\n  OnDestroy\r\n} from '@angular/core';\r\nimport { VtsResizeService } from '@vts-voffice/ng-vts/core/services';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport calculateNodeHeight from './calculateNodeHeight';\r\n\r\nexport interface AutoSizeType {\r\n  minRows?: number;\r\n  maxRows?: number;\r\n}\r\n\r\n@Directive({\r\n  selector: 'textarea[vtsAutosize]',\r\n  exportAs: 'vtsAutosize',\r\n  host: {\r\n    // Textarea elements that have the directive applied should have a single row by default.\r\n    // Browsers normally show two rows by default and therefore this limits the minRows binding.\r\n    rows: '1',\r\n    '(input)': 'noopInputHandler()'\r\n  }\r\n})\r\nexport class VtsAutosizeDirective implements AfterViewInit, OnDestroy, DoCheck {\r\n  private autosize: boolean = false;\r\n  private el: HTMLTextAreaElement | HTMLInputElement = this.elementRef.nativeElement;\r\n  // private cachedLineHeight!: number;\r\n  private previousValue!: string;\r\n  private previousMinRows: number | undefined;\r\n  private minRows: number | undefined;\r\n  private maxRows: number | undefined;\r\n  private destroy$ = new Subject();\r\n\r\n  @Input()\r\n  set vtsAutosize(value: AutoSizeType | string | boolean) {\r\n    const isAutoSizeType = (data: string | boolean | AutoSizeType): data is AutoSizeType => {\r\n      return (\r\n        typeof data !== 'string' && typeof data !== 'boolean' && (!!data.maxRows || !!data.minRows)\r\n      );\r\n    };\r\n    if (typeof value === 'string' || value === true) {\r\n      this.autosize = true;\r\n    } else if (isAutoSizeType(value)) {\r\n      this.autosize = true;\r\n      this.minRows = value.minRows;\r\n      this.maxRows = value.maxRows;\r\n    }\r\n  }\r\n\r\n  resizeToFitContent(force: boolean = false): void {\r\n    const textarea = this.el as HTMLTextAreaElement;\r\n    const value = textarea.value;\r\n\r\n    // Only resize if the value or minRows have changed since these calculations can be expensive.\r\n    if (!force && this.minRows === this.previousMinRows && value === this.previousValue) {\r\n      return;\r\n    }\r\n    const placeholderText = textarea.placeholder;\r\n\r\n    // Reset the textarea height to auto in order to shrink back to its default size.\r\n    // Also temporarily force overflow:hidden, so scroll bars do not interfere with calculations.\r\n    // Long placeholders that are wider than the textarea width may lead to a bigger scrollHeight\r\n    // value. To ensure that the scrollHeight is not bigger than the content, the placeholders\r\n    // need to be removed temporarily.\r\n    textarea.placeholder = '';\r\n    const styles = calculateNodeHeight(this.el, false, this.minRows, this.maxRows);\r\n    Object.entries(styles).forEach(([k, v]) => ((this.el.style as any)[k] = v));\r\n    // Use the scrollHeight to know how large the textarea *would* be if fit its entire value.\r\n    textarea.placeholder = placeholderText;\r\n\r\n    // On Firefox resizing the textarea will prevent it from scrolling to the caret position.\r\n    // We need to re-set the selection in order for it to scroll to the proper position.\r\n    if (typeof requestAnimationFrame !== 'undefined') {\r\n      this.ngZone.runOutsideAngular(() =>\r\n        requestAnimationFrame(() => {\r\n          const { selectionStart, selectionEnd } = textarea;\r\n\r\n          // IE will throw an \"Unspecified error\" if we try to set the selection range after the\r\n          // element has been removed from the DOM. Assert that the directive hasn't been destroyed\r\n          // between the time we requested the animation frame and when it was executed.\r\n          // Also note that we have to assert that the textarea is focused before we set the\r\n          // selection range. Setting the selection range on a non-focused textarea will cause\r\n          // it to receive focus on IE and Edge.\r\n          if (!this.destroy$.isStopped && document.activeElement === textarea) {\r\n            textarea.setSelectionRange(selectionStart, selectionEnd);\r\n          }\r\n        })\r\n      );\r\n    }\r\n\r\n    this.previousValue = value;\r\n    this.previousMinRows = this.minRows;\r\n  }\r\n\r\n  noopInputHandler(): void {\r\n    // no-op handler that ensures we're running change detection on input events.\r\n  }\r\n\r\n  constructor(\r\n    private elementRef: ElementRef,\r\n    private ngZone: NgZone,\r\n    private platform: Platform,\r\n    private resizeService: VtsResizeService\r\n  ) {}\r\n\r\n  ngAfterViewInit(): void {\r\n    if (this.autosize && this.platform.isBrowser) {\r\n      this.resizeToFitContent();\r\n      this.resizeService\r\n        .subscribe()\r\n        .pipe(takeUntil(this.destroy$))\r\n        .subscribe(() => this.resizeToFitContent(true));\r\n    }\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this.destroy$.next();\r\n    this.destroy$.complete();\r\n  }\r\n\r\n  ngDoCheck(): void {\r\n    if (this.autosize && this.platform.isBrowser) {\r\n      this.resizeToFitContent();\r\n    }\r\n  }\r\n}\r\n","/**\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\r\n */\r\nimport {\r\n  AfterContentInit,\r\n  ChangeDetectionStrategy,\r\n  Component,\r\n  ContentChild,\r\n  ElementRef,\r\n  Input,\r\n  isDevMode,\r\n  OnDestroy,\r\n  Renderer2\r\n} from '@angular/core';\r\n\r\nimport { EMPTY, merge, Subject } from 'rxjs';\r\nimport { map, startWith, takeUntil } from 'rxjs/operators';\r\n\r\nimport { isNotNil } from '@vts-voffice/ng-vts/core/util';\r\n\r\nimport { VtsInputDirective } from './input.directive';\r\n\r\n@Component({\r\n  selector: 'vts-textarea-count',\r\n  template: `\r\n    <ng-content select=\"textarea[vts-input]\"></ng-content>\r\n  `,\r\n  host: {\r\n    class: 'vts-input-textarea-show-count'\r\n  },\r\n  changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class VtsTextareaCountComponent implements AfterContentInit, OnDestroy {\r\n  @ContentChild(VtsInputDirective, { static: true })\r\n  vtsInputDirective!: VtsInputDirective;\r\n  @Input() vtsMaxCharacterCount: number = 0;\r\n  @Input() vtsComputeCharacterCount: (v: string) => number = v => v.length;\r\n  @Input() vtsFormatter: (cur: number, max: number) => string = (c, m) =>\r\n    `${c}` + (m > 0 ? `/${m}` : ``);\r\n\r\n  private configChange$ = new Subject();\r\n  private destroy$ = new Subject();\r\n\r\n  constructor(private renderer: Renderer2, private elementRef: ElementRef<HTMLElement>) {}\r\n\r\n  ngAfterContentInit(): void {\r\n    if (!this.vtsInputDirective && isDevMode()) {\r\n      throw new Error('[vts-textarea-count]: Could not find matching textarea[vts-input] child.');\r\n    }\r\n\r\n    if (this.vtsInputDirective.ngControl) {\r\n      const valueChanges = this.vtsInputDirective.ngControl.valueChanges || EMPTY;\r\n      merge(valueChanges, this.configChange$)\r\n        .pipe(\r\n          takeUntil(this.destroy$),\r\n          map(() => this.vtsInputDirective.ngControl.value),\r\n          startWith(this.vtsInputDirective.ngControl.value as string)\r\n        )\r\n        .subscribe(value => {\r\n          this.setDataCount(value);\r\n        });\r\n    }\r\n  }\r\n\r\n  setDataCount(value: string): void {\r\n    const inputValue = isNotNil(value) ? String(value) : '';\r\n    const currentCount = this.vtsComputeCharacterCount(inputValue);\r\n    const dataCount = this.vtsFormatter(currentCount, this.vtsMaxCharacterCount);\r\n    this.renderer.setAttribute(this.elementRef.nativeElement, 'data-count', dataCount);\r\n  }\r\n\r\n  ngOnDestroy(): void {\r\n    this.configChange$.complete();\r\n    this.destroy$.next();\r\n    this.destroy$.complete();\r\n  }\r\n}\r\n","/**\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\r\n */\r\n\r\nimport { BidiModule } from '@angular/cdk/bidi';\r\nimport { PlatformModule } from '@angular/cdk/platform';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { VtsOutletModule } from '@vts-voffice/ng-vts/core/outlet';\r\nimport { VtsIconModule } from '@vts-voffice/ng-vts/icon';\r\n\r\nimport { VtsAutosizeDirective } from './autosize.directive';\r\nimport { VtsInputGroupSlotComponent } from './input-group-slot.component';\r\nimport {\r\n  VtsInputGroupComponent,\r\n  VtsInputGroupWhitSuffixOrPrefixDirective\r\n} from './input-group.component';\r\nimport { VtsInputDirective } from './input.directive';\r\nimport { VtsTextareaCountComponent } from './textarea-count.component';\r\n\r\n@NgModule({\r\n  declarations: [\r\n    VtsTextareaCountComponent,\r\n    VtsInputDirective,\r\n    VtsInputGroupComponent,\r\n    VtsAutosizeDirective,\r\n    VtsInputGroupSlotComponent,\r\n    VtsInputGroupWhitSuffixOrPrefixDirective\r\n  ],\r\n  exports: [\r\n    VtsTextareaCountComponent,\r\n    VtsInputDirective,\r\n    VtsInputGroupComponent,\r\n    VtsAutosizeDirective,\r\n    VtsInputGroupWhitSuffixOrPrefixDirective\r\n  ],\r\n  imports: [BidiModule, CommonModule, VtsIconModule, PlatformModule, VtsOutletModule]\r\n})\r\nexport class VtsInputModule {}\r\n","/**\r\n * Use of this source code is governed by an MIT-style license that can be\r\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\r\n */\r\n\r\nexport * from './input-group.component';\r\nexport * from './input.module';\r\nexport * from './input-group.component';\r\nexport * from './input-group-slot.component';\r\nexport * from './input.directive';\r\nexport * from './autosize.directive';\r\nexport * from './textarea-count.component';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i3","i4.VtsInputGroupSlotComponent"],"mappings":"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"}