@snabcentr/vue-ui-lib 5.0.0 → 5.3.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 (60) hide show
  1. package/dist/manifest.json +2 -2
  2. package/dist/release_notes.tmp +2 -6
  3. package/dist/sc-vue-ui-lib.css +1 -1
  4. package/dist/sc-vue-ui-lib.js +11707 -10612
  5. package/dist/sc-vue-ui-lib.js.map +1 -1
  6. package/dist/sc-vue-ui-lib.umd.cjs +169 -169
  7. package/dist/sc-vue-ui-lib.umd.cjs.map +1 -1
  8. package/dist/src/catalog/interfaces/properties/i-catalogable-item-properties.d.ts +5 -0
  9. package/dist/src/catalog/interfaces/properties/i-product-name-properties.d.ts +5 -0
  10. package/dist/src/components/catalog/category-collapse-item.vue.d.ts +51 -17
  11. package/dist/src/components/catalog/category-collapse.vue.d.ts +28 -2
  12. package/dist/src/components/catalog/dialogs/add-product-to-cart-dialog.vue.d.ts +3 -3
  13. package/dist/src/components/catalog/dialogs/index.d.ts +1 -0
  14. package/dist/src/components/catalog/dialogs/product-info-dialog.vue.d.ts +40 -0
  15. package/dist/src/components/catalog/product-details/index.d.ts +2 -0
  16. package/dist/src/components/catalog/product-details/product-info-content.vue.d.ts +45 -0
  17. package/dist/src/components/catalog/product-details/product-info-popover.vue.d.ts +23 -0
  18. package/dist/src/components/catalog/product-details/product-name.vue.d.ts +2 -1
  19. package/dist/src/components/collapse/collapse-item.vue.d.ts +50 -7
  20. package/dist/src/components/dates/date-range/button-presets.d.ts +9 -0
  21. package/dist/src/components/dates/date-range/date-range-dialog.vue.d.ts +1 -1
  22. package/dist/src/components/dates/date-range/date-range-helper.d.ts +48 -1
  23. package/dist/src/components/dates/date-range/day-range-grid.vue.d.ts +40 -0
  24. package/dist/src/components/dates/date-range/interfaces/i-calendar-month.d.ts +18 -0
  25. package/dist/src/components/dates/date-range/interfaces/i-day-cell.d.ts +21 -0
  26. package/dist/src/components/dates/date-range/interfaces/i-range-selection.d.ts +40 -0
  27. package/dist/src/components/dates/date-range/interfaces/i-standard-period-group-options.d.ts +18 -0
  28. package/dist/src/components/dates/date-range/month-range-grid.vue.d.ts +9 -2
  29. package/dist/src/components/dates/date-range/quick-periods-settings.vue.d.ts +29 -0
  30. package/dist/src/components/dates/date-range/quick-periods.vue.d.ts +30 -0
  31. package/dist/src/components/dates/date-range/use-range-selection.d.ts +12 -0
  32. package/dist/src/components/dialog/base-dialog.vue.d.ts +1 -1
  33. package/dist/src/components/orders/index.d.ts +1 -0
  34. package/dist/src/components/orders/order-highlight-settings.vue.d.ts +31 -0
  35. package/dist/src/components/orders/orders-list.vue.d.ts +35 -1
  36. package/dist/src/components/orders/simple/index.d.ts +2 -0
  37. package/dist/src/components/orders/simple/order-color-swatch.vue.d.ts +16 -0
  38. package/dist/src/components/orders/simple/order-common-info.vue.d.ts +9 -0
  39. package/dist/src/components/orders/simple/order-status-tag.vue.d.ts +53 -0
  40. package/dist/src/components/suggestions/address/address-suggestion.vue.d.ts +1 -1
  41. package/dist/src/components/suggestions/suggestion-common-definitions.d.ts +1 -26
  42. package/dist/src/composables/index.d.ts +1 -0
  43. package/dist/src/composables/use-hover-support.d.ts +9 -0
  44. package/dist/src/enums/index.d.ts +1 -0
  45. package/dist/src/enums/order-marker-enum.d.ts +21 -0
  46. package/dist/src/helpers/index.d.ts +1 -0
  47. package/dist/src/helpers/product-info-helper.d.ts +13 -0
  48. package/dist/src/index.d.ts +1 -0
  49. package/dist/src/orders/index.d.ts +3 -1
  50. package/dist/src/orders/interfaces/i-order-highlight-settings.d.ts +15 -0
  51. package/dist/src/orders/interfaces/i-order-row-properties.d.ts +17 -0
  52. package/dist/src/orders/interfaces/i-order-status-colors.d.ts +21 -0
  53. package/dist/src/orders/interfaces/i-order-status-tag-color.d.ts +17 -0
  54. package/dist/src/orders/interfaces/index.d.ts +5 -0
  55. package/dist/src/orders/order-marker-colors.d.ts +39 -0
  56. package/dist/src/orders/order-status-colors.d.ts +42 -0
  57. package/dist/src/test/component-test-support.d.ts +46 -0
  58. package/dist/src/types/index.d.ts +1 -0
  59. package/dist/src/types/product-info-tab.d.ts +4 -0
  60. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Сетка месяцев на три года с выбором диапазона двумя кликами, протяжкой или клавиатурой.
3
3
  */
4
- declare const _default: import('vue').DefineComponent<{
4
+ declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<{
5
5
  /**
6
6
  * Начало выбранного периода.
7
7
  */
@@ -29,5 +29,12 @@ declare const _default: import('vue').DefineComponent<{
29
29
  from: Date;
30
30
  to: Date;
31
31
  }) => any) | undefined;
32
- }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
32
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>, {
33
+ actions?(_: {}): any;
34
+ }>;
33
35
  export default _default;
36
+ type __VLS_WithTemplateSlots<T, S> = T & {
37
+ new (): {
38
+ $slots: S;
39
+ };
40
+ };
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Диалог настройки набора периодов быстрого выбора.
3
+ */
4
+ declare const _default: import('vue').DefineComponent<{
5
+ /**
6
+ * Признак отображения диалога.
7
+ */
8
+ show: boolean;
9
+ /**
10
+ * Ключи стандартных периодов, показываемых в быстром выборе сейчас, — начальное состояние галочек.
11
+ */
12
+ selectedKeys: string[];
13
+ }, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
14
+ "update:show": (show: boolean) => any;
15
+ save: (keys: string[]) => any;
16
+ }, string, import('vue').PublicProps, Readonly<{
17
+ /**
18
+ * Признак отображения диалога.
19
+ */
20
+ show: boolean;
21
+ /**
22
+ * Ключи стандартных периодов, показываемых в быстром выборе сейчас, — начальное состояние галочек.
23
+ */
24
+ selectedKeys: string[];
25
+ }> & Readonly<{
26
+ "onUpdate:show"?: ((show: boolean) => any) | undefined;
27
+ onSave?: ((keys: string[]) => any) | undefined;
28
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
29
+ export default _default;
@@ -0,0 +1,30 @@
1
+ import { SelectOption } from 'naive-ui';
2
+ /**
3
+ * Быстрый выбор периода: строка кнопок выбранных стандартных периодов с настройкой набора.
4
+ */
5
+ declare const _default: import('vue').DefineComponent<{
6
+ /**
7
+ * Начало текущего периода — для подсветки совпадающего варианта.
8
+ */
9
+ from?: Date | null;
10
+ /**
11
+ * Окончание текущего периода — для подсветки совпадающего варианта.
12
+ */
13
+ to?: Date | null;
14
+ }, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
15
+ apply: (option: SelectOption) => any;
16
+ preview: (option?: SelectOption | undefined) => any;
17
+ }, string, import('vue').PublicProps, Readonly<{
18
+ /**
19
+ * Начало текущего периода — для подсветки совпадающего варианта.
20
+ */
21
+ from?: Date | null;
22
+ /**
23
+ * Окончание текущего периода — для подсветки совпадающего варианта.
24
+ */
25
+ to?: Date | null;
26
+ }> & Readonly<{
27
+ onApply?: ((option: SelectOption) => any) | undefined;
28
+ onPreview?: ((option?: SelectOption | undefined) => any) | undefined;
29
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
30
+ export default _default;
@@ -0,0 +1,12 @@
1
+ import { Ref } from 'vue';
2
+ import { IRangeSelection } from './interfaces/i-range-selection';
3
+ /**
4
+ * Выбор диапазона ячеек сетки по сквозным индексам: парой кликов «первый / второй», протяжкой
5
+ * или с клавиатуры. Первый клик фиксирует якорь и отдаёт черновой диапазон из одной ячейки,
6
+ * второй — завершает диапазон; отпускание указателя слушается на window, чтобы отпускание
7
+ * вне сетки не подвешивало выбор.
8
+ *
9
+ * @param selectedRange Диапазон из значения периода — подсвечивается, пока нет незавершённого выбора.
10
+ * @param complete Обработчик завершённого выбора; получает упорядоченные индексы границ.
11
+ */
12
+ export declare const useRangeSelection: (selectedRange: Ref<[number, number] | null>, complete: (start: number, end: number) => void) => IRangeSelection;
@@ -131,7 +131,6 @@ declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<{
131
131
  onClosing?: ((target: CloseTarget, cancel: () => void) => any) | undefined;
132
132
  }>, {
133
133
  trapFocus: boolean;
134
- modalWidth: number;
135
134
  sizes: {
136
135
  /**
137
136
  * Параметры мобильного представления.
@@ -146,6 +145,7 @@ declare const _default: __VLS_WithTemplateSlots<import('vue').DefineComponent<{
146
145
  */
147
146
  default: IDialogSizeParams;
148
147
  };
148
+ modalWidth: number;
149
149
  processing: boolean;
150
150
  valid: boolean;
151
151
  acceptButton: IDialogButtonsParams;
@@ -1,5 +1,6 @@
1
1
  export * from './simple';
2
2
  export * from './blocks';
3
3
  export { default as ScOrdersList } from './orders-list.vue';
4
+ export { default as ScOrderHighlightSettings } from './order-highlight-settings.vue';
4
5
  export { default as ScOrderInfo } from './order-info.vue';
5
6
  export { default as ScShortTextOrderInfo } from './short-text-order-info.vue';
@@ -0,0 +1,31 @@
1
+ import { IOrderHighlightSettings } from '../../orders/interfaces/i-order-highlight-settings';
2
+ import { IOrderStatus } from '@snabcentr/common-lib';
3
+ /**
4
+ * Компонент настройки выделения заказов цветом.
5
+ */
6
+ declare const _default: import('vue').DefineComponent<{
7
+ /**
8
+ * Текущие настройки выделения.
9
+ */
10
+ settings: IOrderHighlightSettings;
11
+ /**
12
+ * Список статусов заказа для настройки. По умолчанию - справочник статусов.
13
+ */
14
+ statuses?: IOrderStatus[];
15
+ }, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
16
+ "update:settings": (value: IOrderHighlightSettings) => any;
17
+ }, string, import('vue').PublicProps, Readonly<{
18
+ /**
19
+ * Текущие настройки выделения.
20
+ */
21
+ settings: IOrderHighlightSettings;
22
+ /**
23
+ * Список статусов заказа для настройки. По умолчанию - справочник статусов.
24
+ */
25
+ statuses?: IOrderStatus[];
26
+ }> & Readonly<{
27
+ "onUpdate:settings"?: ((value: IOrderHighlightSettings) => any) | undefined;
28
+ }>, {
29
+ statuses: IOrderStatus[];
30
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
31
+ export default _default;
@@ -1,5 +1,6 @@
1
1
  import { IFilterGroup, IOrderInfo, IPagination, ISortRequestParams } from '@snabcentr/common-lib';
2
2
  import { IOrdersTableFields } from '../../properties/interfaces/i-orders-table-fields';
3
+ import { IOrderHighlightSettings } from '../../orders/interfaces/i-order-highlight-settings';
3
4
  /**
4
5
  * Компонент представления списка заказов.
5
6
  */
@@ -28,8 +29,15 @@ declare const _default: import('vue').DefineComponent<{
28
29
  pagination?: IPagination;
29
30
  /**
30
31
  * Признак, определяющий, использовать ли индикацию в стилях ячеек таблицы заказов.
32
+ * Без `highlightSettings` включает выделение всех маркеров заказа (статусы не выделяются).
31
33
  */
32
34
  useCellIndication?: boolean;
35
+ /**
36
+ * Настройки выделения заказов цветом: какие статусы и маркеры подсвечивать.
37
+ * Цвета берутся из единой палитры (`getOrderStatusColors`, `getOrderMarkerColors`).
38
+ * При наличии настроек `useCellIndication` не учитывается.
39
+ */
40
+ highlightSettings?: IOrderHighlightSettings;
33
41
  /**
34
42
  * Признак, определяющий, включена ли сортировка по заголовкам столбцов таблицы.
35
43
  */
@@ -53,7 +61,25 @@ declare const _default: import('vue').DefineComponent<{
53
61
  * выбора не отображается (например, заказ с информацией об оплате). По умолчанию выбор доступен.
54
62
  */
55
63
  isRowSelectable?: (row: IOrderInfo) => boolean;
56
- }, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
64
+ }, {
65
+ /**
66
+ * Перезагружает список заказов с индикатором загрузки, сохраняя текущие фильтры, сортировку и страницу
67
+ * (например, когда виджет счётчиков сообщил об изменении количества заказов).
68
+ */
69
+ reload: () => void;
70
+ /**
71
+ * Проверяет в фоне, изменился ли список; при изменениях откладывает новую страницу до `applyPendingUpdate`.
72
+ */
73
+ checkForUpdates: () => Promise<boolean>;
74
+ /**
75
+ * Применяет отложенное обновление списка.
76
+ */
77
+ applyPendingUpdate: () => boolean;
78
+ /**
79
+ * Отбрасывает отложенное обновление списка.
80
+ */
81
+ discardPendingUpdate: () => void;
82
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
57
83
  "update:checkedRowKeys": (value: (string | number)[]) => any;
58
84
  } & {
59
85
  "click:client-name": (client: import('@snabcentr/common-lib').IClientShortInfo, event: any) => any;
@@ -85,8 +111,15 @@ declare const _default: import('vue').DefineComponent<{
85
111
  pagination?: IPagination;
86
112
  /**
87
113
  * Признак, определяющий, использовать ли индикацию в стилях ячеек таблицы заказов.
114
+ * Без `highlightSettings` включает выделение всех маркеров заказа (статусы не выделяются).
88
115
  */
89
116
  useCellIndication?: boolean;
117
+ /**
118
+ * Настройки выделения заказов цветом: какие статусы и маркеры подсвечивать.
119
+ * Цвета берутся из единой палитры (`getOrderStatusColors`, `getOrderMarkerColors`).
120
+ * При наличии настроек `useCellIndication` не учитывается.
121
+ */
122
+ highlightSettings?: IOrderHighlightSettings;
90
123
  /**
91
124
  * Признак, определяющий, включена ли сортировка по заголовкам столбцов таблицы.
92
125
  */
@@ -120,6 +153,7 @@ declare const _default: import('vue').DefineComponent<{
120
153
  sort: ISortRequestParams[];
121
154
  filters: IFilterGroup;
122
155
  showAttachedUserColumn: boolean;
156
+ highlightSettings: IOrderHighlightSettings;
123
157
  selectable: boolean;
124
158
  tableMinWidth: number;
125
159
  pagination: IPagination;
@@ -4,3 +4,5 @@ export { default as ScOrderDeliveryLabel } from './order-delivery-label.vue';
4
4
  export { default as ScOrderPayment } from './order-payment.vue';
5
5
  export { default as ScOrderProductInfo } from './order-product-info.vue';
6
6
  export { default as ScCreatorUserTypeTag } from './creator-user-type-tag.vue';
7
+ export { default as ScOrderStatusTag } from './order-status-tag.vue';
8
+ export { default as ScOrderColorSwatch } from './order-color-swatch.vue';
@@ -0,0 +1,16 @@
1
+ import { IOrderStatusColors } from '../../../orders/interfaces/i-order-status-colors';
2
+ /**
3
+ * Компонент цветной плашки-образца статуса или маркера заказа.
4
+ */
5
+ declare const _default: import('vue').DefineComponent<{
6
+ /**
7
+ * Цвета статуса или маркера заказа.
8
+ */
9
+ colors: IOrderStatusColors;
10
+ }, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{
11
+ /**
12
+ * Цвета статуса или маркера заказа.
13
+ */
14
+ colors: IOrderStatusColors;
15
+ }> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLSpanElement>;
16
+ export default _default;
@@ -1,5 +1,6 @@
1
1
  import { IOrderInfoProperty } from '../../../properties/interfaces/i-order-info-property';
2
2
  import { IOrdersTableFields } from '../../../properties/interfaces/i-orders-table-fields';
3
+ import { IOrderHighlightSettings } from '../../../orders/interfaces/i-order-highlight-settings';
3
4
  /**
4
5
  * Компонент общего представления данных о заказе.
5
6
  */
@@ -8,10 +9,18 @@ declare const _default: import('vue').DefineComponent<IOrderInfoProperty & IOrde
8
9
  * URL страницы заказов. В качестве указания идентификатора заказа необходимо использовать значение `:id`.
9
10
  */
10
11
  orderUrl: string;
12
+ /**
13
+ * Настройки выделения: какие статусы и маркеры подсвечивать цветом из единой палитры.
14
+ */
15
+ highlightSettings?: IOrderHighlightSettings;
11
16
  }, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<IOrderInfoProperty & IOrdersTableFields & {
12
17
  /**
13
18
  * URL страницы заказов. В качестве указания идентификатора заказа необходимо использовать значение `:id`.
14
19
  */
15
20
  orderUrl: string;
21
+ /**
22
+ * Настройки выделения: какие статусы и маркеры подсвечивать цветом из единой палитры.
23
+ */
24
+ highlightSettings?: IOrderHighlightSettings;
16
25
  }> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
17
26
  export default _default;
@@ -0,0 +1,53 @@
1
+ import { IReference } from '@snabcentr/common-lib';
2
+ /**
3
+ * Компонент отображения статуса заказа в едином цветовом оформлении.
4
+ */
5
+ declare const _default: import('vue').DefineComponent<{
6
+ /**
7
+ * Статус заказа.
8
+ */
9
+ status: IReference;
10
+ /**
11
+ * Детализирующий статус (подстатус) заказа. При наличии выводится в скобках после статуса.
12
+ */
13
+ statusDetail?: IReference | null;
14
+ /**
15
+ * Вариант оформления: `filled` - тег с мягкой заливкой, `text` - только цветной текст.
16
+ */
17
+ variant?: "filled" | "text";
18
+ /**
19
+ * Размер тега (для варианта `filled`).
20
+ */
21
+ size?: "small" | "medium" | "large";
22
+ /**
23
+ * Признак отображения цветной точки перед названием статуса.
24
+ */
25
+ showDot?: boolean;
26
+ }, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{
27
+ /**
28
+ * Статус заказа.
29
+ */
30
+ status: IReference;
31
+ /**
32
+ * Детализирующий статус (подстатус) заказа. При наличии выводится в скобках после статуса.
33
+ */
34
+ statusDetail?: IReference | null;
35
+ /**
36
+ * Вариант оформления: `filled` - тег с мягкой заливкой, `text` - только цветной текст.
37
+ */
38
+ variant?: "filled" | "text";
39
+ /**
40
+ * Размер тега (для варианта `filled`).
41
+ */
42
+ size?: "small" | "medium" | "large";
43
+ /**
44
+ * Признак отображения цветной точки перед названием статуса.
45
+ */
46
+ showDot?: boolean;
47
+ }> & Readonly<{}>, {
48
+ size: "small" | "medium" | "large";
49
+ variant: "filled" | "text";
50
+ statusDetail: IReference | null;
51
+ showDot: boolean;
52
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
53
+ export default _default;
@@ -1,7 +1,7 @@
1
1
  import { IAddressSuggestion } from '@snabcentr/common-lib';
2
+ import { IConsistentMenuWidth } from '../../../properties';
2
3
  import { SearchDataHandlerType } from '../../../properties/types/search-data-handler-type';
3
4
  import { IMinTermLength } from '../../../properties/interfaces/i-min-term-length';
4
- import { IConsistentMenuWidth } from '../../../properties';
5
5
  /**
6
6
  * Компонент подсказки данных об адресе.
7
7
  */
@@ -1,7 +1,6 @@
1
1
  import { IUpdateValue } from '../../emits';
2
- import { IClearableValue, IConsistentMenuWidth } from '../../properties';
2
+ import { IClearableValue } from '../../properties';
3
3
  import { IDisabled } from '../../properties/interfaces/i-disabled';
4
- import { HTMLAttributes } from 'vue';
5
4
  /**
6
5
  * Тип списка свойств.
7
6
  */
@@ -11,10 +10,6 @@ export type IProperties = IDisabled & IClearableValue<string | undefined> & {
11
10
  */
12
11
  field?: string;
13
12
  };
14
- /**
15
- * Тип списка свойств компонентов подсказок с автозавершением.
16
- */
17
- export type ISuggestionProperties = IProperties & IConsistentMenuWidth;
18
13
  /**
19
14
  * Значения свойств по умолчанию.
20
15
  */
@@ -24,26 +19,6 @@ export declare const propertyDefaults: {
24
19
  field: undefined;
25
20
  disabled: boolean;
26
21
  };
27
- /**
28
- * Значения свойств по умолчанию для компонентов подсказок с автозавершением.
29
- */
30
- export declare const suggestionPropertyDefaults: {
31
- wrapContent: boolean;
32
- clearable: boolean;
33
- value: string;
34
- field: undefined;
35
- disabled: boolean;
36
- };
37
- /**
38
- * Класс меню подсказок с переносом текста опций.
39
- */
40
- export declare const SUGGESTION_MENU_WRAP_CLASS = "consistent-menu-width";
41
- /**
42
- * Формирует свойства выпадающего меню подсказок автозавершения.
43
- *
44
- * @param wrapContent Признак переноса текста в опциях меню.
45
- */
46
- export declare function getSuggestionMenuProperties(wrapContent?: boolean): HTMLAttributes | undefined;
47
22
  /**
48
23
  * Список событий.
49
24
  */
@@ -0,0 +1 @@
1
+ export * from './use-hover-support';
@@ -0,0 +1,9 @@
1
+ import { Ref } from 'vue';
2
+ /**
3
+ * Возвращает реактивный признак того, что устройство поддерживает наведение указателя.
4
+ *
5
+ * Нужен для элементов, которые показываются по наведению (подсказки, всплывающие блоки): на сенсорных устройствах
6
+ * браузеры эмулируют наведение по касанию, из-за чего такой элемент остаётся на экране после нажатия и перекрывает
7
+ * содержимое.
8
+ */
9
+ export declare const useHoverSupport: () => Readonly<Ref<boolean>>;
@@ -1,2 +1,3 @@
1
+ export * from './order-marker-enum';
1
2
  export * from './orders-table-fields';
2
3
  export * from './window-resolution-enum';
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Перечисление маркеров заказа, которые выделяются цветом в таблице заказов помимо статуса.
3
+ */
4
+ export declare enum OrderMarkerEnum {
5
+ /**
6
+ * Заказ с товарами, которых нет в наличии.
7
+ */
8
+ NotInStock = "not_in_stock",
9
+ /**
10
+ * Заказ с товарами «под заказ».
11
+ */
12
+ OnOrder = "on_order",
13
+ /**
14
+ * Крупный заказ.
15
+ */
16
+ LargeOrder = "large_order",
17
+ /**
18
+ * Доставка на завтра.
19
+ */
20
+ NextDayDelivery = "next_day_delivery"
21
+ }
@@ -4,3 +4,4 @@ export * from './entity-name-helper';
4
4
  export * from './input-helper';
5
5
  export * from './select-option-helper';
6
6
  export * from './validators';
7
+ export * from './product-info-helper';
@@ -0,0 +1,13 @@
1
+ import { ICatalogItemPropertyFile, ProductData } from '@snabcentr/common-lib';
2
+ /**
3
+ * Возвращает список файлов продукта.
4
+ *
5
+ * @param product Данные о продукте.
6
+ */
7
+ export declare const getProductInfoFiles: (product: ProductData) => ICatalogItemPropertyFile[];
8
+ /**
9
+ * Проверяет, есть ли у продукта данные, которые видит клиент: описание, характеристики или файлы.
10
+ *
11
+ * @param product Данные о продукте.
12
+ */
13
+ export declare const hasProductInfo: (product: ProductData) => boolean;
@@ -4,6 +4,7 @@ export * from './orders';
4
4
  export * from './emits';
5
5
  export * from './enums';
6
6
  export * from './properties';
7
+ export * from './composables';
7
8
  export * from './helpers';
8
9
  export * from './components';
9
10
  export * from './configs';
@@ -1 +1,3 @@
1
- export * from './interfaces/events';
1
+ export * from './interfaces';
2
+ export * from './order-marker-colors';
3
+ export * from './order-status-colors';
@@ -0,0 +1,15 @@
1
+ import { OrderMarkerEnum } from '../../enums/order-marker-enum';
2
+ /**
3
+ * Настройки выделения заказов цветом в таблице заказов: какие статусы и маркеры подсвечивать.
4
+ * Сами цвета не настраиваются и берутся из единой палитры.
5
+ */
6
+ export interface IOrderHighlightSettings {
7
+ /**
8
+ * Слаги статусов заказа, которые выделяются цветом.
9
+ */
10
+ statuses: string[];
11
+ /**
12
+ * Маркеры заказа, которые выделяются цветом.
13
+ */
14
+ markers: OrderMarkerEnum[];
15
+ }
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Атрибуты строки таблицы заказов: классы индикации и CSS-переменные с цветами статуса.
3
+ */
4
+ export interface IOrderRowProperties {
5
+ /**
6
+ * CSS-классы строки.
7
+ */
8
+ class?: string;
9
+ /**
10
+ * Инлайновые стили строки (CSS-переменные цветов статуса при выделении статусов).
11
+ */
12
+ style?: Record<string, string>;
13
+ /**
14
+ * Обработчик двойного клика по строке.
15
+ */
16
+ onDblclick?: () => void;
17
+ }
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Набор цветов статуса заказа для разных вариантов отображения.
3
+ *
4
+ * Все три цвета принадлежат одному оттенку, поэтому статус узнаётся одинаково
5
+ * и там, где цвет выражен только текстом (таймлайн, мобильная строка),
6
+ * и там, где он выражен заливкой (ячейка таблицы, тег).
7
+ */
8
+ export interface IOrderStatusColors {
9
+ /**
10
+ * Основной насыщенный цвет статуса: текст на светлом фоне, точка таймлайна, рамка.
11
+ */
12
+ color: string;
13
+ /**
14
+ * Цвет мягкой заливки: фон ячейки таблицы или тега.
15
+ */
16
+ backgroundColor: string;
17
+ /**
18
+ * Цвет текста поверх мягкой заливки.
19
+ */
20
+ textOnBackgroundColor: string;
21
+ }
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Цвета статуса заказа в формате свойства `color` компонента `n-tag` NaiveUI.
3
+ */
4
+ export interface IOrderStatusTagColor {
5
+ /**
6
+ * Цвет заливки тега.
7
+ */
8
+ color: string;
9
+ /**
10
+ * Цвет текста тега.
11
+ */
12
+ textColor: string;
13
+ /**
14
+ * Цвет рамки тега.
15
+ */
16
+ borderColor: string;
17
+ }
@@ -0,0 +1,5 @@
1
+ export * from './events';
2
+ export * from './i-order-highlight-settings';
3
+ export * from './i-order-row-properties';
4
+ export * from './i-order-status-colors';
5
+ export * from './i-order-status-tag-color';
@@ -0,0 +1,39 @@
1
+ import { OrderMarkerEnum } from '../enums/order-marker-enum';
2
+ import { IOrderStatusColors } from './interfaces/i-order-status-colors';
3
+ import { IOrderInfo } from '@snabcentr/common-lib';
4
+ /**
5
+ * Единый источник правды для цветов маркеров заказа (помимо статуса).
6
+ *
7
+ * Цвета сохранены прежними, чтобы сотрудники продолжали узнавать «жёлтенькие» и «красные» заказы:
8
+ * «нет в наличии» и «под заказ» - жёлтая заливка с красным текстом, крупный заказ и доставка на завтра - красная заливка с белым текстом.
9
+ */
10
+ export declare const ORDER_MARKER_COLORS: ReadonlyMap<OrderMarkerEnum, IOrderStatusColors>;
11
+ /**
12
+ * Названия маркеров заказа для отображения пользователю.
13
+ */
14
+ export declare const ORDER_MARKER_NAMES: ReadonlyMap<OrderMarkerEnum, string>;
15
+ /**
16
+ * Список всех маркеров заказа в порядке отображения.
17
+ */
18
+ export declare const ALL_ORDER_MARKERS: readonly OrderMarkerEnum[];
19
+ /**
20
+ * Возвращает набор цветов маркера заказа.
21
+ *
22
+ * @param marker Маркер заказа.
23
+ * @returns Цвета маркера.
24
+ */
25
+ export declare const getOrderMarkerColors: (marker: OrderMarkerEnum) => IOrderStatusColors;
26
+ /**
27
+ * Возвращает название маркера заказа.
28
+ *
29
+ * @param marker Маркер заказа.
30
+ * @returns Название маркера.
31
+ */
32
+ export declare const getOrderMarkerName: (marker: OrderMarkerEnum) => string;
33
+ /**
34
+ * Определяет, какие маркеры есть у заказа.
35
+ *
36
+ * @param order Данные заказа.
37
+ * @returns Список маркеров заказа.
38
+ */
39
+ export declare const getOrderMarkers: (order: IOrderInfo) => OrderMarkerEnum[];
@@ -0,0 +1,42 @@
1
+ import { IOrderStatusColors } from './interfaces/i-order-status-colors';
2
+ import { IOrderStatusTagColor } from './interfaces/i-order-status-tag-color';
3
+ import { OrderStatusEnum } from '@snabcentr/common-lib';
4
+ /**
5
+ * Слаг статуса заказа: значение перечисления или произвольная строка (например, из данных API), может отсутствовать.
6
+ */
7
+ export type OrderStatusSlugType = OrderStatusEnum | string | null | undefined;
8
+ /**
9
+ * Цвета статуса заказа, слаг которого неизвестен или отсутствует (нейтральный серый).
10
+ */
11
+ export declare const DEFAULT_ORDER_STATUS_COLORS: IOrderStatusColors;
12
+ /**
13
+ * Единый источник правды для цветов статусов заказа.
14
+ *
15
+ * Используется таблицей заказов, тегом статуса на странице заказа, таймлайном истории статусов
16
+ * и мобильным представлением строки заказа. Цвета согласованы с постановкой: «ожидает поставки» - жёлтый,
17
+ * «принят в работу» - оранжевый, «выставлен счёт» - синий; остальные подобраны так, чтобы не пересекаться
18
+ * по оттенку. Оттенки взяты из палитры Tailwind (заливка 200, текст 700/800).
19
+ */
20
+ export declare const ORDER_STATUS_COLORS: ReadonlyMap<OrderStatusEnum, IOrderStatusColors>;
21
+ /**
22
+ * Возвращает набор цветов для статуса заказа по его слагу.
23
+ *
24
+ * @param slug Слаг статуса заказа.
25
+ * @returns Цвета статуса; для неизвестного или пустого слага - {@link DEFAULT_ORDER_STATUS_COLORS}.
26
+ */
27
+ export declare const getOrderStatusColors: (slug?: OrderStatusSlugType) => IOrderStatusColors;
28
+ /**
29
+ * Возвращает цвета статуса заказа в формате свойства `color` компонента `n-tag` NaiveUI.
30
+ *
31
+ * @param slug Слаг статуса заказа.
32
+ * @returns Цвет заливки, текста и рамки тега.
33
+ */
34
+ export declare const getOrderStatusTagColor: (slug?: OrderStatusSlugType) => IOrderStatusTagColor;
35
+ /**
36
+ * Возвращает цвета статуса заказа в виде CSS-переменных для инлайновых стилей элемента.
37
+ * Переменные: `--sc-order-status-color`, `--sc-order-status-bg`, `--sc-order-status-text`.
38
+ *
39
+ * @param slug Слаг статуса заказа.
40
+ * @returns Объект стилей с CSS-переменными.
41
+ */
42
+ export declare const getOrderStatusCssVariables: (slug?: OrderStatusSlugType) => Record<string, string>;