@snabcentr/client-ui 1.1.0 → 1.3.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (20) hide show
  1. package/auth/sign-up-form/sc-sign-up-form.component.d.ts +7 -1
  2. package/contragents/new-contragent-form/sc-new-contragent-form.component.d.ts +5 -1
  3. package/delivery-address/add-delivery-address-dialog/sc-add-delivery-address-dialog.component.d.ts +48 -4
  4. package/delivery-address/sc-delivery-address.module.d.ts +2 -1
  5. package/esm2020/auth/sign-up-form/sc-sign-up-form.component.mjs +41 -6
  6. package/esm2020/contacts/new-contact-form/sc-new-contact-form.component.mjs +1 -1
  7. package/esm2020/contragents/add-contragent-dialog/sc-add-contragent-dialog.component.mjs +1 -1
  8. package/esm2020/contragents/new-contragent-bank-account-form/sc-new-contragent-bank-account-form.component.mjs +1 -1
  9. package/esm2020/contragents/new-contragent-form/sc-new-contragent-form.component.mjs +20 -9
  10. package/esm2020/delivery-address/add-delivery-address-dialog/sc-add-delivery-address-dialog.component.mjs +98 -11
  11. package/esm2020/delivery-address/sc-delivery-address.module.mjs +18 -5
  12. package/esm2020/form-fields/suggestion-field/sc-suggestion-field.component.mjs +11 -4
  13. package/esm2020/user/update-user-info-dialog/sc-update-user-info-dialog.component.mjs +1 -1
  14. package/fesm2015/snabcentr-client-ui.mjs +181 -24
  15. package/fesm2015/snabcentr-client-ui.mjs.map +1 -1
  16. package/fesm2020/snabcentr-client-ui.mjs +172 -24
  17. package/fesm2020/snabcentr-client-ui.mjs.map +1 -1
  18. package/form-fields/suggestion-field/sc-suggestion-field.component.d.ts +6 -2
  19. package/package.json +2 -1
  20. package/styles/tailwind/tailwind.scss +21 -0
@@ -8,15 +8,14 @@ import { POLYMORPHEUS_CONTEXT } from '@tinkoff/ng-polymorpheus';
8
8
  import { catchError, filter, map, of, share, startWith, Subject, switchMap, tap } from 'rxjs';
9
9
  import * as i0 from "@angular/core";
10
10
  import * as i1 from "@snabcentr/client-core";
11
- import * as i2 from "@taiga-ui/core";
12
- import * as i3 from "@angular/forms";
13
- import * as i4 from "@taiga-ui/kit";
14
- import * as i5 from "../../form-fields/suggestion-field/sc-suggestion-field.component";
15
- import * as i6 from "@angular/common";
11
+ import * as i2 from "@angular/common";
12
+ import * as i3 from "@taiga-ui/core";
13
+ import * as i4 from "@angular/forms";
14
+ import * as i5 from "@taiga-ui/kit";
15
+ import * as i6 from "../../form-fields/suggestion-field/sc-suggestion-field.component";
16
+ import * as i7 from "angular8-yandex-maps";
16
17
  /**
17
18
  * Компонент добавления адреса доставки.
18
- *
19
- * TODO: TASK[8813] Добавить карту, и поведение выбора адреса доставки через карту. При этом вынести форму в отдельный компонент AddDeliveryAddressForm или submit логику в директиву.
20
19
  */
21
20
  export class ScAddDeliveryAddressDialogComponent {
22
21
  /**
@@ -69,11 +68,27 @@ export class ScAddDeliveryAddressDialogComponent {
69
68
  * {@link Observable} изменения состояния загрузки данных.
70
69
  */
71
70
  this.loading$ = this.request$.pipe(map((data) => data === null));
71
+ /**
72
+ * Группа с полями адресов.
73
+ */
74
+ this.addressControl = new FormControl(null, Validators.required);
75
+ /**
76
+ * Настройки карты.
77
+ */
78
+ this.options = {
79
+ autoFitToViewport: 'always',
80
+ yandexMapDisablePoiInteractivity: false,
81
+ maxZoom: 19,
82
+ };
72
83
  /**
73
84
  * Форма для создания адреса доставки.
74
85
  */
75
86
  this.form = new FormGroup({
76
- address: new FormControl(null, Validators.required),
87
+ address: this.addressControl,
88
+ coordinates: new FormGroup({
89
+ lat: new FormControl(null, Validators.required),
90
+ long: new FormControl(null, Validators.required),
91
+ }),
77
92
  contact: new FormGroup({
78
93
  name: new FormControl(null, Validators.required),
79
94
  phone: new FormControl(null, [Validators.required, Validators.minLength(12)]),
@@ -88,14 +103,86 @@ export class ScAddDeliveryAddressDialogComponent {
88
103
  target: ScUserMetrikaGoalsEnum.userProfileDeliveryAddressAddShow,
89
104
  });
90
105
  }
106
+ /**
107
+ * Обработчик загрузки карты на странице.
108
+ *
109
+ * @param target Экземпляр целевого объекта.
110
+ * @param target.target
111
+ */
112
+ onMapReadyHandle({ target }) {
113
+ this.yaMap = target;
114
+ if (this.addressPlacemark) {
115
+ target.geoObjects.add(this.addressPlacemark);
116
+ const bounds = this.addressPlacemark.geometry?.getBounds();
117
+ if (bounds) {
118
+ target.setBounds(bounds);
119
+ }
120
+ }
121
+ }
122
+ /**
123
+ * Обработчик выбора адреса доставки.
124
+ *
125
+ * @param suggestion Объект подсказки ареса.
126
+ */
127
+ onSelectedAddress(suggestion) {
128
+ if ('addressString' in suggestion && suggestion.geoCoordinates) {
129
+ const coords = [suggestion.geoCoordinates.lat, suggestion.geoCoordinates.long];
130
+ if (!this.addressPlacemark) {
131
+ this.addressPlacemark = this.createPlacemark(coords);
132
+ }
133
+ const bounds = this.addressPlacemark.geometry?.getBounds();
134
+ if (bounds) {
135
+ this.yaMap?.setBounds(bounds);
136
+ this.yaMap?.setZoom(17);
137
+ }
138
+ this.setGeoCoordinates(coords);
139
+ }
140
+ }
141
+ /**
142
+ * Устанавливает {@link addressPlacemark} точку на определённые координаты.
143
+ *
144
+ * @param coords Координаты точки.
145
+ */
146
+ setGeoCoordinates(coords) {
147
+ if (this.addressPlacemark) {
148
+ this.addressPlacemark.geometry?.setCoordinates(coords);
149
+ }
150
+ this.form.patchValue({
151
+ coordinates: {
152
+ lat: coords[0],
153
+ long: coords[1],
154
+ },
155
+ });
156
+ }
157
+ /**
158
+ * Создаёт объект точки и устанавливает события для него.
159
+ *
160
+ * @param coords Координаты точки.
161
+ */
162
+ createPlacemark(coords) {
163
+ const placemark = new ymaps.Placemark(coords, {
164
+ iconCaption: '',
165
+ }, {
166
+ preset: 'islands',
167
+ draggable: true,
168
+ });
169
+ this.yaMap?.geoObjects.add(placemark);
170
+ placemark.events.add('dragend', () => {
171
+ const coord = this.addressPlacemark?.geometry?.getCoordinates();
172
+ if (coord) {
173
+ this.setGeoCoordinates(coord);
174
+ }
175
+ });
176
+ return placemark;
177
+ }
91
178
  }
92
179
  ScAddDeliveryAddressDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScAddDeliveryAddressDialogComponent, deps: [{ token: i1.ScDeliveryAddressService }, { token: i1.ScUserMetrikaService }, { token: POLYMORPHEUS_CONTEXT }, { token: i1.ScConvertersService }], target: i0.ɵɵFactoryTarget.Component });
93
- ScAddDeliveryAddressDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ScAddDeliveryAddressDialogComponent, selector: "sc-add-delivery-address-dialog", ngImport: i0, template: "<form\n [formGroup]=\"form\"\n (ngSubmit)=\"onSubmit$.next()\"\n class=\"flex flex-col gap-3\"\n>\n <label tuiLabel=\"\u0410\u0434\u0440\u0435\u0441 \u0434\u043E\u0441\u0442\u0430\u0432\u043A\u0438\">\n <tui-input formControlName=\"address\">\n \u0410\u0434\u0440\u0435\u0441 \u0434\u043E\u0441\u0442\u0430\u0432\u043A\u0438\n <sc-suggestion-field\n *tuiDataList\n [type]=\"suggestionType.address\"\n ></sc-suggestion-field>\n </tui-input>\n <tui-error\n formControlName=\"address\"\n [error]=\"[] | tuiFieldError | async\"\n ></tui-error>\n </label>\n <div\n formGroupName=\"contact\"\n class=\"flex grow flex-col gap-2\"\n >\n <p class=\"w-full font-bold\">\u041A\u043E\u043D\u0442\u0430\u043A\u0442\u043D\u043E\u0435 \u043B\u0438\u0446\u043E:</p>\n <label tuiLabel=\"\u0424.\u0418.\u041E.\">\n <tui-input formControlName=\"name\">\n \u0424.\u0418.\u041E.\n <sc-suggestion-field\n *tuiDataList\n [type]=\"suggestionType.fio\"\n ></sc-suggestion-field>\n </tui-input>\n <tui-error\n formControlName=\"name\"\n [error]=\"[] | tuiFieldError | async\"\n ></tui-error>\n </label>\n <label tuiLabel=\"\u0422\u0435\u043B\u0435\u0444\u043E\u043D\">\n <tui-input-phone formControlName=\"phone\"> \u0422\u0435\u043B\u0435\u0444\u043E\u043D </tui-input-phone>\n <tui-error\n formControlName=\"phone\"\n [error]=\"[] | tuiFieldError | async\"\n ></tui-error>\n </label>\n <label tuiLabel=\"\u0410\u0434\u0440\u0435\u0441 \u044D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0439 \u043F\u043E\u0447\u0442\u044B\">\n <tui-input formControlName=\"email\">\n <input\n tuiTextfield\n type=\"email\"\n />\n \u0410\u0434\u0440\u0435\u0441 \u044D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0439 \u043F\u043E\u0447\u0442\u044B\n <sc-suggestion-field\n *tuiDataList\n [type]=\"suggestionType.email\"\n ></sc-suggestion-field>\n </tui-input>\n <tui-error\n formControlName=\"email\"\n [error]=\"[] | tuiFieldError | async\"\n ></tui-error>\n </label>\n <label tuiLabel=\"\u0414\u043E\u043B\u0436\u043D\u043E\u0441\u0442\u044C\">\n <tui-input formControlName=\"position\"> \u0414\u043E\u043B\u0436\u043D\u043E\u0441\u0442\u044C </tui-input>\n <tui-error\n formControlName=\"position\"\n [error]=\"[] | tuiFieldError | async\"\n ></tui-error>\n </label>\n </div>\n <div class=\"flex justify-center gap-8\">\n <button\n tuiButton\n (click)=\"context.$implicit.complete()\"\n type=\"button\"\n [icon]=\"isMobile ? 'tuiIconX' : 'tuiIconXLarge'\"\n appearance=\"secondary\"\n >\n \u041E\u0442\u043C\u0435\u043D\u0430\n </button>\n <button\n tuiButton\n [icon]=\"isMobile ? 'tuiIconSave' : 'tuiIconSaveLarge'\"\n [disabled]=\"form.invalid\"\n [showLoader]=\"!!(loading$ | async)\"\n type=\"submit\"\n >\n \u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C\n </button>\n </div>\n</form>\n", dependencies: [{ kind: "component", type: i2.TuiButtonComponent, selector: "button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]", inputs: ["appearance", "disabled", "icon", "iconRight", "shape", "showLoader", "size"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "component", type: i2.TuiLabelComponent, selector: "label[tuiLabel]", inputs: ["tuiLabel", "context"] }, { kind: "component", type: i2.TuiErrorComponent, selector: "tui-error", inputs: ["error"] }, { kind: "component", type: i4.TuiInputComponent, selector: "tui-input" }, { kind: "directive", type: i4.TuiInputDirective, selector: "tui-input" }, { kind: "component", type: i2.TuiTextfieldComponent, selector: "input[tuiTextfield], textarea[tuiTextfield]" }, { kind: "component", type: i4.TuiInputPhoneComponent, selector: "tui-input-phone", inputs: ["countryCode", "phoneMaskAfterCountryCode", "allowText", "search"], outputs: ["searchChange"] }, { kind: "directive", type: i4.TuiInputPhoneDirective, selector: "tui-input-phone" }, { kind: "component", type: i5.ScSuggestionFieldComponent, selector: "sc-suggestion-field", inputs: ["type"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TuiFieldErrorPipe, name: "tuiFieldError" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
180
+ ScAddDeliveryAddressDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ScAddDeliveryAddressDialogComponent, selector: "sc-add-delivery-address-dialog", ngImport: i0, template: "<div class=\"relative flex flex-col gap-3 md:flex-row\">\n <form\n [formGroup]=\"form\"\n (ngSubmit)=\"onSubmit$.next()\"\n class=\"flex w-full flex-col gap-3\"\n >\n <label tuiLabel=\"\u0410\u0434\u0440\u0435\u0441 \u0434\u043E\u0441\u0442\u0430\u0432\u043A\u0438\">\n <tui-input formControlName=\"address\">\n \u0410\u0434\u0440\u0435\u0441 \u0434\u043E\u0441\u0442\u0430\u0432\u043A\u0438\n <sc-suggestion-field\n *tuiDataList\n [type]=\"suggestionType.address\"\n (selectedClick)=\"onSelectedAddress($event)\"\n ></sc-suggestion-field>\n <input\n tuiTextfield\n autocomplete=\"off\"\n />\n </tui-input>\n <tui-error\n formControlName=\"address\"\n [error]=\"[] | tuiFieldError | async\"\n ></tui-error>\n </label>\n <div\n formGroupName=\"contact\"\n class=\"flex grow flex-col gap-2\"\n >\n <p class=\"w-full font-bold\">\u041A\u043E\u043D\u0442\u0430\u043A\u0442\u043D\u043E\u0435 \u043B\u0438\u0446\u043E:</p>\n <label tuiLabel=\"\u0424.\u0418.\u041E.\">\n <tui-input formControlName=\"name\">\n \u0424.\u0418.\u041E.\n <sc-suggestion-field\n *tuiDataList\n [type]=\"suggestionType.fio\"\n ></sc-suggestion-field>\n </tui-input>\n <tui-error\n formControlName=\"name\"\n [error]=\"[] | tuiFieldError | async\"\n ></tui-error>\n </label>\n <label tuiLabel=\"\u0422\u0435\u043B\u0435\u0444\u043E\u043D\">\n <tui-input-phone formControlName=\"phone\"> \u0422\u0435\u043B\u0435\u0444\u043E\u043D </tui-input-phone>\n <tui-error\n formControlName=\"phone\"\n [error]=\"[] | tuiFieldError | async\"\n ></tui-error>\n </label>\n <label tuiLabel=\"\u0410\u0434\u0440\u0435\u0441 \u044D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0439 \u043F\u043E\u0447\u0442\u044B\">\n <tui-input formControlName=\"email\">\n <input\n tuiTextfield\n type=\"email\"\n />\n \u0410\u0434\u0440\u0435\u0441 \u044D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0439 \u043F\u043E\u0447\u0442\u044B\n <sc-suggestion-field\n *tuiDataList\n [type]=\"suggestionType.email\"\n ></sc-suggestion-field>\n </tui-input>\n <tui-error\n formControlName=\"email\"\n [error]=\"[] | tuiFieldError | async\"\n ></tui-error>\n </label>\n <label tuiLabel=\"\u0414\u043E\u043B\u0436\u043D\u043E\u0441\u0442\u044C\">\n <tui-input formControlName=\"position\"> \u0414\u043E\u043B\u0436\u043D\u043E\u0441\u0442\u044C </tui-input>\n <tui-error\n formControlName=\"position\"\n [error]=\"[] | tuiFieldError | async\"\n ></tui-error>\n </label>\n </div>\n <div class=\"flex justify-center gap-8\">\n <button\n tuiButton\n (click)=\"context.$implicit.complete()\"\n type=\"button\"\n [icon]=\"isMobile ? 'tuiIconX' : 'tuiIconXLarge'\"\n appearance=\"secondary\"\n >\n \u041E\u0442\u043C\u0435\u043D\u0430\n </button>\n <button\n tuiButton\n [icon]=\"isMobile ? 'tuiIconSave' : 'tuiIconSaveLarge'\"\n [disabled]=\"form.invalid\"\n [showLoader]=\"!!(loading$ | async)\"\n type=\"submit\"\n >\n \u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C\n </button>\n </div>\n </form>\n\n <div\n class=\"absolute -z-10 flex size-full md:w-1/2\"\n [ngClass]=\"{ 'z-0 relative': addressPlacemark }\"\n >\n <div class=\"flex-auto\">\n <ya-map\n [zoom]=\"11\"\n [state]=\"{ controls: [] }\"\n (ready)=\"onMapReadyHandle($event)\"\n [options]=\"options\"\n ></ya-map>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i3.TuiButtonComponent, selector: "button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]", inputs: ["appearance", "disabled", "icon", "iconRight", "shape", "showLoader", "size"] }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i4.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "component", type: i3.TuiLabelComponent, selector: "label[tuiLabel]", inputs: ["tuiLabel", "context"] }, { kind: "component", type: i3.TuiErrorComponent, selector: "tui-error", inputs: ["error"] }, { kind: "component", type: i5.TuiInputComponent, selector: "tui-input" }, { kind: "directive", type: i5.TuiInputDirective, selector: "tui-input" }, { kind: "component", type: i3.TuiTextfieldComponent, selector: "input[tuiTextfield], textarea[tuiTextfield]" }, { kind: "component", type: i5.TuiInputPhoneComponent, selector: "tui-input-phone", inputs: ["countryCode", "phoneMaskAfterCountryCode", "allowText", "search"], outputs: ["searchChange"] }, { kind: "directive", type: i5.TuiInputPhoneDirective, selector: "tui-input-phone" }, { kind: "component", type: i6.ScSuggestionFieldComponent, selector: "sc-suggestion-field", inputs: ["type"], outputs: ["selectedClick"] }, { kind: "directive", type: i3.TuiDataListDirective, selector: "ng-template[tuiDataList]" }, { kind: "component", type: i7.YaMapComponent, selector: "ya-map", inputs: ["center", "zoom", "state", "options"], outputs: ["ready", "actionbegin", "actionbreak", "actionend", "actiontick", "actiontickcomplete", "balloonclose", "balloonopen", "boundschange", "yaclick", "yacontextmenu", "yadblclick", "destroy", "hintclose", "hintopen", "marginchange", "yamousedown", "yamouseenter", "yamouseleave", "yamousemove", "yamouseup", "multitouchend", "multitouchmove", "multitouchstart", "optionschange", "sizechange", "typechange", "yawheel"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i5.TuiFieldErrorPipe, name: "tuiFieldError" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
94
181
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScAddDeliveryAddressDialogComponent, decorators: [{
95
182
  type: Component,
96
- args: [{ selector: 'sc-add-delivery-address-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<form\n [formGroup]=\"form\"\n (ngSubmit)=\"onSubmit$.next()\"\n class=\"flex flex-col gap-3\"\n>\n <label tuiLabel=\"\u0410\u0434\u0440\u0435\u0441 \u0434\u043E\u0441\u0442\u0430\u0432\u043A\u0438\">\n <tui-input formControlName=\"address\">\n \u0410\u0434\u0440\u0435\u0441 \u0434\u043E\u0441\u0442\u0430\u0432\u043A\u0438\n <sc-suggestion-field\n *tuiDataList\n [type]=\"suggestionType.address\"\n ></sc-suggestion-field>\n </tui-input>\n <tui-error\n formControlName=\"address\"\n [error]=\"[] | tuiFieldError | async\"\n ></tui-error>\n </label>\n <div\n formGroupName=\"contact\"\n class=\"flex grow flex-col gap-2\"\n >\n <p class=\"w-full font-bold\">\u041A\u043E\u043D\u0442\u0430\u043A\u0442\u043D\u043E\u0435 \u043B\u0438\u0446\u043E:</p>\n <label tuiLabel=\"\u0424.\u0418.\u041E.\">\n <tui-input formControlName=\"name\">\n \u0424.\u0418.\u041E.\n <sc-suggestion-field\n *tuiDataList\n [type]=\"suggestionType.fio\"\n ></sc-suggestion-field>\n </tui-input>\n <tui-error\n formControlName=\"name\"\n [error]=\"[] | tuiFieldError | async\"\n ></tui-error>\n </label>\n <label tuiLabel=\"\u0422\u0435\u043B\u0435\u0444\u043E\u043D\">\n <tui-input-phone formControlName=\"phone\"> \u0422\u0435\u043B\u0435\u0444\u043E\u043D </tui-input-phone>\n <tui-error\n formControlName=\"phone\"\n [error]=\"[] | tuiFieldError | async\"\n ></tui-error>\n </label>\n <label tuiLabel=\"\u0410\u0434\u0440\u0435\u0441 \u044D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0439 \u043F\u043E\u0447\u0442\u044B\">\n <tui-input formControlName=\"email\">\n <input\n tuiTextfield\n type=\"email\"\n />\n \u0410\u0434\u0440\u0435\u0441 \u044D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0439 \u043F\u043E\u0447\u0442\u044B\n <sc-suggestion-field\n *tuiDataList\n [type]=\"suggestionType.email\"\n ></sc-suggestion-field>\n </tui-input>\n <tui-error\n formControlName=\"email\"\n [error]=\"[] | tuiFieldError | async\"\n ></tui-error>\n </label>\n <label tuiLabel=\"\u0414\u043E\u043B\u0436\u043D\u043E\u0441\u0442\u044C\">\n <tui-input formControlName=\"position\"> \u0414\u043E\u043B\u0436\u043D\u043E\u0441\u0442\u044C </tui-input>\n <tui-error\n formControlName=\"position\"\n [error]=\"[] | tuiFieldError | async\"\n ></tui-error>\n </label>\n </div>\n <div class=\"flex justify-center gap-8\">\n <button\n tuiButton\n (click)=\"context.$implicit.complete()\"\n type=\"button\"\n [icon]=\"isMobile ? 'tuiIconX' : 'tuiIconXLarge'\"\n appearance=\"secondary\"\n >\n \u041E\u0442\u043C\u0435\u043D\u0430\n </button>\n <button\n tuiButton\n [icon]=\"isMobile ? 'tuiIconSave' : 'tuiIconSaveLarge'\"\n [disabled]=\"form.invalid\"\n [showLoader]=\"!!(loading$ | async)\"\n type=\"submit\"\n >\n \u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C\n </button>\n </div>\n</form>\n" }]
183
+ args: [{ selector: 'sc-add-delivery-address-dialog', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"relative flex flex-col gap-3 md:flex-row\">\n <form\n [formGroup]=\"form\"\n (ngSubmit)=\"onSubmit$.next()\"\n class=\"flex w-full flex-col gap-3\"\n >\n <label tuiLabel=\"\u0410\u0434\u0440\u0435\u0441 \u0434\u043E\u0441\u0442\u0430\u0432\u043A\u0438\">\n <tui-input formControlName=\"address\">\n \u0410\u0434\u0440\u0435\u0441 \u0434\u043E\u0441\u0442\u0430\u0432\u043A\u0438\n <sc-suggestion-field\n *tuiDataList\n [type]=\"suggestionType.address\"\n (selectedClick)=\"onSelectedAddress($event)\"\n ></sc-suggestion-field>\n <input\n tuiTextfield\n autocomplete=\"off\"\n />\n </tui-input>\n <tui-error\n formControlName=\"address\"\n [error]=\"[] | tuiFieldError | async\"\n ></tui-error>\n </label>\n <div\n formGroupName=\"contact\"\n class=\"flex grow flex-col gap-2\"\n >\n <p class=\"w-full font-bold\">\u041A\u043E\u043D\u0442\u0430\u043A\u0442\u043D\u043E\u0435 \u043B\u0438\u0446\u043E:</p>\n <label tuiLabel=\"\u0424.\u0418.\u041E.\">\n <tui-input formControlName=\"name\">\n \u0424.\u0418.\u041E.\n <sc-suggestion-field\n *tuiDataList\n [type]=\"suggestionType.fio\"\n ></sc-suggestion-field>\n </tui-input>\n <tui-error\n formControlName=\"name\"\n [error]=\"[] | tuiFieldError | async\"\n ></tui-error>\n </label>\n <label tuiLabel=\"\u0422\u0435\u043B\u0435\u0444\u043E\u043D\">\n <tui-input-phone formControlName=\"phone\"> \u0422\u0435\u043B\u0435\u0444\u043E\u043D </tui-input-phone>\n <tui-error\n formControlName=\"phone\"\n [error]=\"[] | tuiFieldError | async\"\n ></tui-error>\n </label>\n <label tuiLabel=\"\u0410\u0434\u0440\u0435\u0441 \u044D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0439 \u043F\u043E\u0447\u0442\u044B\">\n <tui-input formControlName=\"email\">\n <input\n tuiTextfield\n type=\"email\"\n />\n \u0410\u0434\u0440\u0435\u0441 \u044D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0439 \u043F\u043E\u0447\u0442\u044B\n <sc-suggestion-field\n *tuiDataList\n [type]=\"suggestionType.email\"\n ></sc-suggestion-field>\n </tui-input>\n <tui-error\n formControlName=\"email\"\n [error]=\"[] | tuiFieldError | async\"\n ></tui-error>\n </label>\n <label tuiLabel=\"\u0414\u043E\u043B\u0436\u043D\u043E\u0441\u0442\u044C\">\n <tui-input formControlName=\"position\"> \u0414\u043E\u043B\u0436\u043D\u043E\u0441\u0442\u044C </tui-input>\n <tui-error\n formControlName=\"position\"\n [error]=\"[] | tuiFieldError | async\"\n ></tui-error>\n </label>\n </div>\n <div class=\"flex justify-center gap-8\">\n <button\n tuiButton\n (click)=\"context.$implicit.complete()\"\n type=\"button\"\n [icon]=\"isMobile ? 'tuiIconX' : 'tuiIconXLarge'\"\n appearance=\"secondary\"\n >\n \u041E\u0442\u043C\u0435\u043D\u0430\n </button>\n <button\n tuiButton\n [icon]=\"isMobile ? 'tuiIconSave' : 'tuiIconSaveLarge'\"\n [disabled]=\"form.invalid\"\n [showLoader]=\"!!(loading$ | async)\"\n type=\"submit\"\n >\n \u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C\n </button>\n </div>\n </form>\n\n <div\n class=\"absolute -z-10 flex size-full md:w-1/2\"\n [ngClass]=\"{ 'z-0 relative': addressPlacemark }\"\n >\n <div class=\"flex-auto\">\n <ya-map\n [zoom]=\"11\"\n [state]=\"{ controls: [] }\"\n (ready)=\"onMapReadyHandle($event)\"\n [options]=\"options\"\n ></ya-map>\n </div>\n </div>\n</div>\n" }]
97
184
  }], ctorParameters: function () { return [{ type: i1.ScDeliveryAddressService }, { type: i1.ScUserMetrikaService }, { type: undefined, decorators: [{
98
185
  type: Inject,
99
186
  args: [POLYMORPHEUS_CONTEXT]
100
187
  }] }, { type: i1.ScConvertersService }]; } });
101
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtYWRkLWRlbGl2ZXJ5LWFkZHJlc3MtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9kZWxpdmVyeS1hZGRyZXNzL2FkZC1kZWxpdmVyeS1hZGRyZXNzLWRpYWxvZy9zYy1hZGQtZGVsaXZlcnktYWRkcmVzcy1kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL2RlbGl2ZXJ5LWFkZHJlc3MvYWRkLWRlbGl2ZXJ5LWFkZHJlc3MtZGlhbG9nL3NjLWFkZC1kZWxpdmVyeS1hZGRyZXNzLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxrRkFBa0Y7QUFFbEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFpQix1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBS0gsaUJBQWlCLEVBQ2pCLHNCQUFzQixHQUV6QixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxhQUFhLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFaEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFjLEVBQUUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7OztBQUUxRzs7OztHQUlHO0FBTUgsTUFBTSxPQUFPLG1DQUFtQztJQXFFNUM7Ozs7Ozs7T0FPRztJQUNILFlBQ3FCLHNCQUFnRCxFQUNoRCxrQkFBd0MsRUFDWCxPQUFxQyxFQUNsRSxpQkFBc0M7UUFIdEMsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUEwQjtRQUNoRCx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQXNCO1FBQ1gsWUFBTyxHQUFQLE9BQU8sQ0FBOEI7UUFDbEUsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFxQjtRQWhGM0Q7O1dBRUc7UUFDYSxhQUFRLEdBQVksTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRTFEOztXQUVHO1FBQ2EsbUJBQWMsR0FBNkIsaUJBQWlCLENBQUM7UUFFN0U7O1dBRUc7UUFDYSxjQUFTLEdBQWtCLElBQUksT0FBTyxFQUFRLENBQUM7UUFFL0Q7O1dBRUc7UUFDYyxhQUFRLEdBQTBDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUNsRixHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ0wsa0NBQWtDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xELENBQUMsQ0FBQyxFQUNGLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUM3QixHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUF1QyxDQUFDLEVBQzVELFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQ2hCLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsbUJBQW1CLENBQWlDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUN0SSxHQUFHLENBQUMsR0FBRyxFQUFFO1lBQ0wsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNoQyxDQUFDLENBQUMsRUFDRixVQUFVLENBQUMsQ0FBQyxLQUFjLEVBQUUsRUFBRTtZQUMxQixJQUFJLEtBQUssWUFBWSxpQkFBaUIsRUFBRTtnQkFDcEMsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxLQUFLLENBQUMsS0FBeUIsQ0FBQztnQkFFNUQsSUFBSSxNQUFNLEVBQUU7b0JBQ1IsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTt3QkFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsU0FBUyxDQUFDLEVBQUUsY0FBYyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7b0JBQ25FLENBQUMsQ0FBQyxDQUFDO2lCQUNOO3FCQUFNLElBQUksT0FBTyxFQUFFO29CQUNoQixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLGNBQWMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQztpQkFDdEQ7YUFDSjtZQUVELE9BQU8sRUFBRSxDQUFDLEVBQXdCLENBQUMsQ0FBQztRQUN4QyxDQUFDLENBQUMsRUFDRixTQUFTLENBQUMsSUFBSSxDQUFDLENBQ2xCLENBQ0osRUFDRCxLQUFLLEVBQUUsQ0FDVixDQUFDO1FBRUY7O1dBRUc7UUFDYSxhQUFRLEdBQXdCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7UUFFakc7O1dBRUc7UUFDYSxTQUFJLEdBQUcsSUFBSSxTQUFTLENBQUM7WUFDakMsT0FBTyxFQUFFLElBQUksV0FBVyxDQUFnQixJQUFJLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUNsRSxPQUFPLEVBQUUsSUFBSSxTQUFTLENBQUM7Z0JBQ25CLElBQUksRUFBRSxJQUFJLFdBQVcsQ0FBZ0IsSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7Z0JBQy9ELEtBQUssRUFBRSxJQUFJLFdBQVcsQ0FBZ0IsSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQzVGLEtBQUssRUFBRSxJQUFJLFdBQVcsQ0FBZ0IsSUFBSSxFQUFFLFVBQVUsQ0FBQyxLQUFLLENBQUM7Z0JBQzdELFFBQVEsRUFBRSxJQUFJLFdBQVcsQ0FBZ0IsSUFBSSxDQUFDO2FBQ2pELENBQUM7U0FDTCxDQUFDLENBQUM7SUFlQSxDQUFDO0lBRUosa0JBQWtCO0lBQ1gsZUFBZTtRQUNsQixJQUFJLENBQUMsa0JBQWtCLENBQUMsb0JBQW9CLENBQUM7WUFDekMsTUFBTSxFQUFFLHNCQUFzQixDQUFDLGlDQUFpQztTQUNuRSxDQUFDLENBQUM7SUFDUCxDQUFDOztnSUF6RlEsbUNBQW1DLDhGQWdGaEMsb0JBQW9CO29IQWhGdkIsbUNBQW1DLHNFQzlCaEQsa21IQXlGQTsyRkQzRGEsbUNBQW1DO2tCQUwvQyxTQUFTOytCQUNJLGdDQUFnQyxtQkFFekIsdUJBQXVCLENBQUMsTUFBTTs7MEJBa0YxQyxNQUFNOzJCQUFDLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC91bmJvdW5kLW1ldGhvZCxsb2Rhc2gvcHJlZmVyLWxvZGFzaC1tZXRob2QgKi9cblxuaW1wb3J0IHsgSHR0cEVycm9yUmVzcG9uc2UgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbmplY3QsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgU2NDb252ZXJ0ZXJzU2VydmljZSxcbiAgICBTY0RlbGl2ZXJ5QWRkcmVzc1NlcnZpY2UsXG4gICAgU2NJRGVsaXZlcnlBZGRyZXNzLFxuICAgIFNjSURlbGl2ZXJ5QWRkcmVzc09uRGF0YUNyZWF0ZSxcbiAgICBTY0lTdWdnZXN0aW9uVHlwZSxcbiAgICBTY1VzZXJNZXRyaWthR29hbHNFbnVtLFxuICAgIFNjVXNlck1ldHJpa2FTZXJ2aWNlLFxufSBmcm9tICdAc25hYmNlbnRyL2NsaWVudC1jb3JlJztcbmltcG9ydCB7IFRVSV9JU19NT0JJTEUsIHR1aU1hcmtDb250cm9sQXNUb3VjaGVkQW5kVmFsaWRhdGUgfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7IFR1aURpYWxvZ0NvbnRleHQgfSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQgeyBQT0xZTU9SUEhFVVNfQ09OVEVYVCB9IGZyb20gJ0B0aW5rb2ZmL25nLXBvbHltb3JwaGV1cyc7XG5pbXBvcnQgeyBBcGlFcnJvclJlc3BvbnNlIH0gZnJvbSAncHJvamVjdHMvY2xpZW50LXVpL2F1dGgnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZmlsdGVyLCBtYXAsIE9ic2VydmFibGUsIG9mLCBzaGFyZSwgc3RhcnRXaXRoLCBTdWJqZWN0LCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMnO1xuXG4vKipcbiAqINCa0L7QvNC/0L7QvdC10L3RgiDQtNC+0LHQsNCy0LvQtdC90LjRjyDQsNC00YDQtdGB0LAg0LTQvtGB0YLQsNCy0LrQuC5cbiAqXG4gKiBUT0RPOiBUQVNLWzg4MTNdINCU0L7QsdCw0LLQuNGC0Ywg0LrQsNGA0YLRgywg0Lgg0L/QvtCy0LXQtNC10L3QuNC1INCy0YvQsdC+0YDQsCDQsNC00YDQtdGB0LAg0LTQvtGB0YLQsNCy0LrQuCDRh9C10YDQtdC3INC60LDRgNGC0YMuINCf0YDQuCDRjdGC0L7QvCDQstGL0L3QtdGB0YLQuCDRhNC+0YDQvNGDINCyINC+0YLQtNC10LvRjNC90YvQuSDQutC+0LzQv9C+0L3QtdC90YIgQWRkRGVsaXZlcnlBZGRyZXNzRm9ybSDQuNC70Lggc3VibWl0INC70L7Qs9C40LrRgyDQsiDQtNC40YDQtdC60YLQuNCy0YMuXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnc2MtYWRkLWRlbGl2ZXJ5LWFkZHJlc3MtZGlhbG9nJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2MtYWRkLWRlbGl2ZXJ5LWFkZHJlc3MtZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU2NBZGREZWxpdmVyeUFkZHJlc3NEaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgICAvKipcbiAgICAgKiDQn9GA0LjQt9C90LDQuiDRgtC+0LPQviwg0L7RgtC+0LHRgNCw0LbQsNC10YLRgdGPINGN0YLQvtGCINC60L7QvNC/0L7QvdC10L3RgiDQvdCwINC80L7QsdC40LvRjNC90L7QvCDRg9GB0YLRgNC+0LnRgdGC0LLQtSDQuNC70Lgg0L3QtdGCLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBpc01vYmlsZTogYm9vbGVhbiA9IGluamVjdChUVUlfSVNfTU9CSUxFKTtcblxuICAgIC8qKlxuICAgICAqINCf0LXRgNC10YfQuNGB0LvQtdC90LjQtSDRgtC40L/QvtCyINC/0L7QtNGB0LrQsNC30L7Qui5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgc3VnZ2VzdGlvblR5cGU6IHR5cGVvZiBTY0lTdWdnZXN0aW9uVHlwZSA9IFNjSVN1Z2dlc3Rpb25UeXBlO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIFN1YmplY3R9INGB0L7QsdGL0YLQuNGPINC+0YLQv9GA0LDQstC60Lgg0YTQvtGA0LzRiy5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgb25TdWJtaXQkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBPYnNlcnZhYmxlfSDQt9Cw0L/RgNC+0YHQsCDQtNCw0L3QvdGL0YUg0LTQvtCx0LDQstC70LXQvdC40Y8g0LDQtNGA0LXRgSDQtNC+0YHRgtCw0LLQutC4LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVxdWVzdCQ6IE9ic2VydmFibGU8U2NJRGVsaXZlcnlBZGRyZXNzIHwgbnVsbD4gPSB0aGlzLm9uU3VibWl0JC5waXBlKFxuICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgICAgdHVpTWFya0NvbnRyb2xBc1RvdWNoZWRBbmRWYWxpZGF0ZSh0aGlzLmZvcm0pO1xuICAgICAgICB9KSxcbiAgICAgICAgZmlsdGVyKCgpID0+IHRoaXMuZm9ybS52YWxpZCksXG4gICAgICAgIG1hcCgoKSA9PiB0aGlzLmZvcm0udmFsdWUgYXMgU2NJRGVsaXZlcnlBZGRyZXNzT25EYXRhQ3JlYXRlKSxcbiAgICAgICAgc3dpdGNoTWFwKCh2YWx1ZSkgPT5cbiAgICAgICAgICAgIHRoaXMuZGVsaXZlcnlBZGRyZXNzU2VydmljZS5jcmVhdGVEZWxpdmVyeUFkZHJlc3MkKHRoaXMuY29udmVydGVyc1NlcnZpY2UucmVtb3ZlTnVsbFJlY3Vyc2l2ZTxTY0lEZWxpdmVyeUFkZHJlc3NPbkRhdGFDcmVhdGU+KHZhbHVlKSkucGlwZShcbiAgICAgICAgICAgICAgICB0YXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRleHQuY29tcGxldGVXaXRoKCk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3I6IHVua25vd24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHsgZXJyb3JzLCBtZXNzYWdlIH0gPSBlcnJvci5lcnJvciBhcyBBcGlFcnJvclJlc3BvbnNlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3JzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgT2JqZWN0LmtleXMoZXJyb3JzKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtLmdldChrZXkpPy5zZXRFcnJvcnMoeyBzZXJ2ZXJSZXNwb25zZTogZXJyb3JzW2tleV0gfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKG1lc3NhZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm0uc2V0RXJyb3JzKHsgc2VydmVyUmVzcG9uc2U6IFttZXNzYWdlXSB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvZih7fSBhcyBTY0lEZWxpdmVyeUFkZHJlc3MpO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIHN0YXJ0V2l0aChudWxsKVxuICAgICAgICAgICAgKVxuICAgICAgICApLFxuICAgICAgICBzaGFyZSgpXG4gICAgKTtcblxuICAgIC8qKlxuICAgICAqIHtAbGluayBPYnNlcnZhYmxlfSDQuNC30LzQtdC90LXQvdC40Y8g0YHQvtGB0YLQvtGP0L3QuNGPINC30LDQs9GA0YPQt9C60Lgg0LTQsNC90L3Ri9GFLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBsb2FkaW5nJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMucmVxdWVzdCQucGlwZShtYXAoKGRhdGEpID0+IGRhdGEgPT09IG51bGwpKTtcblxuICAgIC8qKlxuICAgICAqINCk0L7RgNC80LAg0LTQu9GPINGB0L7Qt9C00LDQvdC40Y8g0LDQtNGA0LXRgdCwINC00L7RgdGC0LDQstC60LguXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGZvcm0gPSBuZXcgRm9ybUdyb3VwKHtcbiAgICAgICAgYWRkcmVzczogbmV3IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+KG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgICBjb250YWN0OiBuZXcgRm9ybUdyb3VwKHtcbiAgICAgICAgICAgIG5hbWU6IG5ldyBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPihudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKSxcbiAgICAgICAgICAgIHBob25lOiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4obnVsbCwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWluTGVuZ3RoKDEyKV0pLFxuICAgICAgICAgICAgZW1haWw6IG5ldyBGb3JtQ29udHJvbDxzdHJpbmcgfCBudWxsPihudWxsLCBWYWxpZGF0b3JzLmVtYWlsKSxcbiAgICAgICAgICAgIHBvc2l0aW9uOiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4obnVsbCksXG4gICAgICAgIH0pLFxuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICog0JjQvdC40YbQuNCw0LvQuNC30LjRgNGD0LXRgiDRjdC60LfQtdC80L/Qu9GP0YAg0LrQu9Cw0YHRgdCwIHtAbGluayBTY0FkZERlbGl2ZXJ5QWRkcmVzc0RpYWxvZ0NvbXBvbmVudH0uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZGVsaXZlcnlBZGRyZXNzU2VydmljZSDQodC10YDQstC40YEg0YDQsNCx0L7RgtGLINGBINCw0LTRgNC10YHQsNC80Lgg0LTQvtGB0YLQsNCy0LrQuC5cbiAgICAgKiBAcGFyYW0gdXNlck1ldHJpa2FTZXJ2aWNlINCh0LXRgNCy0LjRgSDQtNC70Y8g0YHQsdC+0YDQsCDQvNC10YLRgNC40Log0L4g0LTQtdC50YHRgtCy0LjRj9GFINC/0L7Qu9GM0LfQvtCy0LDRgtC10LvQtdC5LlxuICAgICAqIEBwYXJhbSBjb250ZXh0INCa0L7QvdGC0LXQutGB0YIg0LTQuNCw0LvQvtCz0L7QstC+0LPQviDQvtC60L3QsCwg0LIg0LrQvtGC0L7RgNC+0Lwg0L7RgtC60YDRi9GCINC60L7QvNC/0L7QvdC10L3Rgi5cbiAgICAgKiBAcGFyYW0gY29udmVydGVyc1NlcnZpY2Ug0KHQtdGA0LLQuNGBINC60L7QvdCy0LXRgNGC0LDRhtC40Lgg0LTQsNC90L3Ri9GFLlxuICAgICAqL1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBkZWxpdmVyeUFkZHJlc3NTZXJ2aWNlOiBTY0RlbGl2ZXJ5QWRkcmVzc1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgdXNlck1ldHJpa2FTZXJ2aWNlOiBTY1VzZXJNZXRyaWthU2VydmljZSxcbiAgICAgICAgQEluamVjdChQT0xZTU9SUEhFVVNfQ09OVEVYVCkgcHVibGljIHJlYWRvbmx5IGNvbnRleHQ6IFR1aURpYWxvZ0NvbnRleHQ8dm9pZCwgdm9pZD4sXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgY29udmVydGVyc1NlcnZpY2U6IFNjQ29udmVydGVyc1NlcnZpY2VcbiAgICApIHt9XG5cbiAgICAvKiogQGluaGVyaXRkb2MgKi9cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnVzZXJNZXRyaWthU2VydmljZS5lbWl0VXNlck1ldHJpa2FFdmVudCh7XG4gICAgICAgICAgICB0YXJnZXQ6IFNjVXNlck1ldHJpa2FHb2Fsc0VudW0udXNlclByb2ZpbGVEZWxpdmVyeUFkZHJlc3NBZGRTaG93LFxuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8Zm9ybVxuICAgIFtmb3JtR3JvdXBdPVwiZm9ybVwiXG4gICAgKG5nU3VibWl0KT1cIm9uU3VibWl0JC5uZXh0KClcIlxuICAgIGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtM1wiXG4+XG4gICAgPGxhYmVsIHR1aUxhYmVsPVwi0JDQtNGA0LXRgSDQtNC+0YHRgtCw0LLQutC4XCI+XG4gICAgICAgIDx0dWktaW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiYWRkcmVzc1wiPlxuICAgICAgICAgICAg0JDQtNGA0LXRgSDQtNC+0YHRgtCw0LLQutC4XG4gICAgICAgICAgICA8c2Mtc3VnZ2VzdGlvbi1maWVsZFxuICAgICAgICAgICAgICAgICp0dWlEYXRhTGlzdFxuICAgICAgICAgICAgICAgIFt0eXBlXT1cInN1Z2dlc3Rpb25UeXBlLmFkZHJlc3NcIlxuICAgICAgICAgICAgPjwvc2Mtc3VnZ2VzdGlvbi1maWVsZD5cbiAgICAgICAgPC90dWktaW5wdXQ+XG4gICAgICAgIDx0dWktZXJyb3JcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImFkZHJlc3NcIlxuICAgICAgICAgICAgW2Vycm9yXT1cIltdIHwgdHVpRmllbGRFcnJvciB8IGFzeW5jXCJcbiAgICAgICAgPjwvdHVpLWVycm9yPlxuICAgIDwvbGFiZWw+XG4gICAgPGRpdlxuICAgICAgICBmb3JtR3JvdXBOYW1lPVwiY29udGFjdFwiXG4gICAgICAgIGNsYXNzPVwiZmxleCBncm93IGZsZXgtY29sIGdhcC0yXCJcbiAgICA+XG4gICAgICAgIDxwIGNsYXNzPVwidy1mdWxsIGZvbnQtYm9sZFwiPtCa0L7QvdGC0LDQutGC0L3QvtC1INC70LjRhtC+OjwvcD5cbiAgICAgICAgPGxhYmVsIHR1aUxhYmVsPVwi0KQu0Jgu0J4uXCI+XG4gICAgICAgICAgICA8dHVpLWlucHV0IGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIj5cbiAgICAgICAgICAgICAgICDQpC7QmC7Qni5cbiAgICAgICAgICAgICAgICA8c2Mtc3VnZ2VzdGlvbi1maWVsZFxuICAgICAgICAgICAgICAgICAgICAqdHVpRGF0YUxpc3RcbiAgICAgICAgICAgICAgICAgICAgW3R5cGVdPVwic3VnZ2VzdGlvblR5cGUuZmlvXCJcbiAgICAgICAgICAgICAgICA+PC9zYy1zdWdnZXN0aW9uLWZpZWxkPlxuICAgICAgICAgICAgPC90dWktaW5wdXQ+XG4gICAgICAgICAgICA8dHVpLWVycm9yXG4gICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiXG4gICAgICAgICAgICAgICAgW2Vycm9yXT1cIltdIHwgdHVpRmllbGRFcnJvciB8IGFzeW5jXCJcbiAgICAgICAgICAgID48L3R1aS1lcnJvcj5cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPGxhYmVsIHR1aUxhYmVsPVwi0KLQtdC70LXRhNC+0L1cIj5cbiAgICAgICAgICAgIDx0dWktaW5wdXQtcGhvbmUgZm9ybUNvbnRyb2xOYW1lPVwicGhvbmVcIj4g0KLQtdC70LXRhNC+0L0gPC90dWktaW5wdXQtcGhvbmU+XG4gICAgICAgICAgICA8dHVpLWVycm9yXG4gICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwicGhvbmVcIlxuICAgICAgICAgICAgICAgIFtlcnJvcl09XCJbXSB8IHR1aUZpZWxkRXJyb3IgfCBhc3luY1wiXG4gICAgICAgICAgICA+PC90dWktZXJyb3I+XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDxsYWJlbCB0dWlMYWJlbD1cItCQ0LTRgNC10YEg0Y3Qu9C10LrRgtGA0L7QvdC90L7QuSDQv9C+0YfRgtGLXCI+XG4gICAgICAgICAgICA8dHVpLWlucHV0IGZvcm1Db250cm9sTmFtZT1cImVtYWlsXCI+XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIHR1aVRleHRmaWVsZFxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiZW1haWxcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAg0JDQtNGA0LXRgSDRjdC70LXQutGC0YDQvtC90L3QvtC5INC/0L7Rh9GC0YtcbiAgICAgICAgICAgICAgICA8c2Mtc3VnZ2VzdGlvbi1maWVsZFxuICAgICAgICAgICAgICAgICAgICAqdHVpRGF0YUxpc3RcbiAgICAgICAgICAgICAgICAgICAgW3R5cGVdPVwic3VnZ2VzdGlvblR5cGUuZW1haWxcIlxuICAgICAgICAgICAgICAgID48L3NjLXN1Z2dlc3Rpb24tZmllbGQ+XG4gICAgICAgICAgICA8L3R1aS1pbnB1dD5cbiAgICAgICAgICAgIDx0dWktZXJyb3JcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJlbWFpbFwiXG4gICAgICAgICAgICAgICAgW2Vycm9yXT1cIltdIHwgdHVpRmllbGRFcnJvciB8IGFzeW5jXCJcbiAgICAgICAgICAgID48L3R1aS1lcnJvcj5cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPGxhYmVsIHR1aUxhYmVsPVwi0JTQvtC70LbQvdC+0YHRgtGMXCI+XG4gICAgICAgICAgICA8dHVpLWlucHV0IGZvcm1Db250cm9sTmFtZT1cInBvc2l0aW9uXCI+INCU0L7Qu9C20L3QvtGB0YLRjCA8L3R1aS1pbnB1dD5cbiAgICAgICAgICAgIDx0dWktZXJyb3JcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJwb3NpdGlvblwiXG4gICAgICAgICAgICAgICAgW2Vycm9yXT1cIltdIHwgdHVpRmllbGRFcnJvciB8IGFzeW5jXCJcbiAgICAgICAgICAgID48L3R1aS1lcnJvcj5cbiAgICAgICAgPC9sYWJlbD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNlbnRlciBnYXAtOFwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0dWlCdXR0b25cbiAgICAgICAgICAgIChjbGljayk9XCJjb250ZXh0LiRpbXBsaWNpdC5jb21wbGV0ZSgpXCJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgW2ljb25dPVwiaXNNb2JpbGUgPyAndHVpSWNvblgnIDogJ3R1aUljb25YTGFyZ2UnXCJcbiAgICAgICAgICAgIGFwcGVhcmFuY2U9XCJzZWNvbmRhcnlcIlxuICAgICAgICA+XG4gICAgICAgICAgICDQntGC0LzQtdC90LBcbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHR1aUJ1dHRvblxuICAgICAgICAgICAgW2ljb25dPVwiaXNNb2JpbGUgPyAndHVpSWNvblNhdmUnIDogJ3R1aUljb25TYXZlTGFyZ2UnXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJmb3JtLmludmFsaWRcIlxuICAgICAgICAgICAgW3Nob3dMb2FkZXJdPVwiISEobG9hZGluZyQgfCBhc3luYylcIlxuICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgID5cbiAgICAgICAgICAgINCU0L7QsdCw0LLQuNGC0YxcbiAgICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG48L2Zvcm0+XG4iXX0=
188
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtYWRkLWRlbGl2ZXJ5LWFkZHJlc3MtZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9kZWxpdmVyeS1hZGRyZXNzL2FkZC1kZWxpdmVyeS1hZGRyZXNzLWRpYWxvZy9zYy1hZGQtZGVsaXZlcnktYWRkcmVzcy1kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL2RlbGl2ZXJ5LWFkZHJlc3MvYWRkLWRlbGl2ZXJ5LWFkZHJlc3MtZGlhbG9nL3NjLWFkZC1kZWxpdmVyeS1hZGRyZXNzLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxrRkFBa0Y7QUFFbEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFpQix1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNwRSxPQUFPLEVBTUgsaUJBQWlCLEVBRWpCLHNCQUFzQixHQUV6QixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxhQUFhLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbEYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHaEUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFjLEVBQUUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7QUFFMUc7O0dBRUc7QUFNSCxNQUFNLE9BQU8sbUNBQW1DO0lBaUc1Qzs7Ozs7OztPQU9H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UUFDcEMsTUFBTSxTQUFTLEdBQUcsSUFBSSxLQUFLLENBQUMsU0FBUyxDQUNqQyxNQUFNLEVBQ047WUFDSSxXQUFXLEVBQUUsRUFBRTtTQUNsQixFQUNEO1lBQ0ksTUFBTSxFQUFFLFNBQVM7WUFDakIsU0FBUyxFQUFFLElBQUk7U0FDbEIsQ0FDSixDQUFDO1FBRUYsSUFBSSxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXRDLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxHQUFHLEVBQUU7WUFDakMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsQ0FBQztZQUVoRSxJQUFJLEtBQUssRUFBRTtnQkFDUCxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLENBQUM7YUFDakM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7O2dJQWhOUSxtQ0FBbUMsOEZBNEdoQyxvQkFBb0I7b0hBNUd2QixtQ0FBbUMsc0VDL0JoRCx5bUpBOEdBOzJGRC9FYSxtQ0FBbUM7a0JBTC9DLFNBQVM7K0JBQ0ksZ0NBQWdDLG1CQUV6Qix1QkFBdUIsQ0FBQyxNQUFNOzswQkE4RzFDLE1BQU07MkJBQUMsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L3VuYm91bmQtbWV0aG9kLGxvZGFzaC9wcmVmZXItbG9kYXNoLW1ldGhvZCAqL1xuXG5pbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEluamVjdCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgICBTY0NvbnZlcnRlcnNTZXJ2aWNlLFxuICAgIFNjRGVsaXZlcnlBZGRyZXNzU2VydmljZSxcbiAgICBTY0lEZWxpdmVyeUFkZHJlc3MsXG4gICAgU2NJRGVsaXZlcnlBZGRyZXNzT25EYXRhQ3JlYXRlLFxuICAgIFNjSVN1Z2dlc3Rpb25BZGRyZXNzLFxuICAgIFNjSVN1Z2dlc3Rpb25UeXBlLFxuICAgIFNjU3VnZ2VzdGlvbixcbiAgICBTY1VzZXJNZXRyaWthR29hbHNFbnVtLFxuICAgIFNjVXNlck1ldHJpa2FTZXJ2aWNlLFxufSBmcm9tICdAc25hYmNlbnRyL2NsaWVudC1jb3JlJztcbmltcG9ydCB7IFRVSV9JU19NT0JJTEUsIHR1aU1hcmtDb250cm9sQXNUb3VjaGVkQW5kVmFsaWRhdGUgfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7IFR1aURpYWxvZ0NvbnRleHQgfSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQgeyBQT0xZTU9SUEhFVVNfQ09OVEVYVCB9IGZyb20gJ0B0aW5rb2ZmL25nLXBvbHltb3JwaGV1cyc7XG5pbXBvcnQgeyBZYVJlYWR5RXZlbnQgfSBmcm9tICdhbmd1bGFyOC15YW5kZXgtbWFwcyc7XG5pbXBvcnQgeyBBcGlFcnJvclJlc3BvbnNlIH0gZnJvbSAncHJvamVjdHMvY2xpZW50LXVpL2F1dGgnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZmlsdGVyLCBtYXAsIE9ic2VydmFibGUsIG9mLCBzaGFyZSwgc3RhcnRXaXRoLCBTdWJqZWN0LCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMnO1xuXG4vKipcbiAqINCa0L7QvNC/0L7QvdC10L3RgiDQtNC+0LHQsNCy0LvQtdC90LjRjyDQsNC00YDQtdGB0LAg0LTQvtGB0YLQsNCy0LrQuC5cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdzYy1hZGQtZGVsaXZlcnktYWRkcmVzcy1kaWFsb2cnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zYy1hZGQtZGVsaXZlcnktYWRkcmVzcy1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTY0FkZERlbGl2ZXJ5QWRkcmVzc0RpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAgIC8qKlxuICAgICAqINCf0YDQuNC30L3QsNC6INGC0L7Qs9C+LCDQvtGC0L7QsdGA0LDQttCw0LXRgtGB0Y8g0Y3RgtC+0YIg0LrQvtC80L/QvtC90LXQvdGCINC90LAg0LzQvtCx0LjQu9GM0L3QvtC8INGD0YHRgtGA0L7QudGB0YLQstC1INC40LvQuCDQvdC10YIuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGlzTW9iaWxlOiBib29sZWFuID0gaW5qZWN0KFRVSV9JU19NT0JJTEUpO1xuXG4gICAgLyoqXG4gICAgICog0J/QtdGA0LXRh9C40YHQu9C10L3QuNC1INGC0LjQv9C+0LIg0L/QvtC00YHQutCw0LfQvtC6LlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBzdWdnZXN0aW9uVHlwZTogdHlwZW9mIFNjSVN1Z2dlc3Rpb25UeXBlID0gU2NJU3VnZ2VzdGlvblR5cGU7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgU3ViamVjdH0g0YHQvtCx0YvRgtC40Y8g0L7RgtC/0YDQsNCy0LrQuCDRhNC+0YDQvNGLLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBvblN1Ym1pdCQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE9ic2VydmFibGV9INC30LDQv9GA0L7RgdCwINC00LDQvdC90YvRhSDQtNC+0LHQsNCy0LvQtdC90LjRjyDQsNC00YDQtdGBINC00L7RgdGC0LDQstC60LguXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSByZXF1ZXN0JDogT2JzZXJ2YWJsZTxTY0lEZWxpdmVyeUFkZHJlc3MgfCBudWxsPiA9IHRoaXMub25TdWJtaXQkLnBpcGUoXG4gICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgICB0dWlNYXJrQ29udHJvbEFzVG91Y2hlZEFuZFZhbGlkYXRlKHRoaXMuZm9ybSk7XG4gICAgICAgIH0pLFxuICAgICAgICBmaWx0ZXIoKCkgPT4gdGhpcy5mb3JtLnZhbGlkKSxcbiAgICAgICAgbWFwKCgpID0+IHRoaXMuZm9ybS52YWx1ZSBhcyBTY0lEZWxpdmVyeUFkZHJlc3NPbkRhdGFDcmVhdGUpLFxuICAgICAgICBzd2l0Y2hNYXAoKHZhbHVlKSA9PlxuICAgICAgICAgICAgdGhpcy5kZWxpdmVyeUFkZHJlc3NTZXJ2aWNlLmNyZWF0ZURlbGl2ZXJ5QWRkcmVzcyQodGhpcy5jb252ZXJ0ZXJzU2VydmljZS5yZW1vdmVOdWxsUmVjdXJzaXZlPFNjSURlbGl2ZXJ5QWRkcmVzc09uRGF0YUNyZWF0ZT4odmFsdWUpKS5waXBlKFxuICAgICAgICAgICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29udGV4dC5jb21wbGV0ZVdpdGgoKTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogdW5rbm93bikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBIdHRwRXJyb3JSZXNwb25zZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgeyBlcnJvcnMsIG1lc3NhZ2UgfSA9IGVycm9yLmVycm9yIGFzIEFwaUVycm9yUmVzcG9uc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlcnJvcnMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBPYmplY3Qua2V5cyhlcnJvcnMpLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm0uZ2V0KGtleSk/LnNldEVycm9ycyh7IHNlcnZlclJlc3BvbnNlOiBlcnJvcnNba2V5XSB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAobWVzc2FnZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5zZXRFcnJvcnMoeyBzZXJ2ZXJSZXNwb25zZTogW21lc3NhZ2VdIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKHt9IGFzIFNjSURlbGl2ZXJ5QWRkcmVzcyk7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgc3RhcnRXaXRoKG51bGwpXG4gICAgICAgICAgICApXG4gICAgICAgICksXG4gICAgICAgIHNoYXJlKClcbiAgICApO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE9ic2VydmFibGV9INC40LfQvNC10L3QtdC90LjRjyDRgdC+0YHRgtC+0Y/QvdC40Y8g0LfQsNCz0YDRg9C30LrQuCDQtNCw0L3QvdGL0YUuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGxvYWRpbmckOiBPYnNlcnZhYmxlPGJvb2xlYW4+ID0gdGhpcy5yZXF1ZXN0JC5waXBlKG1hcCgoZGF0YSkgPT4gZGF0YSA9PT0gbnVsbCkpO1xuXG4gICAgLyoqXG4gICAgICog0JPRgNGD0L/Qv9CwINGBINC/0L7Qu9GP0LzQuCDQsNC00YDQtdGB0L7Qsi5cbiAgICAgKi9cbiAgICBwdWJsaWMgYWRkcmVzc0NvbnRyb2w6IEZvcm1Db250cm9sPFNjSVN1Z2dlc3Rpb25BZGRyZXNzIHwgc3RyaW5nIHwgbnVsbD4gPSBuZXcgRm9ybUNvbnRyb2w8U2NJU3VnZ2VzdGlvbkFkZHJlc3MgfCBzdHJpbmcgfCBudWxsPihudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkKTtcblxuICAgIC8qKlxuICAgICAqINCd0LDRgdGC0YDQvtC50LrQuCDQutCw0YDRgtGLLlxuICAgICAqL1xuICAgIHB1YmxpYyBvcHRpb25zOiB5bWFwcy5JTWFwT3B0aW9ucyA9IHtcbiAgICAgICAgYXV0b0ZpdFRvVmlld3BvcnQ6ICdhbHdheXMnLFxuICAgICAgICB5YW5kZXhNYXBEaXNhYmxlUG9pSW50ZXJhY3Rpdml0eTogZmFsc2UsXG4gICAgICAgIG1heFpvb206IDE5LFxuICAgIH07XG5cbiAgICAvKipcbiAgICAgKiDQpNC+0YDQvNCwINC00LvRjyDRgdC+0LfQtNCw0L3QuNGPINCw0LTRgNC10YHQsCDQtNC+0YHRgtCw0LLQutC4LlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBmb3JtID0gbmV3IEZvcm1Hcm91cCh7XG4gICAgICAgIGFkZHJlc3M6IHRoaXMuYWRkcmVzc0NvbnRyb2wsXG4gICAgICAgIGNvb3JkaW5hdGVzOiBuZXcgRm9ybUdyb3VwKHtcbiAgICAgICAgICAgIGxhdDogbmV3IEZvcm1Db250cm9sPG51bWJlciB8IG51bGw+KG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgICAgICAgbG9uZzogbmV3IEZvcm1Db250cm9sPG51bWJlciB8IG51bGw+KG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgICB9KSxcbiAgICAgICAgY29udGFjdDogbmV3IEZvcm1Hcm91cCh7XG4gICAgICAgICAgICBuYW1lOiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4obnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZCksXG4gICAgICAgICAgICBwaG9uZTogbmV3IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+KG51bGwsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbkxlbmd0aCgxMildKSxcbiAgICAgICAgICAgIGVtYWlsOiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgbnVsbD4obnVsbCwgVmFsaWRhdG9ycy5lbWFpbCksXG4gICAgICAgICAgICBwb3NpdGlvbjogbmV3IEZvcm1Db250cm9sPHN0cmluZyB8IG51bGw+KG51bGwpLFxuICAgICAgICB9KSxcbiAgICB9KTtcblxuICAgIC8qKlxuICAgICAqINCi0L7Rh9C60LAg0LDQtNGA0LXRgdCwINC90LAg0LrQsNGA0YLQtS5cbiAgICAgKi9cbiAgICBwdWJsaWMgYWRkcmVzc1BsYWNlbWFyaz86IHltYXBzLlBsYWNlbWFyaztcblxuICAgIC8qKlxuICAgICAqINCv0L3QtNC10LrRgSDQutCw0YDRgtCwLlxuICAgICAqL1xuICAgIHB1YmxpYyB5YU1hcD86IHltYXBzLk1hcDtcblxuICAgIC8qKlxuICAgICAqINCY0L3QuNGG0LjQsNC70LjQt9C40YDRg9C10YIg0Y3QutC30LXQvNC/0LvRj9GAINC60LvQsNGB0YHQsCB7QGxpbmsgU2NBZGREZWxpdmVyeUFkZHJlc3NEaWFsb2dDb21wb25lbnR9LlxuICAgICAqXG4gICAgICogQHBhcmFtIGRlbGl2ZXJ5QWRkcmVzc1NlcnZpY2Ug0KHQtdGA0LLQuNGBINGA0LDQsdC+0YLRiyDRgSDQsNC00YDQtdGB0LDQvNC4INC00L7RgdGC0LDQstC60LguXG4gICAgICogQHBhcmFtIHVzZXJNZXRyaWthU2VydmljZSDQodC10YDQstC40YEg0LTQu9GPINGB0LHQvtGA0LAg0LzQtdGC0YDQuNC6INC+INC00LXQudGB0YLQstC40Y/RhSDQv9C+0LvRjNC30L7QstCw0YLQtdC70LXQuS5cbiAgICAgKiBAcGFyYW0gY29udGV4dCDQmtC+0L3RgtC10LrRgdGCINC00LjQsNC70L7Qs9C+0LLQvtCz0L4g0L7QutC90LAsINCyINC60L7RgtC+0YDQvtC8INC+0YLQutGA0YvRgiDQutC+0LzQv9C+0L3QtdC90YIuXG4gICAgICogQHBhcmFtIGNvbnZlcnRlcnNTZXJ2aWNlINCh0LXRgNCy0LjRgSDQutC+0L3QstC10YDRgtCw0YbQuNC4INC00LDQvdC90YvRhS5cbiAgICAgKi9cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZGVsaXZlcnlBZGRyZXNzU2VydmljZTogU2NEZWxpdmVyeUFkZHJlc3NTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHVzZXJNZXRyaWthU2VydmljZTogU2NVc2VyTWV0cmlrYVNlcnZpY2UsXG4gICAgICAgIEBJbmplY3QoUE9MWU1PUlBIRVVTX0NPTlRFWFQpIHB1YmxpYyByZWFkb25seSBjb250ZXh0OiBUdWlEaWFsb2dDb250ZXh0PHZvaWQsIHZvaWQ+LFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGNvbnZlcnRlcnNTZXJ2aWNlOiBTY0NvbnZlcnRlcnNTZXJ2aWNlXG4gICAgKSB7fVxuXG4gICAgLyoqIEBpbmhlcml0ZG9jICovXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51c2VyTWV0cmlrYVNlcnZpY2UuZW1pdFVzZXJNZXRyaWthRXZlbnQoe1xuICAgICAgICAgICAgdGFyZ2V0OiBTY1VzZXJNZXRyaWthR29hbHNFbnVtLnVzZXJQcm9maWxlRGVsaXZlcnlBZGRyZXNzQWRkU2hvdyxcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J7QsdGA0LDQsdC+0YLRh9C40Log0LfQsNCz0YDRg9C30LrQuCDQutCw0YDRgtGLINC90LAg0YHRgtGA0LDQvdC40YbQtS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0YXJnZXQg0K3QutC30LXQvNC/0LvRj9GAINGG0LXQu9C10LLQvtCz0L4g0L7QsdGK0LXQutGC0LAuXG4gICAgICogQHBhcmFtIHRhcmdldC50YXJnZXRcbiAgICAgKi9cbiAgICBwdWJsaWMgb25NYXBSZWFkeUhhbmRsZSh7IHRhcmdldCB9OiBZYVJlYWR5RXZlbnQ8eW1hcHMuTWFwPik6IHZvaWQge1xuICAgICAgICB0aGlzLnlhTWFwID0gdGFyZ2V0O1xuXG4gICAgICAgIGlmICh0aGlzLmFkZHJlc3NQbGFjZW1hcmspIHtcbiAgICAgICAgICAgIHRhcmdldC5nZW9PYmplY3RzLmFkZCh0aGlzLmFkZHJlc3NQbGFjZW1hcmspO1xuXG4gICAgICAgICAgICBjb25zdCBib3VuZHMgPSB0aGlzLmFkZHJlc3NQbGFjZW1hcmsuZ2VvbWV0cnk/LmdldEJvdW5kcygpO1xuXG4gICAgICAgICAgICBpZiAoYm91bmRzKSB7XG4gICAgICAgICAgICAgICAgdGFyZ2V0LnNldEJvdW5kcyhib3VuZHMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICog0J7QsdGA0LDQsdC+0YLRh9C40Log0LLRi9Cx0L7RgNCwINCw0LTRgNC10YHQsCDQtNC+0YHRgtCw0LLQutC4LlxuICAgICAqXG4gICAgICogQHBhcmFtIHN1Z2dlc3Rpb24g0J7QsdGK0LXQutGCINC/0L7QtNGB0LrQsNC30LrQuCDQsNGA0LXRgdCwLlxuICAgICAqL1xuICAgIHB1YmxpYyBvblNlbGVjdGVkQWRkcmVzcyhzdWdnZXN0aW9uOiBTY1N1Z2dlc3Rpb24pOiB2b2lkIHtcbiAgICAgICAgaWYgKCdhZGRyZXNzU3RyaW5nJyBpbiBzdWdnZXN0aW9uICYmIHN1Z2dlc3Rpb24uZ2VvQ29vcmRpbmF0ZXMpIHtcbiAgICAgICAgICAgIGNvbnN0IGNvb3JkcyA9IFtzdWdnZXN0aW9uLmdlb0Nvb3JkaW5hdGVzLmxhdCwgc3VnZ2VzdGlvbi5nZW9Db29yZGluYXRlcy5sb25nXTtcblxuICAgICAgICAgICAgaWYgKCF0aGlzLmFkZHJlc3NQbGFjZW1hcmspIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFkZHJlc3NQbGFjZW1hcmsgPSB0aGlzLmNyZWF0ZVBsYWNlbWFyayhjb29yZHMpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBib3VuZHMgPSB0aGlzLmFkZHJlc3NQbGFjZW1hcmsuZ2VvbWV0cnk/LmdldEJvdW5kcygpO1xuXG4gICAgICAgICAgICBpZiAoYm91bmRzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy55YU1hcD8uc2V0Qm91bmRzKGJvdW5kcyk7XG4gICAgICAgICAgICAgICAgdGhpcy55YU1hcD8uc2V0Wm9vbSgxNyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnNldEdlb0Nvb3JkaW5hdGVzKGNvb3Jkcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQo9GB0YLQsNC90LDQstC70LjQstCw0LXRgiB7QGxpbmsgYWRkcmVzc1BsYWNlbWFya30g0YLQvtGH0LrRgyDQvdCwINC+0L/RgNC10LTQtdC70ZHQvdC90YvQtSDQutC+0L7RgNC00LjQvdCw0YLRiy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjb29yZHMg0JrQvtC+0YDQtNC40L3QsNGC0Ysg0YLQvtGH0LrQuC5cbiAgICAgKi9cbiAgICBwcml2YXRlIHNldEdlb0Nvb3JkaW5hdGVzKGNvb3JkczogbnVtYmVyW10pOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuYWRkcmVzc1BsYWNlbWFyaykge1xuICAgICAgICAgICAgdGhpcy5hZGRyZXNzUGxhY2VtYXJrLmdlb21ldHJ5Py5zZXRDb29yZGluYXRlcyhjb29yZHMpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoe1xuICAgICAgICAgICAgY29vcmRpbmF0ZXM6IHtcbiAgICAgICAgICAgICAgICBsYXQ6IGNvb3Jkc1swXSxcbiAgICAgICAgICAgICAgICBsb25nOiBjb29yZHNbMV0sXG4gICAgICAgICAgICB9LFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQodC+0LfQtNCw0ZHRgiDQvtCx0YrQtdC60YIg0YLQvtGH0LrQuCDQuCDRg9GB0YLQsNC90LDQstC70LjQstCw0LXRgiDRgdC+0LHRi9GC0LjRjyDQtNC70Y8g0L3QtdCz0L4uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY29vcmRzINCa0L7QvtGA0LTQuNC90LDRgtGLINGC0L7Rh9C60LguXG4gICAgICovXG4gICAgcHJpdmF0ZSBjcmVhdGVQbGFjZW1hcmsoY29vcmRzOiBudW1iZXJbXSk6IHltYXBzLlBsYWNlbWFyayB7XG4gICAgICAgIGNvbnN0IHBsYWNlbWFyayA9IG5ldyB5bWFwcy5QbGFjZW1hcmsoXG4gICAgICAgICAgICBjb29yZHMsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaWNvbkNhcHRpb246ICcnLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBwcmVzZXQ6ICdpc2xhbmRzJyxcbiAgICAgICAgICAgICAgICBkcmFnZ2FibGU6IHRydWUsXG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy55YU1hcD8uZ2VvT2JqZWN0cy5hZGQocGxhY2VtYXJrKTtcblxuICAgICAgICBwbGFjZW1hcmsuZXZlbnRzLmFkZCgnZHJhZ2VuZCcsICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGNvb3JkID0gdGhpcy5hZGRyZXNzUGxhY2VtYXJrPy5nZW9tZXRyeT8uZ2V0Q29vcmRpbmF0ZXMoKTtcblxuICAgICAgICAgICAgaWYgKGNvb3JkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXRHZW9Db29yZGluYXRlcyhjb29yZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBwbGFjZW1hcms7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInJlbGF0aXZlIGZsZXggZmxleC1jb2wgZ2FwLTMgbWQ6ZmxleC1yb3dcIj5cbiAgICA8Zm9ybVxuICAgICAgICBbZm9ybUdyb3VwXT1cImZvcm1cIlxuICAgICAgICAobmdTdWJtaXQpPVwib25TdWJtaXQkLm5leHQoKVwiXG4gICAgICAgIGNsYXNzPVwiZmxleCB3LWZ1bGwgZmxleC1jb2wgZ2FwLTNcIlxuICAgID5cbiAgICAgICAgPGxhYmVsIHR1aUxhYmVsPVwi0JDQtNGA0LXRgSDQtNC+0YHRgtCw0LLQutC4XCI+XG4gICAgICAgICAgICA8dHVpLWlucHV0IGZvcm1Db250cm9sTmFtZT1cImFkZHJlc3NcIj5cbiAgICAgICAgICAgICAgICDQkNC00YDQtdGBINC00L7RgdGC0LDQstC60LhcbiAgICAgICAgICAgICAgICA8c2Mtc3VnZ2VzdGlvbi1maWVsZFxuICAgICAgICAgICAgICAgICAgICAqdHVpRGF0YUxpc3RcbiAgICAgICAgICAgICAgICAgICAgW3R5cGVdPVwic3VnZ2VzdGlvblR5cGUuYWRkcmVzc1wiXG4gICAgICAgICAgICAgICAgICAgIChzZWxlY3RlZENsaWNrKT1cIm9uU2VsZWN0ZWRBZGRyZXNzKCRldmVudClcIlxuICAgICAgICAgICAgICAgID48L3NjLXN1Z2dlc3Rpb24tZmllbGQ+XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIHR1aVRleHRmaWVsZFxuICAgICAgICAgICAgICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L3R1aS1pbnB1dD5cbiAgICAgICAgICAgIDx0dWktZXJyb3JcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJhZGRyZXNzXCJcbiAgICAgICAgICAgICAgICBbZXJyb3JdPVwiW10gfCB0dWlGaWVsZEVycm9yIHwgYXN5bmNcIlxuICAgICAgICAgICAgPjwvdHVpLWVycm9yPlxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgICBmb3JtR3JvdXBOYW1lPVwiY29udGFjdFwiXG4gICAgICAgICAgICBjbGFzcz1cImZsZXggZ3JvdyBmbGV4LWNvbCBnYXAtMlwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxwIGNsYXNzPVwidy1mdWxsIGZvbnQtYm9sZFwiPtCa0L7QvdGC0LDQutGC0L3QvtC1INC70LjRhtC+OjwvcD5cbiAgICAgICAgICAgIDxsYWJlbCB0dWlMYWJlbD1cItCkLtCYLtCeLlwiPlxuICAgICAgICAgICAgICAgIDx0dWktaW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiPlxuICAgICAgICAgICAgICAgICAgICDQpC7QmC7Qni5cbiAgICAgICAgICAgICAgICAgICAgPHNjLXN1Z2dlc3Rpb24tZmllbGRcbiAgICAgICAgICAgICAgICAgICAgICAgICp0dWlEYXRhTGlzdFxuICAgICAgICAgICAgICAgICAgICAgICAgW3R5cGVdPVwic3VnZ2VzdGlvblR5cGUuZmlvXCJcbiAgICAgICAgICAgICAgICAgICAgPjwvc2Mtc3VnZ2VzdGlvbi1maWVsZD5cbiAgICAgICAgICAgICAgICA8L3R1aS1pbnB1dD5cbiAgICAgICAgICAgICAgICA8dHVpLWVycm9yXG4gICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICBbZXJyb3JdPVwiW10gfCB0dWlGaWVsZEVycm9yIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgID48L3R1aS1lcnJvcj5cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICA8bGFiZWwgdHVpTGFiZWw9XCLQotC10LvQtdGE0L7QvVwiPlxuICAgICAgICAgICAgICAgIDx0dWktaW5wdXQtcGhvbmUgZm9ybUNvbnRyb2xOYW1lPVwicGhvbmVcIj4g0KLQtdC70LXRhNC+0L0gPC90dWktaW5wdXQtcGhvbmU+XG4gICAgICAgICAgICAgICAgPHR1aS1lcnJvclxuICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJwaG9uZVwiXG4gICAgICAgICAgICAgICAgICAgIFtlcnJvcl09XCJbXSB8IHR1aUZpZWxkRXJyb3IgfCBhc3luY1wiXG4gICAgICAgICAgICAgICAgPjwvdHVpLWVycm9yPlxuICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgIDxsYWJlbCB0dWlMYWJlbD1cItCQ0LTRgNC10YEg0Y3Qu9C10LrRgtGA0L7QvdC90L7QuSDQv9C+0YfRgtGLXCI+XG4gICAgICAgICAgICAgICAgPHR1aS1pbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJlbWFpbFwiPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIHR1aVRleHRmaWVsZFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImVtYWlsXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAg0JDQtNGA0LXRgSDRjdC70LXQutGC0YDQvtC90L3QvtC5INC/0L7Rh9GC0YtcbiAgICAgICAgICAgICAgICAgICAgPHNjLXN1Z2dlc3Rpb24tZmllbGRcbiAgICAgICAgICAgICAgICAgICAgICAgICp0dWlEYXRhTGlzdFxuICAgICAgICAgICAgICAgICAgICAgICAgW3R5cGVdPVwic3VnZ2VzdGlvblR5cGUuZW1haWxcIlxuICAgICAgICAgICAgICAgICAgICA+PC9zYy1zdWdnZXN0aW9uLWZpZWxkPlxuICAgICAgICAgICAgICAgIDwvdHVpLWlucHV0PlxuICAgICAgICAgICAgICAgIDx0dWktZXJyb3JcbiAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiZW1haWxcIlxuICAgICAgICAgICAgICAgICAgICBbZXJyb3JdPVwiW10gfCB0dWlGaWVsZEVycm9yIHwgYXN5bmNcIlxuICAgICAgICAgICAgICAgID48L3R1aS1lcnJvcj5cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICA8bGFiZWwgdHVpTGFiZWw9XCLQlNC+0LvQttC90L7RgdGC0YxcIj5cbiAgICAgICAgICAgICAgICA8dHVpLWlucHV0IGZvcm1Db250cm9sTmFtZT1cInBvc2l0aW9uXCI+INCU0L7Qu9C20L3QvtGB0YLRjCA8L3R1aS1pbnB1dD5cbiAgICAgICAgICAgICAgICA8dHVpLWVycm9yXG4gICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInBvc2l0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2Vycm9yXT1cIltdIHwgdHVpRmllbGRFcnJvciB8IGFzeW5jXCJcbiAgICAgICAgICAgICAgICA+PC90dWktZXJyb3I+XG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jZW50ZXIgZ2FwLThcIj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0dWlCdXR0b25cbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiY29udGV4dC4kaW1wbGljaXQuY29tcGxldGUoKVwiXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgW2ljb25dPVwiaXNNb2JpbGUgPyAndHVpSWNvblgnIDogJ3R1aUljb25YTGFyZ2UnXCJcbiAgICAgICAgICAgICAgICBhcHBlYXJhbmNlPVwic2Vjb25kYXJ5XCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICDQntGC0LzQtdC90LBcbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR1aUJ1dHRvblxuICAgICAgICAgICAgICAgIFtpY29uXT1cImlzTW9iaWxlID8gJ3R1aUljb25TYXZlJyA6ICd0dWlJY29uU2F2ZUxhcmdlJ1wiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImZvcm0uaW52YWxpZFwiXG4gICAgICAgICAgICAgICAgW3Nob3dMb2FkZXJdPVwiISEobG9hZGluZyQgfCBhc3luYylcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgINCU0L7QsdCw0LLQuNGC0YxcbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Zvcm0+XG5cbiAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiYWJzb2x1dGUgLXotMTAgZmxleCBzaXplLWZ1bGwgbWQ6dy0xLzJcIlxuICAgICAgICBbbmdDbGFzc109XCJ7ICd6LTAgcmVsYXRpdmUnOiBhZGRyZXNzUGxhY2VtYXJrIH1cIlxuICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtYXV0b1wiPlxuICAgICAgICAgICAgPHlhLW1hcFxuICAgICAgICAgICAgICAgIFt6b29tXT1cIjExXCJcbiAgICAgICAgICAgICAgICBbc3RhdGVdPVwieyBjb250cm9sczogW10gfVwiXG4gICAgICAgICAgICAgICAgKHJlYWR5KT1cIm9uTWFwUmVhZHlIYW5kbGUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgW29wdGlvbnNdPVwib3B0aW9uc1wiXG4gICAgICAgICAgICA+PC95YS1tYXA+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -2,8 +2,9 @@ import { CommonModule } from '@angular/common';
2
2
  import { NgModule } from '@angular/core';
3
3
  import { FormsModule, ReactiveFormsModule } from '@angular/forms';
4
4
  import { TuiLetModule } from '@taiga-ui/cdk';
5
- import { TuiButtonModule, TuiErrorModule, TuiLabelModule, TuiLoaderModule, TuiNotificationModule } from '@taiga-ui/core';
6
- import { TuiFieldErrorPipeModule, TuiInputModule, TuiInputPhoneModule } from '@taiga-ui/kit';
5
+ import { TuiButtonModule, TuiDataListModule, TuiErrorModule, TuiLabelModule, TuiLoaderModule, TuiNotificationModule } from '@taiga-ui/core';
6
+ import { TuiElasticContainerModule, TuiFieldErrorPipeModule, TuiInputModule, TuiInputPhoneModule } from '@taiga-ui/kit';
7
+ import { AngularYandexMapsModule } from 'angular8-yandex-maps';
7
8
  import { ScAccordionModule } from '../accordion';
8
9
  import { ScContactsModule } from '../contacts/sc-contacts.module';
9
10
  import { ScFormFieldsModule } from '../form-fields/form-fields.module';
@@ -11,6 +12,7 @@ import { ScAddDeliveryAddressDialogComponent } from './add-delivery-address-dial
11
12
  import { ScDeliveryAddressAccordionItemComponent } from './delivery-address-accordion/delivery-address-accordion-item/sc-delivery-address-accordion-item.component';
12
13
  import { ScDeliveryAddressAccordionComponent } from './delivery-address-accordion/sc-delivery-address-accordion.component';
13
14
  import * as i0 from "@angular/core";
15
+ import * as i1 from "angular8-yandex-maps";
14
16
  /**
15
17
  * Модуль для отображение адресов доставки разделами, с возможностью скрывать и отображать содержимое.
16
18
  */
@@ -31,7 +33,8 @@ ScDeliveryAddressModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0",
31
33
  TuiErrorModule,
32
34
  TuiInputModule,
33
35
  TuiInputPhoneModule,
34
- ScFormFieldsModule], exports: [ScDeliveryAddressAccordionComponent, ScAddDeliveryAddressDialogComponent] });
36
+ ScFormFieldsModule,
37
+ TuiDataListModule, i1.AngularYandexMapsModule, TuiElasticContainerModule], exports: [ScDeliveryAddressAccordionComponent, ScAddDeliveryAddressDialogComponent] });
35
38
  ScDeliveryAddressModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScDeliveryAddressModule, imports: [CommonModule,
36
39
  ScAccordionModule,
37
40
  TuiButtonModule,
@@ -46,7 +49,12 @@ ScDeliveryAddressModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0",
46
49
  TuiErrorModule,
47
50
  TuiInputModule,
48
51
  TuiInputPhoneModule,
49
- ScFormFieldsModule] });
52
+ ScFormFieldsModule,
53
+ TuiDataListModule,
54
+ AngularYandexMapsModule.forRoot({
55
+ lang: 'ru_RU',
56
+ }),
57
+ TuiElasticContainerModule] });
50
58
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScDeliveryAddressModule, decorators: [{
51
59
  type: NgModule,
52
60
  args: [{
@@ -67,8 +75,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
67
75
  TuiInputModule,
68
76
  TuiInputPhoneModule,
69
77
  ScFormFieldsModule,
78
+ TuiDataListModule,
79
+ AngularYandexMapsModule.forRoot({
80
+ lang: 'ru_RU',
81
+ }),
82
+ TuiElasticContainerModule,
70
83
  ],
71
84
  exports: [ScDeliveryAddressAccordionComponent, ScAddDeliveryAddressDialogComponent],
72
85
  }]
73
86
  }] });
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtZGVsaXZlcnktYWRkcmVzcy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvZGVsaXZlcnktYWRkcmVzcy9zYy1kZWxpdmVyeS1hZGRyZXNzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekgsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGNBQWMsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU3RixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDakQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDdkUsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sd0VBQXdFLENBQUM7QUFDN0gsT0FBTyxFQUFFLHVDQUF1QyxFQUFFLE1BQU0sMkdBQTJHLENBQUM7QUFDcEssT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sc0VBQXNFLENBQUM7O0FBRTNIOztHQUVHO0FBc0JILE1BQU0sT0FBTyx1QkFBdUI7O29IQUF2Qix1QkFBdUI7cUhBQXZCLHVCQUF1QixpQkFwQmpCLG1DQUFtQyxFQUFFLHVDQUF1QyxFQUFFLG1DQUFtQyxhQUU1SCxZQUFZO1FBQ1osaUJBQWlCO1FBQ2pCLGVBQWU7UUFDZixlQUFlO1FBQ2YsWUFBWTtRQUNaLHFCQUFxQjtRQUNyQixnQkFBZ0I7UUFDaEIsV0FBVztRQUNYLG1CQUFtQjtRQUNuQixjQUFjO1FBQ2QsdUJBQXVCO1FBQ3ZCLGNBQWM7UUFDZCxjQUFjO1FBQ2QsbUJBQW1CO1FBQ25CLGtCQUFrQixhQUVaLG1DQUFtQyxFQUFFLG1DQUFtQztxSEFFekUsdUJBQXVCLFlBbEI1QixZQUFZO1FBQ1osaUJBQWlCO1FBQ2pCLGVBQWU7UUFDZixlQUFlO1FBQ2YsWUFBWTtRQUNaLHFCQUFxQjtRQUNyQixnQkFBZ0I7UUFDaEIsV0FBVztRQUNYLG1CQUFtQjtRQUNuQixjQUFjO1FBQ2QsdUJBQXVCO1FBQ3ZCLGNBQWM7UUFDZCxjQUFjO1FBQ2QsbUJBQW1CO1FBQ25CLGtCQUFrQjsyRkFJYix1QkFBdUI7a0JBckJuQyxRQUFRO21CQUFDO29CQUNOLFlBQVksRUFBRSxDQUFDLG1DQUFtQyxFQUFFLHVDQUF1QyxFQUFFLG1DQUFtQyxDQUFDO29CQUNqSSxPQUFPLEVBQUU7d0JBQ0wsWUFBWTt3QkFDWixpQkFBaUI7d0JBQ2pCLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixZQUFZO3dCQUNaLHFCQUFxQjt3QkFDckIsZ0JBQWdCO3dCQUNoQixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsY0FBYzt3QkFDZCx1QkFBdUI7d0JBQ3ZCLGNBQWM7d0JBQ2QsY0FBYzt3QkFDZCxtQkFBbUI7d0JBQ25CLGtCQUFrQjtxQkFDckI7b0JBQ0QsT0FBTyxFQUFFLENBQUMsbUNBQW1DLEVBQUUsbUNBQW1DLENBQUM7aUJBQ3RGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFR1aUxldE1vZHVsZSB9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHsgVHVpQnV0dG9uTW9kdWxlLCBUdWlFcnJvck1vZHVsZSwgVHVpTGFiZWxNb2R1bGUsIFR1aUxvYWRlck1vZHVsZSwgVHVpTm90aWZpY2F0aW9uTW9kdWxlIH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuaW1wb3J0IHsgVHVpRmllbGRFcnJvclBpcGVNb2R1bGUsIFR1aUlucHV0TW9kdWxlLCBUdWlJbnB1dFBob25lTW9kdWxlIH0gZnJvbSAnQHRhaWdhLXVpL2tpdCc7XG5cbmltcG9ydCB7IFNjQWNjb3JkaW9uTW9kdWxlIH0gZnJvbSAnLi4vYWNjb3JkaW9uJztcbmltcG9ydCB7IFNjQ29udGFjdHNNb2R1bGUgfSBmcm9tICcuLi9jb250YWN0cy9zYy1jb250YWN0cy5tb2R1bGUnO1xuaW1wb3J0IHsgU2NGb3JtRmllbGRzTW9kdWxlIH0gZnJvbSAnLi4vZm9ybS1maWVsZHMvZm9ybS1maWVsZHMubW9kdWxlJztcbmltcG9ydCB7IFNjQWRkRGVsaXZlcnlBZGRyZXNzRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9hZGQtZGVsaXZlcnktYWRkcmVzcy1kaWFsb2cvc2MtYWRkLWRlbGl2ZXJ5LWFkZHJlc3MtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTY0RlbGl2ZXJ5QWRkcmVzc0FjY29yZGlvbkl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2RlbGl2ZXJ5LWFkZHJlc3MtYWNjb3JkaW9uL2RlbGl2ZXJ5LWFkZHJlc3MtYWNjb3JkaW9uLWl0ZW0vc2MtZGVsaXZlcnktYWRkcmVzcy1hY2NvcmRpb24taXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2NEZWxpdmVyeUFkZHJlc3NBY2NvcmRpb25Db21wb25lbnQgfSBmcm9tICcuL2RlbGl2ZXJ5LWFkZHJlc3MtYWNjb3JkaW9uL3NjLWRlbGl2ZXJ5LWFkZHJlc3MtYWNjb3JkaW9uLmNvbXBvbmVudCc7XG5cbi8qKlxuICog0JzQvtC00YPQu9GMINC00LvRjyDQvtGC0L7QsdGA0LDQttC10L3QuNC1INCw0LTRgNC10YHQvtCyINC00L7RgdGC0LDQstC60Lgg0YDQsNC30LTQtdC70LDQvNC4LCDRgSDQstC+0LfQvNC+0LbQvdC+0YHRgtGM0Y4g0YHQutGA0YvQstCw0YLRjCDQuCDQvtGC0L7QsdGA0LDQttCw0YLRjCDRgdC+0LTQtdGA0LbQuNC80L7QtS5cbiAqL1xuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtTY0RlbGl2ZXJ5QWRkcmVzc0FjY29yZGlvbkNvbXBvbmVudCwgU2NEZWxpdmVyeUFkZHJlc3NBY2NvcmRpb25JdGVtQ29tcG9uZW50LCBTY0FkZERlbGl2ZXJ5QWRkcmVzc0RpYWxvZ0NvbXBvbmVudF0sXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIFNjQWNjb3JkaW9uTW9kdWxlLFxuICAgICAgICBUdWlCdXR0b25Nb2R1bGUsXG4gICAgICAgIFR1aUxvYWRlck1vZHVsZSxcbiAgICAgICAgVHVpTGV0TW9kdWxlLFxuICAgICAgICBUdWlOb3RpZmljYXRpb25Nb2R1bGUsXG4gICAgICAgIFNjQ29udGFjdHNNb2R1bGUsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgICAgICBUdWlMYWJlbE1vZHVsZSxcbiAgICAgICAgVHVpRmllbGRFcnJvclBpcGVNb2R1bGUsXG4gICAgICAgIFR1aUVycm9yTW9kdWxlLFxuICAgICAgICBUdWlJbnB1dE1vZHVsZSxcbiAgICAgICAgVHVpSW5wdXRQaG9uZU1vZHVsZSxcbiAgICAgICAgU2NGb3JtRmllbGRzTW9kdWxlLFxuICAgIF0sXG4gICAgZXhwb3J0czogW1NjRGVsaXZlcnlBZGRyZXNzQWNjb3JkaW9uQ29tcG9uZW50LCBTY0FkZERlbGl2ZXJ5QWRkcmVzc0RpYWxvZ0NvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFNjRGVsaXZlcnlBZGRyZXNzTW9kdWxlIHt9XG4iXX0=
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtZGVsaXZlcnktYWRkcmVzcy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvZGVsaXZlcnktYWRkcmVzcy9zYy1kZWxpdmVyeS1hZGRyZXNzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixFQUFFLGNBQWMsRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUksT0FBTyxFQUFFLHlCQUF5QixFQUFFLHVCQUF1QixFQUFFLGNBQWMsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4SCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUUvRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDakQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDdkUsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sd0VBQXdFLENBQUM7QUFDN0gsT0FBTyxFQUFFLHVDQUF1QyxFQUFFLE1BQU0sMkdBQTJHLENBQUM7QUFDcEssT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sc0VBQXNFLENBQUM7OztBQUUzSDs7R0FFRztBQTJCSCxNQUFNLE9BQU8sdUJBQXVCOztvSEFBdkIsdUJBQXVCO3FIQUF2Qix1QkFBdUIsaUJBekJqQixtQ0FBbUMsRUFBRSx1Q0FBdUMsRUFBRSxtQ0FBbUMsYUFFNUgsWUFBWTtRQUNaLGlCQUFpQjtRQUNqQixlQUFlO1FBQ2YsZUFBZTtRQUNmLFlBQVk7UUFDWixxQkFBcUI7UUFDckIsZ0JBQWdCO1FBQ2hCLFdBQVc7UUFDWCxtQkFBbUI7UUFDbkIsY0FBYztRQUNkLHVCQUF1QjtRQUN2QixjQUFjO1FBQ2QsY0FBYztRQUNkLG1CQUFtQjtRQUNuQixrQkFBa0I7UUFDbEIsaUJBQWlCLDhCQUlqQix5QkFBeUIsYUFFbkIsbUNBQW1DLEVBQUUsbUNBQW1DO3FIQUV6RSx1QkFBdUIsWUF2QjVCLFlBQVk7UUFDWixpQkFBaUI7UUFDakIsZUFBZTtRQUNmLGVBQWU7UUFDZixZQUFZO1FBQ1oscUJBQXFCO1FBQ3JCLGdCQUFnQjtRQUNoQixXQUFXO1FBQ1gsbUJBQW1CO1FBQ25CLGNBQWM7UUFDZCx1QkFBdUI7UUFDdkIsY0FBYztRQUNkLGNBQWM7UUFDZCxtQkFBbUI7UUFDbkIsa0JBQWtCO1FBQ2xCLGlCQUFpQjtRQUNqQix1QkFBdUIsQ0FBQyxPQUFPLENBQUM7WUFDNUIsSUFBSSxFQUFFLE9BQU87U0FDaEIsQ0FBQztRQUNGLHlCQUF5QjsyRkFJcEIsdUJBQXVCO2tCQTFCbkMsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUUsQ0FBQyxtQ0FBbUMsRUFBRSx1Q0FBdUMsRUFBRSxtQ0FBbUMsQ0FBQztvQkFDakksT0FBTyxFQUFFO3dCQUNMLFlBQVk7d0JBQ1osaUJBQWlCO3dCQUNqQixlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsWUFBWTt3QkFDWixxQkFBcUI7d0JBQ3JCLGdCQUFnQjt3QkFDaEIsV0FBVzt3QkFDWCxtQkFBbUI7d0JBQ25CLGNBQWM7d0JBQ2QsdUJBQXVCO3dCQUN2QixjQUFjO3dCQUNkLGNBQWM7d0JBQ2QsbUJBQW1CO3dCQUNuQixrQkFBa0I7d0JBQ2xCLGlCQUFpQjt3QkFDakIsdUJBQXVCLENBQUMsT0FBTyxDQUFDOzRCQUM1QixJQUFJLEVBQUUsT0FBTzt5QkFDaEIsQ0FBQzt3QkFDRix5QkFBeUI7cUJBQzVCO29CQUNELE9BQU8sRUFBRSxDQUFDLG1DQUFtQyxFQUFFLG1DQUFtQyxDQUFDO2lCQUN0RiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUdWlMZXRNb2R1bGUgfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7IFR1aUJ1dHRvbk1vZHVsZSwgVHVpRGF0YUxpc3RNb2R1bGUsIFR1aUVycm9yTW9kdWxlLCBUdWlMYWJlbE1vZHVsZSwgVHVpTG9hZGVyTW9kdWxlLCBUdWlOb3RpZmljYXRpb25Nb2R1bGUgfSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5pbXBvcnQgeyBUdWlFbGFzdGljQ29udGFpbmVyTW9kdWxlLCBUdWlGaWVsZEVycm9yUGlwZU1vZHVsZSwgVHVpSW5wdXRNb2R1bGUsIFR1aUlucHV0UGhvbmVNb2R1bGUgfSBmcm9tICdAdGFpZ2EtdWkva2l0JztcbmltcG9ydCB7IEFuZ3VsYXJZYW5kZXhNYXBzTW9kdWxlIH0gZnJvbSAnYW5ndWxhcjgteWFuZGV4LW1hcHMnO1xuXG5pbXBvcnQgeyBTY0FjY29yZGlvbk1vZHVsZSB9IGZyb20gJy4uL2FjY29yZGlvbic7XG5pbXBvcnQgeyBTY0NvbnRhY3RzTW9kdWxlIH0gZnJvbSAnLi4vY29udGFjdHMvc2MtY29udGFjdHMubW9kdWxlJztcbmltcG9ydCB7IFNjRm9ybUZpZWxkc01vZHVsZSB9IGZyb20gJy4uL2Zvcm0tZmllbGRzL2Zvcm0tZmllbGRzLm1vZHVsZSc7XG5pbXBvcnQgeyBTY0FkZERlbGl2ZXJ5QWRkcmVzc0RpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vYWRkLWRlbGl2ZXJ5LWFkZHJlc3MtZGlhbG9nL3NjLWFkZC1kZWxpdmVyeS1hZGRyZXNzLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2NEZWxpdmVyeUFkZHJlc3NBY2NvcmRpb25JdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9kZWxpdmVyeS1hZGRyZXNzLWFjY29yZGlvbi9kZWxpdmVyeS1hZGRyZXNzLWFjY29yZGlvbi1pdGVtL3NjLWRlbGl2ZXJ5LWFkZHJlc3MtYWNjb3JkaW9uLWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IFNjRGVsaXZlcnlBZGRyZXNzQWNjb3JkaW9uQ29tcG9uZW50IH0gZnJvbSAnLi9kZWxpdmVyeS1hZGRyZXNzLWFjY29yZGlvbi9zYy1kZWxpdmVyeS1hZGRyZXNzLWFjY29yZGlvbi5jb21wb25lbnQnO1xuXG4vKipcbiAqINCc0L7QtNGD0LvRjCDQtNC70Y8g0L7RgtC+0LHRgNCw0LbQtdC90LjQtSDQsNC00YDQtdGB0L7QsiDQtNC+0YHRgtCw0LLQutC4INGA0LDQt9C00LXQu9Cw0LzQuCwg0YEg0LLQvtC30LzQvtC20L3QvtGB0YLRjNGOINGB0LrRgNGL0LLQsNGC0Ywg0Lgg0L7RgtC+0LHRgNCw0LbQsNGC0Ywg0YHQvtC00LXRgNC20LjQvNC+0LUuXG4gKi9cbkBOZ01vZHVsZSh7XG4gICAgZGVjbGFyYXRpb25zOiBbU2NEZWxpdmVyeUFkZHJlc3NBY2NvcmRpb25Db21wb25lbnQsIFNjRGVsaXZlcnlBZGRyZXNzQWNjb3JkaW9uSXRlbUNvbXBvbmVudCwgU2NBZGREZWxpdmVyeUFkZHJlc3NEaWFsb2dDb21wb25lbnRdLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBTY0FjY29yZGlvbk1vZHVsZSxcbiAgICAgICAgVHVpQnV0dG9uTW9kdWxlLFxuICAgICAgICBUdWlMb2FkZXJNb2R1bGUsXG4gICAgICAgIFR1aUxldE1vZHVsZSxcbiAgICAgICAgVHVpTm90aWZpY2F0aW9uTW9kdWxlLFxuICAgICAgICBTY0NvbnRhY3RzTW9kdWxlLFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgICAgVHVpTGFiZWxNb2R1bGUsXG4gICAgICAgIFR1aUZpZWxkRXJyb3JQaXBlTW9kdWxlLFxuICAgICAgICBUdWlFcnJvck1vZHVsZSxcbiAgICAgICAgVHVpSW5wdXRNb2R1bGUsXG4gICAgICAgIFR1aUlucHV0UGhvbmVNb2R1bGUsXG4gICAgICAgIFNjRm9ybUZpZWxkc01vZHVsZSxcbiAgICAgICAgVHVpRGF0YUxpc3RNb2R1bGUsXG4gICAgICAgIEFuZ3VsYXJZYW5kZXhNYXBzTW9kdWxlLmZvclJvb3Qoe1xuICAgICAgICAgICAgbGFuZzogJ3J1X1JVJyxcbiAgICAgICAgfSksXG4gICAgICAgIFR1aUVsYXN0aWNDb250YWluZXJNb2R1bGUsXG4gICAgXSxcbiAgICBleHBvcnRzOiBbU2NEZWxpdmVyeUFkZHJlc3NBY2NvcmRpb25Db21wb25lbnQsIFNjQWRkRGVsaXZlcnlBZGRyZXNzRGlhbG9nQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgU2NEZWxpdmVyeUFkZHJlc3NNb2R1bGUge31cbiJdfQ==
@@ -1,5 +1,5 @@
1
1
  import { HttpErrorResponse } from '@angular/common/http';
2
- import { ChangeDetectionStrategy, Component, Inject, Input, SkipSelf } from '@angular/core';
2
+ import { ChangeDetectionStrategy, Component, EventEmitter, Inject, Input, Output, SkipSelf } from '@angular/core';
3
3
  import { NgControl } from '@angular/forms';
4
4
  import { ScISuggestionType } from '@snabcentr/client-core';
5
5
  import { tuiControlValue, tuiIsFalsy, tuiIsPresent, tuiMarkControlAsTouchedAndValidate } from '@taiga-ui/cdk';
@@ -27,6 +27,10 @@ export class ScSuggestionFieldComponent {
27
27
  * Тип подсказок.
28
28
  */
29
29
  this.type = ScISuggestionType.fio;
30
+ /**
31
+ * Событие выбора результата подсказки.
32
+ */
33
+ this.selectedClick = new EventEmitter();
30
34
  /**
31
35
  * Перечисление типов подсказок.
32
36
  */
@@ -34,7 +38,7 @@ export class ScSuggestionFieldComponent {
34
38
  }
35
39
  /** @inheritDoc */
36
40
  ngOnInit() {
37
- const request$ = tuiControlValue(this.control).pipe(debounceTime(300), filter(tuiIsPresent), map((term) => term.trim()), filter((term) => term.length >= 3), switchMap((term) => this.suggestionService.getData(term, this.type).pipe(startWith(null))), catchError((error) => {
41
+ const request$ = tuiControlValue(this.control).pipe(debounceTime(500), filter(tuiIsPresent), map((term) => term.trim()), filter((term) => term.length >= 3), switchMap((term) => this.suggestionService.getData(term, this.type).pipe(startWith(null))), catchError((error) => {
38
42
  if (error instanceof HttpErrorResponse) {
39
43
  const errorResponse = error.error;
40
44
  if (this.control.control) {
@@ -55,6 +59,7 @@ export class ScSuggestionFieldComponent {
55
59
  * @param suggestion Объект подсказки.
56
60
  */
57
61
  onSelected(suggestion) {
62
+ this.selectedClick.emit(suggestion);
58
63
  switch (this.type) {
59
64
  case ScISuggestionType.fio:
60
65
  if ('fio' in suggestion) {
@@ -101,7 +106,7 @@ export class ScSuggestionFieldComponent {
101
106
  }
102
107
  }
103
108
  ScSuggestionFieldComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScSuggestionFieldComponent, deps: [{ token: NgControl, skipSelf: true }, { token: i1.ScSuggestionService }], target: i0.ɵɵFactoryTarget.Component });
104
- ScSuggestionFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ScSuggestionFieldComponent, selector: "sc-suggestion-field", inputs: { type: "type" }, ngImport: i0, template: "<tui-loader\n size=\"m\"\n [overlay]=\"true\"\n [showLoader]=\"!!(loading$ | async)\"\n>\n <tui-data-list *tuiLet=\"suggestions$ | async as options\">\n <button\n *ngFor=\"let option of options\"\n tuiOption\n (click)=\"onSelected(option)\"\n class=\"flex-col !items-start\"\n >\n <ng-container *tuiLet=\"$any(option) as option\">\n <ng-container [ngSwitch]=\"type\">\n <ng-container *ngSwitchCase=\"suggestionType.fio\">\n <span class=\"text-tui-link\">{{ option.fio }}</span>\n </ng-container>\n <ng-container *ngSwitchCase=\"suggestionType.organization\">\n <span class=\"text-tui-link\">\n {{ option.name }}\n <span class=\"ml-2 text-tui-text-02\">\u0438\u043D\u043D: {{ option.inn }}</span>\n </span>\n <span class=\"text-tui-text-02\">{{ option?.legalAddress }}</span>\n </ng-container>\n <ng-container *ngSwitchCase=\"suggestionType.bank\">\n <span class=\"text-tui-link\">{{ option.name }}</span>\n <span class=\"text-tui-text-02\">{{ option.bic }}</span>\n </ng-container>\n <ng-container *ngSwitchCase=\"suggestionType.email\">\n <span class=\"text-tui-link\">{{ option.email }}</span>\n </ng-container>\n <ng-container *ngSwitchCase=\"suggestionType.address\">\n <span class=\"text-tui-link\">{{ option.addressString }}</span>\n </ng-container>\n </ng-container>\n </ng-container>\n </button>\n </tui-data-list>\n</tui-loader>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i3.TuiLetDirective, selector: "[tuiLet]", inputs: ["tuiLet"] }, { kind: "component", type: i4.TuiDataListComponent, selector: "tui-data-list", inputs: ["role", "emptyContent", "size"] }, { kind: "component", type: i4.TuiOptionComponent, selector: "button[tuiOption], a[tuiOption]", inputs: ["size", "role", "disabled", "value"] }, { kind: "component", type: i4.TuiLoaderComponent, selector: "tui-loader", inputs: ["size", "inheritColor", "overlay", "textContent", "showLoader"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
109
+ ScSuggestionFieldComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ScSuggestionFieldComponent, selector: "sc-suggestion-field", inputs: { type: "type" }, outputs: { selectedClick: "selectedClick" }, ngImport: i0, template: "<tui-loader\n size=\"m\"\n [overlay]=\"true\"\n [showLoader]=\"!!(loading$ | async)\"\n>\n <tui-data-list *tuiLet=\"suggestions$ | async as options\">\n <button\n *ngFor=\"let option of options\"\n tuiOption\n (click)=\"onSelected(option)\"\n class=\"flex-col !items-start\"\n >\n <ng-container *tuiLet=\"$any(option) as option\">\n <ng-container [ngSwitch]=\"type\">\n <ng-container *ngSwitchCase=\"suggestionType.fio\">\n <span class=\"text-tui-link\">{{ option.fio }}</span>\n </ng-container>\n <ng-container *ngSwitchCase=\"suggestionType.organization\">\n <span class=\"text-tui-link\">\n {{ option.name }}\n <span class=\"ml-2 text-tui-text-02\">\u0438\u043D\u043D: {{ option.inn }}</span>\n </span>\n <span class=\"text-tui-text-02\">{{ option?.legalAddress }}</span>\n </ng-container>\n <ng-container *ngSwitchCase=\"suggestionType.bank\">\n <span class=\"text-tui-link\">{{ option.name }}</span>\n <span class=\"text-tui-text-02\">{{ option.bic }}</span>\n </ng-container>\n <ng-container *ngSwitchCase=\"suggestionType.email\">\n <span class=\"text-tui-link\">{{ option.email }}</span>\n </ng-container>\n <ng-container *ngSwitchCase=\"suggestionType.address\">\n <span class=\"text-tui-link\">{{ option.addressString }}</span>\n </ng-container>\n </ng-container>\n </ng-container>\n </button>\n </tui-data-list>\n</tui-loader>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i3.TuiLetDirective, selector: "[tuiLet]", inputs: ["tuiLet"] }, { kind: "component", type: i4.TuiDataListComponent, selector: "tui-data-list", inputs: ["role", "emptyContent", "size"] }, { kind: "component", type: i4.TuiOptionComponent, selector: "button[tuiOption], a[tuiOption]", inputs: ["size", "role", "disabled", "value"] }, { kind: "component", type: i4.TuiLoaderComponent, selector: "tui-loader", inputs: ["size", "inheritColor", "overlay", "textContent", "showLoader"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
105
110
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScSuggestionFieldComponent, decorators: [{
106
111
  type: Component,
107
112
  args: [{ selector: 'sc-suggestion-field', changeDetection: ChangeDetectionStrategy.OnPush, template: "<tui-loader\n size=\"m\"\n [overlay]=\"true\"\n [showLoader]=\"!!(loading$ | async)\"\n>\n <tui-data-list *tuiLet=\"suggestions$ | async as options\">\n <button\n *ngFor=\"let option of options\"\n tuiOption\n (click)=\"onSelected(option)\"\n class=\"flex-col !items-start\"\n >\n <ng-container *tuiLet=\"$any(option) as option\">\n <ng-container [ngSwitch]=\"type\">\n <ng-container *ngSwitchCase=\"suggestionType.fio\">\n <span class=\"text-tui-link\">{{ option.fio }}</span>\n </ng-container>\n <ng-container *ngSwitchCase=\"suggestionType.organization\">\n <span class=\"text-tui-link\">\n {{ option.name }}\n <span class=\"ml-2 text-tui-text-02\">\u0438\u043D\u043D: {{ option.inn }}</span>\n </span>\n <span class=\"text-tui-text-02\">{{ option?.legalAddress }}</span>\n </ng-container>\n <ng-container *ngSwitchCase=\"suggestionType.bank\">\n <span class=\"text-tui-link\">{{ option.name }}</span>\n <span class=\"text-tui-text-02\">{{ option.bic }}</span>\n </ng-container>\n <ng-container *ngSwitchCase=\"suggestionType.email\">\n <span class=\"text-tui-link\">{{ option.email }}</span>\n </ng-container>\n <ng-container *ngSwitchCase=\"suggestionType.address\">\n <span class=\"text-tui-link\">{{ option.addressString }}</span>\n </ng-container>\n </ng-container>\n </ng-container>\n </button>\n </tui-data-list>\n</tui-loader>\n" }]
@@ -112,5 +117,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
112
117
  args: [NgControl]
113
118
  }] }, { type: i1.ScSuggestionService }]; }, propDecorators: { type: [{
114
119
  type: Input
120
+ }], selectedClick: [{
121
+ type: Output
115
122
  }] } });
116
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Mtc3VnZ2VzdGlvbi1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvZm9ybS1maWVsZHMvc3VnZ2VzdGlvbi1maWVsZC9zYy1zdWdnZXN0aW9uLWZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9mb3JtLWZpZWxkcy9zdWdnZXN0aW9uLWZpZWxkL3NjLXN1Z2dlc3Rpb24tZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRyxPQUFPLEVBQWEsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGlCQUFpQixFQUFxQyxNQUFNLHdCQUF3QixDQUFDO0FBQzlGLE9BQU8sRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RyxPQUFPLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFjLEVBQUUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7QUFJdEg7O0dBRUc7QUFNSCxNQUFNLE9BQU8sMEJBQTBCO0lBc0JuQzs7Ozs7T0FLRztJQUNILFlBR29CLE9BQWtCLEVBQ2pCLGlCQUFzQztRQUR2QyxZQUFPLEdBQVAsT0FBTyxDQUFXO1FBQ2pCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBcUI7UUEvQjNEOztXQUVHO1FBRUksU0FBSSxHQUFzQixpQkFBaUIsQ0FBQyxH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QUFJLFVBQVUsSUFBSSxDQUFDLENBQUMsS0FBSyxJQUFJLFVBQVUsQ0FBQyxFQUFFO29CQUMvQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLE1BQW9CLENBQUEsQ0FBQyxVQUFVLENBQUM7d0JBQ25ELElBQUksRUFBRSxVQUFVLENBQUMsSUFBSTt3QkFDckIsR0FBRyxFQUFFLFVBQVUsQ0FBQyxHQUFHO3dCQUNuQixHQUFHLEVBQUUsVUFBVSxDQUFDLEdBQUc7d0JBQ25CLElBQUksRUFBRSxVQUFVLENBQUMsSUFBSTt3QkFDckIsWUFBWSxFQUFFLFVBQVUsQ0FBQyxZQUFZO3dCQUNyQyxnQkFBZ0IsRUFBRSxVQUFVLENBQUMsZ0JBQWdCO3dCQUM3QyxZQUFZLEVBQUUsVUFBVSxDQUFDLFlBQVk7d0JBQ3JDLGFBQWEsRUFBRSxVQUFVLENBQUMsYUFBYTt3QkFDdkMsYUFBYSxFQUFFLFVBQVUsQ0FBQyxhQUFhO3FCQUMxQyxDQUFDLENBQUM7aUJBQ047Z0JBQ0QsTUFBTTtZQUNWLEtBQUssaUJBQWlCLENBQUMsS0FBSztnQkFDeEIsSUFBSSxPQUFPLElBQUksVUFBVSxFQUFFO29CQUN2QixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO2lCQUN0RDtnQkFDRCxNQUFNO1lBQ1Y7Z0JBQ0ksTUFBTTtTQUNiO0lBQ0wsQ0FBQzs7dUhBbEhRLDBCQUEwQixrQkE4QnZCLFNBQVM7MkdBOUJaLDBCQUEwQixxRkNqQnZDLDYyREF1Q0E7MkZEdEJhLDBCQUEwQjtrQkFMdEMsU0FBUzsrQkFDSSxxQkFBcUIsbUJBRWQsdUJBQXVCLENBQUMsTUFBTTs7MEJBK0IxQyxRQUFROzswQkFDUixNQUFNOzJCQUFDLFNBQVM7OEVBekJkLElBQUk7c0JBRFYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5qZWN0LCBJbnB1dCwgT25Jbml0LCBTa2lwU2VsZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwLCBOZ0NvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTY0lTdWdnZXN0aW9uVHlwZSwgU2NTdWdnZXN0aW9uLCBTY1N1Z2dlc3Rpb25TZXJ2aWNlIH0gZnJvbSAnQHNuYWJjZW50ci9jbGllbnQtY29yZSc7XG5pbXBvcnQgeyB0dWlDb250cm9sVmFsdWUsIHR1aUlzRmFsc3ksIHR1aUlzUHJlc2VudCwgdHVpTWFya0NvbnRyb2xBc1RvdWNoZWRBbmRWYWxpZGF0ZSB9IGZyb20gJ0B0YWlnYS11aS9jZGsnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZGVib3VuY2VUaW1lLCBmaWx0ZXIsIG1hcCwgT2JzZXJ2YWJsZSwgb2YsIHNoYXJlLCBzdGFydFdpdGgsIHN3aXRjaE1hcCwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBBcGlFcnJvclJlc3BvbnNlIH0gZnJvbSAnLi4vLi4vYXV0aC9pbnRlcmZhY2VzL2FwaS1lcnJvci1yZXNwb25zZSc7XG5cbi8qKlxuICog0JrQvtC80L/QvtC90LXQvdGCINC/0L7QtNGB0LrQsNC30L7QuiDQtNC70Y8g0L/QvtC70Y8g0LLQstC+0LTQsC5cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdzYy1zdWdnZXN0aW9uLWZpZWxkJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2Mtc3VnZ2VzdGlvbi1maWVsZC5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFNjU3VnZ2VzdGlvbkZpZWxkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICAvKipcbiAgICAgKiDQotC40L8g0L/QvtC00YHQutCw0LfQvtC6LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHR5cGU6IFNjSVN1Z2dlc3Rpb25UeXBlID0gU2NJU3VnZ2VzdGlvblR5cGUuZmlvO1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE9ic2VydmFibGV9INC/0L7QtNGB0LrQsNC30L7Qui5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3VnZ2VzdGlvbnMkPzogT2JzZXJ2YWJsZTxTY1N1Z2dlc3Rpb25bXSB8IG51bGw+O1xuXG4gICAgLyoqXG4gICAgICoge0BsaW5rIE9ic2VydmFibGV9INGB0L7RgdGC0L7Rj9C90LjQtSDQt9Cw0L/RgNC+0YHQsCDQv9C+0LTRgdC60LDQt9C+0LouXG4gICAgICovXG4gICAgcHVibGljIGxvYWRpbmckPzogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICAgIC8qKlxuICAgICAqINCf0LXRgNC10YfQuNGB0LvQtdC90LjQtSDRgtC40L/QvtCyINC/0L7QtNGB0LrQsNC30L7Qui5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgc3VnZ2VzdGlvblR5cGU6IHR5cGVvZiBTY0lTdWdnZXN0aW9uVHlwZSA9IFNjSVN1Z2dlc3Rpb25UeXBlO1xuXG4gICAgLyoqXG4gICAgICog0JjQvdC40YbQuNCw0LvQuNC30LjRgNGD0LXRgiDRjdC60LfQtdC80L/Qu9GP0YAg0LrQu9Cw0YHRgdCwIHtAbGluayBTY1N1Z2dlc3Rpb25GaWVsZENvbXBvbmVudH0uXG4gICAgICpcbiAgICAgKiBAcGFyYW0gY29udHJvbCDQmtC+0L3RgtGA0L7QuyDQv9C+0LvRjyDQstCy0L7QtNCwLlxuICAgICAqIEBwYXJhbSBzdWdnZXN0aW9uU2VydmljZSDQodC10YDQstC40YEg0YDQsNCx0L7RgtGLINGBIEFQSSDQv9C+0LTRgdC60LDQt9C+0LouXG4gICAgICovXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKFxuICAgICAgICBAU2tpcFNlbGYoKVxuICAgICAgICBASW5qZWN0KE5nQ29udHJvbClcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IGNvbnRyb2w6IE5nQ29udHJvbCxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBzdWdnZXN0aW9uU2VydmljZTogU2NTdWdnZXN0aW9uU2VydmljZVxuICAgICkge31cblxuICAgIC8qKiBAaW5oZXJpdERvYyAqL1xuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgcmVxdWVzdCQgPSB0dWlDb250cm9sVmFsdWU8c3RyaW5nIHwgbnVsbD4odGhpcy5jb250cm9sKS5waXBlKFxuICAgICAgICAgICAgZGVib3VuY2VUaW1lKDMwMCksXG4gICAgICAgICAgICBmaWx0ZXIodHVpSXNQcmVzZW50KSxcbiAgICAgICAgICAgIG1hcCgodGVybSkgPT4gdGVybS50cmltKCkpLFxuICAgICAgICAgICAgZmlsdGVyKCh0ZXJtKSA9PiB0ZXJtLmxlbmd0aCA+PSAzKSxcbiAgICAgICAgICAgIHN3aXRjaE1hcCgodGVybTogc3RyaW5nKSA9PiB0aGlzLnN1Z2dlc3Rpb25TZXJ2aWNlLmdldERhdGE8U2NTdWdnZXN0aW9uPih0ZXJtLCB0aGlzLnR5cGUpLnBpcGUoc3RhcnRXaXRoKG51bGwpKSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcjogdW5rbm93bikgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEh0dHBFcnJvclJlc3BvbnNlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVycm9yUmVzcG9uc2UgPSBlcnJvci5lcnJvciBhcyBBcGlFcnJvclJlc3BvbnNlO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmNvbnRyb2wuY29udHJvbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHVpTWFya0NvbnRyb2xBc1RvdWNoZWRBbmRWYWxpZGF0ZSh0aGlzLmNvbnRyb2wuY29udHJvbCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbC5jb250cm9sLnNldEVycm9ycyh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VydmVyUmVzcG9uc2U6IFtlcnJvclJlc3BvbnNlLm1lc3NhZ2UgfHwgJ9Ce0YjQuNCx0LrQsCDRgdC10YDQstC10YDQsDog0L/QvtC20LDQu9GD0LnRgdGC0LAsINC/0LXRgNC10LfQsNCz0YDRg9C30LjRgtC1INGB0YLRgNCw0L3QuNGG0YMg0Lgv0LjQu9C4INCy0YvQv9C+0LvQvdC40YLQtSDQt9Cw0L/RgNC+0YEg0L/QvtC30LbQtS4nXSxcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gb2YoW10pKTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgc2hhcmUoKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuc3VnZ2VzdGlvbnMkID0gcmVxdWVzdCQucGlwZShmaWx0ZXIodHVpSXNQcmVzZW50KSwgc3RhcnRXaXRoKG51bGwpKTtcbiAgICAgICAgdGhpcy5sb2FkaW5nJCA9IHJlcXVlc3QkLnBpcGUobWFwKHR1aUlzRmFsc3kpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiDQl9Cw0L/QvtC70L3QtdC90LjQtSDQv9C+0LvQtdC5INC+0YHQvdC+0LLQtSDQstGL0LHRgNCw0L3QvdC+0Lkg0L/QvtC00YHQutCw0LfQutC4LlxuICAgICAqXG4gICAgICogQHBhcmFtIHN1Z2dlc3Rpb24g0J7QsdGK0LXQutGCINC/0L7QtNGB0LrQsNC30LrQuC5cbiAgICAgKi9cbiAgICBwdWJsaWMgb25TZWxlY3RlZChzdWdnZXN0aW9uOiBTY1N1Z2dlc3Rpb24pOiB2b2lkIHtcbiAgICAgICAgc3dpdGNoICh0aGlzLnR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgU2NJU3VnZ2VzdGlvblR5cGUuZmlvOlxuICAgICAgICAgICAgICAgIGlmICgnZmlvJyBpbiBzdWdnZXN0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbC5jb250cm9sPy5wYXRjaFZhbHVlKHN1Z2dlc3Rpb24uZmlvKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFNjSVN1Z2dlc3Rpb25UeXBlLmFkZHJlc3M6XG4gICAgICAgICAgICAgICAgaWYgKCdhZGRyZXNzU3RyaW5nJyBpbiBzdWdnZXN0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbC5jb250cm9sPy5wYXRjaFZhbHVlKHN1Z2dlc3Rpb24uYWRkcmVzc1N0cmluZyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBTY0lTdWdnZXN0aW9uVHlwZS5iYW5rOlxuICAgICAgICAgICAgICAgIGlmICgnaW5uJyBpbiBzdWdnZXN0aW9uICYmICdiaWMnIGluIHN1Z2dlc3Rpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgKHRoaXMuY29udHJvbC5jb250cm9sPy5wYXJlbnQgYXMgRm9ybUdyb3VwKS5wYXRjaFZhbHVlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhbmtOYW1lOiBzdWdnZXN0aW9uLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBiaWM6IHN1Z2dlc3Rpb24uYmljLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29ycmVzcG9uZGVudEFjY291bnQ6IHN1Z2dlc3Rpb24uY29ycmVzcG9uZGVudEFjY291bnQsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgU2NJU3VnZ2VzdGlvblR5cGUub3JnYW5pemF0aW9uOlxuICAgICAgICAgICAgICAgIGlmICgnaW5uJyBpbiBzdWdnZXN0aW9uICYmICEoJ2JpYycgaW4gc3VnZ2VzdGlvbikpIHtcbiAgICAgICAgICAgICAgICAgICAgKHRoaXMuY29udHJvbC5jb250cm9sPy5wYXJlbnQgYXMgRm9ybUdyb3VwKS5wYXRjaFZhbHVlKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IHN1Z2dlc3Rpb24ubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlubjogc3VnZ2VzdGlvbi5pbm4sXG4gICAgICAgICAgICAgICAgICAgICAgICBrcHA6IHN1Z2dlc3Rpb24ua3BwLFxuICAgICAgICAgICAgICAgICAgICAgICAgb2twbzogc3VnZ2VzdGlvbi5va3BvLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGlyZWN0b3JOYW1lOiBzdWdnZXN0aW9uLmRpcmVjdG9yTmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdG9yUG9zaXRpb246IHN1Z2dlc3Rpb24uZGlyZWN0b3JQb3NpdGlvbixcbiAgICAgICAgICAgICAgICAgICAgICAgIGxlZ2FsQWRkcmVzczogc3VnZ2VzdGlvbi5sZWdhbEFkZHJlc3MsXG4gICAgICAgICAgICAgICAgICAgICAgICBwb3N0YWxBZGRyZXNzOiBzdWdnZXN0aW9uLnBvc3RhbEFkZHJlc3MsXG4gICAgICAgICAgICAgICAgICAgICAgICBhY3R1YWxBZGRyZXNzOiBzdWdnZXN0aW9uLmFjdHVhbEFkZHJlc3MsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgU2NJU3VnZ2VzdGlvblR5cGUuZW1haWw6XG4gICAgICAgICAgICAgICAgaWYgKCdlbWFpbCcgaW4gc3VnZ2VzdGlvbikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRyb2wuY29udHJvbD8ucGF0Y2hWYWx1ZShzdWdnZXN0aW9uLmVtYWlsKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPHR1aS1sb2FkZXJcbiAgICBzaXplPVwibVwiXG4gICAgW292ZXJsYXldPVwidHJ1ZVwiXG4gICAgW3Nob3dMb2FkZXJdPVwiISEobG9hZGluZyQgfCBhc3luYylcIlxuPlxuICAgIDx0dWktZGF0YS1saXN0ICp0dWlMZXQ9XCJzdWdnZXN0aW9ucyQgfCBhc3luYyBhcyBvcHRpb25zXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygb3B0aW9uc1wiXG4gICAgICAgICAgICB0dWlPcHRpb25cbiAgICAgICAgICAgIChjbGljayk9XCJvblNlbGVjdGVkKG9wdGlvbilcIlxuICAgICAgICAgICAgY2xhc3M9XCJmbGV4LWNvbCAhaXRlbXMtc3RhcnRcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICp0dWlMZXQ9XCIkYW55KG9wdGlvbikgYXMgb3B0aW9uXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwidHlwZVwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJzdWdnZXN0aW9uVHlwZS5maW9cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC10dWktbGlua1wiPnt7IG9wdGlvbi5maW8gfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJzdWdnZXN0aW9uVHlwZS5vcmdhbml6YXRpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC10dWktbGlua1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IG9wdGlvbi5uYW1lIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtbC0yIHRleHQtdHVpLXRleHQtMDJcIj7QuNC90L06IHt7IG9wdGlvbi5pbm4gfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtdHVpLXRleHQtMDJcIj57eyBvcHRpb24/LmxlZ2FsQWRkcmVzcyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cInN1Z2dlc3Rpb25UeXBlLmJhbmtcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC10dWktbGlua1wiPnt7IG9wdGlvbi5uYW1lIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXR1aS10ZXh0LTAyXCI+e3sgb3B0aW9uLmJpYyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cInN1Z2dlc3Rpb25UeXBlLmVtYWlsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtdHVpLWxpbmtcIj57eyBvcHRpb24uZW1haWwgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJzdWdnZXN0aW9uVHlwZS5hZGRyZXNzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtdHVpLWxpbmtcIj57eyBvcHRpb24uYWRkcmVzc1N0cmluZyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgPC90dWktZGF0YS1saXN0PlxuPC90dWktbG9hZGVyPlxuIl19
123
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Mtc3VnZ2VzdGlvbi1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvZm9ybS1maWVsZHMvc3VnZ2VzdGlvbi1maWVsZC9zYy1zdWdnZXN0aW9uLWZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9mb3JtLWZpZWxkcy9zdWdnZXN0aW9uLWZpZWxkL3NjLXN1Z2dlc3Rpb24tZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFILE9BQU8sRUFBYSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsaUJBQWlCLEVBQXFDLE1BQU0sd0JBQXdCLENBQUM7QUFDOUYsT0FBTyxFQUFFLGVBQWUsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlHLE9BQU8sRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQWMsRUFBRSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7OztBQUl0SDs7R0FFRztBQU1ILE1BQU0sT0FBTywwQkFBMEI7SUE0Qm5DOzs7OztPQUtHO0lBQ0gsWUFHb0IsT0FBa0IsRUFDakIsaUJBQXNDO1FBRHZDLFlBQU8sR0FBUCxPQUFPLENBQVc7UUFDakIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFxQjtRQXJDM0Q7O1dBRUc7UUFFSSxTQUFJLEdBQXNCLGlCQUFpQixDQUFDLEdBQUcsQ0FBQztRQUV2RDs7V0FFRztRQUVJLGtCQUFhLEdBQStCLElBQUksWUFBWSxFQUFnQixDQUFDO1FBWXBGOztXQUVHO1FBQ2EsbUJBQWMsR0FBNkIsaUJBQWlCLENBQUM7SUFhMUUsQ0FBQztJQUVKLGtCQUFrQjtJQUNYLFFBQVE7UUFDWCxNQUFNLFFBQVEsR0FBRyxlQUFlLENBQWdCLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQzlELFlBQVksQ0FBQyxHQUFHLENBQUMsRUFDakIsTUFBTSxDQUFDLFlBQVksQ0FBQyxFQUNwQixHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUMxQixNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLEVBQ2xDLFNBQVMsQ0FBQyxDQUFDLElBQVksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBZSxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNoSCxVQUFVLENBQUMsQ0FBQyxLQUFjLEVBQUUsRUFBRTtZQUMxQixJQUFJLEtBQUssWUFBWSxpQkFBaUIsRUFBRTtnQkFDcEMsTUFBTSxhQUFhLEdBQUcsS0FBSyxDQUFDLEtBQXlCLENBQUM7Z0JBRXRELElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUU7b0JBQ3RCLGtDQUFrQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7b0JBRXpELElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQzt3QkFDM0IsY0FBYyxFQUFFLENBQUMsYUFBYSxDQUFDLE9BQU8sSUFBSSxrRkFBa0YsQ0FBQztxQkFDaEksQ0FBQyxDQUFDO2lCQUNOO2FBQ0o7WUFFRCxPQUFPLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNwQyxDQUFDLENBQUMsRUFDRixLQUFLLEVBQUUsQ0FDVixDQUFDO1FBRUYsSUFBSSxDQUFDLFlBQVksR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsRUFBRSxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUN6RSxJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxVQUFVLENBQUMsVUFBd0I7UUFDdEMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFcEMsUUFBUSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2YsS0FBSyxpQkFBaUIsQ0FBQyxHQUFHO2dCQUN0QixJQUFJLEtBQUssSUFBSSxVQUFVLEVBQUU7b0JBQ3JCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7aUJBQ3BEO2dCQUNELE1BQU07WUFDVixLQUFLLGlCQUFpQixDQUFDLE9BQU87Z0JBQzFCLElBQUksZUFBZSxJQUFJLFVBQVUsRUFBRTtvQkFDL0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQztpQkFDOUQ7Z0JBQ0QsTUFBTTtZQUNWLEtBQUssaUJBQWlCLENBQUMsSUFBSTtnQkFDdkIsSUFBSSxLQUFLLElBQUksVUFBVSxJQUFJLEtBQUssSUFBSSxVQUFVLEVBQUU7b0JBQzVDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsTUFBb0IsQ0FBQSxDQUFDLFVBQVUsQ0FBQzt3QkFDbkQsUUFBUSxFQUFFLFVBQVUsQ0FBQyxJQUFJO3dCQUN6QixHQUFHLEVBQUUsVUFBVSxDQUFDLEdBQUc7d0JBQ25CLG9CQUFvQixFQUFFLFVBQVUsQ0FBQyxvQkFBb0I7cUJBQ3hELENBQUMsQ0FBQztpQkFDTjtnQkFDRCxNQUFNO1lBQ1YsS0FBSyxpQkFBaUIsQ0FBQyxZQUFZO2dCQUMvQixJQUFJLEtBQUssSUFBSSxVQUFVLElBQUksQ0FBQyxDQUFDLEtBQUssSUFBSSxVQUFVLENBQUMsRUFBRTtvQkFDL0MsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxNQUFvQixDQUFBLENBQUMsVUFBVSxDQUFDO3dCQUNuRCxJQUFJLEVBQUUsVUFBVSxDQUFDLElBQUk7d0JBQ3JCLEdBQUcsRUFBRSxVQUFVLENBQUMsR0FBRzt3QkFDbkIsR0FBRyxFQUFFLFVBQVUsQ0FBQyxHQUFHO3dCQUNuQixJQUFJLEVBQUUsVUFBVSxDQUFDLElBQUk7d0JBQ3JCLFlBQVksRUFBRSxVQUFVLENBQUMsWUFBWTt3QkFDckMsZ0JBQWdCLEVBQUUsVUFBVSxDQUFDLGdCQUFnQjt3QkFDN0MsWUFBWSxFQUFFLFVBQVUsQ0FBQyxZQUFZO3dCQUNyQyxhQUFhLEVBQUUsVUFBVSxDQUFDLGFBQWE7d0JBQ3ZDLGFBQWEsRUFBRSxVQUFVLENBQUMsYUFBYTtxQkFDMUMsQ0FBQyxDQUFDO2lCQUNOO2dCQUNELE1BQU07WUFDVixLQUFLLGlCQUFpQixDQUFDLEtBQUs7Z0JBQ3hCLElBQUksT0FBTyxJQUFJLFVBQVUsRUFBRTtvQkFDdkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztpQkFDdEQ7Z0JBQ0QsTUFBTTtZQUNWO2dCQUNJLE1BQU07U0FDYjtJQUNMLENBQUM7O3VIQTFIUSwwQkFBMEIsa0JBb0N2QixTQUFTOzJHQXBDWiwwQkFBMEIsa0lDakJ2Qyw2MkRBdUNBOzJGRHRCYSwwQkFBMEI7a0JBTHRDLFNBQVM7K0JBQ0kscUJBQXFCLG1CQUVkLHVCQUF1QixDQUFDLE1BQU07OzBCQXFDMUMsUUFBUTs7MEJBQ1IsTUFBTTsyQkFBQyxTQUFTOzhFQS9CZCxJQUFJO3NCQURWLEtBQUs7Z0JBT0MsYUFBYTtzQkFEbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3QsIElucHV0LCBPbkluaXQsIE91dHB1dCwgU2tpcFNlbGYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Hcm91cCwgTmdDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU2NJU3VnZ2VzdGlvblR5cGUsIFNjU3VnZ2VzdGlvbiwgU2NTdWdnZXN0aW9uU2VydmljZSB9IGZyb20gJ0BzbmFiY2VudHIvY2xpZW50LWNvcmUnO1xuaW1wb3J0IHsgdHVpQ29udHJvbFZhbHVlLCB0dWlJc0ZhbHN5LCB0dWlJc1ByZXNlbnQsIHR1aU1hcmtDb250cm9sQXNUb3VjaGVkQW5kVmFsaWRhdGUgfSBmcm9tICdAdGFpZ2EtdWkvY2RrJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGRlYm91bmNlVGltZSwgZmlsdGVyLCBtYXAsIE9ic2VydmFibGUsIG9mLCBzaGFyZSwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAsIHRocm93RXJyb3IgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQXBpRXJyb3JSZXNwb25zZSB9IGZyb20gJy4uLy4uL2F1dGgvaW50ZXJmYWNlcy9hcGktZXJyb3ItcmVzcG9uc2UnO1xuXG4vKipcbiAqINCa0L7QvNC/0L7QvdC10L3RgiDQv9C+0LTRgdC60LDQt9C+0Log0LTQu9GPINC/0L7Qu9GPINCy0LLQvtC00LAuXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnc2Mtc3VnZ2VzdGlvbi1maWVsZCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NjLXN1Z2dlc3Rpb24tZmllbGQuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTY1N1Z2dlc3Rpb25GaWVsZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgLyoqXG4gICAgICog0KLQuNC/INC/0L7QtNGB0LrQsNC30L7Qui5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB0eXBlOiBTY0lTdWdnZXN0aW9uVHlwZSA9IFNjSVN1Z2dlc3Rpb25UeXBlLmZpbztcblxuICAgIC8qKlxuICAgICAqINCh0L7QsdGL0YLQuNC1INCy0YvQsdC+0YDQsCDRgNC10LfRg9C70YzRgtCw0YLQsCDQv9C+0LTRgdC60LDQt9C60LguXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHNlbGVjdGVkQ2xpY2s6IEV2ZW50RW1pdHRlcjxTY1N1Z2dlc3Rpb24+ID0gbmV3IEV2ZW50RW1pdHRlcjxTY1N1Z2dlc3Rpb24+KCk7XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT2JzZXJ2YWJsZX0g0L/QvtC00YHQutCw0LfQvtC6LlxuICAgICAqL1xuICAgIHB1YmxpYyBzdWdnZXN0aW9ucyQ/OiBPYnNlcnZhYmxlPFNjU3VnZ2VzdGlvbltdIHwgbnVsbD47XG5cbiAgICAvKipcbiAgICAgKiB7QGxpbmsgT2JzZXJ2YWJsZX0g0YHQvtGB0YLQvtGP0L3QuNC1INC30LDQv9GA0L7RgdCwINC/0L7QtNGB0LrQsNC30L7Qui5cbiAgICAgKi9cbiAgICBwdWJsaWMgbG9hZGluZyQ/OiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gICAgLyoqXG4gICAgICog0J/QtdGA0LXRh9C40YHQu9C10L3QuNC1INGC0LjQv9C+0LIg0L/QvtC00YHQutCw0LfQvtC6LlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBzdWdnZXN0aW9uVHlwZTogdHlwZW9mIFNjSVN1Z2dlc3Rpb25UeXBlID0gU2NJU3VnZ2VzdGlvblR5cGU7XG5cbiAgICAvKipcbiAgICAgKiDQmNC90LjRhtC40LDQu9C40LfQuNGA0YPQtdGCINGN0LrQt9C10LzQv9C70Y/RgCDQutC70LDRgdGB0LAge0BsaW5rIFNjU3VnZ2VzdGlvbkZpZWxkQ29tcG9uZW50fS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBjb250cm9sINCa0L7QvdGC0YDQvtC7INC/0L7Qu9GPINCy0LLQvtC00LAuXG4gICAgICogQHBhcmFtIHN1Z2dlc3Rpb25TZXJ2aWNlINCh0LXRgNCy0LjRgSDRgNCw0LHQvtGC0Ysg0YEgQVBJINC/0L7QtNGB0LrQsNC30L7Qui5cbiAgICAgKi9cbiAgICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgICAgIEBTa2lwU2VsZigpXG4gICAgICAgIEBJbmplY3QoTmdDb250cm9sKVxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgY29udHJvbDogTmdDb250cm9sLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHN1Z2dlc3Rpb25TZXJ2aWNlOiBTY1N1Z2dlc3Rpb25TZXJ2aWNlXG4gICAgKSB7fVxuXG4gICAgLyoqIEBpbmhlcml0RG9jICovXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBjb25zdCByZXF1ZXN0JCA9IHR1aUNvbnRyb2xWYWx1ZTxzdHJpbmcgfCBudWxsPih0aGlzLmNvbnRyb2wpLnBpcGUoXG4gICAgICAgICAgICBkZWJvdW5jZVRpbWUoNTAwKSxcbiAgICAgICAgICAgIGZpbHRlcih0dWlJc1ByZXNlbnQpLFxuICAgICAgICAgICAgbWFwKCh0ZXJtKSA9PiB0ZXJtLnRyaW0oKSksXG4gICAgICAgICAgICBmaWx0ZXIoKHRlcm0pID0+IHRlcm0ubGVuZ3RoID49IDMpLFxuICAgICAgICAgICAgc3dpdGNoTWFwKCh0ZXJtOiBzdHJpbmcpID0+IHRoaXMuc3VnZ2VzdGlvblNlcnZpY2UuZ2V0RGF0YTxTY1N1Z2dlc3Rpb24+KHRlcm0sIHRoaXMudHlwZSkucGlwZShzdGFydFdpdGgobnVsbCkpKSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yOiB1bmtub3duKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGVycm9yIGluc3RhbmNlb2YgSHR0cEVycm9yUmVzcG9uc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZXJyb3JSZXNwb25zZSA9IGVycm9yLmVycm9yIGFzIEFwaUVycm9yUmVzcG9uc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuY29udHJvbC5jb250cm9sKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0dWlNYXJrQ29udHJvbEFzVG91Y2hlZEFuZFZhbGlkYXRlKHRoaXMuY29udHJvbC5jb250cm9sKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250cm9sLmNvbnRyb2wuc2V0RXJyb3JzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJSZXNwb25zZTogW2Vycm9yUmVzcG9uc2UubWVzc2FnZSB8fCAn0J7RiNC40LHQutCwINGB0LXRgNCy0LXRgNCwOiDQv9C+0LbQsNC70YPQudGB0YLQsCwg0L/QtdGA0LXQt9Cw0LPRgNGD0LfQuNGC0LUg0YHRgtGA0LDQvdC40YbRgyDQuC/QuNC70Lgg0LLRi9C/0L7Qu9C90LjRgtC1INC30LDQv9GA0L7RgSDQv9C+0LfQttC1LiddLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBvZihbXSkpO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBzaGFyZSgpXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5zdWdnZXN0aW9ucyQgPSByZXF1ZXN0JC5waXBlKGZpbHRlcih0dWlJc1ByZXNlbnQpLCBzdGFydFdpdGgobnVsbCkpO1xuICAgICAgICB0aGlzLmxvYWRpbmckID0gcmVxdWVzdCQucGlwZShtYXAodHVpSXNGYWxzeSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCX0LDQv9C+0LvQvdC10L3QuNC1INC/0L7Qu9C10Lkg0L7RgdC90L7QstC1INCy0YvQsdGA0LDQvdC90L7QuSDQv9C+0LTRgdC60LDQt9C60LguXG4gICAgICpcbiAgICAgKiBAcGFyYW0gc3VnZ2VzdGlvbiDQntCx0YrQtdC60YIg0L/QvtC00YHQutCw0LfQutC4LlxuICAgICAqL1xuICAgIHB1YmxpYyBvblNlbGVjdGVkKHN1Z2dlc3Rpb246IFNjU3VnZ2VzdGlvbik6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdGVkQ2xpY2suZW1pdChzdWdnZXN0aW9uKTtcblxuICAgICAgICBzd2l0Y2ggKHRoaXMudHlwZSkge1xuICAgICAgICAgICAgY2FzZSBTY0lTdWdnZXN0aW9uVHlwZS5maW86XG4gICAgICAgICAgICAgICAgaWYgKCdmaW8nIGluIHN1Z2dlc3Rpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250cm9sLmNvbnRyb2w/LnBhdGNoVmFsdWUoc3VnZ2VzdGlvbi5maW8pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgU2NJU3VnZ2VzdGlvblR5cGUuYWRkcmVzczpcbiAgICAgICAgICAgICAgICBpZiAoJ2FkZHJlc3NTdHJpbmcnIGluIHN1Z2dlc3Rpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250cm9sLmNvbnRyb2w/LnBhdGNoVmFsdWUoc3VnZ2VzdGlvbi5hZGRyZXNzU3RyaW5nKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIFNjSVN1Z2dlc3Rpb25UeXBlLmJhbms6XG4gICAgICAgICAgICAgICAgaWYgKCdpbm4nIGluIHN1Z2dlc3Rpb24gJiYgJ2JpYycgaW4gc3VnZ2VzdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAodGhpcy5jb250cm9sLmNvbnRyb2w/LnBhcmVudCBhcyBGb3JtR3JvdXApLnBhdGNoVmFsdWUoe1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFua05hbWU6IHN1Z2dlc3Rpb24ubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJpYzogc3VnZ2VzdGlvbi5iaWMsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb3JyZXNwb25kZW50QWNjb3VudDogc3VnZ2VzdGlvbi5jb3JyZXNwb25kZW50QWNjb3VudCxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBTY0lTdWdnZXN0aW9uVHlwZS5vcmdhbml6YXRpb246XG4gICAgICAgICAgICAgICAgaWYgKCdpbm4nIGluIHN1Z2dlc3Rpb24gJiYgISgnYmljJyBpbiBzdWdnZXN0aW9uKSkge1xuICAgICAgICAgICAgICAgICAgICAodGhpcy5jb250cm9sLmNvbnRyb2w/LnBhcmVudCBhcyBGb3JtR3JvdXApLnBhdGNoVmFsdWUoe1xuICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTogc3VnZ2VzdGlvbi5uYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5uOiBzdWdnZXN0aW9uLmlubixcbiAgICAgICAgICAgICAgICAgICAgICAgIGtwcDogc3VnZ2VzdGlvbi5rcHAsXG4gICAgICAgICAgICAgICAgICAgICAgICBva3BvOiBzdWdnZXN0aW9uLm9rcG8sXG4gICAgICAgICAgICAgICAgICAgICAgICBkaXJlY3Rvck5hbWU6IHN1Z2dlc3Rpb24uZGlyZWN0b3JOYW1lLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGlyZWN0b3JQb3NpdGlvbjogc3VnZ2VzdGlvbi5kaXJlY3RvclBvc2l0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGVnYWxBZGRyZXNzOiBzdWdnZXN0aW9uLmxlZ2FsQWRkcmVzcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc3RhbEFkZHJlc3M6IHN1Z2dlc3Rpb24ucG9zdGFsQWRkcmVzcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdHVhbEFkZHJlc3M6IHN1Z2dlc3Rpb24uYWN0dWFsQWRkcmVzcyxcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBTY0lTdWdnZXN0aW9uVHlwZS5lbWFpbDpcbiAgICAgICAgICAgICAgICBpZiAoJ2VtYWlsJyBpbiBzdWdnZXN0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29udHJvbC5jb250cm9sPy5wYXRjaFZhbHVlKHN1Z2dlc3Rpb24uZW1haWwpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8dHVpLWxvYWRlclxuICAgIHNpemU9XCJtXCJcbiAgICBbb3ZlcmxheV09XCJ0cnVlXCJcbiAgICBbc2hvd0xvYWRlcl09XCIhIShsb2FkaW5nJCB8IGFzeW5jKVwiXG4+XG4gICAgPHR1aS1kYXRhLWxpc3QgKnR1aUxldD1cInN1Z2dlc3Rpb25zJCB8IGFzeW5jIGFzIG9wdGlvbnNcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBvcHRpb25zXCJcbiAgICAgICAgICAgIHR1aU9wdGlvblxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0ZWQob3B0aW9uKVwiXG4gICAgICAgICAgICBjbGFzcz1cImZsZXgtY29sICFpdGVtcy1zdGFydFwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKnR1aUxldD1cIiRhbnkob3B0aW9uKSBhcyBvcHRpb25cIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJ0eXBlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cInN1Z2dlc3Rpb25UeXBlLmZpb1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXR1aS1saW5rXCI+e3sgb3B0aW9uLmZpbyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cInN1Z2dlc3Rpb25UeXBlLm9yZ2FuaXphdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXR1aS1saW5rXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgb3B0aW9uLm5hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1sLTIgdGV4dC10dWktdGV4dC0wMlwiPtC40L3QvToge3sgb3B0aW9uLmlubiB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC10dWktdGV4dC0wMlwiPnt7IG9wdGlvbj8ubGVnYWxBZGRyZXNzIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwic3VnZ2VzdGlvblR5cGUuYmFua1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LXR1aS1saW5rXCI+e3sgb3B0aW9uLm5hbWUgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtdHVpLXRleHQtMDJcIj57eyBvcHRpb24uYmljIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwic3VnZ2VzdGlvblR5cGUuZW1haWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC10dWktbGlua1wiPnt7IG9wdGlvbi5lbWFpbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cInN1Z2dlc3Rpb25UeXBlLmFkZHJlc3NcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC10dWktbGlua1wiPnt7IG9wdGlvbi5hZGRyZXNzU3RyaW5nIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICA8L3R1aS1kYXRhLWxpc3Q+XG48L3R1aS1sb2FkZXI+XG4iXX0=
@@ -95,7 +95,7 @@ export class ScUpdateUserInfoDialogComponent {
95
95
  }
96
96
  }
97
97
  ScUpdateUserInfoDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScUpdateUserInfoDialogComponent, deps: [{ token: SC_USER_INFO }, { token: i1.ScUserService }, { token: i1.ScUserMetrikaService }, { token: POLYMORPHEUS_CONTEXT, optional: true }], target: i0.ɵɵFactoryTarget.Component });
98
- ScUpdateUserInfoDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ScUpdateUserInfoDialogComponent, selector: "sc-update-user-info-dialog", outputs: { cancelButtonClick: "cancelButtonClick", successUpdateDate: "successUpdateDate" }, providers: [SC_USER_PROVIDERS], ngImport: i0, template: "<form\n [formGroup]=\"form\"\n *ngIf=\"user$ | async as user\"\n (ngSubmit)=\"onSubmit.next()\"\n class=\"flex flex-col gap-4\"\n>\n <label [tuiLabel]=\"user.isOrg ? '\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u043B\u0438 \u0418\u041F' : '\u0424.\u0418.\u041E.'\">\n <tui-input formControlName=\"name\">\n {{ user.isOrg ? '\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u043B\u0438 \u0418\u041F' : '\u0424.\u0418.\u041E.' }}\n <ng-container *ngIf=\"user.isOrg\">\n <sc-suggestion-field\n *tuiDataList\n [type]=\"suggestionType.organization\"\n ></sc-suggestion-field>\n </ng-container>\n </tui-input>\n <tui-error\n formControlName=\"name\"\n [error]=\"[] | tuiFieldError | async\"\n ></tui-error>\n </label>\n <sc-verification-phone-check-form\n *tuiLet=\"user.contacts.phone.value === form.value.phone as phoneIsChange\"\n [showCodeFields]=\"!phoneIsChange\"\n [shouldBeBusy]=\"phoneIsChange\"\n class=\"w-full\"\n ></sc-verification-phone-check-form>\n <label\n tuiLabel=\"\u0410\u0434\u0440\u0435\u0441 \u044D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0439 \u043F\u043E\u0447\u0442\u044B\"\n class=\"w-full\"\n >\n <tui-input formControlName=\"email\">\n \u0410\u0434\u0440\u0435\u0441 \u044D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0439 \u043F\u043E\u0447\u0442\u044B\n <sc-suggestion-field\n *tuiDataList\n [type]=\"suggestionType.email\"\n ></sc-suggestion-field>\n </tui-input>\n <tui-error\n formControlName=\"email\"\n [error]=\"[] | tuiFieldError | async\"\n ></tui-error>\n </label>\n <sc-addresses-selection-field></sc-addresses-selection-field>\n <tui-checkbox-labeled\n formControlName=\"getNews\"\n class=\"w-full\"\n >\n \u042F \u0445\u043E\u0447\u0443 \u043F\u043E\u043B\u0443\u0447\u0430\u0442\u044C \u0440\u0430\u0441\u0441\u044B\u043B\u043A\u0443 \u0421\u043D\u0430\u0431\u0446\u0435\u043D\u0442\u0440 \u043E \u0441\u043A\u0438\u0434\u043A\u0430\u0445 \u0438 \u043D\u043E\u0432\u043E\u0441\u0442\u044F\u0445 \u043F\u043E \u044D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0439 \u043F\u043E\u0447\u0442\u0435.\n </tui-checkbox-labeled>\n <div class=\"flex justify-center gap-4\">\n <button\n tuiButton\n (click)=\"context ? context.$implicit.complete() : cancelButtonClick.emit()\"\n type=\"button\"\n icon=\"tuiIconXLarge\"\n appearance=\"secondary\"\n >\n \u041E\u0442\u043C\u0435\u043D\u0430\n </button>\n <button\n tuiButton\n [disabled]=\"form.invalid\"\n [showLoader]=\"!!(loading$ | async)\"\n type=\"submit\"\n icon=\"scIconSave\"\n >\n \u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C\n </button>\n </div>\n</form>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.TuiButtonComponent, selector: "button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]", inputs: ["appearance", "disabled", "icon", "iconRight", "shape", "showLoader", "size"] }, { kind: "component", type: i4.TuiErrorComponent, selector: "tui-error", inputs: ["error"] }, { kind: "component", type: i4.TuiLabelComponent, selector: "label[tuiLabel]", inputs: ["tuiLabel", "context"] }, { kind: "directive", type: i5.TuiLetDirective, selector: "[tuiLet]", inputs: ["tuiLet"] }, { kind: "component", type: i6.ScVerificationPhoneCheckFormComponent, selector: "sc-verification-phone-check-form", inputs: ["showCodeFields", "readOnly", "shouldBeBusy", "shouldBeConfirmed", "haveCode"], outputs: ["haveCodeChange"] }, { kind: "component", type: i7.ScAddressesSelectionFieldComponent, selector: "sc-addresses-selection-field" }, { kind: "component", type: i8.ScSuggestionFieldComponent, selector: "sc-suggestion-field", inputs: ["type"] }, { kind: "component", type: i9.TuiInputComponent, selector: "tui-input" }, { kind: "directive", type: i9.TuiInputDirective, selector: "tui-input" }, { kind: "component", type: i9.TuiCheckboxLabeledComponent, selector: "tui-checkbox-labeled", inputs: ["size"] }, { kind: "directive", type: i4.TuiDataListDirective, selector: "ng-template[tuiDataList]" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i9.TuiFieldErrorPipe, name: "tuiFieldError" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
98
+ ScUpdateUserInfoDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ScUpdateUserInfoDialogComponent, selector: "sc-update-user-info-dialog", outputs: { cancelButtonClick: "cancelButtonClick", successUpdateDate: "successUpdateDate" }, providers: [SC_USER_PROVIDERS], ngImport: i0, template: "<form\n [formGroup]=\"form\"\n *ngIf=\"user$ | async as user\"\n (ngSubmit)=\"onSubmit.next()\"\n class=\"flex flex-col gap-4\"\n>\n <label [tuiLabel]=\"user.isOrg ? '\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u043B\u0438 \u0418\u041F' : '\u0424.\u0418.\u041E.'\">\n <tui-input formControlName=\"name\">\n {{ user.isOrg ? '\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u043B\u0438 \u0418\u041F' : '\u0424.\u0418.\u041E.' }}\n <ng-container *ngIf=\"user.isOrg\">\n <sc-suggestion-field\n *tuiDataList\n [type]=\"suggestionType.organization\"\n ></sc-suggestion-field>\n </ng-container>\n </tui-input>\n <tui-error\n formControlName=\"name\"\n [error]=\"[] | tuiFieldError | async\"\n ></tui-error>\n </label>\n <sc-verification-phone-check-form\n *tuiLet=\"user.contacts.phone.value === form.value.phone as phoneIsChange\"\n [showCodeFields]=\"!phoneIsChange\"\n [shouldBeBusy]=\"phoneIsChange\"\n class=\"w-full\"\n ></sc-verification-phone-check-form>\n <label\n tuiLabel=\"\u0410\u0434\u0440\u0435\u0441 \u044D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0439 \u043F\u043E\u0447\u0442\u044B\"\n class=\"w-full\"\n >\n <tui-input formControlName=\"email\">\n \u0410\u0434\u0440\u0435\u0441 \u044D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0439 \u043F\u043E\u0447\u0442\u044B\n <sc-suggestion-field\n *tuiDataList\n [type]=\"suggestionType.email\"\n ></sc-suggestion-field>\n </tui-input>\n <tui-error\n formControlName=\"email\"\n [error]=\"[] | tuiFieldError | async\"\n ></tui-error>\n </label>\n <sc-addresses-selection-field></sc-addresses-selection-field>\n <tui-checkbox-labeled\n formControlName=\"getNews\"\n class=\"w-full\"\n >\n \u042F \u0445\u043E\u0447\u0443 \u043F\u043E\u043B\u0443\u0447\u0430\u0442\u044C \u0440\u0430\u0441\u0441\u044B\u043B\u043A\u0443 \u0421\u043D\u0430\u0431\u0446\u0435\u043D\u0442\u0440 \u043E \u0441\u043A\u0438\u0434\u043A\u0430\u0445 \u0438 \u043D\u043E\u0432\u043E\u0441\u0442\u044F\u0445 \u043F\u043E \u044D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0439 \u043F\u043E\u0447\u0442\u0435.\n </tui-checkbox-labeled>\n <div class=\"flex justify-center gap-4\">\n <button\n tuiButton\n (click)=\"context ? context.$implicit.complete() : cancelButtonClick.emit()\"\n type=\"button\"\n icon=\"tuiIconXLarge\"\n appearance=\"secondary\"\n >\n \u041E\u0442\u043C\u0435\u043D\u0430\n </button>\n <button\n tuiButton\n [disabled]=\"form.invalid\"\n [showLoader]=\"!!(loading$ | async)\"\n type=\"submit\"\n icon=\"scIconSave\"\n >\n \u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C\n </button>\n </div>\n</form>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.TuiButtonComponent, selector: "button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]", inputs: ["appearance", "disabled", "icon", "iconRight", "shape", "showLoader", "size"] }, { kind: "component", type: i4.TuiErrorComponent, selector: "tui-error", inputs: ["error"] }, { kind: "component", type: i4.TuiLabelComponent, selector: "label[tuiLabel]", inputs: ["tuiLabel", "context"] }, { kind: "directive", type: i5.TuiLetDirective, selector: "[tuiLet]", inputs: ["tuiLet"] }, { kind: "component", type: i6.ScVerificationPhoneCheckFormComponent, selector: "sc-verification-phone-check-form", inputs: ["showCodeFields", "readOnly", "shouldBeBusy", "shouldBeConfirmed", "haveCode"], outputs: ["haveCodeChange"] }, { kind: "component", type: i7.ScAddressesSelectionFieldComponent, selector: "sc-addresses-selection-field" }, { kind: "component", type: i8.ScSuggestionFieldComponent, selector: "sc-suggestion-field", inputs: ["type"], outputs: ["selectedClick"] }, { kind: "component", type: i9.TuiInputComponent, selector: "tui-input" }, { kind: "directive", type: i9.TuiInputDirective, selector: "tui-input" }, { kind: "component", type: i9.TuiCheckboxLabeledComponent, selector: "tui-checkbox-labeled", inputs: ["size"] }, { kind: "directive", type: i4.TuiDataListDirective, selector: "ng-template[tuiDataList]" }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i9.TuiFieldErrorPipe, name: "tuiFieldError" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
99
99
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScUpdateUserInfoDialogComponent, decorators: [{
100
100
  type: Component,
101
101
  args: [{ selector: 'sc-update-user-info-dialog', providers: [SC_USER_PROVIDERS], changeDetection: ChangeDetectionStrategy.OnPush, template: "<form\n [formGroup]=\"form\"\n *ngIf=\"user$ | async as user\"\n (ngSubmit)=\"onSubmit.next()\"\n class=\"flex flex-col gap-4\"\n>\n <label [tuiLabel]=\"user.isOrg ? '\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u043B\u0438 \u0418\u041F' : '\u0424.\u0418.\u041E.'\">\n <tui-input formControlName=\"name\">\n {{ user.isOrg ? '\u041D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u043E\u0440\u0433\u0430\u043D\u0438\u0437\u0430\u0446\u0438\u0438 \u0438\u043B\u0438 \u0418\u041F' : '\u0424.\u0418.\u041E.' }}\n <ng-container *ngIf=\"user.isOrg\">\n <sc-suggestion-field\n *tuiDataList\n [type]=\"suggestionType.organization\"\n ></sc-suggestion-field>\n </ng-container>\n </tui-input>\n <tui-error\n formControlName=\"name\"\n [error]=\"[] | tuiFieldError | async\"\n ></tui-error>\n </label>\n <sc-verification-phone-check-form\n *tuiLet=\"user.contacts.phone.value === form.value.phone as phoneIsChange\"\n [showCodeFields]=\"!phoneIsChange\"\n [shouldBeBusy]=\"phoneIsChange\"\n class=\"w-full\"\n ></sc-verification-phone-check-form>\n <label\n tuiLabel=\"\u0410\u0434\u0440\u0435\u0441 \u044D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0439 \u043F\u043E\u0447\u0442\u044B\"\n class=\"w-full\"\n >\n <tui-input formControlName=\"email\">\n \u0410\u0434\u0440\u0435\u0441 \u044D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0439 \u043F\u043E\u0447\u0442\u044B\n <sc-suggestion-field\n *tuiDataList\n [type]=\"suggestionType.email\"\n ></sc-suggestion-field>\n </tui-input>\n <tui-error\n formControlName=\"email\"\n [error]=\"[] | tuiFieldError | async\"\n ></tui-error>\n </label>\n <sc-addresses-selection-field></sc-addresses-selection-field>\n <tui-checkbox-labeled\n formControlName=\"getNews\"\n class=\"w-full\"\n >\n \u042F \u0445\u043E\u0447\u0443 \u043F\u043E\u043B\u0443\u0447\u0430\u0442\u044C \u0440\u0430\u0441\u0441\u044B\u043B\u043A\u0443 \u0421\u043D\u0430\u0431\u0446\u0435\u043D\u0442\u0440 \u043E \u0441\u043A\u0438\u0434\u043A\u0430\u0445 \u0438 \u043D\u043E\u0432\u043E\u0441\u0442\u044F\u0445 \u043F\u043E \u044D\u043B\u0435\u043A\u0442\u0440\u043E\u043D\u043D\u043E\u0439 \u043F\u043E\u0447\u0442\u0435.\n </tui-checkbox-labeled>\n <div class=\"flex justify-center gap-4\">\n <button\n tuiButton\n (click)=\"context ? context.$implicit.complete() : cancelButtonClick.emit()\"\n type=\"button\"\n icon=\"tuiIconXLarge\"\n appearance=\"secondary\"\n >\n \u041E\u0442\u043C\u0435\u043D\u0430\n </button>\n <button\n tuiButton\n [disabled]=\"form.invalid\"\n [showLoader]=\"!!(loading$ | async)\"\n type=\"submit\"\n icon=\"scIconSave\"\n >\n \u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C\n </button>\n </div>\n</form>\n" }]