vue-layout-gitcode 1.10.13 → 1.10.15

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.
@@ -1,3 +1,6 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
1
4
  import { defineComponent, computed, createBlock, createElementBlock, openBlock, unref, normalizeProps, mergeProps, normalizeClass, renderSlot, normalizeStyle, createElementVNode, reactive, readonly, inject, effectScope, ref, shallowRef, watch, isRef, getCurrentInstance, h, Fragment, onBeforeMount, onMounted, onUnmounted, createVNode, Text, provide, createCommentVNode, withCtx, toDisplayString as toDisplayString$1, renderList, createTextVNode, Transition, withModifiers, resolveComponent, watchEffect, guardReactiveProps, onBeforeUnmount, resolveDynamicComponent, nextTick, defineAsyncComponent, withDirectives, vShow, withKeys, useCssVars, createSlots, render, toRaw, mergeModels, useModel as useModel$1, watchPostEffect, useSlots } from "vue";
2
5
  import { Button } from "vue-devui-lal/button";
3
6
  import { Popover } from "vue-devui-lal/popover";
@@ -53,7 +56,7 @@ import { Modal } from "vue-devui-lal/modal";
53
56
  import "vue-devui-lal/modal/style.css";
54
57
  const _hoisted_1$w = ["xlink:href"];
55
58
  const _hoisted_2$n = ["xlink:href"];
56
- const _sfc_main$D = /* @__PURE__ */ defineComponent({
59
+ const _sfc_main$E = /* @__PURE__ */ defineComponent({
57
60
  __name: "index",
58
61
  props: {
59
62
  name: { default: "gt-run" },
@@ -105,7 +108,7 @@ const _export_sfc = (sfc, props) => {
105
108
  }
106
109
  return target;
107
110
  };
108
- const GIcon = /* @__PURE__ */ _export_sfc(_sfc_main$D, [["__scopeId", "data-v-vue-layout-gitcode"]]);
111
+ const GIcon = /* @__PURE__ */ _export_sfc(_sfc_main$E, [["__scopeId", "data-v-vue-layout-gitcode"]]);
109
112
  const defaultConfig = {
110
113
  VITE_ENV: "production",
111
114
  VITE_HOST: "https://gitcode.com",
@@ -475,6 +478,7 @@ var HeaderDisplayItem = /* @__PURE__ */ ((HeaderDisplayItem2) => {
475
478
  HeaderDisplayItem2["CUSTOM_CONTENT"] = "0108";
476
479
  HeaderDisplayItem2["ASIDE_BUTTON"] = "0109";
477
480
  HeaderDisplayItem2["NEWS_MULTI_LANGUAGE"] = "0110";
481
+ HeaderDisplayItem2["OPERATION_ENTRY"] = "0111";
478
482
  return HeaderDisplayItem2;
479
483
  })(HeaderDisplayItem || {});
480
484
  var AsideReportEvent = /* @__PURE__ */ ((AsideReportEvent2) => {
@@ -8993,7 +8997,7 @@ const _hoisted_30$1 = { class: "ml-2 font-[600] text-[var(--theme-aide-text)] te
8993
8997
  const _hoisted_31$1 = { class: "home-nav-item collapse-tool" };
8994
8998
  const _hoisted_32$1 = { class: "home-nav-item" };
8995
8999
  const _hoisted_33$1 = ["src", "alt"];
8996
- const _sfc_main$C = /* @__PURE__ */ defineComponent({
9000
+ const _sfc_main$D = /* @__PURE__ */ defineComponent({
8997
9001
  __name: "index",
8998
9002
  props: {
8999
9003
  sceneValue: { default: SceneValue.home },
@@ -9533,7 +9537,7 @@ const _sfc_main$C = /* @__PURE__ */ defineComponent({
9533
9537
  };
9534
9538
  }
9535
9539
  });
9536
- const ToolsFloat = /* @__PURE__ */ _export_sfc(_sfc_main$C, [["__scopeId", "data-v-vue-layout-gitcode"]]);
9540
+ const ToolsFloat = /* @__PURE__ */ _export_sfc(_sfc_main$D, [["__scopeId", "data-v-vue-layout-gitcode"]]);
9537
9541
  var repoTypeEnum = /* @__PURE__ */ ((repoTypeEnum2) => {
9538
9542
  repoTypeEnum2["NORMAL"] = "0";
9539
9543
  repoTypeEnum2["MODEL"] = "1";
@@ -9675,7 +9679,7 @@ const collectRegisterLoginEvent = ({ isRegister, registerLoginMethod, success, e
9675
9679
  window.collectEvent("beconEvent", isRegister ? "register" : "login", reportData);
9676
9680
  };
9677
9681
  const _hoisted_1$u = ["href", "target", "disabled"];
9678
- const _sfc_main$B = /* @__PURE__ */ defineComponent({
9682
+ const _sfc_main$C = /* @__PURE__ */ defineComponent({
9679
9683
  ...{
9680
9684
  name: "GLink"
9681
9685
  },
@@ -9723,7 +9727,7 @@ const _sfc_main$B = /* @__PURE__ */ defineComponent({
9723
9727
  };
9724
9728
  }
9725
9729
  });
9726
- const GLink = /* @__PURE__ */ _export_sfc(_sfc_main$B, [["__scopeId", "data-v-vue-layout-gitcode"]]);
9730
+ const GLink = /* @__PURE__ */ _export_sfc(_sfc_main$C, [["__scopeId", "data-v-vue-layout-gitcode"]]);
9727
9731
  const headerHeight = ref(56);
9728
9732
  const useHeaderHeight = () => {
9729
9733
  const setHeaderHeight = (height) => {
@@ -10280,8 +10284,8 @@ if (isBrowser) {
10280
10284
  };
10281
10285
  }
10282
10286
  const sessionStorage$1 = sessionStorage;
10283
- const _imports_0 = "data:image/png;base64,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";
10284
- const _sfc_main$A = /* @__PURE__ */ defineComponent({
10287
+ const _imports_0$1 = "data:image/png;base64,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";
10288
+ const _sfc_main$B = /* @__PURE__ */ defineComponent({
10285
10289
  ...{
10286
10290
  name: "GAvatar"
10287
10291
  },
@@ -10328,7 +10332,7 @@ const _sfc_main$A = /* @__PURE__ */ defineComponent({
10328
10332
  }
10329
10333
  });
10330
10334
  const _hoisted_1$t = ["src"];
10331
- const _sfc_main$z = /* @__PURE__ */ defineComponent({
10335
+ const _sfc_main$A = /* @__PURE__ */ defineComponent({
10332
10336
  ...{ name: "FlashTag" },
10333
10337
  __name: "FlashTag",
10334
10338
  props: {
@@ -11191,7 +11195,7 @@ const _hoisted_5$a = {
11191
11195
  };
11192
11196
  const _hoisted_6$9 = {
11193
11197
  key: 0,
11194
- src: _imports_0,
11198
+ src: _imports_0$1,
11195
11199
  alt: "mirrors-avatar-phone",
11196
11200
  class: "h-[24px] w-[24px]"
11197
11201
  };
@@ -11237,7 +11241,7 @@ const _hoisted_20$1 = {
11237
11241
  };
11238
11242
  const _hoisted_21$1 = { class: "user-layout-toolbar-title flex-1 ellipsis-two-line" };
11239
11243
  const _hoisted_22$1 = { class: "text-xs" };
11240
- const _sfc_main$y = /* @__PURE__ */ defineComponent({
11244
+ const _sfc_main$z = /* @__PURE__ */ defineComponent({
11241
11245
  __name: "HeaderCustom",
11242
11246
  props: {
11243
11247
  scene: { default: SceneValue.home },
@@ -11365,7 +11369,7 @@ const _sfc_main$y = /* @__PURE__ */ defineComponent({
11365
11369
  default: withCtx(() => {
11366
11370
  var _a2, _b2, _c;
11367
11371
  return [
11368
- createVNode(_sfc_main$A, {
11372
+ createVNode(_sfc_main$B, {
11369
11373
  class: "g-border",
11370
11374
  src: (_a2 = unref(orgInfo)) == null ? void 0 : _a2.avatar,
11371
11375
  name: (_b2 = unref(orgInfo)) == null ? void 0 : _b2.name,
@@ -11418,7 +11422,7 @@ const _sfc_main$y = /* @__PURE__ */ defineComponent({
11418
11422
  default: withCtx(() => {
11419
11423
  var _a3, _b3, _c2, _d2;
11420
11424
  return [
11421
- !((_a3 = __props.repoProps) == null ? void 0 : _a3.isGhMirrors) ? (openBlock(), createBlock(_sfc_main$A, {
11425
+ !((_a3 = __props.repoProps) == null ? void 0 : _a3.isGhMirrors) ? (openBlock(), createBlock(_sfc_main$B, {
11422
11426
  key: 0,
11423
11427
  class: normalizeClass({ "g-border": isOrg.value }),
11424
11428
  src: (_c2 = (_b3 = unref(repoInfo)) == null ? void 0 : _b3.namespace) == null ? void 0 : _c2.avatar_url,
@@ -11486,7 +11490,7 @@ const _sfc_main$y = /* @__PURE__ */ defineComponent({
11486
11490
  _: 1
11487
11491
  }, 8, ["to"]),
11488
11492
  unref(isGstarRepo)(unref(repoInfo).topic_names) ? (openBlock(), createElementBlock("div", _hoisted_12$3, [
11489
- createVNode(_sfc_main$z, {
11493
+ createVNode(_sfc_main$A, {
11490
11494
  origin: "repo",
11491
11495
  icon: "",
11492
11496
  type: "gstar",
@@ -11498,7 +11502,7 @@ const _sfc_main$y = /* @__PURE__ */ defineComponent({
11498
11502
  _: 1
11499
11503
  }, 8, ["message"])
11500
11504
  ])) : unref(isIncubationRepo)(unref(repoInfo).topic_names) ? (openBlock(), createElementBlock("div", _hoisted_13$1, [
11501
- createVNode(_sfc_main$z, {
11505
+ createVNode(_sfc_main$A, {
11502
11506
  origin: "repo",
11503
11507
  icon: "",
11504
11508
  type: "incubation",
@@ -11511,7 +11515,7 @@ const _sfc_main$y = /* @__PURE__ */ defineComponent({
11511
11515
  }, 8, ["message"])
11512
11516
  ])) : createCommentVNode("", true),
11513
11517
  unref(isTrustedRepo)(unref(repoInfo).topic_names) ? (openBlock(), createElementBlock("div", _hoisted_14$1, [
11514
- createVNode(_sfc_main$z, {
11518
+ createVNode(_sfc_main$A, {
11515
11519
  trusted: "",
11516
11520
  message: unref(t2)("gitCodeLayout.trusted.title"),
11517
11521
  icon: "",
@@ -11560,7 +11564,7 @@ const _sfc_main$y = /* @__PURE__ */ defineComponent({
11560
11564
  default: withCtx(() => {
11561
11565
  var _a2, _b2, _c, _d, _e;
11562
11566
  return [
11563
- createVNode(_sfc_main$A, {
11567
+ createVNode(_sfc_main$B, {
11564
11568
  src: (_a2 = unref(otherUserInfo)) == null ? void 0 : _a2.avatarUrl,
11565
11569
  name: ((_b2 = unref(otherUserInfo)) == null ? void 0 : _b2.name) || ((_c = unref(otherUserInfo)) == null ? void 0 : _c.nickname),
11566
11570
  width: 28,
@@ -11587,7 +11591,30 @@ const _sfc_main$y = /* @__PURE__ */ defineComponent({
11587
11591
  };
11588
11592
  }
11589
11593
  });
11590
- const HeaderCustom = /* @__PURE__ */ _export_sfc(_sfc_main$y, [["__scopeId", "data-v-vue-layout-gitcode"]]);
11594
+ const HeaderCustom = /* @__PURE__ */ _export_sfc(_sfc_main$z, [["__scopeId", "data-v-vue-layout-gitcode"]]);
11595
+ const _imports_0 = "data:image/svg+xml,%3csvg%20width='94'%20height='56'%20viewBox='0%200%2094%2056'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cpath%20d='M40.5762%202.82617C42.2181%202.62%2044.0201%202.72612%2044.7891%202.81836C45.4853%202.90191%2045.9678%203.28331%2046.2646%203.75195C46.4412%204.03069%2046.548%204.33685%2046.6211%204.6084C46.7139%204.50532%2046.8191%204.40283%2046.9395%204.30762C47.3251%204.00259%2047.8126%203.80631%2048.4102%203.78418C49.7165%203.73585%2050.5552%204.66938%2051.0166%205.24609C51.1426%205.40357%2051.2606%205.56207%2051.3613%205.69629C51.4669%205.83695%2051.5515%205.94956%2051.6299%206.04395C51.6613%206.08177%2051.6887%206.11157%2051.7109%206.13574C51.7895%206.12494%2051.8934%206.10669%2052.0264%206.0752C52.3481%205.99897%2052.741%205.87958%2053.2148%205.73633C54.1116%205.46521%2055.2859%205.11074%2056.3389%205.04492C56.9663%205.00574%2057.5258%205.12894%2057.9863%205.43359C58.4414%205.73474%2058.7037%206.14962%2058.8564%206.52051C58.9554%206.76085%2059.0133%206.99956%2059.0518%207.20508C60.3037%207.04176%2062.9456%206.67738%2064.6357%206.37402C65.6067%206.19974%2066.2855%206.20547%2066.7803%206.27734C67.2088%205.4314%2067.7217%204.81586%2068.3369%204.43848C69.1493%203.94023%2069.9835%203.94744%2070.6777%204.14355C71.3414%204.3311%2071.91%204.69718%2072.2998%204.97656C72.4577%205.08976%2072.613%205.2088%2072.7227%205.29199C72.7395%205.2881%2072.7576%205.28575%2072.7764%205.28125C73.0295%205.22038%2073.3821%205.12177%2073.8184%204.99316C74.2518%204.86539%2074.7516%204.71312%2075.2949%204.54785C75.8363%204.38317%2076.4189%204.20609%2077.0117%204.03125C78.1929%203.68287%2079.4361%203.33613%2080.501%203.10547C81.0327%202.9903%2081.5396%202.899%2081.9834%202.85352C82.3977%202.81106%2082.8684%202.79513%2083.2686%202.90234C83.89%203.06893%2084.4924%203.4473%2085.0127%203.86523C85.5468%204.29429%2086.0624%204.82022%2086.5117%205.3623C86.9607%205.90398%2087.3618%206.48434%2087.6562%207.03223C87.9302%207.54197%2088.1865%208.15851%2088.1865%208.73242C88.1864%209.47697%2087.8467%2010.3503%2087.5352%2011.0195C87.3904%2011.3305%2087.2321%2011.6332%2087.0791%2011.9111C87.3962%2012.1207%2087.7253%2012.371%2088.0293%2012.6572C88.6496%2013.2414%2089.3309%2014.1326%2089.3311%2015.2549C89.3311%2016.2517%2088.8026%2017.3845%2088.2979%2018.2656C88.0164%2018.7569%2087.705%2019.2289%2087.4121%2019.6426C88.0896%2020.0419%2088.8489%2020.5173%2089.5176%2020.999C90.0299%2021.3681%2090.5263%2021.7652%2090.8955%2022.1514C91.0789%2022.3432%2091.2625%2022.5636%2091.3975%2022.8047C91.524%2023.0308%2091.675%2023.3952%2091.6074%2023.8232C91.5649%2024.0922%2091.4461%2024.407%2091.3281%2024.6836C91.1987%2024.9871%2091.0272%2025.3418%2090.8291%2025.7227C90.4325%2026.4851%2089.9077%2027.3889%2089.3389%2028.2568C88.7736%2029.1194%2088.1451%2029.9778%2087.5391%2030.6318C87.2375%2030.9572%2086.9169%2031.2587%2086.5908%2031.4863C86.2882%2031.6975%2085.8558%2031.9346%2085.3555%2031.9346C84.831%2031.9345%2084.2993%2031.7489%2083.8496%2031.542C83.3798%2031.3259%2082.8977%2031.0377%2082.4463%2030.7344C82.3071%2030.6409%2082.1693%2030.5439%2082.0332%2030.4463C82.298%2033.5011%2082.6241%2037.2864%2082.9043%2040.6582C83.2586%2044.9221%2083.5516%2048.617%2083.5518%2049.2451C83.5518%2051.1926%2082.0516%2052.534%2080.6064%2052.5342C80.1668%2052.5342%2079.5401%2052.39%2078.9297%2052.2236C78.2777%2052.046%2077.5081%2051.8032%2076.7188%2051.5381C75.2468%2051.0437%2073.6687%2050.4573%2072.5801%2050.0371C71.9643%2050.1085%2071.1219%2050.1866%2070.3271%2050.2109C69.873%2050.2249%2069.4121%2050.223%2069.0098%2050.1895C68.6592%2050.1602%2068.1781%2050.0964%2067.8076%2049.8848C67.4138%2049.6598%2067.1214%2049.2477%2066.9336%2048.9531C66.7152%2048.6106%2066.5016%2048.2004%2066.3076%2047.79C66.1083%2047.3682%2065.9188%2046.9223%2065.7529%2046.5078C65.1307%2046.8029%2064.409%2047.125%2063.9092%2047.2812C62.9703%2047.5746%2062.2456%2047.1332%2061.8096%2046.7998C61.6097%2046.6469%2061.3685%2046.4341%2061.2266%2046.3164C61.0969%2046.2088%2060.9887%2046.1267%2060.8906%2046.0645C60.8704%2046.0697%2060.8443%2046.0761%2060.8125%2046.0869C60.6037%2046.1578%2060.3568%2046.2854%2059.9883%2046.4736C59.6598%2046.6414%2059.2356%2046.8554%2058.7969%2046.9854C58.3545%2047.1164%2057.7783%2047.1999%2057.1895%2046.9756C57.0891%2046.9374%2056.7386%2046.8835%2056.1113%2046.8994C55.5322%2046.9142%2054.8387%2046.9834%2054.1475%2047.0986C53.4542%2047.2142%2052.7918%2047.3716%2052.2686%2047.5508C52.0068%2047.6404%2051.7982%2047.7292%2051.6455%2047.8115C51.5098%2047.8847%2051.4565%2047.9323%2051.4473%2047.9404C50.7196%2048.8137%2049.6933%2048.7261%2049.0439%2048.5186C48.8099%2048.4438%2048.585%2048.3428%2048.376%2048.2314C48.2578%2048.3496%2048.1375%2048.4598%2048.0195%2048.5557C47.6348%2048.8683%2047.1533%2049.1663%2046.8174%2049.2783C46.6519%2049.3334%2046.4901%2049.3403%2046.4395%2049.3428C46.3551%2049.3468%2046.2637%2049.3467%2046.1748%2049.3447C45.9951%2049.3407%2045.772%2049.3285%2045.5283%2049.3105C45.0379%2049.2745%2044.4168%2049.2141%2043.7891%2049.1455C42.5573%2049.011%2041.2015%2048.834%2040.7412%2048.7354C40.1706%2048.613%2039.6828%2048.2546%2039.3584%2047.9707C39.3105%2048.0119%2039.2678%2048.0504%2039.2295%2048.0811L39.0518%2048.2227L38.8311%2048.2744C37.7548%2048.5243%2036.1016%2048.8871%2034.6377%2049.166C33.9076%2049.3051%2033.2112%2049.4257%2032.6523%2049.5C32.3743%2049.537%2032.1141%2049.5649%2031.8936%2049.5762C31.7233%2049.5849%2031.4226%2049.5959%2031.1582%2049.5146C30.9462%2049.4494%2030.7588%2049.3372%2030.626%2049.249C30.4798%2049.152%2030.3295%2049.0361%2030.1836%2048.915C29.8912%2048.6724%2029.5677%2048.3694%2029.252%2048.0566C29.022%2047.8288%2028.7902%2047.5877%2028.5674%2047.3525C28.5024%2047.4565%2028.4345%2047.5603%2028.3623%2047.6602C27.9781%2048.1915%2027.2506%2048.9765%2026.1992%2048.9287C25.6926%2048.9057%2024.9432%2049.0008%2024.2607%2049.1387C23.9288%2049.2057%2023.638%2049.2774%2023.4297%2049.3389C23.3456%2049.3637%2023.2842%2049.3854%2023.2432%2049.4004C23.1755%2049.45%2023.1154%2049.4886%2023.083%2049.5088C22.9913%2049.5659%2022.8786%2049.6308%2022.7529%2049.7012C22.4996%2049.843%2022.1592%2050.024%2021.7549%2050.2334C20.9442%2050.6532%2019.8494%2051.201%2018.6152%2051.8037C17.3632%2052.4152%2016.53%2052.6844%2015.8701%2052.7061C15.51%2052.7179%2015.2286%2052.6558%2014.9941%2052.5752C14.8924%2052.5402%2014.7955%2052.4997%2014.7432%2052.4785C14.6811%2052.4534%2014.6511%2052.4418%2014.627%2052.4346C14.4147%2052.3708%2014.2393%2052.2455%2014.1719%2052.1973C14.0696%2052.124%2013.9581%2052.0349%2013.8467%2051.9404C13.6219%2051.7498%2013.3474%2051.4962%2013.0459%2051.207C12.4403%2050.6262%2011.6912%2049.8642%2010.9531%2049.0791C10.2155%2048.2944%209.47883%2047.4758%208.90039%2046.7822C8.61197%2046.4364%208.35413%2046.1118%208.15332%2045.832C7.97764%2045.5873%207.76877%2045.2747%207.67188%2044.9844C7.42632%2044.2477%207.59461%2043.5741%207.83984%2043.0908C8.07871%2042.6201%208.42243%2042.2576%208.69336%2042.0469L8.81055%2041.9561L8.9502%2041.9023L12.4365%2040.5713C12.3083%2040.1308%2012.1584%2039.6072%2012.0117%2039.1182C11.7314%2038.1838%2011.8711%2037.2379%2012.0537%2036.6162C12.002%2036.4735%2011.9578%2036.3224%2011.9229%2036.1758C11.839%2035.8242%2011.7718%2035.4003%2011.7178%2034.9746C11.6473%2034.419%2011.5953%2033.8183%2011.5586%2033.2939C10.5702%2033.071%209.3404%2032.7686%208.23926%2032.4443C7.54186%2032.2389%206.87086%2032.0174%206.33887%2031.7949C6.07467%2031.6844%205.81757%2031.5628%205.60059%2031.4297C5.4235%2031.321%205.11352%2031.1128%204.93359%2030.7754C4.72615%2030.3863%204.68005%2029.8985%204.66602%2029.5381C4.65016%2029.1306%204.67192%2028.6716%204.71094%2028.2227C4.75647%2027.6987%204.82895%2027.1574%204.9043%2026.6768C4.63469%2026.5733%204.35221%2026.4373%204.09863%2026.2598C3.89847%2026.1197%203.77553%2025.9413%203.71094%2025.8369C3.63654%2025.7167%203.57516%2025.5879%203.52441%2025.4678C3.42258%2025.2266%203.32832%2024.9351%203.24121%2024.627C3.06552%2024.0053%202.89086%2023.2131%202.73145%2022.3906C2.41209%2020.7429%202.13622%2018.8851%202.01855%2017.8262C1.95011%2017.2099%202.07277%2016.6451%202.38672%2016.1748C2.57245%2015.8966%202.80451%2015.6818%203.0498%2015.5166C3.03257%2015.4741%203.01861%2015.4358%203.00781%2015.4033C2.9608%2015.2617%202.92937%2015.113%202.90625%2014.9746C2.85986%2014.6967%202.83339%2014.3655%202.81836%2014.0176C2.78808%2013.3164%202.79931%2012.4359%202.82812%2011.5391C2.85708%2010.6379%202.90434%209.69732%202.94727%208.87012C2.99061%208.03486%203.02909%207.3281%203.04297%206.87012C3.07391%205.85256%203.47343%205.09998%204.10352%204.64453C4.61297%204.27629%205.1845%204.16638%205.62695%204.17773L5.80859%204.18945L5.8584%204.19531L5.90723%204.20508L19.1543%206.98242C19.4079%206.27195%2019.8023%205.74475%2020.3281%205.41699C21.0526%204.96545%2021.827%205.01956%2022.3457%205.21582L22.3467%205.21484L24.8516%206.10938C25.0517%205.93836%2025.2731%205.81669%2025.4902%205.73828C25.8272%205.61661%2026.1647%205.58734%2026.4414%205.60156L26.6953%205.62793L26.7559%205.63867L26.8154%205.65625L29.7773%206.53516C29.8585%206.43612%2029.9462%206.33666%2030.041%206.24219C30.3506%205.93382%2030.9002%205.5%2031.624%205.5H31.6631L31.7031%205.50391C32.4701%205.56526%2033.1889%205.86221%2033.7422%206.16504C33.9802%206.29534%2034.1997%206.43636%2034.3965%206.57227C34.8918%206.30284%2035.4353%206.14743%2035.9004%206.05469C36.2093%205.99309%2036.5165%205.95256%2036.8037%205.92773V5.58496C36.8037%204.52522%2037.5014%203.85649%2038.208%203.48242C38.899%203.11669%2039.7645%202.9281%2040.5762%202.82617Z'%20fill='url(%23paint0_linear_8870_13132)'%20stroke='url(%23paint1_linear_8870_13132)'%20stroke-width='2'/%3e%3cpath%20d='M16.803%2028.7031C17.2608%2028.3025%2020.2364%2028.1881%2020.4653%2028.3597C20.6484%2028.4971%2020.656%2030.0573%2020.637%2030.8203H21.3808C21.7013%2030.8203%2021.8959%2031.0492%2021.9531%2031.1636V34.0248C21.9531%2034.5397%2021.0947%2034.597%2020.8658%2034.5398C20.637%2034.4825%2020.637%2035.627%2020.7514%2035.7987C20.8659%2035.9703%2021.3809%2035.7987%2021.667%2035.7987C21.9531%2035.7987%2022.0675%2038.4309%2022.0675%2038.8887C22.0675%2039.3464%2021.4953%2039.2892%2021.152%2039.6898C20.8086%2040.0905%2021.4953%2045.4693%2021.3236%2045.9843C21.1518%2046.4993%2016.6886%2048.4448%2016.1164%2048.4448C15.5442%2048.4448%2012.0537%2044.7827%2012.168%2044.1532C12.2825%2043.5237%2016.2308%2042.6654%2016.803%2042.3793C17.3753%2042.0932%2017.2608%2041.6354%2017.1464%2041.4637C17.0319%2041.292%2016.5169%2041.6926%2016.1164%2041.6926C15.7158%2041.6926%2015.1436%2039.1176%2015.2008%2038.4309C15.258%2037.7442%2016.3453%2037.5726%2016.6886%2037.4581C16.9632%2037.3666%2017.0319%2037.1148%2017.0319%2037.0003V35.3981C17.0319%2034.8259%2016.1164%2035.1692%2015.4869%2035.1692C14.8575%2035.1692%2014.4569%2031.7931%2014.9147%2031.4497C15.2809%2031.1751%2016.2117%2031.1446%2016.6314%2031.1636C16.536%2030.477%2016.4368%2029.0235%2016.803%2028.7031Z'%20fill='white'/%3e%3cpath%20d='M77.6306%2026.8719C78.4547%2026.8719%2078.6607%2027.3679%2078.6607%2027.6158C79.1566%2034.1964%2080.0912%2047.495%2079.8623%2048.0443C79.5761%2048.7309%2074.3118%2046.7854%2073.9684%2046.6709C73.6251%2046.5565%2073.5679%2042.2077%2073.7967%2041.9215C74.0256%2041.6354%2075.8567%2042.5509%2076.1429%2042.4365C76.429%2042.322%2075.2273%2028.5316%2075.1701%2027.7875C75.1243%2027.1924%2075.3799%2026.9292%2075.5134%2026.8719H77.6306Z'%20fill='white'/%3e%3cpath%20d='M62.9244%2028.4169C63.0961%2027.8447%2065.1561%2027.5586%2065.8428%2027.6158C66.3921%2027.6616%2067.178%2030.0001%2067.5022%2031.1636C68.5513%2030.992%2070.7525%2030.6715%2071.1645%2030.7631C71.6795%2030.8775%2071.7367%2032.9948%2071.565%2033.7959C71.3933%2034.597%2068.99%2034.4253%2068.6467%2034.4825C68.3034%2034.5398%2068.7611%2035.7987%2069.1045%2035.8559C69.4478%2035.9131%2069.9056%2035.112%2070.4778%2035.112C71.05%2035.112%2072.1945%2037.172%2072.0801%2037.687C71.9656%2038.202%2070.3634%2038.8315%2070.2489%2039.1176C70.1345%2039.4038%2071.1073%2041.807%2071.3362%2042.0359C71.5651%2042.2648%2072.3662%2041.9215%2072.7095%2042.2076C73.0528%2042.4938%2073.1673%2045.5265%2072.9956%2045.9843C72.8239%2046.442%2069.5623%2046.6709%2069.1045%2046.4993C68.6467%2046.3276%2067.2162%2041.7499%2066.9872%2041.3492C66.7584%2040.9487%2064.0117%2043.1231%2063.4967%2043.1804C62.9817%2043.2376%2061.7228%2041.0632%2061.7228%2040.3192C61.7228%2039.5754%2065.5566%2037.9159%2065.7856%2037.8014C66.0145%2037.687%2065.2134%2035.5698%2064.9845%2035.2264C64.7556%2034.8831%2063.2106%2035.4553%2062.81%2035.3981C62.4094%2035.3409%2062.295%2033.2809%2062.3522%2032.537C62.4094%2031.7931%2063.8399%2031.9647%2063.9545%2031.7931C64.046%2031.6557%2063.6493%2030.7059%2063.4394%2030.2481C63.2106%2029.8284%2062.7871%2028.8747%2062.9244%2028.4169Z'%20fill='white'/%3e%3cpath%20d='M36.4876%2028.0736C36.8996%2028.0736%2036.9263%2028.3406%2036.8882%2028.4742V30.5342H37.5748C38.0326%2030.5342%2038.2615%2030.7631%2038.3187%2030.8775V33.567C38.3187%2034.0247%2037.9754%2034.1011%2037.8037%2034.082H37.2315V35.2264C37.3078%2035.0929%2037.5634%2034.8717%2037.9754%2035.0548C38.4904%2035.2837%2038.2043%2037.9159%2038.2043%2038.0876C38.2042%2038.2249%2037.7083%2038.6026%2037.4604%2038.7742C37.5176%2040.4337%2037.6206%2043.867%2037.5748%2044.3248C37.5175%2044.897%2033.0543%2045.8126%2032.7109%2045.6409C32.3676%2045.4693%2035.1713%2042.5511%2035.2287%2042.322C35.2859%2042.0931%2034.5993%2041.8643%2034.4848%2041.7498C34.3704%2041.6354%2034.3704%2040.2621%2034.2559%2040.1476C34.1415%2040.0331%2033.5693%2040.4337%2033.3404%2040.4909C33.1115%2040.5481%2032.2532%2037.916%2032.3104%2037.4581C32.3676%2037.0003%2033.9126%2036.5998%2034.0843%2036.5426C34.2559%2036.4853%2034.1987%2034.5971%2034.027%2034.4253C33.8554%2034.2536%2033.3404%2034.4825%2032.7681%2034.4253C32.1959%2034.3681%2032.2531%2031.507%2032.3676%2031.0492C32.482%2030.5914%2033.6265%2030.8775%2033.7981%2030.8203C33.9355%2030.7745%2033.7409%2029.3897%2033.6265%2028.7031C33.5557%2028.2453%2033.9022%2028.0927%2034.0843%2028.0736H36.4876Z'%20fill='white'/%3e%3cpath%20d='M26.1303%2028.0736C26.6453%2027.7875%2029.5065%2028.2453%2029.6209%2028.4169C29.7124%2028.5543%2029.4683%2029.5042%2029.3348%2029.962C29.9261%2029.9047%2031.1659%2029.8475%2031.3948%2030.0764C31.6809%2030.3626%2031.5665%2032.3653%2031.3376%2032.8803C31.1087%2033.3953%2029.3348%2033.2809%2028.9915%2033.2809C28.6481%2033.2809%2028.1903%2034.5398%2028.362%2034.7114C28.5338%2034.8831%2030.937%2034.3109%2031.5665%2034.3681C32.1959%2034.4253%2032.0243%2037.1148%2031.9098%2037.4581C31.7953%2037.8014%2029.2776%2037.9731%2029.3348%2038.2592C29.3922%2038.5455%2034.1987%2042.0931%2034.1987%2042.322C34.1986%2042.5511%2032.0815%2045.3548%2031.5092%2045.2976C30.937%2045.2404%2027.6182%2040.7199%2027.332%2040.6054C27.0459%2040.4909%2026.2448%2044.6682%2026.1303%2044.9543C26.0158%2045.2404%2023.212%2045.4121%2022.5253%2045.5265C21.976%2045.618%2021.9912%2045.1069%2022.0675%2044.8398C22.6207%2042.9897%2023.704%2039.278%2023.6125%2039.232C23.4981%2039.1748%2023.0403%2039.2892%2022.697%2039.2892C22.4223%2039.2892%2022.3536%2038.9841%2022.3536%2038.8315V36.0275C22.3536%2034.9403%2023.9559%2035.4553%2024.4136%2035.3981C24.8714%2035.3409%2025.0431%2033.796%2024.9286%2033.6814C24.8142%2033.567%2023.4409%2033.9103%2022.9259%2033.9103C22.5139%2033.9103%2022.4109%2033.3381%2022.4109%2033.052V31.2781C22.4109%2030.3625%2022.8686%2030.1336%2023.0975%2030.1336H25.5009C25.539%2029.5423%2025.7183%2028.3025%2026.1303%2028.0736Z'%20fill='white'/%3e%3cpath%20d='M45.1282%2036.0848C45.6318%2036.0848%2045.7195%2036.5426%2045.7004%2036.7714C45.8912%2036.6951%2046.3642%2036.5654%2046.7305%2036.657C47.1882%2036.7715%2046.9593%2038.4881%2046.9593%2039.0031C46.9593%2039.4151%2046.3108%2039.5563%2045.9866%2039.5753C46.0629%2041.3493%2046.1697%2044.9657%2045.9866%2045.2404C45.7576%2045.5837%2042.0382%2045.1832%2041.6376%2045.0115C41.2371%2044.8398%2041.2371%2044.4393%2041.3515%2043.2948C41.4431%2042.3793%2042.3815%2042.1122%2042.8393%2042.0931L42.7249%2039.8042L39.8637%2039.9187C40.5695%2040.3574%2041.9924%2041.2691%2042.0382%2041.4065C42.0953%2041.5783%2040.7793%2043.2948%2040.4932%2043.352C40.2071%2043.4092%2038.3188%2042.036%2038.2043%2041.807C38.1127%2041.6239%2039.0054%2040.5863%2039.4632%2040.0904C39.3106%2040.0713%2038.9711%2040.0102%2038.8337%2039.9187C38.6621%2039.8042%2038.5476%2038.7742%2038.5476%2037.9731C38.5476%2037.3322%2038.9673%2037.172%2039.1771%2037.172L42.7249%2036.8859C42.7249%2036.3366%2043.0301%2036.1229%2043.1827%2036.0848H45.1282Z'%20fill='white'/%3e%3cpath%20d='M51.9377%2032.4225C52.1094%2032.4035%2052.4527%2032.537%2052.4527%2033.2236C52.4527%2034.082%2051.7088%2039.1176%2051.9377%2039.1748C52.1666%2039.232%2052.9677%2038.4268%2053.1966%2038.4881C53.4255%2038.5495%2054.4555%2041.0059%2054.2838%2041.4065C54.1121%2041.8071%2050.2783%2044.4393%2049.8777%2044.382C49.4771%2044.3248%2048.3327%2042.7799%2048.3327%2042.4365C48.3327%2042.0931%2049.4199%2036.3711%2049.191%2036.1992C48.9621%2036.0275%2047.9322%2036.4853%2047.7032%2036.1992C47.5201%2035.9703%2047.5506%2034.2346%2047.5888%2033.3953C47.6079%2033.2183%2047.7261%2032.8561%2048.0466%2032.8231L51.9377%2032.4225Z'%20fill='white'/%3e%3cpath%20d='M58.2322%2027.4442C58.5565%2027.4251%2059.205%2027.6158%2059.205%2028.5314V32.4225C59.205%2032.6133%2059.2851%2032.9947%2059.6055%2032.9947C60.0061%2032.9947%2061.5511%2032.7659%2061.7228%2033.1092C61.8601%2033.3839%2061.78%2035.3218%2061.7228%2036.2564C61.6846%2036.409%2061.4824%2036.7142%2060.9789%2036.7142H59.6055C59.5102%2036.7333%2059.3194%2036.8973%2059.3194%2037.4009C59.3194%2037.9045%2059.5102%2041.6545%2059.6055%2043.4665C59.6055%2043.6954%2059.514%2044.176%2059.1478%2044.2676C58.69%2044.382%2055.6%2044.382%2055.4283%2043.5809C55.2566%2042.7798%2055.5999%2037.1149%2055.4283%2037.0576C55.2566%2037.0003%2053.3683%2037.4581%2053.0249%2037.0576C52.6816%2036.657%2052.8533%2033.2236%2053.4827%2033.2236C54.1121%2033.2236%2055.4282%2033.3381%2055.4855%2033.1664C55.5313%2033.0291%2055.5046%2032.7659%2055.4855%2032.6514V28.0736C55.5046%2027.8638%2055.6457%2027.4442%2056.0577%2027.4442H58.2322Z'%20fill='white'/%3e%3cpath%20d='M74.2545%2030.0192C74.388%2029.981%2074.6665%2030.065%2074.7123%2030.7058C74.7695%2031.5071%2075.4562%2039.6898%2075.3417%2039.9759C75.2272%2040.262%2072.7095%2040.3192%2072.5951%2039.3465C72.5035%2038.5682%2072.2136%2033.1474%2072.0801%2030.5342C72.0896%2030.3625%2072.2517%2030.0192%2072.824%2030.0192H74.2545Z'%20fill='white'/%3e%3cpath%20d='M41.0654%2027.7303C41.2943%2027.3869%2043.8693%2027.4442%2044.1554%2027.5586C44.3843%2027.6502%2044.289%2028.5505%2044.2127%2028.9892C44.6895%2028.9129%2045.7233%2028.8289%2046.0438%2029.1036C46.4443%2029.447%2046.2727%2030.9347%2046.1582%2031.5642C46.0437%2032.1936%2044.2127%2031.9647%2044.1554%2032.022C44.1097%2032.0678%2044.1364%2032.5751%2044.1554%2032.8231C44.9756%2032.7659%2046.6847%2032.6743%2046.9593%2032.7659C47.3027%2032.8803%2047.0738%2035.3981%2046.9593%2035.5125C46.8444%2035.627%2039.5204%2036.3137%2039.0054%2036.3709C38.5934%2036.4167%2038.4904%2036.0085%2038.4904%2035.7987V34.082C38.4904%2033.3953%2038.7956%2033.1855%2038.9482%2033.1664H40.951V32.4225H39.2343C38.9139%2032.4225%2038.8337%2032.0792%2038.8337%2031.9075V29.9047C38.8337%2029.3554%2039.1389%2029.1418%2039.2915%2029.1036H40.8938C40.8747%2028.7603%2040.8823%2028.005%2041.0654%2027.7303Z'%20fill='white'/%3e%3cpath%20d='M50.221%2027.5586C50.3545%2027.5205%2050.6674%2027.467%2050.8505%2027.5586C51.0794%2027.6731%2052.6816%2030.1908%2052.6816%2030.4197C52.6814%2030.6487%2050.221%2032.1936%2049.8205%2032.2509C49.4199%2032.3081%2048.161%2029.9048%2047.9321%2029.4469C47.749%2029.0807%2047.9321%2028.7603%2048.0466%2028.6458L50.221%2027.5586Z'%20fill='white'/%3e%3cpath%20d='M67.2734%2028.2453C67.445%2027.9592%2068.6467%2026.7003%2068.99%2026.8147C69.7339%2027.3488%2071.2217%2028.5085%2071.2217%2028.8747C71.2217%2029.3325%2069.7912%2030.7058%2069.3334%2030.5914C68.8756%2030.477%2067.1018%2028.5314%2067.2734%2028.2453Z'%20fill='white'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M6.73187%207.24459C7.24687%207.24459%2017.9475%209.53349%2019.0919%209.76238C20.2364%209.99127%2020.8658%2010.1629%2020.9803%2010.6779C21.0947%2011.193%2020.9231%2013.0241%2020.8658%2013.6535C20.8086%2014.2829%2019.4353%2014.0541%2019.2636%2013.9969C19.0919%2013.9396%2019.4353%2017.1441%2019.6069%2017.2013C19.7787%2017.2585%2021.3236%2017.0297%2022.0675%2017.1441C22.8114%2017.2585%2022.5253%2019.6047%2022.4681%2020.463C22.4108%2021.3213%2020.1792%2021.0352%2020.0075%2021.2069C19.8359%2021.3789%2020.5797%2026.4142%2020.4653%2026.9292C20.3507%2027.4441%2017.1464%2027.8447%2016.6314%2027.6158C16.1164%2027.3869%2016.1736%2022.0656%2016.0591%2021.8363C15.9447%2021.6075%2013.5414%2022.0652%2013.3697%2022.1797C13.198%2022.2943%2013.0264%2026.1281%2012.9691%2027.6158C12.9119%2029.1036%2012.7402%2029.5614%2012.3397%2029.6758C11.9391%2029.7903%2010.0508%2029.3325%208.96355%2029.1036C7.87635%2028.8747%207.87631%2028.5886%207.8191%2028.2453C7.76188%2027.902%208.73458%2023.0955%208.56299%2022.9236C8.39132%2022.7519%207.18965%2023.2669%206.44576%2023.2097C5.70187%2023.1525%205.12967%2018.4603%205.53019%2018.0597C5.93075%2017.6591%208.39132%2017.7735%208.8491%2017.7735C9.2153%2017.7735%209.34502%2017.5447%209.36411%2017.4302C9.51669%2016.2286%209.79896%2013.7796%209.70744%2013.5963C9.593%2013.3674%207.36132%2013.4818%206.67465%2013.4246C6.12534%2013.3788%205.98799%2013.0241%205.98797%2012.8524L6.21687%207.75959C6.21687%207.58792%206.31987%207.24459%206.73187%207.24459ZM14.2852%2013.7107C14.1136%2013.7298%2013.7588%2013.8595%2013.713%2014.2257C13.6558%2014.6836%2013.5414%2017.3158%2013.713%2017.4302C13.8848%2017.5446%2015.6013%2017.6018%2015.7158%2017.2585C15.8303%2016.9152%2015.6586%2013.7107%2015.258%2013.7107H14.2852Z'%20fill='white'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M82.1512%205.7568C82.7807%205.69958%2084.5546%208.27459%2084.6118%208.7896C84.669%209.30467%2082.2085%2012.9668%2082.2657%2013.1385C82.3229%2013.3102%2082.8379%2013.253%2083.1812%2013.1957C83.5246%2013.1385%2085.699%2014.6263%2085.699%2015.4274C85.699%2016.2286%2082.2085%2019.6619%2082.3229%2020.1197C82.4375%2020.5775%2087.7018%2023.0952%2087.759%2023.6102C87.8162%2024.1253%2085.2412%2027.9592%2084.7262%2027.9019C84.2113%2027.8447%2079.8052%2023.8392%2079.5762%2023.7247C79.3473%2023.6102%2078.0884%2026.128%2077.5162%2026.1853C76.944%2026.2425%2075.1701%2023.9536%2075.1129%2023.4958C75.0671%2023.1296%2076.2001%2021.8936%2076.7723%2021.3213L75.399%2020.0624C74.9603%2021.8173%2074.0485%2025.407%2073.9112%2025.7275C73.7394%2026.128%2070.5923%2025.5558%2070.3062%2025.2125C70.02%2024.8691%2071.05%2023.7247%2070.7639%2023.4958C70.4778%2023.2669%2067.1017%2025.3269%2066.4722%2025.4414C65.8428%2025.5558%2065.5567%2022.9236%2065.7283%2022.523C65.9%2022.1225%2070.3634%2020.3486%2070.7067%2020.2913C70.9814%2020.2456%2071.3552%2020.8826%2071.5078%2021.2069C72.5569%2018.1932%2074.6206%2012.1317%2074.4834%2011.9941C74.3117%2011.8224%2073.7967%2012.1657%2073.3962%2012.2802C73.0757%2012.3717%2072.9575%2011.975%2072.9384%2011.7652C72.9193%2011.0785%2072.8926%209.5335%2072.9384%208.84682C72.9842%208.16015%2073.4153%207.98848%2073.6251%207.98848C76.2573%207.26366%2081.6477%205.80258%2082.1512%205.7568ZM79.5762%2010.9068C79.4847%2010.8153%2078.6607%2011.0594%2078.2601%2011.1929C78.0503%2011.2311%2077.6192%2011.3417%2077.5734%2011.4791C77.5161%2011.6512%2076.3145%2016.1713%2076.429%2016.4002C76.5436%2016.6292%2079.0612%2018.3457%2079.2901%2018.2885C79.519%2018.2313%2080.7778%2016.572%2080.7207%2016.343C80.6634%2016.1141%2077.7452%2016.5146%2077.5734%2015.828C77.4018%2015.1413%2079.6904%2011.0217%2079.5762%2010.9068Z'%20fill='white'/%3e%3cpath%20d='M22.5253%2010.1057C22.6397%208.38904%2022.8114%208.38904%2022.9831%208.56071L25.787%209.64793C25.9396%209.68609%2026.2104%209.9455%2026.0731%2010.6779C25.9014%2011.5935%2025.3292%2013.4818%2025.6153%2013.5391C25.9014%2013.5962%2026.9314%2010.1058%2027.0459%209.53349C27.1603%208.96126%2027.4464%208.90404%2027.847%209.07571C28.2476%209.24738%2030.3648%209.76238%2030.3648%2010.1629C30.3647%2010.5636%2029.2776%2013.5391%2029.5637%2013.5391C29.7926%2013.5391%2033.4739%2013.3483%2035.2859%2013.253C35.4576%2013.2339%2035.8009%2013.3216%2035.8009%2013.8252V15.5991C35.8009%2015.828%2035.6292%2016.2972%2034.9426%2016.343C34.2559%2016.3888%2030.422%2016.6672%2028.5909%2016.8008C28.4383%2017.106%2028.1789%2017.7163%2028.362%2017.7163C28.5909%2017.7163%2034.1415%2017.0296%2034.4276%2017.2013C34.7137%2017.373%2036.0871%2018.403%2036.0298%2018.8035C35.9725%2019.2042%2033.1687%2022.1225%2033.3976%2022.3513C33.6266%2022.5803%2037.4032%2023.553%2037.4032%2024.2969C37.4031%2024.7548%2035.8582%2027.158%2035.4004%2027.1008C34.9426%2027.0436%2031.452%2024.8691%2031.2231%2024.9264C30.9942%2024.9836%2029.6209%2027.3869%2028.9915%2027.4442C28.362%2027.5014%2026.5883%2025.6132%2026.6453%2025.3841C26.7025%2025.1553%2028.1902%2023.782%2028.1903%2023.6102C28.1903%2023.4386%2027.332%2023.3241%2027.2748%2022.8091C27.2176%2022.2941%2028.1331%2020.5774%2028.362%2020.7491C28.5909%2020.9208%2030.0214%2021.4358%2030.2503%2021.3786C30.4792%2021.3213%2031.223%2020.4631%2031.2231%2020.2913C31.2231%2020.154%2028.7435%2020.3486%2027.5037%2020.463C27.084%2022.4658%2026.0502%2026.5057%2025.272%2026.643C24.2992%2026.8147%2021.5526%2027.0436%2021.4953%2026.4714C21.4381%2025.8992%2024.6423%2017.6596%2024.6425%2017.3158C24.6425%2017.1441%2023.7842%2017.4874%2023.3836%2017.1441C22.9831%2016.8008%2021.7815%2015.5419%2021.7242%2015.1413C21.667%2014.7407%2022.4108%2011.8224%2022.5253%2010.1057Z'%20fill='white'/%3e%3cpath%20d='M53.4827%208.56071C54.1122%208.33181%2055.5427%207.93126%2055.7716%208.16015C56.0005%208.38908%2055.6572%2010.3918%2055.8288%2010.5063C56.0005%2010.6207%2057.2022%2010.3346%2057.3166%2010.6207C57.4311%2010.9069%2057.3739%2012.738%2057.2022%2013.253C57.0305%2013.7679%2056.0577%2013.6535%2055.8288%2013.6535C55.6%2013.6535%2055.4855%2014.5119%2055.6572%2014.6263C55.8289%2014.7407%2057.2022%2014.4546%2057.5455%2014.5691C57.8889%2014.6835%2057.8316%2016.2858%2057.66%2017.0869C57.4883%2017.888%2056.3438%2017.6019%2056.1722%2017.6019C56.0005%2017.6019%2056.0577%2018.2313%2056.0577%2018.3458C56.0579%2018.4602%2057.2594%2018.2886%2057.4311%2018.4602C57.6027%2018.6319%2057.4883%2020.2913%2057.3166%2020.8063C57.1449%2021.3213%2056.0577%2021.0925%2055.9433%2021.2069C55.8517%2021.2985%2055.9051%2021.8554%2055.9433%2022.1225C59.0715%2022.4658%2065.3278%2023.2326%2065.3278%2023.553C65.3278%2023.9536%2064.7556%2026.5858%2064.355%2026.8719C63.9543%2027.158%2052.8533%2024.3541%2052.5672%2024.3541C52.281%2024.3541%2052.5672%2025.7275%2052.281%2026.0136C51.9949%2026.2997%2049.7061%2025.7847%2049.5344%2025.5558C49.3627%2025.3269%2050.3355%2020.4058%2050.6216%2019.5474C50.9077%2018.6891%2052.4527%2019.0897%2052.6244%2019.3758C52.796%2019.6619%2052.5672%2020.6919%2052.6244%2021.0925C52.6816%2021.493%2052.6816%2021.6075%2052.9105%2021.6075C53.1394%2021.6075%2053.0822%2018.1744%2053.0249%2018.0597C52.9677%2017.9452%2051.1366%2018.3458%2050.5644%2018.2313C49.9921%2018.1169%2050.221%2016.9152%2050.4499%2016.0569C50.6788%2015.1985%2051.9949%2015.313%2052.3955%2015.2557C52.796%2015.1985%2052.6816%2014.3975%2052.6244%2014.283C52.5672%2014.1685%2051.9377%2014.4546%2051.4799%2014.4546C51.1137%2014.4546%2051.0222%2014.1876%2051.0221%2014.0541V11.8796C51.0221%2011.1357%2051.8233%2011.3074%2052.2238%2011.2502C52.5443%2011.2044%2052.6244%2010.8115%2052.6244%2010.6207V9.36182C52.7164%209.01849%2052.8533%208.78959%2053.4827%208.56071Z'%20fill='white'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M40.0926%206.10013C40.3787%206.04291%2043.6977%205.7568%2043.7549%206.10013C43.8121%206.44356%2043.6977%208.44626%2043.8693%208.44626C44.041%208.44626%2045.8149%208.21738%2046.0438%208.56071C46.2269%208.83538%2046.2345%209.59071%2046.2155%209.93405C46.9403%209.05663%2048.4242%207.31325%2048.5616%207.35903C48.7333%207.4163%2050.8505%209.47627%2050.736%209.93405C50.6215%2010.3919%2048.2182%2012.6235%2048.2755%2012.738C48.3328%2012.8524%2050.0494%2012.6807%2050.1638%2013.0241C50.2782%2013.3675%2050.221%2015.5419%2049.6488%2015.7135C49.191%2015.8509%2046.5588%2015.9996%2045.2999%2016.0569L43.9265%2017.4874C45.7004%2017.2967%2049.2826%2016.9839%2049.4199%2017.2585C49.5572%2017.5334%2049.0575%2022.752%2048.7905%2025.3269C48.7523%2025.594%2048.5043%2026.1395%2047.8177%2026.1853C46.9593%2026.2425%2040.3787%2026.643%2039.8637%2026.643C39.3487%2026.643%2039.2915%2026.128%2039.2343%2025.3269C39.1771%2024.5258%2039.3487%2022.0653%2039.1199%2022.008C38.891%2021.9508%2038.0326%2023.2669%2037.5176%2023.2669C37.0026%2023.2669%2035.4577%2020.7492%2035.6293%2020.463C35.8009%2020.1769%2039.6919%2016.9725%2039.6921%2016.6291C39.6921%2016.2858%2036.7165%2017.2013%2036.3732%2016.9152C36.0298%2016.6291%2036.1443%2013.768%2036.8309%2013.7107C37.5176%2013.6535%2040.1497%2013.5963%2040.2071%2013.3674C40.2643%2013.1385%2040.3215%2011.8796%2040.0926%2011.7652C39.1199%2011.8796%2037.1171%2012.0742%2036.8882%2011.9368C36.6021%2011.7652%2036.4876%208.96128%2037.0026%208.90404C37.5176%208.84682%2039.8636%208.90401%2039.9782%208.73237C40.0926%208.56071%2039.8065%206.15739%2040.0926%206.10013ZM45.7577%2020.0624C45.6661%2019.9709%2043.4688%2020.1387%2042.3815%2020.2341C42.3243%2020.2723%2042.2099%2020.3829%2042.2099%2020.5202C42.2099%2020.6919%2042.2099%2021.2069%2042.3815%2021.1497C42.5532%2021.0925%2044.8993%2020.6919%2045.1282%2020.9208C45.3571%2021.1497%2045.3571%2022.5802%2045.1282%2022.6947C44.8992%2022.8091%2042.4388%2022.9236%2042.3243%2022.9808C42.2099%2023.0381%2042.1527%2023.8963%2042.496%2023.8391C42.8393%2023.7819%2045.7575%2023.7819%2045.7577%2023.4386C45.7577%2023.0953%2045.8721%2020.1772%2045.7577%2020.0624ZM44.9566%2011.4218C44.6323%2011.3837%2043.9609%2011.3303%2043.8693%2011.4218C43.7549%2011.5363%2043.6977%2012.4518%2043.8693%2012.4518C44.0067%2012.4518%2044.6514%2011.7652%2044.9566%2011.4218Z'%20fill='white'/%3e%3cpath%20fill-rule='evenodd'%20clip-rule='evenodd'%20d='M64.1833%2016.858C65.0989%2016.858%2065.0417%2016.9724%2065.2133%2017.0869C65.385%2017.2015%2065.0417%2021.3786%2064.87%2021.9508C64.6982%2022.523%2059.205%2022.0652%2058.5183%2022.008C57.969%2021.9622%2057.7935%2021.6456%2057.7744%2021.493L58.0033%2017.6019C58.0329%2017.0983%2058.5116%2016.9343%2058.7472%2016.9152C60.2541%2016.8961%2063.4509%2016.858%2064.1833%2016.858ZM62.5239%2018.918C62.4323%2018.8264%2061.1505%2018.8798%2060.5211%2018.918C60.4639%2018.9371%2060.3494%2019.0096%2060.3494%2019.1469V19.8336C60.3494%2019.9099%2060.3952%2020.0624%2060.5783%2020.0624H62.3522C62.4094%2020.0243%2062.5239%2019.9251%2062.5239%2019.8336C62.5239%2019.7191%2062.6383%2019.0325%2062.5239%2018.918Z'%20fill='white'/%3e%3cpath%20d='M69.8484%207.24459C70.02%207.13014%2072.3089%208.33181%2072.3089%208.84682C72.3089%209.36192%2068.9328%2014.2257%2069.2761%2014.3402C69.6195%2014.4546%2070.9356%2012.5091%2071.2789%2012.2802C71.6223%2012.0513%2073.1673%2013.8824%2073.0528%2014.2257C72.9383%2014.5691%2070.0773%2017.2013%2070.4206%2017.4302C70.7639%2017.6591%2070.8784%2017.1441%2071.6223%2017.0869C72.3662%2017.0296%2071.7367%2018.918%2071.5078%2019.3186C71.2789%2019.7191%2067.3306%2020.978%2066.8728%2020.9208C66.415%2020.8636%2065.7284%2019.3186%2065.7856%2018.8608C65.8428%2018.403%2067.3305%2017.2014%2067.3306%2017.0296C67.3306%2016.858%2066.6439%2017.0296%2066.3578%2016.9152C66.0717%2016.8008%2065.7856%2015.5991%2065.5567%2015.2557C65.3736%2014.9811%2065.4804%2014.6072%2065.5567%2014.4546L69.4478%207.5307C69.5241%207.47348%2069.711%207.33614%2069.8484%207.24459Z'%20fill='white'/%3e%3cpath%20d='M65.4422%209.07571C65.5948%209.11386%2065.8657%209.32749%2065.7283%209.87682C65.5567%2010.5636%2065.0989%2016.2285%2064.5839%2016.343C64.1719%2016.4345%2062.6956%2016.3811%2062.0089%2016.343C61.8754%2016.3239%2061.5969%2016.24%2061.5511%2016.0569C61.4939%2015.828%2061.6656%2014.4546%2061.8944%2014.4546C62.1233%2014.4546%2062.5239%2014.6263%2062.6383%2014.1685C62.7528%2013.7107%2062.9817%2012.7952%2062.6383%2012.6807C62.295%2012.5663%2061.78%2012.6235%2061.6656%2013.1957C61.5511%2013.768%2061.0361%2016.343%2060.4639%2016.4574C60.0061%2016.549%2058.9761%2016.4956%2058.5183%2016.4574C58.3466%2016.4383%2058.0148%2016.3086%2058.0605%2015.9424C58.1177%2015.4847%2058.9188%2013.4247%2058.9189%2013.1957C58.9189%2012.9668%2058.1178%2013.4818%2057.8889%2013.0813C57.7057%2012.7608%2057.927%2011.1167%2058.0605%2010.3346C58.1177%2010.2583%2058.2894%2010.1057%2058.5183%2010.1057L65.4422%209.07571Z'%20fill='white'/%3e%3cpath%20d='M30.6509%2010.6779C31.0705%209.99127%2031.9899%208.64082%2032.3104%208.73237C32.7109%208.84684%2035.2287%2010.5063%2035.2859%2010.8496C35.3431%2011.193%2033.7981%2012.9096%2033.3976%2012.9668C32.997%2013.024%2030.5081%2010.9069%2030.6509%2010.6779Z'%20fill='white'/%3e%3cdefs%3e%3clinearGradient%20id='paint0_linear_8870_13132'%20x1='90.6244'%20y1='27.707'%20x2='3'%20y2='27.707'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%23192EBC'/%3e%3cstop%20offset='1'%20stop-color='%232466F8'/%3e%3c/linearGradient%3e%3clinearGradient%20id='paint1_linear_8870_13132'%20x1='90.6244'%20y1='27.707'%20x2='3'%20y2='27.707'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%23192EBC'/%3e%3cstop%20offset='1'%20stop-color='%232466F8'/%3e%3c/linearGradient%3e%3c/defs%3e%3c/svg%3e";
11596
+ const _sfc_main$y = /* @__PURE__ */ defineComponent({
11597
+ ...{ name: "OperationEntry" },
11598
+ __name: "OperationEntry",
11599
+ setup(__props) {
11600
+ const handleClick = () => {
11601
+ window.open(`${transformNewsUrl(INFORMATION_CENTER_URL)}/operation-resource-support`, "_blank");
11602
+ };
11603
+ return (_ctx, _cache) => {
11604
+ return openBlock(), createElementBlock("div", {
11605
+ class: "operation-entry cursor-pointer",
11606
+ onClick: handleClick
11607
+ }, [..._cache[0] || (_cache[0] = [
11608
+ createElementVNode("img", {
11609
+ class: "w-[54px] h-[32px]",
11610
+ src: _imports_0,
11611
+ alt: "operation-entry"
11612
+ }, null, -1)
11613
+ ])]);
11614
+ };
11615
+ }
11616
+ });
11617
+ const OperationEntry = /* @__PURE__ */ _export_sfc(_sfc_main$y, [["__scopeId", "data-v-vue-layout-gitcode"]]);
11591
11618
  const _hoisted_1$r = ["src"];
11592
11619
  const _sfc_main$x = /* @__PURE__ */ defineComponent({
11593
11620
  __name: "ClaimPower",
@@ -13774,14 +13801,15 @@ function headRequest(request) {
13774
13801
  },
13775
13802
  /** 获取gitcode手机号验证码 */
13776
13803
  verifyRegisterCode(data) {
13777
- const { mobile, type, raw_data, captchaId, token, authenticate } = data;
13804
+ const { mobile, type, raw_data, captchaId, token, authenticate, validate } = data;
13778
13805
  const requestData = filterApiParams({
13779
13806
  biz_enum: type,
13780
13807
  mobile,
13781
13808
  raw_data: raw_data || "",
13782
13809
  captcha_id: captchaId,
13783
13810
  token,
13784
- authenticate
13811
+ authenticate,
13812
+ validate
13785
13813
  });
13786
13814
  return reqCatch(
13787
13815
  () => request({
@@ -13793,13 +13821,14 @@ function headRequest(request) {
13793
13821
  },
13794
13822
  /** 快捷注册短信验证 */
13795
13823
  getQuickLoginMsg(data) {
13796
- const { mobile, biz_enum, captchaId, token, authenticate } = data;
13824
+ const { mobile, biz_enum, captchaId, token, authenticate, validate } = data;
13797
13825
  const requestData = filterApiParams({
13798
13826
  mobile,
13799
13827
  biz_enum: biz_enum || "LOGIN",
13800
13828
  captcha_id: captchaId,
13801
13829
  token,
13802
- authenticate
13830
+ authenticate,
13831
+ validate
13803
13832
  });
13804
13833
  return reqCatch(
13805
13834
  () => request({
@@ -13810,10 +13839,10 @@ function headRequest(request) {
13810
13839
  );
13811
13840
  },
13812
13841
  /** 重置密码 - 获取手机或者邮箱验证码 */
13813
- getMobileEmailCode({ mobile_email = "", captcha_id = "", token = "", authenticate = "" }) {
13842
+ getMobileEmailCode({ mobile_email = "", captcha_id = "", token = "", authenticate = "", validate = "" }) {
13814
13843
  return reqCatch(
13815
13844
  () => request({
13816
- url: `/api/v1/user/forgetCode?mobile_email=${mobile_email}&captcha_id=${captcha_id}&token=${token}&authenticate=${authenticate}`
13845
+ url: `/api/v1/user/forgetCode?mobile_email=${mobile_email}&captcha_id=${captcha_id}&token=${token}&authenticate=${authenticate}&validate=${validate}`
13817
13846
  })
13818
13847
  );
13819
13848
  },
@@ -13903,7 +13932,8 @@ function headRequest(request) {
13903
13932
  password: cryptoCode.toString(),
13904
13933
  captcha_id: data == null ? void 0 : data.captchaId,
13905
13934
  token: data == null ? void 0 : data.token,
13906
- authenticate: data == null ? void 0 : data.authenticate
13935
+ authenticate: data == null ? void 0 : data.authenticate,
13936
+ validate: data == null ? void 0 : data.validate
13907
13937
  });
13908
13938
  return reqCatch(
13909
13939
  () => request({
@@ -14004,6 +14034,15 @@ function headRequest(request) {
14004
14034
  })
14005
14035
  );
14006
14036
  },
14037
+ /** 获取配置的图片验证码类型 */
14038
+ getCaptchaType() {
14039
+ return reqCatch(
14040
+ () => request({
14041
+ url: `/uc/api/v1/captcha/config`,
14042
+ method: "get"
14043
+ })
14044
+ );
14045
+ },
14007
14046
  // mfa 恢复码登陆
14008
14047
  postMfaRecover(data) {
14009
14048
  return reqCatchV2(
@@ -14526,7 +14565,7 @@ const _sfc_main$r = /* @__PURE__ */ defineComponent({
14526
14565
  target: __props.isChatBot ? "_blank" : ""
14527
14566
  }, {
14528
14567
  default: withCtx(() => [
14529
- createVNode(_sfc_main$A, {
14568
+ createVNode(_sfc_main$B, {
14530
14569
  name: __props.accountInfo.nickname,
14531
14570
  src: __props.accountInfo.avatar,
14532
14571
  width: 52,
@@ -14732,7 +14771,7 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
14732
14771
  onClick: _cache[0] || (_cache[0] = ($event) => drawerVisible.value = true)
14733
14772
  }, [
14734
14773
  createElementVNode("div", _hoisted_1$n, [
14735
- createVNode(_sfc_main$A, {
14774
+ createVNode(_sfc_main$B, {
14736
14775
  name: accountInfo.value.nickname,
14737
14776
  src: unref(transformUrl)(accountInfo.value.avatar)
14738
14777
  }, null, 8, ["name", "src"]),
@@ -14763,7 +14802,7 @@ const _sfc_main$q = /* @__PURE__ */ defineComponent({
14763
14802
  ]),
14764
14803
  default: withCtx(() => [
14765
14804
  createElementVNode("div", _hoisted_3$h, [
14766
- createVNode(_sfc_main$A, {
14805
+ createVNode(_sfc_main$B, {
14767
14806
  name: accountInfo.value.nickname,
14768
14807
  src: unref(transformUrl)(accountInfo.value.avatar)
14769
14808
  }, null, 8, ["name", "src"]),
@@ -14917,13 +14956,13 @@ const _sfc_main$p = /* @__PURE__ */ defineComponent({
14917
14956
  var _a;
14918
14957
  const layoutConfig2 = useLayoutConfig();
14919
14958
  const { t: $t } = i18n.global;
14920
- const ProjectSearch = defineAsyncComponent(() => import("./ProjectSearch-DAczE3OE.js"));
14921
- const UserSearch = defineAsyncComponent(() => import("./UserSearch-CF_usc2g.js"));
14922
- const GloabarSearch = defineAsyncComponent(() => import("./GloabarSearch-CoKAJcsT.js"));
14923
- const SearchHistoryList = defineAsyncComponent(() => import("./SearchHistoryList-DtL0HLkA.js"));
14924
- const SearchScopeList = defineAsyncComponent(() => import("./SearchScopeList-BueGEWgE.js"));
14925
- const SearchPrefixTag = defineAsyncComponent(() => import("./SearchPrefixTag-waO22hf-.js"));
14926
- const SearchRecommed = defineAsyncComponent(() => import("./SearchRecommed-lCC_L9SL.js"));
14959
+ const ProjectSearch = defineAsyncComponent(() => import("./ProjectSearch-BcyoSonG.js"));
14960
+ const UserSearch = defineAsyncComponent(() => import("./UserSearch-DdLUykK2.js"));
14961
+ const GloabarSearch = defineAsyncComponent(() => import("./GloabarSearch-DrZahLHx.js"));
14962
+ const SearchHistoryList = defineAsyncComponent(() => import("./SearchHistoryList-D5k-YfD-.js"));
14963
+ const SearchScopeList = defineAsyncComponent(() => import("./SearchScopeList-Db-88kwb.js"));
14964
+ const SearchPrefixTag = defineAsyncComponent(() => import("./SearchPrefixTag-DGaw9Svk.js"));
14965
+ const SearchRecommed = defineAsyncComponent(() => import("./SearchRecommed-BAWzo_1G.js"));
14927
14966
  const props = __props;
14928
14967
  const repoInfo = inject("repoInfo");
14929
14968
  const orgInfo = inject("orgInfo");
@@ -15696,7 +15735,7 @@ const autoAvokeLogin = ({ isLogin, loginFunc, openHarmonyGuide, loginSuccess, lo
15696
15735
  loginFunc({ type: "login", triggerType: "", loginTriggerSource: "router_login_auth", ...loginFuncOpts }, loginSuccess, openHarmonyGuide);
15697
15736
  }
15698
15737
  };
15699
- const NoticeModal = defineAsyncComponent(() => import("./notice-BHcqslei.js"));
15738
+ const NoticeModal = defineAsyncComponent(() => import("./notice-DW960Uls.js"));
15700
15739
  function clearNotice() {
15701
15740
  if (localStorage$2.getItem("validator_email")) {
15702
15741
  localStorage$2.removeItem("validator_email");
@@ -15799,7 +15838,7 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({
15799
15838
  if (props.headerFunctions && props.headerFunctions.length > 0) {
15800
15839
  return props.headerFunctions;
15801
15840
  }
15802
- const usualItems = [HeaderDisplayItem.LOGIN_AND_AVATAR, HeaderDisplayItem.MESSAGE_CENTER, HeaderDisplayItem.NEW_BUTTON, HeaderDisplayItem.DEEPSEEK_BUTTON, HeaderDisplayItem.SEARCH_BUTTON, HeaderDisplayItem.ASIDE_BUTTON];
15841
+ const usualItems = [HeaderDisplayItem.LOGIN_AND_AVATAR, HeaderDisplayItem.MESSAGE_CENTER, HeaderDisplayItem.NEW_BUTTON, HeaderDisplayItem.DEEPSEEK_BUTTON, HeaderDisplayItem.SEARCH_BUTTON, HeaderDisplayItem.ASIDE_BUTTON, HeaderDisplayItem.OPERATION_ENTRY];
15803
15842
  switch (props.sceneValue) {
15804
15843
  case SceneValue.news:
15805
15844
  return [HeaderDisplayItem.NAME_AND_ICON, HeaderDisplayItem.CUSTOM_CONTENT, HeaderDisplayItem.NEWS_MULTI_LANGUAGE];
@@ -16223,7 +16262,8 @@ const _sfc_main$n = /* @__PURE__ */ defineComponent({
16223
16262
  class: normalizeClass(["g-toolbar-right gap-[16px] flex-[1] justify-end max-md:gap-[12px] allow-click-stop", inAIHub.value ? "flex-none" : ""])
16224
16263
  }, [
16225
16264
  createElementVNode("div", _hoisted_4$9, [
16226
- createVNode(ClaimPower, { config: claimPowerConfig.value }, null, 8, ["config"])
16265
+ createVNode(ClaimPower, { config: claimPowerConfig.value }, null, 8, ["config"]),
16266
+ isModuleVisible(unref(HeaderDisplayItem).OPERATION_ENTRY) ? (openBlock(), createBlock(OperationEntry, { key: 0 })) : createCommentVNode("", true)
16227
16267
  ]),
16228
16268
  !__props.isLogin ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
16229
16269
  isModuleVisible(unref(HeaderDisplayItem).LOGIN_AND_AVATAR) ? (openBlock(), createElementBlock(Fragment, { key: 0 }, [
@@ -16498,9 +16538,9 @@ const _sfc_main$m = /* @__PURE__ */ defineComponent({
16498
16538
  const layoutConfig2 = useLayoutConfig();
16499
16539
  const { t: t2 } = i18n.global;
16500
16540
  const route = useRoute();
16501
- const MenuItem = defineAsyncComponent(() => import("./MenuItem-BhZVv_s0.js"));
16502
- const ProjectMenuListV2 = defineAsyncComponent(() => import("./ProjectMenuListV2-DuqKZyNR.js"));
16503
- const ProjectMenuList = defineAsyncComponent(() => import("./ProjectMenuList-BmAnKpUn.js"));
16541
+ const MenuItem = defineAsyncComponent(() => import("./MenuItem-0hbJtnux.js"));
16542
+ const ProjectMenuListV2 = defineAsyncComponent(() => import("./ProjectMenuListV2-DRXdZxI2.js"));
16543
+ const ProjectMenuList = defineAsyncComponent(() => import("./ProjectMenuList-B9wMbqgy.js"));
16504
16544
  const props = __props;
16505
16545
  console.log("slotKeys", props.slotKeys);
16506
16546
  console.log("props", props);
@@ -18275,6 +18315,10 @@ const layoutConfig = useLayoutConfig();
18275
18315
  const { t: t$2 } = i18n.global;
18276
18316
  const GRAPH_CODE = 400017;
18277
18317
  const YUNPIAN_GRAPH_CODE = 400018;
18318
+ const needGraphCode = (errorCode) => {
18319
+ if (!errorCode) return false;
18320
+ return [GRAPH_CODE, YUNPIAN_GRAPH_CODE].includes(errorCode);
18321
+ };
18278
18322
  const REMOTE_LOGIN_CODE = 400015;
18279
18323
  const MAX_MOBILE_COUNT = 10;
18280
18324
  const createLoginConfig = (request) => {
@@ -18304,23 +18348,34 @@ const createLoginConfig = (request) => {
18304
18348
  }
18305
18349
  },
18306
18350
  // 密码登录
18307
- async password({ param, loginParams, graphValidate, lintRemoteLogin, yunpianGraphValidate }) {
18308
- var _a, _b, _c;
18351
+ async password({
18352
+ param,
18353
+ loginParams,
18354
+ graphValidate,
18355
+ lintRemoteLogin,
18356
+ yunpianGraphValidate,
18357
+ yiDunGraphValidate
18358
+ }) {
18359
+ var _a, _b, _c, _d;
18309
18360
  const { validFunc, successFunc = () => {
18310
18361
  }, failFunc = () => {
18311
- } } = param;
18362
+ }, captchaType } = param;
18312
18363
  const check = validFunc ? await validFunc() : true;
18313
18364
  if (!check) return;
18314
18365
  const result2 = await API.toLogin(loginParams);
18315
- if (((_a = result2 == null ? void 0 : result2.error) == null ? void 0 : _a.error_code) === GRAPH_CODE) {
18366
+ if (needGraphCode((_a = result2 == null ? void 0 : result2.error) == null ? void 0 : _a.error_code) && (captchaType == null ? void 0 : captchaType.provider) === "SELF") {
18316
18367
  graphValidate();
18317
18368
  return;
18318
18369
  }
18319
- if (((_b = result2 == null ? void 0 : result2.error) == null ? void 0 : _b.error_code) === YUNPIAN_GRAPH_CODE) {
18370
+ if (needGraphCode((_b = result2 == null ? void 0 : result2.error) == null ? void 0 : _b.error_code) && (captchaType == null ? void 0 : captchaType.provider) === "YUNPIAN") {
18320
18371
  yunpianGraphValidate();
18321
18372
  return;
18322
18373
  }
18323
- if (((_c = result2 == null ? void 0 : result2.error) == null ? void 0 : _c.error_code) === REMOTE_LOGIN_CODE) {
18374
+ if (needGraphCode((_c = result2 == null ? void 0 : result2.error) == null ? void 0 : _c.error_code) && (captchaType == null ? void 0 : captchaType.provider) === "YIDUN") {
18375
+ yiDunGraphValidate();
18376
+ return;
18377
+ }
18378
+ if (((_d = result2 == null ? void 0 : result2.error) == null ? void 0 : _d.error_code) === REMOTE_LOGIN_CODE) {
18324
18379
  lintRemoteLogin();
18325
18380
  return;
18326
18381
  }
@@ -22443,10 +22498,200 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
22443
22498
  }
22444
22499
  });
22445
22500
  const MFA = /* @__PURE__ */ _export_sfc(_sfc_main$4, [["__scopeId", "data-v-vue-layout-gitcode"]]);
22446
- const SlidCaptcha = defineAsyncComponent(() => import("./index-DOOxDh_y.js"));
22501
+ const _SlidCaptchaManager = class _SlidCaptchaManager {
22502
+ constructor() {
22503
+ __publicField(this, "tacInstance", null);
22504
+ __publicField(this, "isScriptLoaded", false);
22505
+ }
22506
+ static getInstance() {
22507
+ if (!_SlidCaptchaManager.instance) {
22508
+ _SlidCaptchaManager.instance = new _SlidCaptchaManager();
22509
+ }
22510
+ return _SlidCaptchaManager.instance;
22511
+ }
22512
+ /**
22513
+ * 等待 TAC 脚本加载
22514
+ * 脚本通常在 index.html 中通过 load.min.js 加载
22515
+ */
22516
+ waitForTACScript(retryCount = 0) {
22517
+ return new Promise((resolve, reject) => {
22518
+ if (this.isScriptLoaded && window.initTAC) {
22519
+ resolve();
22520
+ return;
22521
+ }
22522
+ if (window.initTAC) {
22523
+ this.isScriptLoaded = true;
22524
+ resolve();
22525
+ return;
22526
+ }
22527
+ const checkInterval = setInterval(() => {
22528
+ if (window.initTAC) {
22529
+ this.isScriptLoaded = true;
22530
+ clearInterval(checkInterval);
22531
+ resolve();
22532
+ }
22533
+ }, 100);
22534
+ setTimeout(() => {
22535
+ clearInterval(checkInterval);
22536
+ if (window.initTAC) {
22537
+ this.isScriptLoaded = true;
22538
+ resolve();
22539
+ } else {
22540
+ if (retryCount < 1) {
22541
+ console.warn("TAC 脚本未加载,尝试动态加载");
22542
+ this.loadScriptElement(retryCount, resolve, reject);
22543
+ } else {
22544
+ reject(new Error("TAC 脚本加载失败,initTAC 方法不可用"));
22545
+ }
22546
+ }
22547
+ }, 1e4);
22548
+ });
22549
+ }
22550
+ /**
22551
+ * 动态加载脚本元素(备用方案)
22552
+ */
22553
+ loadScriptElement(_retryCount, resolve, reject) {
22554
+ const script = document.createElement("script");
22555
+ script.type = "text/javascript";
22556
+ script.src = "https://cdn-static.gitcode.com/js/tac/load.min.js";
22557
+ script.onload = () => {
22558
+ setTimeout(() => {
22559
+ if (window.initTAC) {
22560
+ this.isScriptLoaded = true;
22561
+ resolve();
22562
+ } else {
22563
+ reject(new Error("TAC SDK 初始化失败"));
22564
+ }
22565
+ }, 500);
22566
+ };
22567
+ script.onerror = () => {
22568
+ reject(new Error("TAC 脚本加载失败"));
22569
+ };
22570
+ document.head.appendChild(script);
22571
+ }
22572
+ /**
22573
+ * 初始化 TAC 实例
22574
+ */
22575
+ async initTAC(path, config, style, onload, onerror) {
22576
+ if (!config.requestCaptchaDataUrl) {
22577
+ throw new Error("TAC 配置缺少必需的 requestCaptchaDataUrl");
22578
+ }
22579
+ if (!config.validCaptchaUrl) {
22580
+ throw new Error("TAC 配置缺少必需的 validCaptchaUrl");
22581
+ }
22582
+ if (!config.bindEl) {
22583
+ throw new Error("TAC 配置缺少必需的 bindEl 元素");
22584
+ }
22585
+ if (!config.validSuccess) {
22586
+ throw new Error("TAC 配置缺少必需的 validSuccess 回调函数");
22587
+ }
22588
+ if (!window.initTAC) {
22589
+ try {
22590
+ await this.waitForTACScript();
22591
+ } catch (error) {
22592
+ console.error("等待 TAC 脚本加载失败:", error);
22593
+ if (onerror) {
22594
+ onerror(error);
22595
+ }
22596
+ throw error;
22597
+ }
22598
+ }
22599
+ if (this.tacInstance) {
22600
+ this.destroyTAC();
22601
+ }
22602
+ return new Promise((resolve, reject) => {
22603
+ if (!window.initTAC) {
22604
+ const error = new Error("initTAC 方法不可用");
22605
+ if (onerror) {
22606
+ onerror(error);
22607
+ }
22608
+ reject(error);
22609
+ return;
22610
+ }
22611
+ try {
22612
+ window.initTAC(path, config, style || {}).then((tac) => {
22613
+ this.tacInstance = tac;
22614
+ if (onload) {
22615
+ onload(tac);
22616
+ }
22617
+ resolve();
22618
+ }).catch((err) => {
22619
+ console.error("创建 TAC 实例失败:", err);
22620
+ this.tacInstance = null;
22621
+ if (onerror) {
22622
+ onerror(err);
22623
+ }
22624
+ reject(err);
22625
+ });
22626
+ } catch (error) {
22627
+ console.error("创建 TAC 实例失败:", error);
22628
+ this.tacInstance = null;
22629
+ if (onerror) {
22630
+ onerror(error);
22631
+ }
22632
+ reject(error);
22633
+ }
22634
+ });
22635
+ }
22636
+ /**
22637
+ * 销毁 TAC 实例
22638
+ */
22639
+ destroyTAC() {
22640
+ if (this.tacInstance) {
22641
+ try {
22642
+ if (typeof this.tacInstance.destroyWindow === "function") {
22643
+ this.tacInstance.destroyWindow();
22644
+ }
22645
+ this.tacInstance = null;
22646
+ } catch (error) {
22647
+ console.error("销毁 TAC 实例失败:", error);
22648
+ }
22649
+ }
22650
+ }
22651
+ /**
22652
+ * 获取当前实例状态
22653
+ */
22654
+ hasInstance() {
22655
+ return !!this.tacInstance;
22656
+ }
22657
+ /**
22658
+ * 获取当前实例
22659
+ */
22660
+ getInstance() {
22661
+ return this.tacInstance;
22662
+ }
22663
+ /**
22664
+ * 初始化验证码(如果实例存在)
22665
+ */
22666
+ init() {
22667
+ if (this.tacInstance && typeof this.tacInstance.init === "function") {
22668
+ this.tacInstance.init();
22669
+ } else {
22670
+ console.warn("TAC 实例不存在或 init 方法不可用");
22671
+ }
22672
+ }
22673
+ /**
22674
+ * 重新加载验证码(如果实例存在)
22675
+ */
22676
+ reloadCaptcha() {
22677
+ if (this.tacInstance && typeof this.tacInstance.reloadCaptcha === "function") {
22678
+ this.tacInstance.reloadCaptcha();
22679
+ } else {
22680
+ console.warn("TAC 实例不存在或 reloadCaptcha 方法不可用");
22681
+ }
22682
+ }
22683
+ };
22684
+ __publicField(_SlidCaptchaManager, "instance");
22685
+ let SlidCaptchaManager = _SlidCaptchaManager;
22686
+ const slidCaptchaManager = SlidCaptchaManager.getInstance();
22687
+ const SlidCaptcha = defineAsyncComponent(() => import("./index-DN2JJBlq.js"));
22447
22688
  const useSlidCaptcha = () => {
22448
- const { mount, unMount } = usePopup("slid-captcha-popup");
22689
+ const { mount, unMount, isMounted } = usePopup("slid-captcha-popup");
22449
22690
  const open = (config) => {
22691
+ if (isMounted()) {
22692
+ unMount();
22693
+ slidCaptchaManager.destroyTAC();
22694
+ }
22450
22695
  mount(SlidCaptcha, {
22451
22696
  onSuccess: (resData) => {
22452
22697
  var _a;
@@ -22454,15 +22699,22 @@ const useSlidCaptcha = () => {
22454
22699
  (_a = config == null ? void 0 : config.onSuccess) == null ? void 0 : _a.call(config, resData);
22455
22700
  },
22456
22701
  modelValue: true,
22457
- onClose: () => unMount()
22702
+ onClose: () => {
22703
+ unMount();
22704
+ slidCaptchaManager.destroyTAC();
22705
+ }
22458
22706
  });
22459
22707
  };
22708
+ const close = () => {
22709
+ unMount();
22710
+ slidCaptchaManager.destroyTAC();
22711
+ };
22460
22712
  return {
22461
22713
  open,
22462
- close: unMount
22714
+ close
22463
22715
  };
22464
22716
  };
22465
- const YunpianCaptcha = defineAsyncComponent(() => import("./index-uhUlhs4P.js"));
22717
+ const YunpianCaptcha = defineAsyncComponent(() => import("./index-DM34KI4a.js"));
22466
22718
  const useYunpianCaptcha = () => {
22467
22719
  const { mount, unMount } = usePopup("yunpian-captcha-popup");
22468
22720
  const open = (config) => {
@@ -22488,6 +22740,371 @@ const useYunpianCaptcha = () => {
22488
22740
  close: unMount
22489
22741
  };
22490
22742
  };
22743
+ const _YidunCaptchaManager = class _YidunCaptchaManager {
22744
+ constructor() {
22745
+ __publicField(this, "neCaptchaInstance", null);
22746
+ __publicField(this, "isScriptLoaded", false);
22747
+ }
22748
+ static getInstance() {
22749
+ if (!_YidunCaptchaManager.instance) {
22750
+ _YidunCaptchaManager.instance = new _YidunCaptchaManager();
22751
+ }
22752
+ return _YidunCaptchaManager.instance;
22753
+ }
22754
+ /**
22755
+ * 加载易盾验证码脚本
22756
+ */
22757
+ loadNECaptchaScript(retryCount = 0) {
22758
+ return new Promise((resolve, reject) => {
22759
+ if (this.isScriptLoaded && window.initNECaptchaWithFallback) {
22760
+ resolve();
22761
+ return;
22762
+ }
22763
+ const existingScript = document.querySelector('script[src*="yidun-captcha.js"]');
22764
+ if (existingScript) {
22765
+ const checkInterval = setInterval(() => {
22766
+ if (window.initNECaptchaWithFallback) {
22767
+ this.isScriptLoaded = true;
22768
+ clearInterval(checkInterval);
22769
+ resolve();
22770
+ }
22771
+ }, 100);
22772
+ setTimeout(() => {
22773
+ clearInterval(checkInterval);
22774
+ if (window.initNECaptchaWithFallback) {
22775
+ this.isScriptLoaded = true;
22776
+ resolve();
22777
+ } else {
22778
+ if (existingScript.parentNode) {
22779
+ existingScript.parentNode.removeChild(existingScript);
22780
+ }
22781
+ this.loadScriptElement(retryCount, resolve, reject);
22782
+ }
22783
+ }, 5e3);
22784
+ return;
22785
+ }
22786
+ this.loadScriptElement(retryCount, resolve, reject);
22787
+ });
22788
+ }
22789
+ /**
22790
+ * 创建并加载脚本元素
22791
+ */
22792
+ loadScriptElement(retryCount, resolve, reject) {
22793
+ const script = document.createElement("script");
22794
+ script.type = "text/javascript";
22795
+ script.src = "https://cdn-static.gitcode.com/js/yidun/yidun-captcha.js";
22796
+ script.onload = () => {
22797
+ setTimeout(() => {
22798
+ if (window.initNECaptchaWithFallback) {
22799
+ this.isScriptLoaded = true;
22800
+ resolve();
22801
+ } else {
22802
+ reject(new Error("易盾验证码 SDK 初始化失败"));
22803
+ }
22804
+ }, 200);
22805
+ };
22806
+ script.onerror = () => {
22807
+ if (retryCount < 2) {
22808
+ console.warn(`易盾验证码脚本加载失败,正在重试 (${retryCount + 1}/2)`);
22809
+ setTimeout(() => {
22810
+ this.loadNECaptchaScript(retryCount + 1).then(resolve).catch(reject);
22811
+ }, 1e3);
22812
+ } else {
22813
+ reject(new Error("易盾验证码脚本加载失败,已达到最大重试次数"));
22814
+ }
22815
+ };
22816
+ document.head.appendChild(script);
22817
+ }
22818
+ /**
22819
+ * 初始化易盾验证码实例
22820
+ */
22821
+ async initNECaptcha(config, onload, onerror) {
22822
+ if (!config.captchaId) {
22823
+ throw new Error("易盾验证码配置缺少必需的 captchaId");
22824
+ }
22825
+ if (!config.element) {
22826
+ throw new Error("易盾验证码配置缺少必需的 element 元素");
22827
+ }
22828
+ if (!config.onVerify) {
22829
+ throw new Error("易盾验证码配置缺少必需的 onVerify 回调函数");
22830
+ }
22831
+ if (!window.initNECaptchaWithFallback) {
22832
+ try {
22833
+ await this.loadNECaptchaScript();
22834
+ } catch (error) {
22835
+ console.error("加载易盾验证码脚本失败:", error);
22836
+ if (onerror) {
22837
+ onerror(error);
22838
+ }
22839
+ throw error;
22840
+ }
22841
+ }
22842
+ if (this.neCaptchaInstance) {
22843
+ this.destroyNECaptcha();
22844
+ }
22845
+ return new Promise((resolve, reject) => {
22846
+ if (!window.initNECaptchaWithFallback) {
22847
+ const error = new Error("initNECaptchaWithFallback 方法不可用");
22848
+ if (onerror) {
22849
+ onerror(error);
22850
+ }
22851
+ reject(error);
22852
+ return;
22853
+ }
22854
+ try {
22855
+ window.initNECaptchaWithFallback(
22856
+ config,
22857
+ (instance) => {
22858
+ this.neCaptchaInstance = instance;
22859
+ if (onload) {
22860
+ onload(instance);
22861
+ }
22862
+ resolve();
22863
+ },
22864
+ (err) => {
22865
+ console.error("易盾验证码初始化失败:", err);
22866
+ this.neCaptchaInstance = null;
22867
+ if (onerror) {
22868
+ onerror(err);
22869
+ }
22870
+ reject(err);
22871
+ }
22872
+ );
22873
+ } catch (error) {
22874
+ console.error("创建易盾验证码实例失败:", error);
22875
+ this.neCaptchaInstance = null;
22876
+ if (onerror) {
22877
+ onerror(error);
22878
+ }
22879
+ reject(error);
22880
+ }
22881
+ });
22882
+ }
22883
+ /**
22884
+ * 销毁易盾验证码实例
22885
+ */
22886
+ destroyNECaptcha() {
22887
+ if (this.neCaptchaInstance) {
22888
+ try {
22889
+ if (typeof this.neCaptchaInstance.destroy === "function") {
22890
+ this.neCaptchaInstance.destroy();
22891
+ }
22892
+ this.neCaptchaInstance = null;
22893
+ } catch (error) {
22894
+ console.error("销毁易盾验证码实例失败:", error);
22895
+ }
22896
+ }
22897
+ }
22898
+ /**
22899
+ * 获取当前实例状态
22900
+ */
22901
+ hasInstance() {
22902
+ return !!this.neCaptchaInstance;
22903
+ }
22904
+ /**
22905
+ * 获取当前实例
22906
+ */
22907
+ getInstance() {
22908
+ return this.neCaptchaInstance;
22909
+ }
22910
+ /**
22911
+ * 触发验证码验证
22912
+ */
22913
+ verify() {
22914
+ if (this.neCaptchaInstance && typeof this.neCaptchaInstance.verify === "function") {
22915
+ this.neCaptchaInstance.verify();
22916
+ } else {
22917
+ console.warn("验证码实例不存在或 verify 方法不可用");
22918
+ }
22919
+ }
22920
+ /**
22921
+ * 刷新验证码
22922
+ */
22923
+ refresh() {
22924
+ if (this.neCaptchaInstance && typeof this.neCaptchaInstance.refresh === "function") {
22925
+ this.neCaptchaInstance.refresh();
22926
+ } else {
22927
+ console.warn("验证码实例不存在或 refresh 方法不可用");
22928
+ }
22929
+ }
22930
+ /**
22931
+ * 重新初始化(用于更新配置)
22932
+ */
22933
+ async reinitialize(config, onload, onerror) {
22934
+ this.destroyNECaptcha();
22935
+ await this.initNECaptcha(config, onload, onerror);
22936
+ }
22937
+ };
22938
+ __publicField(_YidunCaptchaManager, "instance");
22939
+ let YidunCaptchaManager = _YidunCaptchaManager;
22940
+ const yidunCaptchaManager = YidunCaptchaManager.getInstance();
22941
+ let globalStyleElement = null;
22942
+ let globalStyleRefCount = 0;
22943
+ const useYiDunCaptcha = () => {
22944
+ const { isMobile } = usePageResize();
22945
+ const captchaInstance = ref(null);
22946
+ const hiddenElement = ref(null);
22947
+ const verifyTimeoutId = ref(null);
22948
+ const injectStyle = () => {
22949
+ if (globalStyleElement) {
22950
+ globalStyleRefCount++;
22951
+ return;
22952
+ }
22953
+ const style = document.createElement("style");
22954
+ style.id = "yidun-captcha-trigger-style";
22955
+ style.textContent = `
22956
+ #yidun-captcha-trigger .yidun_tips__img {
22957
+ max-width: unset;
22958
+ }
22959
+ #yidun-captcha-trigger .yidun_modal {
22960
+ top: 36% !important;
22961
+ }
22962
+ `;
22963
+ document.head.appendChild(style);
22964
+ globalStyleElement = style;
22965
+ globalStyleRefCount = 1;
22966
+ };
22967
+ const removeStyle = () => {
22968
+ globalStyleRefCount--;
22969
+ if (globalStyleRefCount <= 0 && globalStyleElement && globalStyleElement.parentNode) {
22970
+ globalStyleElement.parentNode.removeChild(globalStyleElement);
22971
+ globalStyleElement = null;
22972
+ globalStyleRefCount = 0;
22973
+ }
22974
+ };
22975
+ const createHiddenElement = () => {
22976
+ if (hiddenElement.value) {
22977
+ return hiddenElement.value;
22978
+ }
22979
+ injectStyle();
22980
+ const el = document.createElement("div");
22981
+ el.id = "yidun-captcha-trigger";
22982
+ el.style.position = "absolute";
22983
+ el.style.left = "-9999px";
22984
+ el.style.top = "-9999px";
22985
+ el.style.width = "1px";
22986
+ el.style.height = "1px";
22987
+ el.style.overflow = "hidden";
22988
+ document.body.appendChild(el);
22989
+ hiddenElement.value = el;
22990
+ return el;
22991
+ };
22992
+ const removeHiddenElement = () => {
22993
+ if (hiddenElement.value && hiddenElement.value.parentNode) {
22994
+ hiddenElement.value.parentNode.removeChild(hiddenElement.value);
22995
+ hiddenElement.value = null;
22996
+ }
22997
+ };
22998
+ const cleanup = () => {
22999
+ if (verifyTimeoutId.value !== null) {
23000
+ clearTimeout(verifyTimeoutId.value);
23001
+ verifyTimeoutId.value = null;
23002
+ }
23003
+ if (captchaInstance.value) {
23004
+ yidunCaptchaManager.destroyNECaptcha();
23005
+ captchaInstance.value = null;
23006
+ }
23007
+ removeHiddenElement();
23008
+ removeStyle();
23009
+ };
23010
+ const open = (config) => {
23011
+ if (!(config == null ? void 0 : config.captchaId)) {
23012
+ console.error("captcha captchaId 不能为空");
23013
+ return;
23014
+ }
23015
+ cleanup();
23016
+ const isZh = getLocaleLang() === LANG_ZH;
23017
+ const hiddenEl = createHiddenElement();
23018
+ const captchaConfig = {
23019
+ captchaId: config.captchaId,
23020
+ apiVersion: 2,
23021
+ element: hiddenEl,
23022
+ width: isMobile.value ? "320px" : "400px",
23023
+ // popup 模式不支持百分比
23024
+ mode: "popup",
23025
+ lang: isZh ? "zh-CN" : "en",
23026
+ feedbackEnable: false,
23027
+ defaultFallback: false,
23028
+ popupStyles: {
23029
+ position: "fixed",
23030
+ top: "20%"
23031
+ },
23032
+ onVerify: (err, data) => {
23033
+ var _a;
23034
+ if (err) {
23035
+ console.warn("验证失败:", err);
23036
+ return;
23037
+ }
23038
+ (_a = config == null ? void 0 : config.onSuccess) == null ? void 0 : _a.call(config, data);
23039
+ cleanup();
23040
+ },
23041
+ onClose: () => {
23042
+ cleanup();
23043
+ },
23044
+ onError: (error) => {
23045
+ var _a;
23046
+ console.error("captcha初始化失败:", error);
23047
+ (_a = config == null ? void 0 : config.onFallback) == null ? void 0 : _a.call(config, config == null ? void 0 : config.onSuccess);
23048
+ removeHiddenElement();
23049
+ captchaInstance.value = null;
23050
+ },
23051
+ // 当行为验证码所需静态资源或者接口不可用时,且请求验证码失败次数达到阈值(默认为 3 次,可根据需求配置),最后一次会触发降级逻辑
23052
+ onFallback: (_data) => {
23053
+ var _a;
23054
+ console.warn("captcha触发降级");
23055
+ (_a = config == null ? void 0 : config.onFallback) == null ? void 0 : _a.call(config, config == null ? void 0 : config.onSuccess);
23056
+ removeHiddenElement();
23057
+ captchaInstance.value = null;
23058
+ }
23059
+ };
23060
+ yidunCaptchaManager.initNECaptcha(
23061
+ captchaConfig,
23062
+ (instance) => {
23063
+ if (!yidunCaptchaManager.hasInstance()) {
23064
+ return;
23065
+ }
23066
+ captchaInstance.value = instance;
23067
+ verifyTimeoutId.value = window.setTimeout(() => {
23068
+ if (yidunCaptchaManager.hasInstance() && captchaInstance.value) {
23069
+ yidunCaptchaManager.verify();
23070
+ }
23071
+ verifyTimeoutId.value = null;
23072
+ }, 0);
23073
+ },
23074
+ (err) => {
23075
+ var _a;
23076
+ console.error("captcha初始化失败:", err);
23077
+ (_a = config == null ? void 0 : config.onFallback) == null ? void 0 : _a.call(config, config == null ? void 0 : config.onSuccess);
23078
+ removeHiddenElement();
23079
+ captchaInstance.value = null;
23080
+ }
23081
+ ).catch((error) => {
23082
+ var _a;
23083
+ console.error("captcha初始化异常:", error);
23084
+ (_a = config == null ? void 0 : config.onFallback) == null ? void 0 : _a.call(config, config == null ? void 0 : config.onSuccess);
23085
+ removeHiddenElement();
23086
+ captchaInstance.value = null;
23087
+ });
23088
+ };
23089
+ const verify = () => {
23090
+ if (yidunCaptchaManager.hasInstance()) {
23091
+ yidunCaptchaManager.verify();
23092
+ } else {
23093
+ console.warn("captcha实例不存在,请先调用 open 方法初始化");
23094
+ }
23095
+ };
23096
+ const close = () => {
23097
+ cleanup();
23098
+ };
23099
+ onBeforeUnmount(() => {
23100
+ cleanup();
23101
+ });
23102
+ return {
23103
+ open,
23104
+ verify,
23105
+ close
23106
+ };
23107
+ };
22491
23108
  const _sfc_main$3 = {};
22492
23109
  const _hoisted_1$2 = { class: "content-loading" };
22493
23110
  function _sfc_render(_ctx, _cache) {
@@ -23223,9 +23840,34 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
23223
23840
  extraData: {}
23224
23841
  });
23225
23842
  };
23226
- let captchaMode = "yunpian";
23843
+ const captchaLocalMode = ref("yidun");
23227
23844
  const slidCaptcha = useSlidCaptcha();
23228
23845
  const yunpianCaptcha = useYunpianCaptcha();
23846
+ const yiDunCaptcha = useYiDunCaptcha();
23847
+ const captchaType = ref({
23848
+ provider: "SELF"
23849
+ });
23850
+ const getCurrentCaptchaType = async () => {
23851
+ var _a;
23852
+ const res = await API.getCaptchaType();
23853
+ if (!res.error) {
23854
+ captchaType.value = ((_a = res == null ? void 0 : res.data) == null ? void 0 : _a.data) || { provider: "SELF" };
23855
+ switch (captchaType.value.provider) {
23856
+ case "SELF":
23857
+ captchaLocalMode.value = "tianai";
23858
+ break;
23859
+ case "YUNPIAN":
23860
+ captchaLocalMode.value = "yunpian";
23861
+ break;
23862
+ case "YIDUN":
23863
+ captchaLocalMode.value = "yidun";
23864
+ break;
23865
+ default:
23866
+ captchaLocalMode.value = "tianai";
23867
+ break;
23868
+ }
23869
+ }
23870
+ };
23229
23871
  const LoginCheck = async () => {
23230
23872
  let agreementFlag = false;
23231
23873
  if (!status.value || !dataShareChecked.value) {
@@ -23335,6 +23977,180 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
23335
23977
  }
23336
23978
  });
23337
23979
  };
23980
+ const yiDunGraphValidate = () => {
23981
+ loading.value = false;
23982
+ const currentCaptchaId = getYiDunCaptchaId({ scene: "password" });
23983
+ if (!currentCaptchaId) {
23984
+ console.error("验证码 ID 未获取到");
23985
+ return;
23986
+ }
23987
+ yiDunCaptcha.open({
23988
+ captchaId: currentCaptchaId,
23989
+ onSuccess: (captchaData) => {
23990
+ const captchaId = (captchaData == null ? void 0 : captchaData.fallback) ? (captchaData == null ? void 0 : captchaData.captchaId) || (captchaData == null ? void 0 : captchaData.id) : currentCaptchaId;
23991
+ if (!captchaId) {
23992
+ console.error("验证码 ID 无效");
23993
+ return;
23994
+ }
23995
+ handleConfirm({
23996
+ validate: captchaData == null ? void 0 : captchaData.validate,
23997
+ token: captchaData == null ? void 0 : captchaData.token,
23998
+ authenticate: captchaData == null ? void 0 : captchaData.authenticate,
23999
+ captchaId
24000
+ });
24001
+ },
24002
+ onFallback: (originalOnSuccess) => {
24003
+ slidCaptcha.open({
24004
+ onSuccess: (captchaData) => {
24005
+ if (!(captchaData == null ? void 0 : captchaData.id)) {
24006
+ console.error("天爱验证码返回数据无效,缺少 id 字段");
24007
+ return;
24008
+ }
24009
+ originalOnSuccess == null ? void 0 : originalOnSuccess({
24010
+ captchaId: captchaData.id,
24011
+ fallback: true
24012
+ });
24013
+ }
24014
+ });
24015
+ }
24016
+ });
24017
+ };
24018
+ const getYiDunCaptchaId = ({ scene, isDomesticNumber = true }) => {
24019
+ var _a, _b, _c;
24020
+ if (captchaType.value.provider !== "YIDUN") {
24021
+ return "";
24022
+ }
24023
+ if (scene === "password") {
24024
+ return (_a = captchaType.value.international) == null ? void 0 : _a.captcha_id;
24025
+ }
24026
+ if (scene === "sendCode") {
24027
+ return isDomesticNumber ? (_b = captchaType.value.domestic) == null ? void 0 : _b.captcha_id : (_c = captchaType.value.international) == null ? void 0 : _c.captcha_id;
24028
+ }
24029
+ return "";
24030
+ };
24031
+ const handleCaptchaVerification = (conf, options = {}) => {
24032
+ try {
24033
+ const { isDomesticNumber = true, checkCondition, extraParams = {} } = options;
24034
+ if (checkCondition && !checkCondition(conf)) {
24035
+ return false;
24036
+ }
24037
+ if (captchaLocalMode.value === "yunpian") {
24038
+ yunpianCaptcha.open({
24039
+ onSuccess: (captchaData) => {
24040
+ handleCountDown({
24041
+ ...conf,
24042
+ token: captchaData == null ? void 0 : captchaData.token,
24043
+ authenticate: captchaData == null ? void 0 : captchaData.authenticate,
24044
+ captchaId: captchaData == null ? void 0 : captchaData.captchaId,
24045
+ ...extraParams
24046
+ });
24047
+ },
24048
+ onFallback: (originalOnSuccess) => {
24049
+ captchaLocalMode.value = "tianai";
24050
+ slidCaptcha.open({
24051
+ onSuccess: (captchaData) => originalOnSuccess == null ? void 0 : originalOnSuccess({
24052
+ captchaId: captchaData.id
24053
+ })
24054
+ });
24055
+ }
24056
+ });
24057
+ return true;
24058
+ }
24059
+ if (captchaLocalMode.value === "tianai") {
24060
+ slidCaptcha.open({
24061
+ onSuccess: (captchaData) => {
24062
+ handleCountDown({
24063
+ ...conf,
24064
+ captchaId: captchaData.id,
24065
+ ...extraParams
24066
+ });
24067
+ }
24068
+ });
24069
+ return true;
24070
+ }
24071
+ if (captchaLocalMode.value === "yidun") {
24072
+ const currentCaptchaId = getYiDunCaptchaId({ scene: "sendCode", isDomesticNumber });
24073
+ if (!currentCaptchaId) {
24074
+ console.error("易盾验证码 ID 未获取到,降级到天爱验证码");
24075
+ captchaLocalMode.value = "tianai";
24076
+ slidCaptcha.open({
24077
+ onSuccess: (captchaData) => {
24078
+ handleCountDown({
24079
+ ...conf,
24080
+ captchaId: captchaData.id,
24081
+ ...extraParams
24082
+ });
24083
+ }
24084
+ });
24085
+ return true;
24086
+ }
24087
+ yiDunCaptcha.open({
24088
+ captchaId: currentCaptchaId,
24089
+ onSuccess: (captchaData) => {
24090
+ const captchaId = (captchaData == null ? void 0 : captchaData.fallback) ? (captchaData == null ? void 0 : captchaData.captchaId) || (captchaData == null ? void 0 : captchaData.id) : currentCaptchaId;
24091
+ if (!captchaId) {
24092
+ console.error("验证码 ID 无效");
24093
+ return;
24094
+ }
24095
+ handleCountDown({
24096
+ ...conf,
24097
+ token: captchaData == null ? void 0 : captchaData.token,
24098
+ authenticate: captchaData == null ? void 0 : captchaData.authenticate,
24099
+ captchaId,
24100
+ validate: captchaData == null ? void 0 : captchaData.validate,
24101
+ ...extraParams
24102
+ });
24103
+ },
24104
+ onFallback: (originalOnSuccess) => {
24105
+ captchaLocalMode.value = "tianai";
24106
+ slidCaptcha.open({
24107
+ onSuccess: (captchaData) => {
24108
+ if (!(captchaData == null ? void 0 : captchaData.id)) {
24109
+ console.error("天爱验证码返回数据无效,缺少 id 字段");
24110
+ return;
24111
+ }
24112
+ originalOnSuccess == null ? void 0 : originalOnSuccess({
24113
+ captchaId: captchaData.id,
24114
+ fallback: true
24115
+ });
24116
+ }
24117
+ });
24118
+ }
24119
+ });
24120
+ return true;
24121
+ }
24122
+ console.warn(`未知的验证码模式: ${captchaLocalMode.value},降级到天爱验证码`);
24123
+ captchaLocalMode.value = "tianai";
24124
+ slidCaptcha.open({
24125
+ onSuccess: (captchaData) => {
24126
+ handleCountDown({
24127
+ ...conf,
24128
+ captchaId: captchaData.id,
24129
+ ...extraParams
24130
+ });
24131
+ }
24132
+ });
24133
+ return true;
24134
+ } catch (error) {
24135
+ console.error("处理验证码时发生错误:", error);
24136
+ try {
24137
+ captchaLocalMode.value = "tianai";
24138
+ slidCaptcha.open({
24139
+ onSuccess: (captchaData) => {
24140
+ handleCountDown({
24141
+ ...conf,
24142
+ captchaId: captchaData.id,
24143
+ ...options.extraParams
24144
+ });
24145
+ }
24146
+ });
24147
+ return true;
24148
+ } catch (fallbackError) {
24149
+ console.error("降级验证码也失败:", fallbackError);
24150
+ return false;
24151
+ }
24152
+ }
24153
+ };
23338
24154
  const errForRemoteLogin = ref(false);
23339
24155
  const handleRemoteLogin = () => {
23340
24156
  errForRemoteLogin.value = true;
@@ -23383,6 +24199,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
23383
24199
  const passwordParams = {
23384
24200
  type: "password",
23385
24201
  ...res,
24202
+ validate: info == null ? void 0 : info.validate,
23386
24203
  captchaId: info == null ? void 0 : info.captchaId,
23387
24204
  token: info == null ? void 0 : info.token,
23388
24205
  authenticate: info == null ? void 0 : info.authenticate
@@ -23393,12 +24210,14 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
23393
24210
  successFunc: loginSuccess,
23394
24211
  failFunc: loginFail,
23395
24212
  loginDeviceType: "pc",
23396
- country
24213
+ country,
24214
+ captchaType: captchaType.value
23397
24215
  },
23398
24216
  loginParams: passwordParams,
23399
- graphValidate,
23400
24217
  lintRemoteLogin: handleRemoteLogin,
23401
- yunpianGraphValidate
24218
+ graphValidate,
24219
+ yunpianGraphValidate,
24220
+ yiDunGraphValidate
23402
24221
  });
23403
24222
  break;
23404
24223
  }
@@ -23483,7 +24302,8 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
23483
24302
  mobile,
23484
24303
  captchaId: conf == null ? void 0 : conf.captchaId,
23485
24304
  token: conf == null ? void 0 : conf.token,
23486
- authenticate: conf == null ? void 0 : conf.authenticate
24305
+ authenticate: conf == null ? void 0 : conf.authenticate,
24306
+ validate: conf == null ? void 0 : conf.validate
23487
24307
  });
23488
24308
  break;
23489
24309
  }
@@ -23492,7 +24312,8 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
23492
24312
  mobile_email: mobile,
23493
24313
  captcha_id: conf == null ? void 0 : conf.captchaId,
23494
24314
  token: conf == null ? void 0 : conf.token,
23495
- authenticate: conf == null ? void 0 : conf.authenticate
24315
+ authenticate: conf == null ? void 0 : conf.authenticate,
24316
+ validate: conf == null ? void 0 : conf.validate
23496
24317
  });
23497
24318
  res = await API.getMobileEmailCode(requestData);
23498
24319
  break;
@@ -23503,7 +24324,8 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
23503
24324
  type: "BINDING_MOBILE",
23504
24325
  captchaId: conf == null ? void 0 : conf.captchaId,
23505
24326
  token: conf == null ? void 0 : conf.token,
23506
- authenticate: conf == null ? void 0 : conf.authenticate
24327
+ authenticate: conf == null ? void 0 : conf.authenticate,
24328
+ validate: conf == null ? void 0 : conf.validate
23507
24329
  });
23508
24330
  break;
23509
24331
  }
@@ -23513,7 +24335,8 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
23513
24335
  type: "REGISTER",
23514
24336
  captchaId: conf == null ? void 0 : conf.captchaId,
23515
24337
  token: conf == null ? void 0 : conf.token,
23516
- authenticate: conf == null ? void 0 : conf.authenticate
24338
+ authenticate: conf == null ? void 0 : conf.authenticate,
24339
+ validate: conf == null ? void 0 : conf.validate
23517
24340
  });
23518
24341
  break;
23519
24342
  }
@@ -23521,7 +24344,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
23521
24344
  return res;
23522
24345
  };
23523
24346
  const handleCountDown = async (conf) => {
23524
- var _a, _b, _c;
24347
+ var _a, _b, _c, _d, _e;
23525
24348
  const formData = await FormRef.value.ValidateFormKeys([conf.key]);
23526
24349
  const mobile = getPhone(conf);
23527
24350
  if (formData.type === "success") {
@@ -23533,98 +24356,50 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
23533
24356
  const isDomesticNumber = country === "CN" || !country;
23534
24357
  const isLoginOrRegister = formType.value === "login" || formType.value === "register";
23535
24358
  if (!isDomesticNumber && !conf.noVerificationRequired && isLoginOrRegister) {
23536
- if (captchaMode === "yunpian") {
23537
- yunpianCaptcha.open({
23538
- onSuccess: (captchaData) => {
23539
- handleCountDown({
23540
- ...conf,
23541
- token: captchaData == null ? void 0 : captchaData.token,
23542
- authenticate: captchaData == null ? void 0 : captchaData.authenticate,
23543
- captchaId: captchaData == null ? void 0 : captchaData.captchaId,
23544
- noVerificationRequired: true,
23545
- smsReported: true
23546
- });
23547
- },
23548
- onFallback: (originalOnSuccess) => {
23549
- captchaMode = "tianai";
23550
- slidCaptcha.open({
23551
- onSuccess: (captchaData) => originalOnSuccess == null ? void 0 : originalOnSuccess({
23552
- captchaId: captchaData.id
23553
- })
23554
- });
23555
- }
23556
- });
23557
- return;
23558
- } else if (captchaMode === "tianai") {
23559
- slidCaptcha.open({
23560
- onSuccess: (captchaData) => handleCountDown({ ...conf, captchaId: captchaData.id, noVerificationRequired: true, smsReported: true })
23561
- });
24359
+ if (handleCaptchaVerification(conf, {
24360
+ isDomesticNumber,
24361
+ extraParams: {
24362
+ noVerificationRequired: true,
24363
+ smsReported: true
24364
+ }
24365
+ })) {
23562
24366
  return;
23563
24367
  }
23564
24368
  }
23565
24369
  if (formType.value === "forget") {
23566
- if (captchaMode === "yunpian") {
23567
- if (!conf.token || !conf.authenticate) {
23568
- yunpianCaptcha.open({
23569
- onSuccess: (captchaData) => {
23570
- handleCountDown({
23571
- ...conf,
23572
- token: captchaData == null ? void 0 : captchaData.token,
23573
- authenticate: captchaData == null ? void 0 : captchaData.authenticate,
23574
- captchaId: captchaData == null ? void 0 : captchaData.captchaId,
23575
- smsReported: true
23576
- });
23577
- },
23578
- onFallback: (originalOnSuccess) => {
23579
- captchaMode = "tianai";
23580
- slidCaptcha.open({
23581
- onSuccess: (captchaData) => originalOnSuccess == null ? void 0 : originalOnSuccess({
23582
- captchaId: captchaData.id
23583
- })
23584
- });
23585
- }
23586
- });
24370
+ const needVerification = captchaLocalMode.value === "yunpian" && (!conf.token || !conf.authenticate) || captchaLocalMode.value === "tianai" && !conf.captchaId || captchaLocalMode.value === "yidun" && !conf.validate;
24371
+ if (needVerification) {
24372
+ if (handleCaptchaVerification(conf, {
24373
+ isDomesticNumber: false,
24374
+ // 忘记密码场景,使用国际captchaId
24375
+ checkCondition: () => needVerification,
24376
+ extraParams: {
24377
+ smsReported: true
24378
+ }
24379
+ })) {
23587
24380
  return;
23588
24381
  }
23589
- } else if (captchaMode === "tianai" && !conf.captchaId) {
23590
- slidCaptcha.open({
23591
- onSuccess: (captchaData) => {
23592
- handleCountDown({ ...conf, captchaId: captchaData.id, smsReported: true });
23593
- }
23594
- });
23595
- return;
23596
24382
  }
23597
24383
  }
23598
24384
  if (tabPanel.value === "verifyCode" || ["register", "forget", "bindPhone"].includes(formType.value)) {
23599
24385
  const verifyCodeRes = await handleCountDownSubmission(conf, mobile);
23600
24386
  if (["login", "register", "bindPhone"].includes(formType.value)) {
23601
- if (((_b = verifyCodeRes == null ? void 0 : verifyCodeRes.error) == null ? void 0 : _b.error_code) === GRAPH_CODE) {
23602
- captchaMode = "tianai";
23603
- slidCaptcha.open({
23604
- onSuccess: (captchaData) => handleCountDown({ ...conf, captchaId: captchaData.id, smsReported: true })
23605
- });
23606
- return;
23607
- }
23608
- if (((_c = verifyCodeRes == null ? void 0 : verifyCodeRes.error) == null ? void 0 : _c.error_code) === YUNPIAN_GRAPH_CODE) {
23609
- captchaMode = "yunpian";
23610
- yunpianCaptcha.open({
23611
- onSuccess: (captchaData) => handleCountDown({
23612
- ...conf,
23613
- token: captchaData == null ? void 0 : captchaData.token,
23614
- authenticate: captchaData == null ? void 0 : captchaData.authenticate,
23615
- captchaId: captchaData == null ? void 0 : captchaData.captchaId,
24387
+ if (needGraphCode((_b = verifyCodeRes == null ? void 0 : verifyCodeRes.error) == null ? void 0 : _b.error_code)) {
24388
+ if (((_c = captchaType.value) == null ? void 0 : _c.provider) === "SELF") {
24389
+ captchaLocalMode.value = "tianai";
24390
+ } else if (((_d = captchaType.value) == null ? void 0 : _d.provider) === "YUNPIAN") {
24391
+ captchaLocalMode.value = "yunpian";
24392
+ } else if (((_e = captchaType.value) == null ? void 0 : _e.provider) === "YIDUN") {
24393
+ captchaLocalMode.value = "yidun";
24394
+ }
24395
+ if (handleCaptchaVerification(conf, {
24396
+ isDomesticNumber,
24397
+ extraParams: {
23616
24398
  smsReported: true
23617
- }),
23618
- onFallback: (originalOnSuccess) => {
23619
- captchaMode = "tianai";
23620
- slidCaptcha.open({
23621
- onSuccess: (captchaData) => originalOnSuccess == null ? void 0 : originalOnSuccess({
23622
- captchaId: captchaData.id
23623
- })
23624
- });
23625
24399
  }
23626
- });
23627
- return;
24400
+ })) {
24401
+ return;
24402
+ }
23628
24403
  }
23629
24404
  }
23630
24405
  if (!(verifyCodeRes == null ? void 0 : verifyCodeRes.error)) {
@@ -24059,6 +24834,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
24059
24834
  const resetPwdDirectly = ref(false);
24060
24835
  const resetPwdWhiteList = ["change_password"];
24061
24836
  onMounted(() => {
24837
+ getCurrentCaptchaType();
24062
24838
  if (tabPanel.value === "miniProgram" && formType.value === "login") {
24063
24839
  getMiniProgramQrCode();
24064
24840
  }
@@ -24779,29 +25555,30 @@ const index = {
24779
25555
  }
24780
25556
  };
24781
25557
  export {
24782
- currentTheme as A,
24783
- LANG_EN as B,
24784
- emitEvent as C,
24785
- isHttps as D,
25558
+ ThemeType as A,
25559
+ currentTheme as B,
25560
+ LANG_EN as C,
25561
+ emitEvent as D,
24786
25562
  EVENT_NAME as E,
24787
- asideRequest as F,
25563
+ isHttps as F,
24788
25564
  GIcon as G,
24789
- _sfc_main$A as H,
24790
- loadAsideData as I,
24791
- ToolsFloat as J,
24792
- _sfc_main as K,
25565
+ asideRequest as H,
25566
+ _sfc_main$B as I,
25567
+ loadAsideData as J,
25568
+ ToolsFloat as K,
24793
25569
  LANG_ZH as L,
24794
- GitCodeAside as M,
24795
- GitCodeHeader as N,
24796
- SiteAnnouncement as O,
24797
- useLogin as P,
24798
- setLayoutConfig as Q,
25570
+ _sfc_main as M,
25571
+ GitCodeAside as N,
25572
+ GitCodeHeader as O,
25573
+ SiteAnnouncement as P,
25574
+ useLogin as Q,
24799
25575
  REPO_MODULE as R,
24800
25576
  SceneValue as S,
24801
25577
  TOPIC_TYPE as T,
24802
- GitCodeLayoutEmitter as U,
24803
- setTheme as V,
24804
- index as W,
25578
+ setLayoutConfig as U,
25579
+ GitCodeLayoutEmitter as V,
25580
+ setTheme as W,
25581
+ index as X,
24805
25582
  _export_sfc as _,
24806
25583
  i18n as a,
24807
25584
  REPO_EVENT as b,
@@ -24816,7 +25593,7 @@ export {
24816
25593
  usePageResize as k,
24817
25594
  localStorage$2 as l,
24818
25595
  isGstarRepo as m,
24819
- _sfc_main$z as n,
25596
+ _sfc_main$A as n,
24820
25597
  isIncubationRepo as o,
24821
25598
  highlightWords as p,
24822
25599
  _frEventTrack as q,
@@ -24827,6 +25604,6 @@ export {
24827
25604
  vElementExposure as v,
24828
25605
  LANG_KEY as w,
24829
25606
  getLocaleLang as x,
24830
- useLayoutConfig as y,
24831
- ThemeType as z
25607
+ slidCaptchaManager as y,
25608
+ useLayoutConfig as z
24832
25609
  };