@snabcentr/client-ui 4.14.8 → 4.14.20
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/esm2022/feedback/feedback-form/sc-feedback-form.component.mjs +21 -11
- package/esm2022/order/draft/sc-draft.component.mjs +15 -12
- package/esm2022/order/index.mjs +4 -3
- package/esm2022/order/models/sc-i-cart-items-by-direction.mjs +22 -0
- package/esm2022/order/order-direction-items/sc-order-direction-items.component.mjs +39 -0
- package/esm2022/order/order-form/sc-order-form.component.mjs +18 -6
- package/esm2022/order/order-items-list/sc-order-items-list.component.mjs +4 -3
- package/esm2022/order/order-items-list-by-directions/sc-order-items-list-by-directions.component.mjs +75 -0
- package/esm2022/providers/cleanup-recaptcha-artifacts.mjs +30 -0
- package/esm2022/providers/index.mjs +2 -1
- package/esm2022/public-api.mjs +1 -2
- package/esm2022/samples/sc-sample.module.mjs +10 -3
- package/esm2022/services/index.mjs +1 -2
- package/feedback/feedback-form/sc-feedback-form.component.d.ts +1 -1
- package/fesm2022/snabcentr-client-ui.mjs +168 -415
- package/fesm2022/snabcentr-client-ui.mjs.map +1 -1
- package/order/draft/sc-draft.component.d.ts +8 -5
- package/order/index.d.ts +3 -2
- package/order/models/sc-i-cart-items-by-direction.d.ts +25 -0
- package/order/{new-order-items/sc-new-order-items.component.d.ts → order-direction-items/sc-order-direction-items.component.d.ts} +5 -5
- package/order/order-form/sc-order-form.component.d.ts +11 -2
- package/order/order-items-list/sc-order-items-list.component.d.ts +1 -0
- package/order/order-items-list-by-directions/sc-order-items-list-by-directions.component.d.ts +58 -0
- package/package.json +3 -2
- package/providers/cleanup-recaptcha-artifacts.d.ts +7 -0
- package/providers/index.d.ts +1 -0
- package/public-api.d.ts +0 -1
- package/release_notes.tmp +1 -1
- package/samples/sc-sample.module.d.ts +2 -1
- package/services/index.d.ts +0 -1
- package/styles/tailwind/tailwind.scss +2 -44
- package/esm2022/order/new-order-items/sc-new-order-items.component.mjs +0 -39
- package/esm2022/order/order-items-list-with-actions/sc-order-items-list-with-actions.component.mjs +0 -53
- package/esm2022/services/sc-scripts.service.mjs +0 -106
- package/esm2022/smart-captcha/index.mjs +0 -5
- package/esm2022/smart-captcha/interfaces/index.mjs +0 -6
- package/esm2022/smart-captcha/interfaces/sc-smart-captcha-api.mjs +0 -2
- package/esm2022/smart-captcha/interfaces/sc-smart-captcha-event.mjs +0 -2
- package/esm2022/smart-captcha/interfaces/sc-smart-captcha-language.mjs +0 -2
- package/esm2022/smart-captcha/interfaces/sc-smart-captcha-render-params.mjs +0 -2
- package/esm2022/smart-captcha/interfaces/sc-smart-captcha-settings.mjs +0 -2
- package/esm2022/smart-captcha/interfaces/sc-smart-captcha-window.mjs +0 -2
- package/esm2022/smart-captcha/sc-smart-captcha.component.mjs +0 -167
- package/esm2022/smart-captcha/services/index.mjs +0 -2
- package/esm2022/smart-captcha/services/sc-smart-captcha-loader.service.mjs +0 -87
- package/esm2022/smart-captcha/tokens/index.mjs +0 -3
- package/esm2022/smart-captcha/tokens/sc-smart-captcha-load-timeout.token.mjs +0 -8
- package/esm2022/smart-captcha/tokens/sc-smart-captcha-settings.token.mjs +0 -6
- package/order/order-items-list-with-actions/sc-order-items-list-with-actions.component.d.ts +0 -37
- package/services/sc-scripts.service.d.ts +0 -51
- package/smart-captcha/index.d.ts +0 -4
- package/smart-captcha/interfaces/index.d.ts +0 -5
- package/smart-captcha/interfaces/sc-smart-captcha-api.d.ts +0 -36
- package/smart-captcha/interfaces/sc-smart-captcha-event.d.ts +0 -4
- package/smart-captcha/interfaces/sc-smart-captcha-language.d.ts +0 -4
- package/smart-captcha/interfaces/sc-smart-captcha-render-params.d.ts +0 -16
- package/smart-captcha/interfaces/sc-smart-captcha-settings.d.ts +0 -16
- package/smart-captcha/interfaces/sc-smart-captcha-window.d.ts +0 -14
- package/smart-captcha/sc-smart-captcha.component.d.ts +0 -92
- package/smart-captcha/services/index.d.ts +0 -1
- package/smart-captcha/services/sc-smart-captcha-loader.service.d.ts +0 -50
- package/smart-captcha/tokens/index.d.ts +0 -2
- package/smart-captcha/tokens/sc-smart-captcha-load-timeout.token.d.ts +0 -5
- package/smart-captcha/tokens/sc-smart-captcha-settings.token.d.ts +0 -6
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { OnInit } from '@angular/core';
|
|
2
2
|
import { ScOrderDraft } from '@snabcentr/client-core';
|
|
3
|
+
import { ScOrderItemsByDirection } from '../models/sc-i-cart-items-by-direction';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
5
|
/**
|
|
5
6
|
* Компонент страницы черновика заказа (аналог корзины для одного черновика).
|
|
@@ -22,9 +23,9 @@ export declare class ScDraftComponent implements OnInit {
|
|
|
22
23
|
*/
|
|
23
24
|
readonly draft: import("@angular/core").ModelSignal<ScOrderDraft | null>;
|
|
24
25
|
/**
|
|
25
|
-
* Идентификаторы
|
|
26
|
+
* Идентификаторы выбранных позиций.
|
|
26
27
|
*/
|
|
27
|
-
|
|
28
|
+
readonly selectedItemsIds: import("@angular/core").ModelSignal<string[]>;
|
|
28
29
|
/**
|
|
29
30
|
* Источник события удаления или отмены заказа.
|
|
30
31
|
*/
|
|
@@ -48,13 +49,15 @@ export declare class ScDraftComponent implements OnInit {
|
|
|
48
49
|
/** @inheritDoc */
|
|
49
50
|
ngOnInit(): void;
|
|
50
51
|
/**
|
|
51
|
-
* Переход к оформлению заказа
|
|
52
|
+
* Переход к оформлению заказа по выбранному направлению продаж.
|
|
53
|
+
*
|
|
54
|
+
* @param direction Группа позиций по направлению продаж.
|
|
52
55
|
*/
|
|
53
|
-
protected goToNewOrder(): void;
|
|
56
|
+
protected goToNewOrder(direction: ScOrderItemsByDirection): void;
|
|
54
57
|
/**
|
|
55
58
|
* Удаляет черновик и перенаправляет к списку черновиков.
|
|
56
59
|
*/
|
|
57
60
|
protected clearDraft(): void;
|
|
58
61
|
static ɵfac: i0.ɵɵFactoryDeclaration<ScDraftComponent, never>;
|
|
59
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ScDraftComponent, "sc-draft", never, { "draft": { "alias": "draft"; "required": false; "isSignal": true; }; }, { "draft": "draftChange"; "deleteEvent": "deleteEvent"; }, never, never, true, never>;
|
|
62
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ScDraftComponent, "sc-draft", never, { "draft": { "alias": "draft"; "required": false; "isSignal": true; }; "selectedItemsIds": { "alias": "selectedItemsIds"; "required": false; "isSignal": true; }; }, { "draft": "draftChange"; "selectedItemsIds": "selectedItemsIdsChange"; "deleteEvent": "deleteEvent"; }, never, never, true, never>;
|
|
60
63
|
}
|
package/order/index.d.ts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
export * from './directives';
|
|
2
2
|
export * from './models/i-new-order-form';
|
|
3
|
-
export * from './
|
|
3
|
+
export * from './models/sc-i-cart-items-by-direction';
|
|
4
|
+
export * from './order-direction-items/sc-order-direction-items.component';
|
|
4
5
|
export * from './order-form/sc-order-form.config';
|
|
5
6
|
export * from './order-form/sc-order-form.component';
|
|
6
7
|
export * from './order-item/sc-order-item.component';
|
|
7
8
|
export * from './order-items-list/sc-order-items-list.component';
|
|
8
|
-
export * from './order-items-list-
|
|
9
|
+
export * from './order-items-list-by-directions/sc-order-items-list-by-directions.component';
|
|
9
10
|
export * from './order-items-list-by-stock/sc-order-items-list-by-stock.component';
|
|
10
11
|
export * from './draft/sc-draft.component';
|
|
11
12
|
export * from './sc-payment-status/sc-payment-status.component';
|
|
@@ -0,0 +1,25 @@
|
|
|
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
|
+
}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { ScOrderItem } from '@snabcentr/client-core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
/**
|
|
4
|
-
* Список товаров
|
|
4
|
+
* Список товаров заказа по направлению продаж с выбором позиций для оформления.
|
|
5
5
|
*/
|
|
6
|
-
export declare class
|
|
6
|
+
export declare class ScOrderDirectionItemsComponent {
|
|
7
7
|
/**
|
|
8
|
-
* Товары
|
|
8
|
+
* Товары направления.
|
|
9
9
|
*/
|
|
10
10
|
readonly items: import("@angular/core").InputSignal<ScOrderItem[]>;
|
|
11
11
|
/**
|
|
@@ -24,6 +24,6 @@ export declare class ScNewOrderItemsComponent {
|
|
|
24
24
|
* Изменение выбора позиций для оформления.
|
|
25
25
|
*/
|
|
26
26
|
readonly selectedItemsIdsChange: import("@angular/core").OutputEmitterRef<string[]>;
|
|
27
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<
|
|
28
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<
|
|
27
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<ScOrderDirectionItemsComponent, never>;
|
|
28
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ScOrderDirectionItemsComponent, "sc-order-direction-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>;
|
|
29
29
|
}
|
|
@@ -15,10 +15,19 @@ type SelectType = ScIReferencesTypes<ScPaymentType, typeof ScPaymentType> | ScCo
|
|
|
15
15
|
* Форма оформления заказа.
|
|
16
16
|
*/
|
|
17
17
|
export declare class ScOrderFormComponent implements OnInit {
|
|
18
|
+
/**
|
|
19
|
+
* Идентификатор направления продаж заказа.
|
|
20
|
+
*/
|
|
21
|
+
readonly directionId: import("@angular/core").InputSignal<number>;
|
|
18
22
|
/**
|
|
19
23
|
* Требовать подтверждённые контактные данные для оформления. Для черновика — `false`.
|
|
20
24
|
*/
|
|
21
25
|
readonly enforceApprovedContacts: import("@angular/core").InputSignal<boolean>;
|
|
26
|
+
/**
|
|
27
|
+
* Сохранять и восстанавливать черновые данные формы по направлению (метаданные). Для черновика — `false`.
|
|
28
|
+
* Работает только если предоставлен токен {@link SC_ORDER_FORM_CONFIG}.
|
|
29
|
+
*/
|
|
30
|
+
readonly persistMetadata: import("@angular/core").InputSignal<boolean>;
|
|
22
31
|
/**
|
|
23
32
|
* Событие отправки валидной формы оформления. Полезная нагрузка — сырые значения формы.
|
|
24
33
|
*/
|
|
@@ -226,7 +235,7 @@ export declare class ScOrderFormComponent implements OnInit {
|
|
|
226
235
|
*/
|
|
227
236
|
private triggerUnconfirmedWarning;
|
|
228
237
|
/**
|
|
229
|
-
* Восстанавливает черновые данные формы из метаданных и инициализирует их
|
|
238
|
+
* Восстанавливает черновые данные формы из метаданных и инициализирует их сохранение.
|
|
230
239
|
*/
|
|
231
240
|
private initMetadata;
|
|
232
241
|
/**
|
|
@@ -269,6 +278,6 @@ export declare class ScOrderFormComponent implements OnInit {
|
|
|
269
278
|
*/
|
|
270
279
|
private onUploadFile;
|
|
271
280
|
static ɵfac: i0.ɵɵFactoryDeclaration<ScOrderFormComponent, never>;
|
|
272
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ScOrderFormComponent, "sc-order-form", never, { "enforceApprovedContacts": { "alias": "enforceApprovedContacts"; "required": false; "isSignal": true; }; }, { "orderSubmit": "orderSubmit"; }, never, never, true, never>;
|
|
281
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ScOrderFormComponent, "sc-order-form", never, { "directionId": { "alias": "directionId"; "required": true; "isSignal": true; }; "enforceApprovedContacts": { "alias": "enforceApprovedContacts"; "required": false; "isSignal": true; }; "persistMetadata": { "alias": "persistMetadata"; "required": false; "isSignal": true; }; }, { "orderSubmit": "orderSubmit"; }, never, never, true, never>;
|
|
273
282
|
}
|
|
274
283
|
export {};
|
|
@@ -0,0 +1,58 @@
|
|
|
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
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@snabcentr/client-ui",
|
|
3
|
-
"version": "4.14.
|
|
3
|
+
"version": "4.14.20",
|
|
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.
|
|
19
|
+
"@snabcentr/client-core": "^3.21.4",
|
|
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",
|
|
@@ -31,6 +31,7 @@
|
|
|
31
31
|
"@taiga-ui/experimental": "^4.66.0",
|
|
32
32
|
"@taiga-ui/styles": "^4.66.0",
|
|
33
33
|
"@tailwindcss/container-queries": "^0.1.1",
|
|
34
|
+
"ng-recaptcha-2": "^14.0.0",
|
|
34
35
|
"angular8-yandex-maps": "^18.2.0",
|
|
35
36
|
"date-fns": "^4.1.0",
|
|
36
37
|
"libphonenumber-js": "^1.12.7",
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Освобождает ресурсы reCAPTCHA и удаляет осиротевшие iframe после смены маршрута.
|
|
3
|
+
*
|
|
4
|
+
* @param documentReference Объект документа.
|
|
5
|
+
* @param windowReference Объект окна браузера.
|
|
6
|
+
*/
|
|
7
|
+
export declare function cleanupRecaptchaArtifacts(documentReference: Document, windowReference: Window): void;
|
package/providers/index.d.ts
CHANGED
package/public-api.d.ts
CHANGED
package/release_notes.tmp
CHANGED
|
@@ -8,11 +8,12 @@ import * as i6 from "../form-fields/form-fields.module";
|
|
|
8
8
|
import * as i7 from "@taiga-ui/legacy";
|
|
9
9
|
import * as i8 from "@taiga-ui/cdk/directives/item";
|
|
10
10
|
import * as i9 from "@taiga-ui/cdk";
|
|
11
|
+
import * as i10 from "ng-recaptcha-2";
|
|
11
12
|
/**
|
|
12
13
|
* Модуль представления образцов товара.
|
|
13
14
|
*/
|
|
14
15
|
export declare class ScPreviewSampleModule {
|
|
15
16
|
static ɵfac: i0.ɵɵFactoryDeclaration<ScPreviewSampleModule, never>;
|
|
16
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<ScPreviewSampleModule, [typeof i1.ScPreviewSampleComponent], [typeof i2.CommonModule, typeof i3.ReactiveFormsModule, typeof i4.TuiError, typeof i5.TuiFieldErrorPipe, typeof i6.ScFormFieldsModule, typeof i7.TuiInputModule, typeof i7.TuiInputPhoneModule, typeof i8.TuiItem, typeof i5.TuiCarouselComponent, typeof i5.TuiCarouselDirective, typeof i5.TuiCarouselAutoscroll, typeof i5.TuiCarouselButtons, typeof i5.TuiCarouselScroll, typeof i5.TuiAvatar, typeof i9.TuiHovered, typeof i4.TuiButton, typeof i5.TuiButtonLoading, typeof i4.TuiLabel], [typeof i1.ScPreviewSampleComponent]>;
|
|
17
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<ScPreviewSampleModule, [typeof i1.ScPreviewSampleComponent], [typeof i2.CommonModule, typeof i3.ReactiveFormsModule, typeof i4.TuiError, typeof i5.TuiFieldErrorPipe, typeof i6.ScFormFieldsModule, typeof i7.TuiInputModule, typeof i7.TuiInputPhoneModule, typeof i8.TuiItem, typeof i5.TuiCarouselComponent, typeof i5.TuiCarouselDirective, typeof i5.TuiCarouselAutoscroll, typeof i5.TuiCarouselButtons, typeof i5.TuiCarouselScroll, typeof i5.TuiAvatar, typeof i9.TuiHovered, typeof i4.TuiButton, typeof i5.TuiButtonLoading, typeof i4.TuiLabel, typeof i10.RecaptchaFormsModule, typeof i10.RecaptchaModule], [typeof i1.ScPreviewSampleComponent]>;
|
|
17
18
|
static ɵinj: i0.ɵɵInjectorDeclaration<ScPreviewSampleModule>;
|
|
18
19
|
}
|
package/services/index.d.ts
CHANGED
|
@@ -554,40 +554,6 @@ 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
|
-
|
|
591
557
|
.pointer-events-none {
|
|
592
558
|
pointer-events: none;
|
|
593
559
|
}
|
|
@@ -959,18 +925,14 @@ video {
|
|
|
959
925
|
max-height: 0px !important;
|
|
960
926
|
}
|
|
961
927
|
|
|
962
|
-
.max-h
|
|
963
|
-
max-height:
|
|
928
|
+
.max-h-20 {
|
|
929
|
+
max-height: 5rem;
|
|
964
930
|
}
|
|
965
931
|
|
|
966
932
|
.min-h-8 {
|
|
967
933
|
min-height: 2rem;
|
|
968
934
|
}
|
|
969
935
|
|
|
970
|
-
.min-h-\[7\.375rem\] {
|
|
971
|
-
min-height: 7.375rem;
|
|
972
|
-
}
|
|
973
|
-
|
|
974
936
|
.\!w-auto {
|
|
975
937
|
width: auto !important;
|
|
976
938
|
}
|
|
@@ -1988,10 +1950,6 @@ video {
|
|
|
1988
1950
|
flex-direction: row;
|
|
1989
1951
|
}
|
|
1990
1952
|
|
|
1991
|
-
.sm\:flex-wrap {
|
|
1992
|
-
flex-wrap: wrap;
|
|
1993
|
-
}
|
|
1994
|
-
|
|
1995
1953
|
.sm\:flex-wrap-reverse {
|
|
1996
1954
|
flex-wrap: wrap-reverse;
|
|
1997
1955
|
}
|
|
@@ -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 { ScOrderItemsListWithActionsComponent } from '../order-items-list-with-actions/sc-order-items-list-with-actions.component';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
/**
|
|
7
|
-
* Список товаров оформляемого заказа с выбором позиций.
|
|
8
|
-
*/
|
|
9
|
-
export class ScNewOrderItemsComponent {
|
|
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: ScNewOrderItemsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
33
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: ScNewOrderItemsComponent, isStandalone: true, selector: "sc-new-order-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-with-actions\n [items]=\"items()\"\n [editable]=\"editable()\"\n [selectable]=\"selectable()\"\n (selectedItemsIdsChange)=\"selectedItemsIdsChange.emit($event)\"\n >\n <ng-content\n select=\"[footerActions]\"\n ngProjectAs=\"[footerActions]\"\n />\n </sc-order-items-list-with-actions>\n</div>\n", dependencies: [{ kind: "component", type: ScOrderItemsListWithActionsComponent, selector: "sc-order-items-list-with-actions", inputs: ["items", "selectable", "editable", "selectedItemsIds"], outputs: ["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: ScNewOrderItemsComponent, decorators: [{
|
|
36
|
-
type: Component,
|
|
37
|
-
args: [{ standalone: true, selector: 'sc-new-order-items', imports: [ScOrderItemsListWithActionsComponent, 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-with-actions\n [items]=\"items()\"\n [editable]=\"editable()\"\n [selectable]=\"selectable()\"\n (selectedItemsIdsChange)=\"selectedItemsIdsChange.emit($event)\"\n >\n <ng-content\n select=\"[footerActions]\"\n ngProjectAs=\"[footerActions]\"\n />\n </sc-order-items-list-with-actions>\n</div>\n" }]
|
|
38
|
-
}] });
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtbmV3LW9yZGVyLWl0ZW1zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9vcmRlci9uZXctb3JkZXItaXRlbXMvc2MtbmV3LW9yZGVyLWl0ZW1zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9vcmRlci9uZXctb3JkZXItaXRlbXMvc2MtbmV3LW9yZGVyLWl0ZW1zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFN0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpDLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLDZFQUE2RSxDQUFDOztBQUVuSTs7R0FFRztBQVFILE1BQU0sT0FBTyx3QkFBd0I7SUFQckM7UUFRSTs7V0FFRztRQUNhLFVBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFpQixDQUFDO1FBRXhEOztXQUVHO1FBQ2EsYUFBUSxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUVqRDs7V0FFRztRQUNhLGVBQVUsR0FBRyxLQUFLLENBQVUsSUFBSSxDQUFDLENBQUM7UUFFbEQ7O1dBRUc7UUFDYSxrQ0FBNkIsR0FBRyxLQUFLLENBQVMsRUFBRSxDQUFDLENBQUM7UUFFbEU7O1dBRUc7UUFDYSwyQkFBc0IsR0FBRyxNQUFNLEVBQVksQ0FBQztLQUMvRDsrR0F6Qlksd0JBQXdCO21HQUF4Qix3QkFBd0Isd3RCQ2pCckMsc3pFQStCQSw0Q0RqQmMsb0NBQW9DLG1MQUFFLFVBQVUsb09BQUUsT0FBTzs7NEZBRzFELHdCQUF3QjtrQkFQcEMsU0FBUztpQ0FDTSxJQUFJLFlBQ04sb0JBQW9CLFdBRXJCLENBQUMsb0NBQW9DLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxtQkFDbkQsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGlucHV0LCBvdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlckxpbmsgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgU2NPcmRlckl0ZW0gfSBmcm9tICdAc25hYmNlbnRyL2NsaWVudC1jb3JlJztcbmltcG9ydCB7IFR1aUxpbmsgfSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5cbmltcG9ydCB7IFNjT3JkZXJJdGVtc0xpc3RXaXRoQWN0aW9uc0NvbXBvbmVudCB9IGZyb20gJy4uL29yZGVyLWl0ZW1zLWxpc3Qtd2l0aC1hY3Rpb25zL3NjLW9yZGVyLWl0ZW1zLWxpc3Qtd2l0aC1hY3Rpb25zLmNvbXBvbmVudCc7XG5cbi8qKlxuICog0KHQv9C40YHQvtC6INGC0L7QstCw0YDQvtCyINC+0YTQvtGA0LzQu9GP0LXQvNC+0LPQviDQt9Cw0LrQsNC30LAg0YEg0LLRi9Cx0L7RgNC+0Lwg0L/QvtC30LjRhtC40LkuXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdzYy1uZXctb3JkZXItaXRlbXMnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zYy1uZXctb3JkZXItaXRlbXMuY29tcG9uZW50Lmh0bWwnLFxuICAgIGltcG9ydHM6IFtTY09yZGVySXRlbXNMaXN0V2l0aEFjdGlvbnNDb21wb25lbnQsIFJvdXRlckxpbmssIFR1aUxpbmtdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTY05ld09yZGVySXRlbXNDb21wb25lbnQge1xuICAgIC8qKlxuICAgICAqINCi0L7QstCw0YDRiyDQt9Cw0LrQsNC30LAuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGl0ZW1zID0gaW5wdXQucmVxdWlyZWQ8U2NPcmRlckl0ZW1bXT4oKTtcblxuICAgIC8qKlxuICAgICAqINCg0LDQt9GA0LXRiNC40YLRjCDRgNC10LTQsNC60YLQuNGA0L7QstCw0L3QuNC1INC/0L7Qt9C40YbQuNC5ICjQutC+0LvQuNGH0LXRgdGC0LLQviwg0YPQtNCw0LvQtdC90LjQtSkuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGVkaXRhYmxlID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gICAgLyoqXG4gICAgICog0JLQutC70Y7Rh9C40YLRjCDQstGL0LHQvtGAINC/0L7Qt9C40YbQuNC5INGH0LXQutCx0L7QutGB0LDQvNC4LlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBzZWxlY3RhYmxlID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XG5cbiAgICAvKipcbiAgICAgKiDQktGA0LXQvNGPINC+0LHRgNCw0LHQvtGC0LrQuCDQuCDQv9GA0LjQvdGP0YLQuNGPINC30LDQutCw0LfQvtCyICjQuNC3INC90LDRgdGC0YDQvtC10Log0L7QutGA0YPQttC10L3QuNGPINC/0YDQuNC70L7QttC10L3QuNGPKS5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgb3JkZXJQcm9jZXNzaW5nQWNjZXB0YW5jZVRpbWUgPSBpbnB1dDxzdHJpbmc+KCcnKTtcblxuICAgIC8qKlxuICAgICAqINCY0LfQvNC10L3QtdC90LjQtSDQstGL0LHQvtGA0LAg0L/QvtC30LjRhtC40Lkg0LTQu9GPINC+0YTQvtGA0LzQu9C10L3QuNGPLlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBzZWxlY3RlZEl0ZW1zSWRzQ2hhbmdlID0gb3V0cHV0PHN0cmluZ1tdPigpO1xufVxuIiwiPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTVcIj5cbiAgICA8dWwgY2xhc3M9XCJtbC00IGxpc3QtZGlzYyB0ZXh0LXR1aS1zdWNjZXNzLWZpbGxcIj5cbiAgICAgICAgPGxpPtCX0LDRj9Cy0LrQuCDQv9GA0LjQvdC40LzQsNGO0YLRgdGPINC90LUg0L/QvtC30LTQvdC10LUge3sgb3JkZXJQcm9jZXNzaW5nQWNjZXB0YW5jZVRpbWUoKSB9fSDQv9C70LDQvdC40YDRg9C10LzQvtCz0L4g0LTQvdGPINC/0L7RgdGC0LDQstC60LguPC9saT5cbiAgICAgICAgPGxpPtCX0LDQutCw0LfRiyDRgSDQtNC+0YHRgtCw0LLQutC+0Lkg0L3QsCDQv9C+0L3QtdC00LXQu9GM0L3QuNC6INC/0YDQuNC90LjQvNCw0Y7RgtGB0Y8g0LTQviB7eyBvcmRlclByb2Nlc3NpbmdBY2NlcHRhbmNlVGltZSgpIH19INC/0Y/RgtC90LjRhtGLLjwvbGk+XG4gICAgICAgIDxsaT7Ql9Cw0LrQsNC30YssINGB0L7Qt9C00LDQvdC90YvQtSDQv9C+0LfQtNC90LXQtSB7eyBvcmRlclByb2Nlc3NpbmdBY2NlcHRhbmNlVGltZSgpIH19INC/0Y/RgtC90LjRhtGLINC40LvQuCDQsiDRgdGD0LHQsdC+0YLRgy/QstC+0YHQutGA0LXRgdC10L3RjNC1INCx0YPQtNGD0YIg0L7QsdGA0LDQsdC+0YLQsNC90Ysg0LIg0LHRg9C00L3QuNC1INC00L3QuC48L2xpPlxuICAgICAgICA8bGk+XG4gICAgICAgICAgICDQo9C/0YDQsNCy0LvRj9GC0Ywg0YHQv9C40YHQutC+0Lwg0LrQvtC90YLRgNCw0LPQtdC90YLQvtCyINCy0Ysg0LzQvtC20LXRgtC1INCyXG4gICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgIHR1aUxpbmtcbiAgICAgICAgICAgICAgICByb3V0ZXJMaW5rPVwiL3Byb2ZpbGVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgINC70LjRh9C90L7QvCDQutCw0LHQuNC90LXRgtC1XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAuXG4gICAgICAgIDwvbGk+XG4gICAgPC91bD5cblxuICAgIDxkaXYgY2xhc3M9XCJzdWItdGl0bGVcIj7QodC+0YHRgtCw0LIg0LfQsNC60LDQt9CwPC9kaXY+XG5cbiAgICA8c2Mtb3JkZXItaXRlbXMtbGlzdC13aXRoLWFjdGlvbnNcbiAgICAgICAgW2l0ZW1zXT1cIml0ZW1zKClcIlxuICAgICAgICBbZWRpdGFibGVdPVwiZWRpdGFibGUoKVwiXG4gICAgICAgIFtzZWxlY3RhYmxlXT1cInNlbGVjdGFibGUoKVwiXG4gICAgICAgIChzZWxlY3RlZEl0ZW1zSWRzQ2hhbmdlKT1cInNlbGVjdGVkSXRlbXNJZHNDaGFuZ2UuZW1pdCgkZXZlbnQpXCJcbiAgICA+XG4gICAgICAgIDxuZy1jb250ZW50XG4gICAgICAgICAgICBzZWxlY3Q9XCJbZm9vdGVyQWN0aW9uc11cIlxuICAgICAgICAgICAgbmdQcm9qZWN0QXM9XCJbZm9vdGVyQWN0aW9uc11cIlxuICAgICAgICAvPlxuICAgIDwvc2Mtb3JkZXItaXRlbXMtbGlzdC13aXRoLWFjdGlvbnM+XG48L2Rpdj5cbiJdfQ==
|
package/esm2022/order/order-items-list-with-actions/sc-order-items-list-with-actions.component.mjs
DELETED
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, computed, effect, input, model } from '@angular/core';
|
|
2
|
-
import { ScOrderItemsListComponent } from '../order-items-list/sc-order-items-list.component';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
/**
|
|
5
|
-
* Список позиций заказа с действиями и блоком позиций, которые больше не предоставляются.
|
|
6
|
-
*/
|
|
7
|
-
export class ScOrderItemsListWithActionsComponent {
|
|
8
|
-
/**
|
|
9
|
-
* Инициализирует экземпляр класса {@link ScOrderItemsListWithActionsComponent}.
|
|
10
|
-
*/
|
|
11
|
-
constructor() {
|
|
12
|
-
/**
|
|
13
|
-
* Товары заказа.
|
|
14
|
-
*/
|
|
15
|
-
this.items = input.required();
|
|
16
|
-
/**
|
|
17
|
-
* Включить выбор позиций чекбоксами.
|
|
18
|
-
*/
|
|
19
|
-
this.selectable = input(true);
|
|
20
|
-
/**
|
|
21
|
-
* Включить редактирование позиций.
|
|
22
|
-
*/
|
|
23
|
-
this.editable = input(false);
|
|
24
|
-
/**
|
|
25
|
-
* Позиции, доступные для заказа.
|
|
26
|
-
*/
|
|
27
|
-
this.availableItems = computed(() => this.items().filter((item) => !item.product.isNull && !item.product.isHidden));
|
|
28
|
-
/**
|
|
29
|
-
* Позиции корзины, которые больше не предоставляются.
|
|
30
|
-
*/
|
|
31
|
-
this.nullItems = computed(() => this.items().filter((item) => item.product.isNull || item.product.isHidden));
|
|
32
|
-
/**
|
|
33
|
-
* Идентификаторы выбранных позиций.
|
|
34
|
-
*/
|
|
35
|
-
this.selectedItemsIds = model([]);
|
|
36
|
-
// Оставляет в выборе только доступные позиции: без них список выбора не отрисовывается и выбор не сбрасывает.
|
|
37
|
-
effect(() => {
|
|
38
|
-
const availableIds = new Set(this.availableItems().map((item) => item.id));
|
|
39
|
-
const selectedItemsIds = this.selectedItemsIds();
|
|
40
|
-
const actualIds = selectedItemsIds.filter((id) => availableIds.has(id));
|
|
41
|
-
if (actualIds.length !== selectedItemsIds.length) {
|
|
42
|
-
this.selectedItemsIds.set(actualIds);
|
|
43
|
-
}
|
|
44
|
-
}, { allowSignalWrites: true });
|
|
45
|
-
}
|
|
46
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScOrderItemsListWithActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
47
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ScOrderItemsListWithActionsComponent, isStandalone: true, selector: "sc-order-items-list-with-actions", 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 }, selectedItemsIds: { classPropertyName: "selectedItemsIds", publicName: "selectedItemsIds", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectedItemsIds: "selectedItemsIdsChange" }, ngImport: i0, template: "<div class=\"flex flex-col gap-5\">\n <div class=\"flex flex-col gap-2.5\">\n @if (availableItems().length) {\n <sc-order-items-list\n [items]=\"availableItems()\"\n [selectable]=\"selectable()\"\n [editable]=\"editable()\"\n (selectedItemsIdsChange)=\"selectedItemsIds.set($event)\"\n />\n }\n\n <!-- \u0424\u0443\u0442\u0435\u0440 \u0441\u043F\u0438\u0441\u043A\u0430 \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 </div>\n </div>\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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
48
|
-
}
|
|
49
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScOrderItemsListWithActionsComponent, decorators: [{
|
|
50
|
-
type: Component,
|
|
51
|
-
args: [{ standalone: true, selector: 'sc-order-items-list-with-actions', imports: [ScOrderItemsListComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"flex flex-col gap-5\">\n <div class=\"flex flex-col gap-2.5\">\n @if (availableItems().length) {\n <sc-order-items-list\n [items]=\"availableItems()\"\n [selectable]=\"selectable()\"\n [editable]=\"editable()\"\n (selectedItemsIdsChange)=\"selectedItemsIds.set($event)\"\n />\n }\n\n <!-- \u0424\u0443\u0442\u0435\u0440 \u0441\u043F\u0438\u0441\u043A\u0430 \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 </div>\n </div>\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" }]
|
|
52
|
-
}], ctorParameters: () => [] });
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Mtb3JkZXItaXRlbXMtbGlzdC13aXRoLWFjdGlvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXVpL29yZGVyL29yZGVyLWl0ZW1zLWxpc3Qtd2l0aC1hY3Rpb25zL3NjLW9yZGVyLWl0ZW1zLWxpc3Qtd2l0aC1hY3Rpb25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9vcmRlci9vcmRlci1pdGVtcy1saXN0LXdpdGgtYWN0aW9ucy9zYy1vcmRlci1pdGVtcy1saXN0LXdpdGgtYWN0aW9ucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUduRyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQzs7QUFFOUY7O0dBRUc7QUFRSCxNQUFNLE9BQU8sb0NBQW9DO0lBK0I3Qzs7T0FFRztJQUNIO1FBakNBOztXQUVHO1FBQ2EsVUFBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQWlCLENBQUM7UUFFeEQ7O1dBRUc7UUFDYSxlQUFVLEdBQUcsS0FBSyxDQUFVLElBQUksQ0FBQyxDQUFDO1FBRWxEOztXQUVHO1FBQ2EsYUFBUSxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUVqRDs7V0FFRztRQUNnQixtQkFBYyxHQUFHLFFBQVEsQ0FBZ0IsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUVqSjs7V0FFRztRQUNnQixjQUFTLEdBQUcsUUFBUSxDQUFnQixHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFFMUk7O1dBRUc7UUFDYSxxQkFBZ0IsR0FBRyxLQUFLLENBQVcsRUFBRSxDQUFDLENBQUM7UUFNbkQsOEdBQThHO1FBQzlHLE1BQU0sQ0FDRixHQUFHLEVBQUU7WUFDRCxNQUFNLFlBQVksR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUMzRSxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ2pELE1BQU0sU0FBUyxHQUFHLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBRXhFLElBQUksU0FBUyxDQUFDLE1BQU0sS0FBSyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDL0MsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN6QyxDQUFDO1FBQ0wsQ0FBQyxFQUNELEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLENBQzlCLENBQUM7SUFDTixDQUFDOytHQWhEUSxvQ0FBb0M7bUdBQXBDLG9DQUFvQyx5ckJDZmpELDh6Q0E2QkEsNENEakJjLHlCQUF5Qjs7NEZBRzFCLG9DQUFvQztrQkFQaEQsU0FBUztpQ0FDTSxJQUFJLFlBQ04sa0NBQWtDLFdBRW5DLENBQUMseUJBQXlCLENBQUMsbUJBQ25CLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgZWZmZWN0LCBpbnB1dCwgbW9kZWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNjT3JkZXJJdGVtIH0gZnJvbSAnQHNuYWJjZW50ci9jbGllbnQtY29yZSc7XG5cbmltcG9ydCB7IFNjT3JkZXJJdGVtc0xpc3RDb21wb25lbnQgfSBmcm9tICcuLi9vcmRlci1pdGVtcy1saXN0L3NjLW9yZGVyLWl0ZW1zLWxpc3QuY29tcG9uZW50JztcblxuLyoqXG4gKiDQodC/0LjRgdC+0Log0L/QvtC30LjRhtC40Lkg0LfQsNC60LDQt9CwINGBINC00LXQudGB0YLQstC40Y/QvNC4INC4INCx0LvQvtC60L7QvCDQv9C+0LfQuNGG0LjQuSwg0LrQvtGC0L7RgNGL0LUg0LHQvtC70YzRiNC1INC90LUg0L/RgNC10LTQvtGB0YLQsNCy0LvRj9GO0YLRgdGPLlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnc2Mtb3JkZXItaXRlbXMtbGlzdC13aXRoLWFjdGlvbnMnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zYy1vcmRlci1pdGVtcy1saXN0LXdpdGgtYWN0aW9ucy5jb21wb25lbnQuaHRtbCcsXG4gICAgaW1wb3J0czogW1NjT3JkZXJJdGVtc0xpc3RDb21wb25lbnRdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBTY09yZGVySXRlbXNMaXN0V2l0aEFjdGlvbnNDb21wb25lbnQge1xuICAgIC8qKlxuICAgICAqINCi0L7QstCw0YDRiyDQt9Cw0LrQsNC30LAuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGl0ZW1zID0gaW5wdXQucmVxdWlyZWQ8U2NPcmRlckl0ZW1bXT4oKTtcblxuICAgIC8qKlxuICAgICAqINCS0LrQu9GO0YfQuNGC0Ywg0LLRi9Cx0L7RgCDQv9C+0LfQuNGG0LjQuSDRh9C10LrQsdC+0LrRgdCw0LzQuC5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgc2VsZWN0YWJsZSA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xuXG4gICAgLyoqXG4gICAgICog0JLQutC70Y7Rh9C40YLRjCDRgNC10LTQsNC60YLQuNGA0L7QstCw0L3QuNC1INC/0L7Qt9C40YbQuNC5LlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBlZGl0YWJsZSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcblxuICAgIC8qKlxuICAgICAqINCf0L7Qt9C40YbQuNC4LCDQtNC+0YHRgtGD0L/QvdGL0LUg0LTQu9GPINC30LDQutCw0LfQsC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgYXZhaWxhYmxlSXRlbXMgPSBjb21wdXRlZDxTY09yZGVySXRlbVtdPigoKSA9PiB0aGlzLml0ZW1zKCkuZmlsdGVyKChpdGVtKSA9PiAhaXRlbS5wcm9kdWN0LmlzTnVsbCAmJiAhaXRlbS5wcm9kdWN0LmlzSGlkZGVuKSk7XG5cbiAgICAvKipcbiAgICAgKiDQn9C+0LfQuNGG0LjQuCDQutC+0YDQt9C40L3Riywg0LrQvtGC0L7RgNGL0LUg0LHQvtC70YzRiNC1INC90LUg0L/RgNC10LTQvtGB0YLQsNCy0LvRj9GO0YLRgdGPLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBudWxsSXRlbXMgPSBjb21wdXRlZDxTY09yZGVySXRlbVtdPigoKSA9PiB0aGlzLml0ZW1zKCkuZmlsdGVyKChpdGVtKSA9PiBpdGVtLnByb2R1Y3QuaXNOdWxsIHx8IGl0ZW0ucHJvZHVjdC5pc0hpZGRlbikpO1xuXG4gICAgLyoqXG4gICAgICog0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YDRiyDQstGL0LHRgNCw0L3QvdGL0YUg0L/QvtC30LjRhtC40LkuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IHNlbGVjdGVkSXRlbXNJZHMgPSBtb2RlbDxzdHJpbmdbXT4oW10pO1xuXG4gICAgLyoqXG4gICAgICog0JjQvdC40YbQuNCw0LvQuNC30LjRgNGD0LXRgiDRjdC60LfQtdC80L/Qu9GP0YAg0LrQu9Cw0YHRgdCwIHtAbGluayBTY09yZGVySXRlbXNMaXN0V2l0aEFjdGlvbnNDb21wb25lbnR9LlxuICAgICAqL1xuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgLy8g0J7RgdGC0LDQstC70Y/QtdGCINCyINCy0YvQsdC+0YDQtSDRgtC+0LvRjNC60L4g0LTQvtGB0YLRg9C/0L3Ri9C1INC/0L7Qt9C40YbQuNC4OiDQsdC10Lcg0L3QuNGFINGB0L/QuNGB0L7QuiDQstGL0LHQvtGA0LAg0L3QtSDQvtGC0YDQuNGB0L7QstGL0LLQsNC10YLRgdGPINC4INCy0YvQsdC+0YAg0L3QtSDRgdCx0YDQsNGB0YvQstCw0LXRgi5cbiAgICAgICAgZWZmZWN0KFxuICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGF2YWlsYWJsZUlkcyA9IG5ldyBTZXQodGhpcy5hdmFpbGFibGVJdGVtcygpLm1hcCgoaXRlbSkgPT4gaXRlbS5pZCkpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbXNJZHMgPSB0aGlzLnNlbGVjdGVkSXRlbXNJZHMoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBhY3R1YWxJZHMgPSBzZWxlY3RlZEl0ZW1zSWRzLmZpbHRlcigoaWQpID0+IGF2YWlsYWJsZUlkcy5oYXMoaWQpKTtcblxuICAgICAgICAgICAgICAgIGlmIChhY3R1YWxJZHMubGVuZ3RoICE9PSBzZWxlY3RlZEl0ZW1zSWRzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXNJZHMuc2V0KGFjdHVhbElkcyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfVxuICAgICAgICApO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC01XCI+XG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTIuNVwiPlxuICAgICAgICBAaWYgKGF2YWlsYWJsZUl0ZW1zKCkubGVuZ3RoKSB7XG4gICAgICAgICAgICA8c2Mtb3JkZXItaXRlbXMtbGlzdFxuICAgICAgICAgICAgICAgIFtpdGVtc109XCJhdmFpbGFibGVJdGVtcygpXCJcbiAgICAgICAgICAgICAgICBbc2VsZWN0YWJsZV09XCJzZWxlY3RhYmxlKClcIlxuICAgICAgICAgICAgICAgIFtlZGl0YWJsZV09XCJlZGl0YWJsZSgpXCJcbiAgICAgICAgICAgICAgICAoc2VsZWN0ZWRJdGVtc0lkc0NoYW5nZSk9XCJzZWxlY3RlZEl0ZW1zSWRzLnNldCgkZXZlbnQpXCJcbiAgICAgICAgICAgIC8+XG4gICAgICAgIH1cblxuICAgICAgICA8IS0tINCk0YPRgtC10YAg0YHQv9C40YHQutCwINGC0L7QstCw0YDQvtCyLiAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyIHNtOmZsZXgtcm93IHNtOml0ZW1zLXN0YXJ0IHNtOmZsZXgtd3JhcC1yZXZlcnNlIGdyb3cgZ2FwLXgtMi41IGdhcC15LTRcIj5cbiAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltmb290ZXJBY3Rpb25zXVwiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgQGlmIChudWxsSXRlbXMoKS5sZW5ndGgpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTIuNVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtYmFzZSBmb250LWJvbGRcIj7QotC+0LLQsNGA0Ysg0Lgg0YPRgdC70YPQs9C4LCDQutC+0YLQvtGA0YvQtSDQsdC+0LvRjNGI0LUg0L3QtSDQv9GA0LXQtNC+0YHRgtCw0LLQu9GP0Y7RgtGB0Y8uPC9kaXY+XG5cbiAgICAgICAgICAgIDxzYy1vcmRlci1pdGVtcy1saXN0XG4gICAgICAgICAgICAgICAgW2l0ZW1zXT1cIm51bGxJdGVtcygpXCJcbiAgICAgICAgICAgICAgICBbc2VsZWN0YWJsZV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgW2VkaXRhYmxlXT1cImVkaXRhYmxlKClcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgfVxuPC9kaXY+XG4iXX0=
|