@snabcentr/client-ui 1.8.1 → 1.8.4
Sign up to get free protection for your applications and to get access to all the features.
- package/catalog/price-list-pagination/sc-price-list-pagination.component.d.ts +10 -5
- package/delivery-address/add-delivery-address-dialog/sc-add-delivery-address-dialog.component.d.ts +6 -0
- package/esm2020/catalog/price-list-pagination/sc-price-list-pagination.component.mjs +22 -10
- package/esm2020/delivery-address/add-delivery-address-dialog/sc-add-delivery-address-dialog.component.mjs +16 -7
- package/esm2020/providers/index.mjs +1 -2
- package/fesm2015/snabcentr-client-ui.mjs +38 -113
- package/fesm2015/snabcentr-client-ui.mjs.map +1 -1
- package/fesm2020/snabcentr-client-ui.mjs +38 -113
- package/fesm2020/snabcentr-client-ui.mjs.map +1 -1
- package/package.json +1 -1
- package/providers/index.d.ts +0 -1
- package/esm2020/providers/productsPagination.mjs +0 -99
- package/providers/productsPagination.d.ts +0 -43
@@ -1,9 +1,9 @@
|
|
1
1
|
import * as i0 from '@angular/core';
|
2
|
-
import { EventEmitter, Component, ChangeDetectionStrategy, Inject, Input, Output, SkipSelf, inject, Directive, HostBinding, ContentChild, ViewChild, NgModule, ContentChildren, HostListener, Injectable, Renderer2, ElementRef, Pipe, Optional, ChangeDetectorRef, Self,
|
2
|
+
import { EventEmitter, Component, ChangeDetectionStrategy, Inject, Input, Output, SkipSelf, inject, Directive, HostBinding, ContentChild, ViewChild, NgModule, ContentChildren, HostListener, Injectable, Renderer2, ElementRef, Pipe, Optional, ChangeDetectorRef, Self, forwardRef, InjectionToken } from '@angular/core';
|
3
3
|
import * as i1 from '@snabcentr/client-core';
|
4
|
-
import { ScUserMetrikaGoalsEnum, ScISuggestionType, ScOpfList, ScWarehouseService, ScAuthService, SEARCH_TERM, ScImageHelper, SC_PATH_IMAGE_NOT_FOUND, ScPhoneService, IS_RUNNING_ON_TERMINAL, SC_URLS, TERMINAL_PROVIDERS, SEARCH_TERM_PROVIDERS,
|
4
|
+
import { ScUserMetrikaGoalsEnum, ScISuggestionType, ScOpfList, ScWarehouseService, ScAuthService, SEARCH_TERM, ScImageHelper, SC_PATH_IMAGE_NOT_FOUND, ScPhoneService, IS_RUNNING_ON_TERMINAL, SC_URLS, TERMINAL_PROVIDERS, SEARCH_TERM_PROVIDERS, ScPaginationService, SC_NEXT_PAGE_PAGINATION_CLICK, SC_PRODUCT_PAGINATION_OPTIONS, ScIconTypesEnum, ScUserService } from '@snabcentr/client-core';
|
5
5
|
import * as i5 from 'rxjs';
|
6
|
-
import { Subject, map, filter, switchMap, tap, catchError, of, finalize, startWith, share, timer, scan, takeWhile, endWith, distinctUntilChanged, combineLatest, debounceTime, throwError, shareReplay, interval, takeUntil,
|
6
|
+
import { Subject, map, filter, switchMap, tap, catchError, of, finalize, startWith, share, timer, scan, takeWhile, endWith, distinctUntilChanged, combineLatest, debounceTime, throwError, shareReplay, interval, takeUntil, skip } from 'rxjs';
|
7
7
|
import * as i2 from '@angular/common';
|
8
8
|
import { CommonModule } from '@angular/common';
|
9
9
|
import * as i4 from '@taiga-ui/core';
|
@@ -12,7 +12,7 @@ import { HttpErrorResponse } from '@angular/common/http';
|
|
12
12
|
import * as i3 from '@angular/forms';
|
13
13
|
import { FormGroupDirective, FormGroup, FormControl, Validators, NgControl, FormArray, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
14
14
|
import * as i6 from '@taiga-ui/cdk';
|
15
|
-
import { tuiControlValue, tuiIsFalsy, tuiIsPresent, tuiMarkControlAsTouchedAndValidate, AbstractTuiControl, tuiCreateToken, TuiLetModule, TuiRepeatTimesModule, TUI_IS_MOBILE, tuiPure, AbstractTuiNullableControl, TuiDay, TuiDayRange, TuiMonth,
|
15
|
+
import { tuiControlValue, tuiIsFalsy, tuiIsPresent, tuiMarkControlAsTouchedAndValidate, AbstractTuiControl, tuiCreateToken, TuiLetModule, TuiRepeatTimesModule, TUI_IS_MOBILE, tuiPure, AbstractTuiNullableControl, TuiDay, TuiDayRange, TuiMonth, TuiHoveredModule, TuiDestroyService, ALWAYS_TRUE_HANDLER } from '@taiga-ui/cdk';
|
16
16
|
import * as i4$1 from '@taiga-ui/kit';
|
17
17
|
import { TuiAccordionItemComponent, TuiAccordionModule, TuiElasticContainerModule, TuiInputModule, TuiFieldErrorPipeModule, TuiComboBoxModule, TuiDataListWrapperModule, TuiFilterByInputPipeModule, TuiStringifyContentPipeModule, TuiInputPhoneModule, TuiSelectModule, TuiCarouselModule, TuiInputPasswordModule, TuiCheckboxModule, TuiCheckboxLabeledModule, TuiStepperModule, TUI_NUMBER_VALUE_TRANSFORMER, TuiInputNumberComponent, TuiIslandModule, TuiInputNumberModule, TuiHighlightModule, TuiTreeService, TuiTreeItemContentComponent, TUI_TREE_START, TUI_TREE_CONTENT, TUI_TREE_LOADING, TUI_TREE_LOADER, TuiTreeModule, TuiAvatarModule } from '@taiga-ui/kit';
|
18
18
|
import * as i6$1 from '@maskito/angular';
|
@@ -27,7 +27,7 @@ import * as i7$1 from '@taiga-ui/addon-preview';
|
|
27
27
|
import { TuiPreviewModule, TuiPreviewDialogService } from '@taiga-ui/addon-preview';
|
28
28
|
import * as i7 from '@ng-web-apis/intersection-observer';
|
29
29
|
import { IntersectionObserverService, IntersectionObserverModule } from '@ng-web-apis/intersection-observer';
|
30
|
-
import { RouterModule
|
30
|
+
import { RouterModule } from '@angular/router';
|
31
31
|
import * as i9 from '@taiga-ui/addon-commerce';
|
32
32
|
import { TuiCurrencyPipeModule } from '@taiga-ui/addon-commerce';
|
33
33
|
import * as i4$2 from '@taiga-ui/addon-charts';
|
@@ -3772,100 +3772,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
3772
3772
|
type: Input
|
3773
3773
|
}], computeLabels$: [], computeValue: [] } });
|
3774
3774
|
|
3775
|
-
/**
|
3776
|
-
* Значения пагинации списка товаров категории по умолчанию.
|
3777
|
-
*/
|
3778
|
-
const SC_PRODUCT_PAGINATION_DEFAULT_OPTIONS = {
|
3779
|
-
perPage: 20,
|
3780
|
-
page: 0
|
3781
|
-
};
|
3782
|
-
/**
|
3783
|
-
* Токен значений пагинации списка товаров в категории по умолчанию.
|
3784
|
-
*/
|
3785
|
-
const SC_PRODUCT_PAGINATION_OPTIONS = tuiCreateToken(SC_PRODUCT_PAGINATION_DEFAULT_OPTIONS);
|
3786
|
-
/**
|
3787
|
-
* {@link Subject} параметров пагинации списка товаров в категории.
|
3788
|
-
*/
|
3789
|
-
const paginationParams$ = new Subject();
|
3790
|
-
/**
|
3791
|
-
* Токен {@link Subject} параметров пагинации списка товаров в категории для получения их из вне.
|
3792
|
-
*/
|
3793
|
-
const SC_PRODUCT_PAGINATION_PARAMS = tuiCreateToken(paginationParams$);
|
3794
|
-
/**
|
3795
|
-
* Фабрика создания потока данных о товарах категории с пагинацией, включая данные о количестве этих товаров в корзине.
|
3796
|
-
*
|
3797
|
-
* @param paramMap Данные о параметрах запроса.
|
3798
|
-
* @param catalogService Сервис для работы с каталогом.
|
3799
|
-
* @param cartService Сервис для работы с корзиной.
|
3800
|
-
* @param authService Сервис для работы с аутентификации пользователей.
|
3801
|
-
* @param destroy$ Сервис завершения {@link Observable} через `takeUntil`.
|
3802
|
-
*/
|
3803
|
-
function productsPaginationChangeFactory({ paramMap }, catalogService, cartService, authService, destroy$) {
|
3804
|
-
return paramMap.pipe(map((params) => params.get('categoryId')), filter(tuiIsPresent), switchMap((categoryId) => paginationParams$.pipe(debounceTime(20), switchMap((paginationParams) => authService.getAuthChange().pipe(switchMap(() => catalogService.getCategoryProducts$(Number(categoryId), paginationParams)))), filter(tuiIsPresent), scan((acc, value) => {
|
3805
|
-
if (acc && value && value.meta.currentPage > 1)
|
3806
|
-
value.data.unshift(...acc.data);
|
3807
|
-
return value;
|
3808
|
-
}, null), switchMap((productsPaginate) => cartService.getCartChange$().pipe(map((cart) => {
|
3809
|
-
productsPaginate === null || productsPaginate === void 0 ? void 0 : productsPaginate.data.forEach((product) => (product.cartItem = cart.items.find((cartItem) => cartItem.product.id === product.id)));
|
3810
|
-
return productsPaginate;
|
3811
|
-
}))), startWith(null))), share(), takeUntil(destroy$));
|
3812
|
-
}
|
3813
|
-
/**
|
3814
|
-
* Токен потока данных о товарах категории, включая данные о количестве этих товаров в корзине.
|
3815
|
-
*/
|
3816
|
-
const SC_PRODUCT_PAGINATION_CHANGE_INFO = new InjectionToken('SC_PRODUCT_PAGINATION_CHANGE_INFO');
|
3817
|
-
/**
|
3818
|
-
* {@link EventEmitter} событие нажатия на кнопку "Показать следующие позиции категории".
|
3819
|
-
*/
|
3820
|
-
const nextPageClickEvent = new EventEmitter();
|
3821
|
-
/**
|
3822
|
-
* Токен {@link EventEmitter} событие нажатия на кнопку "Показать следующие позиции категории".
|
3823
|
-
*/
|
3824
|
-
const SC_NEXT_PAGE_PAGINATION_CLICK = tuiCreateToken(nextPageClickEvent);
|
3825
|
-
/**
|
3826
|
-
* Фабрика создания потока данных о состоянии загрузки запроса списка товаров с пагинацией пагинации.
|
3827
|
-
*/
|
3828
|
-
function loadingPaginationFactory(productsData$, destroy$) {
|
3829
|
-
return merge(paginationParams$.pipe(map(() => true)), productsData$.pipe(map((data) => data === null))).pipe(share(), takeUntil(destroy$));
|
3830
|
-
}
|
3831
|
-
/**
|
3832
|
-
* Токен потока данных о состоянии загрузки товаров пагинации.
|
3833
|
-
*/
|
3834
|
-
const SC_LOADING_PAGINATION_CHANGE_INFO = new InjectionToken('SC_LOADING_PAGINATION_CHANGE_INFO');
|
3835
|
-
/**
|
3836
|
-
* Фабрика создания потока данных прокрутки страницы с сигналами о необходимости пагинации товара.
|
3837
|
-
*/
|
3838
|
-
function nextPagePaginationChangeFactory({ events }, nextPagePaginationClick, productsData$, destroy$) {
|
3839
|
-
return nextPagePaginationClick
|
3840
|
-
.pipe(scan((acc) => ++acc, 1), startWith(1))
|
3841
|
-
.pipe(takeUntil(merge(events.pipe(filter((e) => e instanceof NavigationEnd)), productsData$.pipe(filter((paginate) => paginate !== null && paginate.meta.currentPage >= paginate.meta.lastPage)), destroy$)));
|
3842
|
-
}
|
3843
|
-
/**
|
3844
|
-
* Токен потока данных прокрутки страницы с сигналами о необходимости пагинации товара.
|
3845
|
-
*/
|
3846
|
-
const SC_NEXT_PAGE_PAGINATION_CHANGE_INFO = new InjectionToken('SC_NEXT_PAGE_PAGINATION_CHANGE_INFO');
|
3847
|
-
/**
|
3848
|
-
* Провайдеры потока данных о товарах категории, включая данные о количестве этих товаров в корзине.
|
3849
|
-
*/
|
3850
|
-
const SC_PRODUCT_PAGINATION_CHANGE_PROVIDERS = [
|
3851
|
-
TuiDestroyService,
|
3852
|
-
{
|
3853
|
-
provide: SC_PRODUCT_PAGINATION_CHANGE_INFO,
|
3854
|
-
deps: [ActivatedRoute, ScCatalogService, ScCartService, ScAuthService, TuiDestroyService],
|
3855
|
-
useFactory: productsPaginationChangeFactory
|
3856
|
-
},
|
3857
|
-
{
|
3858
|
-
provide: SC_NEXT_PAGE_PAGINATION_CHANGE_INFO,
|
3859
|
-
deps: [Router, SC_NEXT_PAGE_PAGINATION_CLICK, SC_PRODUCT_PAGINATION_CHANGE_INFO, TuiDestroyService],
|
3860
|
-
useFactory: nextPagePaginationChangeFactory
|
3861
|
-
},
|
3862
|
-
{
|
3863
|
-
provide: SC_LOADING_PAGINATION_CHANGE_INFO,
|
3864
|
-
deps: [SC_PRODUCT_PAGINATION_CHANGE_INFO, TuiDestroyService],
|
3865
|
-
useFactory: loadingPaginationFactory
|
3866
|
-
}
|
3867
|
-
];
|
3868
|
-
|
3869
3775
|
/**
|
3870
3776
|
* Компонент элементов управления пагинацией списка товаров.
|
3871
3777
|
*/
|
@@ -3879,13 +3785,27 @@ class ScPriceListPaginationComponent {
|
|
3879
3785
|
constructor(nextPageClickEvent, options) {
|
3880
3786
|
this.nextPageClickEvent = nextPageClickEvent;
|
3881
3787
|
this.options = options;
|
3788
|
+
/**
|
3789
|
+
* Сервис пагинации.
|
3790
|
+
*/
|
3791
|
+
this.paginationService = inject((ScPaginationService), {
|
3792
|
+
skipSelf: true,
|
3793
|
+
});
|
3794
|
+
/**
|
3795
|
+
* Дополнительные данные пагинации.
|
3796
|
+
*/
|
3797
|
+
this.meta$ = this.paginationService.dataAccumulated$.pipe(filter(tuiIsPresent), map((pagination) => pagination.meta));
|
3798
|
+
/**
|
3799
|
+
* Признак, что кнопка неактивна.
|
3800
|
+
*/
|
3801
|
+
this.disabled$ = this.paginationService.dataAccumulated$.pipe(map(tuiIsFalsy));
|
3882
3802
|
}
|
3883
3803
|
}
|
3884
3804
|
ScPriceListPaginationComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScPriceListPaginationComponent, deps: [{ token: SC_NEXT_PAGE_PAGINATION_CLICK }, { token: SC_PRODUCT_PAGINATION_OPTIONS }], target: i0.ɵɵFactoryTarget.Component });
|
3885
|
-
ScPriceListPaginationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ScPriceListPaginationComponent, selector: "sc-price-list-pagination",
|
3805
|
+
ScPriceListPaginationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ScPriceListPaginationComponent, selector: "sc-price-list-pagination", ngImport: i0, template: "<ng-container *ngIf=\"meta$ | async as meta\">\n <button\n *ngIf=\"meta?.currentPage !== meta?.lastPage\"\n tuiButton\n (click)=\"nextPageClickEvent.emit()\"\n [disabled]=\"!!(disabled$ | async)\"\n appearance=\"secondary\"\n class=\"!font-bold\"\n >\n \u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0435\u0449\u0451 {{ options.perPage }} \u0442\u043E\u0432\u0430\u0440\u043E\u0432\n </button>\n</ng-container>\n", dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.TuiButtonComponent, selector: "button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]", inputs: ["appearance", "disabled", "icon", "iconRight", "shape", "showLoader", "size"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
3886
3806
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScPriceListPaginationComponent, decorators: [{
|
3887
3807
|
type: Component,
|
3888
|
-
args: [{ selector: 'sc-price-list-pagination', changeDetection: ChangeDetectionStrategy.OnPush,
|
3808
|
+
args: [{ selector: 'sc-price-list-pagination', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"meta$ | async as meta\">\n <button\n *ngIf=\"meta?.currentPage !== meta?.lastPage\"\n tuiButton\n (click)=\"nextPageClickEvent.emit()\"\n [disabled]=\"!!(disabled$ | async)\"\n appearance=\"secondary\"\n class=\"!font-bold\"\n >\n \u041F\u043E\u043A\u0430\u0437\u0430\u0442\u044C \u0435\u0449\u0451 {{ options.perPage }} \u0442\u043E\u0432\u0430\u0440\u043E\u0432\n </button>\n</ng-container>\n" }]
|
3889
3809
|
}], ctorParameters: function () {
|
3890
3810
|
return [{ type: i0.EventEmitter, decorators: [{
|
3891
3811
|
type: Inject,
|
@@ -3894,11 +3814,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
3894
3814
|
type: Inject,
|
3895
3815
|
args: [SC_PRODUCT_PAGINATION_OPTIONS]
|
3896
3816
|
}] }];
|
3897
|
-
}
|
3898
|
-
type: Input
|
3899
|
-
}], loadingPagination: [{
|
3900
|
-
type: Input
|
3901
|
-
}] } });
|
3817
|
+
} });
|
3902
3818
|
|
3903
3819
|
/**
|
3904
3820
|
* Модуль каталога.
|
@@ -4171,10 +4087,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
4171
4087
|
}]
|
4172
4088
|
}] });
|
4173
4089
|
|
4090
|
+
var ScAddDeliveryAddressDialogComponent_1;
|
4174
4091
|
/**
|
4175
4092
|
* Компонент добавления адреса доставки.
|
4176
4093
|
*/
|
4177
|
-
let ScAddDeliveryAddressDialogComponent = class ScAddDeliveryAddressDialogComponent {
|
4094
|
+
let ScAddDeliveryAddressDialogComponent = ScAddDeliveryAddressDialogComponent_1 = class ScAddDeliveryAddressDialogComponent {
|
4178
4095
|
/**
|
4179
4096
|
* Инициализирует экземпляр класса {@link ScAddDeliveryAddressDialogComponent}.
|
4180
4097
|
*
|
@@ -4261,6 +4178,14 @@ let ScAddDeliveryAddressDialogComponent = class ScAddDeliveryAddressDialogCompon
|
|
4261
4178
|
}),
|
4262
4179
|
});
|
4263
4180
|
}
|
4181
|
+
/**
|
4182
|
+
* Округляет координаты до 6 цифр после запятой.
|
4183
|
+
*
|
4184
|
+
* @param coords Координаты точки.
|
4185
|
+
*/
|
4186
|
+
static roundCoordinate(coords) {
|
4187
|
+
return coords.map((coord) => Math.round(coord * 1e6) / 1e6);
|
4188
|
+
}
|
4264
4189
|
/** @inheritdoc */
|
4265
4190
|
ngAfterViewInit() {
|
4266
4191
|
this.userMetrikaService.emitUserMetrikaEvent({
|
@@ -4295,7 +4220,7 @@ let ScAddDeliveryAddressDialogComponent = class ScAddDeliveryAddressDialogCompon
|
|
4295
4220
|
onSelectedAddress(suggestion) {
|
4296
4221
|
var _a, _b, _c, _d, _e;
|
4297
4222
|
if ('addressString' in suggestion && suggestion.geoCoordinates) {
|
4298
|
-
const coords = [suggestion.geoCoordinates.lat, suggestion.geoCoordinates.long];
|
4223
|
+
const coords = ScAddDeliveryAddressDialogComponent_1.roundCoordinate([suggestion.geoCoordinates.lat, suggestion.geoCoordinates.long]);
|
4299
4224
|
if (!this.addressPlacemark) {
|
4300
4225
|
this.addressPlacemark = this.createPlacemark(coords);
|
4301
4226
|
}
|
@@ -4321,8 +4246,8 @@ let ScAddDeliveryAddressDialogComponent = class ScAddDeliveryAddressDialogCompon
|
|
4321
4246
|
(_a = this.addressPlacemark.geometry) === null || _a === void 0 ? void 0 : _a.setCoordinates(coords);
|
4322
4247
|
this.form.patchValue({
|
4323
4248
|
coordinates: {
|
4324
|
-
lat: coords[0],
|
4325
|
-
long: coords[1],
|
4249
|
+
lat: Number(coords[0].toFixed(6)),
|
4250
|
+
long: Number(coords[1].toFixed(6)),
|
4326
4251
|
},
|
4327
4252
|
});
|
4328
4253
|
}
|
@@ -4360,7 +4285,7 @@ let ScAddDeliveryAddressDialogComponent = class ScAddDeliveryAddressDialogCompon
|
|
4360
4285
|
var _a, _b;
|
4361
4286
|
const coord = (_b = (_a = this.addressPlacemark) === null || _a === void 0 ? void 0 : _a.geometry) === null || _b === void 0 ? void 0 : _b.getCoordinates();
|
4362
4287
|
if (coord) {
|
4363
|
-
this.setGeoCoordinates(coord);
|
4288
|
+
this.setGeoCoordinates(ScAddDeliveryAddressDialogComponent_1.roundCoordinate(coord));
|
4364
4289
|
}
|
4365
4290
|
});
|
4366
4291
|
return placemark;
|
@@ -4368,7 +4293,7 @@ let ScAddDeliveryAddressDialogComponent = class ScAddDeliveryAddressDialogCompon
|
|
4368
4293
|
};
|
4369
4294
|
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 });
|
4370
4295
|
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\n [pseudoInvalid]=\"(addressControl.valid && form.controls.coordinates.invalid) || null\"\n formControlName=\"address\"\n >\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=\"new-password\"\n />\n </tui-input>\n <tui-error\n formControlName=\"address\"\n [error]=\"[] | tuiFieldError | async\"\n ></tui-error>\n <tui-error\n *ngIf=\"addressControl.valid && form.controls.coordinates.invalid\"\n error=\"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0432\u0430\u0440\u0438\u0430\u043D\u0442 \u0438\u0437 \u0441\u043F\u0438\u0441\u043A\u0430\"\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\n class=\"flex-auto\"\n [ngClass]=\"{ 'pointer-events-none opacity-50': form.controls.coordinates.invalid }\"\n >\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: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4.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: i4.TuiLabelComponent, selector: "label[tuiLabel]", inputs: ["tuiLabel", "context"] }, { kind: "component", type: i4.TuiErrorComponent, selector: "tui-error", inputs: ["error"] }, { kind: "component", type: i4$1.TuiInputComponent, selector: "tui-input" }, { kind: "directive", type: i4$1.TuiInputDirective, selector: "tui-input" }, { kind: "component", type: i4.TuiTextfieldComponent, selector: "input[tuiTextfield], textarea[tuiTextfield]" }, { kind: "component", type: i4$1.TuiInputPhoneComponent, selector: "tui-input-phone", inputs: ["countryCode", "phoneMaskAfterCountryCode", "allowText", "search"], outputs: ["searchChange"] }, { kind: "directive", type: i4$1.TuiInputPhoneDirective, selector: "tui-input-phone" }, { kind: "component", type: ScSuggestionFieldComponent, selector: "sc-suggestion-field", inputs: ["type"], outputs: ["selectedClick"] }, { kind: "directive", type: i4.TuiDataListDirective, selector: "ng-template[tuiDataList]" }, { kind: "component", type: i7$2.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: i4$1.TuiFieldErrorPipe, name: "tuiFieldError" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
4371
|
-
ScAddDeliveryAddressDialogComponent = __decorate([
|
4296
|
+
ScAddDeliveryAddressDialogComponent = ScAddDeliveryAddressDialogComponent_1 = __decorate([
|
4372
4297
|
UntilDestroy({ checkProperties: true })
|
4373
4298
|
], ScAddDeliveryAddressDialogComponent);
|
4374
4299
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScAddDeliveryAddressDialogComponent, decorators: [{
|
@@ -5992,5 +5917,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
5992
5917
|
* Generated bundle index. Do not edit.
|
5993
5918
|
*/
|
5994
5919
|
|
5995
|
-
export { AbstractScPriceCard, AuthMethod, FilesAndDocumentsComponent, FilesAndDocumentsModule, SC_LINEAR_VALUES, SC_LINEAR_VALUES_TOKEN,
|
5920
|
+
export { AbstractScPriceCard, AuthMethod, FilesAndDocumentsComponent, FilesAndDocumentsModule, SC_LINEAR_VALUES, SC_LINEAR_VALUES_TOKEN, SC_USER_INFO, SC_USER_PROVIDERS, ScAccordionComponent, ScAccordionContentDirective, ScAccordionModule, ScAddContactDialogComponent, ScAddContragentBankAccountsDialogComponent, ScAddContragentDialogComponent, ScAddDeliveryAddressDialogComponent, ScAddressesSelectionFieldComponent, ScAskToSampleFormComponent, ScAuthModule, ScBannerComponent, ScBannerModule, ScBrandsListComponent, ScBrandsListModule, ScCartItemMobileComponent, ScCartModule, ScCatalogModule, ScCategoriesListComponent, ScCategoryCardComponent, ScContactsAccordionComponent, ScContactsModule, ScContragentsAccordionComponent, ScContragentsAccordionItemComponent, ScContragentsModule, ScDeliveryAddressAccordionComponent, ScDeliveryAddressAccordionItemComponent, ScDeliveryAddressModule, ScFavoriteBtnComponent, ScFormFieldsModule, ScFormatePhonePipe, ScInputQuantityComponent, ScNewContactFormComponent, ScNewContragentBankAccountsFormComponent, ScNewContragentFormComponent, ScNewsCardComponent, ScNewsCardSkeletonComponent, ScNewsModule, ScNextInputFocusDirective, ScNextInputFocusModule, ScOrderItemMobileComponent, ScOrderModule, ScPaymentStatusComponent, ScPreviewSampleComponent, ScPreviewSampleModule, ScPriceCardComponent, ScPriceHistoryComponent, ScPriceListPaginationComponent, ScPriceWarehouseStockComponent, ScProfileAccordionsContentComponent, ScProfileModule, ScQRCodeDialogComponent, ScQRCodeModule, ScResetUserPasswordComponent, ScShareButtonComponent, ScShareButtonModule, ScSignInFormByEmailComponent, ScSignInFormByPhoneComponent, ScSignInFormComponent, ScSignUpFormComponent, ScSuggestionFieldComponent, ScTelLinkDirective, ScTelLinkModule, ScTerminalLinkDirective, ScUpdateUserInfoDialogComponent, ScUserManagersComponent, ScUserModule, ScUserPhoneApproveDialogComponent, ScVerificationModule, ScVerificationPhoneCheckFormComponent, TreeDirective, TreeIconService, TreeLoaderService, TreeTopDirective, scBicValidator, scClientUiIconsName, scCorrespondentAccountValidator, scPasswordConfirmMatchingValidator, scUserFactory, stepValidator };
|
5996
5921
|
//# sourceMappingURL=snabcentr-client-ui.mjs.map
|