@snabcentr/client-ui 3.53.4 → 3.53.5
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.
- package/catalog/catalog-filters/index.d.ts +1 -0
- package/catalog/catalog-filters/interfaces/sc-i-range-form-group.d.ts +18 -0
- package/catalog/catalog-filters/sc-catalog-filters.component.d.ts +27 -21
- package/catalog/catalog-filters/tokens/sc-catalog-products-filters.d.ts +3 -3
- package/esm2022/catalog/catalog-filters/index.mjs +2 -1
- package/esm2022/catalog/catalog-filters/interfaces/sc-i-range-form-group.mjs +2 -0
- package/esm2022/catalog/catalog-filters/sc-catalog-filters.component.mjs +76 -46
- package/esm2022/catalog/catalog-filters/tokens/sc-catalog-products-filters.mjs +4 -4
- package/fesm2022/snabcentr-client-ui.mjs +75 -45
- package/fesm2022/snabcentr-client-ui.mjs.map +1 -1
- package/package.json +1 -1
- package/release_notes.tmp +4 -2
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { FormControl, FormGroup } from '@angular/forms';
|
|
2
|
+
/**
|
|
3
|
+
* {@link FormGroup} range-фильтра каталога: поля границ «от»/«до» и контрол слайдера.
|
|
4
|
+
*/
|
|
5
|
+
export type ScRangeFormGroup = FormGroup<{
|
|
6
|
+
/**
|
|
7
|
+
* Нижняя граница диапазона («от»).
|
|
8
|
+
*/
|
|
9
|
+
from: FormControl<number>;
|
|
10
|
+
/**
|
|
11
|
+
* Верхняя граница диапазона («до»).
|
|
12
|
+
*/
|
|
13
|
+
to: FormControl<number>;
|
|
14
|
+
/**
|
|
15
|
+
* Кортеж значений слайдера `[нижняя, верхняя]` для {@link TuiRange}.
|
|
16
|
+
*/
|
|
17
|
+
slider: FormControl<[number, number]>;
|
|
18
|
+
}>;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { FormControl, FormGroup } from '@angular/forms';
|
|
2
2
|
import { ScCatalogFilter, ScICheckboxFilter, ScPropertyFilters, ScRangeFilter, ScToggleFilter } from '@snabcentr/client-core';
|
|
3
|
+
import { ScRangeFormGroup } from './interfaces/sc-i-range-form-group';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
5
|
/**
|
|
5
6
|
* Компонент вывода фильтров каталога.
|
|
@@ -40,11 +41,7 @@ export declare class ScCatalogFiltersComponent {
|
|
|
40
41
|
/**
|
|
41
42
|
* FormGroup для фильтров.
|
|
42
43
|
*/
|
|
43
|
-
readonly form: FormGroup<Record<string, FormControl<boolean> | FormGroup<Record<string, FormControl<boolean
|
|
44
|
-
from: FormControl<number>;
|
|
45
|
-
to: FormControl<number>;
|
|
46
|
-
slider: FormControl<[number, number]>;
|
|
47
|
-
}>>>;
|
|
44
|
+
readonly form: FormGroup<Record<string, ScRangeFormGroup | FormControl<boolean> | FormGroup<Record<string, FormControl<boolean>>>>>;
|
|
48
45
|
/**
|
|
49
46
|
* {@link Observable} фильтров категории.
|
|
50
47
|
*/
|
|
@@ -85,16 +82,22 @@ export declare class ScCatalogFiltersComponent {
|
|
|
85
82
|
* @param checkboxFilter Фильтр типа checkbox.
|
|
86
83
|
*/
|
|
87
84
|
protected createCheckboxFormControl(checkboxFilter: ScICheckboxFilter): FormGroup<Record<string, FormControl<boolean>>>;
|
|
85
|
+
/**
|
|
86
|
+
* Значения диапазона по умолчанию: выбранные ранее, либо границы min/max. С ними сравниваются поля при формировании запроса.
|
|
87
|
+
*
|
|
88
|
+
* @param rangeFilter Фильтр типа range.
|
|
89
|
+
*/
|
|
90
|
+
protected getRangeDefaults(rangeFilter: ScRangeFilter): {
|
|
91
|
+
from: number;
|
|
92
|
+
to: number;
|
|
93
|
+
};
|
|
88
94
|
/**
|
|
89
95
|
* Создаёт {@link FormGroup} для range: {@code from}, {@code to}, {@code slider} (кортеж для {@link TuiRange}).
|
|
96
|
+
* Поля заполнены дефолтами и валидируются границами; округление значений — на стороне поля ввода Taiga.
|
|
90
97
|
*
|
|
91
98
|
* @param rangeFilter Фильтр типа range.
|
|
92
99
|
*/
|
|
93
|
-
protected createRangeFormControl(rangeFilter: ScRangeFilter):
|
|
94
|
-
from: FormControl<number>;
|
|
95
|
-
to: FormControl<number>;
|
|
96
|
-
slider: FormControl<[number, number]>;
|
|
97
|
-
}>;
|
|
100
|
+
protected createRangeFormControl(rangeFilter: ScRangeFilter): ScRangeFormGroup;
|
|
98
101
|
/**
|
|
99
102
|
* Реализует single-select поведение для FormGroup с булевыми контролами:
|
|
100
103
|
* при появлении нового true остальные контролы группы сбрасываются в false.
|
|
@@ -106,7 +109,7 @@ export declare class ScCatalogFiltersComponent {
|
|
|
106
109
|
*/
|
|
107
110
|
private syncSingleSelectCheckbox;
|
|
108
111
|
/**
|
|
109
|
-
*
|
|
112
|
+
* Двусторонняя синхронизация полей «от»/«до» и слайдера.
|
|
110
113
|
*
|
|
111
114
|
* @param group FormGroup range-фильтра.
|
|
112
115
|
*/
|
|
@@ -126,13 +129,12 @@ export declare class ScCatalogFiltersComponent {
|
|
|
126
129
|
*/
|
|
127
130
|
private processCheckboxFilter;
|
|
128
131
|
/**
|
|
129
|
-
* Обрабатывает range
|
|
132
|
+
* Обрабатывает range фильтр: границы «от»/«до» независимы, на сервер уходит только та, что отличается от дефолта.
|
|
133
|
+
* Если обе равны дефолтам (диапазон не сужали), фильтр не добавляется.
|
|
130
134
|
*
|
|
131
135
|
* @param result Объект результата для заполнения.
|
|
132
136
|
* @param filterId Идентификатор фильтра.
|
|
133
|
-
* @param
|
|
134
|
-
* @param range.from Начальное значение диапазона.
|
|
135
|
-
* @param range.to Конечное значение диапазона.
|
|
137
|
+
* @param group FormGroup range-фильтра (`from`, `to`, `slider`).
|
|
136
138
|
*/
|
|
137
139
|
private processRangeFilter;
|
|
138
140
|
/**
|
|
@@ -144,19 +146,23 @@ export declare class ScCatalogFiltersComponent {
|
|
|
144
146
|
*/
|
|
145
147
|
private processToggleFilter;
|
|
146
148
|
/**
|
|
147
|
-
*
|
|
149
|
+
* Возвращает метафильтр range по идентификатору из текущего списка фильтров.
|
|
150
|
+
*
|
|
151
|
+
* @param filterId Идентификатор фильтра.
|
|
152
|
+
*/
|
|
153
|
+
private getRangeFilter;
|
|
154
|
+
/**
|
|
155
|
+
* Сбрасывает поле «от» диапазона к значению по умолчанию (граница снова не отправляется на сервер).
|
|
148
156
|
*
|
|
149
157
|
* @param filterId Идентификатор фильтра.
|
|
150
|
-
* @param min Минимальное значение диапазона.
|
|
151
158
|
*/
|
|
152
|
-
protected resetRangeFrom(filterId: string
|
|
159
|
+
protected resetRangeFrom(filterId: string): void;
|
|
153
160
|
/**
|
|
154
|
-
* Сбрасывает поле «до» диапазона к
|
|
161
|
+
* Сбрасывает поле «до» диапазона к значению по умолчанию (граница снова не отправляется на сервер).
|
|
155
162
|
*
|
|
156
163
|
* @param filterId Идентификатор фильтра.
|
|
157
|
-
* @param max Максимальное значение диапазона.
|
|
158
164
|
*/
|
|
159
|
-
protected resetRangeTo(filterId: string
|
|
165
|
+
protected resetRangeTo(filterId: string): void;
|
|
160
166
|
/**
|
|
161
167
|
* Сбрасывает все чекбоксы группы в `false`.
|
|
162
168
|
*
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { InjectionToken } from '@angular/core';
|
|
2
2
|
import { ScPropertyFilters } from '@snabcentr/client-core';
|
|
3
|
-
import {
|
|
3
|
+
import { BehaviorSubject } from 'rxjs';
|
|
4
4
|
/**
|
|
5
|
-
* Токен для инъекции {@link
|
|
5
|
+
* Токен для инъекции {@link BehaviorSubject} для хранения фильтров продуктов.
|
|
6
6
|
*/
|
|
7
|
-
export declare const SC_CATALOG_PRODUCTS_FILTERS: InjectionToken<
|
|
7
|
+
export declare const SC_CATALOG_PRODUCTS_FILTERS: InjectionToken<BehaviorSubject<ScPropertyFilters>>;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
export * from './interfaces/sc-i-range-form-group';
|
|
1
2
|
export * from './tokens/sc-catalog-products-filters';
|
|
2
3
|
export * from './tokens/sc-catalog-show-products-recursively';
|
|
3
4
|
export * from './collapsible/sc-catalog-filter-collapsible.component';
|
|
4
5
|
export * from './sc-catalog-filters.component';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jbGllbnQtdWkvY2F0YWxvZy9jYXRhbG9nLWZpbHRlcnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyx1REFBdUQsQ0FBQztBQUN0RSxjQUFjLGdDQUFnQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2VzL3NjLWktcmFuZ2UtZm9ybS1ncm91cCc7XG5leHBvcnQgKiBmcm9tICcuL3Rva2Vucy9zYy1jYXRhbG9nLXByb2R1Y3RzLWZpbHRlcnMnO1xuZXhwb3J0ICogZnJvbSAnLi90b2tlbnMvc2MtY2F0YWxvZy1zaG93LXByb2R1Y3RzLXJlY3Vyc2l2ZWx5JztcbmV4cG9ydCAqIGZyb20gJy4vY29sbGFwc2libGUvc2MtY2F0YWxvZy1maWx0ZXItY29sbGFwc2libGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vc2MtY2F0YWxvZy1maWx0ZXJzLmNvbXBvbmVudCc7XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtaS1yYW5nZS1mb3JtLWdyb3VwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL2NhdGFsb2cvY2F0YWxvZy1maWx0ZXJzL2ludGVyZmFjZXMvc2MtaS1yYW5nZS1mb3JtLWdyb3VwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG4vKipcbiAqIHtAbGluayBGb3JtR3JvdXB9IHJhbmdlLdGE0LjQu9GM0YLRgNCwINC60LDRgtCw0LvQvtCz0LA6INC/0L7Qu9GPINCz0YDQsNC90LjRhiDCq9C+0YLCuy/Cq9C00L7CuyDQuCDQutC+0L3RgtGA0L7QuyDRgdC70LDQudC00LXRgNCwLlxuICovXG5leHBvcnQgdHlwZSBTY1JhbmdlRm9ybUdyb3VwID0gRm9ybUdyb3VwPHtcbiAgICAvKipcbiAgICAgKiDQndC40LbQvdGP0Y8g0LPRgNCw0L3QuNGG0LAg0LTQuNCw0L/QsNC30L7QvdCwICjCq9C+0YLCuykuXG4gICAgICovXG4gICAgZnJvbTogRm9ybUNvbnRyb2w8bnVtYmVyPjtcblxuICAgIC8qKlxuICAgICAqINCS0LXRgNGF0L3Rj9GPINCz0YDQsNC90LjRhtCwINC00LjQsNC/0LDQt9C+0L3QsCAowqvQtNC+wrspLlxuICAgICAqL1xuICAgIHRvOiBGb3JtQ29udHJvbDxudW1iZXI+O1xuXG4gICAgLyoqXG4gICAgICog0JrQvtGA0YLQtdC2INC30L3QsNGH0LXQvdC40Lkg0YHQu9Cw0LnQtNC10YDQsCBgW9C90LjQttC90Y/Rjywg0LLQtdGA0YXQvdGP0Y9dYCDQtNC70Y8ge0BsaW5rIFR1aVJhbmdlfS5cbiAgICAgKi9cbiAgICBzbGlkZXI6IEZvcm1Db250cm9sPFtudW1iZXIsIG51bWJlcl0+O1xufT47XG4iXX0=
|