@mobilon-dev/chotto 0.3.75 → 0.3.77
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/dist/chotto.css +1 -1
- package/dist/components/2_blocks/CommunicationPanel/CommunicationPanel.vue.js +344 -295
- package/dist/components/2_blocks/CommunicationPanel/CommunicationPanelAttributeIndicator.vue.js +88 -0
- package/dist/components/2_blocks/CommunicationPanel/composables/useCommunicationActions.js +65 -32
- package/dist/components/2_blocks/CommunicationPanel/composables/useCommunicationAttributes.js +84 -28
- package/dist/components/2_blocks/CommunicationPanel/composables/useCommunicationChannels.js +8 -7
- package/dist/components/2_blocks/CommunicationPanel/composables/useCommunicationMenu.js +16 -21
- package/dist/components/2_blocks/CommunicationPanel/composables/useCommunicationSubMenu.js +10 -9
- package/dist/components/2_blocks/CommunicationPanel/icons/CommunicationPanelCheckIcon.vue.js +1 -1
- package/dist/components/2_blocks/CommunicationPanel/icons/CommunicationPanelConfirmSpinner.vue2.js +15 -0
- package/dist/hooks/validators/chats/chatValidator.js +13 -9
- package/dist/themes/dark.css +1 -1
- package/dist/themes/default.css +1 -1
- package/dist/themes/glass.css +1 -1
- package/dist/themes/green.css +1 -1
- package/dist/themes/mobilon1.css +1 -1
- package/dist/types/apps/data/chats.d.ts +10 -0
- package/dist/types/components/2_blocks/CommunicationPanel/CommunicationPanel.vue.d.ts +7 -1
- package/dist/types/components/2_blocks/CommunicationPanel/CommunicationPanelAttributeIndicator.vue.d.ts +15 -0
- package/dist/types/components/2_blocks/CommunicationPanel/composables/useCommunicationActions.d.ts +5 -2
- package/dist/types/components/2_blocks/CommunicationPanel/composables/useCommunicationAttributes.d.ts +41 -0
- package/dist/types/components/2_blocks/CommunicationPanel/composables/useCommunicationMenu.d.ts +2 -7
- package/dist/types/components/2_blocks/CommunicationPanel/composables/useCommunicationSubMenu.d.ts +2 -1
- package/dist/types/components/2_blocks/CommunicationPanel/icons/CommunicationPanelConfirmSpinner.vue.d.ts +2 -0
- package/dist/types/components/2_blocks/CommunicationPanel/icons/index.d.ts +1 -0
- package/dist/types/components/2_blocks/CommunicationPanel/stories/CommunicationPanel.stories.d.ts +7 -1
- package/dist/types/components/2_blocks/CommunicationPanel/styles/types.d.ts +30 -0
- package/dist/types/hooks/validators/chats/types.d.ts +2 -0
- package/package.json +1 -1
|
@@ -60,6 +60,7 @@ export declare const chats: ({
|
|
|
60
60
|
type: string;
|
|
61
61
|
data: string;
|
|
62
62
|
value: string;
|
|
63
|
+
status: string;
|
|
63
64
|
} | {
|
|
64
65
|
id: string;
|
|
65
66
|
type: string;
|
|
@@ -69,6 +70,7 @@ export declare const chats: ({
|
|
|
69
70
|
phone: string;
|
|
70
71
|
};
|
|
71
72
|
value: string;
|
|
73
|
+
status: string;
|
|
72
74
|
})[];
|
|
73
75
|
tags: {
|
|
74
76
|
_id: string;
|
|
@@ -98,6 +100,7 @@ export declare const chats: ({
|
|
|
98
100
|
attributes: {
|
|
99
101
|
id: string;
|
|
100
102
|
value: string;
|
|
103
|
+
status: string;
|
|
101
104
|
}[];
|
|
102
105
|
tags?: undefined;
|
|
103
106
|
};
|
|
@@ -211,6 +214,7 @@ export declare const chats: ({
|
|
|
211
214
|
type: string;
|
|
212
215
|
data: string;
|
|
213
216
|
value: string;
|
|
217
|
+
status: string;
|
|
214
218
|
} | {
|
|
215
219
|
id: string;
|
|
216
220
|
type: string;
|
|
@@ -220,6 +224,7 @@ export declare const chats: ({
|
|
|
220
224
|
phone: string;
|
|
221
225
|
};
|
|
222
226
|
value: string;
|
|
227
|
+
status: string;
|
|
223
228
|
})[];
|
|
224
229
|
tags: {
|
|
225
230
|
_id: string;
|
|
@@ -264,6 +269,7 @@ export declare const chats: ({
|
|
|
264
269
|
type: string;
|
|
265
270
|
data: string;
|
|
266
271
|
value: string;
|
|
272
|
+
status: string;
|
|
267
273
|
} | {
|
|
268
274
|
id: string;
|
|
269
275
|
type: string;
|
|
@@ -273,6 +279,7 @@ export declare const chats: ({
|
|
|
273
279
|
phone: string;
|
|
274
280
|
};
|
|
275
281
|
value: string;
|
|
282
|
+
status: string;
|
|
276
283
|
})[];
|
|
277
284
|
tags: {
|
|
278
285
|
_id: string;
|
|
@@ -341,6 +348,7 @@ export declare const chats: ({
|
|
|
341
348
|
type: string;
|
|
342
349
|
data: string;
|
|
343
350
|
value: string;
|
|
351
|
+
status: string;
|
|
344
352
|
} | {
|
|
345
353
|
id: string;
|
|
346
354
|
type: string;
|
|
@@ -350,6 +358,7 @@ export declare const chats: ({
|
|
|
350
358
|
phone: string;
|
|
351
359
|
};
|
|
352
360
|
value: string;
|
|
361
|
+
status: string;
|
|
353
362
|
} | {
|
|
354
363
|
id: string;
|
|
355
364
|
type: string;
|
|
@@ -359,6 +368,7 @@ export declare const chats: ({
|
|
|
359
368
|
nickname?: undefined;
|
|
360
369
|
};
|
|
361
370
|
value: string;
|
|
371
|
+
status: string;
|
|
362
372
|
})[];
|
|
363
373
|
tags?: undefined;
|
|
364
374
|
};
|
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
declare const _default: import("vue").DefineComponent<{}, {
|
|
2
|
-
$emit: (event: "select-attribute-channel" | "phone-call", ...args: any[]) => void;
|
|
2
|
+
$emit: (event: "select-attribute-channel" | "confirm-attribute" | "phone-call" | "reset-blocked-attributes", ...args: any[]) => void;
|
|
3
3
|
channels: unknown[];
|
|
4
4
|
messages: unknown[];
|
|
5
5
|
selectedChat: Record<string, any>;
|
|
6
6
|
channelTooltips: Record<string, any>;
|
|
7
7
|
contactAttributes: unknown[];
|
|
8
|
+
confirmingAttributeId: string;
|
|
8
9
|
isNewDialog: boolean;
|
|
9
10
|
selectedDialog: Record<string, any>;
|
|
10
11
|
emptyChannelsPlaceholder: Record<string, any>;
|
|
12
|
+
blockedAttributeIds: unknown[];
|
|
11
13
|
attributeTooltips: Record<string, any>;
|
|
14
|
+
attributeIndicatorTooltips: Record<string, any>;
|
|
12
15
|
showChannelIcons: boolean;
|
|
13
16
|
$props: {
|
|
14
17
|
readonly channels?: unknown[] | undefined;
|
|
@@ -16,10 +19,13 @@ declare const _default: import("vue").DefineComponent<{}, {
|
|
|
16
19
|
readonly selectedChat?: Record<string, any> | undefined;
|
|
17
20
|
readonly channelTooltips?: Record<string, any> | undefined;
|
|
18
21
|
readonly contactAttributes?: unknown[] | undefined;
|
|
22
|
+
readonly confirmingAttributeId?: string | undefined;
|
|
19
23
|
readonly isNewDialog?: boolean | undefined;
|
|
20
24
|
readonly selectedDialog?: Record<string, any> | undefined;
|
|
21
25
|
readonly emptyChannelsPlaceholder?: Record<string, any> | undefined;
|
|
26
|
+
readonly blockedAttributeIds?: unknown[] | undefined;
|
|
22
27
|
readonly attributeTooltips?: Record<string, any> | undefined;
|
|
28
|
+
readonly attributeIndicatorTooltips?: Record<string, any> | undefined;
|
|
23
29
|
readonly showChannelIcons?: boolean | undefined;
|
|
24
30
|
};
|
|
25
31
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
declare const _default: import("vue").DefineComponent<{}, {
|
|
2
|
+
confirmingAttributeId: string;
|
|
3
|
+
attribute: Record<string, any>;
|
|
4
|
+
isSelected: boolean;
|
|
5
|
+
blockedAttributeIds: unknown[];
|
|
6
|
+
indicatorTooltips: Record<string, any>;
|
|
7
|
+
$props: {
|
|
8
|
+
readonly confirmingAttributeId?: string | undefined;
|
|
9
|
+
readonly attribute?: Record<string, any> | undefined;
|
|
10
|
+
readonly isSelected?: boolean | undefined;
|
|
11
|
+
readonly blockedAttributeIds?: unknown[] | undefined;
|
|
12
|
+
readonly indicatorTooltips?: Record<string, any> | undefined;
|
|
13
|
+
};
|
|
14
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
15
|
+
export default _default;
|
package/dist/types/components/2_blocks/CommunicationPanel/composables/useCommunicationActions.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Ref, ComputedRef } from 'vue';
|
|
2
|
-
import type { ContactAttribute } from './useCommunicationAttributes';
|
|
2
|
+
import type { ContactAttribute, ConfirmAttributePayload } from './useCommunicationAttributes';
|
|
3
3
|
/**
|
|
4
4
|
* Тип канала панели коммуникаций.
|
|
5
5
|
*/
|
|
@@ -16,6 +16,7 @@ interface CommunicationActionsEmit {
|
|
|
16
16
|
attributeId: string;
|
|
17
17
|
channelId: string;
|
|
18
18
|
}): void;
|
|
19
|
+
(event: 'confirm-attribute', payload: ConfirmAttributePayload): void;
|
|
19
20
|
(event: 'phone-call', payload: {
|
|
20
21
|
attributeId: string;
|
|
21
22
|
phoneNumber: unknown;
|
|
@@ -27,6 +28,8 @@ interface UseCommunicationActionsOptions {
|
|
|
27
28
|
selectedChannel: Ref<Channel | Record<string, unknown>>;
|
|
28
29
|
selectedChannelType: Ref<string | null>;
|
|
29
30
|
hoveredAttribute: Ref<ContactAttribute | null>;
|
|
31
|
+
confirmingAttributeId: Ref<string | null>;
|
|
32
|
+
isAttributeBlocked: (attribute: ContactAttribute | null | undefined) => boolean;
|
|
30
33
|
closeMenu: () => void;
|
|
31
34
|
hasMultipleChannels: (channelType: string) => boolean;
|
|
32
35
|
getSingleChannelForType: (channelType: string) => Channel | null;
|
|
@@ -40,7 +43,7 @@ interface UseCommunicationActionsOptions {
|
|
|
40
43
|
/**
|
|
41
44
|
* Инкапсулирует действия панели: звонок, выбор каналов, выбор атрибутов.
|
|
42
45
|
*/
|
|
43
|
-
export declare function useCommunicationActions({ activeChannelType, channels, selectedChannel, selectedChannelType, hoveredAttribute, closeMenu, hasMultipleChannels, getSingleChannelForType, getAvailableChannels, isChannelEmpty, isNewDialog, showDefaultChannelTooltipWithTimer, clearDefaultChannelTooltip, emit, }: UseCommunicationActionsOptions): {
|
|
46
|
+
export declare function useCommunicationActions({ activeChannelType, channels, selectedChannel, selectedChannelType, hoveredAttribute, confirmingAttributeId, isAttributeBlocked, closeMenu, hasMultipleChannels, getSingleChannelForType, getAvailableChannels, isChannelEmpty, isNewDialog, showDefaultChannelTooltipWithTimer, clearDefaultChannelTooltip, emit, }: UseCommunicationActionsOptions): {
|
|
44
47
|
handlePhoneCall: (attribute: ContactAttribute | null | undefined) => void;
|
|
45
48
|
handleAttributeClick: (attribute: ContactAttribute) => void;
|
|
46
49
|
selectSingleChannel: (attribute: ContactAttribute, channelId: string) => void;
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import { type Ref, type ComputedRef } from 'vue';
|
|
2
|
+
/** Допустимые статусы контактного атрибута */
|
|
3
|
+
export declare const CONTACT_ATTRIBUTE_STATUSES: readonly ["confirmed", "unconfirmed"];
|
|
4
|
+
export type ContactAttributeStatus = (typeof CONTACT_ATTRIBUTE_STATUSES)[number];
|
|
2
5
|
/**
|
|
3
6
|
* Тип контактного атрибута из панели коммуникаций.
|
|
4
7
|
*/
|
|
@@ -7,8 +10,46 @@ export type ContactAttribute = {
|
|
|
7
10
|
type: string;
|
|
8
11
|
value?: string;
|
|
9
12
|
data?: unknown;
|
|
13
|
+
status?: ContactAttributeStatus;
|
|
10
14
|
[key: string]: unknown;
|
|
11
15
|
};
|
|
16
|
+
export declare function isContactAttributeStatus(value: unknown): value is ContactAttributeStatus;
|
|
17
|
+
/**
|
|
18
|
+
* CSS-класс для привязки UI к статусу атрибута (`status-confirmed` / `status-unconfirmed`).
|
|
19
|
+
*/
|
|
20
|
+
export declare function getAttributeStatusClass(attribute: ContactAttribute | null | undefined): `status-${ContactAttributeStatus}` | null;
|
|
21
|
+
export declare function isAttributeConfirmed(attribute: ContactAttribute | null | undefined): boolean;
|
|
22
|
+
export declare function isAttributeUnconfirmed(attribute: ContactAttribute | null | undefined): boolean;
|
|
23
|
+
/** Нужно запросить подтверждение атрибута у родителя (запрос на сервер). */
|
|
24
|
+
export declare function needsAttributeConfirmation(attribute: ContactAttribute | null | undefined): boolean;
|
|
25
|
+
/** Payload события confirm-attribute */
|
|
26
|
+
export type ConfirmAttributePayload = {
|
|
27
|
+
attributeId: string;
|
|
28
|
+
channelId: string;
|
|
29
|
+
channelType: string;
|
|
30
|
+
attribute: ContactAttribute;
|
|
31
|
+
};
|
|
32
|
+
export declare function shouldShowAttributeCheckmark(attribute: ContactAttribute | null | undefined, isSelected: boolean): boolean;
|
|
33
|
+
export declare function getAttributeCheckIndicatorClass(attribute: ContactAttribute | null | undefined, isSelected: boolean): 'selected-indicator' | 'confirmed-indicator' | null;
|
|
34
|
+
export declare function isAttributeConfirming(attribute: ContactAttribute | null | undefined, confirmingAttributeId: string | null | undefined): boolean;
|
|
35
|
+
/** Атрибут заблокирован после неудачного подтверждения (до повторного входа в меню). */
|
|
36
|
+
export declare function isAttributeBlocked(attribute: ContactAttribute | null | undefined, blockedAttributeIds: readonly string[] | null | undefined): boolean;
|
|
37
|
+
/** Ключи подсказок для галочки / спиннера в слоте индикатора */
|
|
38
|
+
export type AttributeIndicatorTooltipKey = 'selected' | 'confirmed' | 'confirming' | 'blocked';
|
|
39
|
+
export type AttributeIndicatorTooltips = Partial<Record<AttributeIndicatorTooltipKey, string>>;
|
|
40
|
+
export type AttributeIndicatorTooltipContext = {
|
|
41
|
+
isSelected: boolean;
|
|
42
|
+
confirmingAttributeId: string | null | undefined;
|
|
43
|
+
blockedAttributeIds: readonly string[];
|
|
44
|
+
};
|
|
45
|
+
export declare function shouldShowAttributeIndicator(attribute: ContactAttribute | null | undefined, context: AttributeIndicatorTooltipContext): boolean;
|
|
46
|
+
/** Слот индикатора для заблокированного атрибута без галочки / спиннера (только тултип). */
|
|
47
|
+
export declare function shouldShowBlockedIndicatorSlot(attribute: ContactAttribute | null | undefined, context: AttributeIndicatorTooltipContext): boolean;
|
|
48
|
+
/**
|
|
49
|
+
* Определяет ключ подсказки индикатора по приоритету состояния.
|
|
50
|
+
*/
|
|
51
|
+
export declare function getAttributeIndicatorTooltipKey(attribute: ContactAttribute | null | undefined, context: AttributeIndicatorTooltipContext): AttributeIndicatorTooltipKey | null;
|
|
52
|
+
export declare function getAttributeIndicatorTooltipText(attribute: ContactAttribute | null | undefined, tooltips: AttributeIndicatorTooltips | null | undefined, context: AttributeIndicatorTooltipContext): string;
|
|
12
53
|
type MaybeRef<T> = T | Ref<T> | ComputedRef<T>;
|
|
13
54
|
/**
|
|
14
55
|
* Параметры composable для работы с контактными атрибутами.
|
package/dist/types/components/2_blocks/CommunicationPanel/composables/useCommunicationMenu.d.ts
CHANGED
|
@@ -5,24 +5,19 @@ import { type Ref } from 'vue';
|
|
|
5
5
|
interface UseCommunicationMenuOptions {
|
|
6
6
|
/** Ссылка на корневой контейнер панели */
|
|
7
7
|
panelRef: Ref<HTMLElement | null>;
|
|
8
|
-
/** Ссылка на панель с кнопками каналов */
|
|
9
|
-
channelsPanelRef: Ref<HTMLElement | null>;
|
|
10
8
|
/** Текущий выбранный тип канала */
|
|
11
9
|
selectedChannelType: Ref<string | null>;
|
|
12
10
|
/** Замороженный атрибут (для подсветки при наведении) */
|
|
13
11
|
frozenAttribute: Ref<unknown>;
|
|
14
12
|
}
|
|
15
13
|
/**
|
|
16
|
-
* Компонует состояние и методы открытия/закрытия меню
|
|
17
|
-
* и вычисления ширины меню.
|
|
14
|
+
* Компонует состояние и методы открытия/закрытия меню каналов и обработки кликов.
|
|
18
15
|
*/
|
|
19
|
-
export declare function useCommunicationMenu({ panelRef,
|
|
16
|
+
export declare function useCommunicationMenu({ panelRef, selectedChannelType, frozenAttribute, }: UseCommunicationMenuOptions): {
|
|
20
17
|
activeChannelType: Ref<string | null, string | null>;
|
|
21
18
|
hoveredChannel: Ref<string | null, string | null>;
|
|
22
19
|
showMenu: Ref<boolean, boolean>;
|
|
23
20
|
showSubMenu: Ref<boolean, boolean>;
|
|
24
|
-
menuWidth: Ref<string, string>;
|
|
25
|
-
updateMenuWidth: () => void;
|
|
26
21
|
handleChannelClick: (channelType: string) => void;
|
|
27
22
|
closeMenu: () => void;
|
|
28
23
|
handleClickOutside: (event: Event) => void;
|
package/dist/types/components/2_blocks/CommunicationPanel/composables/useCommunicationSubMenu.d.ts
CHANGED
|
@@ -6,11 +6,12 @@ interface UseCommunicationSubMenuOptions {
|
|
|
6
6
|
frozenAttribute: Ref<ContactAttribute | null>;
|
|
7
7
|
hoveredAttribute: Ref<ContactAttribute | null>;
|
|
8
8
|
hasMultipleChannels: (channelType: string) => boolean;
|
|
9
|
+
isAttributeBlocked: (attribute: ContactAttribute | null | undefined) => boolean;
|
|
9
10
|
}
|
|
10
11
|
/**
|
|
11
12
|
* Управляет состоянием подменю выбора канала и hover-состояниями атрибутов.
|
|
12
13
|
*/
|
|
13
|
-
export declare function useCommunicationSubMenu({ activeChannelType, showSubMenu, frozenAttribute, hoveredAttribute, hasMultipleChannels, }: UseCommunicationSubMenuOptions): {
|
|
14
|
+
export declare function useCommunicationSubMenu({ activeChannelType, showSubMenu, frozenAttribute, hoveredAttribute, hasMultipleChannels, isAttributeBlocked, }: UseCommunicationSubMenuOptions): {
|
|
14
15
|
subMenuTop: Ref<number, number>;
|
|
15
16
|
handleAttributeMouseEnter: (attribute: ContactAttribute, eventTarget: EventTarget | null) => EventTarget | null;
|
|
16
17
|
handleAttributeMouseLeave: () => void;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
declare const _default: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
2
|
+
export default _default;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { default as CommunicationPanelCheckIcon } from './CommunicationPanelCheckIcon.vue';
|
|
2
|
+
export { default as CommunicationPanelConfirmSpinner } from './CommunicationPanelConfirmSpinner.vue';
|
|
2
3
|
export { default as CommunicationPanelPhoneIcon } from './CommunicationPanelPhoneIcon.vue';
|
|
3
4
|
export { default as CommunicationPanelWhatsAppIcon } from './CommunicationPanelWhatsAppIcon.vue';
|
|
4
5
|
export { default as CommunicationPanelTelegramIcon } from './CommunicationPanelTelegramIcon.vue';
|
package/dist/types/components/2_blocks/CommunicationPanel/stories/CommunicationPanel.stories.d.ts
CHANGED
|
@@ -2,16 +2,19 @@ import type { StoryObj } from '@storybook/vue3-vite';
|
|
|
2
2
|
declare const meta: {
|
|
3
3
|
title: string;
|
|
4
4
|
component: import("vue").DefineComponent<{}, {
|
|
5
|
-
$emit: (event: "select-attribute-channel" | "phone-call", ...args: any[]) => void;
|
|
5
|
+
$emit: (event: "select-attribute-channel" | "confirm-attribute" | "phone-call" | "reset-blocked-attributes", ...args: any[]) => void;
|
|
6
6
|
channels: unknown[];
|
|
7
7
|
messages: unknown[];
|
|
8
8
|
selectedChat: Record<string, any>;
|
|
9
9
|
channelTooltips: Record<string, any>;
|
|
10
10
|
contactAttributes: unknown[];
|
|
11
|
+
confirmingAttributeId: string;
|
|
11
12
|
isNewDialog: boolean;
|
|
12
13
|
selectedDialog: Record<string, any>;
|
|
13
14
|
emptyChannelsPlaceholder: Record<string, any>;
|
|
15
|
+
blockedAttributeIds: unknown[];
|
|
14
16
|
attributeTooltips: Record<string, any>;
|
|
17
|
+
attributeIndicatorTooltips: Record<string, any>;
|
|
15
18
|
showChannelIcons: boolean;
|
|
16
19
|
$props: {
|
|
17
20
|
readonly channels?: unknown[] | undefined;
|
|
@@ -19,10 +22,13 @@ declare const meta: {
|
|
|
19
22
|
readonly selectedChat?: Record<string, any> | undefined;
|
|
20
23
|
readonly channelTooltips?: Record<string, any> | undefined;
|
|
21
24
|
readonly contactAttributes?: unknown[] | undefined;
|
|
25
|
+
readonly confirmingAttributeId?: string | undefined;
|
|
22
26
|
readonly isNewDialog?: boolean | undefined;
|
|
23
27
|
readonly selectedDialog?: Record<string, any> | undefined;
|
|
24
28
|
readonly emptyChannelsPlaceholder?: Record<string, any> | undefined;
|
|
29
|
+
readonly blockedAttributeIds?: unknown[] | undefined;
|
|
25
30
|
readonly attributeTooltips?: Record<string, any> | undefined;
|
|
31
|
+
readonly attributeIndicatorTooltips?: Record<string, any> | undefined;
|
|
26
32
|
readonly showChannelIcons?: boolean | undefined;
|
|
27
33
|
};
|
|
28
34
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
@@ -168,8 +168,12 @@ export interface CommunicationPanelThemeCSSVariables {
|
|
|
168
168
|
'--chotto-communicationpanel-menu-z-index': string;
|
|
169
169
|
/** Максимальная высота меню атрибутов */
|
|
170
170
|
'--chotto-communicationpanel-menu-max-height': string;
|
|
171
|
+
/** Ширина меню атрибутов (обычно max-content — по содержимому в пределах min/max) */
|
|
172
|
+
'--chotto-communicationpanel-menu-width': string;
|
|
171
173
|
/** Минимальная ширина меню атрибутов */
|
|
172
174
|
'--chotto-communicationpanel-menu-min-width': string;
|
|
175
|
+
/** Максимальная ширина меню атрибутов */
|
|
176
|
+
'--chotto-communicationpanel-menu-max-width': string;
|
|
173
177
|
/** Промежуток между элементами меню атрибутов */
|
|
174
178
|
'--chotto-communicationpanel-menu-gap': string;
|
|
175
179
|
/** Прозрачность меню атрибутов */
|
|
@@ -420,6 +424,32 @@ export interface CommunicationPanelThemeCSSVariables {
|
|
|
420
424
|
'--chotto-communicationpanel-selected-indicator-height': string;
|
|
421
425
|
/** Цвет индикатора выбранного элемента */
|
|
422
426
|
'--chotto-communicationpanel-selected-indicator-color': string;
|
|
427
|
+
/** Цвет индикатора подтверждённого (не выбранного) атрибута */
|
|
428
|
+
'--chotto-communicationpanel-confirmed-indicator-color': string;
|
|
429
|
+
/** Курсор атрибута в процессе подтверждения */
|
|
430
|
+
'--chotto-communicationpanel-attribute-confirming-cursor': string;
|
|
431
|
+
/** События указателя атрибута в процессе подтверждения */
|
|
432
|
+
'--chotto-communicationpanel-attribute-confirming-pointer-events': string;
|
|
433
|
+
/** Курсор над индикатором (спиннер + тултип) при подтверждении */
|
|
434
|
+
'--chotto-communicationpanel-attribute-confirming-indicator-cursor': string;
|
|
435
|
+
/** Цвет заблокированного атрибута (неудачное подтверждение) */
|
|
436
|
+
'--chotto-communicationpanel-attribute-blocked-color': string;
|
|
437
|
+
/** Курсор заблокированного атрибута */
|
|
438
|
+
'--chotto-communicationpanel-attribute-blocked-cursor': string;
|
|
439
|
+
/** События указателя заблокированного атрибута */
|
|
440
|
+
'--chotto-communicationpanel-attribute-blocked-pointer-events': string;
|
|
441
|
+
/** Курсор над индикатором (тултип) у заблокированного атрибута */
|
|
442
|
+
'--chotto-communicationpanel-attribute-blocked-indicator-cursor': string;
|
|
443
|
+
/** Прозрачность иконок заблокированного атрибута */
|
|
444
|
+
'--chotto-communicationpanel-attribute-blocked-icon-opacity': string;
|
|
445
|
+
/** Отображение маркера blocked в слоте индикатора */
|
|
446
|
+
'--chotto-communicationpanel-blocked-indicator-display': string;
|
|
447
|
+
/** Радиус маркера blocked */
|
|
448
|
+
'--chotto-communicationpanel-blocked-indicator-border-radius': string;
|
|
449
|
+
/** Прозрачность маркера blocked */
|
|
450
|
+
'--chotto-communicationpanel-blocked-indicator-opacity': string;
|
|
451
|
+
/** Цвет спиннера подтверждения атрибута */
|
|
452
|
+
'--chotto-communicationpanel-confirming-indicator-color': string;
|
|
423
453
|
/** Размер шрифта индикатора выбранного элемента */
|
|
424
454
|
'--chotto-communicationpanel-selected-indicator-font-size': string;
|
|
425
455
|
/** Сжатие индикатора выбранного элемента */
|
|
@@ -6,6 +6,7 @@ export interface ChatAction {
|
|
|
6
6
|
title: string;
|
|
7
7
|
icon?: string;
|
|
8
8
|
}
|
|
9
|
+
export type ContactAttributeStatus = 'confirmed' | 'unconfirmed';
|
|
9
10
|
export interface ContactAttribute {
|
|
10
11
|
id: string;
|
|
11
12
|
type?: string;
|
|
@@ -15,6 +16,7 @@ export interface ContactAttribute {
|
|
|
15
16
|
phone: string;
|
|
16
17
|
};
|
|
17
18
|
value: string;
|
|
19
|
+
status?: ContactAttributeStatus;
|
|
18
20
|
}
|
|
19
21
|
export interface Contact {
|
|
20
22
|
attributes: ContactAttribute[];
|