@snabcentr/client-ui 1.7.0 → 1.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of @snabcentr/client-ui might be problematic. Click here for more details.
- 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
|