{"version":3,"file":"webresto-components-address-form.mjs","sources":["../../../projects/components/address-form/address-form.component.ts","../../../projects/components/address-form/address-form.component.html","../../../projects/components/address-form/webresto-components-address-form.ts"],"sourcesContent":["import { AsyncPipe, NgFor, NgIf } from '@angular/common';\nimport {\n  ChangeDetectionStrategy,\n  Component,\n  EventEmitter,\n  Input,\n  OnDestroy,\n  Output,\n  ViewEncapsulation,\n} from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatOptionModule } from '@angular/material/core';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport {\n  ControlErrorMessagePipe,\n  MakeNullable,\n  TrackByIdDirective,\n  TranslatePipe,\n  createSubject,\n  isValue,\n} from '@axrl/common';\nimport { ScanFormType } from '@axrl/ngx-extended-form-builder';\nimport { Address, InputLocation, Street } from '@webresto/ng-gql';\nimport { Subject, debounceTime, distinctUntilChanged, map } from 'rxjs';\n\nexport type AdditionalField = 'floor' | 'doorphone' | 'apartment' | 'entrance'\n\n@Component({\n  selector: 'webresto-address-form',\n  host: {\n    class: 'webresto-address-form',\n  },\n  standalone: true,\n  imports: [\n    ReactiveFormsModule,\n    MatFormFieldModule,\n    MatInputModule,\n    MatButtonModule,\n    MatIconModule,\n    MatOptionModule,\n    MatAutocompleteModule,\n    NgIf,\n    NgFor,\n    AsyncPipe,\n    ControlErrorMessagePipe,\n    TranslatePipe,\n    TrackByIdDirective,\n  ],\n  templateUrl: './address-form.component.html',\n  changeDetection: ChangeDetectionStrategy.OnPush,\n  encapsulation: ViewEncapsulation.None,\n})\nexport class WebrestoAddressFormComponent implements OnDestroy {\n  private _streets: Street[] = [];\n\n  readonly keyPress$ = createSubject<string>('');\n  readonly filteredStreets$ = this.keyPress$.pipe(\n    distinctUntilChanged(),\n    debounceTime(100),\n    map(searchValue => {\n      return this.streets.filter(street =>\n        street.name.toLowerCase().includes(searchValue.toLowerCase()),\n      );\n    }),\n  );\n\n  @Input() set streets(value: Street[] | null) {\n    this._streets = value ?? [];\n  }\n\n  @Input() additionalFields: AdditionalField[] = [];\n\n  get streets(): Street[] {\n    return this._streets;\n  }\n\n  get nameControl(): FormControl<string> | undefined {\n    return isValue(this.form) && 'name' in this.form.controls ? this.form.controls.name : undefined;\n  }\n\n  @Input() form:\n    | ScanFormType<MakeNullable<Partial<InputLocation>>>\n    | ScanFormType<MakeNullable<Partial<Address>>>\n    | undefined;\n\n  @Input() mode: 'edit' | 'order' = 'order';\n\n  @Output() readonly saveForm = new EventEmitter<MakeNullable<Partial<InputLocation>>>();\n\n  @Output() readonly formValueChanges = new EventEmitter<MakeNullable<Partial<InputLocation>>>();\n\n  private formValueChangeSubject = new Subject<void>();\n\n  constructor() {\n    // Подписываемся на изменения и применяем debounceTime\n    this.formValueChangeSubject.pipe(\n      debounceTime(1500)\n    ).subscribe(() => {\n      this.emitFormValueChanges();\n    });\n  }\n\n  emitFormValueChanges(): void {\n    this.formValueChanges.emit(this.form?.value);\n  }\n\n  triggerFormValueChanges(): void {\n    this.formValueChangeSubject.next();\n  }\n\n  optionAutoCompleteSelected(street: Street): void {\n    this.form?.controls?.streetId?.setValue(street.id, {\n      emitEvent: false,\n    });\n    this.form?.controls?.street?.setValue(street.name, {\n      emitEvent: false,\n    });\n    this.emitFormValueChanges();\n  }\n\n  clearIdWhenClearStreet(): void {\n    if (isValue(this.form) && !isValue(this.form.controls?.street?.value)) {\n      this.form?.controls?.streetId?.reset();\n      this.emitFormValueChanges();\n    }\n  }\n\n  save(): void {\n    this.saveForm.emit(this.form?.value);\n  }\n\n  ngOnDestroy(): void {\n    this.keyPress$.complete();\n    this.formValueChangeSubject.complete();\n    this.saveForm.complete();\n    this.formValueChanges.complete();\n  }\n}\n","<div *ngIf=\"form\" [formGroup]=\"form\" class=\"fields\">\n  <mat-form-field\n    color=\"primary\"\n    class=\"fullwidth-field\"\n    *ngIf=\"mode === 'edit' && nameControl\"\n  >\n    <mat-label>{{ \"Name\" | translate }}</mat-label>\n    <input\n      matInput\n      formControlName=\"name\"\n      placeholder=\"Address name (for example: home)\"\n      (change)=\"triggerFormValueChanges()\"\n    />\n    <mat-error> {{ nameControl | controlErrorMessage | translate }} </mat-error>\n  </mat-form-field>\n  <mat-form-field color=\"primary\">\n    <mat-label>{{ \"Street\" | translate }}</mat-label>\n    <input\n      matInput\n      (input)=\"keyPress$.next(form.value.street ?? '')\"\n      formControlName=\"street\"\n      [matAutocomplete]=\"auto\"\n      matAutocompletePosition=\"below\"\n      (change)=\"clearIdWhenClearStreet()\"\n    />\n    <mat-hint *ngIf=\"!form.controls?.street?.value\">\n      {{ \"Select from a list. Start typing to search.\" | translate }}\n      </mat-hint>\n    <mat-icon matIconSuffix color=\"primary\" svgIcon=\"app-geopoint\"></mat-icon>\n    <mat-autocomplete\n      #auto=\"matAutocomplete\"\n      [hideSingleSelectionIndicator]=\"true\"\n      [autoSelectActiveOption]=\"true\"\n      [autoActiveFirstOption]=\"true\"\n    >\n      <mat-option\n        (onSelectionChange)=\"optionAutoCompleteSelected(street)\"\n        *ngFor=\"let street of filteredStreets$ | async; trackById\"\n        [value]=\"street.name\"\n      >\n        {{ street.name }}\n      </mat-option>\n    </mat-autocomplete>\n    <mat-error>\n      {{ form.controls.street | controlErrorMessage | translate }}\n    </mat-error>\n  </mat-form-field>\n\n  <mat-form-field color=\"primary\">\n    <mat-label>{{ \"Home\" | translate }}</mat-label>\n    <input\n      matInput\n      [maxlength]=\"5\"\n      formControlName=\"home\"\n      (input)=\"triggerFormValueChanges()\"\n    />\n    <mat-error>\n      {{ form.controls.home | controlErrorMessage | translate }}\n    </mat-error>\n  </mat-form-field>\n\n  <mat-form-field color=\"primary\" *ngIf=\"additionalFields.includes('entrance')\">\n    <mat-label>{{ \"Entrance\" | translate }}</mat-label>\n    <input\n      matInput\n      formControlName=\"entrance\"\n      (input)=\"triggerFormValueChanges()\"\n    />\n    <mat-error>\n      {{ form.controls.entrance | controlErrorMessage | translate }}\n    </mat-error>\n  </mat-form-field>\n  <mat-form-field color=\"primary\" *ngIf=\"additionalFields.includes('apartment')\">\n    <mat-label>{{ \"Apartment\" | translate }}</mat-label>\n    <input\n      matInput\n      formControlName=\"apartment\"\n      (input)=\"triggerFormValueChanges()\"\n    />\n    <mat-error>\n      {{ form.controls.apartment | controlErrorMessage | translate }}\n    </mat-error>\n  </mat-form-field>\n\n  <mat-form-field color=\"primary\" *ngIf=\"additionalFields.includes('doorphone')\">\n    <mat-label>{{ \"Doorphone\" | translate }}</mat-label>\n    <input\n      matInput\n      formControlName=\"doorphone\"\n      (input)=\"triggerFormValueChanges()\"\n    />\n    <mat-error>\n      {{ form.controls.doorphone | controlErrorMessage | translate }}\n    </mat-error>\n  </mat-form-field>\n  <mat-form-field color=\"primary\" *ngIf=\"additionalFields.includes('floor')\">\n    <mat-label>{{ \"Floor\" | translate }}</mat-label>\n    <input matInput formControlName=\"floor\" (input)=\"triggerFormValueChanges()\" />\n    <mat-error>\n      {{ form.controls.floor | controlErrorMessage | translate }}\n    </mat-error>\n  </mat-form-field>\n  \n  <mat-form-field\n    class=\"fullwidth-field\"\n    color=\"primary\"\n    *ngIf=\"mode === 'edit' && form.contains('comment')\"\n  >\n    <mat-label>{{ \"Comment\" | translate }}</mat-label>\n    <textarea\n      matInput\n      cdkTextareaAutosize\n      formControlName=\"comment\"\n      placeholder=\"For example: entrance from the yard\"\n      (change)=\"triggerFormValueChanges()\"\n    ></textarea>\n    <mat-error>\n      {{ form.controls.comment | controlErrorMessage | translate }}\n    </mat-error>\n  </mat-form-field>\n</div>\n<button\n  *ngIf=\"mode === 'edit'\"\n  [disabled]=\"form?.invalid\"\n  mat-flat-button\n  color=\"primary\"\n  (click)=\"save()\"\n>\n  {{ \"Save\" | translate }}\n</button>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}