{"version":3,"file":"magicnov-ngx-dadata.mjs","sources":["../../../projects/ngx-dadata/src/lib/ngx-dadata.service.ts","../../../projects/ngx-dadata/src/lib/dadata-config.ts","../../../projects/ngx-dadata/src/lib/ngx-dadata.component.ts","../../../projects/ngx-dadata/src/lib/ngx-dadata.component.html","../../../projects/ngx-dadata/src/lib/ngx-dadata.module.ts","../../../projects/ngx-dadata/src/public-api.ts","../../../projects/ngx-dadata/src/magicnov-ngx-dadata.ts"],"sourcesContent":["import { Injectable } from \"@angular/core\";\r\nimport { HttpClient, HttpHeaders } from \"@angular/common/http\";\r\nimport { Observable } from \"rxjs\";\r\nimport { DadataResponse } from \"./models/dadata-response\";\r\nimport { DadataConfig } from \"./dadata-config\";\r\n\r\nexport enum DadataType {\r\n  fio = \"fio\",\r\n  address = \"address\",\r\n  party = \"party\",\r\n  bank = \"bank\",\r\n  email = \"email\",\r\n}\r\n\r\n@Injectable({\r\n  providedIn: \"root\",\r\n})\r\nexport class NgxDadataService {\r\n  apiKey = \"\";\r\n\r\n  constructor(private http: HttpClient) {}\r\n\r\n  setApiKey(key: string) {\r\n    this.apiKey = key;\r\n  }\r\n\r\n  // eslint-disable-next-line max-len\r\n  getData(\r\n    value: string,\r\n    type: DadataType = DadataType.address,\r\n    config: DadataConfig\r\n  ): Observable<DadataResponse> {\r\n    const httpOptions = {\r\n      headers: new HttpHeaders({\r\n        Accept: \"application/json\",\r\n        \"Content-Type\": \"application/json\",\r\n        Authorization: \"Token \" + this.apiKey,\r\n      }),\r\n    };\r\n    const body = Object.assign(\r\n      {},\r\n      { query: value },\r\n      { count: config?.limit },\r\n      { location: config?.locations },\r\n      { location_bust: config?.locationsBoost },\r\n      { from_bound: config?.bounds?.fromBound },\r\n      { to_bound: config?.bounds?.toBound }\r\n    );\r\n    return this.http.post<DadataResponse>(\r\n      \"https://suggestions.dadata.ru/suggestions/api/4_1/rs/suggest/\" + type,\r\n      body,\r\n      httpOptions\r\n    );\r\n  }\r\n}\r\n","import { DadataType } from \"./ngx-dadata.service\";\r\n\r\nexport interface Location {\r\n  country?: string;\r\n  country_iso_code?: string;\r\n  region?: string;\r\n  area?: string;\r\n  city?: string;\r\n  street?: string;\r\n  street_type_full?: string;\r\n  settlement_type_full?: string;\r\n  city_district_type_full?: string;\r\n  city_type_full?: string;\r\n  area_type_full?: string;\r\n  region_type_full?: string;\r\n  kladr_id?: string;\r\n  region_fias_id?: string;\r\n  area_fias_id?: string;\r\n  city_fias_id?: string;\r\n  settlement_fias_id?: string;\r\n  street_fias_id?: string;\r\n}\r\n\r\nexport interface Bound {\r\n  value:\r\n    | \"country\"\r\n    | \"region\"\r\n    | \"city\"\r\n    | \"street\"\r\n    | \"settlement\"\r\n    | \"area\"\r\n    | \"house\";\r\n}\r\n\r\nexport interface Bounds {\r\n  fromBound?: Bound;\r\n  toBound?: Bound;\r\n}\r\n\r\nexport interface DadataConfig {\r\n  apiKey: string;\r\n  type?: DadataType;\r\n  delay?: number;\r\n  limit?: number;\r\n  width?: \"auto\" | string;\r\n  minWidth?: \"0\" | string;\r\n  partyAddress?: \"city\" | \"full\";\r\n  locations?: Location[];\r\n  locationsBoost?: Location[];\r\n  bounds?: Bounds;\r\n}\r\n\r\nexport const DadataConfigDefault: DadataConfig = {\r\n  apiKey: \"\",\r\n  type: DadataType.address,\r\n  delay: 500,\r\n  limit: 10,\r\n  width: \"auto\",\r\n  minWidth: \"0\",\r\n  partyAddress: \"city\",\r\n  locations: null,\r\n};\r\n","import {\r\n  Component,\r\n  EventEmitter,\r\n  forwardRef,\r\n  Input,\r\n  OnInit,\r\n  Output,\r\n} from \"@angular/core\";\r\nimport { NgxDadataService } from \"./ngx-dadata.service\";\r\nimport { timer } from \"rxjs\";\r\nimport { debounce } from \"rxjs/operators\";\r\nimport { DadataResponse } from \"./models/dadata-response\";\r\nimport { DadataSuggestion } from \"./models/suggestion\";\r\nimport { DadataConfig, DadataConfigDefault } from \"./dadata-config\";\r\nimport { FormControl, NG_VALUE_ACCESSOR } from \"@angular/forms\";\r\n\r\n@Component({\r\n  selector: \"ngx-dadata\",\r\n  templateUrl: \"./ngx-dadata.component.html\",\r\n  styleUrls: [\"./ngx-dadata.component.css\"],\r\n  providers: [\r\n    {\r\n      provide: NG_VALUE_ACCESSOR,\r\n      useExisting: forwardRef(() => NgxDadataComponent),\r\n      multi: true,\r\n    },\r\n  ],\r\n})\r\nexport class NgxDadataComponent implements OnInit {\r\n  data: DadataSuggestion[] = [];\r\n\r\n  @Input() config: DadataConfig = DadataConfigDefault;\r\n  @Input() control: FormControl = new FormControl();\r\n  @Input() label: string = \"\";\r\n  @Input() placeholder: string = \"\";\r\n  @Output() selected: EventEmitter<DadataSuggestion> =\r\n    new EventEmitter<DadataSuggestion>();\r\n\r\n  constructor(private dataService: NgxDadataService) {}\r\n\r\n  ngOnInit(): void {\r\n    this.dataService.setApiKey(this.config.apiKey);\r\n    this.control.valueChanges\r\n      .pipe(debounce(() => timer(this.config.delay ? this.config.delay : 500)))\r\n      .subscribe((x) => {\r\n        if (x && typeof x === \"string\") {\r\n          this.dataService\r\n            .getData(x, this.config.type, this.config)\r\n            .subscribe((y: DadataResponse) => {\r\n              this.data = y.suggestions;\r\n            });\r\n        } else {\r\n          this.data = [];\r\n        }\r\n      });\r\n  }\r\n\r\n  getItemDisplayName(item: DadataSuggestion) {\r\n    return item ? item.value : \"\";\r\n  }\r\n\r\n  itemSelected(item: DadataSuggestion): void {\r\n    this.selected.emit(item);\r\n  }\r\n}\r\n","<mat-form-field class=\"dadata-field\">\r\n  <mat-label>{{ label }}</mat-label>\r\n  <input\r\n    type=\"text\"\r\n    [placeholder]=\"placeholder\"\r\n    matInput\r\n    [formControl]=\"control\"\r\n    [matAutocomplete]=\"auto\"\r\n  />\r\n  <mat-autocomplete\r\n    #auto=\"matAutocomplete\"\r\n    [displayWith]=\"getItemDisplayName\"\r\n    (optionSelected)=\"itemSelected($event.option.value)\"\r\n  >\r\n    <mat-option *ngFor=\"let item of data\" [value]=\"item\">\r\n      {{ item.value }}\r\n    </mat-option>\r\n  </mat-autocomplete>\r\n</mat-form-field>\r\n","import { NgModule } from \"@angular/core\";\r\nimport { NgxDadataComponent } from \"./ngx-dadata.component\";\r\nimport { CommonModule } from \"@angular/common\";\r\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\r\nimport { MatFormFieldModule } from \"@angular/material/form-field\";\r\nimport { MatAutocompleteModule } from \"@angular/material/autocomplete\";\r\nimport { MatInputModule } from \"@angular/material/input\";\r\n\r\n@NgModule({\r\n  imports: [\r\n    CommonModule,\r\n    FormsModule,\r\n    ReactiveFormsModule,\r\n    MatFormFieldModule,\r\n    MatInputModule,\r\n    MatAutocompleteModule,\r\n  ],\r\n  declarations: [NgxDadataComponent],\r\n  exports: [NgxDadataComponent],\r\n})\r\nexport class NgxDadataModule {}\r\n","/*\r\n * Public API Surface of ngx-dadata\r\n */\r\n\r\nexport * from \"./lib/ngx-dadata.service\";\r\nexport * from \"./lib/ngx-dadata.component\";\r\nexport * from \"./lib/ngx-dadata.module\";\r\nexport * from \"./lib/dadata-config\";\r\nexport * from \"./lib/models/data\";\r\nexport * from \"./lib/models/suggestion\";\r\nexport { DadataType } from \"./lib/ngx-dadata.service\";\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.NgxDadataService"],"mappings":";;;;;;;;;;;;;;;;;;AAMY,IAAA,WAMX;AAND,CAAA,UAAY,UAAU,EAAA;AACpB,IAAA,UAAA,CAAA,KAAA,CAAA,GAAA,KAAW,CAAA;AACX,IAAA,UAAA,CAAA,SAAA,CAAA,GAAA,SAAmB,CAAA;AACnB,IAAA,UAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACf,IAAA,UAAA,CAAA,MAAA,CAAA,GAAA,MAAa,CAAA;AACb,IAAA,UAAA,CAAA,OAAA,CAAA,GAAA,OAAe,CAAA;AACjB,CAAC,EANW,UAAU,KAAV,UAAU,GAMrB,EAAA,CAAA,CAAA,CAAA;MAKY,gBAAgB,CAAA;AAG3B,IAAA,WAAA,CAAoB,IAAgB,EAAA;AAAhB,QAAA,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;AAFpC,QAAA,IAAM,CAAA,MAAA,GAAG,EAAE,CAAC;KAE4B;AAExC,IAAA,SAAS,CAAC,GAAW,EAAA;AACnB,QAAA,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC;KACnB;;IAGD,OAAO,CACL,KAAa,EACb,IAAA,GAAmB,UAAU,CAAC,OAAO,EACrC,MAAoB,EAAA;;AAEpB,QAAA,MAAM,WAAW,GAAG;YAClB,OAAO,EAAE,IAAI,WAAW,CAAC;AACvB,gBAAA,MAAM,EAAE,kBAAkB;AAC1B,gBAAA,cAAc,EAAE,kBAAkB;AAClC,gBAAA,aAAa,EAAE,QAAQ,GAAG,IAAI,CAAC,MAAM;aACtC,CAAC;SACH,CAAC;AACF,QAAA,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CACxB,EAAE,EACF,EAAE,KAAK,EAAE,KAAK,EAAE,EAChB,EAAE,KAAK,EAAE,MAAM,KAAA,IAAA,IAAN,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAN,MAAM,CAAE,KAAK,EAAE,EACxB,EAAE,QAAQ,EAAE,MAAM,KAAA,IAAA,IAAN,MAAM,KAAN,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,MAAM,CAAE,SAAS,EAAE,EAC/B,EAAE,aAAa,EAAE,MAAM,aAAN,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAN,MAAM,CAAE,cAAc,EAAE,EACzC,EAAE,UAAU,EAAE,CAAA,EAAA,GAAA,MAAM,aAAN,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAN,MAAM,CAAE,MAAM,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,SAAS,EAAE,EACzC,EAAE,QAAQ,EAAE,MAAA,MAAM,KAAA,IAAA,IAAN,MAAM,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAN,MAAM,CAAE,MAAM,0CAAE,OAAO,EAAE,CACtC,CAAC;AACF,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,+DAA+D,GAAG,IAAI,EACtE,IAAI,EACJ,WAAW,CACZ,CAAC;KACH;;8GApCU,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAhB,gBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAFf,MAAM,EAAA,CAAA,CAAA;4FAEP,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;iBACnB,CAAA;;;ACoCY,MAAA,mBAAmB,GAAiB;AAC/C,IAAA,MAAM,EAAE,EAAE;IACV,IAAI,EAAE,UAAU,CAAC,OAAO;AACxB,IAAA,KAAK,EAAE,GAAG;AACV,IAAA,KAAK,EAAE,EAAE;AACT,IAAA,KAAK,EAAE,MAAM;AACb,IAAA,QAAQ,EAAE,GAAG;AACb,IAAA,YAAY,EAAE,MAAM;AACpB,IAAA,SAAS,EAAE,IAAI;;;MChCJ,kBAAkB,CAAA;AAU7B,IAAA,WAAA,CAAoB,WAA6B,EAAA;AAA7B,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAkB;AATjD,QAAA,IAAI,CAAA,IAAA,GAAuB,EAAE,CAAC;AAErB,QAAA,IAAM,CAAA,MAAA,GAAiB,mBAAmB,CAAC;AAC3C,QAAA,IAAA,CAAA,OAAO,GAAgB,IAAI,WAAW,EAAE,CAAC;AACzC,QAAA,IAAK,CAAA,KAAA,GAAW,EAAE,CAAC;AACnB,QAAA,IAAW,CAAA,WAAA,GAAW,EAAE,CAAC;AACxB,QAAA,IAAA,CAAA,QAAQ,GAChB,IAAI,YAAY,EAAoB,CAAC;KAEc;IAErD,QAAQ,GAAA;QACN,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAC/C,IAAI,CAAC,OAAO,CAAC,YAAY;aACtB,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,CAAC,CAAC;AACxE,aAAA,SAAS,CAAC,CAAC,CAAC,KAAI;AACf,YAAA,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE;AAC9B,gBAAA,IAAI,CAAC,WAAW;AACb,qBAAA,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC;AACzC,qBAAA,SAAS,CAAC,CAAC,CAAiB,KAAI;AAC/B,oBAAA,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC,WAAW,CAAC;AAC5B,iBAAC,CAAC,CAAC;AACN,aAAA;AAAM,iBAAA;AACL,gBAAA,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;AAChB,aAAA;AACH,SAAC,CAAC,CAAC;KACN;AAED,IAAA,kBAAkB,CAAC,IAAsB,EAAA;QACvC,OAAO,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;KAC/B;AAED,IAAA,YAAY,CAAC,IAAsB,EAAA;AACjC,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC1B;;gHAnCU,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,EARlB,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,KAAA,EAAA,OAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,OAAA,EAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAAA;AACT,QAAA;AACE,YAAA,OAAO,EAAE,iBAAiB;AAC1B,YAAA,WAAW,EAAE,UAAU,CAAC,MAAM,kBAAkB,CAAC;AACjD,YAAA,KAAK,EAAE,IAAI;AACZ,SAAA;KACF,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC1BH,6jBAmBA,EAAA,MAAA,EAAA,CAAA,uCAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,YAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,yHAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,IAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,OAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,mDAAA,EAAA,QAAA,EAAA,CAAA,wBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;4FDSa,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAZ9B,SAAS;YACE,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,EAGX,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,wBAAwB,CAAC;AACjD,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;qBACF,EAAA,QAAA,EAAA,6jBAAA,EAAA,MAAA,EAAA,CAAA,uCAAA,CAAA,EAAA,CAAA;oGAKQ,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,OAAO,EAAA,CAAA;sBAAf,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBACI,QAAQ,EAAA,CAAA;sBAAjB,MAAM;;;MEfI,eAAe,CAAA;;6GAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;8GAAf,eAAe,EAAA,YAAA,EAAA,CAHX,kBAAkB,CAAA,EAAA,OAAA,EAAA,CAP/B,YAAY;QACZ,WAAW;QACX,mBAAmB;QACnB,kBAAkB;QAClB,cAAc;QACd,qBAAqB,aAGb,kBAAkB,CAAA,EAAA,CAAA,CAAA;AAEjB,eAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,EAXjB,OAAA,EAAA,CAAA;YACP,YAAY;YACZ,WAAW;YACX,mBAAmB;YACnB,kBAAkB;YAClB,cAAc;YACd,qBAAqB;SACtB,CAAA,EAAA,CAAA,CAAA;4FAIU,eAAe,EAAA,UAAA,EAAA,CAAA;kBAZ3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,WAAW;wBACX,mBAAmB;wBACnB,kBAAkB;wBAClB,cAAc;wBACd,qBAAqB;AACtB,qBAAA;oBACD,YAAY,EAAE,CAAC,kBAAkB,CAAC;oBAClC,OAAO,EAAE,CAAC,kBAAkB,CAAC;iBAC9B,CAAA;;;ACnBD;;AAEG;;ACFH;;AAEG;;;;"}