@mobilon-dev/chotto 0.3.110 → 0.3.112
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/FeedFoundItem/FeedFoundItem.vue.js +2 -2
- package/dist/components/2_blocks/FeedFoundItem/FeedFoundItem.vue2.js +37 -25
- package/dist/components/2_feed_elements/FeedReplyQuote/FeedReplyQuote.vue.js +2 -2
- package/dist/components/2_feed_elements/FeedReplyQuote/FeedReplyQuote.vue2.js +14 -11
- package/dist/components/2_feed_elements/ImageMessage/ImageMessage.vue.js +3 -3
- package/dist/components/2_feed_elements/ImageMessage/ImageMessage.vue2.js +341 -253
- package/dist/components/2_feed_elements/ReplyImageMessage/ReplyImageMessage.vue.js +3 -3
- package/dist/components/2_feed_elements/ReplyImageMessage/ReplyImageMessage.vue2.js +27 -27
- package/dist/components/2_feed_elements/ReplyVideoMessage/ReplyVideoMessage.vue.js +1 -1
- package/dist/components/2_feed_elements/ReplyVideoMessage/ReplyVideoMessage.vue2.js +48 -35
- package/dist/components/2_feed_elements/VideoMessage/VideoMessage.vue.js +3 -3
- package/dist/components/2_feed_elements/VideoMessage/VideoMessage.vue2.js +297 -286
- package/dist/hooks/messages/buildReplyPayload.js +14 -9
- package/dist/hooks/messages/getImageMessageItems.js +21 -0
- package/dist/hooks/validators/messages/messageValidator.js +59 -52
- package/dist/index.js +80 -77
- 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/src/apps/data/messages.d.ts +535 -74
- package/dist/types/src/components/2_feed_elements/ImageMessage/stories/ImageMessage.stories.d.ts +5 -0
- package/dist/types/src/components/2_feed_elements/ImageMessage/styles/types.d.ts +40 -0
- package/dist/types/src/components/2_feed_elements/ReplyVideoMessage/styles/types.d.ts +32 -0
- package/dist/types/src/components/2_feed_elements/VideoMessage/stories/VideoMessage.stories.d.ts +3 -0
- package/dist/types/src/components/2_feed_elements/VideoMessage/styles/types.d.ts +32 -0
- package/dist/types/src/components/2_feed_elements/types/components.d.ts +9 -1
- package/dist/types/src/components/2_feed_elements/types/messages.d.ts +27 -1
- package/dist/types/src/hooks/messages/buildReplyPayload.d.ts +5 -1
- package/dist/types/src/hooks/messages/getImageMessageItems.d.ts +12 -0
- package/dist/types/src/hooks/messages/index.d.ts +1 -0
- package/dist/types/src/hooks/validators/messages/types.d.ts +12 -0
- package/package.json +1 -1
package/dist/types/src/components/2_feed_elements/ImageMessage/stories/ImageMessage.stories.d.ts
CHANGED
|
@@ -19,4 +19,9 @@ export declare const RightMessageWithReplyAudio: Story;
|
|
|
19
19
|
export declare const LeftMessageWithReplyCall: Story;
|
|
20
20
|
export declare const RightMessageWithReplyCall: Story;
|
|
21
21
|
export declare const LeftMessageWithPreviewLink: Story;
|
|
22
|
+
export declare const WithImagePreviewUrl: Story;
|
|
23
|
+
export declare const RightWithImagePreviewUrl: Story;
|
|
22
24
|
export declare const RightMessageWithPreviewLink: Story;
|
|
25
|
+
export declare const AlbumTwoImages: Story;
|
|
26
|
+
export declare const AlbumThreeImages: Story;
|
|
27
|
+
export declare const AlbumFiveImages: Story;
|
|
@@ -392,6 +392,46 @@ export interface ImageMessageThemeCSSVariables {
|
|
|
392
392
|
'--chotto-imagemessage-modal-image-max-height': string;
|
|
393
393
|
/** Максимальная ширина изображения в модальном окне */
|
|
394
394
|
'--chotto-imagemessage-modal-image-max-width': string;
|
|
395
|
+
/** Минимальная ширина сетки альбома */
|
|
396
|
+
'--chotto-imagemessage-album-size': string;
|
|
397
|
+
/** Отображение сетки альбома */
|
|
398
|
+
'--chotto-imagemessage-album-display': string;
|
|
399
|
+
/** Промежуток между фото в альбоме */
|
|
400
|
+
'--chotto-imagemessage-album-gap': string;
|
|
401
|
+
/** Ширина сетки альбома */
|
|
402
|
+
'--chotto-imagemessage-album-width': string;
|
|
403
|
+
/** Высота сетки альбома */
|
|
404
|
+
'--chotto-imagemessage-album-height': string;
|
|
405
|
+
/** Фон плитки альбома */
|
|
406
|
+
'--chotto-imagemessage-album-tile-background': string;
|
|
407
|
+
/** Курсор плитки альбома */
|
|
408
|
+
'--chotto-imagemessage-album-tile-cursor': string;
|
|
409
|
+
/** Вписывание фото в плитке альбома */
|
|
410
|
+
'--chotto-imagemessage-album-tile-object-fit': string;
|
|
411
|
+
/** Фон оверлея «ещё N» */
|
|
412
|
+
'--chotto-imagemessage-album-overflow-background': string;
|
|
413
|
+
/** Цвет текста оверлея «ещё N» */
|
|
414
|
+
'--chotto-imagemessage-album-overflow-color': string;
|
|
415
|
+
/** Размер шрифта оверлея «ещё N» */
|
|
416
|
+
'--chotto-imagemessage-album-overflow-font-size': string;
|
|
417
|
+
/** Размер кнопки навигации в модалке альбома */
|
|
418
|
+
'--chotto-imagemessage-modal-nav-size': string;
|
|
419
|
+
/** Фон кнопки навигации в модалке альбома */
|
|
420
|
+
'--chotto-imagemessage-modal-nav-background': string;
|
|
421
|
+
/** Цвет иконки навигации в модалке альбома */
|
|
422
|
+
'--chotto-imagemessage-modal-nav-color': string;
|
|
423
|
+
/** Скругление кнопки навигации в модалке альбома */
|
|
424
|
+
'--chotto-imagemessage-modal-nav-border-radius': string;
|
|
425
|
+
/** Размер иконки навигации в модалке альбома */
|
|
426
|
+
'--chotto-imagemessage-modal-nav-font-size': string;
|
|
427
|
+
/** Цвет счётчика в модалке альбома */
|
|
428
|
+
'--chotto-imagemessage-modal-counter-color': string;
|
|
429
|
+
/** Размер шрифта счётчика в модалке альбома */
|
|
430
|
+
'--chotto-imagemessage-modal-counter-font-size': string;
|
|
431
|
+
/** Внутренние отступы счётчика в модалке альбома */
|
|
432
|
+
'--chotto-imagemessage-modal-counter-padding': string;
|
|
433
|
+
/** Скругление счётчика в модалке альбома */
|
|
434
|
+
'--chotto-imagemessage-modal-counter-border-radius': string;
|
|
395
435
|
/** Переход появления контекстного меню */
|
|
396
436
|
'--chotto-imagemessage-context-menu-enter-active-transition': string;
|
|
397
437
|
/** Переход скрытия контекстного меню */
|
|
@@ -40,6 +40,38 @@ export interface ReplyVideoMessageThemeCSSVariables {
|
|
|
40
40
|
'--chotto-replyvideomessage-preview-button-display': string;
|
|
41
41
|
/** Направление флекс-контейнера кнопки превью */
|
|
42
42
|
'--chotto-replyvideomessage-preview-button-flex-direction': string;
|
|
43
|
+
/** Позиционирование значка play на обложке */
|
|
44
|
+
'--chotto-replyvideomessage-play-badge-position': string;
|
|
45
|
+
/** Смещение значка play сверху */
|
|
46
|
+
'--chotto-replyvideomessage-play-badge-top': string;
|
|
47
|
+
/** Смещение значка play слева */
|
|
48
|
+
'--chotto-replyvideomessage-play-badge-left': string;
|
|
49
|
+
/** Трансформация значка play */
|
|
50
|
+
'--chotto-replyvideomessage-play-badge-transform': string;
|
|
51
|
+
/** Отображение значка play */
|
|
52
|
+
'--chotto-replyvideomessage-play-badge-display': string;
|
|
53
|
+
/** Выравнивание содержимого значка play по поперечной оси */
|
|
54
|
+
'--chotto-replyvideomessage-play-badge-align-items': string;
|
|
55
|
+
/** Выравнивание содержимого значка play по главной оси */
|
|
56
|
+
'--chotto-replyvideomessage-play-badge-justify-content': string;
|
|
57
|
+
/** Ширина значка play */
|
|
58
|
+
'--chotto-replyvideomessage-play-badge-width': string;
|
|
59
|
+
/** Высота значка play */
|
|
60
|
+
'--chotto-replyvideomessage-play-badge-height': string;
|
|
61
|
+
/** Скругление значка play */
|
|
62
|
+
'--chotto-replyvideomessage-play-badge-border-radius': string;
|
|
63
|
+
/** Фон значка play */
|
|
64
|
+
'--chotto-replyvideomessage-play-badge-background-color': string;
|
|
65
|
+
/** Цвет иконки play */
|
|
66
|
+
'--chotto-replyvideomessage-play-badge-color': string;
|
|
67
|
+
/** События указателя значка play */
|
|
68
|
+
'--chotto-replyvideomessage-play-badge-pointer-events': string;
|
|
69
|
+
/** Слой значка play */
|
|
70
|
+
'--chotto-replyvideomessage-play-badge-z-index': string;
|
|
71
|
+
/** Размер иконки play */
|
|
72
|
+
'--chotto-replyvideomessage-play-badge-icon-font-size': string;
|
|
73
|
+
/** Отступ иконки play слева */
|
|
74
|
+
'--chotto-replyvideomessage-play-badge-icon-margin-left': string;
|
|
43
75
|
/** Перенос слов в контейнере текста */
|
|
44
76
|
'--chotto-replyvideomessage-text-container-word-wrap': string;
|
|
45
77
|
/** Выравнивание содержимого текстового контейнера */
|
package/dist/types/src/components/2_feed_elements/VideoMessage/stories/VideoMessage.stories.d.ts
CHANGED
|
@@ -37,3 +37,6 @@ export declare const LeftMessageWithReplyCall: Story;
|
|
|
37
37
|
export declare const RightMessageWithReplyCall: Story;
|
|
38
38
|
export declare const LeftMessageWithPreviewLink: Story;
|
|
39
39
|
export declare const RightMessageWithPreviewLink: Story;
|
|
40
|
+
export declare const WithCoverUrl: Story;
|
|
41
|
+
export declare const WithVideoPreviewUrl: Story;
|
|
42
|
+
export declare const WithCoverAndVideoPreviewUrl: Story;
|
|
@@ -122,6 +122,38 @@ export interface VideoMessageThemeCSSVariables {
|
|
|
122
122
|
'--chotto-videomessage-preview-button-display': string;
|
|
123
123
|
/** Направление флекс-контейнера кнопки превью */
|
|
124
124
|
'--chotto-videomessage-preview-button-flex-direction': string;
|
|
125
|
+
/** Позиционирование значка play на обложке */
|
|
126
|
+
'--chotto-videomessage-play-badge-position': string;
|
|
127
|
+
/** Смещение значка play сверху */
|
|
128
|
+
'--chotto-videomessage-play-badge-top': string;
|
|
129
|
+
/** Смещение значка play слева */
|
|
130
|
+
'--chotto-videomessage-play-badge-left': string;
|
|
131
|
+
/** Трансформация значка play */
|
|
132
|
+
'--chotto-videomessage-play-badge-transform': string;
|
|
133
|
+
/** Отображение значка play */
|
|
134
|
+
'--chotto-videomessage-play-badge-display': string;
|
|
135
|
+
/** Выравнивание содержимого значка play по поперечной оси */
|
|
136
|
+
'--chotto-videomessage-play-badge-align-items': string;
|
|
137
|
+
/** Выравнивание содержимого значка play по главной оси */
|
|
138
|
+
'--chotto-videomessage-play-badge-justify-content': string;
|
|
139
|
+
/** Ширина значка play */
|
|
140
|
+
'--chotto-videomessage-play-badge-width': string;
|
|
141
|
+
/** Высота значка play */
|
|
142
|
+
'--chotto-videomessage-play-badge-height': string;
|
|
143
|
+
/** Скругление значка play */
|
|
144
|
+
'--chotto-videomessage-play-badge-border-radius': string;
|
|
145
|
+
/** Фон значка play */
|
|
146
|
+
'--chotto-videomessage-play-badge-background-color': string;
|
|
147
|
+
/** Цвет иконки play */
|
|
148
|
+
'--chotto-videomessage-play-badge-color': string;
|
|
149
|
+
/** События указателя значка play */
|
|
150
|
+
'--chotto-videomessage-play-badge-pointer-events': string;
|
|
151
|
+
/** Слой значка play */
|
|
152
|
+
'--chotto-videomessage-play-badge-z-index': string;
|
|
153
|
+
/** Размер иконки play */
|
|
154
|
+
'--chotto-videomessage-play-badge-icon-font-size': string;
|
|
155
|
+
/** Отступ иконки play слева (оптическое центрирование треугольника) */
|
|
156
|
+
'--chotto-videomessage-play-badge-icon-margin-left': string;
|
|
125
157
|
/** Позиционирование кнопки меню сообщения */
|
|
126
158
|
'--chotto-videomessage-menu-button-position': string;
|
|
127
159
|
/** Прозрачный фон кнопки меню */
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IAudioMessage, ICallMessage, IDateMessage, IFileMessage, IImageMessage, IKeyBoard, ILinkPreview, ISystemMessage, ITextMessage, ITypingMessage, IVideoMessage, Reply } from "@/types";
|
|
1
|
+
import { IAudioMessage, ICallMessage, IDateMessage, IFileMessage, IImageMessage, IImageMessageItem, IKeyBoard, ILinkPreview, ISystemMessage, ITextMessage, ITypingMessage, IVideoMessage, Reply } from "@/types";
|
|
2
2
|
export interface IFeedObject {
|
|
3
3
|
messageId: string;
|
|
4
4
|
type: string;
|
|
@@ -8,6 +8,14 @@ export interface IFeedObject {
|
|
|
8
8
|
status?: string;
|
|
9
9
|
time?: string;
|
|
10
10
|
url?: string;
|
|
11
|
+
/** URL превью картинки для ленты (для `message.image`) */
|
|
12
|
+
imagePreviewUrl?: string;
|
|
13
|
+
/** Несколько изображений в одном `message.image` */
|
|
14
|
+
items?: IImageMessageItem[];
|
|
15
|
+
/** URL сжатого превью видео для ленты (для `message.video`) */
|
|
16
|
+
videoPreviewUrl?: string;
|
|
17
|
+
/** URL обложки видео для ленты (для `message.video`) */
|
|
18
|
+
coverUrl?: string;
|
|
11
19
|
alt?: string;
|
|
12
20
|
filename?: string;
|
|
13
21
|
avatar?: string;
|
|
@@ -3,6 +3,12 @@ export interface Reply {
|
|
|
3
3
|
type: string;
|
|
4
4
|
text?: string;
|
|
5
5
|
url?: string;
|
|
6
|
+
/** URL превью картинки в цитате (для `message.image`); если нет — используется `url` */
|
|
7
|
+
imagePreviewUrl?: string;
|
|
8
|
+
/** URL сжатого превью видео в ленте (для `message.video`) */
|
|
9
|
+
videoPreviewUrl?: string;
|
|
10
|
+
/** URL обложки видео (картинка) в ленте/цитате (для `message.video`) */
|
|
11
|
+
coverUrl?: string;
|
|
6
12
|
filename?: string;
|
|
7
13
|
header?: string;
|
|
8
14
|
callDuration?: string;
|
|
@@ -262,11 +268,27 @@ export interface IFileMessage {
|
|
|
262
268
|
/** Можно ли ещё удалить (если `false` — пункт меню disabled) */
|
|
263
269
|
canDelete?: boolean;
|
|
264
270
|
}
|
|
271
|
+
/** Одно изображение в альбоме `message.image` */
|
|
272
|
+
export interface IImageMessageItem {
|
|
273
|
+
url: string;
|
|
274
|
+
/** URL превью для ленты. Если нет — показывается `url`. */
|
|
275
|
+
imagePreviewUrl?: string;
|
|
276
|
+
filename?: string;
|
|
277
|
+
size?: number | string;
|
|
278
|
+
}
|
|
265
279
|
export interface IImageMessage {
|
|
266
280
|
messageId: string;
|
|
267
281
|
position: string;
|
|
268
282
|
time: string;
|
|
269
|
-
|
|
283
|
+
/**
|
|
284
|
+
* Полноразмерный URL (для одного фото или как дубль первого элемента `items`).
|
|
285
|
+
* Если задан `items`, в ленте используются элементы массива.
|
|
286
|
+
*/
|
|
287
|
+
url?: string;
|
|
288
|
+
/** URL превью для ленты. Если нет — в ленте показывается `url`. При широком просмотре открывается полноразмерный `url`. */
|
|
289
|
+
imagePreviewUrl?: string;
|
|
290
|
+
/** Несколько изображений в одном сообщении. Один элемент — обычное фото. */
|
|
291
|
+
items?: IImageMessageItem[];
|
|
270
292
|
alt?: string;
|
|
271
293
|
status: string;
|
|
272
294
|
statusMsg?: string;
|
|
@@ -340,6 +362,10 @@ export interface IVideoMessage {
|
|
|
340
362
|
statusMsg?: string;
|
|
341
363
|
time: string;
|
|
342
364
|
url: string;
|
|
365
|
+
/** URL сжатого превью видео для ленты. Если нет — используется `url`. При широком просмотре открывается полноразмерный `url`. */
|
|
366
|
+
videoPreviewUrl?: string;
|
|
367
|
+
/** URL обложки (картинка) для ленты. Приоритет в ленте: `coverUrl`, затем `videoPreviewUrl`, затем `url`. */
|
|
368
|
+
coverUrl?: string;
|
|
343
369
|
alt?: string;
|
|
344
370
|
avatar?: string;
|
|
345
371
|
header?: string;
|
|
@@ -1,11 +1,15 @@
|
|
|
1
|
-
import type { Reply } from '@/types';
|
|
1
|
+
import type { IImageMessageItem, Reply } from '@/types';
|
|
2
2
|
export interface ReplyMessageSource {
|
|
3
3
|
messageId: string | number;
|
|
4
4
|
type?: string;
|
|
5
5
|
text?: string;
|
|
6
6
|
url?: string;
|
|
7
|
+
imagePreviewUrl?: string;
|
|
8
|
+
videoPreviewUrl?: string;
|
|
9
|
+
coverUrl?: string;
|
|
7
10
|
filename?: string;
|
|
8
11
|
header?: string;
|
|
9
12
|
callDuration?: string;
|
|
13
|
+
items?: IImageMessageItem[];
|
|
10
14
|
}
|
|
11
15
|
export declare function buildReplyPayload(message: ReplyMessageSource, fallbackType: string): Reply;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { IImageMessageItem } from '@/types';
|
|
2
|
+
export interface ImageMessageItemsSource {
|
|
3
|
+
url?: string;
|
|
4
|
+
imagePreviewUrl?: string;
|
|
5
|
+
filename?: string;
|
|
6
|
+
items?: IImageMessageItem[];
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Список картинок сообщения: `items`, если их больше нуля, иначе корневые `url` / `imagePreviewUrl`.
|
|
10
|
+
*/
|
|
11
|
+
export declare function getImageMessageItems(message: ImageMessageItemsSource | undefined): IImageMessageItem[];
|
|
12
|
+
export declare function getPrimaryImageItem(message: ImageMessageItemsSource | undefined): IImageMessageItem | undefined;
|
|
@@ -11,6 +11,7 @@ export * from './useStartReply';
|
|
|
11
11
|
export * from './useStartEdit';
|
|
12
12
|
export * from './canStartEditLastSent';
|
|
13
13
|
export * from './buildReplyPayload';
|
|
14
|
+
export * from './getImageMessageItems';
|
|
14
15
|
export * from './buildEditPayload';
|
|
15
16
|
export * from './getEditTooltipLines';
|
|
16
17
|
export * from './getDeletedOriginalText';
|
|
@@ -6,6 +6,9 @@ export interface MessageReply {
|
|
|
6
6
|
type: string;
|
|
7
7
|
text?: string;
|
|
8
8
|
url?: string;
|
|
9
|
+
imagePreviewUrl?: string;
|
|
10
|
+
videoPreviewUrl?: string;
|
|
11
|
+
coverUrl?: string;
|
|
9
12
|
filename?: string;
|
|
10
13
|
}
|
|
11
14
|
export interface MessageEmbed {
|
|
@@ -47,8 +50,17 @@ export interface Message {
|
|
|
47
50
|
subText?: string;
|
|
48
51
|
avatar?: string;
|
|
49
52
|
url?: string;
|
|
53
|
+
imagePreviewUrl?: string;
|
|
54
|
+
videoPreviewUrl?: string;
|
|
55
|
+
coverUrl?: string;
|
|
50
56
|
filename?: string;
|
|
51
57
|
alt?: string;
|
|
58
|
+
items?: Array<{
|
|
59
|
+
url: string;
|
|
60
|
+
imagePreviewUrl?: string;
|
|
61
|
+
filename?: string;
|
|
62
|
+
size?: number | string;
|
|
63
|
+
}>;
|
|
52
64
|
views?: number;
|
|
53
65
|
reply?: MessageReply;
|
|
54
66
|
embed?: MessageEmbed;
|