@snabcentr/client-core 3.22.0 → 3.23.3

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.
@@ -1,3 +1,4 @@
1
1
  export * from './sc-image-helper';
2
2
  export * from './sc-units-helper';
3
3
  export * from './sc-get-current-route';
4
+ export * from './sc-number-helper';
@@ -0,0 +1,153 @@
1
+ import { TuiNumberFormatSettings } from '@taiga-ui/core';
2
+ /**
3
+ * Класс-помощник для работы с дробными числами.
4
+ *
5
+ * Округляет с учётом погрешности дробной арифметики, считает кратность шагу и задаёт настройки вывода чисел.
6
+ */
7
+ export declare class ScNumberHelper {
8
+ /**
9
+ * Наибольшее количество знаков после запятой в проценте на экране.
10
+ */
11
+ static readonly percentDisplayFractionDigits = 2;
12
+ /**
13
+ * Наибольшее количество знаков после запятой в площади, м².
14
+ */
15
+ static readonly areaFractionDigits = 4;
16
+ /**
17
+ * Количество знаков после запятой в географических координатах.
18
+ */
19
+ static readonly coordinateFractionDigits = 6;
20
+ /**
21
+ * Количество значащих цифр, до которого обрезается погрешность дробной арифметики.
22
+ */
23
+ static readonly significantDigits = 12;
24
+ /**
25
+ * Допустимая погрешность сравнения дробных чисел.
26
+ */
27
+ static readonly epsilon = 0.000001;
28
+ /**
29
+ * Настройки вывода площади.
30
+ */
31
+ static readonly areaFormat: Partial<TuiNumberFormatSettings>;
32
+ /**
33
+ * Настройки вывода целых чисел.
34
+ */
35
+ static readonly integerFormat: Partial<TuiNumberFormatSettings>;
36
+ /**
37
+ * Настройки вывода процентов.
38
+ */
39
+ static readonly percentFormat: Partial<TuiNumberFormatSettings>;
40
+ /**
41
+ * Настройки вывода денежных сумм по точности валюты.
42
+ */
43
+ private static readonly moneyFormatsByPrecision;
44
+ /**
45
+ * Точность рубля из справочника валют.
46
+ */
47
+ private static rubPrecisionValue?;
48
+ /**
49
+ * Точность рубля из справочника валют ({@link ScICurrency.precision}) или undefined, если справочник не загружен.
50
+ */
51
+ static get rubPrecision(): number | undefined;
52
+ /**
53
+ * Возвращает количество знаков после запятой в указанном числе с учётом экспоненциальной записи.
54
+ *
55
+ * @param value Число, для которого нужно определить количество знаков после запятой.
56
+ */
57
+ static getDecimalsCount(value: number): number;
58
+ /**
59
+ * Возвращает число без погрешности дробной арифметики.
60
+ *
61
+ * @param value Число с возможной погрешностью.
62
+ */
63
+ static normalize(value: number): number;
64
+ /**
65
+ * Возвращает значение, округлённое до указанного количества знаков после запятой.
66
+ *
67
+ * @param value Округляемое значение.
68
+ * @param fractionDigits Количество знаков после запятой.
69
+ */
70
+ static round(value: number, fractionDigits: number): number;
71
+ /**
72
+ * Запоминает точность рубля из справочника валют.
73
+ *
74
+ * @param precision Точность рубля ({@link ScICurrency.precision}).
75
+ */
76
+ static setRubPrecision(precision: number | undefined): void;
77
+ /**
78
+ * Возвращает денежную сумму, округлённую до точности валюты.
79
+ *
80
+ * Без известной точности убирает только погрешность дробной арифметики.
81
+ *
82
+ * @param value Денежная сумма.
83
+ * @param precision Точность валюты суммы ({@link ScICurrency.precision}), по умолчанию точность рубля.
84
+ */
85
+ static roundMoney(value: number, precision?: number | undefined): number;
86
+ /**
87
+ * Возвращает географическую координату, округлённую до точности хранения.
88
+ *
89
+ * @param value Координата.
90
+ */
91
+ static roundCoordinate(value: number): number;
92
+ /**
93
+ * Возвращает произведение значения на шаг, округлённое до точности множителей.
94
+ *
95
+ * @param value Множитель, обычно количество.
96
+ * @param step Шаг.
97
+ */
98
+ static multiplyByStep(value: number, step: number): number;
99
+ /**
100
+ * Возвращает частное от деления значения на шаг без погрешности дробной арифметики.
101
+ *
102
+ * @param value Делимое, обычно длина или количество.
103
+ * @param step Шаг.
104
+ */
105
+ static divideByStep(value: number, step: number): number;
106
+ /**
107
+ * Возвращает сумму значения и шага, округлённую до точности слагаемых.
108
+ *
109
+ * @param value Значение.
110
+ * @param step Шаг.
111
+ */
112
+ static addStep(value: number, step: number): number;
113
+ /**
114
+ * Возвращает остаток от деления значения на шаг без погрешности дробной арифметики.
115
+ *
116
+ * @param value Значение.
117
+ * @param step Шаг.
118
+ */
119
+ static remainder(value: number, step: number): number;
120
+ /**
121
+ * Возвращает значение, приведённое к ближайшему кратному шагу, с точностью шага.
122
+ *
123
+ * @param value Значение.
124
+ * @param step Шаг.
125
+ */
126
+ static snapToStep(value: number, step: number): number;
127
+ /**
128
+ * Возвращает признак того, что значение кратно шагу с учётом погрешности дробной арифметики.
129
+ *
130
+ * @param value Значение.
131
+ * @param step Шаг.
132
+ */
133
+ static isMultipleOf(value: number, step: number): boolean;
134
+ /**
135
+ * Возвращает настройки вывода денежной суммы с числом знаков после запятой, равным точности валюты.
136
+ *
137
+ * @param precision Точность валюты суммы ({@link ScICurrency.precision}), по умолчанию точность рубля.
138
+ */
139
+ static getMoneyFormat(precision?: number | undefined): Partial<TuiNumberFormatSettings>;
140
+ /**
141
+ * Возвращает денежную сумму в виде строки с разделителями разрядов и числом знаков после запятой, равным точности валюты.
142
+ *
143
+ * @param value Денежная сумма.
144
+ * @param precision Точность валюты суммы ({@link ScICurrency.precision}), по умолчанию точность рубля.
145
+ */
146
+ static formatMoney(value: number, precision?: number | undefined): string;
147
+ /**
148
+ * Возвращает число, в котором отрицательный ноль заменён на ноль.
149
+ *
150
+ * @param value Число.
151
+ */
152
+ private static withoutNegativeZero;
153
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@snabcentr/client-core",
3
- "version": "3.22.0",
3
+ "version": "3.23.3",
4
4
  "author": "Snabcentr Ltd.",
5
5
  "repository": "https://gitlab.snabcentr.met/web/angular/snabcentr-client-core-lib",
6
6
  "license": "Commercial",
@@ -1,3 +1,4 @@
1
1
  export * from './dto';
2
2
  export * from './enums';
3
3
  export * from './services';
4
+ export * from './sc-rub-precision.providers';
@@ -0,0 +1,6 @@
1
+ import { EnvironmentProviders } from '@angular/core';
2
+ /**
3
+ * Возвращает провайдеры загрузки точности рубля из справочника валют при старте приложения.
4
+ * По этой точности {@link ScNumberHelper} округляет и выводит рублёвые суммы.
5
+ */
6
+ export declare function provideRubPrecision(): EnvironmentProviders;
package/release_notes.tmp CHANGED
@@ -1,6 +1,11 @@
1
- ## 3.22.0 (2026-09-28)
1
+ ## 3.23.3 (2026-10-05)
2
2
 
3
- ### removed (1 change)
3
+ ### fixed (1 change)
4
4
 
5
- - [#13702: Удалено направление продаж из оформления заказа](web_soft/libs/angular/snabcentr-client-core-lib@59cf1bd0f2111b764ac833c29c9c4b8711c8e6da) ([merge request](web_soft/libs/angular/snabcentr-client-core-lib!348))
5
+ - [#14012: Точность денежных сумм берётся из справочника валют](web_soft/libs/angular/snabcentr-client-core-lib@1a566fa7a37fd6565469886b3e33bce4f828d33a) ([merge request](web_soft/libs/angular/snabcentr-client-core-lib!353))
6
+
7
+ ### added (2 changes)
8
+
9
+ - [#14012: Добавлен помощник для работы с дробными числами и единый формат вывода денежных сумм](web_soft/libs/angular/snabcentr-client-core-lib@dd45c5a44c27cd38b99901916f677a95b5b8d0b1) ([merge request](web_soft/libs/angular/snabcentr-client-core-lib!352))
10
+ - [#13830: В разметку Schema.org товаров добавлены политика возврата, бренд и...](web_soft/libs/angular/snabcentr-client-core-lib@beb1a719b94842117d947e2e191e17f486148642) ([merge request](web_soft/libs/angular/snabcentr-client-core-lib!351))
6
11
 
@@ -82,6 +82,10 @@ export declare class SchemaOrgFactory {
82
82
  * Формирует список ContactPoint для Organization.
83
83
  */
84
84
  private createOrganizationContactPoints;
85
+ /**
86
+ * Формирует MerchantReturnPolicy по условиям возврата из данных о компании.
87
+ */
88
+ private createMerchantReturnPolicy;
85
89
  /**
86
90
  * Удаляет HTML-разметку из текста.
87
91
  *
@@ -119,6 +123,13 @@ export declare class SchemaOrgFactory {
119
123
  * @param categoryPath Url путь к категориям товаров. В пути должен присутствовать шаблон ':id', обозначающий идентификатор категории для подстановки.
120
124
  */
121
125
  private getCategoryCanonicalUrl;
126
+ /**
127
+ * Создаёт Offer о продаже товара.
128
+ *
129
+ * @param product Данные о продукте.
130
+ * @param productUrl Полный URL страницы товара.
131
+ */
132
+ private createOffer;
122
133
  /**
123
134
  * Создаёт элемент списка ItemList с кратким Product для страницы категории.
124
135
  *
@@ -91,7 +91,7 @@ export declare class ScUser {
91
91
  */
92
92
  get isGuest(): boolean;
93
93
  /**
94
- * Округлённая задолженность. В шаблоне не определён {@link Math}.
94
+ * Задолженность по модулю, округлённая до точности рубля.
95
95
  */
96
96
  get absDebt(): number;
97
97
  }