@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.
Files changed (35) hide show
  1. package/dist/chotto.css +1 -1
  2. package/dist/components/2_blocks/FeedFoundItem/FeedFoundItem.vue.js +2 -2
  3. package/dist/components/2_blocks/FeedFoundItem/FeedFoundItem.vue2.js +37 -25
  4. package/dist/components/2_feed_elements/FeedReplyQuote/FeedReplyQuote.vue.js +2 -2
  5. package/dist/components/2_feed_elements/FeedReplyQuote/FeedReplyQuote.vue2.js +14 -11
  6. package/dist/components/2_feed_elements/ImageMessage/ImageMessage.vue.js +3 -3
  7. package/dist/components/2_feed_elements/ImageMessage/ImageMessage.vue2.js +341 -253
  8. package/dist/components/2_feed_elements/ReplyImageMessage/ReplyImageMessage.vue.js +3 -3
  9. package/dist/components/2_feed_elements/ReplyImageMessage/ReplyImageMessage.vue2.js +27 -27
  10. package/dist/components/2_feed_elements/ReplyVideoMessage/ReplyVideoMessage.vue.js +1 -1
  11. package/dist/components/2_feed_elements/ReplyVideoMessage/ReplyVideoMessage.vue2.js +48 -35
  12. package/dist/components/2_feed_elements/VideoMessage/VideoMessage.vue.js +3 -3
  13. package/dist/components/2_feed_elements/VideoMessage/VideoMessage.vue2.js +297 -286
  14. package/dist/hooks/messages/buildReplyPayload.js +14 -9
  15. package/dist/hooks/messages/getImageMessageItems.js +21 -0
  16. package/dist/hooks/validators/messages/messageValidator.js +59 -52
  17. package/dist/index.js +80 -77
  18. package/dist/themes/dark.css +1 -1
  19. package/dist/themes/default.css +1 -1
  20. package/dist/themes/glass.css +1 -1
  21. package/dist/themes/green.css +1 -1
  22. package/dist/themes/mobilon1.css +1 -1
  23. package/dist/types/src/apps/data/messages.d.ts +535 -74
  24. package/dist/types/src/components/2_feed_elements/ImageMessage/stories/ImageMessage.stories.d.ts +5 -0
  25. package/dist/types/src/components/2_feed_elements/ImageMessage/styles/types.d.ts +40 -0
  26. package/dist/types/src/components/2_feed_elements/ReplyVideoMessage/styles/types.d.ts +32 -0
  27. package/dist/types/src/components/2_feed_elements/VideoMessage/stories/VideoMessage.stories.d.ts +3 -0
  28. package/dist/types/src/components/2_feed_elements/VideoMessage/styles/types.d.ts +32 -0
  29. package/dist/types/src/components/2_feed_elements/types/components.d.ts +9 -1
  30. package/dist/types/src/components/2_feed_elements/types/messages.d.ts +27 -1
  31. package/dist/types/src/hooks/messages/buildReplyPayload.d.ts +5 -1
  32. package/dist/types/src/hooks/messages/getImageMessageItems.d.ts +12 -0
  33. package/dist/types/src/hooks/messages/index.d.ts +1 -0
  34. package/dist/types/src/hooks/validators/messages/types.d.ts +12 -0
  35. package/package.json +1 -1
@@ -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
  /** Выравнивание содержимого текстового контейнера */
@@ -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
- url: string;
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;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mobilon-dev/chotto",
3
- "version": "0.3.110",
3
+ "version": "0.3.112",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",