@opendesign-plus/components 0.0.1-rc.60 → 0.0.1-rc.62

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 (175) hide show
  1. package/dist/chunk-OElCookieNotice.cjs.js +1 -1
  2. package/dist/chunk-OElCookieNotice.es.js +312 -149
  3. package/dist/components/empty/OEmpty.vue.d.ts +24 -0
  4. package/dist/components/empty/index.d.ts +39 -0
  5. package/dist/components/feedback-doc/OFeedbackDoc.vue.d.ts +6 -1
  6. package/dist/components/feedback-doc/OFeedbackDocContent.vue.d.ts +2 -0
  7. package/dist/components/feedback-doc/OFeedbackDocDialog.vue.d.ts +6 -1
  8. package/dist/components/feedback-doc/OFeedbackDocPopup.vue.d.ts +4 -0
  9. package/dist/components/feedback-doc/index.d.ts +54 -6
  10. package/dist/components/footer/OFooter.vue.d.ts +4 -25
  11. package/dist/components/footer/components/FooterList.vue.d.ts +21 -0
  12. package/dist/components/footer/components/FooterSimple.vue.d.ts +23 -0
  13. package/dist/components/footer/index.d.ts +8 -64
  14. package/dist/components/footer/types.d.ts +48 -0
  15. package/dist/components/logo-swiper/OLogoSwiper.vue.d.ts +17 -0
  16. package/dist/components/logo-swiper/OLogoSwiperItems.vue.d.ts +17 -0
  17. package/dist/components/logo-swiper/index.d.ts +73 -0
  18. package/dist/components/logo-swiper/types.d.ts +18 -0
  19. package/dist/components/meeting/OMeetingCalendar.vue.d.ts +1 -0
  20. package/dist/components/meeting/OMeetingSigCalendar.vue.d.ts +8 -2
  21. package/dist/components/meeting/components/OMeetingCalendarList.vue.d.ts +1 -0
  22. package/dist/components/meeting/index.d.ts +25 -6
  23. package/dist/components/meeting/types.d.ts +1 -0
  24. package/dist/components/search/internal/SearchPanel.vue.d.ts +1 -1
  25. package/dist/components/sig/OSigDetail.vue.d.ts +30 -0
  26. package/dist/components/sig/OSigList.vue.d.ts +13 -0
  27. package/dist/components/sig/components/OSigDetailInfoCard.vue.d.ts +13 -0
  28. package/dist/components/sig/components/OSigItem.vue.d.ts +14 -0
  29. package/dist/components/sig/components/OSigMember.vue.d.ts +10 -0
  30. package/dist/components/sig/components/OSigRepo.vue.d.ts +8 -0
  31. package/dist/components/sig/components/OSigUserContribute.vue.d.ts +10 -0
  32. package/dist/components/sig/components/config-sig.d.ts +1 -0
  33. package/dist/components/sig/components/utils.d.ts +6 -0
  34. package/dist/components/sig/types.d.ts +171 -0
  35. package/dist/components.cjs.js +41 -41
  36. package/dist/components.css +1 -1
  37. package/dist/components.es.js +16420 -14657
  38. package/dist/index.d.ts +3 -0
  39. package/dist/treeshaking/_virtual/icon-atomgit.mjs +25 -0
  40. package/dist/treeshaking/_virtual/icon-forum.mjs +21 -0
  41. package/dist/treeshaking/_virtual/icon-gitee.mjs +20 -0
  42. package/dist/treeshaking/_virtual/icon-mail.mjs +17 -0
  43. package/dist/treeshaking/_virtual/icon-notice.mjs +20 -0
  44. package/dist/treeshaking/_virtual/icon-outlink.mjs +20 -0
  45. package/dist/treeshaking/_virtual/icon-search.mjs +5 -5
  46. package/dist/treeshaking/_virtual/icon-search2.mjs +17 -0
  47. package/dist/treeshaking/_virtual/icon-user.mjs +17 -0
  48. package/dist/treeshaking/_virtual/icon-working.mjs +17 -0
  49. package/dist/treeshaking/_virtual/sig-space.mjs +20 -0
  50. package/dist/treeshaking/components/activity/OActivityApproval.css +3 -6
  51. package/dist/treeshaking/components/activity/OActivityApproval2.css +3 -6
  52. package/dist/treeshaking/components/activity/OActivityForm.css +3 -6
  53. package/dist/treeshaking/components/activity/OActivityForm2.css +3 -6
  54. package/dist/treeshaking/components/activity/OActivityMyCalendar.css +3 -6
  55. package/dist/treeshaking/components/activity/OActivityMyCalendar2.css +3 -6
  56. package/dist/treeshaking/components/common/TooltipText.vue.mjs +3 -2
  57. package/dist/treeshaking/components/common/WordAvatar.css +18 -0
  58. package/dist/treeshaking/components/common/WordAvatar.vue.mjs +68 -0
  59. package/dist/treeshaking/components/common/WordAvatar.vue3.mjs +5 -0
  60. package/dist/treeshaking/components/element-plus/OElCookieNotice.css +3 -6
  61. package/dist/treeshaking/components/element-plus/OElCookieNotice2.css +3 -6
  62. package/dist/treeshaking/components/empty/404.png.mjs +4 -0
  63. package/dist/treeshaking/components/empty/404_dark.png.mjs +4 -0
  64. package/dist/treeshaking/components/empty/OEmpty.css +60 -0
  65. package/dist/treeshaking/components/empty/OEmpty.vue.d.ts +24 -0
  66. package/dist/treeshaking/components/empty/OEmpty.vue.mjs +7 -0
  67. package/dist/treeshaking/components/empty/OEmpty.vue2.mjs +40 -0
  68. package/dist/treeshaking/components/empty/index.d.ts +39 -0
  69. package/dist/treeshaking/components/empty/index.mjs +9 -0
  70. package/dist/treeshaking/components/feedback-doc/OFeedbackDoc.css +5 -5
  71. package/dist/treeshaking/components/feedback-doc/OFeedbackDoc.vue.d.ts +6 -1
  72. package/dist/treeshaking/components/feedback-doc/OFeedbackDoc.vue.mjs +1 -1
  73. package/dist/treeshaking/components/feedback-doc/OFeedbackDoc.vue2.mjs +10 -4
  74. package/dist/treeshaking/components/feedback-doc/OFeedbackDocContent.css +27 -27
  75. package/dist/treeshaking/components/feedback-doc/OFeedbackDocContent.vue.d.ts +2 -0
  76. package/dist/treeshaking/components/feedback-doc/OFeedbackDocContent.vue.mjs +1 -1
  77. package/dist/treeshaking/components/feedback-doc/OFeedbackDocContent.vue2.mjs +8 -3
  78. package/dist/treeshaking/components/feedback-doc/OFeedbackDocDialog.vue.d.ts +6 -1
  79. package/dist/treeshaking/components/feedback-doc/OFeedbackDocDialog.vue.mjs +12 -5
  80. package/dist/treeshaking/components/feedback-doc/OFeedbackDocPopup.css +3 -3
  81. package/dist/treeshaking/components/feedback-doc/OFeedbackDocPopup.vue.d.ts +4 -0
  82. package/dist/treeshaking/components/feedback-doc/OFeedbackDocPopup.vue.mjs +1 -1
  83. package/dist/treeshaking/components/feedback-doc/OFeedbackDocPopup.vue2.mjs +7 -3
  84. package/dist/treeshaking/components/feedback-doc/index.d.ts +54 -6
  85. package/dist/treeshaking/components/footer/OFooter.css +33 -590
  86. package/dist/treeshaking/components/footer/OFooter.vue.d.ts +4 -25
  87. package/dist/treeshaking/components/footer/OFooter.vue.mjs +1 -1
  88. package/dist/treeshaking/components/footer/OFooter.vue2.mjs +76 -332
  89. package/dist/treeshaking/components/footer/components/FooterList.css +462 -0
  90. package/dist/treeshaking/components/footer/components/FooterList.vue.d.ts +21 -0
  91. package/dist/treeshaking/components/footer/components/FooterList.vue.mjs +7 -0
  92. package/dist/treeshaking/components/footer/components/FooterList.vue2.mjs +215 -0
  93. package/dist/treeshaking/components/footer/components/FooterSimple.css +123 -0
  94. package/dist/treeshaking/components/footer/components/FooterSimple.vue.d.ts +23 -0
  95. package/dist/treeshaking/components/footer/components/FooterSimple.vue.mjs +7 -0
  96. package/dist/treeshaking/components/footer/components/FooterSimple.vue2.mjs +109 -0
  97. package/dist/treeshaking/components/footer/index.d.ts +8 -64
  98. package/dist/treeshaking/components/footer/types.d.ts +48 -0
  99. package/dist/treeshaking/components/header/components/HeaderContent.css +184 -184
  100. package/dist/treeshaking/components/header/components/HeaderContent.vue.mjs +1 -1
  101. package/dist/treeshaking/components/header/components/HeaderContent.vue2.mjs +1 -1
  102. package/dist/treeshaking/components/header/components/HeaderFlatten.css +57 -57
  103. package/dist/treeshaking/components/header/components/HeaderFlatten.vue.mjs +1 -1
  104. package/dist/treeshaking/components/header/components/HeaderFlatten.vue2.mjs +5 -5
  105. package/dist/treeshaking/components/header/components/HeaderNavMobile.css +80 -80
  106. package/dist/treeshaking/components/header/components/HeaderNavMobile.vue.mjs +1 -1
  107. package/dist/treeshaking/components/header/components/HeaderNavMobile.vue2.mjs +7 -1
  108. package/dist/treeshaking/components/logo-swiper/OLogoSwiper.css +31 -0
  109. package/dist/treeshaking/components/logo-swiper/OLogoSwiper.vue.d.ts +17 -0
  110. package/dist/treeshaking/components/logo-swiper/OLogoSwiper.vue.mjs +14 -0
  111. package/dist/treeshaking/components/logo-swiper/OLogoSwiperItems.css +88 -0
  112. package/dist/treeshaking/components/logo-swiper/OLogoSwiperItems.vue.d.ts +17 -0
  113. package/dist/treeshaking/components/logo-swiper/OLogoSwiperItems.vue.mjs +7 -0
  114. package/dist/treeshaking/components/logo-swiper/OLogoSwiperItems.vue2.mjs +158 -0
  115. package/dist/treeshaking/components/logo-swiper/index.d.ts +73 -0
  116. package/dist/treeshaking/components/logo-swiper/index.mjs +16 -0
  117. package/dist/treeshaking/components/logo-swiper/types.d.ts +18 -0
  118. package/dist/treeshaking/components/meeting/OMeetingCalendar.css +3 -6
  119. package/dist/treeshaking/components/meeting/OMeetingCalendar.vue.d.ts +1 -0
  120. package/dist/treeshaking/components/meeting/OMeetingCalendar.vue.mjs +5 -3
  121. package/dist/treeshaking/components/meeting/OMeetingForm.css +3 -6
  122. package/dist/treeshaking/components/meeting/OMeetingForm2.css +3 -6
  123. package/dist/treeshaking/components/meeting/OMeetingMyCalendar.css +3 -6
  124. package/dist/treeshaking/components/meeting/OMeetingMyCalendar2.css +3 -6
  125. package/dist/treeshaking/components/meeting/OMeetingSigCalendar.vue.d.ts +8 -2
  126. package/dist/treeshaking/components/meeting/OMeetingSigCalendar.vue.mjs +8 -4
  127. package/dist/treeshaking/components/meeting/components/OMeetingCalendarList.vue.d.ts +1 -0
  128. package/dist/treeshaking/components/meeting/components/OMeetingCalendarList.vue.mjs +5 -4
  129. package/dist/treeshaking/components/meeting/components/OMeetingCalendarSelector.css +3 -6
  130. package/dist/treeshaking/components/meeting/components/OMeetingCalendarSelector2.css +3 -6
  131. package/dist/treeshaking/components/meeting/components/OMeetingPlaybackSubtitles.css +3 -6
  132. package/dist/treeshaking/components/meeting/components/OMeetingPlaybackSubtitles.vue.mjs +1 -1
  133. package/dist/treeshaking/components/meeting/components/OMeetingPlaybackSubtitles2.css +3 -6
  134. package/dist/treeshaking/components/meeting/index.d.ts +25 -6
  135. package/dist/treeshaking/components/meeting/types.d.ts +1 -0
  136. package/dist/treeshaking/components/search/internal/SearchPanel.vue.d.ts +1 -1
  137. package/dist/treeshaking/components/sig/OSigDetail.css +179 -0
  138. package/dist/treeshaking/components/sig/OSigDetail.vue.d.ts +30 -0
  139. package/dist/treeshaking/components/sig/OSigDetail.vue.mjs +219 -0
  140. package/dist/treeshaking/components/sig/OSigDetail.vue3.mjs +5 -0
  141. package/dist/treeshaking/components/sig/OSigList.css +759 -0
  142. package/dist/treeshaking/components/sig/OSigList.vue.d.ts +13 -0
  143. package/dist/treeshaking/components/sig/OSigList.vue.mjs +507 -0
  144. package/dist/treeshaking/components/sig/OSigList.vue3.mjs +5 -0
  145. package/dist/treeshaking/components/sig/components/OSigDetailInfoCard.css +126 -0
  146. package/dist/treeshaking/components/sig/components/OSigDetailInfoCard.vue.d.ts +13 -0
  147. package/dist/treeshaking/components/sig/components/OSigDetailInfoCard.vue.mjs +61 -0
  148. package/dist/treeshaking/components/sig/components/OSigDetailInfoCard.vue3.mjs +5 -0
  149. package/dist/treeshaking/components/sig/components/OSigItem.css +380 -0
  150. package/dist/treeshaking/components/sig/components/OSigItem.vue.d.ts +14 -0
  151. package/dist/treeshaking/components/sig/components/OSigItem.vue.mjs +230 -0
  152. package/dist/treeshaking/components/sig/components/OSigItem.vue3.mjs +5 -0
  153. package/dist/treeshaking/components/sig/components/OSigMember.css +377 -0
  154. package/dist/treeshaking/components/sig/components/OSigMember.vue.d.ts +10 -0
  155. package/dist/treeshaking/components/sig/components/OSigMember.vue.mjs +274 -0
  156. package/dist/treeshaking/components/sig/components/OSigMember.vue3.mjs +5 -0
  157. package/dist/treeshaking/components/sig/components/OSigRepo.css +108 -0
  158. package/dist/treeshaking/components/sig/components/OSigRepo.vue.d.ts +8 -0
  159. package/dist/treeshaking/components/sig/components/OSigRepo.vue.mjs +181 -0
  160. package/dist/treeshaking/components/sig/components/OSigRepo.vue3.mjs +5 -0
  161. package/dist/treeshaking/components/sig/components/OSigUserContribute.css +242 -0
  162. package/dist/treeshaking/components/sig/components/OSigUserContribute.vue.d.ts +10 -0
  163. package/dist/treeshaking/components/sig/components/OSigUserContribute.vue.mjs +326 -0
  164. package/dist/treeshaking/components/sig/components/OSigUserContribute.vue3.mjs +5 -0
  165. package/dist/treeshaking/components/sig/components/config-sig.d.ts +1 -0
  166. package/dist/treeshaking/components/sig/components/config-sig.mjs +4 -0
  167. package/dist/treeshaking/components/sig/components/utils.d.ts +6 -0
  168. package/dist/treeshaking/components/sig/components/utils.mjs +10 -0
  169. package/dist/treeshaking/components/sig/index.mjs +18 -0
  170. package/dist/treeshaking/components/sig/types.d.ts +171 -0
  171. package/dist/treeshaking/i18n/en.mjs +76 -1
  172. package/dist/treeshaking/i18n/zh.mjs +90 -2
  173. package/dist/treeshaking/index.d.ts +3 -0
  174. package/dist/treeshaking/index.mjs +8 -0
  175. package/package.json +2 -2
@@ -0,0 +1,326 @@
1
+ import { defineComponent, computed, ref, onMounted, openBlock, createElementBlock, createElementVNode, toDisplayString, unref, createVNode, withCtx, normalizeClass, Fragment, renderList, createTextVNode, createBlock, createCommentVNode, normalizeStyle } from "vue";
2
+ import { OCard, OForm, OFormItem, ORadioGroup, ORadio, OToggle, ODateRangePicker, OInput, OIcon, OIconSearch, OCheckboxGroup, OCheckbox, OTable, OProgress, OLink, OPagination } from "@opensig/opendesign";
3
+ import { refDebounced } from "@vueuse/core";
4
+ import { useI18n } from "../../../i18n/index.mjs";
5
+ import { useScreen } from "@opendesign-plus/composables";
6
+ import _sfc_main$1 from "../../common/TooltipText.vue.mjs";
7
+ import '../../common/TooltipText.css';
8
+ const _hoisted_1 = { class: "o-sig-detail-contribute" };
9
+ const _hoisted_2 = { class: "o-sig-floor-title" };
10
+ const _hoisted_3 = { class: "o-sig-detail-contribute-title" };
11
+ const _hoisted_4 = { class: "o-sig-detail-contribute-desc" };
12
+ const _hoisted_5 = { class: "o-sig-detail-contribute-input-filter" };
13
+ const _hoisted_6 = { class: "o-sig-detail-contribute-user-type" };
14
+ const _hoisted_7 = { class: "o-sig-detail-contribute-user-type-label" };
15
+ const _hoisted_8 = { class: "o-sig-detail-contribute-cell" };
16
+ const _hoisted_9 = { class: "o-sig-detail-contribute-data" };
17
+ const _sfc_main = /* @__PURE__ */ defineComponent({
18
+ __name: "OSigUserContribute",
19
+ props: {
20
+ sig: { default: "" },
21
+ getDataRequest: { type: Function, default: void 0 }
22
+ },
23
+ setup(__props) {
24
+ const props = __props;
25
+ const { t, locale } = useI18n();
26
+ const isEn = computed(() => locale.value === "en");
27
+ const { isPhone, lePadV } = useScreen();
28
+ const findOpt = (value, options, field) => {
29
+ var _a;
30
+ return (_a = options.find((o) => o.value === value)) == null ? void 0 : _a[field];
31
+ };
32
+ const userTypeOptions = [
33
+ { label: "Maintainer", value: "maintainer", color: "rgb(0, 98, 220)" },
34
+ { label: "Committer", value: "committer", color: "rgb(240, 188, 0)" },
35
+ { label: "Contributor", value: "contributor", color: "rgb(0, 167, 179)" }
36
+ ];
37
+ const userType = ref(userTypeOptions.map((d) => d.value));
38
+ const getColor = (type) => findOpt(type, userTypeOptions, "color");
39
+ const contributeType = ref("pr");
40
+ const contributionTypeOptions = [
41
+ { label: t("sig.PRS"), value: "pr", alias: "PR" },
42
+ { label: t("sig.ISSUES"), value: "issue", alias: "Issue" },
43
+ { label: t("sig.COMMENTS"), value: "comment", alias: "Comment" }
44
+ ];
45
+ const commentType = ref("");
46
+ const commentTypeOptions = [
47
+ { label: t("sig.ALL"), value: "" },
48
+ { label: t("sig.commentNormal"), value: "normal" },
49
+ { label: t("sig.commentCommand"), value: "command" }
50
+ ];
51
+ const typeLabel = computed(() => findOpt(contributeType.value, contributionTypeOptions, "alias"));
52
+ const startDate = ref((/* @__PURE__ */ new Date("2024-11-01")).getTime());
53
+ const endDate = ref(Date.now());
54
+ const contributionData = ref([]);
55
+ const changeContributeType = () => {
56
+ commentType.value = "";
57
+ getData();
58
+ };
59
+ const getData = async () => {
60
+ if (!props.getDataRequest) return;
61
+ page.value = 1;
62
+ const params = {
63
+ contributeType: contributeType.value,
64
+ sig: props.sig,
65
+ community: "TODO",
66
+ comment_type: commentType.value
67
+ };
68
+ if (startDate.value && endDate.value) {
69
+ Object.assign(params, {
70
+ start: Number(startDate.value),
71
+ end: Number(endDate.value)
72
+ });
73
+ }
74
+ contributionData.value = await props.getDataRequest(params) || [];
75
+ };
76
+ const maxContributionNum = computed(() => {
77
+ if (contributionData.value.length === 0) return 0;
78
+ return Math.max(...contributionData.value.map((d) => d.contribute));
79
+ });
80
+ const columns = computed(() => {
81
+ return [
82
+ { key: "number", label: t("sig.NUMBER"), style: { width: "60px" } },
83
+ { key: "user_login", label: "GitCode ID", style: { width: isPhone.value ? "100px" : "180px" } },
84
+ { key: "contribute", label: typeLabel.value }
85
+ ];
86
+ });
87
+ const page = ref(1);
88
+ const pageSize = ref(10);
89
+ const pageSizes = [10, 15, 30, 50];
90
+ const searchGitcodeId = ref("");
91
+ const debouncedSearchGitCodeId = refDebounced(searchGitcodeId, 400);
92
+ const changeInput = () => {
93
+ page.value = 1;
94
+ };
95
+ const filterData = computed(() => {
96
+ let res = contributionData.value;
97
+ if (userType.value.length) {
98
+ res = res.filter((d) => userType.value.includes(d.usertype));
99
+ }
100
+ if (searchGitcodeId.value) {
101
+ const lowercase = debouncedSearchGitCodeId.value;
102
+ res = res.filter((d) => d.user_login.toLowerCase().includes(lowercase));
103
+ }
104
+ return res;
105
+ });
106
+ const displayContributionData = computed(() => {
107
+ const start = (page.value - 1) * pageSize.value;
108
+ return filterData.value.slice(start, start + pageSize.value);
109
+ });
110
+ onMounted(() => {
111
+ getData();
112
+ });
113
+ return (_ctx, _cache) => {
114
+ return openBlock(), createElementBlock("div", _hoisted_1, [
115
+ createElementVNode("div", _hoisted_2, [
116
+ createElementVNode("div", _hoisted_3, toDisplayString(unref(t)("sig.contributeTitle")), 1),
117
+ createElementVNode("div", _hoisted_4, toDisplayString(unref(t)("sig.contributeSubTitle", [__props.sig])), 1)
118
+ ]),
119
+ createVNode(unref(OCard), null, {
120
+ default: withCtx(() => [
121
+ createVNode(unref(OForm), {
122
+ layout: unref(isPhone) ? "v" : "h",
123
+ class: normalizeClass(isEn.value ? "is-en" : "")
124
+ }, {
125
+ default: withCtx(() => [
126
+ createVNode(unref(OFormItem), {
127
+ label: unref(t)("sig.METRIC"),
128
+ field: "contributeType",
129
+ class: "contribute-type-item"
130
+ }, {
131
+ default: withCtx(() => [
132
+ createVNode(unref(ORadioGroup), {
133
+ modelValue: contributeType.value,
134
+ "onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => contributeType.value = $event),
135
+ onChange: changeContributeType
136
+ }, {
137
+ default: withCtx(() => [
138
+ (openBlock(), createElementBlock(Fragment, null, renderList(contributionTypeOptions, (item) => {
139
+ return createVNode(unref(ORadio), {
140
+ key: item.value,
141
+ value: item.value
142
+ }, {
143
+ radio: withCtx(({ checked }) => [
144
+ createVNode(unref(OToggle), { checked }, {
145
+ default: withCtx(() => [
146
+ createTextVNode(toDisplayString(item.label), 1)
147
+ ]),
148
+ _: 2
149
+ }, 1032, ["checked"])
150
+ ]),
151
+ _: 2
152
+ }, 1032, ["value"]);
153
+ }), 64))
154
+ ]),
155
+ _: 1
156
+ }, 8, ["modelValue"])
157
+ ]),
158
+ _: 1
159
+ }, 8, ["label"]),
160
+ contributeType.value === "comment" ? (openBlock(), createBlock(unref(OFormItem), {
161
+ key: 0,
162
+ label: "",
163
+ field: "commentType",
164
+ class: "comment-type-item"
165
+ }, {
166
+ default: withCtx(() => [
167
+ createVNode(unref(ORadioGroup), {
168
+ modelValue: commentType.value,
169
+ "onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => commentType.value = $event),
170
+ onChange: getData
171
+ }, {
172
+ default: withCtx(() => [
173
+ (openBlock(), createElementBlock(Fragment, null, renderList(commentTypeOptions, (item) => {
174
+ return createVNode(unref(ORadio), {
175
+ key: item.value,
176
+ value: item.value
177
+ }, {
178
+ default: withCtx(() => [
179
+ createTextVNode(toDisplayString(item.label), 1)
180
+ ]),
181
+ _: 2
182
+ }, 1032, ["value"]);
183
+ }), 64))
184
+ ]),
185
+ _: 1
186
+ }, 8, ["modelValue"])
187
+ ]),
188
+ _: 1
189
+ })) : createCommentVNode("", true),
190
+ createVNode(unref(OFormItem), {
191
+ label: unref(t)("sig.TIMERANGE"),
192
+ field: "dateRange"
193
+ }, {
194
+ default: withCtx(() => [
195
+ createVNode(unref(ODateRangePicker), {
196
+ start: startDate.value,
197
+ "onUpdate:start": _cache[2] || (_cache[2] = ($event) => startDate.value = $event),
198
+ end: endDate.value,
199
+ "onUpdate:end": _cache[3] || (_cache[3] = ($event) => endDate.value = $event),
200
+ clearable: "",
201
+ "placeholder-start": unref(t)("sig.startDate"),
202
+ "placeholder-end": unref(t)("sig.endDate"),
203
+ onChange: getData
204
+ }, null, 8, ["start", "end", "placeholder-start", "placeholder-end"])
205
+ ]),
206
+ _: 1
207
+ }, 8, ["label"])
208
+ ]),
209
+ _: 1
210
+ }, 8, ["layout", "class"])
211
+ ]),
212
+ _: 1
213
+ }),
214
+ createVNode(unref(OCard), null, {
215
+ default: withCtx(() => [
216
+ createElementVNode("div", _hoisted_5, [
217
+ createVNode(unref(OInput), {
218
+ modelValue: searchGitcodeId.value,
219
+ "onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => searchGitcodeId.value = $event),
220
+ placeholder: unref(t)("sig.contributePlaceholder"),
221
+ onInput: changeInput
222
+ }, {
223
+ prefix: withCtx(() => [
224
+ createVNode(unref(OIcon), null, {
225
+ default: withCtx(() => [
226
+ createVNode(unref(OIconSearch))
227
+ ]),
228
+ _: 1
229
+ })
230
+ ]),
231
+ _: 1
232
+ }, 8, ["modelValue", "placeholder"]),
233
+ createVNode(unref(OCheckboxGroup), {
234
+ modelValue: userType.value,
235
+ "onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => userType.value = $event)
236
+ }, {
237
+ default: withCtx(() => [
238
+ (openBlock(), createElementBlock(Fragment, null, renderList(userTypeOptions, (item) => {
239
+ return createVNode(unref(OCheckbox), {
240
+ key: item.value,
241
+ value: item.value
242
+ }, {
243
+ checkbox: withCtx(({ checked }) => [
244
+ createElementVNode("div", _hoisted_6, [
245
+ createElementVNode("div", {
246
+ class: "o-sig-detail-contribute-dot",
247
+ style: normalizeStyle({ backgroundColor: checked ? item.color : "rgb(204, 204, 204)" })
248
+ }, null, 4),
249
+ createElementVNode("p", _hoisted_7, toDisplayString(item.label), 1)
250
+ ])
251
+ ]),
252
+ _: 2
253
+ }, 1032, ["value"]);
254
+ }), 64))
255
+ ]),
256
+ _: 1
257
+ }, 8, ["modelValue"])
258
+ ]),
259
+ createVNode(unref(OTable), {
260
+ data: displayContributionData.value,
261
+ columns: columns.value,
262
+ border: "row-frame",
263
+ small: ""
264
+ }, {
265
+ td_number: withCtx(({ rowIndex }) => [
266
+ createElementVNode("span", null, toDisplayString(rowIndex + 1), 1)
267
+ ]),
268
+ td_user_login: withCtx(({ row }) => [
269
+ createVNode(unref(OLink), {
270
+ class: "user-id-link",
271
+ color: "primary",
272
+ target: "_blank",
273
+ rel: "noopener noreferrer",
274
+ href: row.userLink
275
+ }, {
276
+ icon: withCtx(() => [
277
+ createElementVNode("div", {
278
+ class: "o-sig-detail-contribute-dot",
279
+ style: normalizeStyle({ backgroundColor: getColor(row.usertype) })
280
+ }, null, 4)
281
+ ]),
282
+ default: withCtx(() => [
283
+ createVNode(_sfc_main$1, null, {
284
+ default: withCtx(() => [
285
+ createTextVNode(toDisplayString(row.user_login), 1)
286
+ ]),
287
+ _: 2
288
+ }, 1024)
289
+ ]),
290
+ _: 2
291
+ }, 1032, ["href"])
292
+ ]),
293
+ td_contribute: withCtx(({ row }) => [
294
+ createElementVNode("div", _hoisted_8, [
295
+ createElementVNode("span", _hoisted_9, toDisplayString(row.contribute), 1),
296
+ row.contribute > 0 ? (openBlock(), createBlock(unref(OProgress), {
297
+ key: 0,
298
+ "show-label": false,
299
+ percentage: Math.floor(row.contribute * 100 / maxContributionNum.value),
300
+ style: normalizeStyle({ "--progress-bar-bg-color": getColor(row.usertype) })
301
+ }, null, 8, ["percentage", "style"])) : createCommentVNode("", true)
302
+ ])
303
+ ]),
304
+ _: 1
305
+ }, 8, ["data", "columns"])
306
+ ]),
307
+ _: 1
308
+ }),
309
+ filterData.value.length ? (openBlock(), createBlock(unref(OPagination), {
310
+ key: 0,
311
+ total: filterData.value.length,
312
+ "page-sizes": pageSizes,
313
+ page: page.value,
314
+ "onUpdate:page": _cache[6] || (_cache[6] = ($event) => page.value = $event),
315
+ "page-size": pageSize.value,
316
+ "onUpdate:pageSize": _cache[7] || (_cache[7] = ($event) => pageSize.value = $event),
317
+ "show-total": "",
318
+ simple: unref(lePadV)
319
+ }, null, 8, ["total", "page", "page-size", "simple"])) : createCommentVNode("", true)
320
+ ]);
321
+ };
322
+ }
323
+ });
324
+ export {
325
+ _sfc_main as default
326
+ };
@@ -0,0 +1,5 @@
1
+ import _sfc_main from "./OSigUserContribute.vue.mjs";
2
+ import './OSigUserContribute.css';
3
+ export {
4
+ _sfc_main as default
5
+ };
@@ -0,0 +1 @@
1
+ export declare const SIG_ADDRESS = "https://atomgit.com/openeuler/community/tree/master/sig/";
@@ -0,0 +1,4 @@
1
+ const SIG_ADDRESS = "https://atomgit.com/openeuler/community/tree/master/sig/";
2
+ export {
3
+ SIG_ADDRESS
4
+ };
@@ -0,0 +1,6 @@
1
+ export type Lang = 'zh' | 'en';
2
+ /**
3
+ * 判断链接来自 GITEE / ATOMGIT
4
+ */
5
+ export declare const detectGitPlatform: (url: string) => string;
6
+ export declare function foldI18n<T>(data: T, lang: Lang): T;
@@ -0,0 +1,10 @@
1
+ const detectGitPlatform = (url) => {
2
+ if (!url || typeof url !== "string") return "unknown";
3
+ const normalized = url.trim().toLowerCase();
4
+ if (/^(https?:\/\/)?(www\.)?gitee\.com\//.test(normalized)) return "gitee";
5
+ if (/^(https?:\/\/)?(www\.)?atomgit\.com\//.test(normalized)) return "atomgit";
6
+ return "unknown";
7
+ };
8
+ export {
9
+ detectGitPlatform
10
+ };
@@ -0,0 +1,18 @@
1
+ import _sfc_main$1 from "./OSigList.vue.mjs";
2
+ import './OSigList.css';
3
+ import _sfc_main from "./OSigDetail.vue.mjs";
4
+ import './OSigDetail.css';
5
+ const OSigList = Object.assign(_sfc_main$1, {
6
+ install(app) {
7
+ app.component("OSigList", _sfc_main$1);
8
+ }
9
+ });
10
+ const OSigDetail = Object.assign(_sfc_main, {
11
+ install(app) {
12
+ app.component("OSigDetail", _sfc_main);
13
+ }
14
+ });
15
+ export {
16
+ OSigDetail,
17
+ OSigList
18
+ };
@@ -0,0 +1,171 @@
1
+ export interface GroupInfoT {
2
+ sig_name: string;
3
+ feature_en: string | null;
4
+ feature_zh: string | null;
5
+ created_at?: string;
6
+ group_en: string | null;
7
+ group_zh: string | null;
8
+ rank: number;
9
+ score: number;
10
+ }
11
+ export interface SigCompleteItemT {
12
+ name?: string;
13
+ sig_name: string;
14
+ description: string;
15
+ mailing_list: string;
16
+ meeting_url?: string;
17
+ etherpadUrl?: string;
18
+ subscribeUrl?: string;
19
+ discuss_url?: string;
20
+ mature_level?: string;
21
+ maintainers: string[];
22
+ committers: string[];
23
+ repos: string[];
24
+ created_at: string;
25
+ is_sig_original: number;
26
+ maintainer_info: SigMaintainerT[];
27
+ committer_info: SigMaintainerT[];
28
+ [key: string]: unknown;
29
+ }
30
+ export interface SigMaintainerT {
31
+ gitee_id?: string;
32
+ atomgit_id?: string;
33
+ name: string;
34
+ email: string;
35
+ organization?: string;
36
+ role?: string;
37
+ user_login: string;
38
+ id_platform?: string;
39
+ user_homepage_url: string;
40
+ [key: string]: unknown;
41
+ }
42
+ export interface SigRepoMemberT {
43
+ gitee_id: string;
44
+ atomgit_id?: string;
45
+ name: string;
46
+ email: string;
47
+ organization?: string;
48
+ role?: string;
49
+ user_login: string;
50
+ id_platform?: string;
51
+ user_homepage_url: string;
52
+ [key: string]: unknown;
53
+ }
54
+ export interface SigRepoEntryT {
55
+ repo: string;
56
+ maintainers: SigRepoMemberT[];
57
+ committers: SigRepoMemberT[];
58
+ }
59
+ export interface SearchItemT {
60
+ name: string;
61
+ path: string;
62
+ socre: number;
63
+ }
64
+ export type SigSearchKeywordTypeT = 'all' | 'sig' | 'repos' | 'maintainer';
65
+ export interface SigSearchParamsT {
66
+ keyword: string;
67
+ keywordType: SigSearchKeywordTypeT;
68
+ }
69
+ export interface SigSearchResultT {
70
+ 'name.keyword'?: SearchItemT[];
71
+ repos?: SearchItemT[];
72
+ giteeIds?: SearchItemT[];
73
+ description?: SearchItemT[];
74
+ }
75
+ export interface SigSearchGroupT {
76
+ id: string;
77
+ label: string;
78
+ list: SearchItemT[];
79
+ }
80
+ export interface SigRepoBranchT {
81
+ repo: string;
82
+ branch: string;
83
+ }
84
+ export interface SigBranchT {
85
+ repo_branch: SigRepoBranchT[];
86
+ keeper: {
87
+ gitee_id: string;
88
+ }[];
89
+ }
90
+ export interface SigListItemT {
91
+ name: string;
92
+ atomgitUrl: string;
93
+ description: string;
94
+ sig_name?: string;
95
+ mailing_list?: string | null;
96
+ subscribeUrl?: string | null;
97
+ repositories?: string[];
98
+ maintainer_info?: SigMaintainerT[] | null;
99
+ committer_info?: SigMaintainerT[] | null;
100
+ mentors?: SigMaintainerT[] | null;
101
+ committers?: string[];
102
+ maintainers?: string[];
103
+ branches?: SigBranchT[] | null;
104
+ created_on?: string | null;
105
+ meeting_url?: string | null;
106
+ mature_level?: string | null;
107
+ [key: string]: unknown;
108
+ }
109
+ export interface SigListPropsT {
110
+ sigLandscape?: GroupInfoT[];
111
+ sigList?: SigListItemT[];
112
+ searchFn?: (params: SigSearchParamsT) => Promise<SigSearchResultT>;
113
+ footerSelector?: string;
114
+ }
115
+ export interface DayDataT {
116
+ creator?: string;
117
+ duration_time?: string;
118
+ join_url?: string;
119
+ startTime?: string;
120
+ endTime?: string;
121
+ url?: string;
122
+ data?: string;
123
+ id?: string;
124
+ etherpad?: string;
125
+ start_date?: string;
126
+ name?: string;
127
+ title?: string;
128
+ schedules?: any;
129
+ activity_category?: number;
130
+ group_name?: string;
131
+ end_date?: string;
132
+ type: string;
133
+ activity_type?: number | string;
134
+ }
135
+ export interface SigMeetingSubT {
136
+ date: string;
137
+ [key: string]: unknown;
138
+ }
139
+ export interface TableDataT {
140
+ date: string;
141
+ dates?: string[];
142
+ timeData?: DayDataT[];
143
+ cycle_sub?: SigMeetingSubT[];
144
+ [key: string]: unknown;
145
+ }
146
+ export interface CalendarValueT {
147
+ name: string;
148
+ url: string;
149
+ dates: string[];
150
+ address: string;
151
+ start_date: string;
152
+ end_date: string;
153
+ activity_type: string;
154
+ type: string;
155
+ [key: string]: unknown;
156
+ }
157
+ export interface SigContributeParamsT {
158
+ contributeType: string;
159
+ sig: string;
160
+ community: string;
161
+ comment_type?: string;
162
+ start?: number;
163
+ end?: number;
164
+ }
165
+ export interface SigContributeItemT {
166
+ user_login: string;
167
+ usertype: string;
168
+ contribute: number;
169
+ userLink: string;
170
+ [key: string]: unknown;
171
+ }
@@ -289,7 +289,82 @@ const en = {
289
289
  "feedback.submitIssue": "Report Issue",
290
290
  "feedback.submit": "Submit",
291
291
  "feedback.cancel": "Cancel",
292
- "header.quickLink": "Quick Link"
292
+ "header.quickLink": "Quick Link",
293
+ "sig.selectOrSearchCate": "Search",
294
+ "sig.sigCenter": "SIG",
295
+ "sig.subtitle": "The openEuler community is organized into Special Interest Groups (SIGs) to better coordinate and manage work processes. SIGs are open to everyone.",
296
+ "sig.welcomeJoin": "Welcome to SIGs",
297
+ "sig.aboutSig": "Learn About SIGs",
298
+ "sig.applicationProcess": "Set Up",
299
+ "sig.applicationProcessSubTitle": "Propose creation of a SIG to coordinate development efforts within a specific domain.",
300
+ "sig.sigTip": "Note: Repository Committers, please click on the SIG name to query the repository list.",
301
+ "sig.subscribe": "Subscribe",
302
+ "sig.contributor": "{num} maintainers",
303
+ "sig.sigCore": "Core Members ({num})",
304
+ "sig.sigMaintainer": "Maintainer ({num})",
305
+ "sig.sigCommitter": "Committer ({num})",
306
+ "sig.sigName": "Group: {sig}",
307
+ "sig.repoList": "Repositories ({count})",
308
+ "sig.viewAll": "See All",
309
+ "sig.members": "SIG Members",
310
+ "sig.maintainer": "MAINTAINER",
311
+ "sig.maintainerEn": "Maintainer",
312
+ "sig.committer": "Committer",
313
+ "sig.repositoryList": "REPOSITORIES",
314
+ "sig.repo": "Repositories",
315
+ "sig.searchSig": "Search SIG information",
316
+ "sig.searchSigName": "Search SIG names and works",
317
+ "sig.searchSigRepo": "Search repository names",
318
+ "sig.searchSigMaintainer": "Search AtomGit IDs",
319
+ "sig.all": "All",
320
+ "sig.sigGroup": "SIGs",
321
+ "sig.other": "Other",
322
+ "sig.type": "Categories",
323
+ "sig.filter": "Filter",
324
+ "sig.noResult": "No result",
325
+ "sig.loading": "Loading...",
326
+ "sig.repositoryName": "Repos name",
327
+ "sig.sigMettingActive": "Meetings and Events",
328
+ "sig.workMeeting": "Work Meeting",
329
+ "sig.sigMeetingIntro": "SIG version planning work meetings follow open and transparent principles; topic collection, technical discussions, and meeting minutes are all open to the public.",
330
+ "sig.sigMeetingTip": "The meeting system currently only retains meeting records from the last six months.",
331
+ "sig.noMeeting": "No meetings",
332
+ "sig.meetingSummary": "Etherpad Link",
333
+ "sig.forum": "Forum",
334
+ "sig.mailList": "Email",
335
+ "sig.contact": "Contact",
336
+ "sig.contributeTitle": "Contribution",
337
+ "sig.contributeSubTitle": "{0} Contribution by Individuals",
338
+ "sig.allSig": "All SIGs",
339
+ "sig.allRepo": "All repositories",
340
+ "sig.allMaintainer": "All maintainers",
341
+ "sig.contributePlaceholder": "Please enter an AtomGit ID",
342
+ "sig.sig": "SIG",
343
+ "sig.METRIC": "Metric",
344
+ "sig.TIMERANGE": "Mesauring Period",
345
+ "sig.PRS": "PR",
346
+ "sig.ISSUES": "Issue",
347
+ "sig.COMMENTS": "Comment",
348
+ "sig.LAST_ONE_MONTH": "Last Month",
349
+ "sig.LAST_HALF_YEAR": "Last 6 Months",
350
+ "sig.LAST_YEAR": "Last Year",
351
+ "sig.ALL": "All",
352
+ "sig.commentNormal": "General Comment",
353
+ "sig.commentCommand": "Order Comment",
354
+ "sig.ENTER_GITEE": "Please enter a AtomGit ID",
355
+ "sig.NUMBER": "Number",
356
+ "sig.roleDescription": "Role Description",
357
+ "sig.roleDescriptionIntro": "This article briefly describes the responsibilities and privilege of the contributor in the openEuler community.",
358
+ "sig.filterResultTip1": "",
359
+ "sig.filterResultTip2": "",
360
+ "sig.filterResultTip3": " records found",
361
+ "sig.filterResultTip4": "",
362
+ "sig.filterResultTip5": " records found",
363
+ "sig.giteeMore": "View More on AtomGit",
364
+ "common.empty": "No data",
365
+ "common.search": "Search",
366
+ "common.filter": "Filter",
367
+ "common.more2": "View More"
293
368
  };
294
369
  export {
295
370
  en as default