@snabcentr/client-ui 1.7.0 → 1.8.1
Sign up to get free protection for your applications and to get access to all the features.
- package/directives/index.d.ts +1 -0
- package/esm2020/directives/index.mjs +2 -1
- package/esm2020/public-api.mjs +2 -1
- package/esm2020/samples/ask-to-sample-form/sc-ask-to-sample-form.component.mjs +36 -0
- package/esm2020/samples/index.mjs +5 -0
- package/esm2020/samples/interfaces/sc-i-preview-sample.mjs +2 -0
- package/esm2020/samples/preview-sample/sc-preview-sample.component.mjs +82 -0
- package/esm2020/samples/sc-sample.module.mjs +65 -0
- package/fesm2015/snabcentr-client-ui.mjs +208 -50
- package/fesm2015/snabcentr-client-ui.mjs.map +1 -1
- package/fesm2020/snabcentr-client-ui.mjs +206 -50
- package/fesm2020/snabcentr-client-ui.mjs.map +1 -1
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
- package/samples/ask-to-sample-form/sc-ask-to-sample-form.component.d.ts +18 -0
- package/samples/index.d.ts +4 -0
- package/samples/interfaces/sc-i-preview-sample.d.ts +47 -0
- package/samples/preview-sample/sc-preview-sample.component.d.ts +48 -0
- package/samples/sc-sample.module.d.ts +17 -0
- package/styles/taiga/taiga-tailwind-preset.js +7 -0
- package/styles/tailwind/tailwind.scss +77 -0
@@ -12,9 +12,9 @@ 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, TuiDestroyService, ALWAYS_TRUE_HANDLER } from '@taiga-ui/cdk';
|
15
|
+
import { tuiControlValue, tuiIsFalsy, tuiIsPresent, tuiMarkControlAsTouchedAndValidate, AbstractTuiControl, tuiCreateToken, TuiLetModule, TuiRepeatTimesModule, TUI_IS_MOBILE, tuiPure, AbstractTuiNullableControl, TuiDay, TuiDayRange, TuiMonth, TuiDestroyService, TuiHoveredModule, ALWAYS_TRUE_HANDLER } from '@taiga-ui/cdk';
|
16
16
|
import * as i4$1 from '@taiga-ui/kit';
|
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 } from '@taiga-ui/kit';
|
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';
|
19
19
|
import { MaskitoModule } from '@maskito/angular';
|
20
20
|
import { __decorate } from 'tslib';
|
@@ -1764,6 +1764,53 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
1764
1764
|
type: Input
|
1765
1765
|
}] } });
|
1766
1766
|
|
1767
|
+
/* eslint-disable class-methods-use-this */
|
1768
|
+
/**
|
1769
|
+
* Пайп для форматирования номера телефона.
|
1770
|
+
*
|
1771
|
+
* Если переданный номер телефона валиден, он будет отформатирован с использованием метода `formatPhoneNumber` сервиса `ScPhoneService`.
|
1772
|
+
* Если номер невалиден, возвращается исходное значение.
|
1773
|
+
*/
|
1774
|
+
class ScFormatePhonePipe {
|
1775
|
+
/**
|
1776
|
+
* Преобразует строковое значение номера телефона.
|
1777
|
+
*
|
1778
|
+
* @param value Строка, содержащая номер телефона.
|
1779
|
+
* @returns Отформатированный номер телефона, если он валиден, или исходное значение, если он невалиден.
|
1780
|
+
*/
|
1781
|
+
transform(value) {
|
1782
|
+
if (ScPhoneService.isValidPhoneNumber(value)) {
|
1783
|
+
return ScPhoneService.formatPhoneNumber(value);
|
1784
|
+
}
|
1785
|
+
return value; // Возвращаем оригинальный номер, если он невалиден
|
1786
|
+
}
|
1787
|
+
}
|
1788
|
+
ScFormatePhonePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScFormatePhonePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
1789
|
+
ScFormatePhonePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: ScFormatePhonePipe, isStandalone: true, name: "scFormatePhone" });
|
1790
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScFormatePhonePipe, decorators: [{
|
1791
|
+
type: Pipe,
|
1792
|
+
args: [{
|
1793
|
+
standalone: true,
|
1794
|
+
name: 'scFormatePhone',
|
1795
|
+
}]
|
1796
|
+
}] });
|
1797
|
+
|
1798
|
+
/**
|
1799
|
+
* Модуль валидации значения номера телефона.
|
1800
|
+
*/
|
1801
|
+
class ScTelLinkModule {
|
1802
|
+
}
|
1803
|
+
ScTelLinkModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScTelLinkModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
1804
|
+
ScTelLinkModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: ScTelLinkModule, imports: [ScFormatePhonePipe, ScTelLinkDirective], exports: [ScFormatePhonePipe, ScTelLinkDirective] });
|
1805
|
+
ScTelLinkModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScTelLinkModule });
|
1806
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScTelLinkModule, decorators: [{
|
1807
|
+
type: NgModule,
|
1808
|
+
args: [{
|
1809
|
+
imports: [ScFormatePhonePipe, ScTelLinkDirective],
|
1810
|
+
exports: [ScFormatePhonePipe, ScTelLinkDirective],
|
1811
|
+
}]
|
1812
|
+
}] });
|
1813
|
+
|
1767
1814
|
/**
|
1768
1815
|
* Компонент QR кода.
|
1769
1816
|
*/
|
@@ -1968,37 +2015,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
1968
2015
|
}]
|
1969
2016
|
}] });
|
1970
2017
|
|
1971
|
-
/* eslint-disable class-methods-use-this */
|
1972
|
-
/**
|
1973
|
-
* Пайп для форматирования номера телефона.
|
1974
|
-
*
|
1975
|
-
* Если переданный номер телефона валиден, он будет отформатирован с использованием метода `formatPhoneNumber` сервиса `ScPhoneService`.
|
1976
|
-
* Если номер невалиден, возвращается исходное значение.
|
1977
|
-
*/
|
1978
|
-
class ScFormatePhonePipe {
|
1979
|
-
/**
|
1980
|
-
* Преобразует строковое значение номера телефона.
|
1981
|
-
*
|
1982
|
-
* @param value Строка, содержащая номер телефона.
|
1983
|
-
* @returns Отформатированный номер телефона, если он валиден, или исходное значение, если он невалиден.
|
1984
|
-
*/
|
1985
|
-
transform(value) {
|
1986
|
-
if (ScPhoneService.isValidPhoneNumber(value)) {
|
1987
|
-
return ScPhoneService.formatPhoneNumber(value);
|
1988
|
-
}
|
1989
|
-
return value; // Возвращаем оригинальный номер, если он невалиден
|
1990
|
-
}
|
1991
|
-
}
|
1992
|
-
ScFormatePhonePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScFormatePhonePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
1993
|
-
ScFormatePhonePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: ScFormatePhonePipe, isStandalone: true, name: "scFormatePhone" });
|
1994
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScFormatePhonePipe, decorators: [{
|
1995
|
-
type: Pipe,
|
1996
|
-
args: [{
|
1997
|
-
standalone: true,
|
1998
|
-
name: 'scFormatePhone',
|
1999
|
-
}]
|
2000
|
-
}] });
|
2001
|
-
|
2002
2018
|
/* eslint-disable no-restricted-syntax,@typescript-eslint/unbound-method */
|
2003
2019
|
/**
|
2004
2020
|
* Компонент формы создания нового контактного лица.
|
@@ -5198,6 +5214,164 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
5198
5214
|
}]
|
5199
5215
|
}] });
|
5200
5216
|
|
5217
|
+
/* eslint-disable @typescript-eslint/unbound-method */
|
5218
|
+
/**
|
5219
|
+
* Компонент формы запроса бесплатного образца.
|
5220
|
+
*/
|
5221
|
+
class ScAskToSampleFormComponent {
|
5222
|
+
constructor() {
|
5223
|
+
/**
|
5224
|
+
* Группа полей ввода для формы «Пожелания и предложения по улучшению сайта».
|
5225
|
+
*/
|
5226
|
+
this.form = new FormGroup({
|
5227
|
+
name: new FormControl(null, [Validators.required, Validators.minLength(3)]),
|
5228
|
+
phone: new FormControl(null, [Validators.required, Validators.minLength(12)]),
|
5229
|
+
email: new FormControl(null, [Validators.required, Validators.email]),
|
5230
|
+
});
|
5231
|
+
/**
|
5232
|
+
* Перечисление типов подсказок.
|
5233
|
+
*/
|
5234
|
+
this.suggestionType = ScISuggestionType;
|
5235
|
+
}
|
5236
|
+
}
|
5237
|
+
ScAskToSampleFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScAskToSampleFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
5238
|
+
ScAskToSampleFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ScAskToSampleFormComponent, selector: "sc-ask-to-sample-form", ngImport: i0, template: "<form\n [formGroup]=\"form\"\n class=\"flex flex-col justify-between gap-4\"\n>\n <label tuiLabel=\"\u0424\u0418\u041E\">\n <tui-input formControlName=\"name\"> \u0418\u0432\u0430\u043D\u043E\u0432 \u0418\u0432\u0430\u043D \u0418\u0432\u0430\u043D\u043E\u0432\u0438\u0447 </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\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 <button\n tuiButton\n [disabled]=\"form.invalid\"\n type=\"submit\"\n icon=\"scIconSend\"\n class=\"self-center\"\n >\n \u041E\u0441\u0442\u0430\u0432\u0438\u0442\u044C\n </button>\n</form>\n", dependencies: [{ 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.TuiErrorComponent, selector: "tui-error", inputs: ["error"] }, { kind: "component", type: ScSuggestionFieldComponent, selector: "sc-suggestion-field", inputs: ["type"], outputs: ["selectedClick"] }, { kind: "component", type: i4$1.TuiInputComponent, selector: "tui-input" }, { kind: "directive", type: i4$1.TuiInputDirective, selector: "tui-input" }, { 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: i4.TuiButtonComponent, selector: "button[tuiButton], button[tuiIconButton], a[tuiButton], a[tuiIconButton]", inputs: ["appearance", "disabled", "icon", "iconRight", "shape", "showLoader", "size"] }, { kind: "component", type: i4.TuiLabelComponent, selector: "label[tuiLabel]", inputs: ["tuiLabel", "context"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i4$1.TuiFieldErrorPipe, name: "tuiFieldError" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
5239
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScAskToSampleFormComponent, decorators: [{
|
5240
|
+
type: Component,
|
5241
|
+
args: [{ selector: 'sc-ask-to-sample-form', changeDetection: ChangeDetectionStrategy.OnPush, template: "<form\n [formGroup]=\"form\"\n class=\"flex flex-col justify-between gap-4\"\n>\n <label tuiLabel=\"\u0424\u0418\u041E\">\n <tui-input formControlName=\"name\"> \u0418\u0432\u0430\u043D\u043E\u0432 \u0418\u0432\u0430\u043D \u0418\u0432\u0430\u043D\u043E\u0432\u0438\u0447 </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\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 <button\n tuiButton\n [disabled]=\"form.invalid\"\n type=\"submit\"\n icon=\"scIconSend\"\n class=\"self-center\"\n >\n \u041E\u0441\u0442\u0430\u0432\u0438\u0442\u044C\n </button>\n</form>\n" }]
|
5242
|
+
}] });
|
5243
|
+
|
5244
|
+
/**
|
5245
|
+
* Компонент представления образцов товара.
|
5246
|
+
*/
|
5247
|
+
class ScPreviewSampleComponent {
|
5248
|
+
constructor() {
|
5249
|
+
/**
|
5250
|
+
* Индекс элемента в галерее.
|
5251
|
+
*/
|
5252
|
+
this.index = 0;
|
5253
|
+
/**
|
5254
|
+
* {@link EventEmitter} изменения индекса элемента в галерее.
|
5255
|
+
*/
|
5256
|
+
this.indexChange = new EventEmitter();
|
5257
|
+
/**
|
5258
|
+
* Признак, что необходимо отображать переключатели на карусели.
|
5259
|
+
*/
|
5260
|
+
this.isShowCarouselSwitches = !inject(TUI_IS_MOBILE);
|
5261
|
+
/**
|
5262
|
+
* Признак, что при горизонтальном отображении компонент должен быть развёрнут.
|
5263
|
+
*/
|
5264
|
+
this.isReverse = false;
|
5265
|
+
/**
|
5266
|
+
* {@link Observable} изменения индекса элемента в галерее для автоматического переключения по таймеру.
|
5267
|
+
*/
|
5268
|
+
this.indexChangeInterval = this.indexChange.pipe(startWith(0), filter(() => Boolean(this.sample.items && this.sample.items.length > 1)), switchMap(() => interval(5000).pipe()), map(() => { var _a; return (_a = this.sample.items) === null || _a === void 0 ? void 0 : _a.length; }), filter(tuiIsPresent), tap((itemsLength) => {
|
5269
|
+
this.onChangeIndex((this.index + 1) % itemsLength);
|
5270
|
+
}));
|
5271
|
+
}
|
5272
|
+
/**
|
5273
|
+
* Переключает на предыдущее изображение в галерее.
|
5274
|
+
*/
|
5275
|
+
onPrevious() {
|
5276
|
+
var _a;
|
5277
|
+
if ((_a = this.sample.items) === null || _a === void 0 ? void 0 : _a.length) {
|
5278
|
+
// eslint-disable-next-line unicorn/explicit-length-check
|
5279
|
+
this.onChangeIndex((this.index || this.sample.items.length) - 1);
|
5280
|
+
}
|
5281
|
+
}
|
5282
|
+
/**
|
5283
|
+
* Переключает на следующее изображение в галерее.
|
5284
|
+
*/
|
5285
|
+
onNext() {
|
5286
|
+
var _a;
|
5287
|
+
if ((_a = this.sample.items) === null || _a === void 0 ? void 0 : _a.length) {
|
5288
|
+
this.onChangeIndex((this.index + 1) % this.sample.items.length);
|
5289
|
+
}
|
5290
|
+
}
|
5291
|
+
/**
|
5292
|
+
* Обработчик изменения индекса элемента в галерее.
|
5293
|
+
*
|
5294
|
+
* @param index Индекс элемента в галерее.
|
5295
|
+
*/
|
5296
|
+
onChangeIndex(index) {
|
5297
|
+
if (index !== this.index) {
|
5298
|
+
this.index = index;
|
5299
|
+
this.indexChange.emit(index);
|
5300
|
+
}
|
5301
|
+
}
|
5302
|
+
}
|
5303
|
+
ScPreviewSampleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScPreviewSampleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
5304
|
+
ScPreviewSampleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ScPreviewSampleComponent, selector: "sc-preview-sample", inputs: { index: "index", sample: "sample", isShowCarouselSwitches: "isShowCarouselSwitches", isReverse: "isReverse" }, outputs: { indexChange: "indexChange" }, ngImport: i0, template: "<div\n *tuiLet=\"sample.items && sample.items.length > 1 as isShownSwitches\"\n class=\"mb-4 flex flex-col-reverse gap-4 md:mb-0 md:flex-row md:gap-8\"\n [class.md:!flex-row-reverse]=\"isReverse\"\n>\n <div class=\"flex max-w-96 flex-1 flex-col justify-center self-center md:max-w-none md:gap-4\">\n <div class=\"flex w-full flex-col gap-3 md:gap-4 md:px-8\">\n <div class=\"text-body-l-bold\">{{ sample.title }}</div>\n <div>{{ sample.description }}</div>\n <div\n *ngIf=\"isShownSwitches\"\n class=\"flex gap-4\"\n >\n <tui-avatar\n *ngFor=\"let item of sample.items; let itemIndex = index\"\n (tuiHoveredChange)=\"onChangeIndex(itemIndex)\"\n [avatarUrl]=\"item.buttonImageUrl\"\n [class.active]=\"index === itemIndex\"\n ></tui-avatar>\n </div>\n <img\n *ngIf=\"sample.descriptionImageUrl\"\n [src]=\"sample.descriptionImageUrl\"\n alt=\"\u041A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0446\u0438\u044F \u043E\u0431\u0440\u0430\u0437\u0446\u0430 {{ sample.title }}\"\n class=\"w-fit\"\n />\n <div\n *ngIf=\"sample.actions && sample.actions.length\"\n class=\"flex flex-wrap gap-3 md:gap-4\"\n >\n <button\n *ngFor=\"let action of sample.actions\"\n tuiButton\n (click)=\"action.handler()\"\n [icon]=\"action.icon\"\n appearance=\"secondary\"\n >\n {{ action.label }}\n </button>\n </div>\n </div>\n </div>\n\n <div class=\"relative h-[19em] flex-1 overflow-hidden rounded-xl shadow-tui-shadow md:h-96 lg:h-[28rem]\">\n <button\n *ngIf=\"isShownSwitches && isShowCarouselSwitches\"\n tuiIconButton\n (click)=\"onPrevious()\"\n icon=\"tuiIconChevronLeftLarge\"\n appearance=\"icon\"\n class=\"!absolute left-0 top-1/2 z-10 ml-2 -translate-y-1/2\"\n ></button>\n\n <tui-carousel\n *tuiLet=\"indexChangeInterval | async\"\n [(index)]=\"index\"\n class=\"h-[19em] w-full md:h-96 lg:h-[28rem]\"\n >\n <ng-container *ngFor=\"let item of sample.items\">\n <div\n *tuiItem\n [style.backgroundImage]=\"'url(' + item.carouselItemImage + ')'\"\n class=\"h-[19em] w-full bg-cover bg-right md:h-96 lg:h-[28rem]\"\n ></div>\n </ng-container>\n </tui-carousel>\n <button\n *ngIf=\"isShownSwitches && isShowCarouselSwitches\"\n tuiIconButton\n (click)=\"onNext()\"\n icon=\"tuiIconChevronRightLarge\"\n appearance=\"icon\"\n class=\"!absolute right-0 top-1/2 z-10 mr-2 -translate-y-1/2\"\n ></button>\n </div>\n</div>\n", styles: [":host{--tui-carousel-padding: 0}tui-avatar.active{--tw-ring-color: var(--tui-primary);--tw-ring-offset-width: 2px;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 rgba(0, 0, 0, 0))}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i4$1.TuiCarouselComponent, selector: "tui-carousel", inputs: ["draggable", "itemsCount", "index"], outputs: ["indexChange"] }, { kind: "directive", type: i4$1.TuiCarouselDirective, selector: "tui-carousel", inputs: ["duration", "index"] }, { kind: "directive", type: i6.TuiItemDirective, selector: "[tuiItem]" }, { kind: "component", type: i4$1.TuiAvatarComponent, selector: "tui-avatar", inputs: ["size", "avatarUrl", "text", "fallback", "autoColor", "rounded"] }, { kind: "directive", type: i6.TuiHoveredDirective, selector: "[tuiHoveredChange]", outputs: ["tuiHoveredChange"] }, { kind: "directive", type: i6.TuiLetDirective, selector: "[tuiLet]", inputs: ["tuiLet"] }, { 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 });
|
5305
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScPreviewSampleComponent, decorators: [{
|
5306
|
+
type: Component,
|
5307
|
+
args: [{ selector: 'sc-preview-sample', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n *tuiLet=\"sample.items && sample.items.length > 1 as isShownSwitches\"\n class=\"mb-4 flex flex-col-reverse gap-4 md:mb-0 md:flex-row md:gap-8\"\n [class.md:!flex-row-reverse]=\"isReverse\"\n>\n <div class=\"flex max-w-96 flex-1 flex-col justify-center self-center md:max-w-none md:gap-4\">\n <div class=\"flex w-full flex-col gap-3 md:gap-4 md:px-8\">\n <div class=\"text-body-l-bold\">{{ sample.title }}</div>\n <div>{{ sample.description }}</div>\n <div\n *ngIf=\"isShownSwitches\"\n class=\"flex gap-4\"\n >\n <tui-avatar\n *ngFor=\"let item of sample.items; let itemIndex = index\"\n (tuiHoveredChange)=\"onChangeIndex(itemIndex)\"\n [avatarUrl]=\"item.buttonImageUrl\"\n [class.active]=\"index === itemIndex\"\n ></tui-avatar>\n </div>\n <img\n *ngIf=\"sample.descriptionImageUrl\"\n [src]=\"sample.descriptionImageUrl\"\n alt=\"\u041A\u043E\u043D\u0441\u0442\u0440\u0443\u043A\u0446\u0438\u044F \u043E\u0431\u0440\u0430\u0437\u0446\u0430 {{ sample.title }}\"\n class=\"w-fit\"\n />\n <div\n *ngIf=\"sample.actions && sample.actions.length\"\n class=\"flex flex-wrap gap-3 md:gap-4\"\n >\n <button\n *ngFor=\"let action of sample.actions\"\n tuiButton\n (click)=\"action.handler()\"\n [icon]=\"action.icon\"\n appearance=\"secondary\"\n >\n {{ action.label }}\n </button>\n </div>\n </div>\n </div>\n\n <div class=\"relative h-[19em] flex-1 overflow-hidden rounded-xl shadow-tui-shadow md:h-96 lg:h-[28rem]\">\n <button\n *ngIf=\"isShownSwitches && isShowCarouselSwitches\"\n tuiIconButton\n (click)=\"onPrevious()\"\n icon=\"tuiIconChevronLeftLarge\"\n appearance=\"icon\"\n class=\"!absolute left-0 top-1/2 z-10 ml-2 -translate-y-1/2\"\n ></button>\n\n <tui-carousel\n *tuiLet=\"indexChangeInterval | async\"\n [(index)]=\"index\"\n class=\"h-[19em] w-full md:h-96 lg:h-[28rem]\"\n >\n <ng-container *ngFor=\"let item of sample.items\">\n <div\n *tuiItem\n [style.backgroundImage]=\"'url(' + item.carouselItemImage + ')'\"\n class=\"h-[19em] w-full bg-cover bg-right md:h-96 lg:h-[28rem]\"\n ></div>\n </ng-container>\n </tui-carousel>\n <button\n *ngIf=\"isShownSwitches && isShowCarouselSwitches\"\n tuiIconButton\n (click)=\"onNext()\"\n icon=\"tuiIconChevronRightLarge\"\n appearance=\"icon\"\n class=\"!absolute right-0 top-1/2 z-10 mr-2 -translate-y-1/2\"\n ></button>\n </div>\n</div>\n", styles: [":host{--tui-carousel-padding: 0}tui-avatar.active{--tw-ring-color: var(--tui-primary);--tw-ring-offset-width: 2px;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 rgba(0, 0, 0, 0))}\n"] }]
|
5308
|
+
}], propDecorators: { index: [{
|
5309
|
+
type: Input
|
5310
|
+
}], indexChange: [{
|
5311
|
+
type: Output
|
5312
|
+
}], sample: [{
|
5313
|
+
type: Input
|
5314
|
+
}], isShowCarouselSwitches: [{
|
5315
|
+
type: Input
|
5316
|
+
}], isReverse: [{
|
5317
|
+
type: Input
|
5318
|
+
}] } });
|
5319
|
+
|
5320
|
+
/**
|
5321
|
+
* Модуль представления образцов товара.
|
5322
|
+
*/
|
5323
|
+
class ScPreviewSampleModule {
|
5324
|
+
}
|
5325
|
+
ScPreviewSampleModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScPreviewSampleModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
5326
|
+
ScPreviewSampleModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: ScPreviewSampleModule, declarations: [ScPreviewSampleComponent, ScAskToSampleFormComponent], imports: [CommonModule,
|
5327
|
+
ReactiveFormsModule,
|
5328
|
+
TuiErrorModule,
|
5329
|
+
TuiFieldErrorPipeModule,
|
5330
|
+
ScFormFieldsModule,
|
5331
|
+
TuiInputModule,
|
5332
|
+
TuiInputPhoneModule,
|
5333
|
+
TuiCarouselModule,
|
5334
|
+
TuiAvatarModule,
|
5335
|
+
TuiHoveredModule,
|
5336
|
+
TuiLetModule,
|
5337
|
+
TuiButtonModule,
|
5338
|
+
TuiLabelModule], exports: [ScPreviewSampleComponent, ScAskToSampleFormComponent] });
|
5339
|
+
ScPreviewSampleModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScPreviewSampleModule, imports: [CommonModule,
|
5340
|
+
ReactiveFormsModule,
|
5341
|
+
TuiErrorModule,
|
5342
|
+
TuiFieldErrorPipeModule,
|
5343
|
+
ScFormFieldsModule,
|
5344
|
+
TuiInputModule,
|
5345
|
+
TuiInputPhoneModule,
|
5346
|
+
TuiCarouselModule,
|
5347
|
+
TuiAvatarModule,
|
5348
|
+
TuiHoveredModule,
|
5349
|
+
TuiLetModule,
|
5350
|
+
TuiButtonModule,
|
5351
|
+
TuiLabelModule] });
|
5352
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScPreviewSampleModule, decorators: [{
|
5353
|
+
type: NgModule,
|
5354
|
+
args: [{
|
5355
|
+
declarations: [ScPreviewSampleComponent, ScAskToSampleFormComponent],
|
5356
|
+
imports: [
|
5357
|
+
CommonModule,
|
5358
|
+
ReactiveFormsModule,
|
5359
|
+
TuiErrorModule,
|
5360
|
+
TuiFieldErrorPipeModule,
|
5361
|
+
ScFormFieldsModule,
|
5362
|
+
TuiInputModule,
|
5363
|
+
TuiInputPhoneModule,
|
5364
|
+
TuiCarouselModule,
|
5365
|
+
TuiAvatarModule,
|
5366
|
+
TuiHoveredModule,
|
5367
|
+
TuiLetModule,
|
5368
|
+
TuiButtonModule,
|
5369
|
+
TuiLabelModule,
|
5370
|
+
],
|
5371
|
+
exports: [ScPreviewSampleComponent, ScAskToSampleFormComponent],
|
5372
|
+
}]
|
5373
|
+
}] });
|
5374
|
+
|
5201
5375
|
/**
|
5202
5376
|
* Токен потока данных о текущем пользователе.
|
5203
5377
|
*/
|
@@ -5503,22 +5677,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
5503
5677
|
}] }];
|
5504
5678
|
} });
|
5505
5679
|
|
5506
|
-
/**
|
5507
|
-
* Модуль валидации значения номера телефона.
|
5508
|
-
*/
|
5509
|
-
class ScTelLinkModule {
|
5510
|
-
}
|
5511
|
-
ScTelLinkModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScTelLinkModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
5512
|
-
ScTelLinkModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: ScTelLinkModule, imports: [ScFormatePhonePipe, ScTelLinkDirective], exports: [ScFormatePhonePipe, ScTelLinkDirective] });
|
5513
|
-
ScTelLinkModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScTelLinkModule });
|
5514
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScTelLinkModule, decorators: [{
|
5515
|
-
type: NgModule,
|
5516
|
-
args: [{
|
5517
|
-
imports: [ScFormatePhonePipe, ScTelLinkDirective],
|
5518
|
-
exports: [ScFormatePhonePipe, ScTelLinkDirective],
|
5519
|
-
}]
|
5520
|
-
}] });
|
5521
|
-
|
5522
5680
|
/**
|
5523
5681
|
* Модуль компонентов пользователя.
|
5524
5682
|
*/
|
@@ -5834,5 +5992,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
5834
5992
|
* Generated bundle index. Do not edit.
|
5835
5993
|
*/
|
5836
5994
|
|
5837
|
-
export { AbstractScPriceCard, AuthMethod, FilesAndDocumentsComponent, FilesAndDocumentsModule, SC_LINEAR_VALUES, SC_LINEAR_VALUES_TOKEN, SC_LOADING_PAGINATION_CHANGE_INFO, SC_NEXT_PAGE_PAGINATION_CHANGE_INFO, SC_NEXT_PAGE_PAGINATION_CLICK, SC_PRODUCT_PAGINATION_CHANGE_INFO, SC_PRODUCT_PAGINATION_CHANGE_PROVIDERS, SC_PRODUCT_PAGINATION_DEFAULT_OPTIONS, SC_PRODUCT_PAGINATION_OPTIONS, SC_PRODUCT_PAGINATION_PARAMS, SC_USER_INFO, SC_USER_PROVIDERS, ScAccordionComponent, ScAccordionContentDirective, ScAccordionModule, ScAddContactDialogComponent, ScAddContragentBankAccountsDialogComponent, ScAddContragentDialogComponent, ScAddDeliveryAddressDialogComponent, ScAddressesSelectionFieldComponent, 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, ScPriceCardComponent, ScPriceHistoryComponent, ScPriceListPaginationComponent, ScPriceWarehouseStockComponent, ScProfileAccordionsContentComponent, ScProfileModule, ScQRCodeDialogComponent, ScQRCodeModule, ScResetUserPasswordComponent, ScShareButtonComponent, ScShareButtonModule, ScSignInFormByEmailComponent, ScSignInFormByPhoneComponent, ScSignInFormComponent, ScSignUpFormComponent, ScSuggestionFieldComponent, ScTelLinkDirective, ScTerminalLinkDirective, ScUpdateUserInfoDialogComponent, ScUserManagersComponent, ScUserModule, ScUserPhoneApproveDialogComponent, ScVerificationModule, ScVerificationPhoneCheckFormComponent, TreeDirective, TreeIconService, TreeLoaderService, TreeTopDirective, nextPageClickEvent, paginationParams$, scBicValidator, scClientUiIconsName, scCorrespondentAccountValidator, scPasswordConfirmMatchingValidator, scUserFactory, stepValidator };
|
5995
|
+
export { AbstractScPriceCard, AuthMethod, FilesAndDocumentsComponent, FilesAndDocumentsModule, SC_LINEAR_VALUES, SC_LINEAR_VALUES_TOKEN, SC_LOADING_PAGINATION_CHANGE_INFO, SC_NEXT_PAGE_PAGINATION_CHANGE_INFO, SC_NEXT_PAGE_PAGINATION_CLICK, SC_PRODUCT_PAGINATION_CHANGE_INFO, SC_PRODUCT_PAGINATION_CHANGE_PROVIDERS, SC_PRODUCT_PAGINATION_DEFAULT_OPTIONS, SC_PRODUCT_PAGINATION_OPTIONS, SC_PRODUCT_PAGINATION_PARAMS, 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, nextPageClickEvent, paginationParams$, scBicValidator, scClientUiIconsName, scCorrespondentAccountValidator, scPasswordConfirmMatchingValidator, scUserFactory, stepValidator };
|
5838
5996
|
//# sourceMappingURL=snabcentr-client-ui.mjs.map
|