@vknext/shared 1.2.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 (129) hide show
  1. package/README.md +28 -0
  2. package/dist/common/ListenerRegistry.d.ts +6 -0
  3. package/dist/common/ListenerRegistry.js +1 -0
  4. package/dist/common/index.d.ts +1 -0
  5. package/dist/common/index.js +1 -0
  6. package/dist/components/CustomModalPage/CustomModalPage.d.ts +9 -0
  7. package/dist/components/CustomModalPage/CustomModalPage.js +1 -0
  8. package/dist/components/CustomModalPage/CustomModalPageContext.d.ts +17 -0
  9. package/dist/components/CustomModalPage/CustomModalPageContext.js +1 -0
  10. package/dist/components/index.d.ts +1 -0
  11. package/dist/components/index.js +1 -0
  12. package/dist/helpers/getGlobalThis.d.ts +1 -0
  13. package/dist/helpers/getGlobalThis.js +1 -0
  14. package/dist/helpers/index.d.ts +1 -0
  15. package/dist/helpers/index.js +1 -0
  16. package/dist/index.d.ts +1 -0
  17. package/dist/index.js +1 -0
  18. package/dist/lib/Ranges.d.ts +58 -0
  19. package/dist/lib/Ranges.js +1 -0
  20. package/dist/lib/RangesIds.d.ts +53 -0
  21. package/dist/lib/RangesIds.js +1 -0
  22. package/dist/lib/index.d.ts +3 -0
  23. package/dist/lib/index.js +1 -0
  24. package/dist/lib/lang/Lang.d.ts +15 -0
  25. package/dist/lib/lang/Lang.js +1 -0
  26. package/dist/lib/lang/LangReact.d.ts +10 -0
  27. package/dist/lib/lang/LangReact.js +1 -0
  28. package/dist/lib/lang/LangsCodeEnum.d.ts +11 -0
  29. package/dist/lib/lang/LangsCodeEnum.js +1 -0
  30. package/dist/lib/lang/getCodeLangFromNavigator.d.ts +2 -0
  31. package/dist/lib/lang/getCodeLangFromNavigator.js +1 -0
  32. package/dist/lib/lang/index.d.ts +4 -0
  33. package/dist/lib/lang/index.js +1 -0
  34. package/dist/lib/pluralFrom.d.ts +1 -0
  35. package/dist/lib/pluralFrom.js +1 -0
  36. package/dist/utils/DOMContentLoaded.d.ts +1 -0
  37. package/dist/utils/DOMContentLoaded.js +1 -0
  38. package/dist/utils/arrayUnFlat.d.ts +1 -0
  39. package/dist/utils/arrayUnFlat.js +1 -0
  40. package/dist/utils/convertBlobToUint8Array.d.ts +1 -0
  41. package/dist/utils/convertBlobToUint8Array.js +1 -0
  42. package/dist/utils/createPromise.d.ts +5 -0
  43. package/dist/utils/createPromise.js +1 -0
  44. package/dist/utils/delay.d.ts +1 -0
  45. package/dist/utils/delay.js +1 -0
  46. package/dist/utils/getReactAttrs.d.ts +5 -0
  47. package/dist/utils/getReactAttrs.js +1 -0
  48. package/dist/utils/index.d.ts +12 -0
  49. package/dist/utils/index.js +1 -0
  50. package/dist/utils/onDocumentComplete.d.ts +1 -0
  51. package/dist/utils/onDocumentComplete.js +1 -0
  52. package/dist/utils/parseSvg.d.ts +1 -0
  53. package/dist/utils/parseSvg.js +1 -0
  54. package/dist/utils/waitHTMLBody.d.ts +1 -0
  55. package/dist/utils/waitHTMLBody.js +1 -0
  56. package/dist/utils/waitHTMLHead.d.ts +9 -0
  57. package/dist/utils/waitHTMLHead.js +1 -0
  58. package/dist/utils/waitRAF.d.ts +1 -0
  59. package/dist/utils/waitRAF.js +1 -0
  60. package/dist/utils/waitRIC.d.ts +1 -0
  61. package/dist/utils/waitRIC.js +1 -0
  62. package/dist/vkcom/audio/audioUnmaskSource.d.ts +4 -0
  63. package/dist/vkcom/audio/audioUnmaskSource.js +1 -0
  64. package/dist/vkcom/audio/convertTrackToBlob.d.ts +11 -0
  65. package/dist/vkcom/audio/convertTrackToBlob.js +1 -0
  66. package/dist/vkcom/audio/getTrackDetails.d.ts +9 -0
  67. package/dist/vkcom/audio/getTrackDetails.js +1 -0
  68. package/dist/vkcom/audio/index.d.ts +4 -0
  69. package/dist/vkcom/audio/index.js +1 -0
  70. package/dist/vkcom/audio/utils/getHlsInstance.d.ts +2 -0
  71. package/dist/vkcom/audio/utils/getHlsInstance.js +1 -0
  72. package/dist/vkcom/audio/utils/sendMessage.d.ts +9 -0
  73. package/dist/vkcom/audio/utils/sendMessage.js +1 -0
  74. package/dist/vkcom/globalVars/index.d.ts +21 -0
  75. package/dist/vkcom/globalVars/index.js +1 -0
  76. package/dist/vkcom/globalVars/onAddTopNotifier.d.ts +4 -0
  77. package/dist/vkcom/globalVars/onAddTopNotifier.js +1 -0
  78. package/dist/vkcom/globalVars/onAddWall.d.ts +4 -0
  79. package/dist/vkcom/globalVars/onAddWall.js +1 -0
  80. package/dist/vkcom/globalVars/utils/waitVariable.d.ts +3 -0
  81. package/dist/vkcom/globalVars/utils/waitVariable.js +1 -0
  82. package/dist/vkcom/globalVars/utils/watchGlobalProperty.d.ts +3 -0
  83. package/dist/vkcom/globalVars/utils/watchGlobalProperty.js +1 -0
  84. package/dist/vkcom/globalVars/waitAjax.d.ts +1 -0
  85. package/dist/vkcom/globalVars/waitAjax.js +1 -0
  86. package/dist/vkcom/globalVars/waitAudioPlayer.d.ts +1 -0
  87. package/dist/vkcom/globalVars/waitAudioPlayer.js +1 -0
  88. package/dist/vkcom/globalVars/waitAudioPlayerUI.d.ts +1 -0
  89. package/dist/vkcom/globalVars/waitAudioPlayerUI.js +1 -0
  90. package/dist/vkcom/globalVars/waitAudioUtils.d.ts +1 -0
  91. package/dist/vkcom/globalVars/waitAudioUtils.js +1 -0
  92. package/dist/vkcom/globalVars/waitBoxQueue.d.ts +1 -0
  93. package/dist/vkcom/globalVars/waitBoxQueue.js +1 -0
  94. package/dist/vkcom/globalVars/waitCalls.d.ts +1 -0
  95. package/dist/vkcom/globalVars/waitCalls.js +1 -0
  96. package/dist/vkcom/globalVars/waitColorScheme.d.ts +1 -0
  97. package/dist/vkcom/globalVars/waitColorScheme.js +1 -0
  98. package/dist/vkcom/globalVars/waitCur.d.ts +1 -0
  99. package/dist/vkcom/globalVars/waitCur.js +1 -0
  100. package/dist/vkcom/globalVars/waitElementTooltip.d.ts +1 -0
  101. package/dist/vkcom/globalVars/waitElementTooltip.js +1 -0
  102. package/dist/vkcom/globalVars/waitGetAudioPlayer.d.ts +1 -0
  103. package/dist/vkcom/globalVars/waitGetAudioPlayer.js +1 -0
  104. package/dist/vkcom/globalVars/waitMECommonContext.d.ts +1 -0
  105. package/dist/vkcom/globalVars/waitMECommonContext.js +1 -0
  106. package/dist/vkcom/globalVars/waitNav.d.ts +1 -0
  107. package/dist/vkcom/globalVars/waitNav.js +1 -0
  108. package/dist/vkcom/globalVars/waitPhotoview.d.ts +1 -0
  109. package/dist/vkcom/globalVars/waitPhotoview.js +1 -0
  110. package/dist/vkcom/globalVars/waitStories.d.ts +1 -0
  111. package/dist/vkcom/globalVars/waitStories.js +1 -0
  112. package/dist/vkcom/globalVars/waitTopNotifier.d.ts +1 -0
  113. package/dist/vkcom/globalVars/waitTopNotifier.js +1 -0
  114. package/dist/vkcom/globalVars/waitUIActionsMenu.d.ts +1 -0
  115. package/dist/vkcom/globalVars/waitUIActionsMenu.js +1 -0
  116. package/dist/vkcom/globalVars/waitVK.d.ts +1 -0
  117. package/dist/vkcom/globalVars/waitVK.js +1 -0
  118. package/dist/vkcom/globalVars/waitVKApi.d.ts +1 -0
  119. package/dist/vkcom/globalVars/waitVKApi.js +1 -0
  120. package/dist/vkcom/globalVars/waitVideoInitializer.d.ts +1 -0
  121. package/dist/vkcom/globalVars/waitVideoInitializer.js +1 -0
  122. package/dist/vkcom/hooks/index.d.ts +2 -0
  123. package/dist/vkcom/hooks/index.js +1 -0
  124. package/dist/vkcom/hooks/useColorScheme.d.ts +1 -0
  125. package/dist/vkcom/hooks/useColorScheme.js +1 -0
  126. package/dist/vkcom/hooks/useVKAudioPlayer.d.ts +2 -0
  127. package/dist/vkcom/hooks/useVKAudioPlayer.js +1 -0
  128. package/dist/vkcom/types.d.ts +860 -0
  129. package/package.json +103 -0
@@ -0,0 +1,860 @@
1
+ import HlsJs from 'hls.js';
2
+
3
+ interface ITopNotifier {
4
+ cleanCount(): void;
5
+ }
6
+
7
+ interface IWallInitProps {
8
+ wall_oid?: number;
9
+ public_link?: string;
10
+ loc?: string;
11
+ owner?: {
12
+ id: number;
13
+ name: string;
14
+ photo: string;
15
+ };
16
+ wall_tpl: {
17
+ profileData: [profileId: number, photo: string, href: string, name: string];
18
+ ownerData: [ownerId: number, photo: string, href: string, name: string];
19
+ };
20
+ only_official?: boolean;
21
+ }
22
+
23
+ interface IWall {
24
+ init: (props: IWallInitProps) => void;
25
+ votingUpdateFull: (_: string, e: string) => void;
26
+ initReplyEditable: (replyBox: HTMLElement, replyField: HTMLElement, postId: string) => void;
27
+ showEditReply: (postId: string, e?: unknown, o?: boolean, i?: boolean, focus?: boolean, onInited?: () => void) => void;
28
+ [key: string | symbol]: any;
29
+ }
30
+
31
+ interface Iajax {
32
+ enabled: boolean;
33
+ post(url: string, obj: any, func?: any): any;
34
+ promisifiedPost<T = any>(url: string, obj: Record<string, any>): Promise<T>;
35
+
36
+ [key: string | symbol]: any;
37
+ }
38
+
39
+ interface AudioPlayerAds {
40
+ _isAllowed: (e: unknown) => {
41
+ type: number;
42
+ };
43
+ }
44
+
45
+ interface IAudioPlayer {
46
+ ads: AudioPlayerAds;
47
+ getCurrentAudio: () => any[] | null;
48
+ getCurrentAudioLs: () => any[] | null;
49
+ setStatusExportInfo: (audio: any[] | null, isPaused?: boolean) => void;
50
+ on: (unk1: any, type: "update" | any, callback: (event: any) => void) => () => void;
51
+ play: () => void;
52
+ pause: () => void;
53
+ playPrev: () => void;
54
+ playNext: () => void;
55
+ isPlaying: () => boolean;
56
+ toggleAudio: (audioNode: HTMLElement, event: Event) => void;
57
+ _impl: {
58
+ type: string;
59
+ _currentAudioEl: {
60
+ audioElement: HTMLAudioElement;
61
+ };
62
+ };
63
+ playNextByButton: () => void;
64
+ playPrevByButton: () => void;
65
+ pauseByButton: () => void;
66
+ playByButton: () => void;
67
+ }
68
+
69
+ interface IAudioPlayerUI {
70
+ lyrics: {
71
+ open: (v: { audio: any[] }) => unknown;
72
+ modal: {
73
+ open: (audio: any[]) => unknown;
74
+ mount: (audio: any[]) => unknown;
75
+ };
76
+ };
77
+ }
78
+
79
+ interface AudioMainArtist {
80
+ /**
81
+ * Artist ID
82
+ */
83
+ id?: string;
84
+ /**
85
+ * Artist name
86
+ */
87
+ name: string;
88
+ }
89
+
90
+ interface AudioObject {
91
+ hashes?: string;
92
+ id: number;
93
+ owner_id: number;
94
+ ownerId: number;
95
+ fullId: string;
96
+ title: string;
97
+ subTitle: string;
98
+ performer: string;
99
+ mainArtists: AudioMainArtist[] | string;
100
+
101
+ featArtists: string;
102
+ authorLink: string;
103
+ duration: number;
104
+ lyrics: 1 | 0;
105
+ url: string;
106
+ context: string;
107
+ extra: string;
108
+ accessKey: string;
109
+ addHash: string;
110
+ editHash: string;
111
+ actionHash: string;
112
+ deleteHash: string;
113
+ replaceHash: string;
114
+ urlHash: string;
115
+ restoreHash: string;
116
+ canEdit: boolean;
117
+ canDelete: boolean;
118
+ flags: number;
119
+ isOriginalSound: boolean;
120
+ hasLyrics: boolean;
121
+ isLongPerformer: boolean;
122
+ isClaimed: boolean;
123
+ isFromQueue: boolean;
124
+ isExplicit: boolean;
125
+ isUMA: boolean;
126
+ isReplaceable: boolean;
127
+ canAdd: boolean;
128
+ showInfo: boolean;
129
+ coverUrl_s: string;
130
+ coverUrl_p: string;
131
+ coverUrl_l: string;
132
+ hasTrackPage: boolean;
133
+ trackPageId: string;
134
+ ads: {
135
+ duration: number;
136
+ content_id: string;
137
+ puid22: number;
138
+ account_age_type: number;
139
+ _SITEID: number;
140
+ vk_id: number;
141
+ ver: number;
142
+ };
143
+ album: [number, number, string];
144
+ albumId: number;
145
+ albumPart: number;
146
+ trackCode: string;
147
+ restrictionStatus: number;
148
+ chartInfo: boolean;
149
+ adminUrl: string;
150
+ umaQueryUrl: string;
151
+
152
+ [key: string]: any;
153
+ }
154
+
155
+ interface AudioLayer {
156
+ _initSection?: string;
157
+ _els?: {
158
+ layerPlace: HTMLElement;
159
+ topNotaBtn: HTMLElement;
160
+ topNotaBtnGroup: HTMLElement;
161
+ topPlayBtn: HTMLButtonElement;
162
+ container?: HTMLElement;
163
+
164
+ tooltip: {
165
+ show: () => void;
166
+ };
167
+ };
168
+ }
169
+
170
+ interface IAudioUtils {
171
+ onRowOver: (audioNode: HTMLElement, event: MouseEvent) => unknown;
172
+ onRowOver_vkn: (audioNode: HTMLElement, event: MouseEvent) => unknown;
173
+ audioTupleToAudioObject: (audio: any[] | null) => AudioObject | null;
174
+ getLayer: () => AudioLayer;
175
+ [key: string]: any;
176
+ }
177
+
178
+ interface MessageBoxObject {
179
+ setControlsText: (html: string) => void;
180
+ guid: number;
181
+ boxLayoutNode: HTMLElement;
182
+ bodyNode: HTMLElement;
183
+ controlsTextNode: HTMLDivElement;
184
+ titleWrap: {
185
+ olddisplay: string;
186
+ };
187
+ btns: {
188
+ ok: HTMLButtonElement[];
189
+ cancel: HTMLButtonElement[];
190
+ };
191
+ preventHideLastWithCheck: boolean;
192
+ setOptions: (params: { [key: string]: string | number }) => void;
193
+ hide: () => void;
194
+ show: () => void;
195
+ showProgress: () => void;
196
+ content: (html: string) => void;
197
+ addButton: (title: string, callback: () => void) => void;
198
+ updateBoxCoords: () => void;
199
+ }
200
+
201
+ interface IBoxQueue {
202
+ _boxes: MessageBoxObject[];
203
+ curBox: number;
204
+ count: () => number;
205
+ hideAll: () => void;
206
+ hideBGClick: () => void;
207
+ hideLast: () => void;
208
+ hideLastCheck: () => void;
209
+ _hide: (boxId: number) => void;
210
+ _show: (boxId: number) => void;
211
+ }
212
+
213
+ type ColorSchemeMode = "dark" | "light" | "auto";
214
+
215
+ interface IColorScheme<Mode = ColorSchemeMode> {
216
+ subscribe(callback: () => void): () => void;
217
+ setScheme(isDark: boolean): void;
218
+ currentMode: Mode;
219
+ isExecuted: boolean;
220
+ isModeSavingAllowed: boolean;
221
+ isSchemeSavingAllowed: boolean;
222
+ schemesMap: {
223
+ bright_light: string;
224
+ space_gray: string;
225
+ };
226
+ currentIsDark: boolean;
227
+ setMode(mode: Mode, isVkn?: boolean): void;
228
+ applyScheme(element: HTMLElement, mode: "space_gray" | "vkcom_light"): void;
229
+ }
230
+
231
+ interface MVPlayer {
232
+ type: string;
233
+ author_id: number;
234
+ vid: number;
235
+ }
236
+
237
+ type PVCurPhotoSizeArray = [string, number, number];
238
+
239
+ interface ICur {
240
+ videoInlinePlayer: {
241
+ container: HTMLElement;
242
+ vars: MVPlayer;
243
+ };
244
+ viewAsBox?: () => void;
245
+ pid: number;
246
+ oid: number;
247
+ pvListId: string;
248
+ pvIndex: number;
249
+ pvShown: boolean;
250
+ pvPhoto: HTMLDivElement;
251
+ pvMoreActionsTooltip: {
252
+ _opts: {
253
+ delay: number;
254
+ offset: number[];
255
+ type: number;
256
+ id: string;
257
+ cls: string;
258
+ width: null | number;
259
+ appendToParent: boolean;
260
+ autoAdjustToViewport: boolean;
261
+ autoShow: boolean;
262
+ autoHide: boolean;
263
+ noHideOnClick: boolean;
264
+ arrowSize: string;
265
+ customShow: boolean;
266
+ align: string;
267
+ withCloseButton: boolean;
268
+ forceSide: string;
269
+ elClassWhenShown: string;
270
+ content: string;
271
+ defaultSide: string;
272
+ };
273
+ _arrowSize: number;
274
+ _visTO: boolean;
275
+ _sto: boolean;
276
+ _hto: boolean;
277
+ _reTimeout: boolean;
278
+ _isShown: boolean;
279
+ };
280
+ gftbxWasScroll?: number;
281
+ pvCurPhoto?: {
282
+ id: string;
283
+ base: string;
284
+ commcount: number;
285
+ commshown: number;
286
+ reply_form: string;
287
+ reply_options: {
288
+ rmedia_types: string[][];
289
+ };
290
+ date: string;
291
+ tags: number[];
292
+ album: string;
293
+ author: string;
294
+ author_photo: string;
295
+ author_href: string;
296
+ shares: number;
297
+ likes_tpl: string;
298
+ rotate_hash: string;
299
+ profile_data: {
300
+ useNewForm: string;
301
+ photo: string;
302
+ };
303
+ peType: number;
304
+ peHash: string;
305
+ actions: {
306
+ tag: 1 | 0;
307
+ edit: 1 | 0;
308
+ pe: boolean;
309
+ place: boolean;
310
+ del: 1 | 0;
311
+ rotate: 1 | 0;
312
+ comm: 1 | 0;
313
+ share: boolean;
314
+ prof: 1;
315
+ move: boolean;
316
+ cover: boolean;
317
+ };
318
+ desc: string;
319
+ hash: string;
320
+ attached_tags: {
321
+ max_tags_per_object: number;
322
+ hash: string;
323
+ };
324
+ x_src: string;
325
+ x_: PVCurPhotoSizeArray;
326
+ y_src: string;
327
+ y_: PVCurPhotoSizeArray;
328
+ z_src: string;
329
+ z_: PVCurPhotoSizeArray;
330
+ };
331
+ chooseMedia: (type: string, data: string, params: any) => void;
332
+ editing: string;
333
+ lastAddMedia: {
334
+ menu?: {
335
+ menuNode?: HTMLElement;
336
+ };
337
+ chooseMedia: (type: string, attach: string, options: any) => void;
338
+ checkURL: (url: string, maxCharacters: number, obj: object) => void;
339
+ onChange: any;
340
+ };
341
+ menuSettings: { [key: string]: { [key: string]: 1 | 0 } };
342
+ imClassicInterface: boolean;
343
+ module: string;
344
+ peer: number;
345
+ gid: number;
346
+ moreFrom?: string;
347
+ storyLayer?: {
348
+ activeStory: {
349
+ authorImg: HTMLImageElement;
350
+ contStickers: HTMLDivElement;
351
+ curPreviewUrl: string;
352
+ story: {
353
+ data: {
354
+ id: number;
355
+ owner_id: number;
356
+ raw_id: string;
357
+ } & ({ type: "photo"; photo_url: string } | { type: "video"; video_url: string });
358
+ photo?: HTMLElement;
359
+ video?: HTMLElement;
360
+ };
361
+ data: {
362
+ id: string;
363
+ authorId: string;
364
+ story: {
365
+ raw_id: string;
366
+ };
367
+ };
368
+ actionButtons: HTMLDivElement;
369
+ };
370
+ stories: HTMLElement;
371
+ };
372
+ pvBottomActions?: HTMLDivElement;
373
+ owner?: {
374
+ id: number;
375
+ name: string;
376
+ photo: string;
377
+ };
378
+ lang?: Record<string, any>;
379
+
380
+ // vuv
381
+ videoFilter_notsafe?: HTMLElement;
382
+ searchText?: string;
383
+ searchInputEl?: HTMLElement;
384
+
385
+ // posting
386
+ wall_tpl?: IWallInitProps["wall_tpl"];
387
+ _back?: {
388
+ hide?: (() => void)[];
389
+ show?: (() => void)[];
390
+ };
391
+ options?: {
392
+ post_hash?: string;
393
+ wall_tpl?: IWallInitProps["wall_tpl"];
394
+ suggesting?: boolean;
395
+ };
396
+ wallType?: string;
397
+ postSent?: boolean;
398
+ donutAttachesApproved?: boolean;
399
+ pgStart?: unknown;
400
+ wallPostCb: () => void;
401
+ onWallSendPost?: () => void;
402
+ }
403
+
404
+ interface ElementTooltipOpts {
405
+ align?: string;
406
+ appendTo?: HTMLElement;
407
+ appendToParent?: boolean;
408
+ arrowSize?: string;
409
+ autoAdjustToViewport?: boolean;
410
+ autoHide?: boolean;
411
+ autoShow?: boolean;
412
+ bottomGap?: number;
413
+ cls: string;
414
+ content: HTMLElement;
415
+ id: string;
416
+ noHideOnClick?: boolean;
417
+ show: () => void;
418
+ }
419
+
420
+ interface IElementTooltip {
421
+ prototype: {
422
+ updatePosition: () => void;
423
+ _ttel: HTMLElement;
424
+ _opts?: ElementTooltipOpts;
425
+ show: () => void;
426
+ };
427
+ }
428
+
429
+ interface IVK {
430
+ platform?: string;
431
+ ads_rotate_interval: number;
432
+ al: number;
433
+ id: number;
434
+ sex: 0 | 1 | 2;
435
+ intnat: boolean;
436
+ host: string;
437
+ __domain: string;
438
+ loginDomain: string;
439
+ logoutUrl: string;
440
+ lang: number;
441
+ statsMeta: {
442
+ platform: string;
443
+ st: boolean;
444
+ time: number;
445
+ hash: string;
446
+ reloadVersion: number;
447
+ };
448
+ loaderNavSection: string;
449
+ version: boolean;
450
+ stDomains: number;
451
+ stDomain: string;
452
+ navDomain: string;
453
+ navPostfix: string;
454
+ wsTransport: string;
455
+ stExcludedMasks: string[];
456
+ zero: boolean;
457
+ contlen: number;
458
+ loginscheme: "https" | "http";
459
+ navPrefix: string;
460
+ dt: number;
461
+ fs: number;
462
+ ts: number;
463
+ tz: number;
464
+ vcost: number;
465
+ time: number[];
466
+ sampleUser: number;
467
+ spentLastSendTS: number;
468
+ a11y: number;
469
+ statusExportHash: string;
470
+ audioAdsConfig: {
471
+ enabled: boolean;
472
+ sections: string[];
473
+ day_limit_reached: boolean;
474
+ sign: string;
475
+ };
476
+ longViewTestGroup: null;
477
+ cma: number;
478
+ lpConfig: {
479
+ enabled: number;
480
+ key: string;
481
+ ts: number;
482
+ url: string;
483
+ lpstat: number;
484
+ sseUrl: string;
485
+ id: number;
486
+ };
487
+ audioInlinePlayerTpl: string;
488
+ pe: Record<string, number>;
489
+ isCallsDevEnv: boolean;
490
+ started: number;
491
+ balance: string;
492
+ pvbig: number;
493
+ body_class: string;
494
+ isVideoStandalone?: boolean;
495
+ }
496
+
497
+ interface MeConvoMessage {
498
+ kind: "Node";
499
+ item: {
500
+ kind: "Normal";
501
+ cmid: number;
502
+ randomId: number;
503
+ peerId: number;
504
+ authorId: number;
505
+ chunks: {
506
+ kind: string;
507
+ text: string;
508
+ }[];
509
+ isOut: bigint;
510
+ isSilent: boolean;
511
+ isImportant: boolean;
512
+ isPlayed: boolean;
513
+ isUnavailable: boolean;
514
+ sentAt: number;
515
+ isPinned: boolean;
516
+ expireTTL?: number;
517
+ };
518
+ }
519
+
520
+ interface MEConvoMember {
521
+ canKick: boolean;
522
+ isMessageRequest: boolean;
523
+ isRestrictedToWrite: boolean;
524
+ joinDate: number;
525
+ peerId: number;
526
+ }
527
+
528
+ interface MEConvo {
529
+ push: {
530
+ mode: string;
531
+ };
532
+ acl?: {
533
+ canChangeInfo: boolean;
534
+ canChangeInviteLink: boolean;
535
+ canChangePin: boolean;
536
+ canInvite: boolean;
537
+ canPromoteUsers: boolean;
538
+ canSeeInviteLink: boolean;
539
+ canModerate: boolean;
540
+ canCopyChat: boolean;
541
+ canCall: boolean;
542
+ canUseMassMentions: boolean;
543
+ canChangeServiceType: boolean;
544
+ canChangeStyle: boolean;
545
+ canSendReactions: boolean;
546
+ };
547
+ peerId: number;
548
+ ownerId: number;
549
+ isCommunityChat: boolean;
550
+ isDonut: boolean;
551
+ members?: {
552
+ count: number;
553
+ members: Map<number, MEConvoMember>;
554
+ memberIds: Set<number>;
555
+ invitedIds: Set<number>;
556
+ incognitoMembers: Map<number, MEConvoMember>;
557
+ adminIds: Set<number>;
558
+ };
559
+ history: {
560
+ confirmed: MeConvoMessage[];
561
+ };
562
+ unreadCount: number;
563
+ unreadReactions: Map<number, number>;
564
+ }
565
+
566
+ interface MEOrganiserFolder {
567
+ unreadCount: number;
568
+ unreadUnmutedCount: number;
569
+ all: {
570
+ peerIds: unknown;
571
+ boundaryMinorId: null;
572
+ hasMore: boolean;
573
+ };
574
+ unread: {
575
+ peerIds: unknown;
576
+ boundaryMinorId: null;
577
+ hasMore: boolean;
578
+ };
579
+ hasSublist: boolean;
580
+ type: "default";
581
+ id: number;
582
+ name: string;
583
+ }
584
+
585
+ interface MEUserKind {
586
+ imageStatus?: {
587
+ name: string;
588
+ images: {
589
+ url: string;
590
+ width: number;
591
+ height: number;
592
+ }[];
593
+ };
594
+ kind: "User";
595
+ id: number;
596
+ firstName: string;
597
+ firstNameGen: string;
598
+ firstNameAcc: string;
599
+ lastName: string;
600
+ lastNameGen: string;
601
+ lastNameAcc: string;
602
+ screenName: string;
603
+ photoId: number;
604
+ isVerified: boolean;
605
+ isBlacklisted: boolean;
606
+ isBlacklistedByMe: boolean;
607
+ isProfileClosed: boolean;
608
+ isDeactivated: boolean;
609
+ canCall: boolean;
610
+ canChangeFriendship: boolean;
611
+ canInviteToChats: boolean;
612
+ canMessage: boolean;
613
+ hasDefaultPhoto: boolean;
614
+ followersCount: number;
615
+ bdate: string;
616
+ phone: string;
617
+ photo?: {
618
+ baseUrl?: string;
619
+ photo50?: string;
620
+ photo100?: string;
621
+ photo200?: string;
622
+ };
623
+ }
624
+
625
+ interface MeChatKind {
626
+ kind: "Chat";
627
+ id: number;
628
+ title: string;
629
+ hasDefaultPhoto: boolean;
630
+ canCall: boolean;
631
+ photo?: {
632
+ baseUrl?: string;
633
+ photo50?: string;
634
+ photo100?: string;
635
+ photo200?: string;
636
+ };
637
+ }
638
+
639
+ interface MEGroupKind {
640
+ kind: "Group";
641
+ id: number;
642
+ type: string;
643
+ name: string;
644
+ screenName: string;
645
+ activity: string;
646
+ memberCount: number;
647
+ isDeactivated: boolean;
648
+ isVerified: boolean;
649
+ isClosed: boolean;
650
+ canMessage: boolean;
651
+ canChangeMembership: boolean;
652
+ isBlacklistedByMe: boolean;
653
+ site: string;
654
+ adminLevel: number;
655
+ photo?: {
656
+ baseUrl?: string;
657
+ photo50?: string;
658
+ photo100?: string;
659
+ photo200?: string;
660
+ };
661
+ }
662
+
663
+ interface METhemeStyle {
664
+ id: string;
665
+ appearanceId: string;
666
+ backgroundId: string;
667
+ title: string;
668
+ sortId: number;
669
+ updateTime: number;
670
+ }
671
+
672
+ interface MEContextState {
673
+ VKCOMRightColumnConvos: {
674
+ isVisible: boolean;
675
+ };
676
+ videoMessageShapes: Map<number, string>;
677
+ themeStyles: Map<string, METhemeStyle>;
678
+ peers: Map<number, MEUserKind | MeChatKind | MEGroupKind>;
679
+ organisers: {
680
+ filters: {
681
+ all?: MEOrganiserFolder;
682
+ };
683
+ folders?: MEOrganiserFolder[];
684
+ };
685
+ viewer: {
686
+ id: number;
687
+ settings: {
688
+ themeStyleId: string;
689
+ };
690
+ };
691
+ convos: Map<number, MEConvo>;
692
+ ownerId: number;
693
+ }
694
+
695
+ interface IMECommonContext {
696
+ store: {
697
+ getState(): MEContextState;
698
+ featureFlags: {
699
+ [feature: string]: boolean | number;
700
+ };
701
+ dispatch: (event: any) => void;
702
+ subscribe: (callback: (state: MEContextState) => void) => () => void;
703
+ };
704
+ browserEnv: {
705
+ lang: {
706
+ use(key: string): string;
707
+ };
708
+ api: {
709
+ fetch(method: string, options: Record<string, any>): Promise<any>;
710
+ };
711
+ vkIntegration?: boolean;
712
+ };
713
+ engine: {
714
+ fetchMaster(url: string, options: Record<string, any>, signal: AbortSignal): Promise<any>;
715
+ [key: string]: any;
716
+ };
717
+ [key: string]: any;
718
+ }
719
+
720
+ interface NavGoLoc {
721
+ 0?: string;
722
+ sel?: string;
723
+ msgid?: number;
724
+ section?: string;
725
+ source?: string | number;
726
+ cmid?: string;
727
+ /**
728
+ * модалки
729
+ */
730
+ z?: string;
731
+ /**
732
+ * профиль в мессенджере
733
+ */
734
+ rp?: string;
735
+ /**
736
+ * пост в модалке
737
+ */
738
+ w?: string;
739
+ }
740
+
741
+ interface NavGoLocProps extends NavGoLoc {
742
+ act?: string;
743
+ z?: string;
744
+ modal?: string;
745
+ rp?: string;
746
+ invite_link?: string;
747
+ invite_chat_id?: string;
748
+ chat?: string;
749
+ }
750
+
751
+ interface INav {
752
+ removeNavigationStartListener: (callback: (locStr: string) => void) => void;
753
+ subscribeOnModuleEvaluated: (callback: () => void, once?: boolean) => void;
754
+ unsubscribeOnModuleEvaluated: (callback: () => void) => void;
755
+ strLoc: string;
756
+ toStr(string: NavGoLocProps): string;
757
+ fromStr(string: string): NavGoLocProps;
758
+ objLoc: NavGoLocProps;
759
+ setLoc(loc: NavGoLocProps): void;
760
+ go(loc: NavGoLoc | string, ev?: string | React.MouseEvent<HTMLElement, MouseEvent>["nativeEvent"] | null | Event, opts?: Record<string, any>): void;
761
+ change: (loc: NavGoLoc, ev?: string | React.MouseEvent<HTMLElement, MouseEvent>["nativeEvent"] | null, opts?: Record<string, any>) => void;
762
+ onLocationChange: (handler: (locStr: string) => unknown) => () => void;
763
+ addNavigationStartListener: (handler: (locStr: string) => unknown) => () => void;
764
+ }
765
+
766
+ interface IPhotoview {
767
+ MIN_WIDTH: number;
768
+ MIN_HEIGHT: number;
769
+ PE_MIN_WIDTH: number;
770
+ PE_MIN_HEIGHT: number;
771
+ SIDE_COLUMN_WIDTH: number;
772
+ SIDE_MIN_GAP: number;
773
+ VERTICAL_MIN_GAP: number;
774
+ BOTTOM_BAR_HEIGHT: number;
775
+ SIDE_NAV_PANELS_MAX_WIDTH: number;
776
+ SIDE_NAV_PANELS_MIN_WIDTH: number;
777
+ LEFT_RIGHT_NAV_RATIO: number;
778
+ blank: string;
779
+ cacheSize: 3;
780
+ allSizes: ["x", "y", "z", "w"];
781
+ PE_V1: number;
782
+ PE_V2: number;
783
+ PE_V3: number;
784
+
785
+ doShow: () => void;
786
+ show: (id?: string, index?: number) => void;
787
+
788
+ [key: string]: any;
789
+ }
790
+
791
+ interface IUIActionsMenu {
792
+ show(element: HTMLElement, idk?: unknown, options?: { delay?: number }): void;
793
+ hide(element: HTMLElement, idk?: unknown, options?: { delay?: number }): void;
794
+ keyToggle(element: HTMLElement | undefined, event: React.MouseEvent<HTMLDivElement, MouseEvent> | Event): void;
795
+ }
796
+
797
+ interface IVideoInitializer {
798
+ initPlayer: (videoBoxWrap: HTMLElement, type: string, players: MVPlayer[]) => unknown;
799
+ vk: (videoBoxWrap: HTMLElement, player: MVPlayer) => unknown;
800
+ unionPlayer: (videoBoxWrap: HTMLElement, player: MVPlayer) => unknown;
801
+ }
802
+
803
+ interface IVKApiLoginResponse {
804
+ access_token: string;
805
+ expires: number;
806
+ logout_hash: string;
807
+ user_id: number;
808
+ }
809
+
810
+ interface IVKApi {
811
+ api<T>(
812
+ method: string,
813
+ params: Record<string, any>,
814
+ m?: {
815
+ grouping?: boolean;
816
+ },
817
+ signal?: {
818
+ signal?: AbortSignal;
819
+ },
820
+ ): Promise<T>;
821
+ login(method: string): Promise<IVKApiLoginResponse>;
822
+ }
823
+
824
+ interface IStories {
825
+ show(
826
+ id: string,
827
+ data?: {
828
+ fromEl?: HTMLElement;
829
+ },
830
+ ): void;
831
+
832
+ [key: string]: any;
833
+ }
834
+
835
+ declare global {
836
+ var Hls: typeof HlsJs | undefined;
837
+ var TopNotifier: ITopNotifier;
838
+ var Wall: IWall;
839
+ var ajax: Iajax;
840
+ var ap: IAudioPlayer;
841
+ var AudioPlayerUI: new (props?: unknown) => IAudioPlayerUI;
842
+ var audioPlayerUI: IAudioPlayerUI;
843
+ var AudioUtils: IAudioUtils;
844
+ var boxQueue: IBoxQueue;
845
+ var Calls: Record<string, any>;
846
+ var colorScheme: IColorScheme;
847
+ var cur: ICur;
848
+ var ElementTooltip: IElementTooltip;
849
+ var vk: IVK;
850
+ var getAudioPlayer: () => IAudioPlayer;
851
+ var MECommonContext: IMECommonContext;
852
+ var nav: INav;
853
+ var Photoview: IPhotoview;
854
+ var uiActionsMenu: IUIActionsMenu;
855
+ var VideoInitializer: IVideoInitializer;
856
+ var vkApi: IVKApi;
857
+ var Stories: IStories;
858
+ }
859
+
860
+ export type { AudioLayer, AudioMainArtist, AudioObject, ColorSchemeMode, ElementTooltipOpts, IAudioPlayer, IAudioPlayerUI, IAudioUtils, IBoxQueue, IColorScheme, ICur, IElementTooltip, IMECommonContext, INav, IPhotoview, IStories, ITopNotifier, IUIActionsMenu, IVK, IVKApi, IVKApiLoginResponse, IVideoInitializer, IWall, IWallInitProps, Iajax, MEContextState, MEConvo, MEConvoMember, MEGroupKind, MEOrganiserFolder, METhemeStyle, MEUserKind, MVPlayer, MeChatKind, MeConvoMessage, MessageBoxObject, PVCurPhotoSizeArray };