{"version":3,"file":"ng-nest-ui-sender.mjs","sources":["../../../../lib/ng-nest/ui/sender/sender.property.ts","../../../../lib/ng-nest/ui/sender/stop.component.ts","../../../../lib/ng-nest/ui/sender/stop.component.html","../../../../lib/ng-nest/ui/sender/sender.component.ts","../../../../lib/ng-nest/ui/sender/sender.component.html","../../../../lib/ng-nest/ui/sender/sender.module.ts","../../../../lib/ng-nest/ui/sender/ng-nest-ui-sender.ts"],"sourcesContent":["import { XFormControlFunction, XFormOption } from '@ng-nest/ui/base-form';\r\nimport { Component, input, output, TemplateRef } from '@angular/core';\r\nimport { XBoolean, XNumber, XToBoolean, XToNumber } from '@ng-nest/ui/core';\r\n\r\n/**\r\n * Sender\r\n * @selector x-sender\r\n * @decorator component\r\n */\r\nexport const XSenderPrefix = 'x-sender';\r\nconst X_SENDER_CONFIG_NAME = 'sender';\r\n\r\n/**\r\n * Sender Property\r\n */\r\n@Component({ selector: `${XSenderPrefix}-property`, template: '' })\r\nexport class XSenderProperty extends XFormControlFunction(X_SENDER_CONFIG_NAME) {\r\n  /**\r\n   * @zh_CN 最小的行数\r\n   * @en_US min number of rows\r\n   */\r\n  readonly minRows = input<number, XNumber>(1, { transform: XToNumber });\r\n  /**\r\n   * @zh_CN 最大的行数\r\n   * @en_US max number of rows\r\n   */\r\n  readonly maxRows = input<number, XNumber>(Number.MAX_SAFE_INTEGER, { transform: XToNumber });\r\n  /**\r\n   * @zh_CN 提交加载中\r\n   * @en_US Loading\r\n   */\r\n  readonly loading = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n  /**\r\n   * @zh_CN 提交类型\r\n   * @en_US Submit type\r\n   */\r\n  readonly submitType = input<XSenderSubmitType>(this.config?.submitType ?? 'enter');\r\n  /**\r\n   * @zh_CN 提交\r\n   * @en_US Submit\r\n   */\r\n  readonly submit = output<Event>();\r\n  /**\r\n   * @zh_CN 暂停提交\r\n   * @en_US Stop\r\n   */\r\n  readonly stop = output<Event>();\r\n  /**\r\n   * @zh_CN 自定义后缀\r\n   * @en_US Custom suffix\r\n   */\r\n  readonly suffix = input<TemplateRef<any>>();\r\n  /**\r\n   * @zh_CN 自定义前缀\r\n   * @en_US Custom prefix\r\n   */\r\n  readonly prefix = input<TemplateRef<any>>();\r\n  /**\r\n   * @zh_CN 自定义头部\r\n   * @en_US Custom header\r\n   */\r\n  readonly header = input<TemplateRef<any>>();\r\n  /**\r\n   * @zh_CN 自定义底部\r\n   * @en_US Custom footer\r\n   */\r\n  readonly footer = input<TemplateRef<any>>();\r\n  /**\r\n   * @zh_CN 输入提示信息\r\n   * @en_US Enter prompt information\r\n   */\r\n  override readonly placeholder = input<string | string[]>('');\r\n  /**\r\n   * @zh_CN 禁用\r\n   * @en_US Disabled\r\n   */\r\n  override readonly disabled = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n  /**\r\n   * @zh_CN 必填\r\n   * @en_US Required\r\n   */\r\n  override readonly required = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n  /**\r\n   * @zh_CN 只读\r\n   * @en_US Readonly\r\n   */\r\n  override readonly readonly = input<boolean, XBoolean>(false, { transform: XToBoolean });\r\n  /**\r\n   * @zh_CN 正则验证规则\r\n   * @en_US Regular verification rules\r\n   */\r\n  override readonly pattern = input<RegExp | null>(null);\r\n  /**\r\n   * @zh_CN 验证不通过提示文字\r\n   * @en_US Verify not pass the prompt text\r\n   */\r\n  override readonly message = input<string>('');\r\n  /**\r\n   * @zh_CN 输入验证函数\r\n   * @en_US Enter the verification function\r\n   */\r\n  override readonly inputValidator = input<(value: any) => boolean>();\r\n}\r\n\r\n/**\r\n * Sender Option\r\n */\r\nexport interface XSenderOption extends XFormOption {\r\n  /**\r\n   * @zh_CN 最小的行数\r\n   * @en_US min number of rows\r\n   */\r\n  minRows?: number;\r\n  /**\r\n   * @zh_CN 最大的行数\r\n   * @en_US max number of rows\r\n   */\r\n  maxRows?: number;\r\n  /**\r\n   * @zh_CN 提交加载中\r\n   * @en_US Loading\r\n   */\r\n  loading?: boolean;\r\n  /**\r\n   * @zh_CN 提交类型\r\n   * @en_US Submit type\r\n   */\r\n  submitType?: XSenderSubmitType;\r\n  /**\r\n   * @zh_CN 提交\r\n   * @en_US Submit\r\n   */\r\n  submit?: (event: Event) => void;\r\n  /**\r\n   * @zh_CN 自定义后缀\r\n   * @en_US Custom suffix\r\n   */\r\n  suffix?: TemplateRef<any>;\r\n  /**\r\n   * @zh_CN 自定义前缀\r\n   * @en_US Custom prefix\r\n   */\r\n  prefix?: TemplateRef<any>;\r\n  /**\r\n   * @zh_CN 自定义头部\r\n   * @en_US Custom header\r\n   */\r\n  header?: TemplateRef<any>;\r\n  /**\r\n   * @zh_CN 自定义底部\r\n   * @en_US Custom footer\r\n   */\r\n  footer?: TemplateRef<any>;\r\n  /**\r\n   * @zh_CN 输入提示信息\r\n   * @en_US Enter prompt information\r\n   */\r\n  placeholder?: string;\r\n  /**\r\n   * @zh_CN 禁用\r\n   * @en_US Disabled\r\n   */\r\n  disabled?: boolean;\r\n  /**\r\n   * @zh_CN 必填\r\n   * @en_US Required\r\n   */\r\n  required?: boolean;\r\n  /**\r\n   * @zh_CN 只读\r\n   * @en_US Readonly\r\n   */\r\n  readonly?: boolean;\r\n  /**\r\n   * @zh_CN 正则验证规则\r\n   * @en_US Regular verification rules\r\n   */\r\n  pattern?: RegExp;\r\n  /**\r\n   * @zh_CN 验证不通过提示文字\r\n   * @en_US Verify not pass the prompt text\r\n   */\r\n  message?: string;\r\n  /**\r\n   * @zh_CN 输入验证函数\r\n   * @en_US Enter the verification function\r\n   */\r\n  inputValidator: (value: any) => boolean;\r\n}\r\n\r\n/**\r\n * @zh_CN 提交类型\r\n * @en_US Submit type\r\n */\r\nexport type XSenderSubmitType = 'enter' | 'shiftEnter';\r\n","import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'x-sender-stop',\r\n  templateUrl: './stop.component.html',\r\n  styleUrls: ['./stop.component.scss'],\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  imports: []\r\n})\r\nexport class XSenderStopComponent {}\r\n","<div class=\"x-sender-stop\">\r\n  <svg color=\"currentColor\" viewBox=\"0 0 1000 1000\" xmlns=\"http://www.w3.org/2000/svg\">\r\n    <rect fill=\"currentColor\" height=\"400\" width=\"400\" rx=\"45\" ry=\"45\" x=\"300\" y=\"300\"></rect>\r\n    <circle cx=\"500\" cy=\"500\" fill=\"none\" r=\"450\" stroke=\"currentColor\" stroke-width=\"100\" opacity=\"0.45\"></circle>\r\n    <circle\r\n      cx=\"500\"\r\n      cy=\"500\"\r\n      fill=\"none\"\r\n      r=\"450\"\r\n      stroke=\"currentColor\"\r\n      stroke-width=\"100\"\r\n      stroke-dasharray=\"600 9999999\"\r\n    >\r\n      <animateTransform\r\n        attributeName=\"transform\"\r\n        dur=\"1s\"\r\n        from=\"0 500 500\"\r\n        repeatCount=\"indefinite\"\r\n        to=\"360 500 500\"\r\n        type=\"rotate\"\r\n      ></animateTransform>\r\n    </circle>\r\n  </svg>\r\n</div>\r\n","import {\r\n  Component,\r\n  ViewEncapsulation,\r\n  ChangeDetectionStrategy,\r\n  viewChild,\r\n  ElementRef,\r\n  computed,\r\n  signal,\r\n  inject\r\n} from '@angular/core';\r\nimport { XSenderProperty } from './sender.property';\r\nimport { XValueAccessor } from '@ng-nest/ui/base-form';\r\nimport { TextFieldModule } from '@angular/cdk/text-field';\r\nimport { XButtonComponent } from '@ng-nest/ui/button';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { NgTemplateOutlet } from '@angular/common';\r\nimport { XSenderStopComponent } from './stop.component';\r\n\r\n@Component({\r\n  selector: 'x-sender',\r\n  templateUrl: './sender.component.html',\r\n  styleUrls: ['./sender.component.scss'],\r\n  encapsulation: ViewEncapsulation.None,\r\n  changeDetection: ChangeDetectionStrategy.OnPush,\r\n  providers: [XValueAccessor(XSenderComponent)],\r\n  imports: [TextFieldModule, FormsModule, NgTemplateOutlet, XButtonComponent, XSenderStopComponent]\r\n})\r\nexport class XSenderComponent extends XSenderProperty {\r\n  elementRef = inject(ElementRef);\r\n  textarea = viewChild.required<ElementRef<HTMLTextAreaElement>>('textarea');\r\n\r\n  focused = signal(false);\r\n  maxRowsComputed = computed(() => {\r\n    const rows = this.maxRows();\r\n    return rows === Number.MAX_SAFE_INTEGER ? undefined : rows;\r\n  });\r\n  placeholderComputed = computed(() => {\r\n    const placeholder = this.placeholder() as string;\r\n    return placeholder;\r\n  });\r\n\r\n  onKeydown(event: KeyboardEvent) {\r\n    if (this.submitType() === 'enter') {\r\n      if (event.key === 'Enter' && !event.shiftKey) {\r\n        event.preventDefault();\r\n        this.onEnterPressed(event);\r\n      }\r\n    } else if (this.submitType() === 'shiftEnter') {\r\n      if (event.key === 'Enter' && event.shiftKey) {\r\n        event.preventDefault();\r\n        this.onEnterPressed(event);\r\n      }\r\n    }\r\n  }\r\n\r\n  onEnterPressed(event: Event) {\r\n    this.submit.emit(event);\r\n  }\r\n\r\n  onStop(event: Event) {\r\n    this.stop.emit(event);\r\n  }\r\n\r\n  inputFocus(type: 'focus' | 'select' | 'before' | 'after' = 'after') {\r\n    this.textarea().nativeElement.focus();\r\n    if (!this.value()) return;\r\n    if (type === 'after') {\r\n      this.textarea().nativeElement.setSelectionRange(this.value().length, this.value().length);\r\n    } else if (type === 'before') {\r\n      this.textarea().nativeElement.setSelectionRange(0, 0);\r\n    } else if (type === 'select') {\r\n      this.textarea().nativeElement.setSelectionRange(0, this.value().length);\r\n    }\r\n  }\r\n\r\n  change(value: any) {\r\n    if (this.onChange) this.onChange(value);\r\n  }\r\n}\r\n","<div\r\n  class=\"x-sender\"\r\n  [class.x-disabled]=\"disabledComputed()\"\r\n  [class.x-required]=\"requiredIsEmpty()\"\r\n  [class.x-invalid]=\"invalid()\"\r\n  [class.x-focused]=\"focused()\"\r\n>\r\n  <div class=\"x-sender-wrapper\">\r\n    @if (header()) {\r\n      <div class=\"x-sender-header\">\r\n        <ng-container *ngTemplateOutlet=\"header()\"></ng-container>\r\n      </div>\r\n    }\r\n    <div class=\"x-sender-content\" (click)=\"inputFocus('after')\">\r\n      @if (prefix()) {\r\n        <div class=\"x-sender-prefix\">\r\n          <ng-container *ngTemplateOutlet=\"prefix()\"></ng-container>\r\n        </div>\r\n      }\r\n      <textarea\r\n        #textarea\r\n        [disabled]=\"disabledComputed()\"\r\n        [required]=\"requiredComputed()\"\r\n        [readOnly]=\"readonly()\"\r\n        [placeholder]=\"placeholderComputed()\"\r\n        [(ngModel)]=\"value\"\r\n        (ngModelChange)=\"change($event)\"\r\n        cdkTextareaAutosize\r\n        [cdkAutosizeMinRows]=\"minRows()\"\r\n        [cdkAutosizeMaxRows]=\"maxRowsComputed()\"\r\n        (keydown)=\"onKeydown($event)\"\r\n        (focus)=\"focused.set(true)\"\r\n        (blur)=\"focused.set(false)\"\r\n        (input)=\"formControlValidator()\"\r\n        (click)=\"$event.stopPropagation()\"\r\n        class=\"x-sender-textarea\"\r\n      ></textarea>\r\n\r\n      @if (suffix()) {\r\n        <div class=\"x-sender-suffix\">\r\n          <ng-container *ngTemplateOutlet=\"suffix()\"></ng-container>\r\n        </div>\r\n      } @else {\r\n        @if (!footer()) {\r\n          <div class=\"x-sender-suffix\">\r\n            @if (!loading()) {\r\n              <x-button\r\n                type=\"primary\"\r\n                circle\r\n                flat\r\n                icon=\"fto-send\"\r\n                [loading]=\"loading()\"\r\n                [disabled]=\"disabledComputed()\"\r\n                (click)=\"onEnterPressed($event)\"\r\n              ></x-button>\r\n            } @else {\r\n              <x-sender-stop (click)=\"onStop($event)\"></x-sender-stop>\r\n            }\r\n          </div>\r\n        }\r\n      }\r\n    </div>\r\n    @if (footer()) {\r\n      <div class=\"x-sender-footer\">\r\n        <ng-container *ngTemplateOutlet=\"footer()\"></ng-container>\r\n      </div>\r\n    }\r\n    @if (requiredIsEmpty() || invalid()) {\r\n      <div class=\"x-border-error x-top-left\"></div>\r\n      <div class=\"x-border-error x-top-right\"></div>\r\n      <div class=\"x-border-error x-bottom-left\"></div>\r\n      <div class=\"x-border-error x-bottom-right\"></div>\r\n    }\r\n  </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { XSenderComponent } from './sender.component';\r\nimport { XSenderStopComponent } from './stop.component';\r\n\r\n@NgModule({\r\n  exports: [XSenderComponent, XSenderStopComponent],\r\n  imports: [XSenderComponent, XSenderStopComponent]\r\n})\r\nexport class XSenderModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}