@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';
|
@@ -1733,6 +1733,53 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
1733
1733
|
type: Input
|
1734
1734
|
}] } });
|
1735
1735
|
|
1736
|
+
/* eslint-disable class-methods-use-this */
|
1737
|
+
/**
|
1738
|
+
* Пайп для форматирования номера телефона.
|
1739
|
+
*
|
1740
|
+
* Если переданный номер телефона валиден, он будет отформатирован с использованием метода `formatPhoneNumber` сервиса `ScPhoneService`.
|
1741
|
+
* Если номер невалиден, возвращается исходное значение.
|
1742
|
+
*/
|
1743
|
+
class ScFormatePhonePipe {
|
1744
|
+
/**
|
1745
|
+
* Преобразует строковое значение номера телефона.
|
1746
|
+
*
|
1747
|
+
* @param value Строка, содержащая номер телефона.
|
1748
|
+
* @returns Отформатированный номер телефона, если он валиден, или исходное значение, если он невалиден.
|
1749
|
+
*/
|
1750
|
+
transform(value) {
|
1751
|
+
if (ScPhoneService.isValidPhoneNumber(value)) {
|
1752
|
+
return ScPhoneService.formatPhoneNumber(value);
|
1753
|
+
}
|
1754
|
+
return value; // Возвращаем оригинальный номер, если он невалиден
|
1755
|
+
}
|
1756
|
+
}
|
1757
|
+
ScFormatePhonePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScFormatePhonePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
1758
|
+
ScFormatePhonePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: ScFormatePhonePipe, isStandalone: true, name: "scFormatePhone" });
|
1759
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScFormatePhonePipe, decorators: [{
|
1760
|
+
type: Pipe,
|
1761
|
+
args: [{
|
1762
|
+
standalone: true,
|
1763
|
+
name: 'scFormatePhone',
|
1764
|
+
}]
|
1765
|
+
}] });
|
1766
|
+
|
1767
|
+
/**
|
1768
|
+
* Модуль валидации значения номера телефона.
|
1769
|
+
*/
|
1770
|
+
class ScTelLinkModule {
|
1771
|
+
}
|
1772
|
+
ScTelLinkModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScTelLinkModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
1773
|
+
ScTelLinkModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: ScTelLinkModule, imports: [ScFormatePhonePipe, ScTelLinkDirective], exports: [ScFormatePhonePipe, ScTelLinkDirective] });
|
1774
|
+
ScTelLinkModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScTelLinkModule });
|
1775
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScTelLinkModule, decorators: [{
|
1776
|
+
type: NgModule,
|
1777
|
+
args: [{
|
1778
|
+
imports: [ScFormatePhonePipe, ScTelLinkDirective],
|
1779
|
+
exports: [ScFormatePhonePipe, ScTelLinkDirective],
|
1780
|
+
}]
|
1781
|
+
}] });
|
1782
|
+
|
1736
1783
|
/**
|
1737
1784
|
* Компонент QR кода.
|
1738
1785
|
*/
|
@@ -1935,37 +1982,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
1935
1982
|
}]
|
1936
1983
|
}] });
|
1937
1984
|
|
1938
|
-
/* eslint-disable class-methods-use-this */
|
1939
|
-
/**
|
1940
|
-
* Пайп для форматирования номера телефона.
|
1941
|
-
*
|
1942
|
-
* Если переданный номер телефона валиден, он будет отформатирован с использованием метода `formatPhoneNumber` сервиса `ScPhoneService`.
|
1943
|
-
* Если номер невалиден, возвращается исходное значение.
|
1944
|
-
*/
|
1945
|
-
class ScFormatePhonePipe {
|
1946
|
-
/**
|
1947
|
-
* Преобразует строковое значение номера телефона.
|
1948
|
-
*
|
1949
|
-
* @param value Строка, содержащая номер телефона.
|
1950
|
-
* @returns Отформатированный номер телефона, если он валиден, или исходное значение, если он невалиден.
|
1951
|
-
*/
|
1952
|
-
transform(value) {
|
1953
|
-
if (ScPhoneService.isValidPhoneNumber(value)) {
|
1954
|
-
return ScPhoneService.formatPhoneNumber(value);
|
1955
|
-
}
|
1956
|
-
return value; // Возвращаем оригинальный номер, если он невалиден
|
1957
|
-
}
|
1958
|
-
}
|
1959
|
-
ScFormatePhonePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScFormatePhonePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
|
1960
|
-
ScFormatePhonePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: ScFormatePhonePipe, isStandalone: true, name: "scFormatePhone" });
|
1961
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScFormatePhonePipe, decorators: [{
|
1962
|
-
type: Pipe,
|
1963
|
-
args: [{
|
1964
|
-
standalone: true,
|
1965
|
-
name: 'scFormatePhone',
|
1966
|
-
}]
|
1967
|
-
}] });
|
1968
|
-
|
1969
1985
|
/* eslint-disable no-restricted-syntax,@typescript-eslint/unbound-method */
|
1970
1986
|
/**
|
1971
1987
|
* Компонент формы создания нового контактного лица.
|
@@ -5117,6 +5133,162 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
5117
5133
|
}]
|
5118
5134
|
}] });
|
5119
5135
|
|
5136
|
+
/* eslint-disable @typescript-eslint/unbound-method */
|
5137
|
+
/**
|
5138
|
+
* Компонент формы запроса бесплатного образца.
|
5139
|
+
*/
|
5140
|
+
class ScAskToSampleFormComponent {
|
5141
|
+
constructor() {
|
5142
|
+
/**
|
5143
|
+
* Группа полей ввода для формы «Пожелания и предложения по улучшению сайта».
|
5144
|
+
*/
|
5145
|
+
this.form = new FormGroup({
|
5146
|
+
name: new FormControl(null, [Validators.required, Validators.minLength(3)]),
|
5147
|
+
phone: new FormControl(null, [Validators.required, Validators.minLength(12)]),
|
5148
|
+
email: new FormControl(null, [Validators.required, Validators.email]),
|
5149
|
+
});
|
5150
|
+
/**
|
5151
|
+
* Перечисление типов подсказок.
|
5152
|
+
*/
|
5153
|
+
this.suggestionType = ScISuggestionType;
|
5154
|
+
}
|
5155
|
+
}
|
5156
|
+
ScAskToSampleFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScAskToSampleFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
5157
|
+
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 });
|
5158
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScAskToSampleFormComponent, decorators: [{
|
5159
|
+
type: Component,
|
5160
|
+
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" }]
|
5161
|
+
}] });
|
5162
|
+
|
5163
|
+
/**
|
5164
|
+
* Компонент представления образцов товара.
|
5165
|
+
*/
|
5166
|
+
class ScPreviewSampleComponent {
|
5167
|
+
constructor() {
|
5168
|
+
/**
|
5169
|
+
* Индекс элемента в галерее.
|
5170
|
+
*/
|
5171
|
+
this.index = 0;
|
5172
|
+
/**
|
5173
|
+
* {@link EventEmitter} изменения индекса элемента в галерее.
|
5174
|
+
*/
|
5175
|
+
this.indexChange = new EventEmitter();
|
5176
|
+
/**
|
5177
|
+
* Признак, что необходимо отображать переключатели на карусели.
|
5178
|
+
*/
|
5179
|
+
this.isShowCarouselSwitches = !inject(TUI_IS_MOBILE);
|
5180
|
+
/**
|
5181
|
+
* Признак, что при горизонтальном отображении компонент должен быть развёрнут.
|
5182
|
+
*/
|
5183
|
+
this.isReverse = false;
|
5184
|
+
/**
|
5185
|
+
* {@link Observable} изменения индекса элемента в галерее для автоматического переключения по таймеру.
|
5186
|
+
*/
|
5187
|
+
this.indexChangeInterval = this.indexChange.pipe(startWith(0), filter(() => Boolean(this.sample.items && this.sample.items.length > 1)), switchMap(() => interval(5000).pipe()), map(() => this.sample.items?.length), filter(tuiIsPresent), tap((itemsLength) => {
|
5188
|
+
this.onChangeIndex((this.index + 1) % itemsLength);
|
5189
|
+
}));
|
5190
|
+
}
|
5191
|
+
/**
|
5192
|
+
* Переключает на предыдущее изображение в галерее.
|
5193
|
+
*/
|
5194
|
+
onPrevious() {
|
5195
|
+
if (this.sample.items?.length) {
|
5196
|
+
// eslint-disable-next-line unicorn/explicit-length-check
|
5197
|
+
this.onChangeIndex((this.index || this.sample.items.length) - 1);
|
5198
|
+
}
|
5199
|
+
}
|
5200
|
+
/**
|
5201
|
+
* Переключает на следующее изображение в галерее.
|
5202
|
+
*/
|
5203
|
+
onNext() {
|
5204
|
+
if (this.sample.items?.length) {
|
5205
|
+
this.onChangeIndex((this.index + 1) % this.sample.items.length);
|
5206
|
+
}
|
5207
|
+
}
|
5208
|
+
/**
|
5209
|
+
* Обработчик изменения индекса элемента в галерее.
|
5210
|
+
*
|
5211
|
+
* @param index Индекс элемента в галерее.
|
5212
|
+
*/
|
5213
|
+
onChangeIndex(index) {
|
5214
|
+
if (index !== this.index) {
|
5215
|
+
this.index = index;
|
5216
|
+
this.indexChange.emit(index);
|
5217
|
+
}
|
5218
|
+
}
|
5219
|
+
}
|
5220
|
+
ScPreviewSampleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScPreviewSampleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
5221
|
+
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 });
|
5222
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScPreviewSampleComponent, decorators: [{
|
5223
|
+
type: Component,
|
5224
|
+
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"] }]
|
5225
|
+
}], propDecorators: { index: [{
|
5226
|
+
type: Input
|
5227
|
+
}], indexChange: [{
|
5228
|
+
type: Output
|
5229
|
+
}], sample: [{
|
5230
|
+
type: Input
|
5231
|
+
}], isShowCarouselSwitches: [{
|
5232
|
+
type: Input
|
5233
|
+
}], isReverse: [{
|
5234
|
+
type: Input
|
5235
|
+
}] } });
|
5236
|
+
|
5237
|
+
/**
|
5238
|
+
* Модуль представления образцов товара.
|
5239
|
+
*/
|
5240
|
+
class ScPreviewSampleModule {
|
5241
|
+
}
|
5242
|
+
ScPreviewSampleModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScPreviewSampleModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
5243
|
+
ScPreviewSampleModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: ScPreviewSampleModule, declarations: [ScPreviewSampleComponent, ScAskToSampleFormComponent], imports: [CommonModule,
|
5244
|
+
ReactiveFormsModule,
|
5245
|
+
TuiErrorModule,
|
5246
|
+
TuiFieldErrorPipeModule,
|
5247
|
+
ScFormFieldsModule,
|
5248
|
+
TuiInputModule,
|
5249
|
+
TuiInputPhoneModule,
|
5250
|
+
TuiCarouselModule,
|
5251
|
+
TuiAvatarModule,
|
5252
|
+
TuiHoveredModule,
|
5253
|
+
TuiLetModule,
|
5254
|
+
TuiButtonModule,
|
5255
|
+
TuiLabelModule], exports: [ScPreviewSampleComponent, ScAskToSampleFormComponent] });
|
5256
|
+
ScPreviewSampleModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScPreviewSampleModule, imports: [CommonModule,
|
5257
|
+
ReactiveFormsModule,
|
5258
|
+
TuiErrorModule,
|
5259
|
+
TuiFieldErrorPipeModule,
|
5260
|
+
ScFormFieldsModule,
|
5261
|
+
TuiInputModule,
|
5262
|
+
TuiInputPhoneModule,
|
5263
|
+
TuiCarouselModule,
|
5264
|
+
TuiAvatarModule,
|
5265
|
+
TuiHoveredModule,
|
5266
|
+
TuiLetModule,
|
5267
|
+
TuiButtonModule,
|
5268
|
+
TuiLabelModule] });
|
5269
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScPreviewSampleModule, decorators: [{
|
5270
|
+
type: NgModule,
|
5271
|
+
args: [{
|
5272
|
+
declarations: [ScPreviewSampleComponent, ScAskToSampleFormComponent],
|
5273
|
+
imports: [
|
5274
|
+
CommonModule,
|
5275
|
+
ReactiveFormsModule,
|
5276
|
+
TuiErrorModule,
|
5277
|
+
TuiFieldErrorPipeModule,
|
5278
|
+
ScFormFieldsModule,
|
5279
|
+
TuiInputModule,
|
5280
|
+
TuiInputPhoneModule,
|
5281
|
+
TuiCarouselModule,
|
5282
|
+
TuiAvatarModule,
|
5283
|
+
TuiHoveredModule,
|
5284
|
+
TuiLetModule,
|
5285
|
+
TuiButtonModule,
|
5286
|
+
TuiLabelModule,
|
5287
|
+
],
|
5288
|
+
exports: [ScPreviewSampleComponent, ScAskToSampleFormComponent],
|
5289
|
+
}]
|
5290
|
+
}] });
|
5291
|
+
|
5120
5292
|
/**
|
5121
5293
|
* Токен потока данных о текущем пользователе.
|
5122
5294
|
*/
|
@@ -5415,22 +5587,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
5415
5587
|
args: [POLYMORPHEUS_CONTEXT]
|
5416
5588
|
}] }]; } });
|
5417
5589
|
|
5418
|
-
/**
|
5419
|
-
* Модуль валидации значения номера телефона.
|
5420
|
-
*/
|
5421
|
-
class ScTelLinkModule {
|
5422
|
-
}
|
5423
|
-
ScTelLinkModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScTelLinkModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
5424
|
-
ScTelLinkModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: ScTelLinkModule, imports: [ScFormatePhonePipe, ScTelLinkDirective], exports: [ScFormatePhonePipe, ScTelLinkDirective] });
|
5425
|
-
ScTelLinkModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScTelLinkModule });
|
5426
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ScTelLinkModule, decorators: [{
|
5427
|
-
type: NgModule,
|
5428
|
-
args: [{
|
5429
|
-
imports: [ScFormatePhonePipe, ScTelLinkDirective],
|
5430
|
-
exports: [ScFormatePhonePipe, ScTelLinkDirective],
|
5431
|
-
}]
|
5432
|
-
}] });
|
5433
|
-
|
5434
5590
|
/**
|
5435
5591
|
* Модуль компонентов пользователя.
|
5436
5592
|
*/
|
@@ -5744,5 +5900,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
5744
5900
|
* Generated bundle index. Do not edit.
|
5745
5901
|
*/
|
5746
5902
|
|
5747
|
-
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 };
|
5903
|
+
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 };
|
5748
5904
|
//# sourceMappingURL=snabcentr-client-ui.mjs.map
|