@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';
|
@@ -3713,100 +3713,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
3713
3713
|
type: Input
|
3714
3714
|
}], computeLabels$: [], computeValue: [] } });
|
3715
3715
|
|
3716
|
-
/**
|
3717
|
-
* Значения пагинации списка товаров категории по умолчанию.
|
3718
|
-
*/
|
3719
|
-
const SC_PRODUCT_PAGINATION_DEFAULT_OPTIONS = {
|
3720
|
-
perPage: 20,
|
3721
|
-
page: 0
|
3722
|
-
};
|
3723
|
-
/**
|
3724
|
-
* Токен значений пагинации списка товаров в категории по умолчанию.
|
3725
|
-
*/
|
3726
|
-
const SC_PRODUCT_PAGINATION_OPTIONS = tuiCreateToken(SC_PRODUCT_PAGINATION_DEFAULT_OPTIONS);
|
3727
|
-
/**
|
3728
|
-
* {@link Subject} параметров пагинации списка товаров в категории.
|
3729
|
-
*/
|
3730
|
-
const paginationParams$ = new Subject();
|
3731
|
-
/**
|
3732
|
-
* Токен {@link Subject} параметров пагинации списка товаров в категории для получения их из вне.
|
3733
|
-
*/
|
3734
|
-
const SC_PRODUCT_PAGINATION_PARAMS = tuiCreateToken(paginationParams$);
|
3735
|
-
/**
|
3736
|
-
* Фабрика создания потока данных о товарах категории с пагинацией, включая данные о количестве этих товаров в корзине.
|
3737
|
-
*
|
3738
|
-
* @param paramMap Данные о параметрах запроса.
|
3739
|
-
* @param catalogService Сервис для работы с каталогом.
|
3740
|
-
* @param cartService Сервис для работы с корзиной.
|
3741
|
-
* @param authService Сервис для работы с аутентификации пользователей.
|
3742
|
-
* @param destroy$ Сервис завершения {@link Observable} через `takeUntil`.
|
3743
|
-
*/
|
3744
|
-
function productsPaginationChangeFactory({ paramMap }, catalogService, cartService, authService, destroy$) {
|
3745
|
-
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) => {
|
3746
|
-
if (acc && value && value.meta.currentPage > 1)
|
3747
|
-
value.data.unshift(...acc.data);
|
3748
|
-
return value;
|
3749
|
-
}, null), switchMap((productsPaginate) => cartService.getCartChange$().pipe(map((cart) => {
|
3750
|
-
productsPaginate?.data.forEach((product) => (product.cartItem = cart.items.find((cartItem) => cartItem.product.id === product.id)));
|
3751
|
-
return productsPaginate;
|
3752
|
-
}))), startWith(null))), share(), takeUntil(destroy$));
|
3753
|
-
}
|
3754
|
-
/**
|
3755
|
-
* Токен потока данных о товарах категории, включая данные о количестве этих товаров в корзине.
|
3756
|
-
*/
|
3757
|
-
const SC_PRODUCT_PAGINATION_CHANGE_INFO = new InjectionToken('SC_PRODUCT_PAGINATION_CHANGE_INFO');
|
3758
|
-
/**
|
3759
|
-
* {@link EventEmitter} событие нажатия на кнопку "Показать следующие позиции категории".
|
3760
|
-
*/
|
3761
|
-
const nextPageClickEvent = new EventEmitter();
|
3762
|
-
/**
|
3763
|
-
* Токен {@link EventEmitter} событие нажатия на кнопку "Показать следующие позиции категории".
|
3764
|
-
*/
|
3765
|
-
const SC_NEXT_PAGE_PAGINATION_CLICK = tuiCreateToken(nextPageClickEvent);
|
3766
|
-
/**
|
3767
|
-
* Фабрика создания потока данных о состоянии загрузки запроса списка товаров с пагинацией пагинации.
|
3768
|
-
*/
|
3769
|
-
function loadingPaginationFactory(productsData$, destroy$) {
|
3770
|
-
return merge(paginationParams$.pipe(map(() => true)), productsData$.pipe(map((data) => data === null))).pipe(share(), takeUntil(destroy$));
|
3771
|
-
}
|
3772
|
-
/**
|
3773
|
-
* Токен потока данных о состоянии загрузки товаров пагинации.
|
3774
|
-
*/
|
3775
|
-
const SC_LOADING_PAGINATION_CHANGE_INFO = new InjectionToken('SC_LOADING_PAGINATION_CHANGE_INFO');
|
3776
|
-
/**
|
3777
|
-
* Фабрика создания потока данных прокрутки страницы с сигналами о необходимости пагинации товара.
|
3778
|
-
*/
|
3779
|
-
function nextPagePaginationChangeFactory({ events }, nextPagePaginationClick, productsData$, destroy$) {
|
3780
|
-
return nextPagePaginationClick
|
3781
|
-
.pipe(scan((acc) => ++acc, 1), startWith(1))
|
3782
|
-
.pipe(takeUntil(merge(events.pipe(filter((e) => e instanceof NavigationEnd)), productsData$.pipe(filter((paginate) => paginate !== null && paginate.meta.currentPage >= paginate.meta.lastPage)), destroy$)));
|
3783
|
-
}
|
3784
|
-
/**
|
3785
|
-
* Токен потока данных прокрутки страницы с сигналами о необходимости пагинации товара.
|
3786
|
-
*/
|
3787
|
-
const SC_NEXT_PAGE_PAGINATION_CHANGE_INFO = new InjectionToken('SC_NEXT_PAGE_PAGINATION_CHANGE_INFO');
|
3788
|
-
/**
|
3789
|
-
* Провайдеры потока данных о товарах категории, включая данные о количестве этих товаров в корзине.
|
3790
|
-
*/
|
3791
|
-
const SC_PRODUCT_PAGINATION_CHANGE_PROVIDERS = [
|
3792
|
-
TuiDestroyService,
|
3793
|
-
{
|
3794
|
-
provide: SC_PRODUCT_PAGINATION_CHANGE_INFO,
|
3795
|
-
deps: [ActivatedRoute, ScCatalogService, ScCartService, ScAuthService, TuiDestroyService],
|
3796
|
-
useFactory: productsPaginationChangeFactory
|
3797
|
-
},
|
3798
|
-
{
|
3799
|
-
provide: SC_NEXT_PAGE_PAGINATION_CHANGE_INFO,
|
3800
|
-
deps: [Router, SC_NEXT_PAGE_PAGINATION_CLICK, SC_PRODUCT_PAGINATION_CHANGE_INFO, TuiDestroyService],
|
3801
|
-
useFactory: nextPagePaginationChangeFactory
|
3802
|
-
},
|
3803
|
-
{
|
3804
|
-
provide: SC_LOADING_PAGINATION_CHANGE_INFO,
|
3805
|
-
deps: [SC_PRODUCT_PAGINATION_CHANGE_INFO, TuiDestroyService],
|
3806
|
-
useFactory: loadingPaginationFactory
|
3807
|
-
}
|
3808
|
-
];
|
3809
|
-
|
3810
3716
|
/**
|
3811
3717
|
* Компонент элементов управления пагинацией списка товаров.
|
3812
3718
|
*/
|
@@ -3820,24 +3726,34 @@ class ScPriceListPaginationComponent {
|
|
3820
3726
|
constructor(nextPageClickEvent, options) {
|
3821
3727
|
this.nextPageClickEvent = nextPageClickEvent;
|
3822
3728
|
this.options = options;
|
3729
|
+
/**
|
3730
|
+
* Сервис пагинации.
|
3731
|
+
*/
|
3732
|
+
this.paginationService = inject((ScPaginationService), {
|
3733
|
+
skipSelf: true,
|
3734
|
+
});
|
3735
|
+
/**
|
3736
|
+
* Дополнительные данные пагинации.
|
3737
|
+
*/
|
3738
|
+
this.meta$ = this.paginationService.dataAccumulated$.pipe(filter(tuiIsPresent), map((pagination) => pagination.meta));
|
3739
|
+
/**
|
3740
|
+
* Признак, что кнопка неактивна.
|
3741
|
+
*/
|
3742
|
+
this.disabled$ = this.paginationService.dataAccumulated$.pipe(map(tuiIsFalsy));
|
3823
3743
|
}
|
3824
3744
|
}
|
3825
3745
|
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 });
|
3826
|
-
ScPriceListPaginationComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ScPriceListPaginationComponent, selector: "sc-price-list-pagination",
|
3746
|
+
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 });
|
3827
3747
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScPriceListPaginationComponent, decorators: [{
|
3828
3748
|
type: Component,
|
3829
|
-
args: [{ selector: 'sc-price-list-pagination', changeDetection: ChangeDetectionStrategy.OnPush,
|
3749
|
+
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" }]
|
3830
3750
|
}], ctorParameters: function () { return [{ type: i0.EventEmitter, decorators: [{
|
3831
3751
|
type: Inject,
|
3832
3752
|
args: [SC_NEXT_PAGE_PAGINATION_CLICK]
|
3833
3753
|
}] }, { type: undefined, decorators: [{
|
3834
3754
|
type: Inject,
|
3835
3755
|
args: [SC_PRODUCT_PAGINATION_OPTIONS]
|
3836
|
-
}] }]; }
|
3837
|
-
type: Input
|
3838
|
-
}], loadingPagination: [{
|
3839
|
-
type: Input
|
3840
|
-
}] } });
|
3756
|
+
}] }]; } });
|
3841
3757
|
|
3842
3758
|
/**
|
3843
3759
|
* Модуль каталога.
|
@@ -4105,10 +4021,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
4105
4021
|
}]
|
4106
4022
|
}] });
|
4107
4023
|
|
4024
|
+
var ScAddDeliveryAddressDialogComponent_1;
|
4108
4025
|
/**
|
4109
4026
|
* Компонент добавления адреса доставки.
|
4110
4027
|
*/
|
4111
|
-
let ScAddDeliveryAddressDialogComponent = class ScAddDeliveryAddressDialogComponent {
|
4028
|
+
let ScAddDeliveryAddressDialogComponent = ScAddDeliveryAddressDialogComponent_1 = class ScAddDeliveryAddressDialogComponent {
|
4112
4029
|
/**
|
4113
4030
|
* Инициализирует экземпляр класса {@link ScAddDeliveryAddressDialogComponent}.
|
4114
4031
|
*
|
@@ -4194,6 +4111,14 @@ let ScAddDeliveryAddressDialogComponent = class ScAddDeliveryAddressDialogCompon
|
|
4194
4111
|
}),
|
4195
4112
|
});
|
4196
4113
|
}
|
4114
|
+
/**
|
4115
|
+
* Округляет координаты до 6 цифр после запятой.
|
4116
|
+
*
|
4117
|
+
* @param coords Координаты точки.
|
4118
|
+
*/
|
4119
|
+
static roundCoordinate(coords) {
|
4120
|
+
return coords.map((coord) => Math.round(coord * 1e6) / 1e6);
|
4121
|
+
}
|
4197
4122
|
/** @inheritdoc */
|
4198
4123
|
ngAfterViewInit() {
|
4199
4124
|
this.userMetrikaService.emitUserMetrikaEvent({
|
@@ -4226,7 +4151,7 @@ let ScAddDeliveryAddressDialogComponent = class ScAddDeliveryAddressDialogCompon
|
|
4226
4151
|
*/
|
4227
4152
|
onSelectedAddress(suggestion) {
|
4228
4153
|
if ('addressString' in suggestion && suggestion.geoCoordinates) {
|
4229
|
-
const coords = [suggestion.geoCoordinates.lat, suggestion.geoCoordinates.long];
|
4154
|
+
const coords = ScAddDeliveryAddressDialogComponent_1.roundCoordinate([suggestion.geoCoordinates.lat, suggestion.geoCoordinates.long]);
|
4230
4155
|
if (!this.addressPlacemark) {
|
4231
4156
|
this.addressPlacemark = this.createPlacemark(coords);
|
4232
4157
|
}
|
@@ -4251,8 +4176,8 @@ let ScAddDeliveryAddressDialogComponent = class ScAddDeliveryAddressDialogCompon
|
|
4251
4176
|
this.addressPlacemark.geometry?.setCoordinates(coords);
|
4252
4177
|
this.form.patchValue({
|
4253
4178
|
coordinates: {
|
4254
|
-
lat: coords[0],
|
4255
|
-
long: coords[1],
|
4179
|
+
lat: Number(coords[0].toFixed(6)),
|
4180
|
+
long: Number(coords[1].toFixed(6)),
|
4256
4181
|
},
|
4257
4182
|
});
|
4258
4183
|
}
|
@@ -4288,7 +4213,7 @@ let ScAddDeliveryAddressDialogComponent = class ScAddDeliveryAddressDialogCompon
|
|
4288
4213
|
placemark.events.add('dragend', () => {
|
4289
4214
|
const coord = this.addressPlacemark?.geometry?.getCoordinates();
|
4290
4215
|
if (coord) {
|
4291
|
-
this.setGeoCoordinates(coord);
|
4216
|
+
this.setGeoCoordinates(ScAddDeliveryAddressDialogComponent_1.roundCoordinate(coord));
|
4292
4217
|
}
|
4293
4218
|
});
|
4294
4219
|
return placemark;
|
@@ -4296,7 +4221,7 @@ let ScAddDeliveryAddressDialogComponent = class ScAddDeliveryAddressDialogCompon
|
|
4296
4221
|
};
|
4297
4222
|
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 });
|
4298
4223
|
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 });
|
4299
|
-
ScAddDeliveryAddressDialogComponent = __decorate([
|
4224
|
+
ScAddDeliveryAddressDialogComponent = ScAddDeliveryAddressDialogComponent_1 = __decorate([
|
4300
4225
|
UntilDestroy({ checkProperties: true })
|
4301
4226
|
], ScAddDeliveryAddressDialogComponent);
|
4302
4227
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScAddDeliveryAddressDialogComponent, decorators: [{
|
@@ -5900,5 +5825,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
5900
5825
|
* Generated bundle index. Do not edit.
|
5901
5826
|
*/
|
5902
5827
|
|
5903
|
-
export { AbstractScPriceCard, AuthMethod, FilesAndDocumentsComponent, FilesAndDocumentsModule, SC_LINEAR_VALUES, SC_LINEAR_VALUES_TOKEN,
|
5828
|
+
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 };
|
5904
5829
|
//# sourceMappingURL=snabcentr-client-ui.mjs.map
|