{"version":3,"file":"winkong-ng-zorro-antd-extension-trim.mjs","sources":["../../../components/trim/trim.directive.ts","../../../components/trim/trim.module.ts","../../../components/trim/public-api.ts","../../../components/trim/winkong-ng-zorro-antd-extension-trim.ts"],"sourcesContent":["import {\r\n  Directive,\r\n  ElementRef,\r\n  HostListener,\r\n  Inject,\r\n  Input,\r\n  Optional,\r\n  Renderer2,\r\n  forwardRef,\r\n  inject,\r\n} from '@angular/core';\r\n\r\nimport { ɵgetDOM as getDOM } from '@angular/common';\r\nimport {\r\n  COMPOSITION_BUFFER_MODE,\r\n  ControlValueAccessor,\r\n  NG_VALUE_ACCESSOR,\r\n} from '@angular/forms';\r\nimport {\r\n  ExtensionWithConfig,\r\n  NzxConfigKey,\r\n  NzxConfigService,\r\n} from '@winkong/ng-zorro-antd-extension/core/config';\r\n\r\nconst NZ_CONFIG_MODULE_NAME: NzxConfigKey = 'nzxTrim';\r\n\r\n@Directive({\r\n  selector: '[nzxTrim]',\r\n  exportAs: 'NzxTrim',\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: forwardRef(() => NzxTrimDirective),\r\n      multi: true,\r\n    },\r\n  ],\r\n})\r\nexport class NzxTrimDirective implements ControlValueAccessor {\r\n  readonly _nzModuleName: NzxConfigKey = NZ_CONFIG_MODULE_NAME;\r\n  private nzxConfigService: NzxConfigService = inject(NzxConfigService);\r\n  private _composing = false;\r\n\r\n  onChange = (_: any) => {};\r\n  onTouched = () => {};\r\n\r\n  /**\r\n   * - trim 前后过滤空格\r\n   * - trimStart 过滤前空格\r\n   * - trimEnd 过滤后空格\r\n   */\r\n  @ExtensionWithConfig()\r\n  @Input()\r\n  trimType: 'trim' | 'trimStart' | 'trimEnd' = 'trim';\r\n\r\n  constructor(\r\n    private _renderer: Renderer2,\r\n    private _elementRef: ElementRef,\r\n    @Optional()\r\n    @Inject(COMPOSITION_BUFFER_MODE)\r\n    private _compositionMode: boolean\r\n  ) {\r\n    if (this._compositionMode == null) {\r\n      this._compositionMode = !this._isAndroid();\r\n    }\r\n  }\r\n\r\n  @HostListener('input', ['$event.target.value'])\r\n  input(val: string) {\r\n    const value = val[this.trimType]();\r\n    this.setProperty('value', value);\r\n    this._handleInput(value);\r\n  }\r\n\r\n  @HostListener('compositionstart', ['$event'])\r\n  compositionstart(val: string) {\r\n    this._compositionStart();\r\n  }\r\n\r\n  @HostListener('compositionend', ['$event.target.value'])\r\n  compositionend(val: any) {\r\n    this._compositionEnd(val);\r\n  }\r\n\r\n  @HostListener('blur', ['$event.target.value'])\r\n  blur(val: string) {\r\n    this.onTouched();\r\n  }\r\n\r\n  /** @internal */\r\n  _handleInput(value: any): void {\r\n    if (!this._compositionMode || (this._compositionMode && !this._composing)) {\r\n      this.onChange(value);\r\n    }\r\n  }\r\n\r\n  /** @internal */\r\n  _compositionStart(): void {\r\n    this._composing = true;\r\n  }\r\n\r\n  /** @internal */\r\n  _compositionEnd(value: any): void {\r\n    this._composing = false;\r\n    this._compositionMode && this.onChange(value);\r\n  }\r\n\r\n  /** @internal */\r\n  _isAndroid(): boolean {\r\n    const userAgent = getDOM() ? getDOM().getUserAgent() : '';\r\n    return /android (\\d+)/.test(userAgent.toLowerCase());\r\n  }\r\n\r\n  writeValue(value: any): void {\r\n    if (typeof value === 'string') {\r\n      value = value[this.trimType]();\r\n    }\r\n    const normalizedValue = value == null ? '' : value;\r\n    this.setProperty('value', normalizedValue);\r\n  }\r\n\r\n  registerOnChange(fn: any): void {\r\n    this.onChange = fn;\r\n  }\r\n\r\n  registerOnTouched(fn: any): void {\r\n    this.onTouched = fn;\r\n  }\r\n\r\n  setProperty(key: string, value: any): void {\r\n    this._renderer.setProperty(this._elementRef.nativeElement, key, value);\r\n  }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { NzxTrimDirective } from './trim.directive';\r\n\r\n@NgModule({\r\n  imports: [],\r\n  exports: [NzxTrimDirective],\r\n  declarations: [NzxTrimDirective],\r\n})\r\nexport class NzxTrimModule {}\r\n","/**\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://github.com/NG-ZORRO/ng-zorro-antd/blob/master/LICENSE\n */\n\nexport * from './trim.directive';\nexport * from './trim.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["getDOM"],"mappings":"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"}