@snabcentr/client-ui 4.14.6-profstroy → 4.15.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/cart/sc-cart-add-products-from-csv-dialog/sc-cart-add-products-from-csv-dialog.component.d.ts +3 -3
  2. package/catalog/input-quantity/sc-input-quantity.component.d.ts +1 -17
  3. package/esm2022/cart/sc-cart-add-products-from-csv-dialog/sc-cart-add-products-from-csv-dialog.component.mjs +16 -5
  4. package/esm2022/catalog/input-quantity/sc-input-quantity.component.mjs +6 -29
  5. package/esm2022/order/draft/sc-draft.component.mjs +17 -183
  6. package/esm2022/order/index.mjs +3 -8
  7. package/esm2022/order/new-order-items/sc-new-order-items.component.mjs +39 -0
  8. package/esm2022/order/order-form/sc-order-form.component.mjs +6 -18
  9. package/esm2022/order/order-item/sc-order-item.component.mjs +5 -14
  10. package/esm2022/order/order-items-list/sc-order-items-list.component.mjs +7 -61
  11. package/esm2022/order/order-items-list-by-stock/sc-order-items-list-by-stock.component.mjs +1 -1
  12. package/esm2022/order/order-items-list-with-actions/sc-order-items-list-with-actions.component.mjs +53 -0
  13. package/esm2022/pipes/sc-format-date.mjs +1 -1
  14. package/esm2022/providers/sc-date-formatter.mjs +1 -1
  15. package/fesm2022/snabcentr-client-ui.mjs +78 -764
  16. package/fesm2022/snabcentr-client-ui.mjs.map +1 -1
  17. package/order/draft/sc-draft.component.d.ts +6 -96
  18. package/order/index.d.ts +2 -7
  19. package/order/new-order-items/sc-new-order-items.component.d.ts +29 -0
  20. package/order/order-form/sc-order-form.component.d.ts +2 -11
  21. package/order/order-item/sc-order-item.component.d.ts +1 -9
  22. package/order/order-items-list/sc-order-items-list.component.d.ts +1 -24
  23. package/order/order-items-list-with-actions/sc-order-items-list-with-actions.component.d.ts +37 -0
  24. package/package.json +2 -2
  25. package/pipes/sc-format-date.d.ts +1 -1
  26. package/providers/sc-date-formatter.d.ts +1 -1
  27. package/release_notes.tmp +1 -1
  28. package/styles/tailwind/tailwind.scss +4 -16
  29. package/esm2022/helpers/sc-file-helper.mjs +0 -29
  30. package/esm2022/order/draft/helpers/sc-draft-list-helper.mjs +0 -42
  31. package/esm2022/order/draft/models/sc-i-draft-list-item.mjs +0 -2
  32. package/esm2022/order/draft/profstroy/actualization-panel/sc-profstroy-actualization-panel.component.mjs +0 -68
  33. package/esm2022/order/draft/profstroy/badge/sc-profstroy-badge.component.mjs +0 -21
  34. package/esm2022/order/draft/profstroy/badges/sc-profstroy-draft-badges.component.mjs +0 -31
  35. package/esm2022/order/draft/profstroy/create-dialog/sc-profstroy-draft-create-dialog.component.mjs +0 -132
  36. package/esm2022/order/draft/profstroy/enums/sc-profstroy-draft-state.mjs +0 -32
  37. package/esm2022/order/draft/profstroy/helpers/sc-profstroy-draft-helper.mjs +0 -72
  38. package/esm2022/order/draft/profstroy/index.mjs +0 -8
  39. package/esm2022/order/draft/profstroy/models/sc-i-profstroy-draft-state-view.mjs +0 -2
  40. package/esm2022/order/models/sc-i-cart-items-by-direction.mjs +0 -22
  41. package/esm2022/order/models/sc-i-order-items-group.mjs +0 -2
  42. package/esm2022/order/order-direction-items/sc-order-direction-items.component.mjs +0 -43
  43. package/esm2022/order/order-items-list-by-directions/sc-order-items-list-by-directions.component.mjs +0 -79
  44. package/helpers/sc-file-helper.d.ts +0 -13
  45. package/order/draft/helpers/sc-draft-list-helper.d.ts +0 -22
  46. package/order/draft/models/sc-i-draft-list-item.d.ts +0 -14
  47. package/order/draft/profstroy/actualization-panel/sc-profstroy-actualization-panel.component.d.ts +0 -54
  48. package/order/draft/profstroy/badge/sc-profstroy-badge.component.d.ts +0 -12
  49. package/order/draft/profstroy/badges/sc-profstroy-draft-badges.component.d.ts +0 -21
  50. package/order/draft/profstroy/create-dialog/sc-profstroy-draft-create-dialog.component.d.ts +0 -58
  51. package/order/draft/profstroy/enums/sc-profstroy-draft-state.d.ts +0 -29
  52. package/order/draft/profstroy/helpers/sc-profstroy-draft-helper.d.ts +0 -26
  53. package/order/draft/profstroy/index.d.ts +0 -7
  54. package/order/draft/profstroy/models/sc-i-profstroy-draft-state-view.d.ts +0 -17
  55. package/order/models/sc-i-cart-items-by-direction.d.ts +0 -25
  56. package/order/models/sc-i-order-items-group.d.ts +0 -22
  57. package/order/order-direction-items/sc-order-direction-items.component.d.ts +0 -33
  58. package/order/order-items-list-by-directions/sc-order-items-list-by-directions.component.d.ts +0 -62
@@ -1,79 +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.useLinePrice = input(false);
26
- /**
27
- * Включить отображение кнопки продолжения.
28
- */
29
- this.showContinueButton = input(true);
30
- /**
31
- * Текст кнопки продолжения.
32
- */
33
- this.continueButtonText = input({ title: 'Заказать', iconStart: '@tui.shopping-cart' });
34
- /**
35
- * Событие клика на кнопку продолжения.
36
- */
37
- this.continueClick = output();
38
- /**
39
- * Список направлений продаж из справочника.
40
- */
41
- this.directions = toSignal(inject(ScReferencesService).directions$, { initialValue: undefined });
42
- /**
43
- * Позиции корзины, сгруппированные по направлениям продаж.
44
- * Если передан cartDirections, используется он, иначе группировка выполняется автоматически.
45
- */
46
- this.itemsByDirections = computed(() => {
47
- const items = this.items().filter((item) => !item.product.isNull && !item.product.isHidden);
48
- const directions = this.directions();
49
- return directions?.map((direction) => new ScOrderItemsByDirection(direction, items)).filter((group) => group.items.length > 0) ?? [];
50
- });
51
- /**
52
- * Позиции корзины, которые больше не предоставляются.
53
- */
54
- this.nullItems = computed(() => this.items().filter((item) => item.product.isNull || item.product.isHidden));
55
- /**
56
- * Выходные данные при изменении выбора позиций.
57
- */
58
- this.selectedItemsIds = model([]);
59
- }
60
- /**
61
- * Обработчик изменения выбора позиций.
62
- *
63
- * @param itemsIds Идентификаторы выбранных позиций.
64
- * @param direction Направление продаж.
65
- */
66
- selectedItemsHandler(itemsIds, direction) {
67
- this.selectedItemsIds.update((previous) => [
68
- ...previous.filter((id) => !direction.items.some((item) => item.id === id) && this.items().some((item) => item.id === id)),
69
- ...itemsIds,
70
- ]);
71
- }
72
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScOrderItemsListByDirectionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
73
- 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 }, useLinePrice: { classPropertyName: "useLinePrice", publicName: "useLinePrice", 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 [useLinePrice]=\"useLinePrice()\"\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", "groupBy", "markUnavailable", "useLinePrice", "items"], outputs: ["selectedItemsIdsChange"] }, { kind: "directive", type: TuiButton, selector: "a[tuiButton],button[tuiButton],a[tuiIconButton],button[tuiIconButton]", inputs: ["size"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
74
- }
75
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ScOrderItemsListByDirectionsComponent, decorators: [{
76
- type: Component,
77
- 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 [useLinePrice]=\"useLinePrice()\"\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" }]
78
- }] });
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Mtb3JkZXItaXRlbXMtbGlzdC1ieS1kaXJlY3Rpb25zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9vcmRlci9vcmRlci1pdGVtcy1saXN0LWJ5LWRpcmVjdGlvbnMvc2Mtb3JkZXItaXRlbXMtbGlzdC1ieS1kaXJlY3Rpb25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC11aS9vcmRlci9vcmRlci1pdGVtcy1saXN0LWJ5LWRpcmVjdGlvbnMvc2Mtb3JkZXItaXRlbXMtbGlzdC1ieS1kaXJlY3Rpb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUFrQyxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNqRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQzs7QUFTOUYsTUFBTSxPQUFPLHFDQUFxQztJQVBsRDtRQVFJOztXQUVHO1FBQ2EsVUFBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQWlCLENBQUM7UUFFeEQ7O1dBRUc7UUFDYSxlQUFVLEdBQUcsS0FBSyxDQUFVLElBQUksQ0FBQyxDQUFDO1FBRWxEOztXQUVHO1FBQ2EsYUFBUSxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUVqRDs7V0FFRztRQUNhLGlCQUFZLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBRXJEOztXQUVHO1FBQ2EsdUJBQWtCLEdBQUcsS0FBSyxDQUFVLElBQUksQ0FBQyxDQUFDO1FBRTFEOztXQUVHO1FBQ2EsdUJBQWtCLEdBQUcsS0FBSyxDQUF1QyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLG9CQUFvQixFQUFFLENBQUMsQ0FBQztRQUV6STs7V0FFRztRQUNhLGtCQUFhLEdBQUcsTUFBTSxFQUEyQixDQUFDO1FBRWxFOztXQUVHO1FBQ2MsZUFBVSxHQUFHLFFBQVEsQ0FBa0MsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFFOUk7OztXQUdHO1FBQ2dCLHNCQUFpQixHQUFHLFFBQVEsQ0FBNEIsR0FBRyxFQUFFO1lBQzVFLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzVGLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUVyQyxPQUFPLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksdUJBQXVCLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDekksQ0FBQyxDQUFDLENBQUM7UUFFSDs7V0FFRztRQUNnQixjQUFTLEdBQUcsUUFBUSxDQUFnQixHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFFMUk7O1dBRUc7UUFDYSxxQkFBZ0IsR0FBRyxLQUFLLENBQVcsRUFBRSxDQUFDLENBQUM7S0FjMUQ7SUFaRzs7Ozs7T0FLRztJQUNPLG9CQUFvQixDQUFDLFFBQWtCLEVBQUUsU0FBa0M7UUFDakYsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7WUFDdkMsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDMUgsR0FBRyxRQUFRO1NBQ2QsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzsrR0F6RVEscUNBQXFDO21HQUFyQyxxQ0FBcUMscXFDQ2ZsRCxxb0ZBaURBLDRDRHJDYyx5QkFBeUIsZ01BQUUsU0FBUzs7NEZBR3JDLHFDQUFxQztrQkFQakQsU0FBUztpQ0FDTSxJQUFJLFlBQ04sbUNBQW1DLFdBRXBDLENBQUMseUJBQXlCLEVBQUUsU0FBUyxDQUFDLG1CQUM5Qix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGluamVjdCwgaW5wdXQsIG1vZGVsLCBvdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgU2NJU2FsZXNEaXJlY3Rpb24sIFNjT3JkZXJJdGVtLCBTY1JlZmVyZW5jZXNTZXJ2aWNlIH0gZnJvbSAnQHNuYWJjZW50ci9jbGllbnQtY29yZSc7XG5pbXBvcnQgeyBUdWlCdXR0b24gfSBmcm9tICdAdGFpZ2EtdWkvY29yZSc7XG5cbmltcG9ydCB7IFNjT3JkZXJJdGVtc0J5RGlyZWN0aW9uIH0gZnJvbSAnLi4vbW9kZWxzL3NjLWktY2FydC1pdGVtcy1ieS1kaXJlY3Rpb24nO1xuaW1wb3J0IHsgU2NPcmRlckl0ZW1zTGlzdENvbXBvbmVudCB9IGZyb20gJy4uL29yZGVyLWl0ZW1zLWxpc3Qvc2Mtb3JkZXItaXRlbXMtbGlzdC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnc2Mtb3JkZXItaXRlbXMtbGlzdC1ieS1kaXJlY3Rpb25zJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2Mtb3JkZXItaXRlbXMtbGlzdC1ieS1kaXJlY3Rpb25zLmNvbXBvbmVudC5odG1sJyxcbiAgICBpbXBvcnRzOiBbU2NPcmRlckl0ZW1zTGlzdENvbXBvbmVudCwgVHVpQnV0dG9uXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgU2NPcmRlckl0ZW1zTGlzdEJ5RGlyZWN0aW9uc0NvbXBvbmVudCB7XG4gICAgLyoqXG4gICAgICog0JLQvdGD0YLRgNC10L3QvdC40Lkg0YHQuNCz0L3QsNC7INGB0L/QuNGB0LrQsCDRjdC70LXQvNC10L3RgtC+0LIg0LrQvtGA0LfQuNC90YsgKNGC0L7QstCw0YDQvtCyKS5cbiAgICAgKi9cbiAgICBwdWJsaWMgcmVhZG9ubHkgaXRlbXMgPSBpbnB1dC5yZXF1aXJlZDxTY09yZGVySXRlbVtdPigpO1xuXG4gICAgLyoqXG4gICAgICog0JLQutC70Y7Rh9C40YLRjCDQstGL0LHQvtGAINC/0L7Qt9C40YbQuNC5INGH0LXQutCx0L7QutGB0LDQvNC4LlxuICAgICAqL1xuICAgIHB1YmxpYyByZWFkb25seSBzZWxlY3RhYmxlID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XG5cbiAgICAvKipcbiAgICAgKiDQktC60LvRjtGH0LjRgtGMINGA0LXQtNCw0LrRgtC40YDQvtCy0LDQvdC40LUg0L/QvtC30LjRhtC40LkuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IGVkaXRhYmxlID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gICAgLyoqXG4gICAgICog0J/RgNC40LfQvdCw0LosINGH0YLQviDRhtC10L3QsCDQt9CwINC10LTQuNC90LjRhtGDINCx0LXRgNGR0YLRgdGPINC40Lcg0L/QvtC30LjRhtC40LgsINCwINC90LUg0LjQtyDRgtC10LrRg9GJ0LXQuSDRhtC10L3RiyDRgtC+0LLQsNGA0LAuXG4gICAgICovXG4gICAgcHVibGljIHJlYWRvbmx5IHVzZUxpbmVQcmljZSA9IGlucHV0PGJvb2xlYW4+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+XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIDxzYy1vcmRlci1pdGVtcy1saXN0XG4gICAgICAgICAgICAgICAgW2l0ZW1zXT1cImRpcmVjdGlvbi5pdGVtc1wiXG4gICAgICAgICAgICAgICAgW3NlbGVjdGFibGVdPVwic2VsZWN0YWJsZSgpXCJcbiAgICAgICAgICAgICAgICBbZWRpdGFibGVdPVwiZWRpdGFibGUoKVwiXG4gICAgICAgICAgICAgICAgW3VzZUxpbmVQcmljZV09XCJ1c2VMaW5lUHJpY2UoKVwiXG4gICAgICAgICAgICAgICAgKHNlbGVjdGVkSXRlbXNJZHNDaGFuZ2UpPVwic2VsZWN0ZWRJdGVtc0hhbmRsZXIoJGV2ZW50LCBkaXJlY3Rpb24pXCJcbiAgICAgICAgICAgIC8+XG5cbiAgICAgICAgICAgIDwhLS0g0KTRg9GC0LXRgCDQs9GA0YPQv9C/0Ysg0YLQvtCy0LDRgNC+0LIuIC0tPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyIHNtOmZsZXgtcm93IHNtOml0ZW1zLXN0YXJ0IHNtOmZsZXgtd3JhcC1yZXZlcnNlIGdyb3cgZ2FwLXgtMi41IGdhcC15LTRcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZm9vdGVyQWN0aW9uc11cIiAvPlxuXG4gICAgICAgICAgICAgICAgPCEtLSDQmtC90L7Qv9C60LAg0L/RgNC+0LTQvtC70LbQtdC90LjRjy4gLS0+XG4gICAgICAgICAgICAgICAgQGlmIChzaG93Q29udGludWVCdXR0b24oKSkge1xuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICB0dWlCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpcmVjdGlvbi5nZXRJdGVtc0J5SWRzKHNlbGVjdGVkSXRlbXNJZHMoKSkubGVuZ3RoID09PSAwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpY29uU3RhcnRdPVwiY29udGludWVCdXR0b25UZXh0KCkuaWNvblN0YXJ0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic206bWwtYXV0b1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiY29udGludWVDbGljay5lbWl0KGRpcmVjdGlvbilcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBjb250aW51ZUJ1dHRvblRleHQoKS50aXRsZSB9fVxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgfVxuXG4gICAgQGlmIChudWxsSXRlbXMoKS5sZW5ndGgpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTIuNVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtYmFzZSBmb250LWJvbGRcIj7QotC+0LLQsNGA0Ysg0Lgg0YPRgdC70YPQs9C4LCDQutC+0YLQvtGA0YvQtSDQsdC+0LvRjNGI0LUg0L3QtSDQv9GA0LXQtNC+0YHRgtCw0LLQu9GP0Y7RgtGB0Y8uPC9kaXY+XG5cbiAgICAgICAgICAgIDxzYy1vcmRlci1pdGVtcy1saXN0XG4gICAgICAgICAgICAgICAgW2l0ZW1zXT1cIm51bGxJdGVtcygpXCJcbiAgICAgICAgICAgICAgICBbc2VsZWN0YWJsZV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgW2VkaXRhYmxlXT1cImVkaXRhYmxlKClcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgfVxuPC9kaXY+XG4iXX0=
@@ -1,13 +0,0 @@
1
- import { ScUploadedFile } from '@snabcentr/client-core';
2
- import { Observable } from 'rxjs';
3
- /**
4
- * Класс-помощник для работы с файлами, выбранными пользователем.
5
- */
6
- export declare class ScFileHelper {
7
- /**
8
- * Читает файл и возвращает его для отправки в API: название и содержимое в виде data-URI. При отписке чтение прерывается.
9
- *
10
- * @param file Выбранный файл.
11
- */
12
- static readAsUploadedFile$(file: File): Observable<ScUploadedFile>;
13
- }
@@ -1,22 +0,0 @@
1
- import { ScOrderDraftShort } from '@snabcentr/client-core';
2
- import { ScIDraftListItem } from '../models/sc-i-draft-list-item';
3
- /**
4
- * Класс-помощник для работы со списком черновиков.
5
- */
6
- export declare class ScDraftListHelper {
7
- /**
8
- * Возвращает список черновиков страницы с обновлёнными краткими данными. Элементы списка обновляются на месте, чтобы сохранить раскрытые черновики и их полные данные.
9
- *
10
- * @param items Текущие элементы списка.
11
- * @param drafts Полученные краткие данные черновиков.
12
- * @param isFullPage Признак, что получена вся страница: тогда состав и порядок списка берутся из неё.
13
- */
14
- static merge(items: ScIDraftListItem[], drafts: ScOrderDraftShort[], isFullPage: boolean): ScIDraftListItem[];
15
- /**
16
- * Обновляет элемент списка краткими данными черновика. Полные данные черновика не заменяются, а дополняются.
17
- *
18
- * @param item Элемент списка.
19
- * @param short Краткие данные черновика.
20
- */
21
- private static update;
22
- }
@@ -1,14 +0,0 @@
1
- import { ScOrderDraft, ScOrderDraftShort } from '@snabcentr/client-core';
2
- /**
3
- * Данные об элементе списка черновиков заказов.
4
- */
5
- export interface ScIDraftListItem {
6
- /**
7
- * Краткие или полные данные о черновике заказа.
8
- */
9
- order: ScOrderDraft | ScOrderDraftShort;
10
- /**
11
- * Признак, что черновик раскрыт в списке.
12
- */
13
- isExpanded: boolean;
14
- }
@@ -1,54 +0,0 @@
1
- import { ScOrderDraft } from '@snabcentr/client-core';
2
- import { ScProfstroyDraftState } from '../enums/sc-profstroy-draft-state';
3
- import * as i0 from "@angular/core";
4
- /**
5
- * Компонент панели состояния актуализации черновика Профстрой с действиями актуализации и пересборки.
6
- */
7
- export declare class ScProfstroyActualizationPanelComponent {
8
- /**
9
- * Список ссылок приложения.
10
- */
11
- private readonly urls;
12
- /**
13
- * Черновик Профстрой.
14
- */
15
- readonly draft: import("@angular/core").InputSignal<ScOrderDraft>;
16
- /**
17
- * Момент, на который определяется состояние.
18
- */
19
- readonly now: import("@angular/core").InputSignal<Date>;
20
- /**
21
- * Признак выполнения действия над черновиком.
22
- */
23
- readonly busy: import("@angular/core").InputSignal<boolean>;
24
- /**
25
- * Событие запуска актуализации.
26
- */
27
- readonly actualize: import("@angular/core").OutputEmitterRef<void>;
28
- /**
29
- * Событие запуска пересборки из файла.
30
- */
31
- readonly reload: import("@angular/core").OutputEmitterRef<void>;
32
- /**
33
- * Текущее состояние черновика.
34
- */
35
- protected readonly state: import("@angular/core").Signal<ScProfstroyDraftState>;
36
- /**
37
- * Данные об отображении состояния.
38
- */
39
- protected readonly stateView: import("@angular/core").Signal<import("@snabcentr/client-ui").ScIProfstroyDraftStateView>;
40
- /**
41
- * Признак, что выполняется обработка.
42
- */
43
- protected readonly isProcessing: import("@angular/core").Signal<boolean>;
44
- /**
45
- * Признак, что срок действия актуализации ещё не истёк.
46
- */
47
- protected readonly isActual: import("@angular/core").Signal<boolean>;
48
- /**
49
- * Абсолютная ссылка на исходный файл заявки. Файл лежит на хосте API.
50
- */
51
- protected readonly fileUrl: import("@angular/core").Signal<string | null>;
52
- static ɵfac: i0.ɵɵFactoryDeclaration<ScProfstroyActualizationPanelComponent, never>;
53
- static ɵcmp: i0.ɵɵComponentDeclaration<ScProfstroyActualizationPanelComponent, "sc-profstroy-actualization-panel", never, { "draft": { "alias": "draft"; "required": true; "isSignal": true; }; "now": { "alias": "now"; "required": false; "isSignal": true; }; "busy": { "alias": "busy"; "required": false; "isSignal": true; }; }, { "actualize": "actualize"; "reload": "reload"; }, never, never, true, never>;
54
- }
@@ -1,12 +0,0 @@
1
- import * as i0 from "@angular/core";
2
- /**
3
- * Компонент метки «Профстрой» у черновика или заказа, созданного из файла программы «Профстрой».
4
- */
5
- export declare class ScProfstroyBadgeComponent {
6
- /**
7
- * Размер метки.
8
- */
9
- readonly size: import("@angular/core").InputSignal<"m" | "s">;
10
- static ɵfac: i0.ɵɵFactoryDeclaration<ScProfstroyBadgeComponent, never>;
11
- static ɵcmp: i0.ɵɵComponentDeclaration<ScProfstroyBadgeComponent, "sc-profstroy-badge", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
12
- }
@@ -1,21 +0,0 @@
1
- import { ScOrderDraftActualization } from '@snabcentr/client-core';
2
- import * as i0 from "@angular/core";
3
- /**
4
- * Компонент меток черновика Профстрой: признак и текущее состояние обработки.
5
- */
6
- export declare class ScProfstroyDraftBadgesComponent {
7
- /**
8
- * Данные об актуализации черновика.
9
- */
10
- readonly actualization: import("@angular/core").InputSignal<ScOrderDraftActualization | undefined>;
11
- /**
12
- * Момент, на который определяется состояние.
13
- */
14
- readonly now: import("@angular/core").InputSignal<Date>;
15
- /**
16
- * Данные об отображении состояния.
17
- */
18
- protected readonly stateView: import("@angular/core").Signal<import("@snabcentr/client-ui").ScIProfstroyDraftStateView>;
19
- static ɵfac: i0.ɵɵFactoryDeclaration<ScProfstroyDraftBadgesComponent, never>;
20
- static ɵcmp: i0.ɵɵComponentDeclaration<ScProfstroyDraftBadgesComponent, "sc-profstroy-draft-badges", never, { "actualization": { "alias": "actualization"; "required": false; "isSignal": true; }; "now": { "alias": "now"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
21
- }
@@ -1,58 +0,0 @@
1
- import { FormControl, FormGroup } from '@angular/forms';
2
- import { ScOrderDraft } from '@snabcentr/client-core';
3
- import { TuiDialogContext } from '@taiga-ui/core';
4
- import * as i0 from "@angular/core";
5
- /**
6
- * Компонент диалога создания черновика заказа из файла программы «Профстрой».
7
- */
8
- export declare class ScProfstroyDraftCreateDialogComponent {
9
- /**
10
- * Контекст диалогового окна, в котором открыт компонент.
11
- */
12
- protected readonly context: TuiDialogContext<ScOrderDraft | undefined, undefined>;
13
- /**
14
- * Сервис для работы с черновиками заказов.
15
- */
16
- private readonly draftsService;
17
- /**
18
- * Ссылка для автоматического управления уничтожением зависимостей.
19
- */
20
- private readonly destroyRef;
21
- /**
22
- * Допустимые расширения файла.
23
- */
24
- protected readonly allowedExtensions: string[];
25
- /**
26
- * Форма создания черновика.
27
- */
28
- protected readonly form: FormGroup<{
29
- file: FormControl<File | null>;
30
- name: FormControl<string>;
31
- }>;
32
- /**
33
- * Признак выполнения запроса создания.
34
- */
35
- protected readonly submitting: import("@angular/core").WritableSignal<boolean>;
36
- /**
37
- * Удаляет выбранный файл.
38
- */
39
- protected removeFile(): void;
40
- /**
41
- * Отправляет файл и создаёт черновик.
42
- */
43
- protected submit(): void;
44
- /**
45
- * Возвращает ошибку, если расширение файла не входит в список допустимых.
46
- *
47
- * @param control Контрол файла.
48
- */
49
- private validateExtension;
50
- /**
51
- * Раскладывает ошибки сервера по полям формы.
52
- *
53
- * @param error Ошибка запроса.
54
- */
55
- private applyServerErrors;
56
- static ɵfac: i0.ɵɵFactoryDeclaration<ScProfstroyDraftCreateDialogComponent, never>;
57
- static ɵcmp: i0.ɵɵComponentDeclaration<ScProfstroyDraftCreateDialogComponent, "sc-profstroy-draft-create-dialog", never, {}, {}, never, never, true, never>;
58
- }
@@ -1,29 +0,0 @@
1
- /**
2
- * Перечисление состояний черновика Профстрой для отображения пользователю.
3
- */
4
- export declare enum ScProfstroyDraftState {
5
- /**
6
- * Выполняется обработка.
7
- */
8
- processing = "processing",
9
- /**
10
- * Актуализирован, срок действия не истёк.
11
- */
12
- actual = "actual",
13
- /**
14
- * Актуализирован, но срок действия истёк.
15
- */
16
- outdated = "outdated",
17
- /**
18
- * Обработка завершилась с ошибкой.
19
- */
20
- error = "error",
21
- /**
22
- * Требуется актуализация после изменения состава.
23
- */
24
- needsActualization = "needsActualization",
25
- /**
26
- * Состояние не известно.
27
- */
28
- unknown = "unknown"
29
- }
@@ -1,26 +0,0 @@
1
- import { ScOrderDraftActualization } from '@snabcentr/client-core';
2
- import { ScProfstroyDraftState } from '../enums/sc-profstroy-draft-state';
3
- import { ScIProfstroyDraftStateView } from '../models/sc-i-profstroy-draft-state-view';
4
- /**
5
- * Класс-помощник для отображения черновиков Профстрой.
6
- */
7
- export declare class ScProfstroyDraftHelper {
8
- /**
9
- * Данные об отображении состояний черновика.
10
- */
11
- private static readonly stateViews;
12
- /**
13
- * Возвращает состояние черновика на указанный момент.
14
- *
15
- * @param actualization Данные об актуализации.
16
- * @param now Момент проверки.
17
- */
18
- static getState(actualization: ScOrderDraftActualization | undefined, now: Date): ScProfstroyDraftState;
19
- /**
20
- * Возвращает данные об отображении состояния черновика на указанный момент.
21
- *
22
- * @param actualization Данные об актуализации.
23
- * @param now Момент проверки.
24
- */
25
- static getStateView(actualization: ScOrderDraftActualization | undefined, now: Date): ScIProfstroyDraftStateView;
26
- }
@@ -1,7 +0,0 @@
1
- export * from './actualization-panel/sc-profstroy-actualization-panel.component';
2
- export * from './badge/sc-profstroy-badge.component';
3
- export * from './badges/sc-profstroy-draft-badges.component';
4
- export * from './create-dialog/sc-profstroy-draft-create-dialog.component';
5
- export * from './enums/sc-profstroy-draft-state';
6
- export * from './helpers/sc-profstroy-draft-helper';
7
- export * from './models/sc-i-profstroy-draft-state-view';
@@ -1,17 +0,0 @@
1
- /**
2
- * Данные об отображении состояния черновика Профстрой.
3
- */
4
- export interface ScIProfstroyDraftStateView {
5
- /**
6
- * Краткое название состояния.
7
- */
8
- label: string;
9
- /**
10
- * Оформление метки и панели состояния.
11
- */
12
- appearance: 'info' | 'success' | 'warning' | 'error' | 'neutral';
13
- /**
14
- * Пояснение к состоянию.
15
- */
16
- description: string;
17
- }
@@ -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
- }
@@ -1,22 +0,0 @@
1
- import { ScOrderItem } from '@snabcentr/client-core';
2
- /**
3
- * Данные о группе позиций заказа (корзины / черновика).
4
- */
5
- export interface ScIOrderItemsGroup {
6
- /**
7
- * Название группы. Пустое, если позиции не группируются.
8
- */
9
- name: string;
10
- /**
11
- * Позиции группы.
12
- */
13
- items: ScOrderItem[];
14
- /**
15
- * Количество позиций группы, которые могут попасть в заказ.
16
- */
17
- orderableCount: number;
18
- /**
19
- * Сумма позиций группы в рублях.
20
- */
21
- sum: number;
22
- }
@@ -1,33 +0,0 @@
1
- import { ScOrderItem } from '@snabcentr/client-core';
2
- import * as i0 from "@angular/core";
3
- /**
4
- * Список товаров заказа по направлению продаж с выбором позиций для оформления.
5
- */
6
- export declare class ScOrderDirectionItemsComponent {
7
- /**
8
- * Товары направления.
9
- */
10
- readonly items: import("@angular/core").InputSignal<ScOrderItem[]>;
11
- /**
12
- * Разрешить редактирование позиций (количество, удаление).
13
- */
14
- readonly editable: import("@angular/core").InputSignal<boolean>;
15
- /**
16
- * Включить выбор позиций чекбоксами.
17
- */
18
- readonly selectable: import("@angular/core").InputSignal<boolean>;
19
- /**
20
- * Признак, что цена за единицу берётся из позиции, а не из текущей цены товара.
21
- */
22
- readonly useLinePrice: import("@angular/core").InputSignal<boolean>;
23
- /**
24
- * Время обработки и принятия заказов (из настроек окружения приложения).
25
- */
26
- readonly orderProcessingAcceptanceTime: import("@angular/core").InputSignal<string>;
27
- /**
28
- * Изменение выбора позиций для оформления.
29
- */
30
- readonly selectedItemsIdsChange: import("@angular/core").OutputEmitterRef<string[]>;
31
- static ɵfac: i0.ɵɵFactoryDeclaration<ScOrderDirectionItemsComponent, never>;
32
- 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; }; "useLinePrice": { "alias": "useLinePrice"; "required": false; "isSignal": true; }; "orderProcessingAcceptanceTime": { "alias": "orderProcessingAcceptanceTime"; "required": false; "isSignal": true; }; }, { "selectedItemsIdsChange": "selectedItemsIdsChange"; }, never, ["[footerActions]"], true, never>;
33
- }
@@ -1,62 +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 useLinePrice: import("@angular/core").InputSignal<boolean>;
21
- /**
22
- * Включить отображение кнопки продолжения.
23
- */
24
- readonly showContinueButton: import("@angular/core").InputSignal<boolean>;
25
- /**
26
- * Текст кнопки продолжения.
27
- */
28
- readonly continueButtonText: import("@angular/core").InputSignal<{
29
- title: string;
30
- iconStart: string;
31
- }>;
32
- /**
33
- * Событие клика на кнопку продолжения.
34
- */
35
- readonly continueClick: import("@angular/core").OutputEmitterRef<ScOrderItemsByDirection>;
36
- /**
37
- * Список направлений продаж из справочника.
38
- */
39
- private readonly directions;
40
- /**
41
- * Позиции корзины, сгруппированные по направлениям продаж.
42
- * Если передан cartDirections, используется он, иначе группировка выполняется автоматически.
43
- */
44
- protected readonly itemsByDirections: import("@angular/core").Signal<ScOrderItemsByDirection[]>;
45
- /**
46
- * Позиции корзины, которые больше не предоставляются.
47
- */
48
- protected readonly nullItems: import("@angular/core").Signal<ScOrderItem[]>;
49
- /**
50
- * Выходные данные при изменении выбора позиций.
51
- */
52
- readonly selectedItemsIds: import("@angular/core").ModelSignal<string[]>;
53
- /**
54
- * Обработчик изменения выбора позиций.
55
- *
56
- * @param itemsIds Идентификаторы выбранных позиций.
57
- * @param direction Направление продаж.
58
- */
59
- protected selectedItemsHandler(itemsIds: string[], direction: ScOrderItemsByDirection): void;
60
- static ɵfac: i0.ɵɵFactoryDeclaration<ScOrderItemsListByDirectionsComponent, never>;
61
- 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; }; "useLinePrice": { "alias": "useLinePrice"; "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>;
62
- }