@ndscnj/roomkit-web-vue3 25.12.2318 → 25.12.2320

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 (41) hide show
  1. package/es/components/RoomFooter/index/index.d.ts +13 -3
  2. package/es/components/RoomFooter/index/indexPC.vue.d.ts +5 -1
  3. package/es/components/RoomFooter/index/indexPC.vue.mjs +1 -1
  4. package/es/components/RoomFooter/index/indexPC.vue2.mjs +8 -2
  5. package/es/components/RoomFooter/voteControl.vue.mjs +1 -1
  6. package/es/components/RoomFooter/voteControl.vue2.mjs +26 -13
  7. package/es/components/RoomInvite/useRoomInviteHooks.d.ts +1 -1
  8. package/es/components/RoomSidebar/useSideBarHooks.d.ts +1 -1
  9. package/es/components/RoomVote/index.d.ts +17 -1
  10. package/es/components/RoomVote/indexPC.vue.d.ts +10 -1
  11. package/es/components/RoomVote/indexPC.vue.mjs +1 -1
  12. package/es/components/RoomVote/indexPC.vue2.mjs +5 -1
  13. package/es/index.mjs +155 -163
  14. package/es/locales/zh-CN.mjs +1 -1
  15. package/es/services/manager/componentManager.d.ts +1 -1
  16. package/es/services/manager/componentManager.mjs +2 -0
  17. package/es/stores/basic.d.ts +1 -1
  18. package/lib/components/RoomFooter/index/index.d.ts +13 -3
  19. package/lib/components/RoomFooter/index/indexPC.vue.d.ts +5 -1
  20. package/lib/components/RoomFooter/index/indexPC.vue.js +1 -1
  21. package/lib/components/RoomFooter/index/indexPC.vue2.js +8 -2
  22. package/lib/components/RoomFooter/voteControl.vue.js +1 -1
  23. package/lib/components/RoomFooter/voteControl.vue2.js +25 -12
  24. package/lib/components/RoomInvite/useRoomInviteHooks.d.ts +1 -1
  25. package/lib/components/RoomSidebar/useSideBarHooks.d.ts +1 -1
  26. package/lib/components/RoomVote/index.d.ts +17 -1
  27. package/lib/components/RoomVote/indexPC.vue.d.ts +10 -1
  28. package/lib/components/RoomVote/indexPC.vue.js +1 -1
  29. package/lib/components/RoomVote/indexPC.vue2.js +4 -0
  30. package/lib/index.js +155 -163
  31. package/lib/locales/zh-CN.js +1 -1
  32. package/lib/services/manager/componentManager.d.ts +1 -1
  33. package/lib/services/manager/componentManager.js +2 -0
  34. package/lib/stores/basic.d.ts +1 -1
  35. package/package.json +1 -1
  36. package/src/TUIRoom/components/RoomFooter/index/indexPC.vue +6 -0
  37. package/src/TUIRoom/components/RoomFooter/voteControl.vue +30 -33
  38. package/src/TUIRoom/components/RoomVote/indexPC.vue +3 -0
  39. package/src/TUIRoom/locales/zh-CN.ts +1 -1
  40. package/src/TUIRoom/services/manager/componentManager.ts +2 -0
  41. package/src/TUIRoom/stores/basic.ts +1 -1
@@ -1,7 +1,7 @@
1
1
  import { LAYOUT } from '../constants/render';
2
2
  import { TUINetwork } from '../../../node_modules/@tencentcloud/tuiroom-engine-js';
3
3
 
4
- type SideBarType = 'chat' | 'invite' | 'manage-member' | 'more' | 'transfer-leave' | 'apply' | 'aiTranscription' | 'vote' | '';
4
+ type SideBarType = 'chat' | 'invite' | 'manage-member' | 'vote' | 'more' | 'transfer-leave' | 'apply' | 'aiTranscription' | '';
5
5
  type SceneType = 'chat' | 'default';
6
6
  interface BasicState {
7
7
  sdkAppId: number;
@@ -3,18 +3,28 @@ declare const Index: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('v
3
3
  }, string, import('vue').PublicProps, Readonly<{}> & Readonly<{
4
4
  "onShow-overlay"?: ((...args: any[]) => any) | undefined;
5
5
  }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any> | ({
6
- new (...args: any[]): import('vue').CreateComponentPublicInstanceWithMixins<Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, import('vue').PublicProps, {}, true, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {}, any, import('vue').ComponentProvideOptions, {
6
+ new (...args: any[]): import('vue').CreateComponentPublicInstanceWithMixins<Readonly<{}> & Readonly<{
7
+ "onOn-vote"?: ((...args: any[]) => any) | undefined;
8
+ }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
9
+ "on-vote": (...args: any[]) => void;
10
+ }, import('vue').PublicProps, {}, true, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {}, any, import('vue').ComponentProvideOptions, {
7
11
  P: {};
8
12
  B: {};
9
13
  D: {};
10
14
  C: {};
11
15
  M: {};
12
16
  Defaults: {};
13
- }, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, {}>;
17
+ }, Readonly<{}> & Readonly<{
18
+ "onOn-vote"?: ((...args: any[]) => any) | undefined;
19
+ }>, {}, {}, {}, {}, {}>;
14
20
  __isFragment?: never;
15
21
  __isTeleport?: never;
16
22
  __isSuspense?: never;
17
- } & import('vue').ComponentOptionsBase<Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, {}, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps & (new () => {
23
+ } & import('vue').ComponentOptionsBase<Readonly<{}> & Readonly<{
24
+ "onOn-vote"?: ((...args: any[]) => any) | undefined;
25
+ }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
26
+ "on-vote": (...args: any[]) => void;
27
+ }, string, {}, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps & (new () => {
18
28
  $slots: {
19
29
  content?(_: {}): any;
20
30
  };
@@ -1,7 +1,11 @@
1
1
  declare function __VLS_template(): {
2
2
  content?(_: {}): any;
3
3
  };
4
- declare const __VLS_component: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
4
+ declare const __VLS_component: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
5
+ "on-vote": (...args: any[]) => void;
6
+ }, string, import('vue').PublicProps, Readonly<{}> & Readonly<{
7
+ "onOn-vote"?: ((...args: any[]) => any) | undefined;
8
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
5
9
  declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, ReturnType<typeof __VLS_template>>;
6
10
  export default _default;
7
11
  type __VLS_WithTemplateSlots<T, S> = T & {
@@ -3,5 +3,5 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
3
3
  const indexPC_vue_vue_type_script_setup_true_lang = require("./indexPC.vue2.js");
4
4
  ;/* empty css */
5
5
  const _pluginVue_exportHelper = require("../../../_virtual/_plugin-vue_export-helper.js");
6
- const indexPc = /* @__PURE__ */ _pluginVue_exportHelper.default(indexPC_vue_vue_type_script_setup_true_lang.default, [["__scopeId", "data-v-6b90d75f"]]);
6
+ const indexPc = /* @__PURE__ */ _pluginVue_exportHelper.default(indexPC_vue_vue_type_script_setup_true_lang.default, [["__scopeId", "data-v-604d8288"]]);
7
7
  exports.default = indexPc;
@@ -75,11 +75,16 @@ const _hoisted_3 = { class: "center-container" };
75
75
  const _hoisted_4 = { class: "right-container" };
76
76
  const _sfc_main = /* @__PURE__ */ Vue.defineComponent({
77
77
  __name: "indexPC",
78
- setup(__props) {
78
+ emits: ["on-vote"],
79
+ setup(__props, { emit: __emit }) {
79
80
  const { roomStore, isMaster, isAdmin, isAudience } = useRoomFooterHooks.default();
80
81
  function handleControlClick(name) {
81
82
  useMitt.default.emit("experience-communication", name);
82
83
  }
84
+ const emit = __emit;
85
+ const onVote = (data) => {
86
+ emit("on-vote", { code: data.visible, message: "vote" });
87
+ };
83
88
  return (_ctx, _cache) => {
84
89
  return Vue.openBlock(), Vue.createElementBlock("div", _hoisted_1, [
85
90
  Vue.createElementVNode("div", _hoisted_2, [
@@ -135,7 +140,8 @@ const _sfc_main = /* @__PURE__ */ Vue.defineComponent({
135
140
  })) : Vue.createCommentVNode("", true),
136
141
  Vue.createVNode(voteControl.default, {
137
142
  class: "center-container-item",
138
- onClick: _cache[10] || (_cache[10] = ($event) => handleControlClick("voteControl"))
143
+ onClick: _cache[10] || (_cache[10] = ($event) => handleControlClick("voteControl")),
144
+ onOnVote: onVote
139
145
  }, {
140
146
  content: Vue.withCtx(() => [
141
147
  Vue.renderSlot(_ctx.$slots, "content", {}, void 0, true)
@@ -3,5 +3,5 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
3
3
  const voteControl_vue_vue_type_script_setup_true_lang = require("./voteControl.vue2.js");
4
4
  ;/* empty css */
5
5
  const _pluginVue_exportHelper = require("../../_virtual/_plugin-vue_export-helper.js");
6
- const voteControl = /* @__PURE__ */ _pluginVue_exportHelper.default(voteControl_vue_vue_type_script_setup_true_lang.default, [["__scopeId", "data-v-63c91660"]]);
6
+ const voteControl = /* @__PURE__ */ _pluginVue_exportHelper.default(voteControl_vue_vue_type_script_setup_true_lang.default, [["__scopeId", "data-v-e8dc762c"]]);
7
7
  exports.default = voteControl;
@@ -9,10 +9,16 @@ require("../../utils/environment.js");
9
9
  require("mitt");
10
10
  require("../../services/manager/roomActionManager.js");
11
11
  require("@tencentcloud/tui-core");
12
- const _hoisted_1 = { class: "more-container" };
12
+ const IconButton = require("../common/base/IconButton.vue.js");
13
+ const uikitBaseComponentVue3 = require("@tencentcloud/uikit-base-component-vue3");
14
+ const index$1 = require("../RoomVote/index.js");
15
+ const _hoisted_1 = {
16
+ key: 0,
17
+ class: "vote-control-container"
18
+ };
13
19
  const _hoisted_2 = {
14
20
  key: 0,
15
- class: "tool-box"
21
+ class: "contact-container"
16
22
  };
17
23
  const _sfc_main = /* @__PURE__ */ Vue.defineComponent({
18
24
  __name: "voteControl",
@@ -26,6 +32,7 @@ const _sfc_main = /* @__PURE__ */ Vue.defineComponent({
26
32
  Vue.watch(isSidebarOpen, (newValue) => {
27
33
  showToolBox.value = newValue && false;
28
34
  });
35
+ const voteControlConfig = roomService.roomService.getComponentConfig("VoteControl");
29
36
  const emit = __emit;
30
37
  function toggleToolBox() {
31
38
  showToolBox.value = !showToolBox.value;
@@ -34,27 +41,33 @@ const _sfc_main = /* @__PURE__ */ Vue.defineComponent({
34
41
  visible: showToolBox.value
35
42
  });
36
43
  }
44
+ function handleOnCloseContact() {
45
+ showToolBox.value = false;
46
+ }
37
47
  return (_ctx, _cache) => {
38
- const _component_IconAIIcon = Vue.resolveComponent("IconAIIcon");
39
- const _component_icon_button = Vue.resolveComponent("icon-button");
40
- return Vue.openBlock(), Vue.createElementBlock("div", _hoisted_1, [
41
- Vue.createVNode(_component_icon_button, {
48
+ return Vue.unref(voteControlConfig).visible ? (Vue.openBlock(), Vue.createElementBlock("div", _hoisted_1, [
49
+ Vue.createVNode(IconButton.default, {
42
50
  "is-active": sidebarName.value === "vote",
43
51
  title: Vue.unref(t)("Vote"),
44
52
  onClickIcon: toggleToolBox
45
53
  }, {
46
54
  default: Vue.withCtx(() => [
47
- Vue.createVNode(_component_IconAIIcon, { size: "24" })
55
+ Vue.createVNode(Vue.unref(uikitBaseComponentVue3.IconAIIcon), { size: "24" })
48
56
  ]),
49
57
  _: 1
50
58
  }, 8, ["is-active", "title"]),
51
- Vue.createTextVNode(" " + Vue.toDisplayString(sidebarName.value) + " ", 1),
52
- Vue.createElementVNode("div", { onClick: toggleToolBox }, "测试"),
53
59
  !isSidebarOpen.value && showToolBox.value ? (Vue.openBlock(), Vue.createElementBlock("div", _hoisted_2, [
54
- _cache[0] || (_cache[0] = Vue.createTextVNode(" 123 ", -1)),
55
- Vue.renderSlot(_ctx.$slots, "content", {}, void 0, true)
60
+ Vue.createVNode(Vue.unref(index$1.default), {
61
+ ref: "contactRef",
62
+ onOnCloseContact: handleOnCloseContact
63
+ }, {
64
+ content: Vue.withCtx(() => [
65
+ Vue.renderSlot(_ctx.$slots, "content", {}, void 0, true)
66
+ ]),
67
+ _: 3
68
+ }, 512)
56
69
  ])) : Vue.createCommentVNode("", true)
57
- ]);
70
+ ])) : Vue.createCommentVNode("", true);
58
71
  };
59
72
  }
60
73
  });
@@ -76,5 +76,5 @@ export default function useRoomInvite(): {
76
76
  isVisible: boolean;
77
77
  }[]>;
78
78
  copyRoomIdAndRoomLink: () => void;
79
- sidebarName: import('vue').Ref<"" | "chat" | "invite" | "manage-member" | "more" | "transfer-leave" | "apply" | "aiTranscription" | "vote", "" | "chat" | "invite" | "manage-member" | "more" | "transfer-leave" | "apply" | "aiTranscription" | "vote">;
79
+ sidebarName: import('vue').Ref<"" | "chat" | "invite" | "manage-member" | "vote" | "more" | "transfer-leave" | "apply" | "aiTranscription", "" | "chat" | "invite" | "manage-member" | "vote" | "more" | "transfer-leave" | "apply" | "aiTranscription">;
80
80
  };
@@ -2,7 +2,7 @@ export default function useSideBar(): {
2
2
  t: any;
3
3
  isSidebarOpen: import('vue').Ref<boolean, boolean>;
4
4
  title: import('vue').ComputedRef<string>;
5
- sidebarName: import('vue').Ref<"" | "chat" | "invite" | "manage-member" | "more" | "transfer-leave" | "apply" | "aiTranscription" | "vote", "" | "chat" | "invite" | "manage-member" | "more" | "transfer-leave" | "apply" | "aiTranscription" | "vote">;
5
+ sidebarName: import('vue').Ref<"" | "chat" | "invite" | "manage-member" | "vote" | "more" | "transfer-leave" | "apply" | "aiTranscription", "" | "chat" | "invite" | "manage-member" | "vote" | "more" | "transfer-leave" | "apply" | "aiTranscription">;
6
6
  handleClose: (done: any) => void;
7
7
  showSideBar: import('vue').ComputedRef<boolean>;
8
8
  };
@@ -2,5 +2,21 @@ declare const Index: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('v
2
2
  "on-close-contact": (...args: any[]) => void;
3
3
  }, string, import('vue').PublicProps, Readonly<{}> & Readonly<{
4
4
  "onOn-close-contact"?: ((...args: any[]) => any) | undefined;
5
- }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any> | import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
5
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any> | ({
6
+ new (...args: any[]): import('vue').CreateComponentPublicInstanceWithMixins<Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, import('vue').PublicProps, {}, true, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {}, any, import('vue').ComponentProvideOptions, {
7
+ P: {};
8
+ B: {};
9
+ D: {};
10
+ C: {};
11
+ M: {};
12
+ Defaults: {};
13
+ }, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, {}>;
14
+ __isFragment?: never;
15
+ __isTeleport?: never;
16
+ __isSuspense?: never;
17
+ } & import('vue').ComponentOptionsBase<Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, {}, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps & (new () => {
18
+ $slots: {
19
+ content?(_: {}): any;
20
+ };
21
+ }));
6
22
  export default Index;
@@ -1,2 +1,11 @@
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>;
1
+ declare function __VLS_template(): {
2
+ content?(_: {}): any;
3
+ };
4
+ declare const __VLS_component: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
5
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, ReturnType<typeof __VLS_template>>;
2
6
  export default _default;
7
+ type __VLS_WithTemplateSlots<T, S> = T & {
8
+ new (): {
9
+ $slots: S;
10
+ };
11
+ };
@@ -3,5 +3,5 @@ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toString
3
3
  const indexPC_vue_vue_type_script_setup_true_lang = require("./indexPC.vue2.js");
4
4
  ;/* empty css */
5
5
  const _pluginVue_exportHelper = require("../../_virtual/_plugin-vue_export-helper.js");
6
- const indexPC = /* @__PURE__ */ _pluginVue_exportHelper.default(indexPC_vue_vue_type_script_setup_true_lang.default, [["__scopeId", "data-v-17479e8d"]]);
6
+ const indexPC = /* @__PURE__ */ _pluginVue_exportHelper.default(indexPC_vue_vue_type_script_setup_true_lang.default, [["__scopeId", "data-v-d1a96ffd"]]);
7
7
  exports.default = indexPC;
@@ -14,6 +14,7 @@ const _hoisted_5 = { class: "item-title" };
14
14
  const _hoisted_6 = { class: "more-item" };
15
15
  const _hoisted_7 = { class: "item-title" };
16
16
  const _hoisted_8 = { class: "more-content" };
17
+ const _hoisted_9 = { class: "more-item" };
17
18
  const _sfc_main = /* @__PURE__ */ Vue.defineComponent({
18
19
  __name: "indexPC",
19
20
  setup(__props) {
@@ -40,6 +41,9 @@ const _sfc_main = /* @__PURE__ */ Vue.defineComponent({
40
41
  class: "copy-icon",
41
42
  onClick: _cache[0] || (_cache[0] = ($event) => Vue.unref(onCopy)(Vue.unref(email)))
42
43
  })
44
+ ]),
45
+ Vue.createElementVNode("div", _hoisted_9, [
46
+ Vue.renderSlot(_ctx.$slots, "content", {}, void 0, true)
43
47
  ])
44
48
  ]);
45
49
  };
package/lib/index.js CHANGED
@@ -3928,17 +3928,106 @@ to {
3928
3928
  }
3929
3929
  .footer .mirror-container .mirror-text[data-v-21a63691] {
3930
3930
  margin-left: 4px;
3931
- }.more-container[data-v-63c91660] {
3931
+ }span[data-v-939000cb] {
3932
+ padding-right: 5px;
3933
+ font-size: 12px;
3934
+ font-weight: 500;
3935
+ line-height: 17px;
3936
+ }
3937
+ .contact-container-main[data-v-939000cb] {
3938
+ position: fixed;
3939
+ bottom: 0;
3940
+ display: flex;
3941
+ flex-direction: column;
3942
+ width: 100%;
3943
+ padding-bottom: 4vh;
3944
+ border-radius: 15px 15px 0 0;
3945
+ animation-name: popup-939000cb;
3946
+ animation-duration: 200ms;
3947
+ background-color: var(--bg-color-operate);
3948
+ }
3949
+ @keyframes popup-939000cb {
3950
+ from {
3951
+ transform: scaleY(0);
3952
+ transform-origin: bottom;
3953
+ }
3954
+ to {
3955
+ transform: scaleY(1);
3956
+ transform-origin: bottom;
3957
+ }
3958
+ }
3959
+ .contact-container-main .contact-title-main[data-v-939000cb] {
3960
+ display: flex;
3961
+ flex-direction: row;
3962
+ align-items: center;
3963
+ padding: 30px 0 20px 25px;
3964
+ font-family: "PingFang SC";
3965
+ font-size: 20px;
3966
+ font-style: normal;
3967
+ font-weight: 500;
3968
+ line-height: 24px;
3969
+ color: var(--text-color-primary);
3970
+ }
3971
+ .contact-container-main .contact-content-main[data-v-939000cb] {
3972
+ display: flex;
3973
+ flex-direction: row;
3974
+ align-items: center;
3975
+ width: 90%;
3976
+ height: 15%;
3977
+ padding: 0 0 0 25px;
3978
+ margin-bottom: 10px;
3979
+ }
3980
+ .contact-container-main .contact-title[data-v-939000cb],
3981
+ .contact-container-main .contact-content[data-v-939000cb] {
3982
+ width: 28%;
3983
+ font-family: "PingFang SC";
3984
+ font-size: 14px;
3985
+ font-style: normal;
3986
+ font-weight: 400;
3987
+ line-height: 20px;
3988
+ white-space: nowrap;
3989
+ color: var(--text-color-primary);
3990
+ }
3991
+ .contact-container-main .contact-content[data-v-939000cb] {
3992
+ width: 62%;
3993
+ overflow: hidden;
3994
+ font-size: 14px;
3995
+ text-overflow: ellipsis;
3996
+ white-space: nowrap;
3997
+ color: var(--text-color-secondary);
3998
+ }
3999
+ .contact-container-main .contact-bottom[data-v-939000cb] {
4000
+ width: 90%;
4001
+ padding-left: 40px;
4002
+ font-family: "PingFang SC";
4003
+ font-size: 12px;
4004
+ font-style: normal;
4005
+ font-weight: 400;
4006
+ line-height: 17px;
4007
+ text-align: center;
4008
+ color: var(--text-color-secondary);
4009
+ }
4010
+ .contact-container-main .copy[data-v-939000cb] {
4011
+ margin-left: 30px;
4012
+ color: var(--text-color-link);
4013
+ }
4014
+ .cancel[data-v-939000cb] {
4015
+ flex: 1;
4016
+ padding-right: 30px;
4017
+ font-size: 16px;
4018
+ font-weight: 400;
4019
+ text-align: end;
4020
+ }.more-container[data-v-d1a96ffd] {
3932
4021
  padding: 20px;
3933
4022
  }
3934
- .more-container .more-title[data-v-63c91660] {
4023
+ .more-container .more-title[data-v-d1a96ffd] {
3935
4024
  display: flex;
3936
4025
  align-items: center;
3937
4026
  }
3938
- .more-container .more-title .email-icon[data-v-63c91660] {
4027
+ .more-container .more-title .email-icon[data-v-d1a96ffd] {
3939
4028
  color: var(--uikit-color-gray-7);
3940
4029
  }
3941
- .more-container .more-title .more-notice[data-v-63c91660] {
4030
+ .more-container .more-title .more-notice[data-v-d1a96ffd] {
3942
4031
  width: 100%;
3943
4032
  height: 22px;
3944
4033
  padding-left: 8px;
@@ -3946,7 +4035,63 @@ to {
3946
4035
  font-weight: 400;
3947
4036
  line-height: 22px;
3948
4037
  color: var(--text-color-primary);
3949
- }.footer-container[data-v-6b90d75f] {
4038
+ }
4039
+ .more-container .more-item[data-v-d1a96ffd] {
4040
+ position: relative;
4041
+ display: flex;
4042
+ flex-direction: column;
4043
+ }
4044
+ .more-container .more-item[data-v-d1a96ffd]:not(:first-child) {
4045
+ margin-top: 20px;
4046
+ }
4047
+ .more-container .more-item:not(:first-child) .item-title[data-v-d1a96ffd] {
4048
+ width: 100%;
4049
+ padding-bottom: 8px;
4050
+ font-size: 14px;
4051
+ font-weight: 400;
4052
+ line-height: 22px;
4053
+ color: var(--text-color-primary);
4054
+ }
4055
+ .more-container .more-item:not(:first-child) .more-content[data-v-d1a96ffd] {
4056
+ position: relative;
4057
+ box-sizing: border-box;
4058
+ display: inline-block;
4059
+ flex: 1;
4060
+ height: 42px;
4061
+ padding: 10px 30px 10px 16px;
4062
+ overflow: hidden;
4063
+ font-size: 14px;
4064
+ font-weight: 500;
4065
+ line-height: 22px;
4066
+ text-overflow: ellipsis;
4067
+ white-space: nowrap;
4068
+ border-radius: 8px;
4069
+ outline: none;
4070
+ transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
4071
+ color: var(--text-color-primary);
4072
+ background-color: var(--bg-color-input);
4073
+ border: 1px solid var(--stroke-color-module);
4074
+ }
4075
+ .more-container .more-item:not(:first-child) .copy-icon[data-v-d1a96ffd] {
4076
+ position: absolute;
4077
+ top: 45px;
4078
+ right: 10px;
4079
+ display: flex;
4080
+ align-items: center;
4081
+ justify-content: center;
4082
+ cursor: pointer;
4083
+ color: var(--text-color-link);
4084
+ }.contact-container[data-v-e8dc762c] {
4085
+ position: fixed;
4086
+ top: 0;
4087
+ bottom: 0;
4088
+ left: 0;
4089
+ z-index: 11;
4090
+ box-sizing: border-box;
4091
+ width: 100vw;
4092
+ height: auto;
4093
+ background-color: var(--uikit-color-black-8);
4094
+ }.footer-container[data-v-604d8288] {
3950
4095
  position: absolute;
3951
4096
  bottom: 0;
3952
4097
  display: flex;
@@ -3960,25 +4105,25 @@ to {
3960
4105
  background-color: var(--bg-color-topbar);
3961
4106
  box-shadow: 0 -8px 30px var(--uikit-color-black-8);
3962
4107
  }
3963
- .footer-container .left-container[data-v-6b90d75f] {
4108
+ .footer-container .left-container[data-v-604d8288] {
3964
4109
  display: flex;
3965
4110
  align-items: center;
3966
4111
  height: 100%;
3967
4112
  }
3968
- .footer-container .left-container .left-container-item[data-v-6b90d75f]:not(:first-child) {
4113
+ .footer-container .left-container .left-container-item[data-v-604d8288]:not(:first-child) {
3969
4114
  margin-left: 1rem;
3970
4115
  }
3971
- .footer-container .center-container[data-v-6b90d75f] {
4116
+ .footer-container .center-container[data-v-604d8288] {
3972
4117
  position: relative;
3973
4118
  display: flex;
3974
4119
  align-items: center;
3975
4120
  height: 100%;
3976
4121
  margin: 0 auto;
3977
4122
  }
3978
- .footer-container .center-container .center-container-item[data-v-6b90d75f]:not(:first-child) {
4123
+ .footer-container .center-container .center-container-item[data-v-604d8288]:not(:first-child) {
3979
4124
  margin-left: 16px;
3980
4125
  }
3981
- .footer-container .right-container[data-v-6b90d75f] {
4126
+ .footer-container .right-container[data-v-604d8288] {
3982
4127
  display: flex;
3983
4128
  align-items: center;
3984
4129
  height: 100%;
@@ -4966,159 +5111,6 @@ to {
4966
5111
  right: 0;
4967
5112
  z-index: 101;
4968
5113
  height: 100%;
4969
- }span[data-v-939000cb] {
4970
- padding-right: 5px;
4971
- font-size: 12px;
4972
- font-weight: 500;
4973
- line-height: 17px;
4974
- }
4975
- .contact-container-main[data-v-939000cb] {
4976
- position: fixed;
4977
- bottom: 0;
4978
- display: flex;
4979
- flex-direction: column;
4980
- width: 100%;
4981
- padding-bottom: 4vh;
4982
- border-radius: 15px 15px 0 0;
4983
- animation-name: popup-939000cb;
4984
- animation-duration: 200ms;
4985
- background-color: var(--bg-color-operate);
4986
- }
4987
- @keyframes popup-939000cb {
4988
- from {
4989
- transform: scaleY(0);
4990
- transform-origin: bottom;
4991
- }
4992
- to {
4993
- transform: scaleY(1);
4994
- transform-origin: bottom;
4995
- }
4996
- }
4997
- .contact-container-main .contact-title-main[data-v-939000cb] {
4998
- display: flex;
4999
- flex-direction: row;
5000
- align-items: center;
5001
- padding: 30px 0 20px 25px;
5002
- font-family: "PingFang SC";
5003
- font-size: 20px;
5004
- font-style: normal;
5005
- font-weight: 500;
5006
- line-height: 24px;
5007
- color: var(--text-color-primary);
5008
- }
5009
- .contact-container-main .contact-content-main[data-v-939000cb] {
5010
- display: flex;
5011
- flex-direction: row;
5012
- align-items: center;
5013
- width: 90%;
5014
- height: 15%;
5015
- padding: 0 0 0 25px;
5016
- margin-bottom: 10px;
5017
- }
5018
- .contact-container-main .contact-title[data-v-939000cb],
5019
- .contact-container-main .contact-content[data-v-939000cb] {
5020
- width: 28%;
5021
- font-family: "PingFang SC";
5022
- font-size: 14px;
5023
- font-style: normal;
5024
- font-weight: 400;
5025
- line-height: 20px;
5026
- white-space: nowrap;
5027
- color: var(--text-color-primary);
5028
- }
5029
- .contact-container-main .contact-content[data-v-939000cb] {
5030
- width: 62%;
5031
- overflow: hidden;
5032
- font-size: 14px;
5033
- text-overflow: ellipsis;
5034
- white-space: nowrap;
5035
- color: var(--text-color-secondary);
5036
- }
5037
- .contact-container-main .contact-bottom[data-v-939000cb] {
5038
- width: 90%;
5039
- padding-left: 40px;
5040
- font-family: "PingFang SC";
5041
- font-size: 12px;
5042
- font-style: normal;
5043
- font-weight: 400;
5044
- line-height: 17px;
5045
- text-align: center;
5046
- color: var(--text-color-secondary);
5047
- }
5048
- .contact-container-main .copy[data-v-939000cb] {
5049
- margin-left: 30px;
5050
- color: var(--text-color-link);
5051
- }
5052
- .cancel[data-v-939000cb] {
5053
- flex: 1;
5054
- padding-right: 30px;
5055
- font-size: 16px;
5056
- font-weight: 400;
5057
- text-align: end;
5058
- }.more-container[data-v-17479e8d] {
5059
- padding: 20px;
5060
- }
5061
- .more-container .more-title[data-v-17479e8d] {
5062
- display: flex;
5063
- align-items: center;
5064
- }
5065
- .more-container .more-title .email-icon[data-v-17479e8d] {
5066
- color: var(--uikit-color-gray-7);
5067
- }
5068
- .more-container .more-title .more-notice[data-v-17479e8d] {
5069
- width: 100%;
5070
- height: 22px;
5071
- padding-left: 8px;
5072
- font-size: 14px;
5073
- font-weight: 400;
5074
- line-height: 22px;
5075
- color: var(--text-color-primary);
5076
- }
5077
- .more-container .more-item[data-v-17479e8d] {
5078
- position: relative;
5079
- display: flex;
5080
- flex-direction: column;
5081
- }
5082
- .more-container .more-item[data-v-17479e8d]:not(:first-child) {
5083
- margin-top: 20px;
5084
- }
5085
- .more-container .more-item:not(:first-child) .item-title[data-v-17479e8d] {
5086
- width: 100%;
5087
- padding-bottom: 8px;
5088
- font-size: 14px;
5089
- font-weight: 400;
5090
- line-height: 22px;
5091
- color: var(--text-color-primary);
5092
- }
5093
- .more-container .more-item:not(:first-child) .more-content[data-v-17479e8d] {
5094
- position: relative;
5095
- box-sizing: border-box;
5096
- display: inline-block;
5097
- flex: 1;
5098
- height: 42px;
5099
- padding: 10px 30px 10px 16px;
5100
- overflow: hidden;
5101
- font-size: 14px;
5102
- font-weight: 500;
5103
- line-height: 22px;
5104
- text-overflow: ellipsis;
5105
- white-space: nowrap;
5106
- border-radius: 8px;
5107
- outline: none;
5108
- transition: border-color 0.2s cubic-bezier(0.645, 0.045, 0.355, 1);
5109
- color: var(--text-color-primary);
5110
- background-color: var(--bg-color-input);
5111
- border: 1px solid var(--stroke-color-module);
5112
- }
5113
- .more-container .more-item:not(:first-child) .copy-icon[data-v-17479e8d] {
5114
- position: absolute;
5115
- top: 45px;
5116
- right: 10px;
5117
- display: flex;
5118
- align-items: center;
5119
- justify-content: center;
5120
- cursor: pointer;
5121
- color: var(--text-color-link);
5122
5114
  }.conversation[data-v-b897add1] {
5123
5115
  height: 100%;
5124
5116
  padding: 20px;
@@ -62,7 +62,7 @@ const ZH = {
62
62
  me: "我",
63
63
  Admin: "管理员",
64
64
  RoomOwner: "主持人",
65
- Vote: "表决",
65
+ "Vote": "表决",
66
66
  More: "更多",
67
67
  "AI Assistant": "AI 助手",
68
68
  "AI real-time conference content": "AI 实时会议内容",
@@ -4,7 +4,7 @@ interface IComponentManager {
4
4
  getComponentConfig(name: ComponentName): ComponentConfigItem;
5
5
  setComponentConfig(options: Partial<ComponentConfig>): boolean;
6
6
  }
7
- declare const componentNames: readonly ["SwitchTheme", "LayoutControl", "RoomInfo", "RoomLink", "Language", "UserInfo", "ScreenShare", "FullScreen", "ManageMemberControl", "InviteControl", "ChatControl", "MoreControl", "VirtualBackground", "BasicBeauty", "AIControl"];
7
+ declare const componentNames: readonly ["SwitchTheme", "LayoutControl", "RoomInfo", "RoomLink", "Language", "UserInfo", "ScreenShare", "FullScreen", "ManageMemberControl", "InviteControl", "ChatControl", "VoteControl", "MoreControl", "VirtualBackground", "BasicBeauty", "AIControl"];
8
8
  export type ComponentName = (typeof componentNames)[number];
9
9
  type ComponentConfigItem = {
10
10
  visible: boolean;
@@ -16,6 +16,7 @@ const componentNames = [
16
16
  "ManageMemberControl",
17
17
  "InviteControl",
18
18
  "ChatControl",
19
+ "VoteControl",
19
20
  "MoreControl",
20
21
  "VirtualBackground",
21
22
  "BasicBeauty",
@@ -34,6 +35,7 @@ const defaultConfig = {
34
35
  ManageMemberControl: { visible: true },
35
36
  InviteControl: { visible: true },
36
37
  ChatControl: { visible: true },
38
+ VoteControl: { visible: true },
37
39
  MoreControl: { visible: true },
38
40
  VirtualBackground: { visible: false },
39
41
  AIControl: { visible: false },