@opendesign-plus-test/components 0.0.1-rc.168 → 0.0.1-rc.169

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 (158) hide show
  1. package/dist/chunk-OElCookieNotice.cjs.js +1 -1
  2. package/dist/chunk-OElCookieNotice.es.js +40 -24
  3. package/dist/components/activity/OActivityApproval.vue.d.ts +169 -19
  4. package/dist/components/activity/OActivityForm.vue.d.ts +169 -19
  5. package/dist/components/activity/OActivityMyCalendar.vue.d.ts +18 -10
  6. package/dist/components/activity/index.d.ts +356 -52
  7. package/dist/components/banner/index.d.ts +6 -6
  8. package/dist/components/events/index.d.ts +20 -20
  9. package/dist/components/footer/index.d.ts +3 -3
  10. package/dist/components/header/OHeaderMobile.vue.d.ts +8 -8
  11. package/dist/components/header/components/HeaderNavMobile.vue.d.ts +1 -1
  12. package/dist/components/header/index.d.ts +28 -28
  13. package/dist/components/header-language-switcher/OHeaderLanguageSwitcher.vue.d.ts +1 -1
  14. package/dist/components/header-language-switcher/index.d.ts +3 -3
  15. package/dist/components/header-search/OHeaderSearch.vue.d.ts +43 -35
  16. package/dist/components/header-search/index.d.ts +37 -33
  17. package/dist/components/logo-swiper/index.d.ts +11 -11
  18. package/dist/components/markdown/OMarkdown.vue.d.ts +37 -0
  19. package/dist/components/markdown/OMarkdownPagination.vue.d.ts +25 -0
  20. package/dist/components/markdown/components/MarkdownCode.vue.d.ts +8 -0
  21. package/dist/components/markdown/components/MarkdownImage.vue.d.ts +8 -0
  22. package/dist/components/markdown/components/MarkdownPageTitle.vue.d.ts +12 -0
  23. package/dist/components/markdown/components/MarkdownTable.vue.d.ts +5 -0
  24. package/dist/components/markdown/components/MarkdownTableData.vue.d.ts +11 -0
  25. package/dist/components/markdown/components/MarkdownTableExpand.vue.d.ts +12 -0
  26. package/dist/components/markdown/components/MarkdownTitle.vue.d.ts +6 -0
  27. package/dist/components/markdown/replacer/code.d.ts +2 -0
  28. package/dist/components/markdown/replacer/h1.d.ts +7 -0
  29. package/dist/components/markdown/replacer/h2.d.ts +2 -0
  30. package/dist/components/markdown/replacer/img.d.ts +2 -0
  31. package/dist/components/markdown/replacer/table.d.ts +2 -0
  32. package/dist/components/meeting/OMeetingForm.vue.d.ts +169 -19
  33. package/dist/components/meeting/OMeetingMinutes.vue.d.ts +18 -10
  34. package/dist/components/meeting/OMeetingMyCalendar.vue.d.ts +18 -10
  35. package/dist/components/meeting/OMeetingPlayback.vue.d.ts +6 -6
  36. package/dist/components/meeting/OMeetingSendMinutesForm.vue.d.ts +1 -127
  37. package/dist/components/meeting/components/OMeetingPlaybackVideo.vue.d.ts +1 -1
  38. package/dist/components/meeting/components/OMeetingSendMinutesDialog.vue.d.ts +1 -127
  39. package/dist/components/meeting/components/OMeetingSigAside.vue.d.ts +9 -5
  40. package/dist/components/meeting/composables/useMeetingConfig.d.ts +1 -1
  41. package/dist/components/meeting/index.d.ts +233 -201
  42. package/dist/components/search/OSearchInput.vue.d.ts +43 -35
  43. package/dist/components/search/index.d.ts +35 -31
  44. package/dist/components/search/internal/SearchImageInput.vue.d.ts +37 -29
  45. package/dist/components/sig/index.d.ts +15 -15
  46. package/dist/components/summit/index.d.ts +12 -12
  47. package/dist/components/video/index.d.ts +3 -3
  48. package/dist/components.cjs.js +39 -39
  49. package/dist/components.css +1 -1
  50. package/dist/components.es.js +14099 -13224
  51. package/dist/index.d.ts +1 -0
  52. package/dist/treeshaking/_virtual/icon-copy2.mjs +20 -0
  53. package/dist/treeshaking/_virtual/icon-expand.mjs +21 -0
  54. package/dist/treeshaking/_virtual/icon-link.mjs +31 -0
  55. package/dist/treeshaking/_virtual/icon-more.mjs +19 -0
  56. package/dist/treeshaking/_virtual/icon-next.mjs +23 -0
  57. package/dist/treeshaking/_virtual/icon-unexpand.mjs +22 -0
  58. package/dist/treeshaking/assets/markdown/md-title-bg.png.mjs +4 -0
  59. package/dist/treeshaking/assets/svg-icons/icon-zoom.svg.mjs +4 -0
  60. package/dist/treeshaking/components/activity/OActivityApproval.vue.d.ts +169 -19
  61. package/dist/treeshaking/components/activity/OActivityForm.vue.d.ts +169 -19
  62. package/dist/treeshaking/components/activity/OActivityMyCalendar.vue.d.ts +18 -10
  63. package/dist/treeshaking/components/activity/index.d.ts +356 -52
  64. package/dist/treeshaking/components/banner/index.d.ts +6 -6
  65. package/dist/treeshaking/components/events/index.d.ts +20 -20
  66. package/dist/treeshaking/components/footer/index.d.ts +3 -3
  67. package/dist/treeshaking/components/header/OHeaderMobile.vue.d.ts +8 -8
  68. package/dist/treeshaking/components/header/components/HeaderNavMobile.vue.d.ts +1 -1
  69. package/dist/treeshaking/components/header/index.d.ts +28 -28
  70. package/dist/treeshaking/components/header-language-switcher/OHeaderLanguageSwitcher.vue.d.ts +1 -1
  71. package/dist/treeshaking/components/header-language-switcher/index.d.ts +3 -3
  72. package/dist/treeshaking/components/header-search/OHeaderSearch.vue.d.ts +43 -35
  73. package/dist/treeshaking/components/header-search/index.d.ts +37 -33
  74. package/dist/treeshaking/components/logo-swiper/index.d.ts +11 -11
  75. package/dist/treeshaking/components/markdown/OMarkdown.css +1133 -0
  76. package/dist/treeshaking/components/markdown/OMarkdown.vue.d.ts +37 -0
  77. package/dist/treeshaking/components/markdown/OMarkdown.vue.mjs +8 -0
  78. package/dist/treeshaking/components/markdown/OMarkdown.vue2.mjs +147 -0
  79. package/dist/treeshaking/components/markdown/OMarkdown2.css +14 -0
  80. package/dist/treeshaking/components/markdown/OMarkdownPagination.css +218 -0
  81. package/dist/treeshaking/components/markdown/OMarkdownPagination.vue.d.ts +25 -0
  82. package/dist/treeshaking/components/markdown/OMarkdownPagination.vue.mjs +7 -0
  83. package/dist/treeshaking/components/markdown/OMarkdownPagination.vue2.mjs +101 -0
  84. package/dist/treeshaking/components/markdown/components/MarkdownCode.css +12 -0
  85. package/dist/treeshaking/components/markdown/components/MarkdownCode.vue.d.ts +8 -0
  86. package/dist/treeshaking/components/markdown/components/MarkdownCode.vue.mjs +8 -0
  87. package/dist/treeshaking/components/markdown/components/MarkdownCode.vue2.mjs +121 -0
  88. package/dist/treeshaking/components/markdown/components/MarkdownCode2.css +128 -0
  89. package/dist/treeshaking/components/markdown/components/MarkdownImage.css +73 -0
  90. package/dist/treeshaking/components/markdown/components/MarkdownImage.vue.d.ts +8 -0
  91. package/dist/treeshaking/components/markdown/components/MarkdownImage.vue.mjs +7 -0
  92. package/dist/treeshaking/components/markdown/components/MarkdownImage.vue2.mjs +77 -0
  93. package/dist/treeshaking/components/markdown/components/MarkdownPageTitle.css +264 -0
  94. package/dist/treeshaking/components/markdown/components/MarkdownPageTitle.vue.d.ts +12 -0
  95. package/dist/treeshaking/components/markdown/components/MarkdownPageTitle.vue.mjs +7 -0
  96. package/dist/treeshaking/components/markdown/components/MarkdownPageTitle.vue2.mjs +160 -0
  97. package/dist/treeshaking/components/markdown/components/MarkdownTable.css +61 -0
  98. package/dist/treeshaking/components/markdown/components/MarkdownTable.vue.d.ts +5 -0
  99. package/dist/treeshaking/components/markdown/components/MarkdownTable.vue.mjs +7 -0
  100. package/dist/treeshaking/components/markdown/components/MarkdownTable.vue2.mjs +59 -0
  101. package/dist/treeshaking/components/markdown/components/MarkdownTableData.css +111 -0
  102. package/dist/treeshaking/components/markdown/components/MarkdownTableData.vue.d.ts +11 -0
  103. package/dist/treeshaking/components/markdown/components/MarkdownTableData.vue.mjs +7 -0
  104. package/dist/treeshaking/components/markdown/components/MarkdownTableData.vue2.mjs +181 -0
  105. package/dist/treeshaking/components/markdown/components/MarkdownTableExpand.css +66 -0
  106. package/dist/treeshaking/components/markdown/components/MarkdownTableExpand.vue.d.ts +12 -0
  107. package/dist/treeshaking/components/markdown/components/MarkdownTableExpand.vue.mjs +7 -0
  108. package/dist/treeshaking/components/markdown/components/MarkdownTableExpand.vue2.mjs +83 -0
  109. package/dist/treeshaking/components/markdown/components/MarkdownTitle.css +173 -0
  110. package/dist/treeshaking/components/markdown/components/MarkdownTitle.vue.d.ts +6 -0
  111. package/dist/treeshaking/components/markdown/components/MarkdownTitle.vue.mjs +7 -0
  112. package/dist/treeshaking/components/markdown/components/MarkdownTitle.vue2.mjs +69 -0
  113. package/dist/treeshaking/components/markdown/index.mjs +16 -0
  114. package/dist/treeshaking/components/markdown/replacer/code.d.ts +2 -0
  115. package/dist/treeshaking/components/markdown/replacer/code.mjs +22 -0
  116. package/dist/treeshaking/components/markdown/replacer/h1.d.ts +7 -0
  117. package/dist/treeshaking/components/markdown/replacer/h1.mjs +25 -0
  118. package/dist/treeshaking/components/markdown/replacer/h2.d.ts +2 -0
  119. package/dist/treeshaking/components/markdown/replacer/h2.mjs +22 -0
  120. package/dist/treeshaking/components/markdown/replacer/img.d.ts +2 -0
  121. package/dist/treeshaking/components/markdown/replacer/img.mjs +22 -0
  122. package/dist/treeshaking/components/markdown/replacer/table.d.ts +2 -0
  123. package/dist/treeshaking/components/markdown/replacer/table.mjs +22 -0
  124. package/dist/treeshaking/components/meeting/OMeetingForm.vue.d.ts +169 -19
  125. package/dist/treeshaking/components/meeting/OMeetingMinutes.css +14 -19
  126. package/dist/treeshaking/components/meeting/OMeetingMinutes.vue.d.ts +18 -10
  127. package/dist/treeshaking/components/meeting/OMeetingMinutes.vue.mjs +37 -39
  128. package/dist/treeshaking/components/meeting/OMeetingMinutesCopyDetail.css +17 -17
  129. package/dist/treeshaking/components/meeting/OMeetingMinutesCopyDetail.vue.mjs +1 -1
  130. package/dist/treeshaking/components/meeting/OMeetingMinutesCopyDetail.vue2.mjs +1 -2
  131. package/dist/treeshaking/components/meeting/OMeetingMyCalendar.vue.d.ts +18 -10
  132. package/dist/treeshaking/components/meeting/OMeetingPlayback.vue.d.ts +6 -6
  133. package/dist/treeshaking/components/meeting/OMeetingSendMinutesForm.css +66 -80
  134. package/dist/treeshaking/components/meeting/OMeetingSendMinutesForm.vue.d.ts +1 -127
  135. package/dist/treeshaking/components/meeting/OMeetingSendMinutesForm.vue.mjs +5 -212
  136. package/dist/treeshaking/components/meeting/OMeetingSendMinutesForm.vue2.mjs +181 -0
  137. package/dist/treeshaking/components/meeting/components/OMeetingPlaybackVideo.vue.d.ts +1 -1
  138. package/dist/treeshaking/components/meeting/components/OMeetingSendMinutesDialog.css +3 -3
  139. package/dist/treeshaking/components/meeting/components/OMeetingSendMinutesDialog.vue.d.ts +1 -127
  140. package/dist/treeshaking/components/meeting/components/OMeetingSendMinutesDialog.vue.mjs +1 -1
  141. package/dist/treeshaking/components/meeting/components/OMeetingSendMinutesDialog.vue2.mjs +2 -3
  142. package/dist/treeshaking/components/meeting/components/OMeetingSigAside.vue.d.ts +9 -5
  143. package/dist/treeshaking/components/meeting/composables/useMeetingConfig.d.ts +1 -1
  144. package/dist/treeshaking/components/meeting/index.d.ts +233 -201
  145. package/dist/treeshaking/components/meeting/index.mjs +6 -7
  146. package/dist/treeshaking/components/search/OSearchInput.vue.d.ts +43 -35
  147. package/dist/treeshaking/components/search/index.d.ts +35 -31
  148. package/dist/treeshaking/components/search/internal/SearchImageInput.vue.d.ts +37 -29
  149. package/dist/treeshaking/components/sig/index.d.ts +15 -15
  150. package/dist/treeshaking/components/summit/index.d.ts +12 -12
  151. package/dist/treeshaking/components/video/index.d.ts +3 -3
  152. package/dist/treeshaking/i18n/en.mjs +9 -1
  153. package/dist/treeshaking/i18n/zh.mjs +9 -1
  154. package/dist/treeshaking/index.d.ts +1 -0
  155. package/dist/treeshaking/index.mjs +3 -0
  156. package/dist/treeshaking/shared/theme.mjs +15 -3
  157. package/package.json +3 -3
  158. package/dist/treeshaking/components/meeting/OMeetingSendMinutesForm.vue3.mjs +0 -5
@@ -1,214 +1,7 @@
1
- import { defineComponent, ref, computed, watch, openBlock, createBlock, unref, withCtx, createVNode, createElementVNode, toDisplayString, createElementBlock, Fragment, renderList, createTextVNode, withDirectives, withKeys, withModifiers, vModelText } from "vue";
2
- import { useMessage, OForm, OFormItem, OTag, OInput, OScroller } from "@opensig/opendesign";
3
- import { useScreen } from "@opendesign-plus/composables";
4
- import { useMeetingConfig } from "./composables/useMeetingConfig.mjs";
5
- import { EMAIL_REGEX } from "./config.mjs";
6
- const _hoisted_1 = { class: "sender-text" };
7
- const _hoisted_2 = ["placeholder", "onKeydown"];
8
- const _hoisted_3 = { class: "email-body-content" };
9
- const _sfc_main = /* @__PURE__ */ defineComponent({
10
- __name: "OMeetingSendMinutesForm",
11
- props: {
12
- meeting: {},
13
- prefill: {},
14
- sendMinutesRequest: {}
15
- },
16
- emits: ["sent"],
17
- setup(__props, { expose: __expose, emit: __emit }) {
18
- const props = __props;
19
- const emit = __emit;
20
- const { t } = useMeetingConfig();
21
- const { lePadV } = useScreen();
22
- const message = useMessage(null);
23
- const formModel = ref({
24
- recipients: [],
25
- subject: ""
26
- });
27
- const extraInput = ref("");
28
- const sending = ref(false);
29
- const recipientInputRef = ref(null);
30
- const formRef = ref(null);
31
- const rules = {
32
- recipients: [{ required: true, message: t("meeting.sendMinutesEmptyRecipient") }],
33
- subject: [
34
- { required: true, message: t("meeting.sendMinutesSubjectPlaceholder") },
35
- {
36
- validator: (value) => {
37
- if (value.length > 128) {
38
- return {
39
- type: "danger",
40
- message: t("meeting.sendMinutesSubjectTooLong")
41
- };
42
- }
43
- }
44
- }
45
- ]
46
- };
47
- const sender = computed(() => {
48
- var _a;
49
- return ((_a = props.meeting) == null ? void 0 : _a.email_list) || "";
50
- });
51
- const defaultSubject = () => {
52
- if (!props.meeting) return "";
53
- const { topic, date } = props.meeting;
54
- return t("meeting.sendMinutesSubjectDefault", [topic, date || ""]);
55
- };
56
- const reset = () => {
57
- var _a;
58
- if (!props.meeting) return;
59
- formModel.value.recipients = props.prefill && props.prefill.length ? [...props.prefill] : [props.meeting.email_list];
60
- formModel.value.subject = defaultSubject();
61
- extraInput.value = "";
62
- (_a = formRef.value) == null ? void 0 : _a.clearValidate();
63
- };
64
- watch([() => props.meeting, () => props.prefill], reset, { immediate: true });
65
- const addRecipient = () => {
66
- var _a;
67
- const val = extraInput.value.trim();
68
- if (!val) return;
69
- if (!EMAIL_REGEX.test(val)) {
70
- message.warning({ content: t("meeting.sendMinutesEmailInvalid") });
71
- return;
72
- }
73
- if (formModel.value.recipients.includes(val)) {
74
- message.warning({ content: t("meeting.sendMinutesEmailExists") });
75
- return;
76
- }
77
- formModel.value.recipients.push(val);
78
- extraInput.value = "";
79
- (_a = formRef.value) == null ? void 0 : _a.clearValidate("recipients");
80
- };
81
- const removeRecipient = (email) => {
82
- formModel.value.recipients = formModel.value.recipients.filter((r) => r !== email);
83
- };
84
- const handleBackspace = (e) => {
85
- if (extraInput.value === "" && formModel.value.recipients.length > 0) {
86
- e.preventDefault();
87
- formModel.value.recipients.pop();
88
- }
89
- };
90
- const focusRecipientInput = () => {
91
- var _a;
92
- (_a = recipientInputRef.value) == null ? void 0 : _a.focus();
93
- };
94
- const send = async () => {
95
- var _a;
96
- if (!props.meeting || !props.sendMinutesRequest) return;
97
- const results = await ((_a = formRef.value) == null ? void 0 : _a.validate());
98
- if (results == null ? void 0 : results.some((r) => !!r)) return;
99
- try {
100
- sending.value = true;
101
- const log = await props.sendMinutesRequest(props.meeting.id, formModel.value.recipients, formModel.value.subject);
102
- message.success({ content: t("meeting.sendMinutesSent") });
103
- emit("sent", log);
104
- } finally {
105
- sending.value = false;
106
- }
107
- };
108
- __expose({ send, sending, reset });
109
- return (_ctx, _cache) => {
110
- return openBlock(), createBlock(unref(OForm), {
111
- ref_key: "formRef",
112
- ref: formRef,
113
- class: "o-meeting-send-minutes",
114
- model: formModel.value,
115
- "has-required": "",
116
- layout: unref(lePadV) ? "v" : "h"
117
- }, {
118
- default: withCtx(() => [
119
- createVNode(unref(OFormItem), {
120
- label: unref(t)("meeting.sendMinutesSender")
121
- }, {
122
- default: withCtx(() => [
123
- createElementVNode("span", _hoisted_1, toDisplayString(sender.value), 1)
124
- ]),
125
- _: 1
126
- }, 8, ["label"]),
127
- createVNode(unref(OFormItem), {
128
- label: unref(t)("meeting.sendMinutesRecipient"),
129
- field: "recipients",
130
- rules: rules.recipients
131
- }, {
132
- default: withCtx(() => [
133
- createElementVNode("div", {
134
- class: "o-meeting-send-minutes-recipient-editor",
135
- onClick: focusRecipientInput
136
- }, [
137
- (openBlock(true), createElementBlock(Fragment, null, renderList(formModel.value.recipients, (email) => {
138
- return openBlock(), createBlock(unref(OTag), {
139
- key: email,
140
- class: "recipient-tag",
141
- variant: "solid",
142
- color: "primary",
143
- closable: "",
144
- onClose: ($event) => removeRecipient(email)
145
- }, {
146
- default: withCtx(() => [
147
- createTextVNode(toDisplayString(email), 1)
148
- ]),
149
- _: 2
150
- }, 1032, ["onClose"]);
151
- }), 128)),
152
- withDirectives(createElementVNode("input", {
153
- ref_key: "recipientInputRef",
154
- ref: recipientInputRef,
155
- "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => extraInput.value = $event),
156
- class: "recipient-native-input",
157
- type: "text",
158
- placeholder: unref(t)("meeting.sendMinutesRecipientPlaceholder"),
159
- onKeydown: [
160
- withKeys(withModifiers(addRecipient, ["prevent"]), ["enter"]),
161
- withKeys(handleBackspace, ["backspace"])
162
- ]
163
- }, null, 40, _hoisted_2), [
164
- [vModelText, extraInput.value]
165
- ])
166
- ])
167
- ]),
168
- _: 1
169
- }, 8, ["label", "rules"]),
170
- createVNode(unref(OFormItem), {
171
- label: unref(t)("meeting.sendMinutesSubject"),
172
- field: "subject",
173
- rules: rules.subject
174
- }, {
175
- default: withCtx(() => [
176
- createVNode(unref(OInput), {
177
- modelValue: formModel.value.subject,
178
- "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => formModel.value.subject = $event),
179
- class: "subject-input",
180
- size: "large",
181
- placeholder: unref(t)("meeting.sendMinutesSubjectPlaceholder")
182
- }, null, 8, ["modelValue", "placeholder"])
183
- ]),
184
- _: 1
185
- }, 8, ["label", "rules"]),
186
- createVNode(unref(OFormItem), {
187
- label: unref(t)("meeting.sendMinutesBody")
188
- }, {
189
- default: withCtx(() => [
190
- createVNode(unref(OScroller), {
191
- class: "o-meeting-send-minutes-email-body-scroller",
192
- "disabled-x": "",
193
- "show-type": "auto"
194
- }, {
195
- default: withCtx(() => {
196
- var _a;
197
- return [
198
- createElementVNode("div", _hoisted_3, toDisplayString((_a = __props.meeting) == null ? void 0 : _a.minutes), 1)
199
- ];
200
- }),
201
- _: 1
202
- })
203
- ]),
204
- _: 1
205
- }, 8, ["label"])
206
- ]),
207
- _: 1
208
- }, 8, ["model", "layout"]);
209
- };
210
- }
211
- });
1
+ import _sfc_main from "./OMeetingSendMinutesForm.vue2.mjs";
2
+ import './OMeetingSendMinutesForm.css';
3
+ import _export_sfc from "../../_virtual/_plugin-vue_export-helper.mjs";
4
+ const _OMeetingSendMinutesForm = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-c32ba974"]]);
212
5
  export {
213
- _sfc_main as default
6
+ _OMeetingSendMinutesForm as default
214
7
  };
@@ -0,0 +1,181 @@
1
+ import { defineComponent, ref, computed, watch, openBlock, createElementBlock, createElementVNode, toDisplayString, unref, Fragment, renderList, createBlock, withCtx, createTextVNode, withDirectives, withKeys, withModifiers, vModelText, createVNode } from "vue";
2
+ import { useMessage, OTag, OInput, OScroller } from "@opensig/opendesign";
3
+ import { useMeetingConfig } from "./composables/useMeetingConfig.mjs";
4
+ import { EMAIL_REGEX } from "./config.mjs";
5
+ const _hoisted_1 = { class: "o-meeting-send-minutes" };
6
+ const _hoisted_2 = { class: "o-meeting-send-minutes-field-row" };
7
+ const _hoisted_3 = { class: "field-label" };
8
+ const _hoisted_4 = { class: "o-meeting-send-minutes-field-control o-meeting-send-minutes-sender-line" };
9
+ const _hoisted_5 = { class: "sender-text" };
10
+ const _hoisted_6 = { class: "o-meeting-send-minutes-field-row" };
11
+ const _hoisted_7 = { class: "field-label" };
12
+ const _hoisted_8 = { class: "o-meeting-send-minutes-field-control" };
13
+ const _hoisted_9 = ["placeholder", "onKeydown"];
14
+ const _hoisted_10 = { class: "o-meeting-send-minutes-field-row" };
15
+ const _hoisted_11 = { class: "field-label" };
16
+ const _hoisted_12 = { class: "o-meeting-send-minutes-field-control" };
17
+ const _hoisted_13 = { class: "o-meeting-send-minutes-field-row o-meeting-send-minutes-email-body-row" };
18
+ const _hoisted_14 = { class: "field-label" };
19
+ const _hoisted_15 = { class: "o-meeting-send-minutes-field-control" };
20
+ const _hoisted_16 = { class: "email-body-content" };
21
+ const _sfc_main = /* @__PURE__ */ defineComponent({
22
+ __name: "OMeetingSendMinutesForm",
23
+ props: {
24
+ meeting: {},
25
+ prefill: {},
26
+ sendMinutesRequest: {}
27
+ },
28
+ emits: ["sent"],
29
+ setup(__props, { expose: __expose, emit: __emit }) {
30
+ const props = __props;
31
+ const emit = __emit;
32
+ const { t } = useMeetingConfig();
33
+ const message = useMessage(null);
34
+ const recipients = ref([]);
35
+ const extraInput = ref("");
36
+ const subject = ref("");
37
+ const sending = ref(false);
38
+ const recipientInputRef = ref(null);
39
+ const sender = computed(() => {
40
+ var _a;
41
+ return ((_a = props.meeting) == null ? void 0 : _a.email_list) || "";
42
+ });
43
+ const defaultSubject = () => {
44
+ if (!props.meeting) return "";
45
+ const { topic, date } = props.meeting;
46
+ return t("meeting.sendMinutesSubjectDefault", [topic, date || ""]);
47
+ };
48
+ const reset = () => {
49
+ if (!props.meeting) return;
50
+ recipients.value = props.prefill && props.prefill.length ? [...props.prefill] : [props.meeting.email_list];
51
+ subject.value = defaultSubject();
52
+ extraInput.value = "";
53
+ };
54
+ watch([() => props.meeting, () => props.prefill], reset, { immediate: true });
55
+ const addRecipient = () => {
56
+ const val = extraInput.value.trim();
57
+ if (!val) return;
58
+ if (!EMAIL_REGEX.test(val)) {
59
+ message.warning({ content: t("meeting.sendMinutesEmailInvalid") });
60
+ return;
61
+ }
62
+ if (recipients.value.includes(val)) {
63
+ message.warning({ content: t("meeting.sendMinutesEmailExists") });
64
+ return;
65
+ }
66
+ recipients.value.push(val);
67
+ extraInput.value = "";
68
+ };
69
+ const removeRecipient = (email) => {
70
+ recipients.value = recipients.value.filter((r) => r !== email);
71
+ };
72
+ const handleBackspace = (e) => {
73
+ if (extraInput.value === "" && recipients.value.length > 0) {
74
+ e.preventDefault();
75
+ recipients.value.pop();
76
+ }
77
+ };
78
+ const focusRecipientInput = () => {
79
+ var _a;
80
+ (_a = recipientInputRef.value) == null ? void 0 : _a.focus();
81
+ };
82
+ const send = async () => {
83
+ if (!props.meeting || !props.sendMinutesRequest) return;
84
+ if (recipients.value.length === 0) {
85
+ message.warning({ content: t("meeting.sendMinutesEmptyRecipient") });
86
+ return;
87
+ }
88
+ try {
89
+ sending.value = true;
90
+ const log = await props.sendMinutesRequest(props.meeting.id, recipients.value, subject.value);
91
+ message.success({ content: t("meeting.sendMinutesSent") });
92
+ emit("sent", log);
93
+ } finally {
94
+ sending.value = false;
95
+ }
96
+ };
97
+ __expose({ send, sending, reset });
98
+ return (_ctx, _cache) => {
99
+ return openBlock(), createElementBlock("div", _hoisted_1, [
100
+ createElementVNode("div", _hoisted_2, [
101
+ createElementVNode("span", _hoisted_3, toDisplayString(unref(t)("meeting.sendMinutesSender")), 1),
102
+ createElementVNode("div", _hoisted_4, [
103
+ createElementVNode("span", _hoisted_5, toDisplayString(sender.value), 1)
104
+ ])
105
+ ]),
106
+ createElementVNode("div", _hoisted_6, [
107
+ createElementVNode("span", _hoisted_7, toDisplayString(unref(t)("meeting.sendMinutesRecipient")), 1),
108
+ createElementVNode("div", _hoisted_8, [
109
+ createElementVNode("div", {
110
+ class: "o-meeting-send-minutes-recipient-editor",
111
+ onClick: focusRecipientInput
112
+ }, [
113
+ (openBlock(true), createElementBlock(Fragment, null, renderList(recipients.value, (email) => {
114
+ return openBlock(), createBlock(unref(OTag), {
115
+ key: email,
116
+ class: "recipient-tag",
117
+ variant: "solid",
118
+ color: "primary",
119
+ closable: "",
120
+ onClose: ($event) => removeRecipient(email)
121
+ }, {
122
+ default: withCtx(() => [
123
+ createTextVNode(toDisplayString(email), 1)
124
+ ]),
125
+ _: 2
126
+ }, 1032, ["onClose"]);
127
+ }), 128)),
128
+ withDirectives(createElementVNode("input", {
129
+ ref_key: "recipientInputRef",
130
+ ref: recipientInputRef,
131
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => extraInput.value = $event),
132
+ class: "recipient-native-input",
133
+ type: "text",
134
+ placeholder: unref(t)("meeting.sendMinutesRecipientPlaceholder"),
135
+ onKeydown: [
136
+ withKeys(withModifiers(addRecipient, ["prevent"]), ["enter"]),
137
+ withKeys(handleBackspace, ["backspace"])
138
+ ]
139
+ }, null, 40, _hoisted_9), [
140
+ [vModelText, extraInput.value]
141
+ ])
142
+ ])
143
+ ])
144
+ ]),
145
+ createElementVNode("div", _hoisted_10, [
146
+ createElementVNode("span", _hoisted_11, toDisplayString(unref(t)("meeting.sendMinutesSubject")), 1),
147
+ createElementVNode("div", _hoisted_12, [
148
+ createVNode(unref(OInput), {
149
+ modelValue: subject.value,
150
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => subject.value = $event),
151
+ class: "subject-input",
152
+ size: "large",
153
+ placeholder: unref(t)("meeting.sendMinutesSubjectPlaceholder")
154
+ }, null, 8, ["modelValue", "placeholder"])
155
+ ])
156
+ ]),
157
+ createElementVNode("div", _hoisted_13, [
158
+ createElementVNode("span", _hoisted_14, toDisplayString(unref(t)("meeting.sendMinutesBody")), 1),
159
+ createElementVNode("div", _hoisted_15, [
160
+ createVNode(unref(OScroller), {
161
+ class: "o-meeting-send-minutes-email-body-scroller",
162
+ "disabled-x": "",
163
+ "show-type": "auto"
164
+ }, {
165
+ default: withCtx(() => {
166
+ var _a;
167
+ return [
168
+ createElementVNode("div", _hoisted_16, toDisplayString((_a = __props.meeting) == null ? void 0 : _a.minutes), 1)
169
+ ];
170
+ }),
171
+ _: 1
172
+ })
173
+ ])
174
+ ])
175
+ ]);
176
+ };
177
+ }
178
+ });
179
+ export {
180
+ _sfc_main as default
181
+ };
@@ -11,7 +11,7 @@ declare const _default: import('vue').DefineComponent<MeetingPlaybackVideoPropsT
11
11
  onSetTrackIdx?: ((...args: any[]) => any) | undefined;
12
12
  }>, {
13
13
  src: string;
14
- captions: import('..').CaptionItemT[];
14
+ captions: import('../../../index.ts').CaptionItemT[];
15
15
  vtt: string;
16
16
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
17
17
  export default _default;
@@ -1,12 +1,12 @@
1
- .hover-icon-rotate .o-icon[data-v-de7a168f] {
1
+ .hover-icon-rotate .o-icon[data-v-8f4f9074] {
2
2
  transition: all var(--o-duration-m1) var(--o-easing-standard-in);
3
3
  }
4
4
  @media (hover: hover) {
5
- .hover-icon-rotate:hover .o-icon[data-v-de7a168f] {
5
+ .hover-icon-rotate:hover .o-icon[data-v-8f4f9074] {
6
6
  transform: rotate(-180deg);
7
7
  }
8
8
  }
9
- .o-meeting-send-minutes-footer[data-v-de7a168f] {
9
+ .o-meeting-send-minutes-footer[data-v-8f4f9074] {
10
10
  display: flex;
11
11
  justify-content: center;
12
12
  align-items: center;
@@ -25,134 +25,8 @@ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {
25
25
  }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
26
26
  sent: (log: SendLogT) => any;
27
27
  }, import('vue').PublicProps, {}, false, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {
28
- formRef: ({
29
- $: import('vue').ComponentInternalInstance;
30
- $data: {};
31
- $props: Partial<{
32
- layout: "h" | "v" | "inline";
33
- hasRequired: boolean;
34
- }> & Omit<{
35
- readonly hasRequired: boolean;
36
- readonly layout: "v" | "h" | "inline";
37
- readonly model?: Record<string, any> | undefined;
38
- readonly labelAlign?: "top" | "center" | "bottom" | undefined;
39
- readonly labelJustify?: "center" | "left" | "right" | undefined;
40
- readonly labelWidth?: string | undefined;
41
- readonly onClear?: ((filed?: string | string[] | undefined) => any) | undefined | undefined;
42
- readonly onReset?: ((filed?: string | string[] | undefined) => any) | undefined | undefined;
43
- readonly onSubmit?: ((results: import('@opensig/opendesign').FieldResultT[]) => any) | undefined | undefined;
44
- readonly onValidate?: ((results: import('@opensig/opendesign').FieldResultT[]) => any) | undefined | undefined;
45
- } & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, "hasRequired" | "layout">;
46
- $attrs: import('vue').Attrs;
47
- $refs: {
48
- [x: string]: unknown;
49
- };
50
- $slots: Readonly<{
51
- [name: string]: import('vue').Slot<any> | undefined;
52
- }>;
53
- $root: import('vue').ComponentPublicInstance | null;
54
- $parent: import('vue').ComponentPublicInstance | null;
55
- $host: Element | null;
56
- $emit: ((event: "clear", filed?: string | string[] | undefined) => void) & ((event: "validate", results: import('@opensig/opendesign').FieldResultT[]) => void) & ((event: "reset", filed?: string | string[] | undefined) => void) & ((event: "submit", results: import('@opensig/opendesign').FieldResultT[]) => void);
57
- $el: HTMLFormElement;
58
- $options: import('vue').ComponentOptionsBase<Readonly<import('vue').ExtractPropTypes<{
59
- model: {
60
- type: ObjectConstructor;
61
- };
62
- hasRequired: {
63
- type: BooleanConstructor;
64
- default: boolean;
65
- };
66
- layout: {
67
- type: import('vue').PropType<"h" | "v" | "inline">;
68
- default: string;
69
- };
70
- labelAlign: {
71
- type: import('vue').PropType<"top" | "center" | "bottom">;
72
- };
73
- labelJustify: {
74
- type: import('vue').PropType<"left" | "center" | "right">;
75
- };
76
- labelWidth: {
77
- type: StringConstructor;
78
- };
79
- }>> & Readonly<{
80
- onClear?: ((filed?: string | string[] | undefined) => any) | undefined;
81
- onReset?: ((filed?: string | string[] | undefined) => any) | undefined;
82
- onSubmit?: ((results: import('@opensig/opendesign').FieldResultT[]) => any) | undefined;
83
- onValidate?: ((results: import('@opensig/opendesign').FieldResultT[]) => any) | undefined;
84
- }>, {
85
- validate: (filed?: string | string[]) => Promise<import('@opensig/opendesign').FieldResultT[]>;
86
- resetFields: (filed?: string | string[]) => void;
87
- clearValidate: (filed?: string | string[], onClear?: (filed: import('@opensig/opendesign').FiledInfoT) => void) => void;
88
- }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
89
- clear: (filed?: string | string[] | undefined) => any;
90
- reset: (filed?: string | string[] | undefined) => any;
91
- submit: (results: import('@opensig/opendesign').FieldResultT[]) => any;
92
- validate: (results: import('@opensig/opendesign').FieldResultT[]) => any;
93
- }, string, {
94
- layout: "h" | "v" | "inline";
95
- hasRequired: boolean;
96
- }, {}, string, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, import('vue').ComponentProvideOptions> & {
97
- beforeCreate?: (() => void) | (() => void)[];
98
- created?: (() => void) | (() => void)[];
99
- beforeMount?: (() => void) | (() => void)[];
100
- mounted?: (() => void) | (() => void)[];
101
- beforeUpdate?: (() => void) | (() => void)[];
102
- updated?: (() => void) | (() => void)[];
103
- activated?: (() => void) | (() => void)[];
104
- deactivated?: (() => void) | (() => void)[];
105
- beforeDestroy?: (() => void) | (() => void)[];
106
- beforeUnmount?: (() => void) | (() => void)[];
107
- destroyed?: (() => void) | (() => void)[];
108
- unmounted?: (() => void) | (() => void)[];
109
- renderTracked?: ((e: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[];
110
- renderTriggered?: ((e: import('vue').DebuggerEvent) => void) | ((e: import('vue').DebuggerEvent) => void)[];
111
- errorCaptured?: ((err: unknown, instance: import('vue').ComponentPublicInstance | null, info: string) => boolean | void) | ((err: unknown, instance: import('vue').ComponentPublicInstance | null, info: string) => boolean | void)[];
112
- };
113
- $forceUpdate: () => void;
114
- $nextTick: typeof import('vue').nextTick;
115
- $watch<T extends string | ((...args: any) => any)>(source: T, cb: T extends (...args: any) => infer R ? (...args: [R, R, import('@vue/reactivity').OnCleanup]) => any : (...args: [any, any, import('@vue/reactivity').OnCleanup]) => any, options?: import('vue').WatchOptions): import('vue').WatchStopHandle;
116
- } & Readonly<{
117
- layout: "h" | "v" | "inline";
118
- hasRequired: boolean;
119
- }> & Omit<Readonly<import('vue').ExtractPropTypes<{
120
- model: {
121
- type: ObjectConstructor;
122
- };
123
- hasRequired: {
124
- type: BooleanConstructor;
125
- default: boolean;
126
- };
127
- layout: {
128
- type: import('vue').PropType<"h" | "v" | "inline">;
129
- default: string;
130
- };
131
- labelAlign: {
132
- type: import('vue').PropType<"top" | "center" | "bottom">;
133
- };
134
- labelJustify: {
135
- type: import('vue').PropType<"left" | "center" | "right">;
136
- };
137
- labelWidth: {
138
- type: StringConstructor;
139
- };
140
- }>> & Readonly<{
141
- onClear?: ((filed?: string | string[] | undefined) => any) | undefined;
142
- onReset?: ((filed?: string | string[] | undefined) => any) | undefined;
143
- onSubmit?: ((results: import('@opensig/opendesign').FieldResultT[]) => any) | undefined;
144
- onValidate?: ((results: import('@opensig/opendesign').FieldResultT[]) => any) | undefined;
145
- }>, "hasRequired" | "layout" | "validate" | "resetFields" | "clearValidate"> & {
146
- validate: (filed?: string | string[]) => Promise<import('@opensig/opendesign').FieldResultT[]>;
147
- resetFields: (filed?: string | string[]) => void;
148
- clearValidate: (filed?: string | string[], onClear?: (filed: import('@opensig/opendesign').FiledInfoT) => void) => void;
149
- } & {} & import('vue').ComponentCustomProperties & {} & {
150
- $slots: {
151
- default?(_: {}): any;
152
- };
153
- }) | null;
154
28
  recipientInputRef: HTMLInputElement;
155
- }, HTMLFormElement, import('vue').ComponentProvideOptions, {
29
+ }, HTMLDivElement, import('vue').ComponentProvideOptions, {
156
30
  P: {};
157
31
  B: {};
158
32
  D: {};
@@ -1,7 +1,7 @@
1
1
  import _sfc_main from "./OMeetingSendMinutesDialog.vue2.mjs";
2
2
  import './OMeetingSendMinutesDialog.css';
3
3
  import _export_sfc from "../../../_virtual/_plugin-vue_export-helper.mjs";
4
- const OMeetingSendMinutesDialog = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-de7a168f"]]);
4
+ const OMeetingSendMinutesDialog = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-8f4f9074"]]);
5
5
  export {
6
6
  OMeetingSendMinutesDialog as default
7
7
  };
@@ -1,8 +1,7 @@
1
1
  import { defineComponent, ref, watch, openBlock, createBlock, unref, withCtx, createVNode, createElementVNode, createTextVNode, toDisplayString } from "vue";
2
2
  import { ODialog, OButton } from "@opensig/opendesign";
3
3
  import { useMeetingConfig } from "../composables/useMeetingConfig.mjs";
4
- import _sfc_main$1 from "../OMeetingSendMinutesForm.vue.mjs";
5
- import '../OMeetingSendMinutesForm.css';
4
+ import _OMeetingSendMinutesForm from "../OMeetingSendMinutesForm.vue.mjs";
6
5
  const _hoisted_1 = { class: "o-meeting-send-minutes-footer" };
7
6
  const _sfc_main = /* @__PURE__ */ defineComponent({
8
7
  __name: "OMeetingSendMinutesDialog",
@@ -74,7 +73,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
74
73
  ];
75
74
  }),
76
75
  default: withCtx(() => [
77
- createVNode(_sfc_main$1, {
76
+ createVNode(_OMeetingSendMinutesForm, {
78
77
  ref_key: "formRef",
79
78
  ref: formRef,
80
79
  meeting: __props.meeting,
@@ -175,15 +175,19 @@ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {
175
175
  };
176
176
  }>> & Readonly<{
177
177
  onScroll?: ((event: Event) => any) | undefined;
178
- }>, "size" | "duration" | "disabledX" | "disabledY" | "showType" | "autoUpdateOnScrollSize" | "scrollTo" | "scrollBy" | "getContainerEl"> & {
178
+ }>, "size" | "scrollTo" | "duration" | "disabledX" | "disabledY" | "showType" | "autoUpdateOnScrollSize" | "scrollBy" | "getContainerEl"> & {
179
179
  scrollTo: (options?: ScrollToOptions | undefined) => void;
180
180
  scrollBy: (options?: ScrollToOptions | undefined) => void;
181
181
  getContainerEl: () => HTMLElement | null;
182
182
  } & {} & import('vue').ComponentCustomProperties & {} & {
183
- $slots: {
184
- default?(_: {}): any;
185
- thumb?(_: {}): any;
186
- track?(_: {}): any;
183
+ $slots: Readonly<{
184
+ default?(): any;
185
+ thumb?(props: import('@opensig/opendesign').ScrollbarSlotProps): any;
186
+ track?(props: import('@opensig/opendesign').ScrollbarSlotProps): any;
187
+ }> & {
188
+ default?(): any;
189
+ thumb?(props: import('@opensig/opendesign').ScrollbarSlotProps): any;
190
+ track?(props: import('@opensig/opendesign').ScrollbarSlotProps): any;
187
191
  };
188
192
  }) | null;
189
193
  }, HTMLDivElement>;
@@ -1,7 +1,7 @@
1
1
  import { CalendarDataType, meetingTabT, OptionItemT } from '../types';
2
2
  export declare const useMeetingConfig: () => {
3
3
  t: (key: string, ...args: any[]) => string;
4
- locale: import('vue').ComputedRef<string>;
4
+ locale: import('vue').ComputedRef<import('vue').ComputedRef<string> | "zh">;
5
5
  meetingTabs: import('vue').ComputedRef<meetingTabT[]>;
6
6
  cycleTypeOptions0: import('vue').ComputedRef<OptionItemT[]>;
7
7
  cycleTypeOptions: import('vue').ComputedRef<OptionItemT[]>;