@snabcentr/client-ui 4.14.7 → 4.14.8
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/auth/sign-up-form/sc-sign-up-form.component.d.ts +6 -0
- package/contragents/new-contragent-form/sc-new-contragent-form.component.d.ts +4 -0
- package/contragents/sc-contragents.module.d.ts +4 -3
- package/delivery-address/add-delivery-address-dialog/sc-add-delivery-address-dialog.component.d.ts +13 -0
- package/directives/address-quality/sc-address-quality.directive.d.ts +23 -0
- package/directives/address-quality/sc-address-quality.service.d.ts +122 -0
- package/directives/address-quality/sc-i-address-quality-state.d.ts +14 -0
- package/directives/index.d.ts +2 -0
- package/esm2022/auth/sc-simple-sign-up-form/sc-simple-sign-up-form.component.mjs +1 -1
- package/esm2022/auth/sign-up-form/sc-sign-up-form.component.mjs +14 -4
- package/esm2022/catalog/notify-when-in-stock-dialog/sc-notify-when-in-stock-dialog.component.mjs +2 -2
- package/esm2022/contacts/new-contact-form/sc-new-contact-form.component.mjs +1 -1
- package/esm2022/contragents/new-contragent-bank-account-form/sc-new-contragent-bank-account-form.component.mjs +1 -1
- package/esm2022/contragents/new-contragent-form/sc-new-contragent-form.component.mjs +26 -20
- package/esm2022/contragents/sc-contragents.module.mjs +4 -1
- package/esm2022/delivery-address/add-delivery-address-dialog/sc-add-delivery-address-dialog.component.mjs +25 -4
- package/esm2022/directives/address-quality/sc-address-quality.directive.mjs +40 -0
- package/esm2022/directives/address-quality/sc-address-quality.service.mjs +214 -0
- package/esm2022/directives/address-quality/sc-i-address-quality-state.mjs +2 -0
- package/esm2022/directives/index.mjs +3 -1
- package/esm2022/feedback/feedback-form/sc-feedback-form.component.mjs +11 -21
- package/esm2022/form-fields/addresses-selection-field/sc-addresses-selection-field.component.mjs +4 -5
- package/esm2022/form-fields/suggestion-field/sc-suggestion-field.component.mjs +76 -16
- package/esm2022/order/draft/sc-draft.component.mjs +12 -15
- package/esm2022/order/index.mjs +3 -4
- package/esm2022/order/new-order-items/sc-new-order-items.component.mjs +39 -0
- package/esm2022/order/order-form/sc-order-form.component.mjs +6 -18
- package/esm2022/order/order-items-list/sc-order-items-list.component.mjs +3 -4
- package/esm2022/order/order-items-list-with-actions/sc-order-items-list-with-actions.component.mjs +53 -0
- package/esm2022/providers/index.mjs +2 -2
- package/esm2022/providers/sc-block-incomplete-address.mjs +8 -0
- package/esm2022/public-api.mjs +2 -1
- package/esm2022/samples/sc-sample.module.mjs +3 -10
- package/esm2022/services/index.mjs +2 -1
- package/esm2022/services/sc-scripts.service.mjs +106 -0
- package/esm2022/smart-captcha/index.mjs +5 -0
- package/esm2022/smart-captcha/interfaces/index.mjs +6 -0
- package/esm2022/smart-captcha/interfaces/sc-smart-captcha-api.mjs +2 -0
- package/esm2022/smart-captcha/interfaces/sc-smart-captcha-event.mjs +2 -0
- package/esm2022/smart-captcha/interfaces/sc-smart-captcha-language.mjs +2 -0
- package/esm2022/smart-captcha/interfaces/sc-smart-captcha-render-params.mjs +2 -0
- package/esm2022/smart-captcha/interfaces/sc-smart-captcha-settings.mjs +2 -0
- package/esm2022/smart-captcha/interfaces/sc-smart-captcha-window.mjs +2 -0
- package/esm2022/smart-captcha/sc-smart-captcha.component.mjs +167 -0
- package/esm2022/smart-captcha/services/index.mjs +2 -0
- package/esm2022/smart-captcha/services/sc-smart-captcha-loader.service.mjs +87 -0
- package/esm2022/smart-captcha/tokens/index.mjs +3 -0
- package/esm2022/smart-captcha/tokens/sc-smart-captcha-load-timeout.token.mjs +8 -0
- package/esm2022/smart-captcha/tokens/sc-smart-captcha-settings.token.mjs +6 -0
- package/esm2022/user/update-user-info-dialog/sc-update-user-info-dialog.component.mjs +3 -3
- package/feedback/feedback-form/sc-feedback-form.component.d.ts +1 -1
- package/fesm2022/snabcentr-client-ui.mjs +806 -215
- package/fesm2022/snabcentr-client-ui.mjs.map +1 -1
- package/form-fields/addresses-selection-field/sc-addresses-selection-field.component.d.ts +2 -0
- package/form-fields/suggestion-field/sc-suggestion-field.component.d.ts +36 -2
- package/order/draft/sc-draft.component.d.ts +5 -8
- package/order/index.d.ts +2 -3
- package/order/{order-direction-items/sc-order-direction-items.component.d.ts → new-order-items/sc-new-order-items.component.d.ts} +5 -5
- package/order/order-form/sc-order-form.component.d.ts +2 -11
- package/order/order-items-list/sc-order-items-list.component.d.ts +0 -1
- package/order/order-items-list-with-actions/sc-order-items-list-with-actions.component.d.ts +37 -0
- package/package.json +2 -3
- package/providers/index.d.ts +1 -1
- package/providers/sc-block-incomplete-address.d.ts +5 -0
- package/public-api.d.ts +1 -0
- package/release_notes.tmp +1 -1
- package/samples/sc-sample.module.d.ts +1 -2
- package/services/index.d.ts +1 -0
- package/services/sc-scripts.service.d.ts +51 -0
- package/smart-captcha/index.d.ts +4 -0
- package/smart-captcha/interfaces/index.d.ts +5 -0
- package/smart-captcha/interfaces/sc-smart-captcha-api.d.ts +36 -0
- package/smart-captcha/interfaces/sc-smart-captcha-event.d.ts +4 -0
- package/smart-captcha/interfaces/sc-smart-captcha-language.d.ts +4 -0
- package/smart-captcha/interfaces/sc-smart-captcha-render-params.d.ts +16 -0
- package/smart-captcha/interfaces/sc-smart-captcha-settings.d.ts +16 -0
- package/smart-captcha/interfaces/sc-smart-captcha-window.d.ts +14 -0
- package/smart-captcha/sc-smart-captcha.component.d.ts +92 -0
- package/smart-captcha/services/index.d.ts +1 -0
- package/smart-captcha/services/sc-smart-captcha-loader.service.d.ts +50 -0
- package/smart-captcha/tokens/index.d.ts +2 -0
- package/smart-captcha/tokens/sc-smart-captcha-load-timeout.token.d.ts +5 -0
- package/smart-captcha/tokens/sc-smart-captcha-settings.token.d.ts +6 -0
- package/styles/tailwind/tailwind.scss +48 -2
- package/esm2022/order/models/sc-i-cart-items-by-direction.mjs +0 -22
- package/esm2022/order/order-direction-items/sc-order-direction-items.component.mjs +0 -39
- package/esm2022/order/order-items-list-by-directions/sc-order-items-list-by-directions.component.mjs +0 -75
- package/esm2022/providers/cleanup-recaptcha-artifacts.mjs +0 -30
- package/order/models/sc-i-cart-items-by-direction.d.ts +0 -25
- package/order/order-items-list-by-directions/sc-order-items-list-by-directions.component.d.ts +0 -58
- package/providers/cleanup-recaptcha-artifacts.d.ts +0 -7
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { Observable } from 'rxjs';
|
|
2
|
+
import { ScSmartCaptchaApi } from '../interfaces/sc-smart-captcha-api';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
/**
|
|
5
|
+
* Сервис загрузки скрипта Yandex SmartCaptcha.
|
|
6
|
+
*/
|
|
7
|
+
export declare class ScSmartCaptchaLoaderService {
|
|
8
|
+
/**
|
|
9
|
+
* Сервис для вставки внешних скриптов.
|
|
10
|
+
*/
|
|
11
|
+
private readonly scriptsService;
|
|
12
|
+
/**
|
|
13
|
+
* Окно браузера с API Yandex SmartCaptcha.
|
|
14
|
+
*/
|
|
15
|
+
private readonly window;
|
|
16
|
+
/**
|
|
17
|
+
* Признак того, что приложение запущено в браузере.
|
|
18
|
+
*/
|
|
19
|
+
private readonly isBrowser;
|
|
20
|
+
/**
|
|
21
|
+
* Время ожидания загрузки скрипта в миллисекундах.
|
|
22
|
+
*/
|
|
23
|
+
private readonly loadTimeout;
|
|
24
|
+
/**
|
|
25
|
+
* Имя функции окна, которую скрипт вызывает после загрузки.
|
|
26
|
+
*/
|
|
27
|
+
private readonly onloadCallbackName;
|
|
28
|
+
/**
|
|
29
|
+
* Адрес скрипта.
|
|
30
|
+
*/
|
|
31
|
+
private readonly scriptUrl;
|
|
32
|
+
/**
|
|
33
|
+
* Загрузка API, общая для всех виджетов. Скрипт загружается один раз; отписка и истечение ожидания у подписчика загрузку не прерывают, после ошибки следующая подписка загружает скрипт заново.
|
|
34
|
+
*/
|
|
35
|
+
private readonly loading$;
|
|
36
|
+
/**
|
|
37
|
+
* {@link Observable} API Yandex SmartCaptcha. Значения и ошибки приходят вне зоны Angular, ожидание первого значения ограничено {@link SC_SMART_CAPTCHA_LOAD_TIMEOUT}.
|
|
38
|
+
*/
|
|
39
|
+
readonly api$: Observable<ScSmartCaptchaApi>;
|
|
40
|
+
/**
|
|
41
|
+
* Возвращает API Yandex SmartCaptcha, при необходимости загружая скрипт. На сервере ничего не возвращает.
|
|
42
|
+
*/
|
|
43
|
+
private load$;
|
|
44
|
+
/**
|
|
45
|
+
* Ждёт вызова функции из параметра `onload` адреса скрипта и возвращает API, которое скрипт к этому моменту создал.
|
|
46
|
+
*/
|
|
47
|
+
private onload$;
|
|
48
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ScSmartCaptchaLoaderService, never>;
|
|
49
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<ScSmartCaptchaLoaderService>;
|
|
50
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
import { ScSmartCaptchaSettings } from '../interfaces/sc-smart-captcha-settings';
|
|
3
|
+
/**
|
|
4
|
+
* Токен настроек Yandex SmartCaptcha. Задаётся приложением.
|
|
5
|
+
*/
|
|
6
|
+
export declare const SC_SMART_CAPTCHA_SETTINGS: InjectionToken<ScSmartCaptchaSettings>;
|
|
@@ -554,6 +554,40 @@ video {
|
|
|
554
554
|
display: none;
|
|
555
555
|
}
|
|
556
556
|
|
|
557
|
+
.container {
|
|
558
|
+
width: 100%;
|
|
559
|
+
}
|
|
560
|
+
|
|
561
|
+
@media (min-width: 640px) {
|
|
562
|
+
.container {
|
|
563
|
+
max-width: 640px;
|
|
564
|
+
}
|
|
565
|
+
}
|
|
566
|
+
|
|
567
|
+
@media (min-width: 768px) {
|
|
568
|
+
.container {
|
|
569
|
+
max-width: 768px;
|
|
570
|
+
}
|
|
571
|
+
}
|
|
572
|
+
|
|
573
|
+
@media (min-width: 1024px) {
|
|
574
|
+
.container {
|
|
575
|
+
max-width: 1024px;
|
|
576
|
+
}
|
|
577
|
+
}
|
|
578
|
+
|
|
579
|
+
@media (min-width: 1280px) {
|
|
580
|
+
.container {
|
|
581
|
+
max-width: 1280px;
|
|
582
|
+
}
|
|
583
|
+
}
|
|
584
|
+
|
|
585
|
+
@media (min-width: 1536px) {
|
|
586
|
+
.container {
|
|
587
|
+
max-width: 1536px;
|
|
588
|
+
}
|
|
589
|
+
}
|
|
590
|
+
|
|
557
591
|
.pointer-events-none {
|
|
558
592
|
pointer-events: none;
|
|
559
593
|
}
|
|
@@ -925,14 +959,18 @@ video {
|
|
|
925
959
|
max-height: 0px !important;
|
|
926
960
|
}
|
|
927
961
|
|
|
928
|
-
.max-h
|
|
929
|
-
max-height: 5rem;
|
|
962
|
+
.max-h-\[7\.5rem\] {
|
|
963
|
+
max-height: 7.5rem;
|
|
930
964
|
}
|
|
931
965
|
|
|
932
966
|
.min-h-8 {
|
|
933
967
|
min-height: 2rem;
|
|
934
968
|
}
|
|
935
969
|
|
|
970
|
+
.min-h-\[7\.375rem\] {
|
|
971
|
+
min-height: 7.375rem;
|
|
972
|
+
}
|
|
973
|
+
|
|
936
974
|
.\!w-auto {
|
|
937
975
|
width: auto !important;
|
|
938
976
|
}
|
|
@@ -1747,6 +1785,10 @@ video {
|
|
|
1747
1785
|
color: var(--tui-status-positive);
|
|
1748
1786
|
}
|
|
1749
1787
|
|
|
1788
|
+
.text-tui-status-warning {
|
|
1789
|
+
color: var(--tui-status-warning);
|
|
1790
|
+
}
|
|
1791
|
+
|
|
1750
1792
|
.text-tui-success-fill {
|
|
1751
1793
|
color: var(--tui-status-positive);
|
|
1752
1794
|
}
|
|
@@ -1946,6 +1988,10 @@ video {
|
|
|
1946
1988
|
flex-direction: row;
|
|
1947
1989
|
}
|
|
1948
1990
|
|
|
1991
|
+
.sm\:flex-wrap {
|
|
1992
|
+
flex-wrap: wrap;
|
|
1993
|
+
}
|
|
1994
|
+
|
|
1949
1995
|
.sm\:flex-wrap-reverse {
|
|
1950
1996
|
flex-wrap: wrap-reverse;
|
|
1951
1997
|
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Группа позиций заказа по направлению продаж.
|
|
3
|
-
*/
|
|
4
|
-
export class ScOrderItemsByDirection {
|
|
5
|
-
/**
|
|
6
|
-
* @param direction Направление продаж.
|
|
7
|
-
* @param allItems Все элементы заказа.
|
|
8
|
-
*/
|
|
9
|
-
constructor(direction, allItems) {
|
|
10
|
-
this.direction = direction;
|
|
11
|
-
this.items = allItems.filter((item) => item.salesDirection === direction.id);
|
|
12
|
-
}
|
|
13
|
-
/**
|
|
14
|
-
* Получает список позиций заказа по идентификаторам.
|
|
15
|
-
*
|
|
16
|
-
* @param itemsIds Идентификаторы позиций.
|
|
17
|
-
*/
|
|
18
|
-
getItemsByIds(itemsIds) {
|
|
19
|
-
return this.items.filter((item) => itemsIds.includes(item.id));
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtaS1jYXJ0LWl0ZW1zLWJ5LWRpcmVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9vcmRlci9tb2RlbHMvc2MtaS1jYXJ0LWl0ZW1zLWJ5LWRpcmVjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQTs7R0FFRztBQUNILE1BQU0sT0FBTyx1QkFBdUI7SUFXaEM7OztPQUdHO0lBQ0gsWUFBWSxTQUE0QixFQUFFLFFBQWdDO1FBQ3RFLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzNCLElBQUksQ0FBQyxLQUFLLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsS0FBSyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDakYsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxhQUFhLENBQUMsUUFBa0I7UUFDbkMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNuRSxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTY0lTYWxlc0RpcmVjdGlvbiwgU2NPcmRlckl0ZW0gfSBmcm9tICdAc25hYmNlbnRyL2NsaWVudC1jb3JlJztcblxuLyoqXG4gKiDQk9GA0YPQv9C/0LAg0L/QvtC30LjRhtC40Lkg0LfQsNC60LDQt9CwINC/0L4g0L3QsNC/0YDQsNCy0LvQtdC90LjRjiDQv9GA0L7QtNCw0LYuXG4gKi9cbmV4cG9ydCBjbGFzcyBTY09yZGVySXRlbXNCeURpcmVjdGlvbiB7XG4gICAgLyoqXG4gICAgICog0J3QsNC/0YDQsNCy0LvQtdC90LjQtSDQv9GA0L7QtNCw0LYg0LjQu9C4IHVuZGVmaW5lZCDQtNC70Y8g0L/QvtC30LjRhtC40Lkg0LHQtdC3INC90LDQv9GA0LDQstC70LXQvdC40Y8uXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGRpcmVjdGlvbjogU2NJU2FsZXNEaXJlY3Rpb247XG5cbiAgICAvKipcbiAgICAgKiDQodC/0LjRgdC+0Log0L/QvtC30LjRhtC40Lkg0LfQsNC60LDQt9CwINCyINC00LDQvdC90L7QuSDQs9GA0YPQv9C/0LUuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGl0ZW1zOiBTY09yZGVySXRlbVtdO1xuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIGRpcmVjdGlvbiDQndCw0L/RgNCw0LLQu9C10L3QuNC1INC/0YDQvtC00LDQti5cbiAgICAgKiBAcGFyYW0gYWxsSXRlbXMg0JLRgdC1INGN0LvQtdC80LXQvdGC0Ysg0LfQsNC60LDQt9CwLlxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKGRpcmVjdGlvbjogU2NJU2FsZXNEaXJlY3Rpb24sIGFsbEl0ZW1zOiByZWFkb25seSBTY09yZGVySXRlbVtdKSB7XG4gICAgICAgIHRoaXMuZGlyZWN0aW9uID0gZGlyZWN0aW9uO1xuICAgICAgICB0aGlzLml0ZW1zID0gYWxsSXRlbXMuZmlsdGVyKChpdGVtKSA9PiBpdGVtLnNhbGVzRGlyZWN0aW9uID09PSBkaXJlY3Rpb24uaWQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqINCf0L7Qu9GD0YfQsNC10YIg0YHQv9C40YHQvtC6INC/0L7Qt9C40YbQuNC5INC30LDQutCw0LfQsCDQv9C+INC40LTQtdC90YLQuNGE0LjQutCw0YLQvtGA0LDQvC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBpdGVtc0lkcyDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgNGLINC/0L7Qt9C40YbQuNC5LlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRJdGVtc0J5SWRzKGl0ZW1zSWRzOiBzdHJpbmdbXSk6IFNjT3JkZXJJdGVtW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5pdGVtcy5maWx0ZXIoKGl0ZW0pID0+IGl0ZW1zSWRzLmluY2x1ZGVzKGl0ZW0uaWQpKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, input, output } from '@angular/core';
|
|
2
|
-
import { RouterLink } from '@angular/router';
|
|
3
|
-
import { TuiLink } from '@taiga-ui/core';
|
|
4
|
-
import { ScOrderItemsListByDirectionsComponent } from '../order-items-list-by-directions/sc-order-items-list-by-directions.component';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
/**
|
|
7
|
-
* Список товаров заказа по направлению продаж с выбором позиций для оформления.
|
|
8
|
-
*/
|
|
9
|
-
export class ScOrderDirectionItemsComponent {
|
|
10
|
-
constructor() {
|
|
11
|
-
/**
|
|
12
|
-
* Товары направления.
|
|
13
|
-
*/
|
|
14
|
-
this.items = input.required();
|
|
15
|
-
/**
|
|
16
|
-
* Разрешить редактирование позиций (количество, удаление).
|
|
17
|
-
*/
|
|
18
|
-
this.editable = input(false);
|
|
19
|
-
/**
|
|
20
|
-
* Включить выбор позиций чекбоксами.
|
|
21
|
-
*/
|
|
22
|
-
this.selectable = input(true);
|
|
23
|
-
/**
|
|
24
|
-
* Время обработки и принятия заказов (из настроек окружения приложения).
|
|
25
|
-
*/
|
|
26
|
-
this.orderProcessingAcceptanceTime = input('');
|
|
27
|
-
/**
|
|
28
|
-
* Изменение выбора позиций для оформления.
|
|
29
|
-
*/
|
|
30
|
-
this.selectedItemsIdsChange = output();
|
|
31
|
-
}
|
|
32
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScOrderDirectionItemsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
33
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: ScOrderDirectionItemsComponent, isStandalone: true, selector: "sc-order-direction-items", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: true, transformFunction: null }, editable: { classPropertyName: "editable", publicName: "editable", isSignal: true, isRequired: false, transformFunction: null }, selectable: { classPropertyName: "selectable", publicName: "selectable", isSignal: true, isRequired: false, transformFunction: null }, orderProcessingAcceptanceTime: { classPropertyName: "orderProcessingAcceptanceTime", publicName: "orderProcessingAcceptanceTime", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedItemsIdsChange: "selectedItemsIdsChange" }, ngImport: i0, template: "<div class=\"flex flex-col gap-5\">\n <ul class=\"ml-4 list-disc text-tui-success-fill\">\n <li>\u0417\u0430\u044F\u0432\u043A\u0438 \u043F\u0440\u0438\u043D\u0438\u043C\u0430\u044E\u0442\u0441\u044F \u043D\u0435 \u043F\u043E\u0437\u0434\u043D\u0435\u0435 {{ orderProcessingAcceptanceTime() }} \u043F\u043B\u0430\u043D\u0438\u0440\u0443\u0435\u043C\u043E\u0433\u043E \u0434\u043D\u044F \u043F\u043E\u0441\u0442\u0430\u0432\u043A\u0438.</li>\n <li>\u0417\u0430\u043A\u0430\u0437\u044B \u0441 \u0434\u043E\u0441\u0442\u0430\u0432\u043A\u043E\u0439 \u043D\u0430 \u043F\u043E\u043D\u0435\u0434\u0435\u043B\u044C\u043D\u0438\u043A \u043F\u0440\u0438\u043D\u0438\u043C\u0430\u044E\u0442\u0441\u044F \u0434\u043E {{ orderProcessingAcceptanceTime() }} \u043F\u044F\u0442\u043D\u0438\u0446\u044B.</li>\n <li>\u0417\u0430\u043A\u0430\u0437\u044B, \u0441\u043E\u0437\u0434\u0430\u043D\u043D\u044B\u0435 \u043F\u043E\u0437\u0434\u043D\u0435\u0435 {{ orderProcessingAcceptanceTime() }} \u043F\u044F\u0442\u043D\u0438\u0446\u044B \u0438\u043B\u0438 \u0432 \u0441\u0443\u0431\u0431\u043E\u0442\u0443/\u0432\u043E\u0441\u043A\u0440\u0435\u0441\u0435\u043D\u044C\u0435 \u0431\u0443\u0434\u0443\u0442 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u0430\u043D\u044B \u0432 \u0431\u0443\u0434\u043D\u0438\u0435 \u0434\u043D\u0438.</li>\n <li>\n \u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0442\u044C \u0441\u043F\u0438\u0441\u043A\u043E\u043C \u043A\u043E\u043D\u0442\u0440\u0430\u0433\u0435\u043D\u0442\u043E\u0432 \u0432\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u0432\n <a\n tuiLink\n routerLink=\"/profile\"\n >\n \u043B\u0438\u0447\u043D\u043E\u043C \u043A\u0430\u0431\u0438\u043D\u0435\u0442\u0435\n </a>\n .\n </li>\n </ul>\n\n <div class=\"sub-title\">\u0421\u043E\u0441\u0442\u0430\u0432 \u0437\u0430\u043A\u0430\u0437\u0430</div>\n\n <sc-order-items-list-by-directions\n [items]=\"items()\"\n [editable]=\"editable()\"\n [selectable]=\"selectable()\"\n [showContinueButton]=\"false\"\n (selectedItemsIdsChange)=\"selectedItemsIdsChange.emit($event)\"\n >\n <ng-content\n select=\"[footerActions]\"\n ngProjectAs=\"[footerActions]\"\n />\n </sc-order-items-list-by-directions>\n</div>\n", dependencies: [{ kind: "component", type: ScOrderItemsListByDirectionsComponent, selector: "sc-order-items-list-by-directions", inputs: ["items", "selectable", "editable", "showContinueButton", "continueButtonText", "selectedItemsIds"], outputs: ["continueClick", "selectedItemsIdsChange"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: TuiLink, selector: "a[tuiLink], button[tuiLink]", inputs: ["pseudo"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
34
|
-
}
|
|
35
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScOrderDirectionItemsComponent, decorators: [{
|
|
36
|
-
type: Component,
|
|
37
|
-
args: [{ standalone: true, selector: 'sc-order-direction-items', imports: [ScOrderItemsListByDirectionsComponent, RouterLink, TuiLink], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"flex flex-col gap-5\">\n <ul class=\"ml-4 list-disc text-tui-success-fill\">\n <li>\u0417\u0430\u044F\u0432\u043A\u0438 \u043F\u0440\u0438\u043D\u0438\u043C\u0430\u044E\u0442\u0441\u044F \u043D\u0435 \u043F\u043E\u0437\u0434\u043D\u0435\u0435 {{ orderProcessingAcceptanceTime() }} \u043F\u043B\u0430\u043D\u0438\u0440\u0443\u0435\u043C\u043E\u0433\u043E \u0434\u043D\u044F \u043F\u043E\u0441\u0442\u0430\u0432\u043A\u0438.</li>\n <li>\u0417\u0430\u043A\u0430\u0437\u044B \u0441 \u0434\u043E\u0441\u0442\u0430\u0432\u043A\u043E\u0439 \u043D\u0430 \u043F\u043E\u043D\u0435\u0434\u0435\u043B\u044C\u043D\u0438\u043A \u043F\u0440\u0438\u043D\u0438\u043C\u0430\u044E\u0442\u0441\u044F \u0434\u043E {{ orderProcessingAcceptanceTime() }} \u043F\u044F\u0442\u043D\u0438\u0446\u044B.</li>\n <li>\u0417\u0430\u043A\u0430\u0437\u044B, \u0441\u043E\u0437\u0434\u0430\u043D\u043D\u044B\u0435 \u043F\u043E\u0437\u0434\u043D\u0435\u0435 {{ orderProcessingAcceptanceTime() }} \u043F\u044F\u0442\u043D\u0438\u0446\u044B \u0438\u043B\u0438 \u0432 \u0441\u0443\u0431\u0431\u043E\u0442\u0443/\u0432\u043E\u0441\u043A\u0440\u0435\u0441\u0435\u043D\u044C\u0435 \u0431\u0443\u0434\u0443\u0442 \u043E\u0431\u0440\u0430\u0431\u043E\u0442\u0430\u043D\u044B \u0432 \u0431\u0443\u0434\u043D\u0438\u0435 \u0434\u043D\u0438.</li>\n <li>\n \u0423\u043F\u0440\u0430\u0432\u043B\u044F\u0442\u044C \u0441\u043F\u0438\u0441\u043A\u043E\u043C \u043A\u043E\u043D\u0442\u0440\u0430\u0433\u0435\u043D\u0442\u043E\u0432 \u0432\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u0432\n <a\n tuiLink\n routerLink=\"/profile\"\n >\n \u043B\u0438\u0447\u043D\u043E\u043C \u043A\u0430\u0431\u0438\u043D\u0435\u0442\u0435\n </a>\n .\n </li>\n </ul>\n\n <div class=\"sub-title\">\u0421\u043E\u0441\u0442\u0430\u0432 \u0437\u0430\u043A\u0430\u0437\u0430</div>\n\n <sc-order-items-list-by-directions\n [items]=\"items()\"\n [editable]=\"editable()\"\n [selectable]=\"selectable()\"\n [showContinueButton]=\"false\"\n (selectedItemsIdsChange)=\"selectedItemsIdsChange.emit($event)\"\n >\n <ng-content\n select=\"[footerActions]\"\n ngProjectAs=\"[footerActions]\"\n />\n </sc-order-items-list-by-directions>\n</div>\n" }]
|
|
38
|
-
}] });
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Mtb3JkZXItZGlyZWN0aW9uLWl0ZW1zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9vcmRlci9vcmRlci1kaXJlY3Rpb24taXRlbXMvc2Mtb3JkZXItZGlyZWN0aW9uLWl0ZW1zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9vcmRlci9vcmRlci1kaXJlY3Rpb24taXRlbXMvc2Mtb3JkZXItZGlyZWN0aW9uLWl0ZW1zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFN0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpDLE9BQU8sRUFBRSxxQ0FBcUMsRUFBRSxNQUFNLCtFQUErRSxDQUFDOztBQUV0STs7R0FFRztBQVFILE1BQU0sT0FBTyw4QkFBOEI7SUFQM0M7UUFRSTs7V0FFRztRQUNhLFVBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFpQixDQUFDO1FBRXhEOztXQUVHO1FBQ2EsYUFBUSxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUVqRDs7V0FFRztRQUNhLGVBQVUsR0FBRyxLQUFLLENBQVUsSUFBSSxDQUFDLENBQUM7UUFFbEQ7O1dBRUc7UUFDYSxrQ0FBNkIsR0FBRyxLQUFLLENBQVMsRUFBRSxDQUFDLENBQUM7UUFFbEU7O1dBRUc7UUFDYSwyQkFBc0IsR0FBRyxNQUFNLEVBQVksQ0FBQztLQUMvRDsrR0F6QlksOEJBQThCO21HQUE5Qiw4QkFBOEIsOHRCQ2pCM0MsZzJFQWdDQSw0Q0RsQmMscUNBQXFDLGlQQUFFLFVBQVUsb09BQUUsT0FBTzs7NEZBRzNELDhCQUE4QjtrQkFQMUMsU0FBUztpQ0FDTSxJQUFJLFlBQ04sMEJBQTBCLFdBRTNCLENBQUMscUNBQXFDLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxtQkFDcEQsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGlucHV0LCBvdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlckxpbmsgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgU2NPcmRlckl0ZW0gfSBmcm9tICdAc25hYmNlbnRyL2NsaWVudC1jb3JlJztcbmltcG9ydCB7IFR1aUxpbmsgfSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5cbmltcG9ydCB7IFNjT3JkZXJJdGVtc0xpc3RCeURpcmVjdGlvbnNDb21wb25lbnQgfSBmcm9tICcuLi9vcmRlci1pdGVtcy1saXN0LWJ5LWRpcmVjdGlvbnMvc2Mtb3JkZXItaXRlbXMtbGlzdC1ieS1kaXJlY3Rpb25zLmNvbXBvbmVudCc7XG5cbi8qKlxuICog0KHQv9C40YHQvtC6INGC0L7QstCw0YDQvtCyINC30LDQutCw0LfQsCDQv9C+INC90LDQv9GA0LDQstC70LXQvdC40Y4g0L/RgNC+0LTQsNC2INGBINCy0YvQsdC+0YDQvtC8INC/0L7Qt9C40YbQuNC5INC00LvRjyDQvtGE0L7RgNC80LvQtdC90LjRjy5cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ3NjLW9yZGVyLWRpcmVjdGlvbi1pdGVtcycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NjLW9yZGVyLWRpcmVjdGlvbi1pdGVtcy5jb21wb25lbnQuaHRtbCcsXG4gICAgaW1wb3J0czogW1NjT3JkZXJJdGVtc0xpc3RCeURpcmVjdGlvbnNDb21wb25lbnQsIFJvdXRlckxpbmssIFR1aUxpbmtdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTY09yZGVyRGlyZWN0aW9uSXRlbXNDb21wb25lbnQge1xuICAgIC8qKlxuICAgICAqINCi0L7QstCw0YDRiyDQvdCw0L/RgNCw0LLQu9C10L3QuNGPLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBpdGVtcyA9IGlucHV0LnJlcXVpcmVkPFNjT3JkZXJJdGVtW10+KCk7XG5cbiAgICAvKipcbiAgICAgKiDQoNCw0LfRgNC10YjQuNGC0Ywg0YDQtdC00LDQutGC0LjRgNC+0LLQsNC90LjQtSDQv9C+0LfQuNGG0LjQuSAo0LrQvtC70LjRh9C10YHRgtCy0L4sINGD0LTQsNC70LXQvdC40LUpLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBlZGl0YWJsZSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcblxuICAgIC8qKlxuICAgICAqINCS0LrQu9GO0YfQuNGC0Ywg0LLRi9Cx0L7RgCDQv9C+0LfQuNGG0LjQuSDRh9C10LrQsdC+0LrRgdCw0LzQuC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0YWJsZSA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xuXG4gICAgLyoqXG4gICAgICog0JLRgNC10LzRjyDQvtCx0YDQsNCx0L7RgtC60Lgg0Lgg0L/RgNC40L3Rj9GC0LjRjyDQt9Cw0LrQsNC30L7QsiAo0LjQtyDQvdCw0YHRgtGA0L7QtdC6INC+0LrRgNGD0LbQtdC90LjRjyDQv9GA0LjQu9C+0LbQtdC90LjRjykuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IG9yZGVyUHJvY2Vzc2luZ0FjY2VwdGFuY2VUaW1lID0gaW5wdXQ8c3RyaW5nPignJyk7XG5cbiAgICAvKipcbiAgICAgKiDQmNC30LzQtdC90LXQvdC40LUg0LLRi9Cx0L7RgNCwINC/0L7Qt9C40YbQuNC5INC00LvRjyDQvtGE0L7RgNC80LvQtdC90LjRjy5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0ZWRJdGVtc0lkc0NoYW5nZSA9IG91dHB1dDxzdHJpbmdbXT4oKTtcbn1cbiIsIjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC01XCI+XG4gICAgPHVsIGNsYXNzPVwibWwtNCBsaXN0LWRpc2MgdGV4dC10dWktc3VjY2Vzcy1maWxsXCI+XG4gICAgICAgIDxsaT7Ql9Cw0Y/QstC60Lgg0L/RgNC40L3QuNC80LDRjtGC0YHRjyDQvdC1INC/0L7Qt9C00L3QtdC1IHt7IG9yZGVyUHJvY2Vzc2luZ0FjY2VwdGFuY2VUaW1lKCkgfX0g0L/Qu9Cw0L3QuNGA0YPQtdC80L7Qs9C+INC00L3RjyDQv9C+0YHRgtCw0LLQutC4LjwvbGk+XG4gICAgICAgIDxsaT7Ql9Cw0LrQsNC30Ysg0YEg0LTQvtGB0YLQsNCy0LrQvtC5INC90LAg0L/QvtC90LXQtNC10LvRjNC90LjQuiDQv9GA0LjQvdC40LzQsNGO0YLRgdGPINC00L4ge3sgb3JkZXJQcm9jZXNzaW5nQWNjZXB0YW5jZVRpbWUoKSB9fSDQv9GP0YLQvdC40YbRiy48L2xpPlxuICAgICAgICA8bGk+0JfQsNC60LDQt9GLLCDRgdC+0LfQtNCw0L3QvdGL0LUg0L/QvtC30LTQvdC10LUge3sgb3JkZXJQcm9jZXNzaW5nQWNjZXB0YW5jZVRpbWUoKSB9fSDQv9GP0YLQvdC40YbRiyDQuNC70Lgg0LIg0YHRg9Cx0LHQvtGC0YMv0LLQvtGB0LrRgNC10YHQtdC90YzQtSDQsdGD0LTRg9GCINC+0LHRgNCw0LHQvtGC0LDQvdGLINCyINCx0YPQtNC90LjQtSDQtNC90LguPC9saT5cbiAgICAgICAgPGxpPlxuICAgICAgICAgICAg0KPQv9GA0LDQstC70Y/RgtGMINGB0L/QuNGB0LrQvtC8INC60L7QvdGC0YDQsNCz0LXQvdGC0L7QsiDQstGLINC80L7QttC10YLQtSDQslxuICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICB0dWlMaW5rXG4gICAgICAgICAgICAgICAgcm91dGVyTGluaz1cIi9wcm9maWxlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICDQu9C40YfQvdC+0Lwg0LrQsNCx0LjQvdC10YLQtVxuICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgLlxuICAgICAgICA8L2xpPlxuICAgIDwvdWw+XG5cbiAgICA8ZGl2IGNsYXNzPVwic3ViLXRpdGxlXCI+0KHQvtGB0YLQsNCyINC30LDQutCw0LfQsDwvZGl2PlxuXG4gICAgPHNjLW9yZGVyLWl0ZW1zLWxpc3QtYnktZGlyZWN0aW9uc1xuICAgICAgICBbaXRlbXNdPVwiaXRlbXMoKVwiXG4gICAgICAgIFtlZGl0YWJsZV09XCJlZGl0YWJsZSgpXCJcbiAgICAgICAgW3NlbGVjdGFibGVdPVwic2VsZWN0YWJsZSgpXCJcbiAgICAgICAgW3Nob3dDb250aW51ZUJ1dHRvbl09XCJmYWxzZVwiXG4gICAgICAgIChzZWxlY3RlZEl0ZW1zSWRzQ2hhbmdlKT1cInNlbGVjdGVkSXRlbXNJZHNDaGFuZ2UuZW1pdCgkZXZlbnQpXCJcbiAgICA+XG4gICAgICAgIDxuZy1jb250ZW50XG4gICAgICAgICAgICBzZWxlY3Q9XCJbZm9vdGVyQWN0aW9uc11cIlxuICAgICAgICAgICAgbmdQcm9qZWN0QXM9XCJbZm9vdGVyQWN0aW9uc11cIlxuICAgICAgICAvPlxuICAgIDwvc2Mtb3JkZXItaXRlbXMtbGlzdC1ieS1kaXJlY3Rpb25zPlxuPC9kaXY+XG4iXX0=
|
package/esm2022/order/order-items-list-by-directions/sc-order-items-list-by-directions.component.mjs
DELETED
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, computed, inject, input, model, output } from '@angular/core';
|
|
2
|
-
import { toSignal } from '@angular/core/rxjs-interop';
|
|
3
|
-
import { ScReferencesService } from '@snabcentr/client-core';
|
|
4
|
-
import { TuiButton } from '@taiga-ui/core';
|
|
5
|
-
import { ScOrderItemsByDirection } from '../models/sc-i-cart-items-by-direction';
|
|
6
|
-
import { ScOrderItemsListComponent } from '../order-items-list/sc-order-items-list.component';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
export class ScOrderItemsListByDirectionsComponent {
|
|
9
|
-
constructor() {
|
|
10
|
-
/**
|
|
11
|
-
* Внутренний сигнал списка элементов корзины (товаров).
|
|
12
|
-
*/
|
|
13
|
-
this.items = input.required();
|
|
14
|
-
/**
|
|
15
|
-
* Включить выбор позиций чекбоксами.
|
|
16
|
-
*/
|
|
17
|
-
this.selectable = input(true);
|
|
18
|
-
/**
|
|
19
|
-
* Включить редактирование позиций.
|
|
20
|
-
*/
|
|
21
|
-
this.editable = input(false);
|
|
22
|
-
/**
|
|
23
|
-
* Включить отображение кнопки продолжения.
|
|
24
|
-
*/
|
|
25
|
-
this.showContinueButton = input(true);
|
|
26
|
-
/**
|
|
27
|
-
* Текст кнопки продолжения.
|
|
28
|
-
*/
|
|
29
|
-
this.continueButtonText = input({ title: 'Заказать', iconStart: '@tui.shopping-cart' });
|
|
30
|
-
/**
|
|
31
|
-
* Событие клика на кнопку продолжения.
|
|
32
|
-
*/
|
|
33
|
-
this.continueClick = output();
|
|
34
|
-
/**
|
|
35
|
-
* Список направлений продаж из справочника.
|
|
36
|
-
*/
|
|
37
|
-
this.directions = toSignal(inject(ScReferencesService).directions$, { initialValue: undefined });
|
|
38
|
-
/**
|
|
39
|
-
* Позиции корзины, сгруппированные по направлениям продаж.
|
|
40
|
-
* Если передан cartDirections, используется он, иначе группировка выполняется автоматически.
|
|
41
|
-
*/
|
|
42
|
-
this.itemsByDirections = computed(() => {
|
|
43
|
-
const items = this.items().filter((item) => !item.product.isNull && !item.product.isHidden);
|
|
44
|
-
const directions = this.directions();
|
|
45
|
-
return directions?.map((direction) => new ScOrderItemsByDirection(direction, items)).filter((group) => group.items.length > 0) ?? [];
|
|
46
|
-
});
|
|
47
|
-
/**
|
|
48
|
-
* Позиции корзины, которые больше не предоставляются.
|
|
49
|
-
*/
|
|
50
|
-
this.nullItems = computed(() => this.items().filter((item) => item.product.isNull || item.product.isHidden));
|
|
51
|
-
/**
|
|
52
|
-
* Выходные данные при изменении выбора позиций.
|
|
53
|
-
*/
|
|
54
|
-
this.selectedItemsIds = model([]);
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Обработчик изменения выбора позиций.
|
|
58
|
-
*
|
|
59
|
-
* @param itemsIds Идентификаторы выбранных позиций.
|
|
60
|
-
* @param direction Направление продаж.
|
|
61
|
-
*/
|
|
62
|
-
selectedItemsHandler(itemsIds, direction) {
|
|
63
|
-
this.selectedItemsIds.update((previous) => [
|
|
64
|
-
...previous.filter((id) => !direction.items.some((item) => item.id === id) && this.items().some((item) => item.id === id)),
|
|
65
|
-
...itemsIds,
|
|
66
|
-
]);
|
|
67
|
-
}
|
|
68
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScOrderItemsListByDirectionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
69
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ScOrderItemsListByDirectionsComponent, isStandalone: true, selector: "sc-order-items-list-by-directions", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: true, transformFunction: null }, selectable: { classPropertyName: "selectable", publicName: "selectable", isSignal: true, isRequired: false, transformFunction: null }, editable: { classPropertyName: "editable", publicName: "editable", isSignal: true, isRequired: false, transformFunction: null }, showContinueButton: { classPropertyName: "showContinueButton", publicName: "showContinueButton", isSignal: true, isRequired: false, transformFunction: null }, continueButtonText: { classPropertyName: "continueButtonText", publicName: "continueButtonText", isSignal: true, isRequired: false, transformFunction: null }, selectedItemsIds: { classPropertyName: "selectedItemsIds", publicName: "selectedItemsIds", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { continueClick: "continueClick", selectedItemsIds: "selectedItemsIdsChange" }, ngImport: i0, template: "<div class=\"flex flex-col gap-5\">\n <!-- \u0413\u0440\u0443\u043F\u043F\u044B \u0442\u043E\u0432\u0430\u0440\u043E\u0432 \u043F\u043E \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u044F\u043C \u043F\u0440\u043E\u0434\u0430\u0436. -->\n @for (direction of itemsByDirections(); track direction.direction?.id; let groupIndex = $index) {\n <div class=\"flex flex-col gap-2.5\">\n @if (direction.direction && itemsByDirections().length > 1) {\n <div class=\"text-base font-bold\">\u041D\u0430\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u043F\u0440\u043E\u0434\u0430\u0436: {{ direction.direction.description }}</div>\n }\n\n <sc-order-items-list\n [items]=\"direction.items\"\n [selectable]=\"selectable()\"\n [editable]=\"editable()\"\n (selectedItemsIdsChange)=\"selectedItemsHandler($event, direction)\"\n />\n\n <!-- \u0424\u0443\u0442\u0435\u0440 \u0433\u0440\u0443\u043F\u043F\u044B \u0442\u043E\u0432\u0430\u0440\u043E\u0432. -->\n <div class=\"flex flex-col items-center sm:flex-row sm:items-start sm:flex-wrap-reverse grow gap-x-2.5 gap-y-4\">\n <ng-content select=\"[footerActions]\" />\n\n <!-- \u041A\u043D\u043E\u043F\u043A\u0430 \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0435\u043D\u0438\u044F. -->\n @if (showContinueButton()) {\n <button\n tuiButton\n type=\"button\"\n [disabled]=\"direction.getItemsByIds(selectedItemsIds()).length === 0\"\n [iconStart]=\"continueButtonText().iconStart\"\n class=\"sm:ml-auto\"\n (click)=\"continueClick.emit(direction)\"\n >\n {{ continueButtonText().title }}\n </button>\n }\n </div>\n </div>\n }\n\n @if (nullItems().length) {\n <div class=\"flex flex-col gap-2.5\">\n <div class=\"text-base font-bold\">\u0422\u043E\u0432\u0430\u0440\u044B \u0438 \u0443\u0441\u043B\u0443\u0433\u0438, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u0431\u043E\u043B\u044C\u0448\u0435 \u043D\u0435 \u043F\u0440\u0435\u0434\u043E\u0441\u0442\u0430\u0432\u043B\u044F\u044E\u0442\u0441\u044F.</div>\n\n <sc-order-items-list\n [items]=\"nullItems()\"\n [selectable]=\"false\"\n [editable]=\"editable()\"\n />\n </div>\n }\n</div>\n", dependencies: [{ kind: "component", type: ScOrderItemsListComponent, selector: "sc-order-items-list", inputs: ["selectable", "editable", "items"], outputs: ["selectedItemsIdsChange"] }, { kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
70
|
-
}
|
|
71
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScOrderItemsListByDirectionsComponent, decorators: [{
|
|
72
|
-
type: Component,
|
|
73
|
-
args: [{ standalone: true, selector: 'sc-order-items-list-by-directions', imports: [ScOrderItemsListComponent, TuiButton], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"flex flex-col gap-5\">\n <!-- \u0413\u0440\u0443\u043F\u043F\u044B \u0442\u043E\u0432\u0430\u0440\u043E\u0432 \u043F\u043E \u043D\u0430\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u044F\u043C \u043F\u0440\u043E\u0434\u0430\u0436. -->\n @for (direction of itemsByDirections(); track direction.direction?.id; let groupIndex = $index) {\n <div class=\"flex flex-col gap-2.5\">\n @if (direction.direction && itemsByDirections().length > 1) {\n <div class=\"text-base font-bold\">\u041D\u0430\u043F\u0440\u0430\u0432\u043B\u0435\u043D\u0438\u0435 \u043F\u0440\u043E\u0434\u0430\u0436: {{ direction.direction.description }}</div>\n }\n\n <sc-order-items-list\n [items]=\"direction.items\"\n [selectable]=\"selectable()\"\n [editable]=\"editable()\"\n (selectedItemsIdsChange)=\"selectedItemsHandler($event, direction)\"\n />\n\n <!-- \u0424\u0443\u0442\u0435\u0440 \u0433\u0440\u0443\u043F\u043F\u044B \u0442\u043E\u0432\u0430\u0440\u043E\u0432. -->\n <div class=\"flex flex-col items-center sm:flex-row sm:items-start sm:flex-wrap-reverse grow gap-x-2.5 gap-y-4\">\n <ng-content select=\"[footerActions]\" />\n\n <!-- \u041A\u043D\u043E\u043F\u043A\u0430 \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0435\u043D\u0438\u044F. -->\n @if (showContinueButton()) {\n <button\n tuiButton\n type=\"button\"\n [disabled]=\"direction.getItemsByIds(selectedItemsIds()).length === 0\"\n [iconStart]=\"continueButtonText().iconStart\"\n class=\"sm:ml-auto\"\n (click)=\"continueClick.emit(direction)\"\n >\n {{ continueButtonText().title }}\n </button>\n }\n </div>\n </div>\n }\n\n @if (nullItems().length) {\n <div class=\"flex flex-col gap-2.5\">\n <div class=\"text-base font-bold\">\u0422\u043E\u0432\u0430\u0440\u044B \u0438 \u0443\u0441\u043B\u0443\u0433\u0438, \u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u0431\u043E\u043B\u044C\u0448\u0435 \u043D\u0435 \u043F\u0440\u0435\u0434\u043E\u0441\u0442\u0430\u0432\u043B\u044F\u044E\u0442\u0441\u044F.</div>\n\n <sc-order-items-list\n [items]=\"nullItems()\"\n [selectable]=\"false\"\n [editable]=\"editable()\"\n />\n </div>\n }\n</div>\n" }]
|
|
74
|
-
}] });
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Mtb3JkZXItaXRlbXMtbGlzdC1ieS1kaXJlY3Rpb25zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9vcmRlci9vcmRlci1pdGVtcy1saXN0LWJ5LWRpcmVjdGlvbnMvc2Mtb3JkZXItaXRlbXMtbGlzdC1ieS1kaXJlY3Rpb25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9vcmRlci9vcmRlci1pdGVtcy1saXN0LWJ5LWRpcmVjdGlvbnMvc2Mtb3JkZXItaXRlbXMtbGlzdC1ieS1kaXJlY3Rpb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUFrQyxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNqRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQzs7QUFTOUYsTUFBTSxPQUFPLHFDQUFxQztJQVBsRDtRQVFJOztXQUVHO1FBQ2EsVUFBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQWlCLENBQUM7UUFFeEQ7O1dBRUc7UUFDYSxlQUFVLEdBQUcsS0FBSyxDQUFVLElBQUksQ0FBQyxDQUFDO1FBRWxEOztXQUVHO1FBQ2EsYUFBUSxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUVqRDs7V0FFRztRQUNhLHVCQUFrQixHQUFHLEtBQUssQ0FBVSxJQUFJLENBQUMsQ0FBQztRQUUxRDs7V0FFRztRQUNhLHVCQUFrQixHQUFHLEtBQUssQ0FBdUMsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxvQkFBb0IsRUFBRSxDQUFDLENBQUM7UUFFekk7O1dBRUc7UUFDYSxrQkFBYSxHQUFHLE1BQU0sRUFBMkIsQ0FBQztRQUVsRTs7V0FFRztRQUNjLGVBQVUsR0FBRyxRQUFRLENBQWtDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBRTlJOzs7V0FHRztRQUNnQixzQkFBaUIsR0FBRyxRQUFRLENBQTRCLEdBQUcsRUFBRTtZQUM1RSxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM1RixNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFFckMsT0FBTyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLHVCQUF1QixDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3pJLENBQUMsQ0FBQyxDQUFDO1FBRUg7O1dBRUc7UUFDZ0IsY0FBUyxHQUFHLFFBQVEsQ0FBZ0IsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBRTFJOztXQUVHO1FBQ2EscUJBQWdCLEdBQUcsS0FBSyxDQUFXLEVBQUUsQ0FBQyxDQUFDO0tBYzFEO0lBWkc7Ozs7O09BS0c7SUFDTyxvQkFBb0IsQ0FBQyxRQUFrQixFQUFFLFNBQWtDO1FBQ2pGLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO1lBQ3ZDLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQzFILEdBQUcsUUFBUTtTQUNkLENBQUMsQ0FBQztJQUNQLENBQUM7K0dBcEVRLHFDQUFxQzttR0FBckMscUNBQXFDLHdoQ0NmbEQsa2xGQWdEQSw0Q0RwQ2MseUJBQXlCLGtKQUFFLFNBQVM7OzRGQUdyQyxxQ0FBcUM7a0JBUGpELFNBQVM7aUNBQ00sSUFBSSxZQUNOLG1DQUFtQyxXQUVwQyxDQUFDLHlCQUF5QixFQUFFLFNBQVMsQ0FBQyxtQkFDOUIsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBpbmplY3QsIGlucHV0LCBtb2RlbCwgb3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IFNjSVNhbGVzRGlyZWN0aW9uLCBTY09yZGVySXRlbSwgU2NSZWZlcmVuY2VzU2VydmljZSB9IGZyb20gJ0BzbmFiY2VudHIvY2xpZW50LWNvcmUnO1xuaW1wb3J0IHsgVHVpQnV0dG9uIH0gZnJvbSAnQHRhaWdhLXVpL2NvcmUnO1xuXG5pbXBvcnQgeyBTY09yZGVySXRlbXNCeURpcmVjdGlvbiB9IGZyb20gJy4uL21vZGVscy9zYy1pLWNhcnQtaXRlbXMtYnktZGlyZWN0aW9uJztcbmltcG9ydCB7IFNjT3JkZXJJdGVtc0xpc3RDb21wb25lbnQgfSBmcm9tICcuLi9vcmRlci1pdGVtcy1saXN0L3NjLW9yZGVyLWl0ZW1zLWxpc3QuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ3NjLW9yZGVyLWl0ZW1zLWxpc3QtYnktZGlyZWN0aW9ucycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NjLW9yZGVyLWl0ZW1zLWxpc3QtYnktZGlyZWN0aW9ucy5jb21wb25lbnQuaHRtbCcsXG4gICAgaW1wb3J0czogW1NjT3JkZXJJdGVtc0xpc3RDb21wb25lbnQsIFR1aUJ1dHRvbl0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFNjT3JkZXJJdGVtc0xpc3RCeURpcmVjdGlvbnNDb21wb25lbnQge1xuICAgIC8qKlxuICAgICAqINCS0L3Rg9GC0YDQtdC90L3QuNC5INGB0LjQs9C90LDQuyDRgdC/0LjRgdC60LAg0Y3Qu9C10LzQtdC90YLQvtCyINC60L7RgNC30LjQvdGLICjRgtC+0LLQsNGA0L7QsikuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGl0ZW1zID0gaW5wdXQucmVxdWlyZWQ8U2NPcmRlckl0ZW1bXT4oKTtcblxuICAgIC8qKlxuICAgICAqINCS0LrQu9GO0YfQuNGC0Ywg0LLRi9Cx0L7RgCDQv9C+0LfQuNGG0LjQuSDRh9C10LrQsdC+0LrRgdCw0LzQuC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0YWJsZSA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xuXG4gICAgLyoqXG4gICAgICog0JLQutC70Y7Rh9C40YLRjCDRgNC10LTQsNC60YLQuNGA0L7QstCw0L3QuNC1INC/0L7Qt9C40YbQuNC5LlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBlZGl0YWJsZSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcblxuICAgIC8qKlxuICAgICAqINCS0LrQu9GO0YfQuNGC0Ywg0L7RgtC+0LHRgNCw0LbQtdC90LjQtSDQutC90L7Qv9C60Lgg0L/RgNC+0LTQvtC70LbQtdC90LjRjy5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgc2hvd0NvbnRpbnVlQnV0dG9uID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XG5cbiAgICAvKipcbiAgICAgKiDQotC10LrRgdGCINC60L3QvtC/0LrQuCDQv9GA0L7QtNC+0LvQttC10L3QuNGPLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBjb250aW51ZUJ1dHRvblRleHQgPSBpbnB1dDx7IHRpdGxlOiBzdHJpbmc7IGljb25TdGFydDogc3RyaW5nIH0+KHsgdGl0bGU6ICfQl9Cw0LrQsNC30LDRgtGMJywgaWNvblN0YXJ0OiAnQHR1aS5zaG9wcGluZy1jYXJ0JyB9KTtcblxuICAgIC8qKlxuICAgICAqINCh0L7QsdGL0YLQuNC1INC60LvQuNC60LAg0L3QsCDQutC90L7Qv9C60YMg0L/RgNC+0LTQvtC70LbQtdC90LjRjy5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgY29udGludWVDbGljayA9IG91dHB1dDxTY09yZGVySXRlbXNCeURpcmVjdGlvbj4oKTtcblxuICAgIC8qKlxuICAgICAqINCh0L/QuNGB0L7QuiDQvdCw0L/RgNCw0LLQu9C10L3QuNC5INC/0YDQvtC00LDQtiDQuNC3INGB0L/RgNCw0LLQvtGH0L3QuNC60LAuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBkaXJlY3Rpb25zID0gdG9TaWduYWw8U2NJU2FsZXNEaXJlY3Rpb25bXSB8IHVuZGVmaW5lZD4oaW5qZWN0KFNjUmVmZXJlbmNlc1NlcnZpY2UpLmRpcmVjdGlvbnMkLCB7IGluaXRpYWxWYWx1ZTogdW5kZWZpbmVkIH0pO1xuXG4gICAgLyoqXG4gICAgICog0J/QvtC30LjRhtC40Lgg0LrQvtGA0LfQuNC90YssINGB0LPRgNGD0L/Qv9C40YDQvtCy0LDQvdC90YvQtSDQv9C+INC90LDQv9GA0LDQstC70LXQvdC40Y/QvCDQv9GA0L7QtNCw0LYuXG4gICAgICog0JXRgdC70Lgg0L/QtdGA0LXQtNCw0L0gY2FydERpcmVjdGlvbnMsINC40YHQv9C+0LvRjNC30YPQtdGC0YHRjyDQvtC9LCDQuNC90LDRh9C1INCz0YDRg9C/0L/QuNGA0L7QstC60LAg0LLRi9C/0L7Qu9C90Y/QtdGC0YHRjyDQsNCy0YLQvtC80LDRgtC40YfQtdGB0LrQuC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXRlbXNCeURpcmVjdGlvbnMgPSBjb21wdXRlZDxTY09yZGVySXRlbXNCeURpcmVjdGlvbltdPigoKSA9PiB7XG4gICAgICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5pdGVtcygpLmZpbHRlcigoaXRlbSkgPT4gIWl0ZW0ucHJvZHVjdC5pc051bGwgJiYgIWl0ZW0ucHJvZHVjdC5pc0hpZGRlbik7XG4gICAgICAgIGNvbnN0IGRpcmVjdGlvbnMgPSB0aGlzLmRpcmVjdGlvbnMoKTtcblxuICAgICAgICByZXR1cm4gZGlyZWN0aW9ucz8ubWFwKChkaXJlY3Rpb24pID0+IG5ldyBTY09yZGVySXRlbXNCeURpcmVjdGlvbihkaXJlY3Rpb24sIGl0ZW1zKSkuZmlsdGVyKChncm91cCkgPT4gZ3JvdXAuaXRlbXMubGVuZ3RoID4gMCkgPz8gW107XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiDQn9C+0LfQuNGG0LjQuCDQutC+0YDQt9C40L3Riywg0LrQvtGC0L7RgNGL0LUg0LHQvtC70YzRiNC1INC90LUg0L/RgNC10LTQvtGB0YLQsNCy0LvRj9GO0YLRgdGPLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBudWxsSXRlbXMgPSBjb21wdXRlZDxTY09yZGVySXRlbVtdPigoKSA9PiB0aGlzLml0ZW1zKCkuZmlsdGVyKChpdGVtKSA9PiBpdGVtLnByb2R1Y3QuaXNOdWxsIHx8IGl0ZW0ucHJvZHVjdC5pc0hpZGRlbikpO1xuXG4gICAgLyoqXG4gICAgICog0JLRi9GF0L7QtNC90YvQtSDQtNCw0L3QvdGL0LUg0L/RgNC4INC40LfQvNC10L3QtdC90LjQuCDQstGL0LHQvtGA0LAg0L/QvtC30LjRhtC40LkuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IHNlbGVjdGVkSXRlbXNJZHMgPSBtb2RlbDxzdHJpbmdbXT4oW10pO1xuXG4gICAgLyoqXG4gICAgICog0J7QsdGA0LDQsdC+0YLRh9C40Log0LjQt9C80LXQvdC10L3QuNGPINCy0YvQsdC+0YDQsCDQv9C+0LfQuNGG0LjQuS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBpdGVtc0lkcyDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgNGLINCy0YvQsdGA0LDQvdC90YvRhSDQv9C+0LfQuNGG0LjQuS5cbiAgICAgKiBAcGFyYW0gZGlyZWN0aW9uINCd0LDQv9GA0LDQstC70LXQvdC40LUg0L/RgNC+0LTQsNC2LlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBzZWxlY3RlZEl0ZW1zSGFuZGxlcihpdGVtc0lkczogc3RyaW5nW10sIGRpcmVjdGlvbjogU2NPcmRlckl0ZW1zQnlEaXJlY3Rpb24pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zSWRzLnVwZGF0ZSgocHJldmlvdXMpID0+IFtcbiAgICAgICAgICAgIC4uLnByZXZpb3VzLmZpbHRlcigoaWQpID0+ICFkaXJlY3Rpb24uaXRlbXMuc29tZSgoaXRlbSkgPT4gaXRlbS5pZCA9PT0gaWQpICYmIHRoaXMuaXRlbXMoKS5zb21lKChpdGVtKSA9PiBpdGVtLmlkID09PSBpZCkpLFxuICAgICAgICAgICAgLi4uaXRlbXNJZHMsXG4gICAgICAgIF0pO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC01XCI+XG4gICAgPCEtLSDQk9GA0YPQv9C/0Ysg0YLQvtCy0LDRgNC+0LIg0L/QviDQvdCw0L/RgNCw0LLQu9C10L3QuNGP0Lwg0L/RgNC+0LTQsNC2LiAtLT5cbiAgICBAZm9yIChkaXJlY3Rpb24gb2YgaXRlbXNCeURpcmVjdGlvbnMoKTsgdHJhY2sgZGlyZWN0aW9uLmRpcmVjdGlvbj8uaWQ7IGxldCBncm91cEluZGV4ID0gJGluZGV4KSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC0yLjVcIj5cbiAgICAgICAgICAgIEBpZiAoZGlyZWN0aW9uLmRpcmVjdGlvbiAmJiBpdGVtc0J5RGlyZWN0aW9ucygpLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1iYXNlIGZvbnQtYm9sZFwiPtCd0LDQv9GA0LDQstC70LXQvdC40LUg0L/RgNC+0LTQsNC2OiB7eyBkaXJlY3Rpb24uZGlyZWN0aW9uLmRlc2NyaXB0aW9uIH19PC9kaXY+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIDxzYy1vcmRlci1pdGVtcy1saXN0XG4gICAgICAgICAgICAgICAgW2l0ZW1zXT1cImRpcmVjdGlvbi5pdGVtc1wiXG4gICAgICAgICAgICAgICAgW3NlbGVjdGFibGVdPVwic2VsZWN0YWJsZSgpXCJcbiAgICAgICAgICAgICAgICBbZWRpdGFibGVdPVwiZWRpdGFibGUoKVwiXG4gICAgICAgICAgICAgICAgKHNlbGVjdGVkSXRlbXNJZHNDaGFuZ2UpPVwic2VsZWN0ZWRJdGVtc0hhbmRsZXIoJGV2ZW50LCBkaXJlY3Rpb24pXCJcbiAgICAgICAgICAgIC8+XG5cbiAgICAgICAgICAgIDwhLS0g0KTRg9GC0LXRgCDQs9GA0YPQv9C/0Ysg0YLQvtCy0LDRgNC+0LIuIC0tPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyIHNtOmZsZXgtcm93IHNtOml0ZW1zLXN0YXJ0IHNtOmZsZXgtd3JhcC1yZXZlcnNlIGdyb3cgZ2FwLXgtMi41IGdhcC15LTRcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZm9vdGVyQWN0aW9uc11cIiAvPlxuXG4gICAgICAgICAgICAgICAgPCEtLSDQmtC90L7Qv9C60LAg0L/RgNC+0LTQvtC70LbQtdC90LjRjy4gLS0+XG4gICAgICAgICAgICAgICAgQGlmIChzaG93Q29udGludWVCdXR0b24oKSkge1xuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICB0dWlCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpcmVjdGlvbi5nZXRJdGVtc0J5SWRzKHNlbGVjdGVkSXRlbXNJZHMoKSkubGVuZ3RoID09PSAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpY29uU3RhcnRdPVwiY29udGludWVCdXR0b25UZXh0KCkuaWNvblN0YXJ0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic206bWwtYXV0b1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY29udGludWVDbGljay5lbWl0KGRpcmVjdGlvbilcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBjb250aW51ZUJ1dHRvblRleHQoKS50aXRsZSB9fVxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgfVxuXG4gICAgQGlmIChudWxsSXRlbXMoKS5sZW5ndGgpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTIuNVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtYmFzZSBmb250LWJvbGRcIj7QotC+0LLQsNGA0Ysg0Lgg0YPRgdC70YPQs9C4LCDQutC+0YLQvtGA0YvQtSDQsdC+0LvRjNGI0LUg0L3QtSDQv9GA0LXQtNC+0YHRgtCw0LLQu9GP0Y7RgtGB0Y8uPC9kaXY+XG5cbiAgICAgICAgICAgIDxzYy1vcmRlci1pdGVtcy1saXN0XG4gICAgICAgICAgICAgICAgW2l0ZW1zXT1cIm51bGxJdGVtcygpXCJcbiAgICAgICAgICAgICAgICBbc2VsZWN0YWJsZV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgW2VkaXRhYmxlXT1cImVkaXRhYmxlKClcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgfVxuPC9kaXY+XG4iXX0=
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Селектор iframe reCAPTCHA.
|
|
3
|
-
*/
|
|
4
|
-
const RECAPTCHA_IFRAME_SELECTOR = 'iframe[src*="recaptcha"]';
|
|
5
|
-
/**
|
|
6
|
-
* Селектор хоста reCAPTCHA.
|
|
7
|
-
*/
|
|
8
|
-
const RECAPTCHA_HOST_SELECTOR = 're-captcha';
|
|
9
|
-
/**
|
|
10
|
-
* Освобождает ресурсы reCAPTCHA и удаляет осиротевшие iframe после смены маршрута.
|
|
11
|
-
*
|
|
12
|
-
* @param documentReference Объект документа.
|
|
13
|
-
* @param windowReference Объект окна браузера.
|
|
14
|
-
*/
|
|
15
|
-
export function cleanupRecaptchaArtifacts(documentReference, windowReference) {
|
|
16
|
-
const windowWithRecaptcha = windowReference;
|
|
17
|
-
try {
|
|
18
|
-
windowWithRecaptcha.grecaptcha?.reset();
|
|
19
|
-
}
|
|
20
|
-
catch {
|
|
21
|
-
// Ошибки reCAPTCHA не должны блокировать навигацию.
|
|
22
|
-
}
|
|
23
|
-
documentReference.querySelectorAll(RECAPTCHA_IFRAME_SELECTOR).forEach((iframe) => {
|
|
24
|
-
if (iframe.closest(RECAPTCHA_HOST_SELECTOR)) {
|
|
25
|
-
return;
|
|
26
|
-
}
|
|
27
|
-
iframe.remove();
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xlYW51cC1yZWNhcHRjaGEtYXJ0aWZhY3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL3Byb3ZpZGVycy9jbGVhbnVwLXJlY2FwdGNoYS1hcnRpZmFjdHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBc0JBOztHQUVHO0FBQ0gsTUFBTSx5QkFBeUIsR0FBRywwQkFBMEIsQ0FBQztBQUU3RDs7R0FFRztBQUNILE1BQU0sdUJBQXVCLEdBQUcsWUFBWSxDQUFDO0FBRTdDOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLHlCQUF5QixDQUFDLGlCQUEyQixFQUFFLGVBQXVCO0lBQzFGLE1BQU0sbUJBQW1CLEdBQUcsZUFBc0MsQ0FBQztJQUVuRSxJQUFJLENBQUM7UUFDRCxtQkFBbUIsQ0FBQyxVQUFVLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNMLG9EQUFvRDtJQUN4RCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsZ0JBQWdCLENBQW9CLHlCQUF5QixDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7UUFDaEcsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUFDLEVBQUUsQ0FBQztZQUMxQyxPQUFPO1FBQ1gsQ0FBQztRQUVELE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNwQixDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqINCY0L3RgtC10YDRhNC10LnRgSBBUEkgcmVDQVBUQ0hBLlxuICovXG5pbnRlcmZhY2UgUmVjYXB0Y2hhQXBpIHtcbiAgICAvKipcbiAgICAgKiDQodCx0YDQsNGB0YvQstCw0LXRgiByZUNBUFRDSEEuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gb3B0V2lkZ2V0SWQg0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0LLQuNC00LbQtdGC0LAuXG4gICAgICovXG4gICAgcmVzZXQ6IChvcHRXaWRnZXRJZD86IG51bWJlcikgPT4gdm9pZDtcbn1cblxuLyoqXG4gKiDQmNC90YLQtdGA0YTQtdC50YEg0L7QutC90LAg0LHRgNCw0YPQt9C10YDQsCDRgSBBUEkgcmVDQVBUQ0hBLlxuICovXG5pbnRlcmZhY2UgV2luZG93V2l0aFJlY2FwdGNoYSBleHRlbmRzIFdpbmRvdyB7XG4gICAgLyoqXG4gICAgICogQVBJIHJlQ0FQVENIQS5cbiAgICAgKi9cbiAgICBncmVjYXB0Y2hhPzogUmVjYXB0Y2hhQXBpO1xufVxuXG4vKipcbiAqINCh0LXQu9C10LrRgtC+0YAgaWZyYW1lIHJlQ0FQVENIQS5cbiAqL1xuY29uc3QgUkVDQVBUQ0hBX0lGUkFNRV9TRUxFQ1RPUiA9ICdpZnJhbWVbc3JjKj1cInJlY2FwdGNoYVwiXSc7XG5cbi8qKlxuICog0KHQtdC70LXQutGC0L7RgCDRhdC+0YHRgtCwIHJlQ0FQVENIQS5cbiAqL1xuY29uc3QgUkVDQVBUQ0hBX0hPU1RfU0VMRUNUT1IgPSAncmUtY2FwdGNoYSc7XG5cbi8qKlxuICog0J7RgdCy0L7QsdC+0LbQtNCw0LXRgiDRgNC10YHRg9GA0YHRiyByZUNBUFRDSEEg0Lgg0YPQtNCw0LvRj9C10YIg0L7RgdC40YDQvtGC0LXQstGI0LjQtSBpZnJhbWUg0L/QvtGB0LvQtSDRgdC80LXQvdGLINC80LDRgNGI0YDRg9GC0LAuXG4gKlxuICogQHBhcmFtIGRvY3VtZW50UmVmZXJlbmNlINCe0LHRitC10LrRgiDQtNC+0LrRg9C80LXQvdGC0LAuXG4gKiBAcGFyYW0gd2luZG93UmVmZXJlbmNlINCe0LHRitC10LrRgiDQvtC60L3QsCDQsdGA0LDRg9C30LXRgNCwLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY2xlYW51cFJlY2FwdGNoYUFydGlmYWN0cyhkb2N1bWVudFJlZmVyZW5jZTogRG9jdW1lbnQsIHdpbmRvd1JlZmVyZW5jZTogV2luZG93KTogdm9pZCB7XG4gICAgY29uc3Qgd2luZG93V2l0aFJlY2FwdGNoYSA9IHdpbmRvd1JlZmVyZW5jZSBhcyBXaW5kb3dXaXRoUmVjYXB0Y2hhO1xuXG4gICAgdHJ5IHtcbiAgICAgICAgd2luZG93V2l0aFJlY2FwdGNoYS5ncmVjYXB0Y2hhPy5yZXNldCgpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgICAvLyDQntGI0LjQsdC60LggcmVDQVBUQ0hBINC90LUg0LTQvtC70LbQvdGLINCx0LvQvtC60LjRgNC+0LLQsNGC0Ywg0L3QsNCy0LjQs9Cw0YbQuNGOLlxuICAgIH1cblxuICAgIGRvY3VtZW50UmVmZXJlbmNlLnF1ZXJ5U2VsZWN0b3JBbGw8SFRNTElGcmFtZUVsZW1lbnQ+KFJFQ0FQVENIQV9JRlJBTUVfU0VMRUNUT1IpLmZvckVhY2goKGlmcmFtZSkgPT4ge1xuICAgICAgICBpZiAoaWZyYW1lLmNsb3Nlc3QoUkVDQVBUQ0hBX0hPU1RfU0VMRUNUT1IpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZnJhbWUucmVtb3ZlKCk7XG4gICAgfSk7XG59XG4iXX0=
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { ScISalesDirection, ScOrderItem } from '@snabcentr/client-core';
|
|
2
|
-
/**
|
|
3
|
-
* Группа позиций заказа по направлению продаж.
|
|
4
|
-
*/
|
|
5
|
-
export declare class ScOrderItemsByDirection {
|
|
6
|
-
/**
|
|
7
|
-
* Направление продаж или undefined для позиций без направления.
|
|
8
|
-
*/
|
|
9
|
-
readonly direction: ScISalesDirection;
|
|
10
|
-
/**
|
|
11
|
-
* Список позиций заказа в данной группе.
|
|
12
|
-
*/
|
|
13
|
-
readonly items: ScOrderItem[];
|
|
14
|
-
/**
|
|
15
|
-
* @param direction Направление продаж.
|
|
16
|
-
* @param allItems Все элементы заказа.
|
|
17
|
-
*/
|
|
18
|
-
constructor(direction: ScISalesDirection, allItems: readonly ScOrderItem[]);
|
|
19
|
-
/**
|
|
20
|
-
* Получает список позиций заказа по идентификаторам.
|
|
21
|
-
*
|
|
22
|
-
* @param itemsIds Идентификаторы позиций.
|
|
23
|
-
*/
|
|
24
|
-
getItemsByIds(itemsIds: string[]): ScOrderItem[];
|
|
25
|
-
}
|
package/order/order-items-list-by-directions/sc-order-items-list-by-directions.component.d.ts
DELETED
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import { ScOrderItem } from '@snabcentr/client-core';
|
|
2
|
-
import { ScOrderItemsByDirection } from '../models/sc-i-cart-items-by-direction';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export declare class ScOrderItemsListByDirectionsComponent {
|
|
5
|
-
/**
|
|
6
|
-
* Внутренний сигнал списка элементов корзины (товаров).
|
|
7
|
-
*/
|
|
8
|
-
readonly items: import("@angular/core").InputSignal<ScOrderItem[]>;
|
|
9
|
-
/**
|
|
10
|
-
* Включить выбор позиций чекбоксами.
|
|
11
|
-
*/
|
|
12
|
-
readonly selectable: import("@angular/core").InputSignal<boolean>;
|
|
13
|
-
/**
|
|
14
|
-
* Включить редактирование позиций.
|
|
15
|
-
*/
|
|
16
|
-
readonly editable: import("@angular/core").InputSignal<boolean>;
|
|
17
|
-
/**
|
|
18
|
-
* Включить отображение кнопки продолжения.
|
|
19
|
-
*/
|
|
20
|
-
readonly showContinueButton: import("@angular/core").InputSignal<boolean>;
|
|
21
|
-
/**
|
|
22
|
-
* Текст кнопки продолжения.
|
|
23
|
-
*/
|
|
24
|
-
readonly continueButtonText: import("@angular/core").InputSignal<{
|
|
25
|
-
title: string;
|
|
26
|
-
iconStart: string;
|
|
27
|
-
}>;
|
|
28
|
-
/**
|
|
29
|
-
* Событие клика на кнопку продолжения.
|
|
30
|
-
*/
|
|
31
|
-
readonly continueClick: import("@angular/core").OutputEmitterRef<ScOrderItemsByDirection>;
|
|
32
|
-
/**
|
|
33
|
-
* Список направлений продаж из справочника.
|
|
34
|
-
*/
|
|
35
|
-
private readonly directions;
|
|
36
|
-
/**
|
|
37
|
-
* Позиции корзины, сгруппированные по направлениям продаж.
|
|
38
|
-
* Если передан cartDirections, используется он, иначе группировка выполняется автоматически.
|
|
39
|
-
*/
|
|
40
|
-
protected readonly itemsByDirections: import("@angular/core").Signal<ScOrderItemsByDirection[]>;
|
|
41
|
-
/**
|
|
42
|
-
* Позиции корзины, которые больше не предоставляются.
|
|
43
|
-
*/
|
|
44
|
-
protected readonly nullItems: import("@angular/core").Signal<ScOrderItem[]>;
|
|
45
|
-
/**
|
|
46
|
-
* Выходные данные при изменении выбора позиций.
|
|
47
|
-
*/
|
|
48
|
-
readonly selectedItemsIds: import("@angular/core").ModelSignal<string[]>;
|
|
49
|
-
/**
|
|
50
|
-
* Обработчик изменения выбора позиций.
|
|
51
|
-
*
|
|
52
|
-
* @param itemsIds Идентификаторы выбранных позиций.
|
|
53
|
-
* @param direction Направление продаж.
|
|
54
|
-
*/
|
|
55
|
-
protected selectedItemsHandler(itemsIds: string[], direction: ScOrderItemsByDirection): void;
|
|
56
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<ScOrderItemsListByDirectionsComponent, never>;
|
|
57
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ScOrderItemsListByDirectionsComponent, "sc-order-items-list-by-directions", never, { "items": { "alias": "items"; "required": true; "isSignal": true; }; "selectable": { "alias": "selectable"; "required": false; "isSignal": true; }; "editable": { "alias": "editable"; "required": false; "isSignal": true; }; "showContinueButton": { "alias": "showContinueButton"; "required": false; "isSignal": true; }; "continueButtonText": { "alias": "continueButtonText"; "required": false; "isSignal": true; }; "selectedItemsIds": { "alias": "selectedItemsIds"; "required": false; "isSignal": true; }; }, { "continueClick": "continueClick"; "selectedItemsIds": "selectedItemsIdsChange"; }, never, ["[footerActions]"], true, never>;
|
|
58
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Освобождает ресурсы reCAPTCHA и удаляет осиротевшие iframe после смены маршрута.
|
|
3
|
-
*
|
|
4
|
-
* @param documentReference Объект документа.
|
|
5
|
-
* @param windowReference Объект окна браузера.
|
|
6
|
-
*/
|
|
7
|
-
export declare function cleanupRecaptchaArtifacts(documentReference: Document, windowReference: Window): void;
|