@opendesign-plus-test/components 0.0.1-rc.135 → 0.0.1-rc.137

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 (116) hide show
  1. package/dist/chunk-OElCookieNotice.cjs.js +1 -1
  2. package/dist/chunk-OElCookieNotice.es.js +14 -14
  3. package/dist/components/feedback-doc/OFeedbackDoc.vue.d.ts +6 -1
  4. package/dist/components/feedback-doc/OFeedbackDocContent.vue.d.ts +2 -0
  5. package/dist/components/feedback-doc/OFeedbackDocDialog.vue.d.ts +6 -1
  6. package/dist/components/feedback-doc/OFeedbackDocPopup.vue.d.ts +4 -0
  7. package/dist/components/feedback-doc/index.d.ts +54 -6
  8. package/dist/components/footer/OFooter.vue.d.ts +4 -25
  9. package/dist/components/footer/components/FooterList.vue.d.ts +21 -0
  10. package/dist/components/footer/components/FooterSimple.vue.d.ts +23 -0
  11. package/dist/components/footer/index.d.ts +8 -64
  12. package/dist/components/footer/types.d.ts +48 -0
  13. package/dist/components/logo-swiper/OLogoSwiper.vue.d.ts +17 -0
  14. package/dist/components/logo-swiper/OLogoSwiperItems.vue.d.ts +17 -0
  15. package/dist/components/logo-swiper/index.d.ts +73 -0
  16. package/dist/components/logo-swiper/types.d.ts +18 -0
  17. package/dist/components/sig/OSigList.vue.d.ts +2 -2
  18. package/dist/components/sig/components/OSigItem.vue.d.ts +1 -5
  19. package/dist/components/sig/components/utils.d.ts +37 -2
  20. package/dist/components/sig/types.d.ts +7 -3
  21. package/dist/components.cjs.js +40 -40
  22. package/dist/components.css +1 -1
  23. package/dist/components.es.js +12961 -12870
  24. package/dist/index.d.ts +1 -0
  25. package/dist/treeshaking/_virtual/icon-filter.mjs +6 -5
  26. package/dist/treeshaking/components/activity/OActivityApproval.css +3 -6
  27. package/dist/treeshaking/components/activity/OActivityApproval2.css +3 -6
  28. package/dist/treeshaking/components/activity/OActivityForm.css +3 -6
  29. package/dist/treeshaking/components/activity/OActivityForm2.css +3 -6
  30. package/dist/treeshaking/components/activity/OActivityMyCalendar.css +3 -6
  31. package/dist/treeshaking/components/activity/OActivityMyCalendar2.css +3 -6
  32. package/dist/treeshaking/components/common/ThFilter.vue.mjs +1 -1
  33. package/dist/treeshaking/components/common/TooltipText.vue.mjs +3 -2
  34. package/dist/treeshaking/components/element-plus/OElCookieNotice.css +3 -6
  35. package/dist/treeshaking/components/element-plus/OElCookieNotice2.css +3 -6
  36. package/dist/treeshaking/components/feedback-doc/OFeedbackDoc.css +5 -5
  37. package/dist/treeshaking/components/feedback-doc/OFeedbackDoc.vue.d.ts +6 -1
  38. package/dist/treeshaking/components/feedback-doc/OFeedbackDoc.vue.mjs +1 -1
  39. package/dist/treeshaking/components/feedback-doc/OFeedbackDoc.vue2.mjs +10 -4
  40. package/dist/treeshaking/components/feedback-doc/OFeedbackDocContent.css +27 -27
  41. package/dist/treeshaking/components/feedback-doc/OFeedbackDocContent.vue.d.ts +2 -0
  42. package/dist/treeshaking/components/feedback-doc/OFeedbackDocContent.vue.mjs +1 -1
  43. package/dist/treeshaking/components/feedback-doc/OFeedbackDocContent.vue2.mjs +8 -3
  44. package/dist/treeshaking/components/feedback-doc/OFeedbackDocDialog.vue.d.ts +6 -1
  45. package/dist/treeshaking/components/feedback-doc/OFeedbackDocDialog.vue.mjs +12 -5
  46. package/dist/treeshaking/components/feedback-doc/OFeedbackDocPopup.css +3 -3
  47. package/dist/treeshaking/components/feedback-doc/OFeedbackDocPopup.vue.d.ts +4 -0
  48. package/dist/treeshaking/components/feedback-doc/OFeedbackDocPopup.vue.mjs +1 -1
  49. package/dist/treeshaking/components/feedback-doc/OFeedbackDocPopup.vue2.mjs +7 -3
  50. package/dist/treeshaking/components/feedback-doc/index.d.ts +54 -6
  51. package/dist/treeshaking/components/footer/OFooter.css +33 -590
  52. package/dist/treeshaking/components/footer/OFooter.vue.d.ts +4 -25
  53. package/dist/treeshaking/components/footer/OFooter.vue.mjs +1 -1
  54. package/dist/treeshaking/components/footer/OFooter.vue2.mjs +76 -332
  55. package/dist/treeshaking/components/footer/components/FooterList.css +462 -0
  56. package/dist/treeshaking/components/footer/components/FooterList.vue.d.ts +21 -0
  57. package/dist/treeshaking/components/footer/components/FooterList.vue.mjs +7 -0
  58. package/dist/treeshaking/components/footer/components/FooterList.vue2.mjs +215 -0
  59. package/dist/treeshaking/components/footer/components/FooterSimple.css +123 -0
  60. package/dist/treeshaking/components/footer/components/FooterSimple.vue.d.ts +23 -0
  61. package/dist/treeshaking/components/footer/components/FooterSimple.vue.mjs +7 -0
  62. package/dist/treeshaking/components/footer/components/FooterSimple.vue2.mjs +109 -0
  63. package/dist/treeshaking/components/footer/index.d.ts +8 -64
  64. package/dist/treeshaking/components/footer/types.d.ts +48 -0
  65. package/dist/treeshaking/components/header/components/HeaderContent.css +184 -184
  66. package/dist/treeshaking/components/header/components/HeaderContent.vue.mjs +1 -1
  67. package/dist/treeshaking/components/header/components/HeaderContent.vue2.mjs +1 -1
  68. package/dist/treeshaking/components/header/components/HeaderFlatten.css +57 -57
  69. package/dist/treeshaking/components/header/components/HeaderFlatten.vue.mjs +1 -1
  70. package/dist/treeshaking/components/header/components/HeaderFlatten.vue2.mjs +5 -5
  71. package/dist/treeshaking/components/header/components/HeaderNavMobile.css +80 -80
  72. package/dist/treeshaking/components/header/components/HeaderNavMobile.vue.mjs +1 -1
  73. package/dist/treeshaking/components/header/components/HeaderNavMobile.vue2.mjs +7 -1
  74. package/dist/treeshaking/components/logo-swiper/OLogoSwiper.css +31 -0
  75. package/dist/treeshaking/components/logo-swiper/OLogoSwiper.vue.d.ts +17 -0
  76. package/dist/treeshaking/components/logo-swiper/OLogoSwiper.vue.mjs +14 -0
  77. package/dist/treeshaking/components/logo-swiper/OLogoSwiperItems.css +88 -0
  78. package/dist/treeshaking/components/logo-swiper/OLogoSwiperItems.vue.d.ts +17 -0
  79. package/dist/treeshaking/components/logo-swiper/OLogoSwiperItems.vue.mjs +7 -0
  80. package/dist/treeshaking/components/logo-swiper/OLogoSwiperItems.vue2.mjs +158 -0
  81. package/dist/treeshaking/components/logo-swiper/index.d.ts +73 -0
  82. package/dist/treeshaking/components/logo-swiper/index.mjs +16 -0
  83. package/dist/treeshaking/components/logo-swiper/types.d.ts +18 -0
  84. package/dist/treeshaking/components/meeting/OMeetingCalendar.css +3 -6
  85. package/dist/treeshaking/components/meeting/OMeetingForm.css +3 -6
  86. package/dist/treeshaking/components/meeting/OMeetingForm2.css +3 -6
  87. package/dist/treeshaking/components/meeting/OMeetingMyCalendar.css +3 -6
  88. package/dist/treeshaking/components/meeting/OMeetingMyCalendar2.css +3 -6
  89. package/dist/treeshaking/components/meeting/OMeetingSigCalendar.css +2 -1
  90. package/dist/treeshaking/components/meeting/components/OMeetingCalendarSelector.css +3 -6
  91. package/dist/treeshaking/components/meeting/components/OMeetingCalendarSelector2.css +3 -6
  92. package/dist/treeshaking/components/meeting/components/OMeetingPlaybackSubtitles.css +3 -6
  93. package/dist/treeshaking/components/meeting/components/OMeetingPlaybackSubtitles2.css +3 -6
  94. package/dist/treeshaking/components/sig/OSigDetail.css +39 -0
  95. package/dist/treeshaking/components/sig/OSigDetail.vue.mjs +20 -9
  96. package/dist/treeshaking/components/sig/OSigList.css +353 -76
  97. package/dist/treeshaking/components/sig/OSigList.vue.d.ts +2 -2
  98. package/dist/treeshaking/components/sig/OSigList.vue.mjs +172 -262
  99. package/dist/treeshaking/components/sig/components/OSigItem.css +338 -22
  100. package/dist/treeshaking/components/sig/components/OSigItem.vue.d.ts +1 -5
  101. package/dist/treeshaking/components/sig/components/OSigItem.vue.mjs +26 -43
  102. package/dist/treeshaking/components/sig/components/OSigMember.css +0 -60
  103. package/dist/treeshaking/components/sig/components/OSigMember.vue.mjs +12 -17
  104. package/dist/treeshaking/components/sig/components/OSigRepo.css +12 -0
  105. package/dist/treeshaking/components/sig/components/OSigRepo.vue.mjs +10 -11
  106. package/dist/treeshaking/components/sig/components/OSigUserContribute.css +24 -0
  107. package/dist/treeshaking/components/sig/components/OSigUserContribute.vue.mjs +12 -10
  108. package/dist/treeshaking/components/sig/components/utils.d.ts +37 -2
  109. package/dist/treeshaking/components/sig/components/utils.mjs +36 -3
  110. package/dist/treeshaking/components/sig/types.d.ts +7 -3
  111. package/dist/treeshaking/i18n/en.mjs +2 -2
  112. package/dist/treeshaking/i18n/zh.mjs +2 -2
  113. package/dist/treeshaking/index.d.ts +1 -0
  114. package/dist/treeshaking/index.mjs +3 -0
  115. package/package.json +3 -3
  116. package/dist/treeshaking/_virtual/icon-filter2.mjs +0 -21
@@ -9,7 +9,7 @@ import IconChevronDown from "../../../_virtual/icon-chevron-down.mjs";
9
9
  import { useI18n } from "../../../i18n/index.mjs";
10
10
  import { useScreen } from "@opendesign-plus/composables";
11
11
  import { useTheme } from "../../../shared/theme.mjs";
12
- import { detectGitPlatform } from "./utils.mjs";
12
+ import { getGitId, getGitUrl, detectGitPlatform } from "./utils.mjs";
13
13
  const _hoisted_1 = { class: "o-sig-detail-member" };
14
14
  const _hoisted_2 = { class: "o-sig-detail-core o-sig-floor-title" };
15
15
  const _hoisted_3 = { class: "o-sig-detail-member-box" };
@@ -52,6 +52,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
52
52
  const { t } = useI18n();
53
53
  const { isPhone, isPadH, isPadV, leLaptop } = useScreen();
54
54
  const { isDark } = useTheme();
55
+ console.log("isDark", isDark.value);
55
56
  const defaultCount = computed(() => {
56
57
  if (isPadH.value) return 18;
57
58
  if (isPadV.value) return 12;
@@ -100,12 +101,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
100
101
  const rem = committerData.value.length % cols;
101
102
  return rem === 0 ? 0 : cols - rem;
102
103
  });
103
- const getPlatformIcon = (url) => {
104
- const platform = detectGitPlatform(url);
105
- if (platform === "gitee") return "gitee";
106
- if (platform === "atomgit") return "atomgit";
107
- return "";
108
- };
109
104
  return (_ctx, _cache) => {
110
105
  return openBlock(), createElementBlock("div", _hoisted_1, [
111
106
  createElementVNode("p", _hoisted_2, toDisplayString(unref(t)("sig.sigCore", {
@@ -120,33 +115,33 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
120
115
  }]),
121
116
  style: normalizeStyle({ "--o-sig-detail-member-columns": columnsPerRow.value })
122
117
  }, [
123
- (openBlock(true), createElementBlock(Fragment, null, renderList(maintainerData.value, (member, idx) => {
118
+ (openBlock(true), createElementBlock(Fragment, null, renderList(maintainerData.value, (member) => {
124
119
  return openBlock(), createElementBlock("div", {
125
- key: member.gitee_id,
120
+ key: unref(getGitId)(member),
126
121
  class: "o-sig-detail-member-info"
127
122
  }, [
128
123
  createElementVNode("div", {
129
124
  class: normalizeClass(["o-sig-detail-member-info-left", { "o-sig-detail-member-info-id": !member.name }])
130
125
  }, [
131
126
  createVNode(_sfc_main$1, {
132
- name: member.user_login,
127
+ name: unref(getGitId)(member),
133
128
  size: "medium",
134
129
  "custom-size": unref(leLaptop) ? 32 : 0
135
130
  }, null, 8, ["name", "custom-size"]),
136
131
  createElementVNode("div", _hoisted_5, [
137
- createElementVNode("div", _hoisted_6, toDisplayString(member.user_login), 1),
132
+ createElementVNode("div", _hoisted_6, toDisplayString(unref(getGitId)(member)), 1),
138
133
  createElementVNode("div", _hoisted_7, toDisplayString(member.name), 1)
139
134
  ])
140
135
  ], 2),
141
136
  createElementVNode("div", _hoisted_8, [
142
137
  createElementVNode("a", {
143
- href: member.user_homepage_url,
138
+ href: unref(getGitUrl)(member),
144
139
  target: "_blank",
145
140
  rel: "noopener noreferrer"
146
141
  }, [
147
142
  createVNode(unref(OIcon), null, {
148
143
  default: withCtx(() => [
149
- getPlatformIcon(member.user_homepage_url) === "gitee" ? (openBlock(), createBlock(unref(IconGitee), { key: 0 })) : getPlatformIcon(member.user_homepage_url) === "atomgit" ? (openBlock(), createBlock(unref(IconAtomGit), { key: 1 })) : createCommentVNode("", true)
144
+ unref(detectGitPlatform)(unref(getGitUrl)(member)) === "gitee" ? (openBlock(), createBlock(unref(IconGitee), { key: 0 })) : unref(detectGitPlatform)(unref(getGitUrl)(member)) === "atomgit" ? (openBlock(), createBlock(unref(IconAtomGit), { key: 1 })) : createCommentVNode("", true)
150
145
  ]),
151
146
  _: 2
152
147
  }, 1024)
@@ -198,19 +193,19 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
198
193
  }, [
199
194
  (openBlock(true), createElementBlock(Fragment, null, renderList(committerData.value, (member) => {
200
195
  return openBlock(), createElementBlock("div", {
201
- key: member.gitee_id,
196
+ key: unref(getGitId)(member),
202
197
  class: "o-sig-detail-member-info"
203
198
  }, [
204
199
  createElementVNode("div", {
205
200
  class: normalizeClass(["o-sig-detail-member-info-left", { "o-sig-detail-member-info-id": !member.name }])
206
201
  }, [
207
202
  createVNode(_sfc_main$1, {
208
- name: member.user_login,
203
+ name: unref(getGitId)(member),
209
204
  size: "medium",
210
205
  "custom-size": unref(leLaptop) ? 32 : 0
211
206
  }, null, 8, ["name", "custom-size"]),
212
207
  createElementVNode("div", _hoisted_13, [
213
- createElementVNode("div", _hoisted_14, toDisplayString(member.user_login), 1),
208
+ createElementVNode("div", _hoisted_14, toDisplayString(unref(getGitId)(member)), 1),
214
209
  createElementVNode("div", _hoisted_15, toDisplayString(member.name), 1)
215
210
  ])
216
211
  ], 2),
@@ -222,7 +217,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
222
217
  }, [
223
218
  createVNode(unref(OIcon), null, {
224
219
  default: withCtx(() => [
225
- getPlatformIcon(member.user_homepage_url) === "gitee" ? (openBlock(), createBlock(unref(IconGitee), { key: 0 })) : getPlatformIcon(member.user_homepage_url) === "atomgit" ? (openBlock(), createBlock(unref(IconAtomGit), { key: 1 })) : createCommentVNode("", true)
220
+ unref(detectGitPlatform)(unref(getGitUrl)(member)) === "gitee" ? (openBlock(), createBlock(unref(IconGitee), { key: 0 })) : unref(detectGitPlatform)(unref(getGitUrl)(member)) === "atomgit" ? (openBlock(), createBlock(unref(IconAtomGit), { key: 1 })) : createCommentVNode("", true)
226
221
  ]),
227
222
  _: 2
228
223
  }, 1024)
@@ -17,6 +17,15 @@
17
17
  table-layout: fixed;
18
18
  width: 100%;
19
19
  }
20
+ .o-sig-detail-repo .o-sig-detail-repo-table .o-table-inner-table colgroup col:nth-child(1) {
21
+ width: 20%;
22
+ }
23
+ .o-sig-detail-repo .o-sig-detail-repo-table .o-table-inner-table colgroup col:nth-child(2) {
24
+ width: 40%;
25
+ }
26
+ .o-sig-detail-repo .o-sig-detail-repo-table .o-table-inner-table colgroup col:nth-child(3) {
27
+ width: 40%;
28
+ }
20
29
  @media (max-width: 840px) {
21
30
  .o-sig-detail-repo .o-sig-detail-repo-table {
22
31
  margin-top: 12px;
@@ -60,6 +69,9 @@
60
69
  display: block;
61
70
  word-break: break-all;
62
71
  }
72
+ .o-sig-detail-repo .o-sig-detail-repo-table .o-table-body-cell .o-link {
73
+ display: inline-block;
74
+ }
63
75
  .o-sig-detail-repo .o-sig-detail-pagination {
64
76
  margin-top: var(--grid-column-gutter);
65
77
  display: flex;
@@ -2,6 +2,7 @@ import { defineComponent, ref, computed, watch, openBlock, createElementBlock, c
2
2
  import { ODataTable, OLink, OPagination } from "@opensig/opendesign";
3
3
  import { useI18n } from "../../../i18n/index.mjs";
4
4
  import { useScreen } from "@opendesign-plus/composables";
5
+ import { getGitUrl, getGitId } from "./utils.mjs";
5
6
  const _hoisted_1 = {
6
7
  id: "repositories",
7
8
  class: "o-sig-detail-repo"
@@ -55,8 +56,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
55
56
  );
56
57
  const onConditionUpdate = (payload) => {
57
58
  if (payload) {
58
- conditions.value = { ...conditions.value, [payload.key]: payload.newVal };
59
59
  currentPage.value = 1;
60
+ conditions.value = { ...conditions.value, [payload.key]: payload.newVal };
60
61
  }
61
62
  };
62
63
  const uniqueLogins = (rows, field) => {
@@ -70,7 +71,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
70
71
  {
71
72
  key: "repo",
72
73
  label: t("sig.repositoryName"),
73
- width: "20%",
74
74
  filter: {
75
75
  optionsFn: () => props.repositories.map((item) => ({ label: item.repo, value: item.repo })),
76
76
  multiple: false
@@ -79,7 +79,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
79
79
  {
80
80
  key: "maintainers",
81
81
  label: t("sig.maintainerEn"),
82
- width: "40%",
83
82
  filter: {
84
83
  optionsFn: () => uniqueLogins(props.repositories, "maintainers"),
85
84
  multiple: false
@@ -88,7 +87,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
88
87
  {
89
88
  key: "committers",
90
89
  label: t("sig.committer"),
91
- width: "40%",
92
90
  filter: {
93
91
  optionsFn: () => uniqueLogins(props.repositories, "committers"),
94
92
  multiple: false
@@ -105,13 +103,14 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
105
103
  border: "row-frame",
106
104
  data: repositoryList.value,
107
105
  "row-key": "repo",
106
+ "min-table-width": 840,
108
107
  onConditionUpdate
109
108
  }, {
110
109
  td_repo: withCtx(({ row }) => [
111
110
  createVNode(unref(OLink), {
112
111
  target: "_blank",
113
112
  rel: "noopener noreferrer",
114
- href: `${__props.gitBase}${row.repo}`
113
+ href: unref(getGitUrl)(row.repo)
115
114
  }, {
116
115
  default: withCtx(() => [
117
116
  createTextVNode(toDisplayString(row.repo), 1)
@@ -122,13 +121,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
122
121
  td_maintainers: withCtx(({ row }) => [
123
122
  (openBlock(true), createElementBlock(Fragment, null, renderList(row.maintainers, (item, index) => {
124
123
  return openBlock(), createBlock(unref(OLink), {
125
- key: item.user_login,
126
124
  target: "_blank",
125
+ key: item.user_login,
127
126
  rel: "noopener noreferrer",
128
- href: item.user_homepage_url
127
+ href: unref(getGitUrl)(item)
129
128
  }, {
130
129
  default: withCtx(() => [
131
- createTextVNode(toDisplayString(item.user_login) + " ", 1),
130
+ createTextVNode(toDisplayString(unref(getGitId)(item)) + " ", 1),
132
131
  withDirectives(createElementVNode("span", null, toDisplayString(unref(locale) === "zh" ? "、" : ", "), 513), [
133
132
  [vShow, index !== row.maintainers.length - 1]
134
133
  ])
@@ -142,13 +141,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
142
141
  return [
143
142
  ((_a = row.committers) == null ? void 0 : _a.length) ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(row.committers, (item, index) => {
144
143
  return openBlock(), createBlock(unref(OLink), {
145
- key: item.user_login,
144
+ key: index,
146
145
  target: "_blank",
147
146
  rel: "noopener noreferrer",
148
- href: item.user_homepage_url
147
+ href: unref(getGitUrl)(item)
149
148
  }, {
150
149
  default: withCtx(() => [
151
- createTextVNode(toDisplayString(item.user_login) + " ", 1),
150
+ createTextVNode(toDisplayString(unref(getGitId)(item)) + " ", 1),
152
151
  withDirectives(createElementVNode("span", null, toDisplayString(unref(locale) === "zh" ? "、" : ", "), 513), [
153
152
  [vShow, index !== row.committers.length - 1]
154
153
  ])
@@ -6,6 +6,11 @@
6
6
  transform: rotate(-180deg);
7
7
  }
8
8
  }
9
+ .o-sig-detail-contribute .o-input {
10
+ --_box-bg-color: var(--o-color-fill2);
11
+ --_box-bg-color-hover: var(--o-color-fill2);
12
+ --_box-bg-color-focus: var(--o-color-fill2);
13
+ }
9
14
  .o-sig-detail-contribute .o-sig-detail-contribute-title {
10
15
  font-weight: 600;
11
16
  font-size: 20px;
@@ -194,13 +199,31 @@
194
199
  .o-sig-detail-contribute .o-table {
195
200
  margin-top: var(--o-gap-3);
196
201
  }
202
+ .o-sig-detail-contribute .o-table .o-scroller-container {
203
+ min-width: 0;
204
+ }
197
205
  .o-sig-detail-contribute .o-table table {
198
206
  display: table;
199
207
  width: 100%;
208
+ table-layout: fixed;
209
+ }
210
+ .o-sig-detail-contribute .o-table table colgroup col:nth-child(1) {
211
+ width: 80px;
212
+ }
213
+ .o-sig-detail-contribute .o-table table colgroup col:nth-child(2) {
214
+ width: 180px;
215
+ }
216
+ @media (max-width: 840px) {
217
+ .o-sig-detail-contribute .o-table table colgroup col:nth-child(2) {
218
+ width: 120px;
219
+ }
200
220
  }
201
221
  .o-sig-detail-contribute .o-table thead::after {
202
222
  display: none;
203
223
  }
224
+ .o-sig-detail-contribute .o-table .o-table-cell__inner-content {
225
+ word-break: keep-all;
226
+ }
204
227
  .o-sig-detail-contribute .user-id-link {
205
228
  display: flex;
206
229
  flex-wrap: nowrap;
@@ -222,6 +245,7 @@
222
245
  min-width: 0;
223
246
  }
224
247
  .o-sig-detail-contribute .o-sig-detail-contribute-cell {
248
+ width: 100%;
225
249
  display: flex;
226
250
  align-items: center;
227
251
  flex-wrap: nowrap;
@@ -1,10 +1,11 @@
1
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";
2
+ import { OCard, OForm, OFormItem, ORadioGroup, ORadio, OToggle, ODateRangePicker, OInput, OIcon, OIconSearch, OCheckboxGroup, OCheckbox, ODataTable, OProgress, OLink, OPagination } from "@opensig/opendesign";
3
3
  import { refDebounced } from "@vueuse/core";
4
4
  import { useI18n } from "../../../i18n/index.mjs";
5
5
  import { useScreen } from "@opendesign-plus/composables";
6
6
  import _sfc_main$1 from "../../common/TooltipText.vue.mjs";
7
7
  import '../../common/TooltipText.css';
8
+ import { getGitUrl, getGitId } from "./utils.mjs";
8
9
  const _hoisted_1 = { class: "o-sig-detail-contribute" };
9
10
  const _hoisted_2 = { class: "o-sig-floor-title" };
10
11
  const _hoisted_3 = { class: "o-sig-detail-contribute-title" };
@@ -79,8 +80,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
79
80
  });
80
81
  const columns = computed(() => {
81
82
  return [
82
- { key: "number", label: t("sig.NUMBER"), style: { width: "60px" } },
83
- { key: "user_login", label: "GitCode ID", style: { width: isPhone.value ? "100px" : "180px" } },
83
+ { key: "idx", label: t("sig.NUMBER") },
84
+ { key: "user_login", label: "GitCode ID" },
84
85
  { key: "contribute", label: typeLabel.value }
85
86
  ];
86
87
  });
@@ -256,14 +257,15 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
256
257
  _: 1
257
258
  }, 8, ["modelValue"])
258
259
  ]),
259
- createVNode(unref(OTable), {
260
+ createVNode(unref(ODataTable), {
260
261
  data: displayContributionData.value,
261
262
  columns: columns.value,
262
263
  border: "row-frame",
263
- small: ""
264
+ small: "",
265
+ "min-table-width": 840
264
266
  }, {
265
- td_number: withCtx(({ rowIndex }) => [
266
- createElementVNode("span", null, toDisplayString(rowIndex + 1), 1)
267
+ td_idx: withCtx(({ index }) => [
268
+ createElementVNode("span", null, toDisplayString(index + 1), 1)
267
269
  ]),
268
270
  td_user_login: withCtx(({ row }) => [
269
271
  createVNode(unref(OLink), {
@@ -271,7 +273,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
271
273
  color: "primary",
272
274
  target: "_blank",
273
275
  rel: "noopener noreferrer",
274
- href: row.userLink
276
+ href: unref(getGitUrl)(row)
275
277
  }, {
276
278
  icon: withCtx(() => [
277
279
  createElementVNode("div", {
@@ -282,7 +284,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
282
284
  default: withCtx(() => [
283
285
  createVNode(_sfc_main$1, null, {
284
286
  default: withCtx(() => [
285
- createTextVNode(toDisplayString(row.user_login), 1)
287
+ createTextVNode(toDisplayString(unref(getGitId)(row)), 1)
286
288
  ]),
287
289
  _: 2
288
290
  }, 1024)
@@ -306,7 +308,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
306
308
  ]),
307
309
  _: 1
308
310
  }),
309
- filterData.value.length ? (openBlock(), createBlock(unref(OPagination), {
311
+ pageSize.value < filterData.value.length ? (openBlock(), createBlock(unref(OPagination), {
310
312
  key: 0,
311
313
  total: filterData.value.length,
312
314
  "page-sizes": pageSizes,
@@ -1,6 +1,41 @@
1
- export type Lang = 'zh' | 'en';
2
1
  /**
3
2
  * 判断链接来自 GITEE / ATOMGIT
4
3
  */
5
4
  export declare const detectGitPlatform: (url: string) => string;
6
- export declare function foldI18n<T>(data: T, lang: Lang): T;
5
+ /**
6
+ * 根据用户标识生成对应的代码托管平台主页地址。
7
+ *
8
+ * - `params` 为字符串时,视为 atomgit 用户名,返回 `https://atomgit.com/{params}`。
9
+ * - `params` 为对象时,按以下顺序取首个存在的字段返回地址(空值视为不存在):
10
+ * 1. `user_homepage_url` -> 原值直接返回;
11
+ * 2. `gitcode_id` -> `https://atomgit.com/{gitcode_id}`;
12
+ * 3. `atomgit_id` -> `https://atomgit.com/{atomgit_id}`;
13
+ * 4. `gitee_id` -> `https://gitee.com/{gitee_id}`;
14
+ * 5. `user_login` -> `https://atomgit.com/{user_login}`。
15
+ * - 其余类型或均无匹配字段时返回 `undefined`。
16
+ *
17
+ * @param params 用户名或用户信息对象
18
+ * @returns 代码托管平台主页地址,无匹配时为 `undefined`
19
+ */
20
+ export declare const getGitUrl: (params: string | {
21
+ gitee_id?: string;
22
+ gitcode_id?: string;
23
+ atomgit_id?: string;
24
+ user_homepage_url?: string;
25
+ user_login?: string;
26
+ }) => string | undefined;
27
+ /**
28
+ * 按顺序获取用户对象中的首个有效 git 标识。
29
+ *
30
+ * 依次尝试 `gitcode_id` -> `atomgit_id` -> `gitee_id` -> `user_login`,
31
+ * 返回首个存在的字段值(空值视为不存在)。
32
+ *
33
+ * @param params 用户信息对象
34
+ * @returns 首个匹配的 git 标识,无匹配时为空字符串
35
+ */
36
+ export declare const getGitId: (params: {
37
+ gitee_id?: string;
38
+ gitcode_id?: string;
39
+ atomgit_id?: string;
40
+ user_login?: string;
41
+ }) => string;
@@ -1,10 +1,43 @@
1
+ const ATOMGIT_DOMAIN = "atomgit.com";
2
+ const GITEE_DOMAIN = "gitee.com";
3
+ const GITCODE_DOMAIN = "gitcode.com";
4
+ const escapeRegExp = (str) => str.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
5
+ const GITEE_PLATFORM_RE = new RegExp(`^(https?://)?(www\\.)?${escapeRegExp(GITEE_DOMAIN)}/`);
6
+ const ATOMGIT_PLATFORM_RE = new RegExp(`^(https?://)?(www\\.)?${escapeRegExp(ATOMGIT_DOMAIN)}/`);
7
+ const GITCODE_PLATFORM_RE = new RegExp(`^(https?://)?(www\\.)?${escapeRegExp(GITCODE_DOMAIN)}/`);
1
8
  const detectGitPlatform = (url) => {
2
9
  if (!url || typeof url !== "string") return "unknown";
3
10
  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";
11
+ if (GITEE_PLATFORM_RE.test(normalized)) return "gitee";
12
+ if (ATOMGIT_PLATFORM_RE.test(normalized)) return "atomgit";
13
+ if (GITCODE_PLATFORM_RE.test(normalized)) return "atomgit";
6
14
  return "unknown";
7
15
  };
16
+ function isPlainObject(v) {
17
+ return typeof v === "object" && v !== null && !Array.isArray(v);
18
+ }
19
+ const getGitUrl = (params) => {
20
+ if (typeof params === "string") return `https://${ATOMGIT_DOMAIN}/${params}`;
21
+ if (isPlainObject(params)) {
22
+ if (params.user_homepage_url) return params.user_homepage_url;
23
+ if (params.gitcode_id) return `https://${ATOMGIT_DOMAIN}/${params.gitcode_id}`;
24
+ if (params.atomgit_id) return `https://${ATOMGIT_DOMAIN}/${params.atomgit_id}`;
25
+ if (params.gitee_id) return `https://${GITEE_DOMAIN}/${params.gitee_id}`;
26
+ if (params.user_login) return `https://${ATOMGIT_DOMAIN}/${params.user_login}`;
27
+ }
28
+ return;
29
+ };
30
+ const getGitId = (params) => {
31
+ if (isPlainObject(params)) {
32
+ if (params.gitcode_id) return params.gitcode_id;
33
+ if (params.atomgit_id) return params.atomgit_id;
34
+ if (params.gitee_id) return params.gitee_id;
35
+ if (params.user_login) return params.user_login;
36
+ }
37
+ return "";
38
+ };
8
39
  export {
9
- detectGitPlatform
40
+ detectGitPlatform,
41
+ getGitId,
42
+ getGitUrl
10
43
  };
@@ -26,11 +26,14 @@ export interface SigCompleteItemT {
26
26
  is_sig_original: number;
27
27
  maintainer_info: SigMaintainerT[];
28
28
  committer_info: SigMaintainerT[];
29
+ meeting_agenda?: string[];
30
+ meeting_agenda_en?: string[];
29
31
  [key: string]: unknown;
30
32
  }
31
33
  export interface SigMaintainerT {
32
34
  gitee_id?: string;
33
35
  atomgit_id?: string;
36
+ gitcode_id?: string;
34
37
  name: string;
35
38
  email: string;
36
39
  organization?: string;
@@ -43,13 +46,14 @@ export interface SigMaintainerT {
43
46
  export interface SigRepoMemberT {
44
47
  gitee_id: string;
45
48
  atomgit_id?: string;
49
+ gitcode_id?: string;
46
50
  name: string;
47
51
  email: string;
48
52
  organization?: string;
49
53
  role?: string;
50
- user_login: string;
54
+ user_login?: string;
51
55
  id_platform?: string;
52
- user_homepage_url: string;
56
+ user_homepage_url?: string;
53
57
  [key: string]: unknown;
54
58
  }
55
59
  export interface SigRepoEntryT {
@@ -111,7 +115,7 @@ export interface SigListPropsT {
111
115
  sigLandscape?: GroupInfoT[];
112
116
  sigList?: SigListItemT[];
113
117
  searchFn?: (params: SigSearchParamsT) => Promise<SigSearchResultT>;
114
- gitBase?: string;
118
+ footerSelector?: string;
115
119
  }
116
120
  export interface DayDataT {
117
121
  creator?: string;
@@ -290,6 +290,7 @@ const en = {
290
290
  "feedback.submit": "Submit",
291
291
  "feedback.cancel": "Cancel",
292
292
  "header.quickLink": "Quick Link",
293
+ "sig.selectOrSearchCate": "Search",
293
294
  "sig.sigCenter": "SIG",
294
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.",
295
296
  "sig.welcomeJoin": "Welcome to SIGs",
@@ -323,9 +324,8 @@ const en = {
323
324
  "sig.noResult": "No result",
324
325
  "sig.loading": "Loading...",
325
326
  "sig.repositoryName": "Repos name",
326
- "sig.sigMettingActive": "Meetings and Events",
327
+ "sig.sigMeetingActive": "Meetings and Events",
327
328
  "sig.workMeeting": "Work Meeting",
328
- "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.",
329
329
  "sig.sigMeetingTip": "The meeting system currently only retains meeting records from the last six months.",
330
330
  "sig.noMeeting": "No meetings",
331
331
  "sig.meetingSummary": "Etherpad Link",
@@ -280,6 +280,7 @@ const zh = {
280
280
  "feedback.submit": "提交",
281
281
  "feedback.cancel": "取消",
282
282
  "header.quickLink": "快捷链接",
283
+ "sig.selectOrSearchCate": "选择或搜索分类",
283
284
  "sig.sigCenter": "SIG中心",
284
285
  "sig.subtitle": "SIG 全称是 Special Interest Group,即“特别兴趣小组”。openEuler社区按照不同的 SIG 来组织,以便更好地管理和改善工作流程。SIG 组均是开放的,欢迎任何人来参与",
285
286
  "sig.welcomeJoin": "欢迎参与SIG",
@@ -306,9 +307,8 @@ const zh = {
306
307
  "sig.sigCommitter": "Committer({num})",
307
308
  "sig.viewAll": "查看所有",
308
309
  "sig.sigMeeting": "交流会议",
309
- "sig.sigMettingActive": "会议与活动",
310
+ "sig.sigMeetingActive": "会议与活动",
310
311
  "sig.workMeeting": "工作会议",
311
- "sig.sigMeetingIntro": "SIG版本规划工作会议遵循开源、开放原则, 议题收集、技术讨论、会议纪要等各讨论过程均对外开放",
312
312
  "sig.sigMeetingTip": "会议系统当前仅保留最近半年会议记录",
313
313
  "sig.noMeeting": "暂无会议",
314
314
  "sig.latestMeeting": "最近会议:{date}",
@@ -14,6 +14,7 @@ export * from './components/header-source-code';
14
14
  export * from './components/header-theme';
15
15
  export * from './components/header-user';
16
16
  export * from './components/icon';
17
+ export * from './components/logo-swiper';
17
18
  export * from './components/meeting';
18
19
  export * from './components/search';
19
20
  export * from './components/section';
@@ -13,6 +13,7 @@ import { OHeaderSourceCode } from "./components/header-source-code/index.mjs";
13
13
  import { OHeaderTheme } from "./components/header-theme/index.mjs";
14
14
  import { OHeaderUser } from "./components/header-user/index.mjs";
15
15
  import { createSvgIcon } from "./components/icon/index.mjs";
16
+ import { OLogoSwiper, OLogoSwiperItems } from "./components/logo-swiper/index.mjs";
16
17
  import { OMeetingCalendar, OMeetingForm, OMeetingMyCalendar, OMeetingPlayback, OMeetingSigCalendar } from "./components/meeting/index.mjs";
17
18
  import { OSearchInput } from "./components/search/index.mjs";
18
19
  import { OSection } from "./components/section/index.mjs";
@@ -49,6 +50,8 @@ export {
49
50
  OHeaderSourceCode,
50
51
  OHeaderTheme,
51
52
  OHeaderUser,
53
+ OLogoSwiper,
54
+ OLogoSwiperItems,
52
55
  OMeetingCalendar,
53
56
  OMeetingForm,
54
57
  OMeetingMyCalendar,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opendesign-plus-test/components",
3
- "version": "0.0.1-rc.135",
3
+ "version": "0.0.1-rc.137",
4
4
  "type": "module",
5
5
  "publishConfig": {
6
6
  "access": "public",
@@ -45,8 +45,8 @@
45
45
  "vue-dompurify-html": "^3.1.2",
46
46
  "vue": "^3.5.13",
47
47
  "element-plus": "2.13.1",
48
- "@opendesign-plus/composables": "0.0.1-rc.10",
49
- "@opendesign-plus/styles": "0.0.1-rc.2"
48
+ "@opendesign-plus/styles": "0.0.1-rc.2",
49
+ "@opendesign-plus/composables": "0.0.1-rc.10"
50
50
  },
51
51
  "devDependencies": {
52
52
  "@vitejs/plugin-vue": "^5.2.1",
@@ -1,21 +0,0 @@
1
- import { openBlock, createElementBlock, createElementVNode } from "vue";
2
- const _hoisted_1 = {
3
- version: "1.1",
4
- xmlns: "http://www.w3.org/2000/svg",
5
- width: "24",
6
- height: "24",
7
- viewBox: "0 0 24 24"
8
- };
9
- function render(_ctx, _cache) {
10
- return openBlock(), createElementBlock("svg", _hoisted_1, [..._cache[0] || (_cache[0] = [
11
- createElementVNode("path", {
12
- opacity: "0.8",
13
- fill: "#000",
14
- d: "M17.286 5c0.676 0 1.213 0.546 1.213 1.21 0 0.227-0.064 0.449-0.184 0.641l-0.065 0.093-1.24 1.62c-0.149 0.194-0.433 0.236-0.634 0.092-0.181-0.129-0.234-0.364-0.134-0.551l0.039-0.060 1.24-1.62c0.046-0.060 0.071-0.136 0.071-0.214 0-0.169-0.113-0.302-0.253-0.329l-0.054-0.005h-10.573c-0.064 0-0.126 0.022-0.179 0.064-0.126 0.099-0.162 0.281-0.092 0.426l0.036 0.059 4.207 5.495c0.138 0.18 0.221 0.394 0.243 0.617l0.006 0.112 0.015 3.985c0 0.088 0.033 0.171 0.087 0.232l0.045 0.042 1.525 1.158c0.052 0.040 0.114 0.060 0.176 0.060 0.146-0.001 0.274-0.116 0.301-0.275l0.005-0.062-0.020-5.134c-0.001-0.228 0.063-0.452 0.184-0.645l0.065-0.094 1.804-2.357c0.149-0.194 0.433-0.236 0.634-0.092 0.181 0.129 0.234 0.364 0.134 0.551l-0.039 0.060-1.805 2.357c-0.035 0.045-0.058 0.099-0.067 0.157l-0.005 0.059 0.020 5.134c0.003 0.663-0.533 1.212-1.209 1.214-0.23 0.001-0.454-0.063-0.647-0.183l-0.094-0.064-1.525-1.158c-0.267-0.203-0.436-0.506-0.471-0.834l-0.007-0.124-0.015-3.985c-0-0.059-0.015-0.115-0.041-0.165l-0.030-0.047-4.207-5.495c-0.401-0.523-0.308-1.272 0.211-1.682 0.183-0.145 0.405-0.234 0.637-0.256l0.117-0.006h10.573z"
15
- }, null, -1)
16
- ])]);
17
- }
18
- const IconFilter = { name: "components-icon-filter", render };
19
- export {
20
- IconFilter as default
21
- };