mdm-im-v3 2.0.3 → 2.1.2

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 (33) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/README.md +69 -0
  3. package/dist/{FilePreview-CqsQCI87.js → FilePreview-Cz0KMA_m.js} +2 -2
  4. package/dist/assets/extracted/bc26358d.woff +0 -0
  5. package/dist/assets/extracted/be398edc.ttf +0 -0
  6. package/dist/assets/extracted/de12ee92.woff2 +0 -0
  7. package/dist/core.es.js +2 -2
  8. package/dist/{index-C4_SSULD.js → index-C8koozDu.js} +697 -47
  9. package/dist/{index-B3MeQmIL.js → index-GiaKeCU7.js} +1550 -3296
  10. package/dist/{index-D8yaC3ve.js → index-P9_HILzo.js} +3700 -480
  11. package/dist/index.es.js +1 -1
  12. package/dist/style/index.css +1 -1
  13. package/dist-h5/{ChatHistoryH5-Deqlnw3u.js → ChatHistoryH5-CKDqKPl-.js} +2 -2
  14. package/dist-h5/{ChatPageH5-wyLGmPhW.js → ChatPageH5-FXZxtcQr.js} +975 -164
  15. package/dist-h5/{ChatSettingsH5-DD3dnI-H.js → ChatSettingsH5-PackrlPt.js} +169 -27
  16. package/dist-h5/{CreateGroupH5-3LIujy3_.js → CreateGroupH5-CO_ZH36_.js} +2 -2
  17. package/dist-h5/{GroupAnnouncementH5-5EpXQs5V.js → GroupAnnouncementH5-yUDR5kYW.js} +1 -1
  18. package/dist-h5/{GroupInfoDialogH5-fgcrbRyp.js → GroupInfoDialogH5-BRk-_mEn.js} +1 -1
  19. package/dist-h5/{GroupMembersH5-DX2lxrLB.js → GroupMembersH5-BVHUF2mG.js} +1 -1
  20. package/dist-h5/{GroupNoticeH5-DVXrcmP9.js → GroupNoticeH5-KA-L2h9r.js} +1 -1
  21. package/dist-h5/{MemberDetailH5-DAVUVr30.js → MemberDetailH5-BfAE0nx-.js} +2 -2
  22. package/dist-h5/{SearchPageH5-BiGhJF4U.js → SearchPageH5-B6B_U4hW.js} +2 -2
  23. package/dist-h5/{SelectMembersH5-DbrSnTg3.js → SelectMembersH5-CrPoBnYp.js} +2 -2
  24. package/dist-h5/assets/extracted/bc26358d.woff +0 -0
  25. package/dist-h5/assets/extracted/be398edc.ttf +0 -0
  26. package/dist-h5/assets/extracted/de12ee92.woff2 +0 -0
  27. package/dist-h5/{imChat-Cz45JFEl.js → imChat-pGlpr8Vj.js} +40 -7
  28. package/dist-h5/index.es.js +2 -2
  29. package/dist-h5/{indexH5-Cx3l8YDq.js → indexH5-CCvF1MV7.js} +3591 -329
  30. package/dist-h5/{indexH5-BZ77bUNH.js → indexH5-sKvS7t3k.js} +101 -69
  31. package/dist-h5/style/index-h5.css +1 -1
  32. package/package.json +72 -70
  33. package/dist-h5/request-rky8JSGo.js +0 -44
@@ -1,11 +1,10 @@
1
1
  import { computed, ref, watch, onBeforeUnmount, openBlock, createElementBlock, createVNode, unref, withCtx, createElementVNode, withModifiers, createTextVNode, toDisplayString, createCommentVNode, Fragment, renderList, createBlock, normalizeClass, normalizeStyle, inject, provide, onMounted, nextTick } from "vue";
2
2
  import { useRouter } from "vue-router";
3
3
  import { NavBar, Icon, Badge, PullRefresh, SwipeCell, Loading, Empty, Button, ActionSheet, Cell, showDialog, showToast } from "vant";
4
- import { u as useChatStore, I as IM_CVS_TYPE, g as getGroupAvatarBg, i as isDefaultAvatar, a as getAvatarBg, b as getAvatarText, c as cloneDeep, d as useMessage, e as useUsers, f as useConversations, h as useMsgList, m as mittBus, j as IM_LOGIN_STATUS, k as handleUrl, l as IM_LOGIN_PLATFORM } from "./indexH5-Cx3l8YDq.js";
4
+ import { u as useChatStore, I as IM_CVS_TYPE, g as getGroupAvatarBg, i as isDefaultAvatar, a as getAvatarBg, b as getAvatarText, c as cloneDeep, d as getConversationBurnSetting, e as useMessage, f as useUsers, h as useConversations, j as useMsgList, m as mittBus, k as IM_LOGIN_STATUS, p as preserveBurnInEx, l as IM_LOGIN_PLATFORM, s as sleep, n as handleUrl } from "./indexH5-CCvF1MV7.js";
5
5
  import "element-plus";
6
- import "./request-rky8JSGo.js";
7
6
  import { d as defaultAvatar } from "./default_avatar-BE2kit_X.js";
8
- import { J as JoinGroupDialogH5, G as GroupInfoDialogH5 } from "./GroupInfoDialogH5-fgcrbRyp.js";
7
+ import { J as JoinGroupDialogH5, G as GroupInfoDialogH5 } from "./GroupInfoDialogH5-BRk-_mEn.js";
9
8
  const _hoisted_1 = { class: "chat-list-h5" };
10
9
  const _hoisted_2 = { key: 0 };
11
10
  const _hoisted_3 = { style: { "display": "flex", "align-items": "center", "gap": "20px" } };
@@ -21,32 +20,37 @@ const _hoisted_9 = ["src"];
21
20
  const _hoisted_10 = { class: "cvs-item__info" };
22
21
  const _hoisted_11 = { class: "cvs-item__top" };
23
22
  const _hoisted_12 = { class: "cvs-item__name" };
24
- const _hoisted_13 = { class: "cvs-item__time" };
25
- const _hoisted_14 = { class: "cvs-item__msg" };
26
- const _hoisted_15 = {
23
+ const _hoisted_13 = {
24
+ key: 0,
25
+ title: "你已开启阅后即焚",
26
+ style: { "margin-left": "2px", "font-size": "11px", "line-height": "1" }
27
+ };
28
+ const _hoisted_14 = { class: "cvs-item__time" };
29
+ const _hoisted_15 = { class: "cvs-item__msg" };
30
+ const _hoisted_16 = {
27
31
  key: 0,
28
32
  class: "cvs-item__msg-prefix"
29
33
  };
30
- const _hoisted_16 = ["innerHTML"];
31
- const _hoisted_17 = {
34
+ const _hoisted_17 = ["innerHTML"];
35
+ const _hoisted_18 = {
32
36
  key: 1,
33
37
  class: "iconfont mdm-icon-miandarao cvs-item__msg-mute"
34
38
  };
35
- const _hoisted_18 = { class: "swipe-actions" };
36
- const _hoisted_19 = ["onClick"];
39
+ const _hoisted_19 = { class: "swipe-actions" };
37
40
  const _hoisted_20 = ["onClick"];
38
41
  const _hoisted_21 = ["onClick"];
39
- const _hoisted_22 = {
42
+ const _hoisted_22 = ["onClick"];
43
+ const _hoisted_23 = {
40
44
  key: 1,
41
45
  class: "cvs-loading-more"
42
46
  };
43
- const _hoisted_23 = {
47
+ const _hoisted_24 = {
44
48
  key: 2,
45
49
  class: "cvs-loading-finished"
46
50
  };
47
- const _hoisted_24 = { class: "more-actions-list" };
48
- const _hoisted_25 = { class: "more-action-item" };
49
- const _hoisted_26 = { class: "more-action-text" };
51
+ const _hoisted_25 = { class: "more-actions-list" };
52
+ const _hoisted_26 = { class: "more-action-item" };
53
+ const _hoisted_27 = { class: "more-action-text" };
50
54
  const _sfc_main$1 = {
51
55
  __name: "ChatListH5",
52
56
  props: {
@@ -77,6 +81,10 @@ const _sfc_main$1 = {
77
81
  const chatMessage = useChatStore();
78
82
  computed(() => chatMessage.getBaseUrl);
79
83
  const unReadCount = computed(() => chatMessage.getUnReadCount);
84
+ const hasBurnSetting = (cvs) => {
85
+ var _a;
86
+ return getConversationBurnSetting(cvs, (_a = chatMessage.getUserInfo) == null ? void 0 : _a.userID).enabled;
87
+ };
80
88
  const router = useRouter();
81
89
  const emits = __emit;
82
90
  ref("");
@@ -385,7 +393,7 @@ const _sfc_main$1 = {
385
393
  "right-width": effectiveUnreadCount(item) > 0 ? 195 : 130
386
394
  }, {
387
395
  right: withCtx(() => [
388
- createElementVNode("div", _hoisted_18, [
396
+ createElementVNode("div", _hoisted_19, [
389
397
  effectiveUnreadCount(item) > 0 ? (openBlock(), createElementBlock("span", {
390
398
  key: 0,
391
399
  class: "swipe-btn swipe-btn--read",
@@ -393,7 +401,7 @@ const _sfc_main$1 = {
393
401
  }, [..._cache[6] || (_cache[6] = [
394
402
  createElementVNode("i", { class: "iconfont mdm-icon-clear" }, null, -1),
395
403
  createElementVNode("span", null, "已读", -1)
396
- ])], 8, _hoisted_19)) : createCommentVNode("", true),
404
+ ])], 8, _hoisted_20)) : createCommentVNode("", true),
397
405
  createElementVNode("span", {
398
406
  class: normalizeClass(["swipe-btn", item.isPinned ? "swipe-btn--unpin" : "swipe-btn--pin"]),
399
407
  onClick: withModifiers(($event) => handleTogglePinItem(item), ["stop"])
@@ -402,14 +410,14 @@ const _sfc_main$1 = {
402
410
  class: normalizeClass(item.isPinned ? "iconfont mdm-icon-quxiaozhiding" : "iconfont mdm-icon-zhiding")
403
411
  }, null, 2),
404
412
  createElementVNode("span", null, toDisplayString(item.isPinned ? "取消置顶" : "置顶"), 1)
405
- ], 10, _hoisted_20),
413
+ ], 10, _hoisted_21),
406
414
  createElementVNode("span", {
407
415
  class: "swipe-btn swipe-btn--delete",
408
416
  onClick: withModifiers(($event) => handleDeleteItem(item), ["stop"])
409
417
  }, [..._cache[7] || (_cache[7] = [
410
418
  createElementVNode("i", { class: "iconfont mdm-icon-yichu" }, null, -1),
411
419
  createElementVNode("span", null, "删除", -1)
412
- ])], 8, _hoisted_21)
420
+ ])], 8, _hoisted_22)
413
421
  ])
414
422
  ]),
415
423
  default: withCtx(() => [
@@ -449,16 +457,19 @@ const _sfc_main$1 = {
449
457
  ]),
450
458
  createElementVNode("div", _hoisted_10, [
451
459
  createElementVNode("div", _hoisted_11, [
452
- createElementVNode("span", _hoisted_12, toDisplayString(item.showName), 1),
453
- createElementVNode("span", _hoisted_13, toDisplayString(item.latestMsgSendTimeStr), 1)
460
+ createElementVNode("span", _hoisted_12, [
461
+ createTextVNode(toDisplayString(item.showName) + " ", 1),
462
+ hasBurnSetting(item) ? (openBlock(), createElementBlock("span", _hoisted_13, "🔥")) : createCommentVNode("", true)
463
+ ]),
464
+ createElementVNode("span", _hoisted_14, toDisplayString(item.latestMsgSendTimeStr), 1)
454
465
  ]),
455
- createElementVNode("div", _hoisted_14, [
456
- item.recvMsgOpt !== 0 && effectiveUnreadCount(item) ? (openBlock(), createElementBlock("span", _hoisted_15, " [" + toDisplayString(effectiveUnreadCount(item)) + "条] ", 1)) : createCommentVNode("", true),
466
+ createElementVNode("div", _hoisted_15, [
467
+ item.recvMsgOpt !== 0 && effectiveUnreadCount(item) ? (openBlock(), createElementBlock("span", _hoisted_16, " [" + toDisplayString(effectiveUnreadCount(item)) + "条] ", 1)) : createCommentVNode("", true),
457
468
  createElementVNode("span", {
458
469
  class: "cvs-item__msg-text",
459
470
  innerHTML: item.latestMsg
460
- }, null, 8, _hoisted_16),
461
- item.recvMsgOpt !== 0 ? (openBlock(), createElementBlock("span", _hoisted_17)) : createCommentVNode("", true)
471
+ }, null, 8, _hoisted_17),
472
+ item.recvMsgOpt !== 0 ? (openBlock(), createElementBlock("span", _hoisted_18)) : createCommentVNode("", true)
462
473
  ])
463
474
  ])
464
475
  ], 42, _hoisted_6)
@@ -467,10 +478,10 @@ const _sfc_main$1 = {
467
478
  }, 1032, ["right-width"]);
468
479
  }), 128))
469
480
  ])) : createCommentVNode("", true),
470
- listLoading.value ? (openBlock(), createElementBlock("div", _hoisted_22, [
481
+ listLoading.value ? (openBlock(), createElementBlock("div", _hoisted_23, [
471
482
  createVNode(unref(Loading), { size: "20" }),
472
483
  _cache[8] || (_cache[8] = createElementVNode("span", null, "加载中...", -1))
473
- ])) : listFinished.value && displayList.value.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_23, "没有更多了")) : createCommentVNode("", true)
484
+ ])) : listFinished.value && displayList.value.length > 0 ? (openBlock(), createElementBlock("div", _hoisted_24, "没有更多了")) : createCommentVNode("", true)
474
485
  ]),
475
486
  _: 1
476
487
  }, 8, ["modelValue"]),
@@ -508,7 +519,7 @@ const _sfc_main$1 = {
508
519
  "cancel-text": "取消"
509
520
  }, {
510
521
  default: withCtx(() => [
511
- createElementVNode("div", _hoisted_24, [
522
+ createElementVNode("div", _hoisted_25, [
512
523
  (openBlock(true), createElementBlock(Fragment, null, renderList(moreActionItems.value, (action) => {
513
524
  return openBlock(), createBlock(unref(Cell), {
514
525
  key: action.value,
@@ -516,11 +527,11 @@ const _sfc_main$1 = {
516
527
  onClick: ($event) => onMoreActionSelect(action)
517
528
  }, {
518
529
  title: withCtx(() => [
519
- createElementVNode("div", _hoisted_25, [
530
+ createElementVNode("div", _hoisted_26, [
520
531
  createElementVNode("i", {
521
532
  class: normalizeClass(["iconfont", action.icon, "more-action-icon"])
522
533
  }, null, 2),
523
- createElementVNode("span", _hoisted_26, toDisplayString(action.text), 1)
534
+ createElementVNode("span", _hoisted_27, toDisplayString(action.text), 1)
524
535
  ])
525
536
  ]),
526
537
  _: 2
@@ -608,7 +619,7 @@ const _sfc_main = {
608
619
  provide("loadMessageCount", pageCount);
609
620
  }
610
621
  const chatMessage = useChatStore();
611
- const { initIMSDK } = useMessage();
622
+ const { initIMSDK, waitForSyncFinish } = useMessage();
612
623
  const baseUrl = computed(() => chatMessage.getBaseUrl);
613
624
  const localUser = computed(() => chatMessage.getUserInfo);
614
625
  computed(() => chatMessage.getLoginStatus);
@@ -660,9 +671,11 @@ const _sfc_main = {
660
671
  };
661
672
  const onHideCvs = async (conversationID) => {
662
673
  if (!conversationID || !imInstance) return;
674
+ const target = conversationList.value.find((item) => item.conversationID === conversationID);
663
675
  const bool = await (imInstance == null ? void 0 : imInstance.setConversation({
664
676
  conversationID,
665
- ex: JSON.stringify({ isHidden: true })
677
+ // 隐藏标记与阅后即焚配置共存于 ex,写入时需保留 burn
678
+ ex: preserveBurnInEx(JSON.stringify({ isHidden: true }), target == null ? void 0 : target.ex)
666
679
  }));
667
680
  if (bool) {
668
681
  const list = cloneDeep(conversationList.value);
@@ -700,12 +713,14 @@ const _sfc_main = {
700
713
  };
701
714
  const onMarkUnread = async (conversationID) => {
702
715
  if (!conversationID || !imInstance) return;
716
+ const target = conversationList.value.find((item) => item.conversationID === conversationID);
703
717
  try {
704
718
  await (imInstance == null ? void 0 : imInstance.setConversation({
705
719
  conversationID,
706
720
  isRead: false,
707
721
  recvMsgOpt: 0,
708
- ex: JSON.stringify({ isRead: true })
722
+ // 保留 burn(阅后即焚)配置
723
+ ex: preserveBurnInEx(JSON.stringify({ isRead: true }), target == null ? void 0 : target.ex)
709
724
  }));
710
725
  showToast("已标记为未读");
711
726
  } catch {
@@ -714,12 +729,14 @@ const _sfc_main = {
714
729
  };
715
730
  const onClearMarkUnread = async (conversationID) => {
716
731
  if (!conversationID || !imInstance) return;
732
+ const target = conversationList.value.find((item) => item.conversationID === conversationID);
717
733
  try {
718
734
  await (imInstance == null ? void 0 : imInstance.setConversation({
719
735
  conversationID,
720
736
  isRead: true,
721
737
  recvMsgOpt: 0,
722
- ex: ""
738
+ // 清除 isRead 标记时保留 burn(阅后即焚)配置
739
+ ex: preserveBurnInEx("", target == null ? void 0 : target.ex)
723
740
  }));
724
741
  showToast("已清除未读标记");
725
742
  } catch {
@@ -789,7 +806,9 @@ const _sfc_main = {
789
806
  info.onlineStatus = statusInfo == null ? void 0 : statusInfo.status;
790
807
  info.platformIDs = (statusInfo == null ? void 0 : statusInfo.platformIDs) || [];
791
808
  if (info.ex && (info.ex.indexOf("isHidden") > -1 || info.ex.indexOf("isDelete") > -1) && info.conversationID) {
792
- await (imInstance == null ? void 0 : imInstance.setConversation({ conversationID: info.conversationID, ex: "" }));
809
+ const restoredEx = preserveBurnInEx("", info.ex);
810
+ await (imInstance == null ? void 0 : imInstance.setConversation({ conversationID: info.conversationID, ex: restoredEx }));
811
+ info.ex = restoredEx;
793
812
  handleConversationList([info], "add");
794
813
  await nextTick();
795
814
  (_b = chatListRef.value) == null ? void 0 : _b.handleSelectChat(info.conversationID);
@@ -817,6 +836,8 @@ const _sfc_main = {
817
836
  const getCvsList = async () => {
818
837
  const allData = [];
819
838
  const allValidData = [];
839
+ startIndex = 0;
840
+ initCount = 0;
820
841
  while (allValidData.length < 100 && initCount < 3) {
821
842
  let currentPage = [];
822
843
  let retryCount = 0;
@@ -831,14 +852,14 @@ const _sfc_main = {
831
852
  initCount++;
832
853
  }
833
854
  if (retryCount >= 3) break;
855
+ await sleep(300 * retryCount);
834
856
  }
835
857
  allData.push(...currentPage);
836
- const validItems = currentPage.filter(
837
- (item) => {
838
- var _a, _b, _c;
839
- return !item.ex || (((_a = item.ex) == null ? void 0 : _a.indexOf("isHidden")) > -1 || ((_b = item.ex) == null ? void 0 : _b.indexOf("isDeleted")) > -1) && item.unreadCount > 0 || ((_c = item.ex) == null ? void 0 : _c.indexOf("isRead")) > -1;
840
- }
841
- );
858
+ const validItems = currentPage.filter((item) => {
859
+ const ex = typeof item.ex === "string" ? item.ex : "";
860
+ const hidden = ex.indexOf("isHidden") > -1 || ex.indexOf("isDeleted") > -1;
861
+ return !hidden || item.unreadCount > 0;
862
+ });
842
863
  allValidData.push(...validItems);
843
864
  if (allValidData.length >= pageSize) break;
844
865
  const nextStart = startIndex + pageSize;
@@ -872,42 +893,48 @@ const _sfc_main = {
872
893
  }
873
894
  }
874
895
  };
875
- const afterLogged = () => {
896
+ const afterLogged = async () => {
876
897
  imInstance = window["imInstance"];
877
898
  fetchAllApplications();
899
+ const syncDone = await waitForSyncFinish();
900
+ console.log(`[IM] 服务端同步${syncDone ? "已完成" : "等待超时"},开始拉取会话列表`);
878
901
  if (effectiveGroupID.value) {
879
- setTimeout(async () => {
880
- try {
881
- const info = await (imInstance == null ? void 0 : imInstance.getOneConversation(effectiveGroupID.value, IM_CVS_TYPE.Group));
882
- if (info == null ? void 0 : info.conversationID) {
883
- handleConversationList([info], "init", handleMessage);
884
- }
885
- } catch {
902
+ try {
903
+ const info = await (imInstance == null ? void 0 : imInstance.getOneConversation(effectiveGroupID.value, IM_CVS_TYPE.Group));
904
+ if (info == null ? void 0 : info.conversationID) {
905
+ handleConversationList([info], "init", handleMessage);
886
906
  }
887
- }, 500);
907
+ } catch {
908
+ }
888
909
  } else {
889
- setTimeout(async () => {
890
- const list = await getCvsList();
891
- if ((list == null ? void 0 : list.length) > 0) {
892
- handleConversationList(list, "init", handleMessage);
893
- const hideCvsList = list.filter((item) => {
894
- var _a, _b;
895
- return ((_a = item.ex) == null ? void 0 : _a.indexOf("isHidden")) > -1 || ((_b = item.ex) == null ? void 0 : _b.indexOf("isDeleted")) > -1;
896
- });
897
- if (hideCvsList.length > 0) {
898
- for (let i = 0; i < hideCvsList.length; i++) {
899
- const cvs = hideCvsList[i];
900
- const bool = await (imInstance == null ? void 0 : imInstance.setConversation({ conversationID: cvs.conversationID, ex: "" }));
901
- if (bool) {
902
- cvs.ex = "";
903
- handleConversationList([cvs], "update", handleMessage);
904
- }
910
+ const list = await getCvsList();
911
+ if ((list == null ? void 0 : list.length) > 0) {
912
+ const localFallbacks = conversationList.value.filter((item) => item.isLocalFallback);
913
+ handleConversationList(list, "init", handleMessage);
914
+ const restFallbacks = localFallbacks.filter(
915
+ (item) => !conversationList.value.some((cvs) => cvs.conversationID === item.conversationID)
916
+ );
917
+ if (restFallbacks.length > 0) {
918
+ conversationList.value = [...restFallbacks, ...conversationList.value];
919
+ }
920
+ const hideCvsList = list.filter((item) => {
921
+ var _a, _b;
922
+ return ((_a = item.ex) == null ? void 0 : _a.indexOf("isHidden")) > -1 || ((_b = item.ex) == null ? void 0 : _b.indexOf("isDeleted")) > -1;
923
+ });
924
+ if (hideCvsList.length > 0) {
925
+ for (let i = 0; i < hideCvsList.length; i++) {
926
+ const cvs = hideCvsList[i];
927
+ const restoredEx = preserveBurnInEx("", cvs.ex);
928
+ const bool = await (imInstance == null ? void 0 : imInstance.setConversation({ conversationID: cvs.conversationID, ex: restoredEx }));
929
+ if (bool) {
930
+ cvs.ex = restoredEx;
931
+ handleConversationList([cvs], "update", handleMessage);
905
932
  }
906
933
  }
907
934
  }
908
- await nextTick();
909
- initMessagePage();
910
- }, 500);
935
+ }
936
+ await nextTick();
937
+ initMessagePage();
911
938
  }
912
939
  };
913
940
  const handleGroupApplicationAdded = (data) => {
@@ -961,6 +988,11 @@ const _sfc_main = {
961
988
  }
962
989
  chatMessage.setUserInfo({
963
990
  userID: obj.loginCode || props.baseConfig.loginCode,
991
+ imIdentityVersion: obj.imIdentityVersion || 1,
992
+ imUserID: obj.imUserID || "",
993
+ tenantID: obj.tenantID || "",
994
+ businessUserID: obj.businessUserID || "",
995
+ loginCode: obj.loginCode || "",
964
996
  nickname: obj.userName || props.baseConfig.userName,
965
997
  apiUrl: obj.apiUrl || props.baseConfig.apiUrl,
966
998
  wsUrl: ((_a = obj.apiUrl) == null ? void 0 : _a.replace(/^http/, "ws")) || ((_b = props.baseConfig.apiUrl) == null ? void 0 : _b.replace(/^http/, "ws")),