@opendesign-plus-test/components 0.0.1-rc.129 → 0.0.1-rc.131

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 (107) hide show
  1. package/dist/chunk-OElCookieNotice.cjs.js +1 -1
  2. package/dist/chunk-OElCookieNotice.es.js +306 -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/header/components/HeaderContent.vue.d.ts +0 -3
  6. package/dist/components/icon/index.d.ts +9 -0
  7. package/dist/components/meeting/OMeetingSigCalendar.vue.d.ts +0 -1
  8. package/dist/components/meeting/index.d.ts +0 -3
  9. package/dist/components/search/internal/SearchPanel.vue.d.ts +1 -1
  10. package/dist/components/sig/OSigDetail.vue.d.ts +30 -0
  11. package/dist/components/sig/OSigList.vue.d.ts +12 -0
  12. package/dist/components/sig/components/OSigDetailInfoCard.vue.d.ts +13 -0
  13. package/dist/components/sig/components/OSigItem.vue.d.ts +14 -0
  14. package/dist/components/sig/components/OSigMember.vue.d.ts +10 -0
  15. package/dist/components/sig/components/OSigRepo.vue.d.ts +8 -0
  16. package/dist/components/sig/components/OSigUserContribute.vue.d.ts +10 -0
  17. package/dist/components/sig/components/config-sig.d.ts +1 -0
  18. package/dist/components/sig/components/utils.d.ts +6 -0
  19. package/dist/components/sig/types.d.ts +169 -0
  20. package/dist/components.cjs.js +39 -39
  21. package/dist/components.css +1 -1
  22. package/dist/components.es.js +13894 -12210
  23. package/dist/index.d.ts +3 -0
  24. package/dist/treeshaking/_virtual/icon-atomgit.mjs +25 -0
  25. package/dist/treeshaking/_virtual/icon-filter.mjs +5 -6
  26. package/dist/treeshaking/_virtual/icon-filter2.mjs +21 -0
  27. package/dist/treeshaking/_virtual/icon-gitee.mjs +20 -0
  28. package/dist/treeshaking/_virtual/icon-mail.mjs +17 -0
  29. package/dist/treeshaking/_virtual/icon-notice.mjs +20 -0
  30. package/dist/treeshaking/_virtual/icon-outlink.mjs +20 -0
  31. package/dist/treeshaking/_virtual/icon-search.mjs +5 -5
  32. package/dist/treeshaking/_virtual/icon-search2.mjs +17 -0
  33. package/dist/treeshaking/_virtual/icon-user.mjs +17 -0
  34. package/dist/treeshaking/_virtual/icon-working.mjs +17 -0
  35. package/dist/treeshaking/_virtual/sig-space.mjs +20 -0
  36. package/dist/treeshaking/components/common/ThFilter.vue.mjs +1 -1
  37. package/dist/treeshaking/components/common/WordAvatar.css +18 -0
  38. package/dist/treeshaking/components/common/WordAvatar.vue.mjs +68 -0
  39. package/dist/treeshaking/components/common/WordAvatar.vue3.mjs +5 -0
  40. package/dist/treeshaking/components/empty/404.png.mjs +4 -0
  41. package/dist/treeshaking/components/empty/404_dark.png.mjs +4 -0
  42. package/dist/treeshaking/components/empty/OEmpty.css +60 -0
  43. package/dist/treeshaking/components/empty/OEmpty.vue.d.ts +24 -0
  44. package/dist/treeshaking/components/empty/OEmpty.vue.mjs +7 -0
  45. package/dist/treeshaking/components/empty/OEmpty.vue2.mjs +40 -0
  46. package/dist/treeshaking/components/empty/index.d.ts +39 -0
  47. package/dist/treeshaking/components/empty/index.mjs +9 -0
  48. package/dist/treeshaking/components/feedback-doc/OFeedbackDocContent.css +49 -21
  49. package/dist/treeshaking/components/feedback-doc/OFeedbackDocContent.vue.mjs +1 -1
  50. package/dist/treeshaking/components/feedback-doc/OFeedbackDocContent.vue2.mjs +15 -14
  51. package/dist/treeshaking/components/feedback-doc/OFeedbackDocDialog.vue.mjs +1 -1
  52. package/dist/treeshaking/components/header/OHeader.css +15 -15
  53. package/dist/treeshaking/components/header/OHeader.vue.mjs +1 -1
  54. package/dist/treeshaking/components/header/OHeader.vue2.mjs +5 -8
  55. package/dist/treeshaking/components/header/components/HeaderContent.css +184 -184
  56. package/dist/treeshaking/components/header/components/HeaderContent.vue.d.ts +0 -3
  57. package/dist/treeshaking/components/header/components/HeaderContent.vue.mjs +1 -1
  58. package/dist/treeshaking/components/header/components/HeaderContent.vue2.mjs +9 -11
  59. package/dist/treeshaking/components/icon/index.d.ts +9 -0
  60. package/dist/treeshaking/components/icon/index.mjs +12 -0
  61. package/dist/treeshaking/components/meeting/OMeetingSigCalendar.css +3 -0
  62. package/dist/treeshaking/components/meeting/OMeetingSigCalendar.vue.d.ts +0 -1
  63. package/dist/treeshaking/components/meeting/OMeetingSigCalendar.vue.mjs +4 -4
  64. package/dist/treeshaking/components/meeting/components/OMeetingCalendarList.vue.mjs +1 -1
  65. package/dist/treeshaking/components/meeting/components/OMeetingDetail.vue.mjs +1 -1
  66. package/dist/treeshaking/components/meeting/components/OMeetingPlaybackSubtitles.vue.mjs +1 -1
  67. package/dist/treeshaking/components/meeting/index.d.ts +0 -3
  68. package/dist/treeshaking/components/search/internal/SearchPanel.vue.d.ts +1 -1
  69. package/dist/treeshaking/components/sig/OSigDetail.css +176 -0
  70. package/dist/treeshaking/components/sig/OSigDetail.vue.d.ts +30 -0
  71. package/dist/treeshaking/components/sig/OSigDetail.vue.mjs +218 -0
  72. package/dist/treeshaking/components/sig/OSigDetail.vue3.mjs +5 -0
  73. package/dist/treeshaking/components/sig/OSigList.css +523 -0
  74. package/dist/treeshaking/components/sig/OSigList.vue.d.ts +12 -0
  75. package/dist/treeshaking/components/sig/OSigList.vue.mjs +595 -0
  76. package/dist/treeshaking/components/sig/OSigList.vue3.mjs +5 -0
  77. package/dist/treeshaking/components/sig/components/OSigDetailInfoCard.css +126 -0
  78. package/dist/treeshaking/components/sig/components/OSigDetailInfoCard.vue.d.ts +13 -0
  79. package/dist/treeshaking/components/sig/components/OSigDetailInfoCard.vue.mjs +61 -0
  80. package/dist/treeshaking/components/sig/components/OSigDetailInfoCard.vue3.mjs +5 -0
  81. package/dist/treeshaking/components/sig/components/OSigItem.css +375 -0
  82. package/dist/treeshaking/components/sig/components/OSigItem.vue.d.ts +14 -0
  83. package/dist/treeshaking/components/sig/components/OSigItem.vue.mjs +229 -0
  84. package/dist/treeshaking/components/sig/components/OSigItem.vue3.mjs +5 -0
  85. package/dist/treeshaking/components/sig/components/OSigMember.css +374 -0
  86. package/dist/treeshaking/components/sig/components/OSigMember.vue.d.ts +10 -0
  87. package/dist/treeshaking/components/sig/components/OSigMember.vue.mjs +274 -0
  88. package/dist/treeshaking/components/sig/components/OSigMember.vue3.mjs +5 -0
  89. package/dist/treeshaking/components/sig/components/OSigRepo.css +108 -0
  90. package/dist/treeshaking/components/sig/components/OSigRepo.vue.d.ts +8 -0
  91. package/dist/treeshaking/components/sig/components/OSigRepo.vue.mjs +181 -0
  92. package/dist/treeshaking/components/sig/components/OSigRepo.vue3.mjs +5 -0
  93. package/dist/treeshaking/components/sig/components/OSigUserContribute.css +510 -0
  94. package/dist/treeshaking/components/sig/components/OSigUserContribute.vue.d.ts +10 -0
  95. package/dist/treeshaking/components/sig/components/OSigUserContribute.vue.mjs +329 -0
  96. package/dist/treeshaking/components/sig/components/OSigUserContribute.vue3.mjs +5 -0
  97. package/dist/treeshaking/components/sig/components/config-sig.d.ts +1 -0
  98. package/dist/treeshaking/components/sig/components/config-sig.mjs +4 -0
  99. package/dist/treeshaking/components/sig/components/utils.d.ts +6 -0
  100. package/dist/treeshaking/components/sig/components/utils.mjs +10 -0
  101. package/dist/treeshaking/components/sig/index.mjs +18 -0
  102. package/dist/treeshaking/components/sig/types.d.ts +169 -0
  103. package/dist/treeshaking/i18n/en.mjs +73 -1
  104. package/dist/treeshaking/i18n/zh.mjs +87 -2
  105. package/dist/treeshaking/index.d.ts +3 -0
  106. package/dist/treeshaking/index.mjs +8 -1
  107. package/package.json +4 -4
@@ -0,0 +1,274 @@
1
+ import { defineComponent, computed, ref, openBlock, createElementBlock, createElementVNode, toDisplayString, unref, createCommentVNode, normalizeStyle, normalizeClass, Fragment, renderList, createVNode, withCtx, createBlock } from "vue";
2
+ import { OIcon } from "@opensig/opendesign";
3
+ import _sfc_main$1 from "../../common/WordAvatar.vue.mjs";
4
+ import '../../common/WordAvatar.css';
5
+ import IconGitee from "../../../_virtual/icon-gitee.mjs";
6
+ import IconAtomGit from "../../../_virtual/icon-atomgit.mjs";
7
+ import IconMail from "../../../_virtual/icon-mail.mjs";
8
+ import IconChevronDown from "../../../_virtual/icon-chevron-down.mjs";
9
+ import { useI18n } from "../../../i18n/index.mjs";
10
+ import { useScreen } from "@opendesign-plus/composables";
11
+ import { useTheme } from "../../../shared/theme.mjs";
12
+ import { detectGitPlatform } from "./utils.mjs";
13
+ const _hoisted_1 = { class: "o-sig-detail-member" };
14
+ const _hoisted_2 = { class: "o-sig-detail-core o-sig-floor-title" };
15
+ const _hoisted_3 = { class: "o-sig-detail-member-box" };
16
+ const _hoisted_4 = {
17
+ key: 0,
18
+ class: "o-sig-detail-member-title"
19
+ };
20
+ const _hoisted_5 = { class: "o-sig-detail-info" };
21
+ const _hoisted_6 = { class: "o-sig-detail-member-id" };
22
+ const _hoisted_7 = { class: "o-sig-detail-member-name" };
23
+ const _hoisted_8 = { class: "o-sig-detail-member-info-right" };
24
+ const _hoisted_9 = ["href"];
25
+ const _hoisted_10 = ["href"];
26
+ const _hoisted_11 = {
27
+ key: 1,
28
+ class: "o-sig-detail-more-btn"
29
+ };
30
+ const _hoisted_12 = {
31
+ key: 2,
32
+ class: "o-sig-detail-member-title o-sig-detail-committer-title"
33
+ };
34
+ const _hoisted_13 = { class: "o-sig-detail-info" };
35
+ const _hoisted_14 = { class: "o-sig-detail-member-id" };
36
+ const _hoisted_15 = { class: "o-sig-detail-member-name" };
37
+ const _hoisted_16 = { class: "o-sig-detail-member-info-right" };
38
+ const _hoisted_17 = ["href"];
39
+ const _hoisted_18 = ["href"];
40
+ const _hoisted_19 = {
41
+ key: 3,
42
+ class: "o-sig-detail-more-btn"
43
+ };
44
+ const _sfc_main = /* @__PURE__ */ defineComponent({
45
+ __name: "OSigMember",
46
+ props: {
47
+ maintainerList: { default: () => [] },
48
+ committerList: { default: () => [] }
49
+ },
50
+ setup(__props) {
51
+ const props = __props;
52
+ const { t } = useI18n();
53
+ const { isPhone, isPadH, isPadV, leLaptop } = useScreen();
54
+ const { isDark } = useTheme();
55
+ const defaultCount = computed(() => {
56
+ if (isPadH.value) return 18;
57
+ if (isPadV.value) return 12;
58
+ if (isPhone.value) return 6;
59
+ return 12;
60
+ });
61
+ const columnsPerRow = computed(() => {
62
+ if (isPadH.value) return 3;
63
+ if (isPadV.value) return 2;
64
+ return 1;
65
+ });
66
+ const maintainerCollapsedCount = computed(
67
+ () => Math.min(props.maintainerList.length, defaultCount.value)
68
+ );
69
+ const committerCollapsedCount = computed(() => {
70
+ const cols = columnsPerRow.value;
71
+ const occupied = Math.ceil(maintainerCollapsedCount.value / cols) * cols;
72
+ return Math.min(
73
+ props.committerList.length,
74
+ Math.max(0, defaultCount.value - occupied)
75
+ );
76
+ });
77
+ const isAllMaintainer = ref(false);
78
+ const viewAllMaintainer = () => {
79
+ isAllMaintainer.value = !isAllMaintainer.value;
80
+ };
81
+ const maintainerData = computed(
82
+ () => isAllMaintainer.value ? props.maintainerList : props.maintainerList.slice(0, maintainerCollapsedCount.value)
83
+ );
84
+ const maintainerFillCount = computed(() => {
85
+ const cols = columnsPerRow.value;
86
+ if (cols <= 1) return 0;
87
+ const rem = maintainerData.value.length % cols;
88
+ return rem === 0 ? 0 : cols - rem;
89
+ });
90
+ const isAllCommitter = ref(false);
91
+ const viewAllCommitter = () => {
92
+ isAllCommitter.value = !isAllCommitter.value;
93
+ };
94
+ const committerData = computed(
95
+ () => isAllCommitter.value ? props.committerList : props.committerList.slice(0, committerCollapsedCount.value)
96
+ );
97
+ const committerFillCount = computed(() => {
98
+ const cols = columnsPerRow.value;
99
+ if (cols <= 1) return 0;
100
+ const rem = committerData.value.length % cols;
101
+ return rem === 0 ? 0 : cols - rem;
102
+ });
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
+ return (_ctx, _cache) => {
110
+ return openBlock(), createElementBlock("div", _hoisted_1, [
111
+ createElementVNode("p", _hoisted_2, toDisplayString(unref(t)("sig.sigCore", {
112
+ num: __props.maintainerList.length + __props.committerList.length
113
+ })), 1),
114
+ createElementVNode("div", _hoisted_3, [
115
+ __props.maintainerList.length ? (openBlock(), createElementBlock("div", _hoisted_4, toDisplayString(unref(t)("sig.sigMaintainer", { num: __props.maintainerList.length })), 1)) : createCommentVNode("", true),
116
+ createElementVNode("div", {
117
+ class: normalizeClass(["o-sig-detail-member-list", {
118
+ "o-sig-detail-member-list-all": isAllMaintainer.value || __props.maintainerList.length <= defaultCount.value,
119
+ "o-sig-detail-member-list-dark": unref(isDark)
120
+ }]),
121
+ style: normalizeStyle({ "--o-sig-detail-member-columns": columnsPerRow.value })
122
+ }, [
123
+ (openBlock(true), createElementBlock(Fragment, null, renderList(maintainerData.value, (member, idx) => {
124
+ return openBlock(), createElementBlock("div", {
125
+ key: member.gitee_id,
126
+ class: "o-sig-detail-member-info"
127
+ }, [
128
+ createElementVNode("div", {
129
+ class: normalizeClass(["o-sig-detail-member-info-left", { "o-sig-detail-member-info-id": !member.name }])
130
+ }, [
131
+ createVNode(_sfc_main$1, {
132
+ name: member.user_login,
133
+ size: "medium",
134
+ "custom-size": unref(leLaptop) ? 32 : 0
135
+ }, null, 8, ["name", "custom-size"]),
136
+ createElementVNode("div", _hoisted_5, [
137
+ createElementVNode("div", _hoisted_6, toDisplayString(member.user_login), 1),
138
+ createElementVNode("div", _hoisted_7, toDisplayString(member.name), 1)
139
+ ])
140
+ ], 2),
141
+ createElementVNode("div", _hoisted_8, [
142
+ createElementVNode("a", {
143
+ href: member.user_homepage_url,
144
+ target: "_blank",
145
+ rel: "noopener noreferrer"
146
+ }, [
147
+ createVNode(unref(OIcon), null, {
148
+ 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)
150
+ ]),
151
+ _: 2
152
+ }, 1024)
153
+ ], 8, _hoisted_9),
154
+ createElementVNode("a", {
155
+ class: normalizeClass(!member.email ? "hidden-link" : ""),
156
+ href: `mailto:${member.email}`
157
+ }, [
158
+ createVNode(unref(OIcon), null, {
159
+ default: withCtx(() => [
160
+ createVNode(unref(IconMail))
161
+ ]),
162
+ _: 1
163
+ })
164
+ ], 10, _hoisted_10)
165
+ ])
166
+ ]);
167
+ }), 128)),
168
+ (openBlock(true), createElementBlock(Fragment, null, renderList(maintainerFillCount.value, (n) => {
169
+ return openBlock(), createElementBlock("div", {
170
+ key: `maintainer-fill-${n}`,
171
+ class: "o-sig-detail-member-placeholder"
172
+ });
173
+ }), 128))
174
+ ], 6),
175
+ __props.maintainerList.length > defaultCount.value ? (openBlock(), createElementBlock("div", _hoisted_11, [
176
+ createElementVNode("div", {
177
+ class: "o-sig-detail-view-all",
178
+ onClick: viewAllMaintainer
179
+ }, [
180
+ createElementVNode("span", null, toDisplayString(isAllMaintainer.value ? unref(t)("common.collapse") : unref(t)("sig.viewAll")), 1),
181
+ createVNode(unref(OIcon), {
182
+ class: normalizeClass({ "o-sig-detail-reversal": isAllMaintainer.value })
183
+ }, {
184
+ default: withCtx(() => [
185
+ createVNode(unref(IconChevronDown))
186
+ ]),
187
+ _: 1
188
+ }, 8, ["class"])
189
+ ])
190
+ ])) : createCommentVNode("", true),
191
+ __props.committerList.length ? (openBlock(), createElementBlock("div", _hoisted_12, toDisplayString(unref(t)("sig.sigCommitter", { num: __props.committerList.length })), 1)) : createCommentVNode("", true),
192
+ createElementVNode("div", {
193
+ class: normalizeClass(["o-sig-detail-member-list", {
194
+ "o-sig-detail-member-list-all": isAllCommitter.value || __props.committerList.length <= committerCollapsedCount.value,
195
+ "o-sig-detail-member-list-dark": unref(isDark)
196
+ }]),
197
+ style: normalizeStyle({ "--o-sig-detail-member-columns": columnsPerRow.value })
198
+ }, [
199
+ (openBlock(true), createElementBlock(Fragment, null, renderList(committerData.value, (member) => {
200
+ return openBlock(), createElementBlock("div", {
201
+ key: member.gitee_id,
202
+ class: "o-sig-detail-member-info"
203
+ }, [
204
+ createElementVNode("div", {
205
+ class: normalizeClass(["o-sig-detail-member-info-left", { "o-sig-detail-member-info-id": !member.name }])
206
+ }, [
207
+ createVNode(_sfc_main$1, {
208
+ name: member.user_login,
209
+ size: "medium",
210
+ "custom-size": unref(leLaptop) ? 32 : 0
211
+ }, null, 8, ["name", "custom-size"]),
212
+ createElementVNode("div", _hoisted_13, [
213
+ createElementVNode("div", _hoisted_14, toDisplayString(member.user_login), 1),
214
+ createElementVNode("div", _hoisted_15, toDisplayString(member.name), 1)
215
+ ])
216
+ ], 2),
217
+ createElementVNode("div", _hoisted_16, [
218
+ createElementVNode("a", {
219
+ href: member.user_homepage_url,
220
+ target: "_blank",
221
+ rel: "noopener noreferrer"
222
+ }, [
223
+ createVNode(unref(OIcon), null, {
224
+ 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)
226
+ ]),
227
+ _: 2
228
+ }, 1024)
229
+ ], 8, _hoisted_17),
230
+ createElementVNode("a", {
231
+ class: normalizeClass(!member.email ? "hidden-link" : ""),
232
+ href: `mailto:${member.email}`
233
+ }, [
234
+ createVNode(unref(OIcon), null, {
235
+ default: withCtx(() => [
236
+ createVNode(unref(IconMail))
237
+ ]),
238
+ _: 1
239
+ })
240
+ ], 10, _hoisted_18)
241
+ ])
242
+ ]);
243
+ }), 128)),
244
+ (openBlock(true), createElementBlock(Fragment, null, renderList(committerFillCount.value, (n) => {
245
+ return openBlock(), createElementBlock("div", {
246
+ key: `committer-fill-${n}`,
247
+ class: "o-sig-detail-member-placeholder"
248
+ });
249
+ }), 128))
250
+ ], 6),
251
+ __props.committerList.length > committerCollapsedCount.value ? (openBlock(), createElementBlock("div", _hoisted_19, [
252
+ createElementVNode("div", {
253
+ class: "o-sig-detail-view-all",
254
+ onClick: viewAllCommitter
255
+ }, [
256
+ createElementVNode("span", null, toDisplayString(isAllCommitter.value ? unref(t)("common.collapse") : unref(t)("sig.viewAll")), 1),
257
+ createVNode(unref(OIcon), {
258
+ class: normalizeClass({ "o-sig-detail-reversal": isAllCommitter.value })
259
+ }, {
260
+ default: withCtx(() => [
261
+ createVNode(unref(IconChevronDown))
262
+ ]),
263
+ _: 1
264
+ }, 8, ["class"])
265
+ ])
266
+ ])) : createCommentVNode("", true)
267
+ ])
268
+ ]);
269
+ };
270
+ }
271
+ });
272
+ export {
273
+ _sfc_main as default
274
+ };
@@ -0,0 +1,5 @@
1
+ import _sfc_main from "./OSigMember.vue.mjs";
2
+ import './OSigMember.css';
3
+ export {
4
+ _sfc_main as default
5
+ };
@@ -0,0 +1,108 @@
1
+ .hover-icon-rotate .o-icon {
2
+ transition: all var(--o-duration-m1) var(--o-easing-standard-in);
3
+ }
4
+ @media (hover: hover) {
5
+ .hover-icon-rotate:hover .o-icon {
6
+ transform: rotate(-180deg);
7
+ }
8
+ }
9
+ .o-sig-detail-repo .o-sig-detail-repo-table {
10
+ margin-top: 24px;
11
+ --table-edge-padding: calc(var(--table-cell-padding) * 2);
12
+ }
13
+ .o-sig-detail-repo .o-sig-detail-repo-table .o-scroller-container {
14
+ min-width: 0;
15
+ }
16
+ .o-sig-detail-repo .o-sig-detail-repo-table .o-table-inner-table {
17
+ table-layout: fixed;
18
+ width: 100%;
19
+ }
20
+ @media (max-width: 840px) {
21
+ .o-sig-detail-repo .o-sig-detail-repo-table {
22
+ margin-top: 12px;
23
+ --table-cell-padding: 8px 12px;
24
+ }
25
+ .o-sig-detail-repo .o-sig-detail-repo-table td,
26
+ .o-sig-detail-repo .o-sig-detail-repo-table th {
27
+ font-size: 16px;
28
+ line-height: 24px;
29
+ }
30
+ }
31
+ @media (max-width: 840px) and (min-width: 1201px) and (max-width: 1680px) {
32
+ .o-sig-detail-repo .o-sig-detail-repo-table td,
33
+ .o-sig-detail-repo .o-sig-detail-repo-table th {
34
+ font-size: 14px;
35
+ line-height: 22px;
36
+ }
37
+ }
38
+ @media (max-width: 840px) and (min-width: 841px) and (max-width: 1200px) {
39
+ .o-sig-detail-repo .o-sig-detail-repo-table td,
40
+ .o-sig-detail-repo .o-sig-detail-repo-table th {
41
+ font-size: 14px;
42
+ line-height: 22px;
43
+ }
44
+ }
45
+ @media (max-width: 840px) and (min-width: 601px) and (max-width: 840px) {
46
+ .o-sig-detail-repo .o-sig-detail-repo-table td,
47
+ .o-sig-detail-repo .o-sig-detail-repo-table th {
48
+ font-size: 14px;
49
+ line-height: 22px;
50
+ }
51
+ }
52
+ @media (max-width: 840px) and (max-width: 600px) {
53
+ .o-sig-detail-repo .o-sig-detail-repo-table td,
54
+ .o-sig-detail-repo .o-sig-detail-repo-table th {
55
+ font-size: 12px;
56
+ line-height: 18px;
57
+ }
58
+ }
59
+ .o-sig-detail-repo .o-sig-detail-repo-table .o-table-body-cell .o-table-cell__inner {
60
+ display: block;
61
+ word-break: break-all;
62
+ }
63
+ .o-sig-detail-repo .o-sig-detail-pagination {
64
+ margin-top: var(--grid-column-gutter);
65
+ display: flex;
66
+ justify-content: flex-end;
67
+ }
68
+ .o-sig-detail-repo .o-sig-detail-get-more {
69
+ cursor: pointer;
70
+ margin-top: 12px;
71
+ display: flex;
72
+ justify-content: center;
73
+ color: var(--o-color-info3);
74
+ font-size: 16px;
75
+ line-height: 24px;
76
+ }
77
+ @media (min-width: 1201px) and (max-width: 1680px) {
78
+ .o-sig-detail-repo .o-sig-detail-get-more {
79
+ font-size: 14px;
80
+ line-height: 22px;
81
+ }
82
+ }
83
+ @media (min-width: 841px) and (max-width: 1200px) {
84
+ .o-sig-detail-repo .o-sig-detail-get-more {
85
+ font-size: 14px;
86
+ line-height: 22px;
87
+ }
88
+ }
89
+ @media (min-width: 601px) and (max-width: 840px) {
90
+ .o-sig-detail-repo .o-sig-detail-get-more {
91
+ font-size: 14px;
92
+ line-height: 22px;
93
+ }
94
+ }
95
+ @media (max-width: 600px) {
96
+ .o-sig-detail-repo .o-sig-detail-get-more {
97
+ font-size: 12px;
98
+ line-height: 18px;
99
+ }
100
+ }
101
+ .o-sig-detail-repo .o-sig-detail-get-more .o-icon {
102
+ margin-left: 8px;
103
+ font-size: var(--o-icon_size-xs);
104
+ transition: transform 0.3s;
105
+ }
106
+ .o-sig-detail-repo .o-sig-detail-reversal {
107
+ transform: rotate(180deg);
108
+ }
@@ -0,0 +1,8 @@
1
+ import { SigRepoEntryT } from '../types';
2
+ interface SigRepoPropsT {
3
+ repositories?: SigRepoEntryT[];
4
+ }
5
+ declare const _default: import('vue').DefineComponent<SigRepoPropsT, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<SigRepoPropsT> & Readonly<{}>, {
6
+ repositories: SigRepoEntryT[];
7
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
8
+ export default _default;
@@ -0,0 +1,181 @@
1
+ import { defineComponent, ref, computed, watch, openBlock, createElementBlock, createElementVNode, toDisplayString, unref, createVNode, withCtx, Fragment, renderList, createBlock, createTextVNode, withDirectives, vShow, createCommentVNode } from "vue";
2
+ import { ODataTable, OLink, OPagination } from "@opensig/opendesign";
3
+ import { useI18n } from "../../../i18n/index.mjs";
4
+ import { useScreen } from "@opendesign-plus/composables";
5
+ const _hoisted_1 = {
6
+ id: "repositories",
7
+ class: "o-sig-detail-repo"
8
+ };
9
+ const _hoisted_2 = { class: "o-sig-detail-repo-title o-sig-floor-title" };
10
+ const _hoisted_3 = { key: 1 };
11
+ const _hoisted_4 = {
12
+ key: 0,
13
+ class: "o-sig-detail-pagination"
14
+ };
15
+ const _sfc_main = /* @__PURE__ */ defineComponent({
16
+ __name: "OSigRepo",
17
+ props: {
18
+ repositories: { default: () => [] }
19
+ },
20
+ setup(__props) {
21
+ const props = __props;
22
+ const { t, locale } = useI18n();
23
+ const { lePadV } = useScreen();
24
+ const currentPage = ref(1);
25
+ const pageSize = ref(10);
26
+ const conditions = ref({});
27
+ const filteredData = computed(() => {
28
+ return props.repositories.filter((item) => {
29
+ var _a, _b, _c, _d, _e;
30
+ if (((_a = conditions.value.repo) == null ? void 0 : _a.length) && !conditions.value.repo.includes(item.repo)) return false;
31
+ if (((_b = conditions.value.maintainers) == null ? void 0 : _b.length) && !((_c = item.maintainers) == null ? void 0 : _c.some((m) => conditions.value.maintainers.includes(m.user_login)))) return false;
32
+ if (((_d = conditions.value.committers) == null ? void 0 : _d.length) && !((_e = item.committers) == null ? void 0 : _e.some((c) => conditions.value.committers.includes(c.user_login)))) return false;
33
+ return true;
34
+ });
35
+ });
36
+ const repositoryList = computed(() => {
37
+ if (!lePadV.value) {
38
+ if (filteredData.value.length > pageSize.value) {
39
+ return filteredData.value.slice(
40
+ (currentPage.value - 1) * pageSize.value,
41
+ currentPage.value * pageSize.value
42
+ );
43
+ }
44
+ return filteredData.value;
45
+ }
46
+ return filteredData.value.slice(0, currentPage.value * pageSize.value);
47
+ });
48
+ watch(
49
+ () => props.repositories,
50
+ () => {
51
+ conditions.value = {};
52
+ currentPage.value = 1;
53
+ }
54
+ );
55
+ const onConditionUpdate = (payload) => {
56
+ if (payload) {
57
+ conditions.value = { ...conditions.value, [payload.key]: payload.newVal };
58
+ currentPage.value = 1;
59
+ }
60
+ };
61
+ const uniqueLogins = (rows, field) => {
62
+ const set = /* @__PURE__ */ new Set();
63
+ rows.forEach(
64
+ (item) => (item[field] || []).forEach((p) => p.user_login && set.add(p.user_login))
65
+ );
66
+ return [...set].map((v) => ({ label: v, value: v }));
67
+ };
68
+ const columns = computed(() => [
69
+ {
70
+ key: "repo",
71
+ label: t("sig.repositoryName"),
72
+ width: "20%",
73
+ filter: {
74
+ optionsFn: () => props.repositories.map((item) => ({ label: item.repo, value: item.repo })),
75
+ multiple: false
76
+ }
77
+ },
78
+ {
79
+ key: "maintainers",
80
+ label: t("sig.maintainerEn"),
81
+ width: "48%",
82
+ filter: {
83
+ optionsFn: () => uniqueLogins(props.repositories, "maintainers"),
84
+ multiple: false
85
+ }
86
+ },
87
+ {
88
+ key: "committers",
89
+ label: t("sig.committer"),
90
+ width: "22%",
91
+ filter: {
92
+ optionsFn: () => uniqueLogins(props.repositories, "committers"),
93
+ multiple: false
94
+ }
95
+ }
96
+ ]);
97
+ return (_ctx, _cache) => {
98
+ return openBlock(), createElementBlock("div", _hoisted_1, [
99
+ createElementVNode("h2", _hoisted_2, toDisplayString(unref(t)("sig.repoList", { count: filteredData.value.length })), 1),
100
+ createVNode(unref(ODataTable), {
101
+ class: "o-sig-detail-repo-table",
102
+ columns: columns.value,
103
+ size: "small",
104
+ border: "row-frame",
105
+ data: repositoryList.value,
106
+ "row-key": "repo",
107
+ onConditionUpdate
108
+ }, {
109
+ td_repo: withCtx(({ row }) => [
110
+ createVNode(unref(OLink), {
111
+ target: "_blank",
112
+ rel: "noopener noreferrer",
113
+ href: `https://atomgit.com/${row.repo}`
114
+ }, {
115
+ default: withCtx(() => [
116
+ createTextVNode(toDisplayString(row.repo), 1)
117
+ ]),
118
+ _: 2
119
+ }, 1032, ["href"])
120
+ ]),
121
+ td_maintainers: withCtx(({ row }) => [
122
+ (openBlock(true), createElementBlock(Fragment, null, renderList(row.maintainers, (item, index) => {
123
+ return openBlock(), createBlock(unref(OLink), {
124
+ key: item.user_login,
125
+ target: "_blank",
126
+ rel: "noopener noreferrer",
127
+ href: item.user_homepage_url
128
+ }, {
129
+ default: withCtx(() => [
130
+ createTextVNode(toDisplayString(item.user_login) + " ", 1),
131
+ withDirectives(createElementVNode("span", null, toDisplayString(unref(locale) === "zh" ? "、" : ", "), 513), [
132
+ [vShow, index !== row.maintainers.length - 1]
133
+ ])
134
+ ]),
135
+ _: 2
136
+ }, 1032, ["href"]);
137
+ }), 128))
138
+ ]),
139
+ td_committers: withCtx(({ row }) => {
140
+ var _a;
141
+ return [
142
+ ((_a = row.committers) == null ? void 0 : _a.length) ? (openBlock(true), createElementBlock(Fragment, { key: 0 }, renderList(row.committers, (item, index) => {
143
+ return openBlock(), createBlock(unref(OLink), {
144
+ key: item.user_login,
145
+ target: "_blank",
146
+ rel: "noopener noreferrer",
147
+ href: item.user_homepage_url
148
+ }, {
149
+ default: withCtx(() => [
150
+ createTextVNode(toDisplayString(item.user_login) + " ", 1),
151
+ withDirectives(createElementVNode("span", null, toDisplayString(unref(locale) === "zh" ? "、" : ", "), 513), [
152
+ [vShow, index !== row.committers.length - 1]
153
+ ])
154
+ ]),
155
+ _: 2
156
+ }, 1032, ["href"]);
157
+ }), 128)) : (openBlock(), createElementBlock("span", _hoisted_3, "-"))
158
+ ];
159
+ }),
160
+ _: 1
161
+ }, 8, ["columns", "data"]),
162
+ filteredData.value.length > pageSize.value ? (openBlock(), createElementBlock("div", _hoisted_4, [
163
+ createVNode(unref(OPagination), {
164
+ page: currentPage.value,
165
+ "onUpdate:page": _cache[0] || (_cache[0] = ($event) => currentPage.value = $event),
166
+ "page-size": pageSize.value,
167
+ "onUpdate:pageSize": _cache[1] || (_cache[1] = ($event) => pageSize.value = $event),
168
+ layout: ["total", "pagesize", "pager", "jumper"],
169
+ total: filteredData.value.length,
170
+ "page-sizes": [10, 20, 30, 40],
171
+ "show-more": true,
172
+ simple: unref(lePadV)
173
+ }, null, 8, ["page", "page-size", "total", "simple"])
174
+ ])) : createCommentVNode("", true)
175
+ ]);
176
+ };
177
+ }
178
+ });
179
+ export {
180
+ _sfc_main as default
181
+ };
@@ -0,0 +1,5 @@
1
+ import _sfc_main from "./OSigRepo.vue.mjs";
2
+ import './OSigRepo.css';
3
+ export {
4
+ _sfc_main as default
5
+ };