@snabcentr/vue-ui-lib 4.22.6 → 4.23.0

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.
@@ -5,7 +5,7 @@ export interface IProductCostProperties {
5
5
  /**
6
6
  * Данные о продукте.
7
7
  */
8
- product: ProductData | OrderItemBase;
8
+ product: ProductData | OrderItemBase<undefined, string | number>;
9
9
  /**
10
10
  * Дополнительное поле которое необходимо отобразить вместе с ценой в виде зачёркнутого текста.
11
11
  */
@@ -1,4 +1,7 @@
1
- import { IOrderItem } from '@snabcentr/common-lib';
1
+ import { OrderItem } from '@snabcentr/common-lib';
2
+ import { DataTableColumn } from 'naive-ui';
3
+ import { IOrderItemsGroup } from '../../../orders/interfaces/i-order-items-group';
4
+ import { IOrderItemsListItem } from '../../../orders/types/order-items-list-item-type';
2
5
  import { IOrderEmits } from '../../../orders/interfaces/events/i-order-emits';
3
6
  import { Emitter } from 'mitt';
4
7
  /**
@@ -10,7 +13,7 @@ declare const _default: import('vue').DefineComponent<{
10
13
  /**
11
14
  * Список позиций.
12
15
  */
13
- products: Array<IOrderItem>;
16
+ products: Array<IOrderItemsListItem>;
14
17
  /**
15
18
  * Максимальная высота таблицы.
16
19
  */
@@ -27,6 +30,33 @@ declare const _default: import('vue').DefineComponent<{
27
30
  * Признак возможности выбора позиций чекбоксами (для частичного оформления заказа).
28
31
  */
29
32
  selectable?: boolean;
33
+ /**
34
+ * Заголовок над списком позиций. Пустая строка скрывает заголовок.
35
+ */
36
+ title?: string;
37
+ /**
38
+ * Группы позиций. Если переданы, позиции отображаются по группам, каждая со своим
39
+ * заголовком и таблицей, а свойство `products` используется только для общих расчётов.
40
+ */
41
+ groups?: Array<IOrderItemsGroup>;
42
+ /**
43
+ * Дополнительные столбцы таблицы, добавляются после столбца стоимости.
44
+ * На узких экранах таблица показывает позицию одной ячейкой, и такие столбцы не отображаются.
45
+ */
46
+ extraColumns?: Array<DataTableColumn<OrderItem<undefined, string | number>>>;
47
+ /**
48
+ * Возвращает признак неактивной позиции: такая позиция приглушается и зачёркивается.
49
+ */
50
+ isItemInactive?: (item: IOrderItemsListItem) => boolean;
51
+ /**
52
+ * Возвращает признак доступности позиции для выбора чекбоксом.
53
+ */
54
+ isItemSelectable?: (item: IOrderItemsListItem) => boolean;
55
+ /**
56
+ * Признак отправки количества по мере ввода. Если выключен, количество отправляется
57
+ * по завершении ввода, и на каждый введённый символ запрос не уходит.
58
+ */
59
+ updateQuantityOnInput?: boolean;
30
60
  }, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
31
61
  "update:selectedRowKeys": (value: (string | number)[]) => any;
32
62
  }, string, import('vue').PublicProps, Readonly<{
@@ -35,7 +65,7 @@ declare const _default: import('vue').DefineComponent<{
35
65
  /**
36
66
  * Список позиций.
37
67
  */
38
- products: Array<IOrderItem>;
68
+ products: Array<IOrderItemsListItem>;
39
69
  /**
40
70
  * Максимальная высота таблицы.
41
71
  */
@@ -52,12 +82,45 @@ declare const _default: import('vue').DefineComponent<{
52
82
  * Признак возможности выбора позиций чекбоксами (для частичного оформления заказа).
53
83
  */
54
84
  selectable?: boolean;
85
+ /**
86
+ * Заголовок над списком позиций. Пустая строка скрывает заголовок.
87
+ */
88
+ title?: string;
89
+ /**
90
+ * Группы позиций. Если переданы, позиции отображаются по группам, каждая со своим
91
+ * заголовком и таблицей, а свойство `products` используется только для общих расчётов.
92
+ */
93
+ groups?: Array<IOrderItemsGroup>;
94
+ /**
95
+ * Дополнительные столбцы таблицы, добавляются после столбца стоимости.
96
+ * На узких экранах таблица показывает позицию одной ячейкой, и такие столбцы не отображаются.
97
+ */
98
+ extraColumns?: Array<DataTableColumn<OrderItem<undefined, string | number>>>;
99
+ /**
100
+ * Возвращает признак неактивной позиции: такая позиция приглушается и зачёркивается.
101
+ */
102
+ isItemInactive?: (item: IOrderItemsListItem) => boolean;
103
+ /**
104
+ * Возвращает признак доступности позиции для выбора чекбоксом.
105
+ */
106
+ isItemSelectable?: (item: IOrderItemsListItem) => boolean;
107
+ /**
108
+ * Признак отправки количества по мере ввода. Если выключен, количество отправляется
109
+ * по завершении ввода, и на каждый введённый символ запрос не уходит.
110
+ */
111
+ updateQuantityOnInput?: boolean;
55
112
  }> & Readonly<{
56
113
  "onUpdate:selectedRowKeys"?: ((value: (string | number)[]) => any) | undefined;
57
114
  }>, {
115
+ title: string;
58
116
  eventEmitter: Emitter<IOrderEmits>;
59
117
  maxHeight: number;
118
+ groups: Array<IOrderItemsGroup>;
60
119
  allowEdit: boolean;
120
+ updateQuantityOnInput: boolean;
61
121
  selectable: boolean;
122
+ extraColumns: Array<DataTableColumn<OrderItem<undefined, string | number>>>;
123
+ isItemInactive: (item: IOrderItemsListItem) => boolean;
124
+ isItemSelectable: (item: IOrderItemsListItem) => boolean;
62
125
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
63
126
  export default _default;
@@ -6,11 +6,11 @@ declare const _default: import('vue').DefineComponent<{
6
6
  /**
7
7
  * Данные о позиции заказа.
8
8
  */
9
- item: OrderItem;
9
+ item: OrderItem<undefined, string | number>;
10
10
  }, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{
11
11
  /**
12
12
  * Данные о позиции заказа.
13
13
  */
14
- item: OrderItem;
14
+ item: OrderItem<undefined, string | number>;
15
15
  }> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
16
16
  export default _default;
@@ -8,7 +8,7 @@ declare const _default: import('vue').DefineComponent<{
8
8
  /**
9
9
  * Данные о позиции заказа.
10
10
  */
11
- item: IOrderItemBase;
11
+ item: IOrderItemBase<undefined, string | number>;
12
12
  /**
13
13
  * Механизм, обеспечивающий генерацию событий заказа.
14
14
  */
@@ -17,11 +17,16 @@ declare const _default: import('vue').DefineComponent<{
17
17
  * Признак возможности редактирования параметров позиции заказа.
18
18
  */
19
19
  allowEdit?: boolean;
20
+ /**
21
+ * Признак отправки количества по мере ввода. Если выключен, количество отправляется
22
+ * по завершении ввода (потеря фокуса или Enter), и на каждый введённый символ запрос не уходит.
23
+ */
24
+ updateQuantityOnInput?: boolean;
20
25
  }, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{
21
26
  /**
22
27
  * Данные о позиции заказа.
23
28
  */
24
- item: IOrderItemBase;
29
+ item: IOrderItemBase<undefined, string | number>;
25
30
  /**
26
31
  * Механизм, обеспечивающий генерацию событий заказа.
27
32
  */
@@ -30,8 +35,14 @@ declare const _default: import('vue').DefineComponent<{
30
35
  * Признак возможности редактирования параметров позиции заказа.
31
36
  */
32
37
  allowEdit?: boolean;
38
+ /**
39
+ * Признак отправки количества по мере ввода. Если выключен, количество отправляется
40
+ * по завершении ввода (потеря фокуса или Enter), и на каждый введённый символ запрос не уходит.
41
+ */
42
+ updateQuantityOnInput?: boolean;
33
43
  }> & Readonly<{}>, {
34
44
  eventEmitter: Emitter<IOrderEmits>;
35
45
  allowEdit: boolean;
46
+ updateQuantityOnInput: boolean;
36
47
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
37
48
  export default _default;
@@ -6,7 +6,7 @@ declare const _default: import('vue').DefineComponent<{
6
6
  /**
7
7
  * Данные о продукте в заказе.
8
8
  */
9
- product: OrderItemBase;
9
+ product: OrderItemBase<undefined, string | number>;
10
10
  /**
11
11
  * Номер позиции в списке.
12
12
  */
@@ -15,7 +15,7 @@ declare const _default: import('vue').DefineComponent<{
15
15
  /**
16
16
  * Данные о продукте в заказе.
17
17
  */
18
- product: OrderItemBase;
18
+ product: OrderItemBase<undefined, string | number>;
19
19
  /**
20
20
  * Номер позиции в списке.
21
21
  */
@@ -1,3 +1,4 @@
1
1
  export * from './interfaces';
2
+ export * from './types';
2
3
  export * from './order-marker-colors';
3
4
  export * from './order-status-colors';
@@ -0,0 +1,22 @@
1
+ import { IOrderItemsListItem } from '../types/order-items-list-item-type';
2
+ /**
3
+ * Группа позиций заказа: позиции, объединённые общим заголовком (например, разделом исходного файла).
4
+ */
5
+ export interface IOrderItemsGroup {
6
+ /**
7
+ * Название группы, отображается заголовком над таблицей позиций.
8
+ */
9
+ name: string;
10
+ /**
11
+ * Позиции, входящие в группу.
12
+ */
13
+ items: IOrderItemsListItem[];
14
+ /**
15
+ * Подпись рядом с названием группы (например, количество позиций).
16
+ */
17
+ description?: string;
18
+ /**
19
+ * Подпись в правой части заголовка группы (например, стоимость позиций группы).
20
+ */
21
+ summary?: string;
22
+ }
@@ -1,5 +1,6 @@
1
1
  export * from './events';
2
2
  export * from './i-order-highlight-settings';
3
+ export * from './i-order-items-group';
3
4
  export * from './i-order-row-properties';
4
5
  export * from './i-order-status-colors';
5
6
  export * from './i-order-status-tag-color';
@@ -0,0 +1 @@
1
+ export * from './order-items-list-item-type';
@@ -0,0 +1,7 @@
1
+ import { IOrderItem } from '@snabcentr/common-lib';
2
+ /**
3
+ * Позиция, отображаемая в списке позиций: позиция заказа или заказа-черновика.
4
+ *
5
+ * У позиции заказа-черновика идентификатор строковый, поэтому тип идентификатора расширен.
6
+ */
7
+ export type IOrderItemsListItem = IOrderItem<undefined, string | number>;
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "keywords": [],
5
5
  "author": "Sergey S. Smirnov <dev@snabcentr.com>",
6
6
  "type": "module",
7
- "version": "4.22.6",
7
+ "version": "4.23.0",
8
8
  "license": "ISC",
9
9
  "scripts": {
10
10
  "dev": "vite",