@snabcentr/client-ui 4.16.9 → 4.16.10-profstroy

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.
Files changed (64) hide show
  1. package/alerts/confirm-alert/sc-confirm-alert.component.d.ts +22 -0
  2. package/alerts/index.d.ts +1 -0
  3. package/cart/add-or-editing-cart-item-dialog/sc-add-or-editing-cart-item-dialog.component.d.ts +1 -1
  4. package/cart/sc-cart-add-products-from-csv-dialog/sc-cart-add-products-from-csv-dialog.component.d.ts +3 -3
  5. package/catalog/input-quantity/sc-input-quantity.component.d.ts +17 -1
  6. package/esm2022/alerts/confirm-alert/sc-confirm-alert.component.mjs +29 -0
  7. package/esm2022/alerts/index.mjs +2 -0
  8. package/esm2022/cart/add-or-editing-cart-item-dialog/sc-add-or-editing-cart-item-dialog.component.mjs +4 -3
  9. package/esm2022/cart/sc-cart-add-products-from-csv-dialog/sc-cart-add-products-from-csv-dialog.component.mjs +5 -16
  10. package/esm2022/catalog/input-quantity/sc-input-quantity.component.mjs +24 -4
  11. package/esm2022/helpers/sc-api-error-helper.mjs +25 -0
  12. package/esm2022/helpers/sc-file-helper.mjs +29 -0
  13. package/esm2022/order/draft/helpers/sc-draft-list-helper.mjs +83 -0
  14. package/esm2022/order/draft/models/sc-i-draft-list-item.mjs +2 -0
  15. package/esm2022/order/draft/profstroy/actualization-panel/sc-profstroy-actualization-panel.component.mjs +73 -0
  16. package/esm2022/order/draft/profstroy/badge/sc-profstroy-badge.component.mjs +21 -0
  17. package/esm2022/order/draft/profstroy/badges/sc-profstroy-draft-badges.component.mjs +31 -0
  18. package/esm2022/order/draft/profstroy/create-dialog/sc-profstroy-draft-create-dialog.component.mjs +139 -0
  19. package/esm2022/order/draft/profstroy/enums/sc-profstroy-draft-state.mjs +32 -0
  20. package/esm2022/order/draft/profstroy/helpers/sc-profstroy-draft-helper.mjs +94 -0
  21. package/esm2022/order/draft/profstroy/index.mjs +8 -0
  22. package/esm2022/order/draft/profstroy/models/sc-i-profstroy-draft-state-view.mjs +2 -0
  23. package/esm2022/order/draft/sc-draft.component.mjs +148 -14
  24. package/esm2022/order/draft/services/sc-draft-expiration-clock.service.mjs +42 -0
  25. package/esm2022/order/draft/services/sc-draft-list-updates.service.mjs +288 -0
  26. package/esm2022/order/index.mjs +6 -1
  27. package/esm2022/order/new-order-items/sc-new-order-items.component.mjs +11 -3
  28. package/esm2022/order/order-form/sc-order-form.component.mjs +4 -2
  29. package/esm2022/order/order-item/sc-order-item.component.mjs +37 -5
  30. package/esm2022/order/order-items-list/sc-order-items-list.component.mjs +180 -47
  31. package/esm2022/order/order-items-list-by-stock/sc-order-items-list-by-stock.component.mjs +1 -1
  32. package/esm2022/order/order-items-list-with-actions/sc-order-items-list-with-actions.component.mjs +15 -3
  33. package/esm2022/pipes/sc-format-date.mjs +1 -1
  34. package/esm2022/providers/sc-date-formatter.mjs +1 -1
  35. package/esm2022/public-api.mjs +2 -1
  36. package/fesm2022/snabcentr-client-ui.mjs +1273 -122
  37. package/fesm2022/snabcentr-client-ui.mjs.map +1 -1
  38. package/helpers/sc-api-error-helper.d.ts +18 -0
  39. package/helpers/sc-file-helper.d.ts +13 -0
  40. package/order/draft/helpers/sc-draft-list-helper.d.ts +51 -0
  41. package/order/draft/models/sc-i-draft-list-item.d.ts +14 -0
  42. package/order/draft/profstroy/actualization-panel/sc-profstroy-actualization-panel.component.d.ts +58 -0
  43. package/order/draft/profstroy/badge/sc-profstroy-badge.component.d.ts +12 -0
  44. package/order/draft/profstroy/badges/sc-profstroy-draft-badges.component.d.ts +21 -0
  45. package/order/draft/profstroy/create-dialog/sc-profstroy-draft-create-dialog.component.d.ts +65 -0
  46. package/order/draft/profstroy/enums/sc-profstroy-draft-state.d.ts +29 -0
  47. package/order/draft/profstroy/helpers/sc-profstroy-draft-helper.d.ts +33 -0
  48. package/order/draft/profstroy/index.d.ts +7 -0
  49. package/order/draft/profstroy/models/sc-i-profstroy-draft-state-view.d.ts +17 -0
  50. package/order/draft/sc-draft.component.d.ts +73 -1
  51. package/order/draft/services/sc-draft-expiration-clock.service.d.ts +29 -0
  52. package/order/draft/services/sc-draft-list-updates.service.d.ts +158 -0
  53. package/order/index.d.ts +5 -0
  54. package/order/new-order-items/sc-new-order-items.component.d.ts +9 -1
  55. package/order/order-form/sc-order-form.component.d.ts +1 -0
  56. package/order/order-item/sc-order-item.component.d.ts +25 -1
  57. package/order/order-items-list/sc-order-items-list.component.d.ts +87 -9
  58. package/order/order-items-list-with-actions/sc-order-items-list-with-actions.component.d.ts +13 -1
  59. package/package.json +2 -2
  60. package/pipes/sc-format-date.d.ts +1 -1
  61. package/providers/sc-date-formatter.d.ts +1 -1
  62. package/public-api.d.ts +1 -0
  63. package/release_notes.tmp +1 -1
  64. package/styles/tailwind/tailwind.scss +41 -0
package/order/index.d.ts CHANGED
@@ -7,6 +7,11 @@ export * from './order-item/sc-order-item.component';
7
7
  export * from './order-items-list/sc-order-items-list.component';
8
8
  export * from './order-items-list-with-actions/sc-order-items-list-with-actions.component';
9
9
  export * from './order-items-list-by-stock/sc-order-items-list-by-stock.component';
10
+ export * from './draft/helpers/sc-draft-list-helper';
11
+ export * from './draft/models/sc-i-draft-list-item';
12
+ export * from './draft/services/sc-draft-expiration-clock.service';
13
+ export * from './draft/services/sc-draft-list-updates.service';
14
+ export * from './draft/profstroy';
10
15
  export * from './draft/sc-draft.component';
11
16
  export * from './sc-payment-status/sc-payment-status.component';
12
17
  export * from './sc-order.module';
@@ -16,6 +16,14 @@ export declare class ScNewOrderItemsComponent {
16
16
  * Включить выбор позиций чекбоксами.
17
17
  */
18
18
  readonly selectable: import("@angular/core").InputSignal<boolean>;
19
+ /**
20
+ * Признак, что цена за единицу берётся из позиции, а не из текущей цены товара.
21
+ */
22
+ readonly useLinePrice: import("@angular/core").InputSignal<boolean>;
23
+ /**
24
+ * Подпись итоговой суммы.
25
+ */
26
+ readonly totalLabel: import("@angular/core").InputSignal<string>;
19
27
  /**
20
28
  * Время обработки и принятия заказов (из настроек окружения приложения).
21
29
  */
@@ -25,5 +33,5 @@ export declare class ScNewOrderItemsComponent {
25
33
  */
26
34
  readonly selectedItemsIdsChange: import("@angular/core").OutputEmitterRef<string[]>;
27
35
  static ɵfac: i0.ɵɵFactoryDeclaration<ScNewOrderItemsComponent, never>;
28
- static ɵcmp: i0.ɵɵComponentDeclaration<ScNewOrderItemsComponent, "sc-new-order-items", never, { "items": { "alias": "items"; "required": true; "isSignal": true; }; "editable": { "alias": "editable"; "required": false; "isSignal": true; }; "selectable": { "alias": "selectable"; "required": false; "isSignal": true; }; "orderProcessingAcceptanceTime": { "alias": "orderProcessingAcceptanceTime"; "required": false; "isSignal": true; }; }, { "selectedItemsIdsChange": "selectedItemsIdsChange"; }, never, ["[footerActions]"], true, never>;
36
+ static ɵcmp: i0.ɵɵComponentDeclaration<ScNewOrderItemsComponent, "sc-new-order-items", never, { "items": { "alias": "items"; "required": true; "isSignal": true; }; "editable": { "alias": "editable"; "required": false; "isSignal": true; }; "selectable": { "alias": "selectable"; "required": false; "isSignal": true; }; "useLinePrice": { "alias": "useLinePrice"; "required": false; "isSignal": true; }; "totalLabel": { "alias": "totalLabel"; "required": false; "isSignal": true; }; "orderProcessingAcceptanceTime": { "alias": "orderProcessingAcceptanceTime"; "required": false; "isSignal": true; }; }, { "selectedItemsIdsChange": "selectedItemsIdsChange"; }, never, ["[footerActions]"], true, never>;
29
37
  }
@@ -201,6 +201,7 @@ export declare class ScOrderFormComponent implements OnInit {
201
201
  stringify(items: readonly SelectType[]): TuiStringHandler<TuiContext<number>>;
202
202
  /**
203
203
  * Обрабатывает отправку формы: валидирует и эмитит данные заказа родителю.
204
+ * Общая ошибка сервера с прошлой отправки (например, 409) не мешает отправить форму снова, ошибки полей остаются до их исправления.
204
205
  */
205
206
  submit(): void;
206
207
  /**
@@ -26,6 +26,30 @@ export declare class ScOrderItemComponent extends AbstractScPriceCard {
26
26
  * Признак, что необходимо отобразить элементы редактирования.
27
27
  */
28
28
  readonly isShowEditControls: import("@angular/core").InputSignal<boolean>;
29
+ /**
30
+ * Признак, что цена за единицу берётся из позиции, а не из текущей цены товара (например, цена, зафиксированная в заявке).
31
+ */
32
+ readonly useLinePrice: import("@angular/core").InputSignal<boolean>;
33
+ /**
34
+ * Признак, что позиция, которая не попадёт в заказ, помечается примечанием, а неактивная позиция зачёркивается.
35
+ */
36
+ readonly markUnavailable: import("@angular/core").InputSignal<boolean>;
37
+ /**
38
+ * Признак, что изменение позиции ждёт очереди или выполняется.
39
+ */
40
+ readonly isPending: import("@angular/core").InputSignal<boolean>;
41
+ /**
42
+ * Признак, что параметры позиции можно изменить в диалоге, даже если они ещё не заданы.
43
+ */
44
+ readonly settingsAvailable: import("@angular/core").InputSignal<boolean>;
45
+ /**
46
+ * Оформление примечания к позиции: группа, которая не участвует в заказе, серым, остальные причины жёлтым.
47
+ */
48
+ protected get unavailableReasonAppearance(): string;
49
+ /**
50
+ * Подсказка к количеству, когда поля количества нет: где его изменить. У неактивной позиции с примечанием количество не меняется, и подсказки нет.
51
+ */
52
+ protected get quantityHint(): string;
29
53
  /**
30
54
  * Отображает спецификацию.
31
55
  *
@@ -39,5 +63,5 @@ export declare class ScOrderItemComponent extends AbstractScPriceCard {
39
63
  */
40
64
  protected configuratorHintVisible(visible: boolean): void;
41
65
  static ɵfac: i0.ɵɵFactoryDeclaration<ScOrderItemComponent, never>;
42
- static ɵcmp: i0.ɵɵComponentDeclaration<ScOrderItemComponent, "sc-order-item", never, { "isShowEditControls": { "alias": "isShowEditControls"; "required": false; "isSignal": true; }; }, { "clickSettings": "clickSettings"; }, never, never, true, never>;
66
+ static ɵcmp: i0.ɵɵComponentDeclaration<ScOrderItemComponent, "sc-order-item", never, { "isShowEditControls": { "alias": "isShowEditControls"; "required": false; "isSignal": true; }; "useLinePrice": { "alias": "useLinePrice"; "required": false; "isSignal": true; }; "markUnavailable": { "alias": "markUnavailable"; "required": false; "isSignal": true; }; "isPending": { "alias": "isPending"; "required": false; "isSignal": true; }; "settingsAvailable": { "alias": "settingsAvailable"; "required": false; "isSignal": true; }; }, { "clickSettings": "clickSettings"; }, never, never, true, never>;
43
67
  }
@@ -1,5 +1,5 @@
1
1
  import { FormControl, FormGroup } from '@angular/forms';
2
- import { ScIOrderEditorLoader, ScIOrderLoader, ScOrderItem } from '@snabcentr/client-core';
2
+ import { ScIOrderEditorLoader, ScIOrderItemsGroup, ScIOrderLoader, ScOrderItem } from '@snabcentr/client-core';
3
3
  import { AbstractScPriceCard } from '../../directives';
4
4
  import { ScOrderOptions } from '../directives/sc-order-options';
5
5
  import * as i0 from "@angular/core";
@@ -19,6 +19,40 @@ export declare class ScOrderItemsListComponent {
19
19
  * Включить редактирование позиций.
20
20
  */
21
21
  readonly editable: import("@angular/core").InputSignal<boolean>;
22
+ /**
23
+ * Признак вывода позиций по группам (группа позиции или «Без группы») с заголовками и итогами. Без признака позиции выводятся одним списком без заголовков.
24
+ */
25
+ readonly grouped: import("@angular/core").InputSignal<boolean>;
26
+ /**
27
+ * Признак, что позиции, которые не попадут в заказ, помечаются примечанием и не выбираются. Неактивные позиции приглушаются и зачёркиваются.
28
+ */
29
+ readonly markUnavailable: import("@angular/core").InputSignal<boolean>;
30
+ /**
31
+ * Признак, что цена за единицу берётся из позиции, а не из текущей цены товара.
32
+ */
33
+ readonly useLinePrice: import("@angular/core").InputSignal<boolean>;
34
+ /**
35
+ * Признак, что параметры позиции меняются в диалоге товара: диалог доступен у любой активной позиции, а количество и метраж измеряемых товаров
36
+ * меняются только в нём, даже если метраж ещё не задан.
37
+ */
38
+ readonly measuredInDialog: import("@angular/core").InputSignal<boolean>;
39
+ /**
40
+ * Откуда удаляется позиция для текста подтверждения, например «из черновика». Если не задано, позиция удаляется без подтверждения.
41
+ * Тот же текст используется в предупреждении о нулевом количестве.
42
+ */
43
+ readonly deleteConfirmationTarget: import("@angular/core").InputSignal<string | null>;
44
+ /**
45
+ * Подпись итоговой суммы.
46
+ */
47
+ readonly totalLabel: import("@angular/core").InputSignal<string>;
48
+ /**
49
+ * Позиции, разбитые на группы. Без группировки все позиции идут одной группой без заголовка.
50
+ */
51
+ protected readonly groups: import("@angular/core").Signal<ScIOrderItemsGroup[]>;
52
+ /**
53
+ * Идентификаторы позиций, изменение или удаление которых ждёт очереди или выполняется.
54
+ */
55
+ protected readonly pendingItemsIds: import("@angular/core").WritableSignal<ReadonlySet<string>>;
22
56
  /**
23
57
  * Внутренняя группа формы для выбора позиций.
24
58
  */
@@ -32,7 +66,8 @@ export declare class ScOrderItemsListComponent {
32
66
  */
33
67
  protected readonly itemsIds: import("@angular/core").Signal<[string, boolean][]>;
34
68
  /**
35
- * Состояние флага «Выбрать все»: `true`, если выбраны все позиции, `false`, если ни одной, и `null`, если только часть.
69
+ * Состояние флага «Выбрать все»: `true`, если выбраны все доступные для выбора позиции, `false`, если ни одной или выбирать нечего,
70
+ * и `null`, если только часть.
36
71
  */
37
72
  protected readonly allItemsSelected: import("@angular/core").Signal<boolean | null>;
38
73
  /**
@@ -69,29 +104,54 @@ export declare class ScOrderItemsListComponent {
69
104
  * Предоставляется родителем через токен {@link SC_DIALOG_SERVICE_TOKEN}.
70
105
  */
71
106
  private readonly scDialogService;
107
+ /**
108
+ * Сервис диалоговых окон Taiga для подтверждений.
109
+ */
110
+ private readonly dialogService;
111
+ /**
112
+ * Сервис уведомлений.
113
+ */
114
+ private readonly alerts;
115
+ /**
116
+ * Инициализирует экземпляр класса {@link ScOrderItemsListComponent}.
117
+ * Входы выбора и пометки недоступных позиций могут прийти после списка позиций, поэтому при их изменении выбор синхронизируется заново.
118
+ */
119
+ constructor();
72
120
  /**
73
121
  * Список элементов корзины (товаров). При установке синхронно обновляет контролы выбора в форме.
74
122
  */
75
123
  set items(value: ScOrderItem[]);
76
124
  /**
77
125
  * Синхронизирует контролы формы выбора с текущим списком товаров: удаляет контролы для отсутствующих id, добавляет для новых.
126
+ * Контролы меняются без событий, а значение группы пересчитывается один раз в конце: на заявках в сотни позиций это заметно.
78
127
  */
79
128
  private syncSelectionControls;
80
129
  /**
81
- * Выбирает все позиции или снимает выбор со всех.
130
+ * Выбирает все доступные для выбора позиции или снимает выбор со всех.
82
131
  *
83
132
  * @param event Событие изменения флага выбора всех позиций.
84
133
  */
85
134
  protected selectAllChangeHandler(event: Event): void;
86
135
  /**
87
- * Удаляет позицию.
136
+ * Возвращает признак, что позиция приглушена: она неактивна или не выбрана для заказа.
137
+ *
138
+ * @param item Позиция.
139
+ */
140
+ protected isItemDimmed(item: ScOrderItem): boolean;
141
+ /**
142
+ * Возвращает признак, что количество и метраж товара позиции меняются в диалоге товара.
143
+ *
144
+ * @param item Позиция.
145
+ */
146
+ protected isEditedInDialog(item: ScOrderItem): boolean;
147
+ /**
148
+ * Удаляет позицию, при необходимости после подтверждения. Сообщение об ошибке показывает перехватчик приложения.
88
149
  *
89
150
  * @param item Позиция товара для удаления.
90
- * @param priceCard Компонент карточки товара.
91
151
  */
92
- protected deleteItem(item: ScOrderItem, priceCard: AbstractScPriceCard): void;
152
+ protected deleteItem(item: ScOrderItem): void;
93
153
  /**
94
- * Обновляет количество товара.
154
+ * Обновляет количество товара. Количество неактивной позиции не меняется. Пустое или нулевое значение возвращается к сохранённому количеству.
95
155
  *
96
156
  * @param newQuantity Новое значение количества товара.
97
157
  * @param priceCard Компонент карточки товара.
@@ -106,7 +166,7 @@ export declare class ScOrderItemsListComponent {
106
166
  */
107
167
  protected openProductInfoDialog(product: ScOrderItem['product'], orderItem?: ScOrderItem, orderId?: number): void;
108
168
  /**
109
- * Открывает модальное окно изменения товара или его конфигуратора.
169
+ * Открывает модальное окно изменения товара или его конфигуратора. Если параметры позиции меняются в диалоге, окно товара открывается и у штучного товара.
110
170
  *
111
171
  * @param item Позиция товара.
112
172
  */
@@ -117,6 +177,24 @@ export declare class ScOrderItemsListComponent {
117
177
  * @param product Товар/услуга, для которого необходимо отобразить график изменения стоимости.
118
178
  */
119
179
  protected openPriceHistoryChartDialog(product: ScOrderItem['product']): void;
180
+ /**
181
+ * Возвращает {@link Observable}, который выдаёт значение, когда удаление позиции подтверждено или подтверждение не требуется.
182
+ *
183
+ * @param item Удаляемая позиция.
184
+ */
185
+ private confirmDelete$;
186
+ /**
187
+ * Отмечает позицию как ожидающую ответа или снимает отметку.
188
+ *
189
+ * @param id Идентификатор позиции.
190
+ * @param isPending Признак ожидания.
191
+ */
192
+ private setItemPending;
193
+ /**
194
+ * Предупреждает, что количество не может быть пустым или нулевым, а убрать позицию можно удалением. Поле возвращается к сохранённому количеству
195
+ * в любом списке, предупреждение показывается только в списках с подтверждением удаления.
196
+ */
197
+ private warnEmptyQuantity;
120
198
  static ɵfac: i0.ɵɵFactoryDeclaration<ScOrderItemsListComponent, never>;
121
- static ɵcmp: i0.ɵɵComponentDeclaration<ScOrderItemsListComponent, "sc-order-items-list", never, { "selectable": { "alias": "selectable"; "required": false; "isSignal": true; }; "editable": { "alias": "editable"; "required": false; "isSignal": true; }; "items": { "alias": "items"; "required": true; }; }, { "selectedItemsIdsChange": "selectedItemsIdsChange"; }, never, never, true, never>;
199
+ static ɵcmp: i0.ɵɵComponentDeclaration<ScOrderItemsListComponent, "sc-order-items-list", never, { "selectable": { "alias": "selectable"; "required": false; "isSignal": true; }; "editable": { "alias": "editable"; "required": false; "isSignal": true; }; "grouped": { "alias": "grouped"; "required": false; "isSignal": true; }; "markUnavailable": { "alias": "markUnavailable"; "required": false; "isSignal": true; }; "useLinePrice": { "alias": "useLinePrice"; "required": false; "isSignal": true; }; "measuredInDialog": { "alias": "measuredInDialog"; "required": false; "isSignal": true; }; "deleteConfirmationTarget": { "alias": "deleteConfirmationTarget"; "required": false; "isSignal": true; }; "totalLabel": { "alias": "totalLabel"; "required": false; "isSignal": true; }; "items": { "alias": "items"; "required": true; }; }, { "selectedItemsIdsChange": "selectedItemsIdsChange"; }, never, never, true, never>;
122
200
  }
@@ -16,6 +16,18 @@ export declare class ScOrderItemsListWithActionsComponent {
16
16
  * Включить редактирование позиций.
17
17
  */
18
18
  readonly editable: import("@angular/core").InputSignal<boolean>;
19
+ /**
20
+ * Признак, что цена за единицу берётся из позиции, а не из текущей цены товара.
21
+ */
22
+ readonly useLinePrice: import("@angular/core").InputSignal<boolean>;
23
+ /**
24
+ * Откуда удаляется позиция для текста подтверждения, например «из черновика». Если не задано, позиция удаляется без подтверждения.
25
+ */
26
+ readonly deleteConfirmationTarget: import("@angular/core").InputSignal<string | null>;
27
+ /**
28
+ * Подпись итоговой суммы.
29
+ */
30
+ readonly totalLabel: import("@angular/core").InputSignal<string>;
19
31
  /**
20
32
  * Позиции, доступные для заказа.
21
33
  */
@@ -33,5 +45,5 @@ export declare class ScOrderItemsListWithActionsComponent {
33
45
  */
34
46
  constructor();
35
47
  static ɵfac: i0.ɵɵFactoryDeclaration<ScOrderItemsListWithActionsComponent, never>;
36
- static ɵcmp: i0.ɵɵComponentDeclaration<ScOrderItemsListWithActionsComponent, "sc-order-items-list-with-actions", never, { "items": { "alias": "items"; "required": true; "isSignal": true; }; "selectable": { "alias": "selectable"; "required": false; "isSignal": true; }; "editable": { "alias": "editable"; "required": false; "isSignal": true; }; "selectedItemsIds": { "alias": "selectedItemsIds"; "required": false; "isSignal": true; }; }, { "selectedItemsIds": "selectedItemsIdsChange"; }, never, ["[footerActions]"], true, never>;
48
+ static ɵcmp: i0.ɵɵComponentDeclaration<ScOrderItemsListWithActionsComponent, "sc-order-items-list-with-actions", never, { "items": { "alias": "items"; "required": true; "isSignal": true; }; "selectable": { "alias": "selectable"; "required": false; "isSignal": true; }; "editable": { "alias": "editable"; "required": false; "isSignal": true; }; "useLinePrice": { "alias": "useLinePrice"; "required": false; "isSignal": true; }; "deleteConfirmationTarget": { "alias": "deleteConfirmationTarget"; "required": false; "isSignal": true; }; "totalLabel": { "alias": "totalLabel"; "required": false; "isSignal": true; }; "selectedItemsIds": { "alias": "selectedItemsIds"; "required": false; "isSignal": true; }; }, { "selectedItemsIds": "selectedItemsIdsChange"; }, never, ["[footerActions]"], true, never>;
37
49
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@snabcentr/client-ui",
3
- "version": "4.16.9",
3
+ "version": "4.16.10-profstroy",
4
4
  "author": "Snabcentr Ltd.",
5
5
  "repository": "https://gitlab.snabcentr.met/web/angular/snabcentr-client-ui-lib",
6
6
  "license": "Commercial",
@@ -16,7 +16,7 @@
16
16
  "@maskito/core": "^3.11.1",
17
17
  "@ng-web-apis/intersection-observer": "^4.14.0",
18
18
  "@ng-web-apis/common": "^4.14.0",
19
- "@snabcentr/client-core": "^3.23.6",
19
+ "@snabcentr/client-core": "3.24.0-profstroy",
20
20
  "@taiga-ui/addon-charts": "^4.66.0",
21
21
  "@taiga-ui/addon-commerce": "^4.66.0",
22
22
  "@taiga-ui/cdk": "^4.66.0",
@@ -14,7 +14,7 @@ export declare class ScFormatDatePipe implements PipeTransform {
14
14
  * @param timeString - Строка времени.
15
15
  * @returns Форматированная дата и время.
16
16
  */
17
- transform(timeString?: string): string | undefined;
17
+ transform(timeString?: string | Date): string | undefined;
18
18
  static ɵfac: i0.ɵɵFactoryDeclaration<ScFormatDatePipe, never>;
19
19
  static ɵpipe: i0.ɵɵPipeDeclaration<ScFormatDatePipe, "scFormatDate", true>;
20
20
  }
@@ -3,4 +3,4 @@ import { InjectionToken } from '@angular/core';
3
3
  * Токен для функции форматирования даты и времени.
4
4
  * По умолчанию используется формат 'DD.MM.YYYY HH:MM'.
5
5
  */
6
- export declare const SC_DATE_FORMATTER: InjectionToken<(date: string) => string>;
6
+ export declare const SC_DATE_FORMATTER: InjectionToken<(date: string | Date) => string>;
package/public-api.d.ts CHANGED
@@ -2,6 +2,7 @@ export * from './models';
2
2
  export * from './services';
3
3
  export * from './auth';
4
4
  export * from './accordion';
5
+ export * from './alerts';
5
6
  export * from './banner';
6
7
  export * from './cart';
7
8
  export * from './catalog';
package/release_notes.tmp CHANGED
@@ -1,4 +1,4 @@
1
- ## 4.16.9 (2026-10-21)
1
+ ## 4.16.10-profstroy (2026-10-26)
2
2
 
3
3
  No changes.
4
4
 
@@ -873,6 +873,10 @@ video {
873
873
  height: 5rem !important;
874
874
  }
875
875
 
876
+ .\!h-auto {
877
+ height: auto !important;
878
+ }
879
+
876
880
  .h-10 {
877
881
  height: 2.5rem;
878
882
  }
@@ -1022,6 +1026,10 @@ video {
1022
1026
  max-width: 24rem;
1023
1027
  }
1024
1028
 
1029
+ .max-w-full {
1030
+ max-width: 100%;
1031
+ }
1032
+
1025
1033
  .max-w-min {
1026
1034
  max-width: -moz-min-content;
1027
1035
  max-width: min-content;
@@ -1148,10 +1156,18 @@ video {
1148
1156
  align-items: center;
1149
1157
  }
1150
1158
 
1159
+ .items-baseline {
1160
+ align-items: baseline;
1161
+ }
1162
+
1151
1163
  .\!justify-start {
1152
1164
  justify-content: flex-start !important;
1153
1165
  }
1154
1166
 
1167
+ .justify-start {
1168
+ justify-content: flex-start;
1169
+ }
1170
+
1155
1171
  .justify-end {
1156
1172
  justify-content: flex-end;
1157
1173
  }
@@ -1268,6 +1284,14 @@ video {
1268
1284
  white-space: nowrap;
1269
1285
  }
1270
1286
 
1287
+ .break-words {
1288
+ overflow-wrap: break-word;
1289
+ }
1290
+
1291
+ .break-all {
1292
+ word-break: break-all;
1293
+ }
1294
+
1271
1295
  .\!rounded-xl {
1272
1296
  border-radius: 0.75rem !important;
1273
1297
  }
@@ -1491,6 +1515,11 @@ video {
1491
1515
  padding-right: 1.5rem;
1492
1516
  }
1493
1517
 
1518
+ .py-0\.5 {
1519
+ padding-top: 0.125rem;
1520
+ padding-bottom: 0.125rem;
1521
+ }
1522
+
1494
1523
  .py-14 {
1495
1524
  padding-top: 3.5rem;
1496
1525
  padding-bottom: 3.5rem;
@@ -1510,6 +1539,10 @@ video {
1510
1539
  padding-bottom: 0.25rem;
1511
1540
  }
1512
1541
 
1542
+ .pb-2 {
1543
+ padding-bottom: 0.5rem;
1544
+ }
1545
+
1513
1546
  .pb-4 {
1514
1547
  padding-bottom: 1rem;
1515
1548
  }
@@ -1795,6 +1828,10 @@ video {
1795
1828
  text-decoration-line: underline;
1796
1829
  }
1797
1830
 
1831
+ .\!line-through {
1832
+ text-decoration-line: line-through !important;
1833
+ }
1834
+
1798
1835
  .line-through {
1799
1836
  text-decoration-line: line-through;
1800
1837
  }
@@ -1966,6 +2003,10 @@ video {
1966
2003
  align-items: flex-start;
1967
2004
  }
1968
2005
 
2006
+ .sm\:items-end {
2007
+ align-items: flex-end;
2008
+ }
2009
+
1969
2010
  .sm\:border-32 {
1970
2011
  border-width: 2rem;
1971
2012
  }