vue-layout-gitcode 1.12.15-beta.6 → 1.12.15-beta.61
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.
- package/GloabarSearch-uyAWrX7X.js +154 -0
- package/{MenuItem-gpMioL7c.js → MenuItem-Dkx_uTDj.js} +7 -2
- package/{ProjectMenuList-qJRgFFc2.js → ProjectMenuList-CP4-QaX-.js} +2 -2
- package/{ProjectMenuListV2-DxeLKcuC.js → ProjectMenuListV2-CIaKJoPo.js} +3 -3
- package/{ProjectSearch-ByOYVtZa.js → ProjectSearch-B4CGDNjV.js} +36 -10
- package/{SearchHistoryList-BSEHxpLm.js → SearchHistoryList-DAWX7oM1.js} +13 -10
- package/{SearchRecommed-DxKb5eje.js → SearchRecommed-C6GXaNWA.js} +2 -2
- package/{SearchScopeList-D-VLtvR3.js → SearchScopeList-B5d3IluA.js} +1 -1
- package/{UserSearch-CMvjqb9t.js → UserSearch-Bnk1WM4z.js} +15 -12
- package/{index-DB8vSwNM.js → index-BeRIIRfv.js} +1 -1
- package/{index-VaV5XVhn.js → index-CUz285eq.js} +1 -1
- package/{index-CKKeJYA9.js → index-DzTQ2iLs.js} +3693 -1966
- package/index.d.ts +53 -856
- package/index.js +21 -13
- package/{notice-DPBhpIrF.js → notice-D08Onnii.js} +1 -1
- package/package.json +1 -1
- package/style.css +1 -1
- package/{transWebUrl-C5NH2PM9.js → transWebUrl-D0hbacwo.js} +1 -1
- package/{index-BfpPpmj0.js → useReportRepo-sTMQBVbL.js} +90 -109
- package/GloabarSearch-iT2fx6Su.js +0 -202
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import { defineComponent, inject, createElementBlock, openBlock, Fragment, renderList, withDirectives, createBlock, unref, ref, watch, createElementVNode, createCommentVNode, createVNode, toDisplayString } from "vue";
|
|
2
|
+
import { h as headRequest, R as REPO_MODULE, v as vElementExposure, b as REPO_EVENT, _ as _export_sfc, c as REPO_TYPE, e as extractRepoInfoWithURL, a as i18n, G as GIcon } from "./index-DzTQ2iLs.js";
|
|
3
|
+
import { u as useReportRepo, S as SearchRepoCard, f as formatNameSpace } from "./useReportRepo-sTMQBVbL.js";
|
|
4
|
+
import "vue-devui-lal/icon";
|
|
5
|
+
import "vue-devui-lal/icon/style.css";
|
|
6
|
+
const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
7
|
+
__name: "SearchRepoCardList",
|
|
8
|
+
props: {
|
|
9
|
+
dataList: { default: () => [] },
|
|
10
|
+
searchStr: { default: "" },
|
|
11
|
+
type: { default: "" }
|
|
12
|
+
},
|
|
13
|
+
setup(__props) {
|
|
14
|
+
const props = __props;
|
|
15
|
+
const API = headRequest(inject("request"));
|
|
16
|
+
const { triggerReport } = useReportRepo({ moduleName: REPO_MODULE.SEARCH_SUGGESTION_CARD }, API.viewReport);
|
|
17
|
+
const useReport = inject("useReport");
|
|
18
|
+
const handleReport = (item) => {
|
|
19
|
+
useReport(REPO_EVENT.CLICK, { module_name: REPO_MODULE.SEARCH_SUGGESTION_CARD, repo_id: item.id });
|
|
20
|
+
};
|
|
21
|
+
return (_ctx, _cache) => {
|
|
22
|
+
return openBlock(true), createElementBlock(Fragment, null, renderList(props.dataList, (item, index) => {
|
|
23
|
+
return withDirectives((openBlock(), createBlock(SearchRepoCard, {
|
|
24
|
+
key: `${item.searchType || props.type}-${item.id}`,
|
|
25
|
+
class: "search-repo-list-card",
|
|
26
|
+
info: { ...item, index },
|
|
27
|
+
keyword: props.searchStr,
|
|
28
|
+
hover: "",
|
|
29
|
+
noborder: false,
|
|
30
|
+
hideTopicTags: "",
|
|
31
|
+
hideStarBtn: "",
|
|
32
|
+
hideFooter: "",
|
|
33
|
+
hideDescription: "",
|
|
34
|
+
onReport: () => handleReport(item),
|
|
35
|
+
cardType: item.searchType || props.type,
|
|
36
|
+
"url-params": { source_module: "search_project" }
|
|
37
|
+
}, null, 8, ["info", "keyword", "onReport", "cardType"])), [
|
|
38
|
+
[unref(vElementExposure), { trigger: (type) => unref(triggerReport)(type, item) }]
|
|
39
|
+
]);
|
|
40
|
+
}), 128);
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
const SearchRepoCardList = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-vue-layout-gitcode"]]);
|
|
45
|
+
const normalizeOrigin = (origin) => origin.replace(/\/+$/, "");
|
|
46
|
+
const getStringValue = (value) => typeof value === "string" ? value : "";
|
|
47
|
+
const convertDataList = ({ dataList, searchType, origin }) => {
|
|
48
|
+
if (!Array.isArray(dataList)) {
|
|
49
|
+
return { items: [] };
|
|
50
|
+
}
|
|
51
|
+
const baseOrigin = normalizeOrigin(origin);
|
|
52
|
+
const items = dataList.slice(0, 3).filter((item) => Boolean(item) && typeof item === "object" && !Array.isArray(item)).map((item) => {
|
|
53
|
+
const isGitcodeRepo = REPO_TYPE.GITCODE === item.is_mirrors;
|
|
54
|
+
const importUrl = getStringValue(item.import_url);
|
|
55
|
+
const importedRepoName = importUrl ? extractRepoInfoWithURL(importUrl) : "";
|
|
56
|
+
const nameWithNamespace = getStringValue(item.name_with_namespace);
|
|
57
|
+
const pathWithNamespace = getStringValue(item.path_with_namespace);
|
|
58
|
+
const repoName = (isGitcodeRepo ? nameWithNamespace : importedRepoName) || nameWithNamespace || pathWithNamespace;
|
|
59
|
+
const displayName = formatNameSpace(repoName).join("/");
|
|
60
|
+
const path = `${baseOrigin}/${pathWithNamespace}`;
|
|
61
|
+
return {
|
|
62
|
+
...item,
|
|
63
|
+
searchType,
|
|
64
|
+
path,
|
|
65
|
+
displayName,
|
|
66
|
+
web_url: path
|
|
67
|
+
};
|
|
68
|
+
});
|
|
69
|
+
return { items };
|
|
70
|
+
};
|
|
71
|
+
const mergeSearchSuggestions = ({ response = {}, origin }) => ({
|
|
72
|
+
items: [
|
|
73
|
+
...convertDataList({ dataList: response.recommend_project, searchType: "repo", origin }).items,
|
|
74
|
+
...convertDataList({ dataList: response.recommend_model, searchType: "model", origin }).items,
|
|
75
|
+
...convertDataList({ dataList: response.recommend_dataset, searchType: "dataset", origin }).items
|
|
76
|
+
]
|
|
77
|
+
});
|
|
78
|
+
const _hoisted_1 = {
|
|
79
|
+
key: 0,
|
|
80
|
+
class: "history-list-project history-list-project--padded"
|
|
81
|
+
};
|
|
82
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
83
|
+
__name: "GloabarSearch",
|
|
84
|
+
props: {
|
|
85
|
+
searchStr: {}
|
|
86
|
+
},
|
|
87
|
+
emits: ["searchMore"],
|
|
88
|
+
setup(__props, { emit: __emit }) {
|
|
89
|
+
const emits = __emit;
|
|
90
|
+
const { t: $t } = i18n.global;
|
|
91
|
+
const API = headRequest(inject("request", () => Promise.resolve({ data: {} })));
|
|
92
|
+
const useReport = inject("useReport", () => {
|
|
93
|
+
});
|
|
94
|
+
const searchSuggestionList = ref([]);
|
|
95
|
+
const origin = window.location.origin;
|
|
96
|
+
const props = __props;
|
|
97
|
+
let timer = null;
|
|
98
|
+
const handleSearchAll = () => {
|
|
99
|
+
emits("searchMore", "all");
|
|
100
|
+
};
|
|
101
|
+
const getData = async () => {
|
|
102
|
+
if (!props.searchStr) {
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
try {
|
|
106
|
+
useReport("search-project", {});
|
|
107
|
+
const res = await API.getGloabarSearchKeyLink({ q: props.searchStr });
|
|
108
|
+
searchSuggestionList.value = mergeSearchSuggestions({ response: res.data || {}, origin }).items;
|
|
109
|
+
} catch (error) {
|
|
110
|
+
console.error("Failed to fetch search results:", error);
|
|
111
|
+
searchSuggestionList.value = [];
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
if (props.searchStr) {
|
|
115
|
+
getData();
|
|
116
|
+
}
|
|
117
|
+
watch(
|
|
118
|
+
() => props.searchStr,
|
|
119
|
+
() => {
|
|
120
|
+
if (timer) {
|
|
121
|
+
clearTimeout(timer);
|
|
122
|
+
}
|
|
123
|
+
timer = setTimeout(() => {
|
|
124
|
+
getData();
|
|
125
|
+
}, 300);
|
|
126
|
+
}
|
|
127
|
+
);
|
|
128
|
+
return (_ctx, _cache) => {
|
|
129
|
+
return openBlock(), createElementBlock(Fragment, null, [
|
|
130
|
+
createElementVNode("button", {
|
|
131
|
+
type: "button",
|
|
132
|
+
class: "global-search-all",
|
|
133
|
+
onClick: handleSearchAll
|
|
134
|
+
}, [
|
|
135
|
+
createVNode(GIcon, {
|
|
136
|
+
name: "gt-search",
|
|
137
|
+
color: "var(--theme-placeholder)"
|
|
138
|
+
}),
|
|
139
|
+
createElementVNode("span", null, toDisplayString(unref($t)("gitCodeLayout.header.searchAll", { keyword: _ctx.searchStr })), 1)
|
|
140
|
+
]),
|
|
141
|
+
searchSuggestionList.value.length ? (openBlock(), createElementBlock("div", _hoisted_1, [
|
|
142
|
+
createVNode(SearchRepoCardList, {
|
|
143
|
+
"data-list": searchSuggestionList.value,
|
|
144
|
+
"search-str": _ctx.searchStr,
|
|
145
|
+
type: "repo"
|
|
146
|
+
}, null, 8, ["data-list", "search-str"])
|
|
147
|
+
])) : createCommentVNode("", true)
|
|
148
|
+
], 64);
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
});
|
|
152
|
+
export {
|
|
153
|
+
_sfc_main as default
|
|
154
|
+
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defineComponent, inject, useSlots, computed, ref, createBlock, openBlock, unref, withCtx, createElementVNode, normalizeClass, createElementBlock, createCommentVNode, createTextVNode, toDisplayString, renderSlot } from "vue";
|
|
2
|
-
import { a as i18n,
|
|
2
|
+
import { a as i18n, z as useLayoutConfig, B as ThemeType, C as currentTheme, L as LANG_ZH, D as LANG_EN, F as getLocaleLang, G as GIcon, H as emitEvent, b as REPO_EVENT, I as ASIDE_MENU_REPO, J as isHttps, K as navigateWithMigrationGuard, _ as _export_sfc } from "./index-DzTQ2iLs.js";
|
|
3
3
|
import { useRouter } from "vue-router";
|
|
4
4
|
import { Popover } from "vue-devui-lal/popover";
|
|
5
5
|
import "vue-devui-lal/popover/style.css";
|
|
@@ -76,7 +76,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
76
76
|
return nameMap[getLocaleLang()] || props.item.left_menu_name_cn;
|
|
77
77
|
});
|
|
78
78
|
const isShowPopover = computed(() => {
|
|
79
|
-
return props.item.is_show_popup && props.slotKeys.includes(props.item.popup_key) && slots[props.item.popup_key] && asideSetShow.value;
|
|
79
|
+
return Boolean(props.item.is_show_popup && props.slotKeys.includes(props.item.popup_key) && slots[props.item.popup_key] && asideSetShow.value);
|
|
80
80
|
});
|
|
81
81
|
const handleMouseEnter = () => {
|
|
82
82
|
isHover.value = true;
|
|
@@ -106,6 +106,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
106
106
|
emitEvent("login", { loginTriggerSource: `aside_${props.item.left_menu_url}` });
|
|
107
107
|
return;
|
|
108
108
|
}
|
|
109
|
+
if (props.item.left_menu_url === "/dashboard/downloads?tab=view") {
|
|
110
|
+
useReport(REPO_EVENT.CLICK, { module_name: ASIDE_MENU_REPO.BROWSEHISTORYCLICK });
|
|
111
|
+
window.open(props.item.left_menu_url, "_blank");
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
109
114
|
if (props.item.left_menu_url === "/dashboard/downloads") {
|
|
110
115
|
(_b = (_a = globalStore.value) == null ? void 0 : _a.downloadClickRequest) == null ? void 0 : _b.call(_a);
|
|
111
116
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { defineComponent, inject, ref, reactive, watch, computed, createElementBlock, openBlock, createCommentVNode, createBlock, withDirectives, Fragment, createElementVNode, createVNode, toDisplayString, unref, withModifiers, normalizeClass, withCtx, renderList, createTextVNode, vShow } from "vue";
|
|
2
|
-
import { a as i18n,
|
|
2
|
+
import { a as i18n, z as useLayoutConfig, G as GIcon, t as transformUrl, N as _sfc_main$1, O as loadAsideData, K as navigateWithMigrationGuard, H as emitEvent, s as setLoginTriggerSource, f as useRequestReport, M as asideRequest, _ as _export_sfc } from "./index-DzTQ2iLs.js";
|
|
3
3
|
import { useRouter } from "vue-router";
|
|
4
|
-
import { t as transWebUrl } from "./transWebUrl-
|
|
4
|
+
import { t as transWebUrl } from "./transWebUrl-D0hbacwo.js";
|
|
5
5
|
import { Select, Option } from "vue-devui-lal/select";
|
|
6
6
|
import { Input } from "vue-devui-lal/input";
|
|
7
7
|
import { Skeleton } from "vue-devui-lal/skeleton";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { defineComponent, inject, ref, reactive, computed, watch, createElementBlock, openBlock, createElementVNode, createVNode, createBlock, createCommentVNode, withDirectives, toDisplayString, unref, withModifiers, normalizeClass, withCtx, Fragment, renderList, createTextVNode, vShow } from "vue";
|
|
2
|
-
import { a as i18n,
|
|
2
|
+
import { a as i18n, z as useLayoutConfig, t as transformUrl, M as asideRequest, G as GIcon, K as navigateWithMigrationGuard, H as emitEvent, s as setLoginTriggerSource, f as useRequestReport, _ as _export_sfc } from "./index-DzTQ2iLs.js";
|
|
3
3
|
import { useRouter } from "vue-router";
|
|
4
|
-
import { t as transWebUrl } from "./transWebUrl-
|
|
4
|
+
import { t as transWebUrl } from "./transWebUrl-D0hbacwo.js";
|
|
5
5
|
import { Input } from "vue-devui-lal/input";
|
|
6
6
|
import { Skeleton } from "vue-devui-lal/skeleton";
|
|
7
7
|
import { MenuItem } from "vue-devui-lal/menu";
|
|
@@ -26,7 +26,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
26
26
|
props: {
|
|
27
27
|
buttonText: { default: "" },
|
|
28
28
|
subShow: { type: Boolean, default: false },
|
|
29
|
-
defaultData: {},
|
|
29
|
+
defaultData: { default: () => ({ loading: false }) },
|
|
30
30
|
isLogin: { type: Boolean, default: false },
|
|
31
31
|
username: { default: "" }
|
|
32
32
|
},
|
|
@@ -1,34 +1,60 @@
|
|
|
1
|
-
import { ref, inject, computed, withDirectives, createElementBlock, openBlock, createElementVNode, toDisplayString, unref, Fragment, renderList, createVNode, vShow } from "vue";
|
|
2
|
-
import { a as i18n, h as headRequest, G as GIcon, r as reqCatch } from "./index-
|
|
1
|
+
import { defineComponent, ref, inject, watch, computed, withDirectives, createElementBlock, openBlock, createElementVNode, toDisplayString, unref, Fragment, renderList, createVNode, vShow } from "vue";
|
|
2
|
+
import { a as i18n, h as headRequest, G as GIcon, r as reqCatch } from "./index-DzTQ2iLs.js";
|
|
3
3
|
import { useRoute, useRouter } from "vue-router";
|
|
4
4
|
import "vue-devui-lal/icon";
|
|
5
5
|
import "vue-devui-lal/icon/style.css";
|
|
6
|
+
const extractSearchFileList = (response) => {
|
|
7
|
+
const responseData = Array.isArray(response) ? response : response == null ? void 0 : response.data;
|
|
8
|
+
const data = responseData && typeof responseData === "object" && !Array.isArray(responseData) && "data" in responseData ? responseData.data : responseData;
|
|
9
|
+
return Array.isArray(data) ? data.filter((item) => typeof item === "string") : [];
|
|
10
|
+
};
|
|
6
11
|
const _hoisted_1 = { class: "history-list-project history-list-project--padded" };
|
|
7
12
|
const _hoisted_2 = { class: "history-list-project-globartitle history-list-project-globartitle--gap" };
|
|
8
13
|
const _hoisted_3 = ["href"];
|
|
9
14
|
const _hoisted_4 = { class: "history-list-project-globarbox" };
|
|
10
15
|
const _hoisted_5 = { class: "ellipsis history-list-project__name" };
|
|
11
|
-
const _sfc_main = /* @__PURE__ */
|
|
16
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
17
|
+
...{ name: "SearchFileList" },
|
|
12
18
|
__name: "ProjectSearch",
|
|
13
|
-
props:
|
|
19
|
+
props: {
|
|
20
|
+
searchStr: {},
|
|
21
|
+
searchInfo: {},
|
|
22
|
+
isSearchPage: { type: Boolean }
|
|
23
|
+
},
|
|
14
24
|
setup(__props) {
|
|
15
25
|
const { t: $t } = i18n.global;
|
|
16
26
|
const props = __props;
|
|
17
27
|
const filedList = ref([]);
|
|
18
28
|
const route = useRoute();
|
|
19
29
|
const router = useRouter();
|
|
20
|
-
const API = headRequest(inject("request"));
|
|
30
|
+
const API = headRequest(inject("request", () => Promise.resolve({ data: {} })));
|
|
31
|
+
let fileListRequestId = 0;
|
|
21
32
|
const loadFileList = async () => {
|
|
22
|
-
var _a, _b
|
|
23
|
-
|
|
33
|
+
var _a, _b;
|
|
34
|
+
const searchScopeName = (_a = props == null ? void 0 : props.searchInfo) == null ? void 0 : _a.searchScopeName;
|
|
35
|
+
const requestId = ++fileListRequestId;
|
|
36
|
+
if (!searchScopeName) {
|
|
37
|
+
filedList.value = [];
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
24
40
|
const params = {
|
|
25
|
-
repoId: encodeURIComponent(
|
|
41
|
+
repoId: encodeURIComponent(searchScopeName),
|
|
26
42
|
ref_name: ((_b = props.searchInfo) == null ? void 0 : _b.branch) || ""
|
|
27
43
|
};
|
|
28
44
|
const res = await reqCatch(API.getRepoFileList, params);
|
|
29
|
-
|
|
45
|
+
if (requestId !== fileListRequestId) return;
|
|
46
|
+
filedList.value = extractSearchFileList(res == null ? void 0 : res.data);
|
|
30
47
|
};
|
|
31
|
-
|
|
48
|
+
watch(
|
|
49
|
+
() => {
|
|
50
|
+
var _a, _b;
|
|
51
|
+
return [(_a = props.searchInfo) == null ? void 0 : _a.searchScopeName, (_b = props.searchInfo) == null ? void 0 : _b.branch];
|
|
52
|
+
},
|
|
53
|
+
() => {
|
|
54
|
+
void loadFileList();
|
|
55
|
+
},
|
|
56
|
+
{ immediate: true }
|
|
57
|
+
);
|
|
32
58
|
const searchFileList = computed(() => {
|
|
33
59
|
return filedList.value.filter((item) => {
|
|
34
60
|
var _a;
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { defineComponent, computed, createElementBlock, openBlock, createCommentVNode, Fragment, renderList, normalizeClass, createElementVNode, createVNode, toDisplayString, withModifiers } from "vue";
|
|
2
|
-
import { a as i18n, G as GIcon, _ as _export_sfc } from "./index-
|
|
2
|
+
import { a as i18n, n as normalizeSearchHistoryEntry, G as GIcon, _ as _export_sfc } from "./index-DzTQ2iLs.js";
|
|
3
3
|
import "vue-devui-lal/icon";
|
|
4
4
|
import "vue-devui-lal/icon/style.css";
|
|
5
5
|
const _hoisted_1 = { class: "history-list" };
|
|
6
6
|
const _hoisted_2 = ["onClick", "onMouseenter"];
|
|
7
7
|
const _hoisted_3 = { class: "history-list-box__content" };
|
|
8
|
-
const _hoisted_4 = { class: "history-list-
|
|
8
|
+
const _hoisted_4 = { class: "history-list-box__prefix" };
|
|
9
9
|
const _hoisted_5 = ["title"];
|
|
10
10
|
const _hoisted_6 = ["title"];
|
|
11
|
-
const _hoisted_7 = { class: "item-tx" };
|
|
12
|
-
const _hoisted_8 = { class: "history-list-box__type
|
|
11
|
+
const _hoisted_7 = { class: "history-list-box__keyword item-tx" };
|
|
12
|
+
const _hoisted_8 = { class: "history-list-box__type" };
|
|
13
13
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
14
14
|
__name: "SearchHistoryList",
|
|
15
15
|
props: {
|
|
@@ -42,6 +42,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
42
42
|
icon: "gt-plane-project",
|
|
43
43
|
hoverIcon: "gt-plane-project-red"
|
|
44
44
|
},
|
|
45
|
+
all: {
|
|
46
|
+
text: t("gitCodeLayout.common.all"),
|
|
47
|
+
icon: "gt-plane-column1",
|
|
48
|
+
hoverIcon: "gt-plane-column-red"
|
|
49
|
+
},
|
|
45
50
|
model: {
|
|
46
51
|
text: t("gitCodeLayout.aihub.model"),
|
|
47
52
|
icon: "gt-plane-Models",
|
|
@@ -83,11 +88,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
83
88
|
hoverIcon: "gt-plane-topic-red"
|
|
84
89
|
}
|
|
85
90
|
};
|
|
86
|
-
|
|
91
|
+
const type = normalizeSearchHistoryEntry(item).type;
|
|
92
|
+
return typeMap[type] || typeMap["repo"];
|
|
87
93
|
};
|
|
88
94
|
const historyList = computed(() => {
|
|
89
95
|
var _a;
|
|
90
|
-
return (_a = props.searchHistoryList) == null ? void 0 : _a.map((raw) =>
|
|
96
|
+
return (_a = props.searchHistoryList) == null ? void 0 : _a.map((raw) => normalizeSearchHistoryEntry(raw)).filter((item) => item == null ? void 0 : item.q).map((item) => {
|
|
91
97
|
const repoTitle = item.repo ? `${t("gitCodeLayout.header.repo")} ${decodeURIComponent(item.repo)}:` : "";
|
|
92
98
|
const userVal = item.user || (item.scope === "user" ? item.namespace : "");
|
|
93
99
|
const orgVal = item.org || (item.scope === "user" ? "" : item.namespace);
|
|
@@ -100,9 +106,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
100
106
|
return { ...item, repoTitle, namespaceTitle };
|
|
101
107
|
});
|
|
102
108
|
});
|
|
103
|
-
computed(() => {
|
|
104
|
-
return props.visitHistoryList;
|
|
105
|
-
});
|
|
106
109
|
const resetIndex = () => {
|
|
107
110
|
emits("resetIndex");
|
|
108
111
|
};
|
|
@@ -124,7 +127,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
124
127
|
}, [
|
|
125
128
|
(openBlock(true), createElementBlock(Fragment, null, renderList(historyList.value, (item, index) => {
|
|
126
129
|
return openBlock(), createElementBlock("li", {
|
|
127
|
-
key: item
|
|
130
|
+
key: `${item.q}-${item.type || "repo"}-${index}`,
|
|
128
131
|
class: normalizeClass(_ctx.activeIndex === index ? "hoverbg" : ""),
|
|
129
132
|
onClick: ($event) => toSearch(item),
|
|
130
133
|
onMouseenter: ($event) => onSearchEnter(index)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { defineComponent, inject, ref, onMounted, createElementBlock, openBlock, createElementVNode, toDisplayString, unref, Fragment, renderList, renderSlot, createBlock, createVNode, withCtx } from "vue";
|
|
2
|
-
import { u as useReportRepo, S as SearchRepoCard } from "./
|
|
3
|
-
import { a as i18n, h as headRequest, R as REPO_MODULE, b as REPO_EVENT, l as localStorage, _ as _export_sfc } from "./index-
|
|
2
|
+
import { u as useReportRepo, S as SearchRepoCard } from "./useReportRepo-sTMQBVbL.js";
|
|
3
|
+
import { a as i18n, h as headRequest, R as REPO_MODULE, b as REPO_EVENT, l as localStorage, _ as _export_sfc } from "./index-DzTQ2iLs.js";
|
|
4
4
|
import { Row, Col } from "vue-devui-lal/grid";
|
|
5
5
|
import { SkeletonItem } from "vue-devui-lal/skeleton";
|
|
6
6
|
import "vue-devui-lal/grid/style.css";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defineComponent, createElementBlock, openBlock, Fragment, renderList, createElementVNode, createVNode, createCommentVNode, toDisplayString, unref } from "vue";
|
|
2
|
-
import { a as i18n, G as GIcon, _ as _export_sfc } from "./index-
|
|
2
|
+
import { a as i18n, G as GIcon, _ as _export_sfc } from "./index-DzTQ2iLs.js";
|
|
3
3
|
import "vue-devui-lal/icon";
|
|
4
4
|
import "vue-devui-lal/icon/style.css";
|
|
5
5
|
const _hoisted_1 = ["onClick"];
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { inject, ref, watch, withDirectives, createElementBlock, openBlock, createElementVNode, toDisplayString, unref, Fragment, renderList, createVNode, vShow } from "vue";
|
|
2
|
-
import { a as i18n, h as headRequest, G as GIcon, t as transformUrl } from "./index-
|
|
1
|
+
import { defineComponent, inject, ref, watch, withDirectives, createElementBlock, openBlock, createElementVNode, toDisplayString, unref, Fragment, renderList, createVNode, vShow } from "vue";
|
|
2
|
+
import { a as i18n, h as headRequest, G as GIcon, t as transformUrl } from "./index-DzTQ2iLs.js";
|
|
3
3
|
import "vue-devui-lal/icon";
|
|
4
4
|
import "vue-devui-lal/icon/style.css";
|
|
5
5
|
const _hoisted_1 = { class: "history-list-project history-list-project--padded" };
|
|
@@ -7,12 +7,15 @@ const _hoisted_2 = { class: "history-list-project-globartitle history-list-proje
|
|
|
7
7
|
const _hoisted_3 = ["href"];
|
|
8
8
|
const _hoisted_4 = { class: "history-list-project-globarbox" };
|
|
9
9
|
const _hoisted_5 = { class: "ellipsis history-list-project__name" };
|
|
10
|
-
const _sfc_main = {
|
|
10
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
11
11
|
__name: "UserSearch",
|
|
12
|
-
props:
|
|
12
|
+
props: {
|
|
13
|
+
searchStr: {},
|
|
14
|
+
searchInfo: {}
|
|
15
|
+
},
|
|
13
16
|
setup(__props) {
|
|
14
17
|
const { t: $t } = i18n.global;
|
|
15
|
-
const API = headRequest(inject("request"));
|
|
18
|
+
const API = headRequest(inject("request", () => Promise.resolve({ data: {} })));
|
|
16
19
|
const props = __props;
|
|
17
20
|
const loading = ref(false);
|
|
18
21
|
const searchFileList = ref([]);
|
|
@@ -41,14 +44,14 @@ const _sfc_main = {
|
|
|
41
44
|
search: props.searchStr
|
|
42
45
|
}).then((res) => {
|
|
43
46
|
const data = res.data || {};
|
|
44
|
-
searchFileList.value = data.content.map((item) => {
|
|
47
|
+
searchFileList.value = (data.content || []).map((item) => {
|
|
45
48
|
return {
|
|
46
49
|
...item,
|
|
47
|
-
web_url: transformUrl(item.web_url),
|
|
48
|
-
ssh_url_to_repo: transformUrl(item.ssh_url_to_repo),
|
|
49
|
-
http_url_to_repo: transformUrl(item.http_url_to_repo),
|
|
50
|
-
readme_url: transformUrl(item.readme_url),
|
|
51
|
-
avatar_url: transformUrl(item.avatar_url)
|
|
50
|
+
web_url: transformUrl(item.web_url || ""),
|
|
51
|
+
ssh_url_to_repo: transformUrl(item.ssh_url_to_repo || ""),
|
|
52
|
+
http_url_to_repo: transformUrl(item.http_url_to_repo || ""),
|
|
53
|
+
readme_url: transformUrl(item.readme_url || ""),
|
|
54
|
+
avatar_url: transformUrl(item.avatar_url || "")
|
|
52
55
|
};
|
|
53
56
|
}) || [];
|
|
54
57
|
}).finally(() => {
|
|
@@ -88,7 +91,7 @@ const _sfc_main = {
|
|
|
88
91
|
]);
|
|
89
92
|
};
|
|
90
93
|
}
|
|
91
|
-
};
|
|
94
|
+
});
|
|
92
95
|
export {
|
|
93
96
|
_sfc_main as default
|
|
94
97
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defineComponent, onMounted, nextTick, onUnmounted, createBlock, openBlock, unref, withCtx, createElementVNode } from "vue";
|
|
2
|
-
import {
|
|
2
|
+
import { y as slidCaptchaManager, z as useLayoutConfig, A as isZh, _ as _export_sfc } from "./index-DzTQ2iLs.js";
|
|
3
3
|
import { FixedOverlay } from "vue-devui-lal/overlay";
|
|
4
4
|
import "vue-devui-lal/overlay/style.css";
|
|
5
5
|
const TARGET_TEXT = "Click in order:";
|
|
@@ -8,7 +8,7 @@ import { Message } from "vue-devui-lal/message";
|
|
|
8
8
|
import "vue-devui-lal/message/style.css";
|
|
9
9
|
import { FixedOverlay } from "vue-devui-lal/overlay";
|
|
10
10
|
import "vue-devui-lal/overlay/style.css";
|
|
11
|
-
import { a as i18n, k as usePageResize,
|
|
11
|
+
import { a as i18n, k as usePageResize, A as isZh, _ as _export_sfc } from "./index-DzTQ2iLs.js";
|
|
12
12
|
const _YunpianCaptchaManager = class _YunpianCaptchaManager {
|
|
13
13
|
// eslint-disable-next-line no-useless-constructor
|
|
14
14
|
constructor() {
|