@opendesign-plus-test/components 0.0.1-rc.146 → 0.0.1-rc.148

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 (75) hide show
  1. package/dist/chunk-OElCookieNotice.cjs.js +1 -1
  2. package/dist/chunk-OElCookieNotice.es.js +172 -90
  3. package/dist/components/activity/OActivityApproval.vue.d.ts +1 -144
  4. package/dist/components/activity/index.d.ts +1 -6
  5. package/dist/components/logo-swiper/OLogoSwiper.vue.d.ts +1 -0
  6. package/dist/components/logo-swiper/OLogoSwiperItems.vue.d.ts +1 -0
  7. package/dist/components/logo-swiper/index.d.ts +4 -0
  8. package/dist/components/logo-swiper/types.d.ts +1 -0
  9. package/dist/components/meeting/OMeetingMinutes.vue.d.ts +20 -0
  10. package/dist/components/meeting/components/OMeetingSendMinutesDialog.vue.d.ts +17 -0
  11. package/dist/components/meeting/index.d.ts +26 -1
  12. package/dist/components/meeting/types.d.ts +17 -0
  13. package/dist/components/video/OVideoDetail.vue.d.ts +7 -0
  14. package/dist/components/video/index.d.ts +27 -0
  15. package/dist/components/video/types.d.ts +24 -0
  16. package/dist/components.cjs.js +40 -40
  17. package/dist/components.css +1 -1
  18. package/dist/components.es.js +12387 -11849
  19. package/dist/index.d.ts +1 -0
  20. package/dist/treeshaking/_virtual/icon-chevron-right.mjs +2 -2
  21. package/dist/treeshaking/_virtual/icon-edit.mjs +17 -0
  22. package/dist/treeshaking/_virtual/icon-material.mjs +21 -0
  23. package/dist/treeshaking/_virtual/icon-video.mjs +28 -0
  24. package/dist/treeshaking/components/activity/OActivityApproval.css +114 -407
  25. package/dist/treeshaking/components/activity/OActivityApproval.vue.d.ts +1 -144
  26. package/dist/treeshaking/components/activity/OActivityApproval.vue.mjs +198 -244
  27. package/dist/treeshaking/components/activity/OActivityApproval2.css +0 -288
  28. package/dist/treeshaking/components/activity/OActivityMyCalendar.css +441 -297
  29. package/dist/treeshaking/components/activity/OActivityMyCalendar.vue.mjs +110 -107
  30. package/dist/treeshaking/components/activity/OActivityMyCalendar2.css +10 -3
  31. package/dist/treeshaking/components/activity/index.d.ts +1 -6
  32. package/dist/treeshaking/components/common/WordAvatar.css +3 -2
  33. package/dist/treeshaking/components/common/WordAvatar.vue.mjs +19 -3
  34. package/dist/treeshaking/components/float-poster/OFloatPoster.css +25 -11
  35. package/dist/treeshaking/components/float-poster/OFloatPoster.vue.mjs +1 -1
  36. package/dist/treeshaking/components/logo-swiper/OLogoSwiper.css +22 -8
  37. package/dist/treeshaking/components/logo-swiper/OLogoSwiper.vue.d.ts +1 -0
  38. package/dist/treeshaking/components/logo-swiper/OLogoSwiper.vue.mjs +2 -9
  39. package/dist/treeshaking/components/logo-swiper/OLogoSwiper.vue2.mjs +21 -0
  40. package/dist/treeshaking/components/logo-swiper/OLogoSwiperItems.css +39 -26
  41. package/dist/treeshaking/components/logo-swiper/OLogoSwiperItems.vue.d.ts +1 -0
  42. package/dist/treeshaking/components/logo-swiper/OLogoSwiperItems.vue.mjs +1 -1
  43. package/dist/treeshaking/components/logo-swiper/OLogoSwiperItems.vue2.mjs +12 -8
  44. package/dist/treeshaking/components/logo-swiper/index.d.ts +4 -0
  45. package/dist/treeshaking/components/logo-swiper/types.d.ts +1 -0
  46. package/dist/treeshaking/components/meeting/OMeetingMinutes.css +731 -0
  47. package/dist/treeshaking/components/meeting/OMeetingMinutes.vue.d.ts +20 -0
  48. package/dist/treeshaking/components/meeting/OMeetingMinutes.vue.mjs +8 -0
  49. package/dist/treeshaking/components/meeting/OMeetingMinutes.vue2.mjs +356 -0
  50. package/dist/treeshaking/components/meeting/OMeetingMinutes2.css +11 -0
  51. package/dist/treeshaking/components/meeting/components/OMeetingCalendarList.vue.mjs +5 -5
  52. package/dist/treeshaking/components/meeting/components/OMeetingSendMinutesDialog.css +276 -0
  53. package/dist/treeshaking/components/meeting/components/OMeetingSendMinutesDialog.vue.d.ts +17 -0
  54. package/dist/treeshaking/components/meeting/components/OMeetingSendMinutesDialog.vue.mjs +7 -0
  55. package/dist/treeshaking/components/meeting/components/OMeetingSendMinutesDialog.vue2.mjs +222 -0
  56. package/dist/treeshaking/components/meeting/index.d.ts +26 -1
  57. package/dist/treeshaking/components/meeting/index.mjs +7 -0
  58. package/dist/treeshaking/components/meeting/types.d.ts +17 -0
  59. package/dist/treeshaking/components/section/OSection.vue2.mjs +2 -2
  60. package/dist/treeshaking/components/video/OVideoDetail.css +754 -0
  61. package/dist/treeshaking/components/video/OVideoDetail.vue.d.ts +7 -0
  62. package/dist/treeshaking/components/video/OVideoDetail.vue.mjs +318 -0
  63. package/dist/treeshaking/components/video/OVideoDetail.vue3.mjs +5 -0
  64. package/dist/treeshaking/components/video/index.d.ts +27 -0
  65. package/dist/treeshaking/components/video/index.mjs +10 -0
  66. package/dist/treeshaking/components/video/types.d.ts +24 -0
  67. package/dist/treeshaking/i18n/en.mjs +42 -1
  68. package/dist/treeshaking/i18n/zh.mjs +42 -1
  69. package/dist/treeshaking/index.d.ts +1 -0
  70. package/dist/treeshaking/index.mjs +4 -1
  71. package/package.json +3 -3
  72. package/dist/treeshaking/_virtual/icon-filter.mjs +0 -21
  73. package/dist/treeshaking/components/common/ThFilter.css +0 -146
  74. package/dist/treeshaking/components/common/ThFilter.vue.mjs +0 -270
  75. package/dist/treeshaking/components/common/ThFilter.vue3.mjs +0 -5
@@ -0,0 +1,276 @@
1
+ .hover-icon-rotate .o-icon[data-v-4c51368c] {
2
+ transition: all var(--o-duration-m1) var(--o-easing-standard-in);
3
+ }
4
+ @media (hover: hover) {
5
+ .hover-icon-rotate:hover .o-icon[data-v-4c51368c] {
6
+ transform: rotate(-180deg);
7
+ }
8
+ }
9
+ .o-meeting-send-minutes[data-v-4c51368c] {
10
+ display: flex;
11
+ flex-direction: column;
12
+ gap: var(--o-gap-6);
13
+ }
14
+ @media (max-width: 1680px) {
15
+ .o-meeting-send-minutes[data-v-4c51368c] {
16
+ gap: var(--o-gap-5);
17
+ }
18
+ }
19
+ @media (min-width: ) {
20
+ .o-meeting-send-minutes[data-v-4c51368c] {
21
+ gap: var(--o-gap-3);
22
+ }
23
+ }
24
+ .o-meeting-send-minutes .field-row[data-v-4c51368c] {
25
+ display: flex;
26
+ gap: var(--o-gap-6);
27
+ align-items: flex-start;
28
+ }
29
+ @media (max-width: 1680px) {
30
+ .o-meeting-send-minutes .field-row[data-v-4c51368c] {
31
+ gap: var(--o-gap-5);
32
+ }
33
+ }
34
+ @media (min-width: ) {
35
+ .o-meeting-send-minutes .field-row[data-v-4c51368c] {
36
+ gap: var(--o-gap-3);
37
+ }
38
+ }
39
+ .o-meeting-send-minutes .field-label[data-v-4c51368c] {
40
+ flex: 0 0 72px;
41
+ color: var(--o-color-info2);
42
+ font-size: 16px;
43
+ line-height: 24px;
44
+ }
45
+ @media (min-width: 1201px) and (max-width: 1680px) {
46
+ .o-meeting-send-minutes .field-label[data-v-4c51368c] {
47
+ font-size: 14px;
48
+ line-height: 22px;
49
+ }
50
+ }
51
+ @media (min-width: 841px) and (max-width: 1200px) {
52
+ .o-meeting-send-minutes .field-label[data-v-4c51368c] {
53
+ font-size: 14px;
54
+ line-height: 22px;
55
+ }
56
+ }
57
+ @media (min-width: 601px) and (max-width: 840px) {
58
+ .o-meeting-send-minutes .field-label[data-v-4c51368c] {
59
+ font-size: 14px;
60
+ line-height: 22px;
61
+ }
62
+ }
63
+ @media (max-width: 600px) {
64
+ .o-meeting-send-minutes .field-label[data-v-4c51368c] {
65
+ font-size: 12px;
66
+ line-height: 18px;
67
+ }
68
+ }
69
+ .o-meeting-send-minutes .field-label[data-v-4c51368c] {
70
+ line-height: var(--o-control_size-m);
71
+ }
72
+ .o-meeting-send-minutes .field-control[data-v-4c51368c] {
73
+ flex: 1;
74
+ min-width: 0;
75
+ }
76
+ .o-meeting-send-minutes .sender-line[data-v-4c51368c] {
77
+ display: flex;
78
+ align-items: center;
79
+ }
80
+ .o-meeting-send-minutes .sender-text[data-v-4c51368c] {
81
+ color: var(--o-color-info1);
82
+ font-size: 16px;
83
+ line-height: 24px;
84
+ }
85
+ @media (min-width: 1201px) and (max-width: 1680px) {
86
+ .o-meeting-send-minutes .sender-text[data-v-4c51368c] {
87
+ font-size: 14px;
88
+ line-height: 22px;
89
+ }
90
+ }
91
+ @media (min-width: 841px) and (max-width: 1200px) {
92
+ .o-meeting-send-minutes .sender-text[data-v-4c51368c] {
93
+ font-size: 14px;
94
+ line-height: 22px;
95
+ }
96
+ }
97
+ @media (min-width: 601px) and (max-width: 840px) {
98
+ .o-meeting-send-minutes .sender-text[data-v-4c51368c] {
99
+ font-size: 14px;
100
+ line-height: 22px;
101
+ }
102
+ }
103
+ @media (max-width: 600px) {
104
+ .o-meeting-send-minutes .sender-text[data-v-4c51368c] {
105
+ font-size: 12px;
106
+ line-height: 18px;
107
+ }
108
+ }
109
+ .o-meeting-send-minutes .sender-text[data-v-4c51368c] {
110
+ line-height: var(--o-control_size-m);
111
+ }
112
+ .o-meeting-send-minutes .recipient-editor[data-v-4c51368c] {
113
+ display: flex;
114
+ flex-wrap: wrap;
115
+ align-items: center;
116
+ gap: var(--o-gap-3);
117
+ padding: var(--o-gap-1) var(--o-gap-3);
118
+ border: 1px solid var(--o-color-control1);
119
+ border-radius: var(--o-radius_control-s);
120
+ background-color: var(--o-color-control2-light);
121
+ min-height: var(--o-control_size-m);
122
+ cursor: text;
123
+ transition: border-color var(--o-duration-s) var(--o-easing-standard);
124
+ color: var(--o-color-info1);
125
+ font-size: 16px;
126
+ line-height: 24px;
127
+ }
128
+ @media (min-width: 1201px) and (max-width: 1680px) {
129
+ .o-meeting-send-minutes .recipient-editor[data-v-4c51368c] {
130
+ font-size: 14px;
131
+ line-height: 22px;
132
+ }
133
+ }
134
+ @media (min-width: 841px) and (max-width: 1200px) {
135
+ .o-meeting-send-minutes .recipient-editor[data-v-4c51368c] {
136
+ font-size: 14px;
137
+ line-height: 22px;
138
+ }
139
+ }
140
+ @media (min-width: 601px) and (max-width: 840px) {
141
+ .o-meeting-send-minutes .recipient-editor[data-v-4c51368c] {
142
+ font-size: 14px;
143
+ line-height: 22px;
144
+ }
145
+ }
146
+ @media (max-width: 600px) {
147
+ .o-meeting-send-minutes .recipient-editor[data-v-4c51368c] {
148
+ font-size: 12px;
149
+ line-height: 18px;
150
+ }
151
+ }
152
+ .o-meeting-send-minutes .recipient-editor[data-v-4c51368c]:hover {
153
+ border-color: var(--o-color-control2);
154
+ }
155
+ .o-meeting-send-minutes .recipient-editor[data-v-4c51368c]:focus-within {
156
+ border-color: var(--o-color-primary3);
157
+ }
158
+ .o-meeting-send-minutes .recipient-tag[data-v-4c51368c] {
159
+ flex-shrink: 0;
160
+ --tag-height: 22px;
161
+ --tag-padding: 4px 8px;
162
+ --tag-bg-color: var(--o-color-control2-light);
163
+ --tag-color: var(--o-color-info1);
164
+ --tag-bd-color: transparent;
165
+ --tag-icon-close-color: var(--o-color-info2);
166
+ --tag-icon-close-color-hover: var(--o-color-info1);
167
+ }
168
+ .o-meeting-send-minutes .recipient-native-input[data-v-4c51368c] {
169
+ flex: 1 1 120px;
170
+ min-width: 120px;
171
+ border: none;
172
+ outline: none;
173
+ background: transparent;
174
+ height: 22px;
175
+ line-height: 22px;
176
+ padding: 0;
177
+ color: var(--o-color-info1);
178
+ font-size: 16px;
179
+ line-height: 24px;
180
+ }
181
+ @media (min-width: 1201px) and (max-width: 1680px) {
182
+ .o-meeting-send-minutes .recipient-native-input[data-v-4c51368c] {
183
+ font-size: 14px;
184
+ line-height: 22px;
185
+ }
186
+ }
187
+ @media (min-width: 841px) and (max-width: 1200px) {
188
+ .o-meeting-send-minutes .recipient-native-input[data-v-4c51368c] {
189
+ font-size: 14px;
190
+ line-height: 22px;
191
+ }
192
+ }
193
+ @media (min-width: 601px) and (max-width: 840px) {
194
+ .o-meeting-send-minutes .recipient-native-input[data-v-4c51368c] {
195
+ font-size: 14px;
196
+ line-height: 22px;
197
+ }
198
+ }
199
+ @media (max-width: 600px) {
200
+ .o-meeting-send-minutes .recipient-native-input[data-v-4c51368c] {
201
+ font-size: 12px;
202
+ line-height: 18px;
203
+ }
204
+ }
205
+ .o-meeting-send-minutes .recipient-native-input[data-v-4c51368c]::placeholder {
206
+ color: var(--o-color-info3);
207
+ }
208
+ .o-meeting-send-minutes .subject-input[data-v-4c51368c] {
209
+ width: 100%;
210
+ }
211
+ .o-meeting-send-minutes .email-body-row[data-v-4c51368c] {
212
+ align-items: flex-start;
213
+ }
214
+ .o-meeting-send-minutes .email-body-scroller[data-v-4c51368c] {
215
+ max-height: 320px;
216
+ background-color: var(--o-color-fill2);
217
+ border: 1px solid var(--o-color-control1);
218
+ border-radius: var(--o-radius_control-s);
219
+ }
220
+ .o-meeting-send-minutes .email-body-content[data-v-4c51368c] {
221
+ padding: var(--o-gap-5);
222
+ color: var(--o-color-info1);
223
+ white-space: pre-wrap;
224
+ font-size: 16px;
225
+ line-height: 24px;
226
+ }
227
+ @media (min-width: 1201px) and (max-width: 1680px) {
228
+ .o-meeting-send-minutes .email-body-content[data-v-4c51368c] {
229
+ font-size: 14px;
230
+ line-height: 22px;
231
+ }
232
+ }
233
+ @media (min-width: 841px) and (max-width: 1200px) {
234
+ .o-meeting-send-minutes .email-body-content[data-v-4c51368c] {
235
+ font-size: 14px;
236
+ line-height: 22px;
237
+ }
238
+ }
239
+ @media (min-width: 601px) and (max-width: 840px) {
240
+ .o-meeting-send-minutes .email-body-content[data-v-4c51368c] {
241
+ font-size: 14px;
242
+ line-height: 22px;
243
+ }
244
+ }
245
+ @media (max-width: 600px) {
246
+ .o-meeting-send-minutes .email-body-content[data-v-4c51368c] {
247
+ font-size: 12px;
248
+ line-height: 18px;
249
+ }
250
+ }
251
+ @media (max-width: 1680px) {
252
+ .o-meeting-send-minutes .email-body-content[data-v-4c51368c] {
253
+ padding: var(--o-gap-4);
254
+ }
255
+ }
256
+ @media (min-width: ) {
257
+ .o-meeting-send-minutes .email-body-content[data-v-4c51368c] {
258
+ padding: var(--o-gap-3);
259
+ }
260
+ }
261
+ .o-meeting-send-minutes-footer[data-v-4c51368c] {
262
+ display: flex;
263
+ justify-content: center;
264
+ align-items: center;
265
+ gap: var(--o-gap-6);
266
+ }
267
+ @media (max-width: 1680px) {
268
+ .o-meeting-send-minutes-footer[data-v-4c51368c] {
269
+ gap: var(--o-gap-5);
270
+ }
271
+ }
272
+ @media (min-width: ) {
273
+ .o-meeting-send-minutes-footer[data-v-4c51368c] {
274
+ gap: var(--o-gap-3);
275
+ }
276
+ }
@@ -0,0 +1,17 @@
1
+ import { MeetingItemT, SendLogT } from '../types';
2
+ type __VLS_Props = {
3
+ visible: boolean;
4
+ meeting: MeetingItemT | null;
5
+ prefill?: string[] | null;
6
+ sendMinutesRequest: any;
7
+ };
8
+ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
9
+ "update:visible": (v: boolean) => any;
10
+ sent: (log: SendLogT) => any;
11
+ }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
12
+ "onUpdate:visible"?: ((v: boolean) => any) | undefined;
13
+ onSent?: ((log: SendLogT) => any) | undefined;
14
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
15
+ recipientInputRef: HTMLInputElement;
16
+ }, any>;
17
+ export default _default;
@@ -0,0 +1,7 @@
1
+ import _sfc_main from "./OMeetingSendMinutesDialog.vue2.mjs";
2
+ import './OMeetingSendMinutesDialog.css';
3
+ import _export_sfc from "../../../_virtual/_plugin-vue_export-helper.mjs";
4
+ const OMeetingSendMinutesDialog = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-4c51368c"]]);
5
+ export {
6
+ OMeetingSendMinutesDialog as default
7
+ };
@@ -0,0 +1,222 @@
1
+ import { defineComponent, ref, computed, watch, openBlock, createBlock, unref, withCtx, createElementVNode, toDisplayString, createElementBlock, Fragment, renderList, createTextVNode, withDirectives, withKeys, withModifiers, vModelText, createVNode } from "vue";
2
+ import { useMessage, ODialog, OTag, OInput, OScroller, OButton } 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: "field-row" };
7
+ const _hoisted_3 = { class: "field-label" };
8
+ const _hoisted_4 = { class: "field-control sender-line" };
9
+ const _hoisted_5 = { class: "sender-text" };
10
+ const _hoisted_6 = { class: "field-row" };
11
+ const _hoisted_7 = { class: "field-label" };
12
+ const _hoisted_8 = { class: "field-control" };
13
+ const _hoisted_9 = ["placeholder", "onKeydown"];
14
+ const _hoisted_10 = { class: "field-row" };
15
+ const _hoisted_11 = { class: "field-label" };
16
+ const _hoisted_12 = { class: "field-control" };
17
+ const _hoisted_13 = { class: "field-row email-body-row" };
18
+ const _hoisted_14 = { class: "field-label" };
19
+ const _hoisted_15 = { class: "field-control" };
20
+ const _hoisted_16 = { class: "email-body-content" };
21
+ const _hoisted_17 = { class: "o-meeting-send-minutes-footer" };
22
+ const _sfc_main = /* @__PURE__ */ defineComponent({
23
+ __name: "OMeetingSendMinutesDialog",
24
+ props: {
25
+ visible: { type: Boolean },
26
+ meeting: {},
27
+ prefill: {},
28
+ sendMinutesRequest: {}
29
+ },
30
+ emits: ["update:visible", "sent"],
31
+ setup(__props, { emit: __emit }) {
32
+ const props = __props;
33
+ const emit = __emit;
34
+ const { t } = useMeetingConfig();
35
+ const message = useMessage(null);
36
+ const recipients = ref([]);
37
+ const extraInput = ref("");
38
+ const subject = ref("");
39
+ const sending = ref(false);
40
+ const recipientInputRef = ref(null);
41
+ const sender = computed(() => {
42
+ var _a;
43
+ return ((_a = props.meeting) == null ? void 0 : _a.email_list) || "";
44
+ });
45
+ const defaultSubject = () => {
46
+ if (!props.meeting) return "";
47
+ const { topic, date } = props.meeting;
48
+ return t("meeting.sendMinutesSubjectDefault", [topic, date || ""]);
49
+ };
50
+ watch(
51
+ () => props.visible,
52
+ (v) => {
53
+ if (v && props.meeting) {
54
+ recipients.value = props.prefill && props.prefill.length ? [...props.prefill] : [props.meeting.email_list];
55
+ subject.value = defaultSubject();
56
+ extraInput.value = "";
57
+ }
58
+ }
59
+ );
60
+ const addRecipient = () => {
61
+ const val = extraInput.value.trim();
62
+ if (!val) return;
63
+ if (!EMAIL_REGEX.test(val)) {
64
+ message.warning({ content: t("meeting.sendMinutesEmailInvalid") });
65
+ return;
66
+ }
67
+ if (recipients.value.includes(val)) {
68
+ message.warning({ content: t("meeting.sendMinutesEmailExists") });
69
+ return;
70
+ }
71
+ recipients.value.push(val);
72
+ extraInput.value = "";
73
+ };
74
+ const removeRecipient = (email) => {
75
+ recipients.value = recipients.value.filter((r) => r !== email);
76
+ };
77
+ const handleBackspace = (e) => {
78
+ if (extraInput.value === "" && recipients.value.length > 0) {
79
+ e.preventDefault();
80
+ recipients.value.pop();
81
+ }
82
+ };
83
+ const focusRecipientInput = () => {
84
+ var _a;
85
+ (_a = recipientInputRef.value) == null ? void 0 : _a.focus();
86
+ };
87
+ const handleSend = async () => {
88
+ if (!props.meeting || !props.sendMinutesRequest) return;
89
+ if (recipients.value.length === 0) {
90
+ message.warning({ content: t("meeting.sendMinutesEmptyRecipient") });
91
+ return;
92
+ }
93
+ try {
94
+ sending.value = true;
95
+ const log = await props.sendMinutesRequest(props.meeting.id, recipients.value, subject.value);
96
+ message.success({ content: t("meeting.sendMinutesSent") });
97
+ emit("sent", log);
98
+ emit("update:visible", false);
99
+ } finally {
100
+ sending.value = false;
101
+ }
102
+ };
103
+ return (_ctx, _cache) => {
104
+ return openBlock(), createBlock(unref(ODialog), {
105
+ visible: __props.visible,
106
+ size: "large",
107
+ "onUpdate:visible": _cache[3] || (_cache[3] = (v) => emit("update:visible", v))
108
+ }, {
109
+ header: withCtx(() => [
110
+ createTextVNode(toDisplayString(unref(t)("meeting.sendMinutesDialogTitle")), 1)
111
+ ]),
112
+ footer: withCtx(() => [
113
+ createElementVNode("div", _hoisted_17, [
114
+ createVNode(unref(OButton), {
115
+ color: "primary",
116
+ variant: "solid",
117
+ loading: sending.value,
118
+ onClick: handleSend
119
+ }, {
120
+ default: withCtx(() => [
121
+ createTextVNode(toDisplayString(unref(t)("meeting.sendMinutesSend")), 1)
122
+ ]),
123
+ _: 1
124
+ }, 8, ["loading"]),
125
+ createVNode(unref(OButton), {
126
+ color: "primary",
127
+ variant: "outline",
128
+ onClick: _cache[2] || (_cache[2] = ($event) => emit("update:visible", false))
129
+ }, {
130
+ default: withCtx(() => [
131
+ createTextVNode(toDisplayString(unref(t)("meeting.sendMinutesCancel")), 1)
132
+ ]),
133
+ _: 1
134
+ })
135
+ ])
136
+ ]),
137
+ default: withCtx(() => [
138
+ createElementVNode("div", _hoisted_1, [
139
+ createElementVNode("div", _hoisted_2, [
140
+ createElementVNode("span", _hoisted_3, toDisplayString(unref(t)("meeting.sendMinutesSender")), 1),
141
+ createElementVNode("div", _hoisted_4, [
142
+ createElementVNode("span", _hoisted_5, toDisplayString(sender.value), 1)
143
+ ])
144
+ ]),
145
+ createElementVNode("div", _hoisted_6, [
146
+ createElementVNode("span", _hoisted_7, toDisplayString(unref(t)("meeting.sendMinutesRecipient")), 1),
147
+ createElementVNode("div", _hoisted_8, [
148
+ createElementVNode("div", {
149
+ class: "recipient-editor",
150
+ onClick: focusRecipientInput
151
+ }, [
152
+ (openBlock(true), createElementBlock(Fragment, null, renderList(recipients.value, (email) => {
153
+ return openBlock(), createBlock(unref(OTag), {
154
+ key: email,
155
+ class: "recipient-tag",
156
+ variant: "solid",
157
+ color: "primary",
158
+ closable: "",
159
+ onClose: ($event) => removeRecipient(email)
160
+ }, {
161
+ default: withCtx(() => [
162
+ createTextVNode(toDisplayString(email), 1)
163
+ ]),
164
+ _: 2
165
+ }, 1032, ["onClose"]);
166
+ }), 128)),
167
+ withDirectives(createElementVNode("input", {
168
+ ref_key: "recipientInputRef",
169
+ ref: recipientInputRef,
170
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => extraInput.value = $event),
171
+ class: "recipient-native-input",
172
+ type: "text",
173
+ placeholder: unref(t)("meeting.sendMinutesRecipientPlaceholder"),
174
+ onKeydown: [
175
+ withKeys(withModifiers(addRecipient, ["prevent"]), ["enter"]),
176
+ withKeys(handleBackspace, ["backspace"])
177
+ ]
178
+ }, null, 40, _hoisted_9), [
179
+ [vModelText, extraInput.value]
180
+ ])
181
+ ])
182
+ ])
183
+ ]),
184
+ createElementVNode("div", _hoisted_10, [
185
+ createElementVNode("span", _hoisted_11, toDisplayString(unref(t)("meeting.sendMinutesSubject")), 1),
186
+ createElementVNode("div", _hoisted_12, [
187
+ createVNode(unref(OInput), {
188
+ modelValue: subject.value,
189
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => subject.value = $event),
190
+ class: "subject-input",
191
+ placeholder: unref(t)("meeting.sendMinutesSubjectPlaceholder")
192
+ }, null, 8, ["modelValue", "placeholder"])
193
+ ])
194
+ ]),
195
+ createElementVNode("div", _hoisted_13, [
196
+ createElementVNode("span", _hoisted_14, toDisplayString(unref(t)("meeting.sendMinutesBody")), 1),
197
+ createElementVNode("div", _hoisted_15, [
198
+ createVNode(unref(OScroller), {
199
+ class: "email-body-scroller",
200
+ "disabled-x": "",
201
+ "show-type": "auto"
202
+ }, {
203
+ default: withCtx(() => {
204
+ var _a;
205
+ return [
206
+ createElementVNode("div", _hoisted_16, toDisplayString((_a = __props.meeting) == null ? void 0 : _a.minutes), 1)
207
+ ];
208
+ }),
209
+ _: 1
210
+ })
211
+ ])
212
+ ])
213
+ ])
214
+ ]),
215
+ _: 1
216
+ }, 8, ["visible"]);
217
+ };
218
+ }
219
+ });
220
+ export {
221
+ _sfc_main as default
222
+ };
@@ -870,5 +870,30 @@ declare const OMeetingMyCalendar: {
870
870
  }) & {
871
871
  install(app: App): void;
872
872
  };
873
- export { OMeetingCalendar, OMeetingForm, OMeetingPlayback, OMeetingSigCalendar, OMeetingMyCalendar, };
873
+ declare const OMeetingMinutes: {
874
+ new (...args: any[]): import('vue').CreateComponentPublicInstanceWithMixins<Readonly<import('./types').MeetingMinutesPropsT> & Readonly<{}>, {
875
+ refresh: () => Promise<void>;
876
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, import('vue').PublicProps, {}, false, {}, {}, import('vue').GlobalComponents, import('vue').GlobalDirectives, string, {}, HTMLDivElement, import('vue').ComponentProvideOptions, {
877
+ P: {};
878
+ B: {};
879
+ D: {};
880
+ C: {};
881
+ M: {};
882
+ Defaults: {};
883
+ }, Readonly<import('./types').MeetingMinutesPropsT> & Readonly<{}>, {
884
+ refresh: () => Promise<void>;
885
+ }, {}, {}, {}, {}>;
886
+ __isFragment?: never;
887
+ __isTeleport?: never;
888
+ __isSuspense?: never;
889
+ } & import('vue').ComponentOptionsBase<Readonly<import('./types').MeetingMinutesPropsT> & Readonly<{}>, {
890
+ refresh: () => Promise<void>;
891
+ }, {}, {}, {}, 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 () => {
892
+ $slots: {
893
+ empty?(_: {}): any;
894
+ };
895
+ }) & {
896
+ install(app: App): void;
897
+ };
898
+ export { OMeetingCalendar, OMeetingForm, OMeetingPlayback, OMeetingSigCalendar, OMeetingMyCalendar, OMeetingMinutes, };
874
899
  export * from './types';
@@ -10,6 +10,7 @@ import './OMeetingSigCalendar.css';
10
10
  import _sfc_main$2 from "./OMeetingMyCalendar.vue.mjs";
11
11
  import './OMeetingMyCalendar.css';
12
12
  import './OMeetingMyCalendar2.css';
13
+ import _OMeetingMinutes from "./OMeetingMinutes.vue.mjs";
13
14
  const OMeetingCalendar = Object.assign(_sfc_main, {
14
15
  install(app) {
15
16
  app.component("OMeetingCalendar", _sfc_main);
@@ -35,9 +36,15 @@ const OMeetingMyCalendar = Object.assign(_sfc_main$2, {
35
36
  app.component("OMeetingMyCalendar", _sfc_main$2);
36
37
  }
37
38
  });
39
+ const OMeetingMinutes = Object.assign(_OMeetingMinutes, {
40
+ install(app) {
41
+ app.component("OMeetingMinutes", _OMeetingMinutes);
42
+ }
43
+ });
38
44
  export {
39
45
  OMeetingCalendar,
40
46
  OMeetingForm,
47
+ OMeetingMinutes,
41
48
  OMeetingMyCalendar,
42
49
  OMeetingPlayback,
43
50
  OMeetingSigCalendar
@@ -135,6 +135,16 @@ export interface MeetingItemT extends MeetingPostT {
135
135
  sub_id: string;
136
136
  dateRange?: string;
137
137
  hasObsData?: boolean;
138
+ minutes?: string;
139
+ send_logs?: SendLogT[];
140
+ }
141
+ export interface SendLogT {
142
+ id: number;
143
+ send_time: string;
144
+ sender: string;
145
+ recipients: string[];
146
+ subject: string;
147
+ content: string;
138
148
  }
139
149
  export interface MeetingEventsItemT {
140
150
  id: number;
@@ -241,3 +251,10 @@ export interface MeetingPlaybackSubtitlesPropsT {
241
251
  instance?: any;
242
252
  trackIdx: number;
243
253
  }
254
+ export interface MeetingMinutesPropsT {
255
+ mid: string | number;
256
+ getMinutesDetailRequest: any;
257
+ saveMinutesRequest: any;
258
+ getSendLogsRequest: any;
259
+ sendMinutesRequest: any;
260
+ }
@@ -1,6 +1,6 @@
1
1
  import { defineComponent, openBlock, createElementBlock, normalizeClass, createElementVNode, renderSlot, unref, Fragment, renderList, toDisplayString, createTextVNode, createCommentVNode, createVNode, withCtx } from "vue";
2
2
  import { isArray, OLink, OIcon } from "@opensig/opendesign";
3
- import IconChevronRight from "../../_virtual/icon-chevron-right.mjs";
3
+ import IconRight from "../../_virtual/icon-chevron-right.mjs";
4
4
  const _hoisted_1 = { class: "section-wrapper" };
5
5
  const _hoisted_2 = {
6
6
  key: 1,
@@ -70,7 +70,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
70
70
  suffix: withCtx(() => [
71
71
  createVNode(unref(OIcon), { class: "footer-icon" }, {
72
72
  default: withCtx(() => [
73
- createVNode(unref(IconChevronRight))
73
+ createVNode(unref(IconRight))
74
74
  ]),
75
75
  _: 1
76
76
  })