whistle.mockbubu 2.2.6 → 2.2.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/public/js/app.js CHANGED
@@ -61,16 +61,18 @@ __webpack_require__.r(__webpack_exports__);
61
61
  /* harmony import */ var core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_9__);
62
62
  /* harmony import */ var core_js_modules_esnext_iterator_some_js__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! core-js/modules/esnext.iterator.some.js */ "./node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/modules/esnext.iterator.some.js");
63
63
  /* harmony import */ var core_js_modules_esnext_iterator_some_js__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_some_js__WEBPACK_IMPORTED_MODULE_10__);
64
- /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! vue */ "./node_modules/.pnpm/vue@2.7.14/node_modules/vue/dist/vue.runtime.esm.js");
64
+ /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! vue */ "./node_modules/.pnpm/vue@2.7.14/node_modules/vue/dist/vue.runtime.esm.js");
65
65
  /* harmony import */ var _utils_clipboard__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../utils/clipboard */ "./src/utils/clipboard.js");
66
66
  /* harmony import */ var _service__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../service */ "./src/service/index.js");
67
67
  /* harmony import */ var dayjs__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! dayjs */ "./node_modules/.pnpm/dayjs@1.11.2/node_modules/dayjs/dayjs.min.js");
68
68
  /* harmony import */ var dayjs__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(dayjs__WEBPACK_IMPORTED_MODULE_13__);
69
69
  /* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../util */ "./src/util.js");
70
- /* harmony import */ var _utils_cache_manager__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../utils/cache-manager */ "./src/utils/cache-manager.js");
71
- /* harmony import */ var _content_RequestList_vue__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ./content/RequestList.vue */ "./src/components/content/RequestList.vue");
72
- /* harmony import */ var _header_ActionPanel_vue__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./header/ActionPanel.vue */ "./src/components/header/ActionPanel.vue");
73
- /* harmony import */ var _content_RequestDetail_vue__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./content/RequestDetail.vue */ "./src/components/content/RequestDetail.vue");
70
+ /* harmony import */ var _utils_constants__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../utils/constants */ "./src/utils/constants.js");
71
+ /* harmony import */ var _utils_cache_manager__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../utils/cache-manager */ "./src/utils/cache-manager.js");
72
+ /* harmony import */ var _content_RequestList_vue__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! ./content/RequestList.vue */ "./src/components/content/RequestList.vue");
73
+ /* harmony import */ var _header_ActionPanel_vue__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! ./header/ActionPanel.vue */ "./src/components/header/ActionPanel.vue");
74
+ /* harmony import */ var _content_RequestDetail_vue__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! ./content/RequestDetail.vue */ "./src/components/content/RequestDetail.vue");
75
+
74
76
 
75
77
 
76
78
 
@@ -97,10 +99,10 @@ const __default__ = {
97
99
  };
98
100
  /* harmony default export */ __webpack_exports__["default"] = (/*#__PURE__*/Object.assign(__default__, {
99
101
  setup(__props) {
100
- const requestDetailRef = (0,vue__WEBPACK_IMPORTED_MODULE_19__.ref)(null);
101
- const requestListRef = (0,vue__WEBPACK_IMPORTED_MODULE_19__.ref)(null);
102
- const actionPanelRef = (0,vue__WEBPACK_IMPORTED_MODULE_19__.ref)(null);
103
- const searchParam = (0,vue__WEBPACK_IMPORTED_MODULE_19__.reactive)({
102
+ const requestDetailRef = (0,vue__WEBPACK_IMPORTED_MODULE_20__.ref)(null);
103
+ const requestListRef = (0,vue__WEBPACK_IMPORTED_MODULE_20__.ref)(null);
104
+ const actionPanelRef = (0,vue__WEBPACK_IMPORTED_MODULE_20__.ref)(null);
105
+ const searchParam = (0,vue__WEBPACK_IMPORTED_MODULE_20__.reactive)({
104
106
  name: '',
105
107
  rule: '',
106
108
  range: 'all',
@@ -110,14 +112,14 @@ const __default__ = {
110
112
 
111
113
  // ✅ 新架构:分离两个列表
112
114
  // savedList: 已保存文件列表(固定在顶部,不受2000条限制)
113
- const savedList = (0,vue__WEBPACK_IMPORTED_MODULE_19__.ref)([]);
115
+ const savedList = (0,vue__WEBPACK_IMPORTED_MODULE_20__.ref)([]);
114
116
  // cachedList: 未保存数据列表(轮询追加,有2000条限制)
115
- const cachedList = (0,vue__WEBPACK_IMPORTED_MODULE_19__.ref)([]);
117
+ const cachedList = (0,vue__WEBPACK_IMPORTED_MODULE_20__.ref)([]);
116
118
  // requestList: 合并后的展示列表 [...savedList, ...cachedList]
117
- const requestList = (0,vue__WEBPACK_IMPORTED_MODULE_19__.ref)([]);
119
+ const requestList = (0,vue__WEBPACK_IMPORTED_MODULE_20__.ref)([]);
118
120
 
119
121
  // 筛选后的列表(用于前端展示)
120
- const filteredList = (0,vue__WEBPACK_IMPORTED_MODULE_19__.computed)(() => {
122
+ const filteredList = (0,vue__WEBPACK_IMPORTED_MODULE_20__.computed)(() => {
121
123
  let list = requestList.value;
122
124
 
123
125
  // 1. 按搜索文本筛选(模糊匹配 URL)
@@ -150,22 +152,22 @@ const __default__ = {
150
152
  }
151
153
  return list;
152
154
  });
153
- const activeRules = (0,vue__WEBPACK_IMPORTED_MODULE_19__.ref)([{
155
+ const activeRules = (0,vue__WEBPACK_IMPORTED_MODULE_20__.ref)([{
154
156
  name: 'All',
155
157
  value: ''
156
158
  }]); // whistle 激活的 mockbubu 规则列表
157
- const currentRow = (0,vue__WEBPACK_IMPORTED_MODULE_19__.ref)(null);
158
- const selectedRows = (0,vue__WEBPACK_IMPORTED_MODULE_19__.ref)([]); // 批量选中的行
159
+ const currentRow = (0,vue__WEBPACK_IMPORTED_MODULE_20__.ref)(null);
160
+ const selectedRows = (0,vue__WEBPACK_IMPORTED_MODULE_20__.ref)([]); // 批量选中的行
159
161
 
160
162
  // 备注编辑弹窗状态
161
- const remarkDialogVisible = (0,vue__WEBPACK_IMPORTED_MODULE_19__.ref)(false);
162
- const remarkDraft = (0,vue__WEBPACK_IMPORTED_MODULE_19__.ref)('');
163
- const remarkSaving = (0,vue__WEBPACK_IMPORTED_MODULE_19__.ref)(false);
164
- const remarkEditingName = (0,vue__WEBPACK_IMPORTED_MODULE_19__.ref)('');
163
+ const remarkDialogVisible = (0,vue__WEBPACK_IMPORTED_MODULE_20__.ref)(false);
164
+ const remarkDraft = (0,vue__WEBPACK_IMPORTED_MODULE_20__.ref)('');
165
+ const remarkSaving = (0,vue__WEBPACK_IMPORTED_MODULE_20__.ref)(false);
166
+ const remarkEditingName = (0,vue__WEBPACK_IMPORTED_MODULE_20__.ref)('');
165
167
  let remarkEditingRow = null;
166
168
 
167
169
  // 插件启用状态(由 ActionPanel emit 更新)
168
- const isPluginEnabled = (0,vue__WEBPACK_IMPORTED_MODULE_19__.ref)(true);
170
+ const isPluginEnabled = (0,vue__WEBPACK_IMPORTED_MODULE_20__.ref)(true);
169
171
  const handlePluginEnabledChange = enabled => {
170
172
  isPluginEnabled.value = enabled;
171
173
  if (!enabled) {
@@ -182,8 +184,8 @@ const __default__ = {
182
184
 
183
185
  // 悬浮模式状态
184
186
  const FLOATING_WIDTH_THRESHOLD = 800; // 宽度阈值(px):低于此值自动切换为悬浮模式
185
- const isFloatingMode = (0,vue__WEBPACK_IMPORTED_MODULE_19__.ref)(false);
186
- const drawerVisible = (0,vue__WEBPACK_IMPORTED_MODULE_19__.ref)(false);
187
+ const isFloatingMode = (0,vue__WEBPACK_IMPORTED_MODULE_20__.ref)(false);
188
+ const drawerVisible = (0,vue__WEBPACK_IMPORTED_MODULE_20__.ref)(false);
187
189
  const toggleFloatingMode = () => {
188
190
  isFloatingMode.value = !isFloatingMode.value;
189
191
  drawerVisible.value = false;
@@ -207,7 +209,6 @@ const __default__ = {
207
209
  let parentResizeHandler = null;
208
210
  const initResizeObserver = () => {
209
211
  const apply = width => {
210
- console.log('[MockContainer] 浏览器视口宽度:', width, '悬浮模式:', width < FLOATING_WIDTH_THRESHOLD);
211
212
  isFloatingMode.value = width < FLOATING_WIDTH_THRESHOLD;
212
213
  };
213
214
  apply(getBrowserViewportWidth());
@@ -370,7 +371,7 @@ const __default__ = {
370
371
  savedFilesLoaded = true;
371
372
 
372
373
  // 选中第一行
373
- (0,vue__WEBPACK_IMPORTED_MODULE_19__.nextTick)(() => {
374
+ (0,vue__WEBPACK_IMPORTED_MODULE_20__.nextTick)(() => {
374
375
  changeCurrentRow();
375
376
  });
376
377
  } else {
@@ -444,7 +445,7 @@ const __default__ = {
444
445
  cachedList.value.push(...newCachedItems);
445
446
 
446
447
  // 加入 cacheManager(供后续操作使用,如保存、编辑)
447
- _utils_cache_manager__WEBPACK_IMPORTED_MODULE_15__["default"].addBatch(filteredData);
448
+ _utils_cache_manager__WEBPACK_IMPORTED_MODULE_16__["default"].addBatch(filteredData);
448
449
 
449
450
  // 只追加新数据到 requestList 末尾,避免重新赋值导致视口跳动
450
451
  requestList.value.push(...newCachedItems);
@@ -481,18 +482,18 @@ const __default__ = {
481
482
  currentRow.value = row;
482
483
 
483
484
  // 使用 nextTick 确保 DOM 更新后再设置高亮
484
- (0,vue__WEBPACK_IMPORTED_MODULE_19__.nextTick)(() => {
485
+ (0,vue__WEBPACK_IMPORTED_MODULE_20__.nextTick)(() => {
485
486
  if (requestListRef.value?.tableRef) {
486
487
  // 先清除所有高亮,再设置新的高亮,避免多个高亮同时存在
487
488
  requestListRef.value.tableRef.setCurrentRow(null);
488
- (0,vue__WEBPACK_IMPORTED_MODULE_19__.nextTick)(() => {
489
+ (0,vue__WEBPACK_IMPORTED_MODULE_20__.nextTick)(() => {
489
490
  requestListRef.value.tableRef.setCurrentRow(row);
490
491
  });
491
492
  }
492
493
  });
493
494
  };
494
495
  const changeCurrentRow = () => {
495
- (0,vue__WEBPACK_IMPORTED_MODULE_19__.nextTick)(() => {
496
+ (0,vue__WEBPACK_IMPORTED_MODULE_20__.nextTick)(() => {
496
497
  let newCurrentRow = filteredList.value[0];
497
498
  if (currentRow.value) {
498
499
  newCurrentRow = filteredList.value.find(item => currentRow.value.name === item.name);
@@ -503,10 +504,10 @@ const __default__ = {
503
504
  // 同一行(rowKey 相同)时只同步表格高亮,不重置 currentRow
504
505
  // 避免 visibilitychange 刷新列表后触发右侧编辑区重新加载
505
506
  if (newCurrentRow && currentRow.value && newCurrentRow.rowKey === currentRow.value.rowKey) {
506
- (0,vue__WEBPACK_IMPORTED_MODULE_19__.nextTick)(() => {
507
+ (0,vue__WEBPACK_IMPORTED_MODULE_20__.nextTick)(() => {
507
508
  if (requestListRef.value?.tableRef) {
508
509
  requestListRef.value.tableRef.setCurrentRow(null);
509
- (0,vue__WEBPACK_IMPORTED_MODULE_19__.nextTick)(() => requestListRef.value.tableRef.setCurrentRow(newCurrentRow));
510
+ (0,vue__WEBPACK_IMPORTED_MODULE_20__.nextTick)(() => requestListRef.value.tableRef.setCurrentRow(newCurrentRow));
510
511
  }
511
512
  });
512
513
  return;
@@ -630,7 +631,7 @@ const __default__ = {
630
631
  savedList.value.push(row);
631
632
 
632
633
  // 从 cacheManager 移除
633
- _utils_cache_manager__WEBPACK_IMPORTED_MODULE_15__["default"].remove(url);
634
+ _utils_cache_manager__WEBPACK_IMPORTED_MODULE_16__["default"].remove(url);
634
635
  } else {
635
636
  console.warn('[MockContainer] 未在 cachedList 中找到 url:', url);
636
637
  }
@@ -678,7 +679,7 @@ const __default__ = {
678
679
  }
679
680
 
680
681
  // 从缓存中删除(已保存)
681
- _utils_cache_manager__WEBPACK_IMPORTED_MODULE_15__["default"].remove(row.url);
682
+ _utils_cache_manager__WEBPACK_IMPORTED_MODULE_16__["default"].remove(row.url);
682
683
  // 删除 session 字段,标记为已保存
683
684
  delete row.session;
684
685
 
@@ -760,7 +761,7 @@ const __default__ = {
760
761
  rowKey: `file-${savedFile.id}`
761
762
  });
762
763
  }
763
- _utils_cache_manager__WEBPACK_IMPORTED_MODULE_15__["default"].remove(row.url);
764
+ _utils_cache_manager__WEBPACK_IMPORTED_MODULE_16__["default"].remove(row.url);
764
765
  delete row.session;
765
766
  const cacheIndex = cachedList.value.findIndex(item => item.url === row.url);
766
767
  if (cacheIndex !== -1) {
@@ -871,7 +872,7 @@ const __default__ = {
871
872
  }
872
873
 
873
874
  // 从缓存中删除(已保存)
874
- _utils_cache_manager__WEBPACK_IMPORTED_MODULE_15__["default"].remove(row.url);
875
+ _utils_cache_manager__WEBPACK_IMPORTED_MODULE_16__["default"].remove(row.url);
875
876
  // 删除 session 字段,标记为已保存
876
877
  delete row.session;
877
878
 
@@ -954,7 +955,7 @@ const __default__ = {
954
955
  cachedList.value.splice(cachedIndex, 1);
955
956
  }
956
957
  // 从 cacheManager 删除
957
- _utils_cache_manager__WEBPACK_IMPORTED_MODULE_15__["default"].remove(row.url);
958
+ _utils_cache_manager__WEBPACK_IMPORTED_MODULE_16__["default"].remove(row.url);
958
959
  // 从 requestList 删除(用 URL 匹配)
959
960
  const requestIndex = requestList.value.findIndex(item => item.url === row.url);
960
961
  if (requestIndex !== -1) {
@@ -992,7 +993,7 @@ const __default__ = {
992
993
  }
993
994
 
994
995
  // 1. 切换 CacheManager 组(清空缓存)
995
- _utils_cache_manager__WEBPACK_IMPORTED_MODULE_15__["default"].switchGroup(newGroupId);
996
+ _utils_cache_manager__WEBPACK_IMPORTED_MODULE_16__["default"].switchGroup(newGroupId);
996
997
 
997
998
  // 2. 清空前端列表
998
999
  savedList.value = [];
@@ -1008,7 +1009,7 @@ const __default__ = {
1008
1009
  try {
1009
1010
  const groupsRes = await (0,_service__WEBPACK_IMPORTED_MODULE_12__.getGroups)();
1010
1011
  if (groupsRes.code === 200 && groupsRes.data.currentGroupId) {
1011
- _utils_cache_manager__WEBPACK_IMPORTED_MODULE_15__["default"].setCurrentGroupId(groupsRes.data.currentGroupId);
1012
+ _utils_cache_manager__WEBPACK_IMPORTED_MODULE_16__["default"].setCurrentGroupId(groupsRes.data.currentGroupId);
1012
1013
  }
1013
1014
  } catch (err) {
1014
1015
  console.error('[MockContainer] 获取当前组ID失败:', err);
@@ -1094,7 +1095,7 @@ const __default__ = {
1094
1095
  // 通过 id 字段判断是否已保存
1095
1096
 
1096
1097
  // 从缓存中删除
1097
- _utils_cache_manager__WEBPACK_IMPORTED_MODULE_15__["default"].remove(row.url);
1098
+ _utils_cache_manager__WEBPACK_IMPORTED_MODULE_16__["default"].remove(row.url);
1098
1099
 
1099
1100
  // 从 cachedList 移到 savedList
1100
1101
  const cacheIndex = cachedList.value.findIndex(item => item.url === row.url);
@@ -1212,7 +1213,7 @@ const __default__ = {
1212
1213
  }
1213
1214
 
1214
1215
  // 从 cacheManager 删除
1215
- _utils_cache_manager__WEBPACK_IMPORTED_MODULE_15__["default"].remove(row.url);
1216
+ _utils_cache_manager__WEBPACK_IMPORTED_MODULE_16__["default"].remove(row.url);
1216
1217
  totalDeleted++;
1217
1218
  });
1218
1219
  }
@@ -1316,7 +1317,7 @@ const __default__ = {
1316
1317
  // 通过 id 字段判断是否已保存
1317
1318
 
1318
1319
  // 从缓存中删除
1319
- _utils_cache_manager__WEBPACK_IMPORTED_MODULE_15__["default"].remove(row.url);
1320
+ _utils_cache_manager__WEBPACK_IMPORTED_MODULE_16__["default"].remove(row.url);
1320
1321
 
1321
1322
  // 从 cachedList 移到 savedList
1322
1323
  const cacheIndex = cachedList.value.findIndex(item => item.url === row.url);
@@ -1336,7 +1337,7 @@ const __default__ = {
1336
1337
  element_ui_lib_message__WEBPACK_IMPORTED_MODULE_4___default().error('批量保存失败: ' + (err.message || '未知错误'));
1337
1338
  }
1338
1339
  };
1339
- (0,vue__WEBPACK_IMPORTED_MODULE_19__.watch)(currentRow, val => {
1340
+ (0,vue__WEBPACK_IMPORTED_MODULE_20__.watch)(currentRow, val => {
1340
1341
  if (val && val.id) {
1341
1342
  // 已保存文件:按需加载完整数据(含 query/payload/headers)
1342
1343
  getCurrentRowData(val);
@@ -1346,12 +1347,12 @@ const __default__ = {
1346
1347
  val.query = extractQueryFromSession(val.session);
1347
1348
  }
1348
1349
  });
1349
- (0,vue__WEBPACK_IMPORTED_MODULE_19__.onMounted)(async () => {
1350
+ (0,vue__WEBPACK_IMPORTED_MODULE_20__.onMounted)(async () => {
1350
1351
  // 0. 初始化当前组ID(从后端获取)
1351
1352
  try {
1352
1353
  const groupsRes = await (0,_service__WEBPACK_IMPORTED_MODULE_12__.getGroups)();
1353
1354
  if (groupsRes.code === 200 && groupsRes.data.currentGroupId) {
1354
- _utils_cache_manager__WEBPACK_IMPORTED_MODULE_15__["default"].setCurrentGroupId(groupsRes.data.currentGroupId);
1355
+ _utils_cache_manager__WEBPACK_IMPORTED_MODULE_16__["default"].setCurrentGroupId(groupsRes.data.currentGroupId);
1355
1356
  }
1356
1357
  } catch (err) {
1357
1358
  console.error('[MockContainer] 获取当前组ID失败:', err);
@@ -1373,7 +1374,7 @@ const __default__ = {
1373
1374
  // 5. 监听面板实际可见宽度(frameElement 在父页面中的渲染尺寸)
1374
1375
  initResizeObserver();
1375
1376
  });
1376
- (0,vue__WEBPACK_IMPORTED_MODULE_19__.onBeforeUnmount)(() => {
1377
+ (0,vue__WEBPACK_IMPORTED_MODULE_20__.onBeforeUnmount)(() => {
1377
1378
  document.removeEventListener('visibilitychange', visibleChange);
1378
1379
  if (intervalId) {
1379
1380
  clearInterval(intervalId);
@@ -1441,10 +1442,11 @@ const __default__ = {
1441
1442
  handleBatchUpdateMock,
1442
1443
  handleBatchDeleteSelected,
1443
1444
  handleBatchSave,
1444
- cacheManager: _utils_cache_manager__WEBPACK_IMPORTED_MODULE_15__["default"],
1445
- RequestList: _content_RequestList_vue__WEBPACK_IMPORTED_MODULE_16__["default"],
1446
- ActionPanel: _header_ActionPanel_vue__WEBPACK_IMPORTED_MODULE_17__["default"],
1447
- RequestDetail: _content_RequestDetail_vue__WEBPACK_IMPORTED_MODULE_18__["default"]
1445
+ TOOLTIP_DELAY: _utils_constants__WEBPACK_IMPORTED_MODULE_15__.TOOLTIP_DELAY,
1446
+ cacheManager: _utils_cache_manager__WEBPACK_IMPORTED_MODULE_16__["default"],
1447
+ RequestList: _content_RequestList_vue__WEBPACK_IMPORTED_MODULE_17__["default"],
1448
+ ActionPanel: _header_ActionPanel_vue__WEBPACK_IMPORTED_MODULE_18__["default"],
1449
+ RequestDetail: _content_RequestDetail_vue__WEBPACK_IMPORTED_MODULE_19__["default"]
1448
1450
  };
1449
1451
  }
1450
1452
  }));
@@ -1464,8 +1466,10 @@ __webpack_require__.r(__webpack_exports__);
1464
1466
  /* harmony import */ var core_js_modules_esnext_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/esnext.iterator.for-each.js */ "./node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/modules/esnext.iterator.for-each.js");
1465
1467
  /* harmony import */ var core_js_modules_esnext_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_1__);
1466
1468
  /* harmony import */ var monaco_editor__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! monaco-editor */ "include-loader!./node_modules/.pnpm/monaco-editor@0.55.1/node_modules/monaco-editor/esm/vs/editor/editor.main.js");
1467
- /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vue */ "./node_modules/.pnpm/vue@2.7.14/node_modules/vue/dist/vue.runtime.esm.js");
1469
+ /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! vue */ "./node_modules/.pnpm/vue@2.7.14/node_modules/vue/dist/vue.runtime.esm.js");
1468
1470
  /* harmony import */ var _utils_monaco_previews__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../utils/monaco-previews */ "./src/utils/monaco-previews.js");
1471
+ /* harmony import */ var _utils_monaco_fast_paste__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../utils/monaco-fast-paste */ "./src/utils/monaco-fast-paste.js");
1472
+
1469
1473
 
1470
1474
 
1471
1475
 
@@ -1505,16 +1509,18 @@ const __default__ = {
1505
1509
  function getMonacoTheme() {
1506
1510
  return document.documentElement.getAttribute('data-theme') === 'dark' ? 'vs-dark' : 'vs';
1507
1511
  }
1508
- const monacoRef = (0,vue__WEBPACK_IMPORTED_MODULE_4__.ref)(null);
1509
- const monacoInstance = (0,vue__WEBPACK_IMPORTED_MODULE_4__.ref)(null);
1510
- const error = (0,vue__WEBPACK_IMPORTED_MODULE_4__.ref)(false);
1511
- const internalChange = (0,vue__WEBPACK_IMPORTED_MODULE_4__.ref)(false);
1512
- const showScrollTop = (0,vue__WEBPACK_IMPORTED_MODULE_4__.ref)(false);
1513
- const scrollTimer = (0,vue__WEBPACK_IMPORTED_MODULE_4__.ref)(null);
1514
- const isButtonHovered = (0,vue__WEBPACK_IMPORTED_MODULE_4__.ref)(false);
1515
- const lastScrollTime = (0,vue__WEBPACK_IMPORTED_MODULE_4__.ref)(0);
1512
+ const monacoRef = (0,vue__WEBPACK_IMPORTED_MODULE_5__.ref)(null);
1513
+ const monacoInstance = (0,vue__WEBPACK_IMPORTED_MODULE_5__.ref)(null);
1514
+ const error = (0,vue__WEBPACK_IMPORTED_MODULE_5__.ref)(false);
1515
+ const internalChange = (0,vue__WEBPACK_IMPORTED_MODULE_5__.ref)(false);
1516
+ const showScrollTop = (0,vue__WEBPACK_IMPORTED_MODULE_5__.ref)(false);
1517
+ const scrollTimer = (0,vue__WEBPACK_IMPORTED_MODULE_5__.ref)(null);
1518
+ const isButtonHovered = (0,vue__WEBPACK_IMPORTED_MODULE_5__.ref)(false);
1519
+ const lastScrollTime = (0,vue__WEBPACK_IMPORTED_MODULE_5__.ref)(0);
1516
1520
  let previewTimer = null;
1517
1521
  let themeObserver = null;
1522
+ let contentChangeTimer = null;
1523
+ let fastPasteHandle = null;
1518
1524
  function applyPreviews(editorInstance) {
1519
1525
  if (!editorInstance) return;
1520
1526
  if (previewTimer) clearTimeout(previewTimer);
@@ -1562,23 +1568,51 @@ const __default__ = {
1562
1568
  enabled: 'on'
1563
1569
  }
1564
1570
  });
1565
- monacoInstance.value.onDidChangeModelContent(() => {
1566
- if (internalChange.value) return;
1567
- const raw = monacoInstance.value.getValue();
1568
- try {
1569
- const jsonData = JSON.parse(raw);
1570
- error.value = false;
1571
- internalChange.value = true;
1572
- emit('json-change', jsonData);
1573
- emit('input', jsonData);
1574
- (0,vue__WEBPACK_IMPORTED_MODULE_4__.nextTick)(() => {
1575
- internalChange.value = false;
1576
- });
1577
- } catch (e) {
1578
- error.value = true;
1579
- emit('has-error', e);
1571
+
1572
+ // ─── 安装大内容快速粘贴优化(独立模块) ─────────────────────────────────────
1573
+ fastPasteHandle = (0,_utils_monaco_fast_paste__WEBPACK_IMPORTED_MODULE_4__.installFastPaste)(monacoInstance.value, {
1574
+ isReadOnly: () => props.readOnly,
1575
+ onContentChange: raw => {
1576
+ try {
1577
+ const jsonData = JSON.parse(raw);
1578
+ error.value = false;
1579
+ internalChange.value = true;
1580
+ emit('json-change', jsonData);
1581
+ emit('input', jsonData);
1582
+ (0,vue__WEBPACK_IMPORTED_MODULE_5__.nextTick)(() => {
1583
+ internalChange.value = false;
1584
+ });
1585
+ } catch (err) {
1586
+ error.value = true;
1587
+ emit('has-error', err);
1588
+ }
1589
+ applyPreviews(monacoInstance.value);
1580
1590
  }
1581
- applyPreviews(monacoInstance.value);
1591
+ });
1592
+
1593
+ // ─── 常规内容变更处理 ────────────────────────────────────────────────────────
1594
+ monacoInstance.value.onDidChangeModelContent(() => {
1595
+ if (internalChange.value || fastPasteHandle?.isPasting) return;
1596
+ // 防抖:避免连续编辑时频繁触发 JSON.parse + Vue 响应式更新
1597
+ if (contentChangeTimer) clearTimeout(contentChangeTimer);
1598
+ contentChangeTimer = setTimeout(() => {
1599
+ if (!monacoInstance.value) return;
1600
+ const raw = monacoInstance.value.getValue();
1601
+ try {
1602
+ const jsonData = JSON.parse(raw);
1603
+ error.value = false;
1604
+ internalChange.value = true;
1605
+ emit('json-change', jsonData);
1606
+ emit('input', jsonData);
1607
+ (0,vue__WEBPACK_IMPORTED_MODULE_5__.nextTick)(() => {
1608
+ internalChange.value = false;
1609
+ });
1610
+ } catch (e) {
1611
+ error.value = true;
1612
+ emit('has-error', e);
1613
+ }
1614
+ applyPreviews(monacoInstance.value);
1615
+ }, 300);
1582
1616
  });
1583
1617
  monacoInstance.value.onDidScrollChange(() => {
1584
1618
  lastScrollTime.value = Date.now();
@@ -1606,6 +1640,11 @@ const __default__ = {
1606
1640
  themeObserver = null;
1607
1641
  }
1608
1642
  if (previewTimer) clearTimeout(previewTimer);
1643
+ if (contentChangeTimer) clearTimeout(contentChangeTimer);
1644
+ if (fastPasteHandle) {
1645
+ fastPasteHandle.dispose();
1646
+ fastPasteHandle = null;
1647
+ }
1609
1648
  if (monacoInstance.value) {
1610
1649
  (monacoInstance.value._imageWidgets || []).forEach(w => monacoInstance.value.removeContentWidget(w));
1611
1650
  if (monacoInstance.value._colorDecIds?.length) {
@@ -1678,34 +1717,32 @@ const __default__ = {
1678
1717
  });
1679
1718
 
1680
1719
  // ─── 生命周期 ─────────────────────────────────────────────
1681
- (0,vue__WEBPACK_IMPORTED_MODULE_4__.onMounted)(() => {
1720
+ (0,vue__WEBPACK_IMPORTED_MODULE_5__.onMounted)(() => {
1682
1721
  initMonaco();
1683
1722
  });
1684
- (0,vue__WEBPACK_IMPORTED_MODULE_4__.onBeforeUnmount)(() => {
1723
+ (0,vue__WEBPACK_IMPORTED_MODULE_5__.onBeforeUnmount)(() => {
1685
1724
  destroyMonaco();
1686
1725
  if (scrollTimer.value) clearTimeout(scrollTimer.value);
1687
1726
  });
1688
1727
 
1689
1728
  // ─── 监听外部 value 变化 ──────────────────────────────────
1690
- (0,vue__WEBPACK_IMPORTED_MODULE_4__.watch)(() => props.value, async val => {
1729
+ (0,vue__WEBPACK_IMPORTED_MODULE_5__.watch)(() => props.value, async val => {
1691
1730
  if (internalChange.value) return;
1692
1731
  if (monacoInstance.value) {
1693
1732
  const str = valueToString(val);
1694
1733
  if (str !== monacoInstance.value.getValue()) {
1695
1734
  internalChange.value = true;
1696
1735
  monacoInstance.value.setValue(str);
1697
- await (0,vue__WEBPACK_IMPORTED_MODULE_4__.nextTick)();
1736
+ await (0,vue__WEBPACK_IMPORTED_MODULE_5__.nextTick)();
1698
1737
  internalChange.value = false;
1699
1738
  applyPreviews(monacoInstance.value);
1700
1739
  }
1701
1740
  error.value = false;
1702
1741
  }
1703
- }, {
1704
- deep: true
1705
1742
  });
1706
1743
 
1707
1744
  // 只读状态变化时动态更新
1708
- (0,vue__WEBPACK_IMPORTED_MODULE_4__.watch)(() => props.readOnly, val => {
1745
+ (0,vue__WEBPACK_IMPORTED_MODULE_5__.watch)(() => props.readOnly, val => {
1709
1746
  monacoInstance.value?.updateOptions({
1710
1747
  readOnly: val
1711
1748
  });
@@ -1725,6 +1762,8 @@ const __default__ = {
1725
1762
  lastScrollTime,
1726
1763
  previewTimer,
1727
1764
  themeObserver,
1765
+ contentChangeTimer,
1766
+ fastPasteHandle,
1728
1767
  applyPreviews,
1729
1768
  localeMap,
1730
1769
  valueToString,
@@ -1852,8 +1891,7 @@ const __default__ = {
1852
1891
  function validateRegex(operator, value) {
1853
1892
  if (operator !== 'regex' || !value) return null;
1854
1893
  try {
1855
- // eslint-disable-next-line no-new-regexp
1856
- new RegExp(value);
1894
+ RegExp(value);
1857
1895
  return null;
1858
1896
  } catch (e) {
1859
1897
  return `正则语法错误:${e.message}`;
@@ -2040,16 +2078,8 @@ const __default__ = {
2040
2078
 
2041
2079
  "use strict";
2042
2080
  __webpack_require__.r(__webpack_exports__);
2043
- /* harmony import */ var core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ "./node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/modules/esnext.iterator.constructor.js");
2044
- /* harmony import */ var core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0__);
2045
- /* harmony import */ var core_js_modules_esnext_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/esnext.iterator.for-each.js */ "./node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/modules/esnext.iterator.for-each.js");
2046
- /* harmony import */ var core_js_modules_esnext_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_1__);
2047
- /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! vue */ "./node_modules/.pnpm/vue@2.7.14/node_modules/vue/dist/vue.runtime.esm.js");
2048
- /* harmony import */ var _ResponsePanel_vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ResponsePanel.vue */ "./src/components/content/ResponsePanel.vue");
2049
- /* harmony import */ var _common_Editor_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../common/Editor.vue */ "./src/components/common/Editor.vue");
2050
-
2051
-
2052
-
2081
+ /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! vue */ "./node_modules/.pnpm/vue@2.7.14/node_modules/vue/dist/vue.runtime.esm.js");
2082
+ /* harmony import */ var _ResponsePanel_vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ResponsePanel.vue */ "./src/components/content/ResponsePanel.vue");
2053
2083
 
2054
2084
 
2055
2085
  const __default__ = {
@@ -2068,148 +2098,143 @@ const __default__ = {
2068
2098
  emit
2069
2099
  }) {
2070
2100
  const props = __props;
2071
- const responsePanelRef = (0,vue__WEBPACK_IMPORTED_MODULE_4__.ref)(null);
2072
-
2073
- // 解析 payload 为 JSON 对象供 jsoneditor 使用
2074
- const parsedPayloadData = (0,vue__WEBPACK_IMPORTED_MODULE_4__.computed)(() => {
2075
- if (!props.currentRow?.payload) {
2076
- return null;
2077
- }
2078
- const payload = props.currentRow.payload;
2079
-
2080
- // 1. 如果已经是对象,直接返回
2081
- if (typeof payload === 'object') {
2082
- // 如果是带 parsed 结构的对象
2083
- if (payload.parsed && payload.parsed.data) {
2084
- return payload.parsed.data;
2085
- }
2086
- // 如果是普通对象
2087
- return payload;
2101
+ const responsePanelRef = (0,vue__WEBPACK_IMPORTED_MODULE_1__.ref)(null);
2102
+ const handeMockVersionChange = versionName => {
2103
+ emit('handeMockVersionChange', versionName);
2104
+ };
2105
+ const handleFileSaved = data => {
2106
+ emit('fileSaved', data);
2107
+ };
2108
+ const refreshVersions = () => {
2109
+ if (responsePanelRef.value) {
2110
+ responsePanelRef.value.refreshVersions();
2088
2111
  }
2112
+ };
2113
+ expose({
2114
+ refreshVersions
2115
+ });
2116
+ return {
2117
+ __sfc: true,
2118
+ props,
2119
+ emit,
2120
+ responsePanelRef,
2121
+ handeMockVersionChange,
2122
+ handleFileSaved,
2123
+ refreshVersions,
2124
+ ResponsePanel: _ResponsePanel_vue__WEBPACK_IMPORTED_MODULE_0__["default"]
2125
+ };
2126
+ }
2127
+ }));
2089
2128
 
2090
- // 2. 如果是字符串,尝试解析
2091
- if (typeof payload === 'string') {
2092
- const result = {};
2093
-
2094
- // 2.1 尝试解析 JSON 格式
2095
- try {
2096
- const parsed = JSON.parse(payload);
2097
- if (typeof parsed === 'object' && parsed !== null) {
2098
- return parsed;
2099
- }
2100
- } catch (e) {
2101
- // 不是 JSON,继续尝试其他格式
2102
- }
2129
+ /***/ }),
2103
2130
 
2104
- // 2.2 尝试解析 multipart/form-data 格式
2105
- if (payload.includes('Content-Disposition: form-data')) {
2106
- return parseMultipartBodyToJson(payload);
2107
- }
2131
+ /***/ "./node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.12.16_webpack@5.100.1/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/content/RequestInfoDialog.vue?vue&type=script&setup=true&lang=js":
2132
+ /*!*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
2133
+ !*** ./node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.12.16_webpack@5.100.1/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/content/RequestInfoDialog.vue?vue&type=script&setup=true&lang=js ***!
2134
+ \*****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
2135
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
2108
2136
 
2109
- // 2.3 尝试解析 application/x-www-form-urlencoded 格式
2110
- if (Object.keys(result).length === 0 && payload.includes('=')) {
2111
- try {
2112
- const params = new URLSearchParams(payload);
2113
- params.forEach((value, key) => {
2114
- result[key] = value;
2115
- });
2116
- } catch (e) {
2117
- // 解析失败
2118
- }
2119
- }
2137
+ "use strict";
2138
+ __webpack_require__.r(__webpack_exports__);
2139
+ /* harmony import */ var core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ "./node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/modules/esnext.iterator.constructor.js");
2140
+ /* harmony import */ var core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0__);
2141
+ /* harmony import */ var core_js_modules_esnext_iterator_find_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/esnext.iterator.find.js */ "./node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/modules/esnext.iterator.find.js");
2142
+ /* harmony import */ var core_js_modules_esnext_iterator_find_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_find_js__WEBPACK_IMPORTED_MODULE_1__);
2143
+ /* harmony import */ var core_js_modules_esnext_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/esnext.iterator.for-each.js */ "./node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/modules/esnext.iterator.for-each.js");
2144
+ /* harmony import */ var core_js_modules_esnext_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_2__);
2145
+ /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! vue */ "./node_modules/.pnpm/vue@2.7.14/node_modules/vue/dist/vue.runtime.esm.js");
2146
+ /* harmony import */ var _common_Editor_vue__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../common/Editor.vue */ "./src/components/common/Editor.vue");
2147
+ /* harmony import */ var _service__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../service */ "./src/service/index.js");
2120
2148
 
2121
- // 如果成功解析出键值对,返回结果
2122
- if (Object.keys(result).length > 0) {
2123
- return result;
2124
- }
2125
2149
 
2126
- // 如果无法解析,返回包含原始文本的对象
2127
- console.log('%c [ parsedPayloadData 最终 ]-186', 'font-size:13px; background:purple; color:white;', '返回 { raw: payload }');
2128
- return {
2129
- raw: payload
2130
- };
2131
- }
2132
- console.log('%c [ parsedPayloadData 最终 ]-189', 'font-size:13px; background:red; color:white;', '返回 null');
2133
- return null;
2134
- });
2135
- function parseMultipartBodyToJson(rawBody) {
2136
- const result = {};
2137
2150
 
2138
- // 1. 获取 Boundary (通常是第一行)
2139
- // 注意:真实 HTTP 换行符是 \r\n,但复制粘贴可能变成 \n,这里做兼容处理
2140
- const lines = rawBody.split(/\r?\n/);
2141
- const boundary = lines[0].trim();
2142
- if (!boundary) return result;
2143
-
2144
- // 2. 使用 Boundary 切割数据
2145
- // 每一部分都会被 boundary 分隔开
2146
- const parts = rawBody.split(boundary);
2147
- parts.forEach(part => {
2148
- // 忽略空的部分(通常是开头或结尾的空字符串/换行符)
2149
- if (!part || part.trim() === '--' || part.trim() === '') return;
2150
-
2151
- // 3. 分离 Header 和 Value
2152
- // 协议规定 Header 和 Value 之间由两个换行符 (\r\n\r\n 或 \n\n) 分隔
2153
- // 我们寻找第一个空行的位置
2154
- const headerEndIndex = part.search(/\r?\n\r?\n/);
2155
- if (headerEndIndex === -1) return; // 格式不正确,跳过
2156
-
2157
- // 提取 Header 部分
2158
- const header = part.substring(0, headerEndIndex);
2159
- // 提取 Value 部分 (去掉前面的空行,并去掉末尾的换行符)
2160
- const value = part.substring(headerEndIndex).trim();
2161
-
2162
- // 4. 从 Header 中正则提取 name 字段
2163
- const nameMatch = header.match(/name="([^"]+)"/);
2164
- if (nameMatch && nameMatch[1]) {
2165
- const key = nameMatch[1];
2166
-
2167
- // 5. 存入结果对象
2168
- // 考虑到可能有同名 key (例如多选框),这里做一个简单的兼容:
2169
- // 如果 key 已存在,转为数组;如果不存在,直接赋值。
2170
- if (result[key]) {
2171
- if (Array.isArray(result[key])) {
2172
- result[key].push(value);
2173
- } else {
2174
- result[key] = [result[key], value];
2175
- }
2176
- } else {
2177
- result[key] = value;
2178
- }
2179
- }
2180
- });
2181
- return result;
2182
- }
2183
2151
 
2184
- // Tab 管理:默认选中 response,并记住用户的选择
2185
- const STORAGE_KEY = 'mockbubu_active_tab';
2186
- const activeTabName = (0,vue__WEBPACK_IMPORTED_MODULE_4__.ref)('response'); // 默认选中 Response tab
2187
2152
 
2188
- // 有效的 tab 名列表(query/payload 已合并到 overview,旧缓存需兼容)
2189
- const VALID_TABS = ['overview', 'reqHeaders', 'resHeaders', 'response'];
2190
2153
 
2191
- // localStorage 读取用户上次选择的 tab
2192
- (0,vue__WEBPACK_IMPORTED_MODULE_4__.onMounted)(() => {
2193
- const savedTab = localStorage.getItem(STORAGE_KEY);
2194
- // 若旧缓存中存了已废弃的 query/payload tab,回退到 overview
2195
- if (savedTab && VALID_TABS.includes(savedTab)) {
2196
- activeTabName.value = savedTab;
2154
+ const __default__ = {
2155
+ name: 'RequestInfoDialog'
2156
+ };
2157
+ /* harmony default export */ __webpack_exports__["default"] = (/*#__PURE__*/Object.assign(__default__, {
2158
+ props: {
2159
+ visible: {
2160
+ type: Boolean,
2161
+ default: false
2162
+ },
2163
+ row: {
2164
+ type: Object,
2165
+ default: null
2166
+ }
2167
+ },
2168
+ emits: ['update:visible'],
2169
+ setup(__props) {
2170
+ const props = __props;
2171
+ const tabs = [{
2172
+ name: 'overview',
2173
+ label: '概览'
2174
+ }, {
2175
+ name: 'reqHeaders',
2176
+ label: '请求头'
2177
+ }, {
2178
+ name: 'resHeaders',
2179
+ label: '响应头'
2180
+ }, {
2181
+ name: 'source',
2182
+ label: '原始响应'
2183
+ }];
2184
+ const activeTab = (0,vue__WEBPACK_IMPORTED_MODULE_5__.ref)('overview');
2185
+ const copied = (0,vue__WEBPACK_IMPORTED_MODULE_5__.ref)(false);
2186
+ const savedSourceData = (0,vue__WEBPACK_IMPORTED_MODULE_5__.ref)(null); // 已保存文件懒加载的 source 数据(含 body + headers)
2187
+ let copyTimer = null;
2188
+ const loadSavedSourceData = async () => {
2189
+ if (props.row?.session) return;
2190
+ if (!props.row?.id) return;
2191
+ if (savedSourceData.value !== null) return;
2192
+ const res = await (0,_service__WEBPACK_IMPORTED_MODULE_4__.getVersions)({
2193
+ fileId: props.row.id
2194
+ });
2195
+ if (res.code !== 200) return;
2196
+ const list = typeof res.data === 'string' ? JSON.parse(res.data) : res.data;
2197
+ const source = list.find(v => v.type === 'source');
2198
+ savedSourceData.value = source ?? null;
2199
+ };
2200
+ (0,vue__WEBPACK_IMPORTED_MODULE_5__.watch)(() => props.visible, val => {
2201
+ if (val) {
2202
+ activeTab.value = 'overview';
2203
+ savedSourceData.value = null;
2204
+ loadSavedSourceData();
2197
2205
  }
2198
2206
  });
2199
-
2200
- // 当用户切换 tab 时,保存到 localStorage
2201
- const handleTabClick = tab => {
2202
- localStorage.setItem(STORAGE_KEY, tab.name);
2207
+ const copyUrl = () => {
2208
+ const url = props.row?.name || fullUrl.value;
2209
+ if (!url) return;
2210
+ navigator.clipboard.writeText(url).then(() => {
2211
+ copied.value = true;
2212
+ clearTimeout(copyTimer);
2213
+ copyTimer = setTimeout(() => {
2214
+ copied.value = false;
2215
+ }, 1800);
2216
+ });
2203
2217
  };
2204
-
2205
- // fullUrl 从 url + query 重建完整 URL(含 query 参数)
2206
- // query 对于已保存文件在 session 加载后填充,对缓存数据在轮询时填充
2207
- const fullUrl = (0,vue__WEBPACK_IMPORTED_MODULE_4__.computed)(() => {
2208
- const url = props.currentRow?.url;
2209
- if (!url) return '';
2210
- const query = props.currentRow?.query;
2211
- if (!query || Object.keys(query).length === 0) return url;
2212
- return `${url}?${new URLSearchParams(query).toString()}`;
2218
+ const METHOD_COLORS = {
2219
+ get: 'is-get',
2220
+ post: 'is-post',
2221
+ put: 'is-put',
2222
+ delete: 'is-delete',
2223
+ patch: 'is-patch',
2224
+ head: 'is-head',
2225
+ options: 'is-options'
2226
+ };
2227
+ const methodClass = (0,vue__WEBPACK_IMPORTED_MODULE_5__.computed)(() => {
2228
+ const m = (props.row?.method || 'get').toLowerCase();
2229
+ return METHOD_COLORS[m] || 'is-get';
2230
+ });
2231
+ const statusClass = (0,vue__WEBPACK_IMPORTED_MODULE_5__.computed)(() => {
2232
+ const s = props.row?.status;
2233
+ if (!s) return '';
2234
+ if (s >= 200 && s < 300) return 'is-2xx';
2235
+ if (s >= 300 && s < 400) return 'is-3xx';
2236
+ if (s >= 400 && s < 500) return 'is-4xx';
2237
+ return 'is-5xx';
2213
2238
  });
2214
2239
  const overviewItems = [{
2215
2240
  key: 'id',
@@ -2217,9 +2242,6 @@ const __default__ = {
2217
2242
  }, {
2218
2243
  key: 'method',
2219
2244
  label: 'Method'
2220
- }, {
2221
- key: 'ruleValue',
2222
- label: 'Mock Mode'
2223
2245
  }, {
2224
2246
  key: 'status',
2225
2247
  label: 'Status'
@@ -2228,52 +2250,91 @@ const __default__ = {
2228
2250
  label: 'Filename'
2229
2251
  }, {
2230
2252
  key: 'url',
2231
- label: 'Url'
2232
- }, {
2233
- key: 'rule',
2234
- label: 'Rule'
2253
+ label: 'URL'
2235
2254
  }, {
2236
2255
  key: 'date',
2237
2256
  label: 'Date'
2238
- }, {
2239
- key: 'mockTime',
2240
- label: 'Mock Date'
2241
2257
  }];
2242
- const handeMockVersionChange = versionName => {
2243
- emit('handeMockVersionChange', versionName);
2244
- };
2245
-
2246
- // 处理文件保存事件(从 ResponsePanel 传递上来)
2247
- const handleFileSaved = data => {
2248
- emit('fileSaved', data);
2249
- };
2250
-
2251
- // 暴露刷新版本列表的方法
2252
- const refreshVersions = () => {
2253
- if (responsePanelRef.value) {
2254
- responsePanelRef.value.refreshVersions();
2258
+ const fullUrl = (0,vue__WEBPACK_IMPORTED_MODULE_5__.computed)(() => {
2259
+ const url = props.row?.url;
2260
+ if (!url) return '';
2261
+ const query = props.row?.query;
2262
+ if (!query || Object.keys(query).length === 0) return url;
2263
+ return `${url}?${new URLSearchParams(query).toString()}`;
2264
+ });
2265
+ const parsedPayload = (0,vue__WEBPACK_IMPORTED_MODULE_5__.computed)(() => {
2266
+ const payload = props.row?.payload;
2267
+ if (!payload) return null;
2268
+ if (typeof payload === 'object') {
2269
+ if (payload.parsed?.data) return payload.parsed.data;
2270
+ return payload;
2255
2271
  }
2256
- };
2257
- expose({
2258
- refreshVersions
2272
+ if (typeof payload === 'string') {
2273
+ try {
2274
+ const parsed = JSON.parse(payload);
2275
+ if (typeof parsed === 'object' && parsed !== null) return parsed;
2276
+ } catch (e) {/* ignore */}
2277
+ if (payload.includes('=')) {
2278
+ try {
2279
+ const result = {};
2280
+ new URLSearchParams(payload).forEach((v, k) => {
2281
+ result[k] = v;
2282
+ });
2283
+ if (Object.keys(result).length > 0) return result;
2284
+ } catch (e) {/* ignore */}
2285
+ }
2286
+ return {
2287
+ raw: payload
2288
+ };
2289
+ }
2290
+ return null;
2291
+ });
2292
+ const sourceContent = (0,vue__WEBPACK_IMPORTED_MODULE_5__.computed)(() => {
2293
+ const session = props.row?.session;
2294
+ if (session?.res) {
2295
+ const body = session.res.body;
2296
+ if (!body) return null;
2297
+ if (typeof body === 'object') return body;
2298
+ if (typeof body === 'string') {
2299
+ try {
2300
+ return JSON.parse(body);
2301
+ } catch (e) {
2302
+ return {
2303
+ raw: body
2304
+ };
2305
+ }
2306
+ }
2307
+ return null;
2308
+ }
2309
+ return savedSourceData.value?.content ?? null;
2310
+ });
2311
+ const reqHeaders = (0,vue__WEBPACK_IMPORTED_MODULE_5__.computed)(() => {
2312
+ if (props.row?.session) return props.row.session?.req?.headers || {};
2313
+ return savedSourceData.value?.reqHeaders || {};
2314
+ });
2315
+ const resHeaders = (0,vue__WEBPACK_IMPORTED_MODULE_5__.computed)(() => {
2316
+ if (props.row?.session) return props.row.session?.res?.headers || {};
2317
+ return savedSourceData.value?.resHeaders || {};
2259
2318
  });
2260
2319
  return {
2261
2320
  __sfc: true,
2262
2321
  props,
2263
- emit,
2264
- responsePanelRef,
2265
- parsedPayloadData,
2266
- parseMultipartBodyToJson,
2267
- STORAGE_KEY,
2268
- activeTabName,
2269
- VALID_TABS,
2270
- handleTabClick,
2271
- fullUrl,
2322
+ tabs,
2323
+ activeTab,
2324
+ copied,
2325
+ savedSourceData,
2326
+ copyTimer,
2327
+ loadSavedSourceData,
2328
+ copyUrl,
2329
+ METHOD_COLORS,
2330
+ methodClass,
2331
+ statusClass,
2272
2332
  overviewItems,
2273
- handeMockVersionChange,
2274
- handleFileSaved,
2275
- refreshVersions,
2276
- ResponsePanel: _ResponsePanel_vue__WEBPACK_IMPORTED_MODULE_2__["default"],
2333
+ fullUrl,
2334
+ parsedPayload,
2335
+ sourceContent,
2336
+ reqHeaders,
2337
+ resHeaders,
2277
2338
  Editor: _common_Editor_vue__WEBPACK_IMPORTED_MODULE_3__["default"]
2278
2339
  };
2279
2340
  }
@@ -2291,9 +2352,16 @@ const __default__ = {
2291
2352
  __webpack_require__.r(__webpack_exports__);
2292
2353
  /* harmony import */ var core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! core-js/modules/esnext.iterator.constructor.js */ "./node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/modules/esnext.iterator.constructor.js");
2293
2354
  /* harmony import */ var core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_0__);
2294
- /* harmony import */ var core_js_modules_esnext_iterator_some_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/esnext.iterator.some.js */ "./node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/modules/esnext.iterator.some.js");
2295
- /* harmony import */ var core_js_modules_esnext_iterator_some_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_some_js__WEBPACK_IMPORTED_MODULE_1__);
2296
- /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! vue */ "./node_modules/.pnpm/vue@2.7.14/node_modules/vue/dist/vue.runtime.esm.js");
2355
+ /* harmony import */ var core_js_modules_esnext_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! core-js/modules/esnext.iterator.for-each.js */ "./node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/modules/esnext.iterator.for-each.js");
2356
+ /* harmony import */ var core_js_modules_esnext_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_for_each_js__WEBPACK_IMPORTED_MODULE_1__);
2357
+ /* harmony import */ var core_js_modules_esnext_iterator_some_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! core-js/modules/esnext.iterator.some.js */ "./node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/modules/esnext.iterator.some.js");
2358
+ /* harmony import */ var core_js_modules_esnext_iterator_some_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_some_js__WEBPACK_IMPORTED_MODULE_2__);
2359
+ /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! vue */ "./node_modules/.pnpm/vue@2.7.14/node_modules/vue/dist/vue.runtime.esm.js");
2360
+ /* harmony import */ var _utils_constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../utils/constants */ "./src/utils/constants.js");
2361
+ /* harmony import */ var _RequestInfoDialog_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./RequestInfoDialog.vue */ "./src/components/content/RequestInfoDialog.vue");
2362
+
2363
+
2364
+
2297
2365
 
2298
2366
 
2299
2367
 
@@ -2325,9 +2393,26 @@ const __default__ = {
2325
2393
  emit
2326
2394
  }) {
2327
2395
  const props = __props;
2396
+ const requestInfoVisible = (0,vue__WEBPACK_IMPORTED_MODULE_5__.ref)(false);
2397
+ const requestInfoRow = (0,vue__WEBPACK_IMPORTED_MODULE_5__.ref)(null);
2398
+ const instance = (0,vue__WEBPACK_IMPORTED_MODULE_5__.getCurrentInstance)();
2399
+ const closeOtherPopovers = currentIndex => {
2400
+ const refs = instance.proxy.$refs;
2401
+ Object.keys(refs).forEach(key => {
2402
+ if (key.startsWith('morePopover_') && key !== `morePopover_${currentIndex}`) {
2403
+ refs[key]?.doClose?.();
2404
+ }
2405
+ });
2406
+ };
2407
+ const openRequestInfo = (row, index) => {
2408
+ const refs = instance.proxy.$refs;
2409
+ refs[`morePopover_${index}`]?.doClose?.();
2410
+ requestInfoRow.value = row;
2411
+ requestInfoVisible.value = true;
2412
+ };
2328
2413
 
2329
2414
  // 表格 ref,需要暴露给父组件用于调用 setCurrentRow
2330
- const tableRef = (0,vue__WEBPACK_IMPORTED_MODULE_2__.ref)(null);
2415
+ const tableRef = (0,vue__WEBPACK_IMPORTED_MODULE_5__.ref)(null);
2331
2416
  const handleSelectRow = row => {
2332
2417
  emit('handleSelectRow', row);
2333
2418
  };
@@ -2369,9 +2454,9 @@ const __default__ = {
2369
2454
  const isActiveMockFile = rule => {
2370
2455
  return props.activeRules.some(item => item.value === rule);
2371
2456
  };
2372
- (0,vue__WEBPACK_IMPORTED_MODULE_2__.onMounted)(() => {
2457
+ (0,vue__WEBPACK_IMPORTED_MODULE_5__.onMounted)(() => {
2373
2458
  if (props.currentRow) {
2374
- (0,vue__WEBPACK_IMPORTED_MODULE_2__.nextTick)(() => {
2459
+ (0,vue__WEBPACK_IMPORTED_MODULE_5__.nextTick)(() => {
2375
2460
  tableRef.value?.setCurrentRow(props.currentRow);
2376
2461
  });
2377
2462
  }
@@ -2381,6 +2466,11 @@ const __default__ = {
2381
2466
  });
2382
2467
  return {
2383
2468
  __sfc: true,
2469
+ requestInfoVisible,
2470
+ requestInfoRow,
2471
+ instance,
2472
+ closeOtherPopovers,
2473
+ openRequestInfo,
2384
2474
  props,
2385
2475
  emit,
2386
2476
  tableRef,
@@ -2392,7 +2482,8 @@ const __default__ = {
2392
2482
  openRemarkEditor,
2393
2483
  handleFilenameWheel,
2394
2484
  checkSelectable,
2395
- isActiveMockFile
2485
+ isActiveMockFile,
2486
+ RequestInfoDialog: _RequestInfoDialog_vue__WEBPACK_IMPORTED_MODULE_4__["default"]
2396
2487
  };
2397
2488
  }
2398
2489
  }));
@@ -2628,6 +2719,7 @@ const __default__ = {
2628
2719
  const date = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => props.api.date);
2629
2720
  const isSourceReadonly = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => mockMode.value === 'version' && currentFile.value.type === 'source');
2630
2721
  const activeEditorContent = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => mockMode.value === 'match' ? currentMatchRule.value?.content : currentFile.value.content);
2722
+ const historyVersionCount = (0,vue__WEBPACK_IMPORTED_MODULE_12__.computed)(() => responseList.value.filter(item => item.type === 'history').length);
2631
2723
 
2632
2724
  /**
2633
2725
  * 获取 source 版本数据(仅用于未保存文件)
@@ -2792,12 +2884,10 @@ const __default__ = {
2792
2884
  // 判断是否删除的是当前选中的 tab
2793
2885
  const isDeletingCurrentTab = item.filename === currentFile.value.filename;
2794
2886
  if (isDeletingCurrentTab) {
2795
- // 如果删除当前 tab,切换到前一个 tab
2796
- // 如果当前是第一个,则切换到下一个(删除后会变成第一个)
2797
- const targetIndex = index > 0 ? index - 1 : 0;
2798
- const targetFile = responseList.value[targetIndex];
2887
+ // 优先切换到第一个剩余的 history 版本,没有 history 时才回退到 source
2888
+ const remainingHistory = responseList.value.filter(v => v.type === 'history' && v.filename !== item.filename);
2889
+ const targetFile = remainingHistory.length > 0 ? remainingHistory[0] : responseList.value.find(v => v.type === 'source');
2799
2890
  if (targetFile) {
2800
- // 先切换 tab,再删除
2801
2891
  selectFile(targetFile);
2802
2892
  }
2803
2893
  }
@@ -3175,6 +3265,7 @@ const __default__ = {
3175
3265
  element_ui_lib_message__WEBPACK_IMPORTED_MODULE_2___default().error('JSON 格式错误,请修正后再保存');
3176
3266
  return;
3177
3267
  }
3268
+ editRef.value?.format?.();
3178
3269
  updateMatchRuleHandler();
3179
3270
  return;
3180
3271
  }
@@ -3190,6 +3281,7 @@ const __default__ = {
3190
3281
  element_ui_lib_message__WEBPACK_IMPORTED_MODULE_2___default().error('JSON 格式错误,请修正后再保存');
3191
3282
  return;
3192
3283
  }
3284
+ editRef.value?.format?.();
3193
3285
  if (currentFile.value.type === 'history') {
3194
3286
  updateHistory();
3195
3287
  } else {
@@ -3223,46 +3315,6 @@ const __default__ = {
3223
3315
  element_ui_lib_message__WEBPACK_IMPORTED_MODULE_2___default().success('保存成功');
3224
3316
  };
3225
3317
 
3226
- // 格式化 JSON
3227
- const handleFormat = () => {
3228
- try {
3229
- const content = activeEditorContent.value;
3230
- if (!content) {
3231
- element_ui_lib_message__WEBPACK_IMPORTED_MODULE_2___default().warning('内容为空');
3232
- return;
3233
- }
3234
- if (editRef.value && editRef.value.format) {
3235
- editRef.value.format();
3236
- element_ui_lib_message__WEBPACK_IMPORTED_MODULE_2___default().success('格式化成功');
3237
- } else {
3238
- const formatted = JSON.parse(JSON.stringify(content));
3239
- if (mockMode.value === 'match' && currentMatchRule.value) {
3240
- currentMatchRule.value.content = formatted;
3241
- } else {
3242
- currentFile.value.content = formatted;
3243
- }
3244
- element_ui_lib_message__WEBPACK_IMPORTED_MODULE_2___default().success('格式化成功');
3245
- }
3246
- } catch (error) {
3247
- element_ui_lib_message__WEBPACK_IMPORTED_MODULE_2___default().error('格式化失败: ' + error.message);
3248
- }
3249
- };
3250
-
3251
- // 验证 JSON
3252
- const handleValidate = () => {
3253
- try {
3254
- const content = activeEditorContent.value;
3255
- if (!content) {
3256
- element_ui_lib_message__WEBPACK_IMPORTED_MODULE_2___default().warning('内容为空');
3257
- return;
3258
- }
3259
- JSON.parse(JSON.stringify(content));
3260
- element_ui_lib_message__WEBPACK_IMPORTED_MODULE_2___default().success('JSON 格式正确');
3261
- } catch (error) {
3262
- element_ui_lib_message__WEBPACK_IMPORTED_MODULE_2___default().error('JSON 格式错误: ' + error.message);
3263
- }
3264
- };
3265
-
3266
3318
  // 展开所有节点
3267
3319
  const handleExpandAll = () => {
3268
3320
  if (editRef.value && editRef.value.expandAll) {
@@ -3312,40 +3364,6 @@ const __default__ = {
3312
3364
  }
3313
3365
  };
3314
3366
 
3315
- // 全屏编辑器 - 格式化
3316
- const handleFullScreenFormat = () => {
3317
- try {
3318
- if (!fullScreenModal.content) {
3319
- element_ui_lib_message__WEBPACK_IMPORTED_MODULE_2___default().warning('内容为空');
3320
- return;
3321
- }
3322
- if (fullScreenEditorRef.value && fullScreenEditorRef.value.format) {
3323
- fullScreenEditorRef.value.format();
3324
- element_ui_lib_message__WEBPACK_IMPORTED_MODULE_2___default().success('格式化成功');
3325
- } else {
3326
- const formatted = JSON.parse(JSON.stringify(fullScreenModal.content));
3327
- fullScreenModal.content = formatted;
3328
- element_ui_lib_message__WEBPACK_IMPORTED_MODULE_2___default().success('格式化成功');
3329
- }
3330
- } catch (error) {
3331
- element_ui_lib_message__WEBPACK_IMPORTED_MODULE_2___default().error('格式化失败: ' + error.message);
3332
- }
3333
- };
3334
-
3335
- // 全屏编辑器 - 验证
3336
- const handleFullScreenValidate = () => {
3337
- try {
3338
- if (!fullScreenModal.content) {
3339
- element_ui_lib_message__WEBPACK_IMPORTED_MODULE_2___default().warning('内容为空');
3340
- return;
3341
- }
3342
- JSON.parse(JSON.stringify(fullScreenModal.content));
3343
- element_ui_lib_message__WEBPACK_IMPORTED_MODULE_2___default().success('JSON 格式正确');
3344
- } catch (error) {
3345
- element_ui_lib_message__WEBPACK_IMPORTED_MODULE_2___default().error('JSON 格式错误: ' + error.message);
3346
- }
3347
- };
3348
-
3349
3367
  // 全屏编辑器 - 展开所有
3350
3368
  const handleFullScreenExpandAll = () => {
3351
3369
  if (fullScreenEditorRef.value && fullScreenEditorRef.value.expandAll) {
@@ -3373,6 +3391,7 @@ const __default__ = {
3373
3391
  element_ui_lib_message__WEBPACK_IMPORTED_MODULE_2___default().error('JSON 格式错误,请修正后再保存');
3374
3392
  return;
3375
3393
  }
3394
+ fullScreenEditorRef.value?.format?.();
3376
3395
  const cloned = JSON.parse(JSON.stringify(fullScreenModal.content));
3377
3396
  if (mockMode.value === 'match' && currentMatchRule.value) {
3378
3397
  currentMatchRule.value.content = cloned;
@@ -3472,6 +3491,11 @@ const __default__ = {
3472
3491
  emit('changeMockVersion', targetVersion === SOURCE_VERSION_NAME ? null : targetVersion);
3473
3492
  if (props.api.id) {
3474
3493
  await getHistoryVersions(targetVersion);
3494
+ // getHistoryVersions 只设置前端状态,需要显式持久化选中版本
3495
+ (0,_service__WEBPACK_IMPORTED_MODULE_11__.setMockVersion)({
3496
+ url: props.api.name,
3497
+ versionName: targetVersion === SOURCE_VERSION_NAME ? '' : targetVersion
3498
+ });
3475
3499
  }
3476
3500
  }
3477
3501
  };
@@ -3806,6 +3830,7 @@ const __default__ = {
3806
3830
  date,
3807
3831
  isSourceReadonly,
3808
3832
  activeEditorContent,
3833
+ historyVersionCount,
3809
3834
  getSourceVersion,
3810
3835
  getHistoryVersions,
3811
3836
  onCreate,
@@ -3823,16 +3848,12 @@ const __default__ = {
3823
3848
  updateApiDataHandler,
3824
3849
  handleUpdate,
3825
3850
  updateMatchRuleHandler,
3826
- handleFormat,
3827
- handleValidate,
3828
3851
  handleExpandAll,
3829
3852
  handleCollapseAll,
3830
3853
  handleFullScreen,
3831
3854
  handleFullScreenOpened,
3832
3855
  handleFullScreenClosed,
3833
3856
  handleFullScreenChange,
3834
- handleFullScreenFormat,
3835
- handleFullScreenValidate,
3836
3857
  handleFullScreenExpandAll,
3837
3858
  handleFullScreenCollapseAll,
3838
3859
  handleFullScreenSave,
@@ -4285,14 +4306,16 @@ __webpack_require__.r(__webpack_exports__);
4285
4306
  /* harmony import */ var core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_constructor_js__WEBPACK_IMPORTED_MODULE_7__);
4286
4307
  /* harmony import */ var core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! core-js/modules/esnext.iterator.map.js */ "./node_modules/.pnpm/core-js@3.8.3/node_modules/core-js/modules/esnext.iterator.map.js");
4287
4308
  /* harmony import */ var core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_esnext_iterator_map_js__WEBPACK_IMPORTED_MODULE_8__);
4288
- /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! vue */ "./node_modules/.pnpm/vue@2.7.14/node_modules/vue/dist/vue.runtime.esm.js");
4309
+ /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! vue */ "./node_modules/.pnpm/vue@2.7.14/node_modules/vue/dist/vue.runtime.esm.js");
4289
4310
  /* harmony import */ var _utils_clipboard__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @/utils/clipboard */ "./src/utils/clipboard.js");
4290
4311
  /* harmony import */ var _service__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ../../service */ "./src/service/index.js");
4291
4312
  /* harmony import */ var _hooks_useHeader_js__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ../../hooks/useHeader.js */ "./src/hooks/useHeader.js");
4292
- /* harmony import */ var _hooks_useTheme_js__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../hooks/useTheme.js */ "./src/hooks/useTheme.js");
4293
- /* harmony import */ var _group_GroupSelector_vue__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../group/GroupSelector.vue */ "./src/components/group/GroupSelector.vue");
4294
- /* harmony import */ var _storage_StorageManager_vue__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../storage/StorageManager.vue */ "./src/components/storage/StorageManager.vue");
4295
- /* harmony import */ var _memory_MemoryMonitor_vue__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../memory/MemoryMonitor.vue */ "./src/components/memory/MemoryMonitor.vue");
4313
+ /* harmony import */ var _utils_constants__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ../../utils/constants */ "./src/utils/constants.js");
4314
+ /* harmony import */ var _hooks_useTheme_js__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ../../hooks/useTheme.js */ "./src/hooks/useTheme.js");
4315
+ /* harmony import */ var _group_GroupSelector_vue__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! ../group/GroupSelector.vue */ "./src/components/group/GroupSelector.vue");
4316
+ /* harmony import */ var _storage_StorageManager_vue__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! ../storage/StorageManager.vue */ "./src/components/storage/StorageManager.vue");
4317
+ /* harmony import */ var _memory_MemoryMonitor_vue__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! ../memory/MemoryMonitor.vue */ "./src/components/memory/MemoryMonitor.vue");
4318
+
4296
4319
 
4297
4320
 
4298
4321
 
@@ -4383,29 +4406,29 @@ const __default__ = {
4383
4406
  const {
4384
4407
  currentTheme,
4385
4408
  toggleTheme
4386
- } = (0,_hooks_useTheme_js__WEBPACK_IMPORTED_MODULE_12__.useTheme)();
4387
- const archiveInput = (0,vue__WEBPACK_IMPORTED_MODULE_16__.ref)(null);
4388
- const groupSelectorRef = (0,vue__WEBPACK_IMPORTED_MODULE_16__.ref)(null); // GroupSelector 组件引用
4409
+ } = (0,_hooks_useTheme_js__WEBPACK_IMPORTED_MODULE_13__.useTheme)();
4410
+ const archiveInput = (0,vue__WEBPACK_IMPORTED_MODULE_17__.ref)(null);
4411
+ const groupSelectorRef = (0,vue__WEBPACK_IMPORTED_MODULE_17__.ref)(null); // GroupSelector 组件引用
4389
4412
 
4390
4413
  // 插件头部栏状态
4391
- const pluginVersion = (0,vue__WEBPACK_IMPORTED_MODULE_16__.ref)('');
4392
- const pluginShortName = (0,vue__WEBPACK_IMPORTED_MODULE_16__.ref)('mockbubu');
4393
- const pluginEnabled = (0,vue__WEBPACK_IMPORTED_MODULE_16__.ref)(true);
4394
- const helpDialogVisible = (0,vue__WEBPACK_IMPORTED_MODULE_16__.ref)(false);
4395
- const morePopoverVisible = (0,vue__WEBPACK_IMPORTED_MODULE_16__.ref)(false);
4414
+ const pluginVersion = (0,vue__WEBPACK_IMPORTED_MODULE_17__.ref)('');
4415
+ const pluginShortName = (0,vue__WEBPACK_IMPORTED_MODULE_17__.ref)('mockbubu');
4416
+ const pluginEnabled = (0,vue__WEBPACK_IMPORTED_MODULE_17__.ref)(true);
4417
+ const helpDialogVisible = (0,vue__WEBPACK_IMPORTED_MODULE_17__.ref)(false);
4418
+ const morePopoverVisible = (0,vue__WEBPACK_IMPORTED_MODULE_17__.ref)(false);
4396
4419
 
4397
4420
  // 版本更新横幅
4398
- const latestVersion = (0,vue__WEBPACK_IMPORTED_MODULE_16__.ref)(null);
4399
- const updateBannerClosed = (0,vue__WEBPACK_IMPORTED_MODULE_16__.ref)(false);
4400
- const installing = (0,vue__WEBPACK_IMPORTED_MODULE_16__.ref)(false);
4401
- const updateAvailable = (0,vue__WEBPACK_IMPORTED_MODULE_16__.computed)(() => {
4421
+ const latestVersion = (0,vue__WEBPACK_IMPORTED_MODULE_17__.ref)(null);
4422
+ const updateBannerClosed = (0,vue__WEBPACK_IMPORTED_MODULE_17__.ref)(false);
4423
+ const installing = (0,vue__WEBPACK_IMPORTED_MODULE_17__.ref)(false);
4424
+ const updateAvailable = (0,vue__WEBPACK_IMPORTED_MODULE_17__.computed)(() => {
4402
4425
  if (!latestVersion.value || !pluginVersion.value) return false;
4403
4426
  const parse = v => v.split('.').map(Number);
4404
4427
  const [la, lb, lc] = parse(latestVersion.value);
4405
4428
  const [ca, cb, cc] = parse(pluginVersion.value);
4406
4429
  return la > ca || la === ca && lb > cb || la === ca && lb === cb && lc > cc;
4407
4430
  });
4408
- const updateCmd = (0,vue__WEBPACK_IMPORTED_MODULE_16__.computed)(() => `w2 install whistle.mockbubu --registry=https://registry.npmjs.org/`);
4431
+ const updateCmd = (0,vue__WEBPACK_IMPORTED_MODULE_17__.computed)(() => `w2 install whistle.mockbubu --registry=https://registry.npmjs.org/`);
4409
4432
 
4410
4433
  // 获取插件版本号
4411
4434
  const fetchPluginVersion = async () => {
@@ -4565,7 +4588,7 @@ const __default__ = {
4565
4588
  };
4566
4589
 
4567
4590
  // 存储管理
4568
- const storageManagerVisible = (0,vue__WEBPACK_IMPORTED_MODULE_16__.ref)(false);
4591
+ const storageManagerVisible = (0,vue__WEBPACK_IMPORTED_MODULE_17__.ref)(false);
4569
4592
 
4570
4593
  // 显示存储管理对话框
4571
4594
  const showStorageManager = () => {
@@ -4573,7 +4596,7 @@ const __default__ = {
4573
4596
  };
4574
4597
 
4575
4598
  // 插件工作模式(初始为 null,获取后才显示)
4576
- const pluginMode = (0,vue__WEBPACK_IMPORTED_MODULE_16__.ref)(null); // null | 'default' | 'mock-only'
4599
+ const pluginMode = (0,vue__WEBPACK_IMPORTED_MODULE_17__.ref)(null); // null | 'default' | 'mock-only'
4577
4600
 
4578
4601
  // 获取插件工作模式
4579
4602
  const fetchPluginMode = async () => {
@@ -4608,19 +4631,10 @@ const __default__ = {
4608
4631
  closeAllDialogs
4609
4632
  });
4610
4633
 
4611
- // 切换插件工作模式
4612
- const handleModeChange = async newMode => {
4613
- const oldMode = pluginMode.value; // 保存旧值,用于失败时恢复
4614
-
4615
- const modeNames = {
4616
- default: '默认模式',
4617
- 'mock-only': '仅Mock模式',
4618
- disabled: '禁用模式'
4619
- };
4620
- const loadingInstance = element_ui_lib_loading__WEBPACK_IMPORTED_MODULE_4___default().service({
4621
- fullscreen: true,
4622
- text: `正在切换到${modeNames[newMode]}...`
4623
- });
4634
+ // 切换捕获开关(true=捕获/default,false=停止捕获/mock-only)
4635
+ const handleCaptureToggle = async enabled => {
4636
+ const newMode = enabled ? 'default' : 'mock-only';
4637
+ const oldMode = pluginMode.value;
4624
4638
  try {
4625
4639
  const res = await fetch('/cgi-bin/mockbubu/set-plugin-mode', {
4626
4640
  method: 'POST',
@@ -4634,19 +4648,13 @@ const __default__ = {
4634
4648
  const data = await res.json();
4635
4649
  if (data.success) {
4636
4650
  pluginMode.value = newMode;
4637
- element_ui_lib_message__WEBPACK_IMPORTED_MODULE_6___default().success(`已切换到${modeNames[newMode]}`);
4638
4651
  } else {
4639
- // 切换失败,恢复原状态
4640
4652
  pluginMode.value = oldMode;
4641
4653
  element_ui_lib_message__WEBPACK_IMPORTED_MODULE_6___default().error('切换失败: ' + data.message);
4642
4654
  }
4643
4655
  } catch (error) {
4644
- // 切换失败,恢复原状态
4645
4656
  pluginMode.value = oldMode;
4646
- console.error('[mockbubu] 切换插件模式失败:', error);
4647
4657
  element_ui_lib_message__WEBPACK_IMPORTED_MODULE_6___default().error('切换失败: ' + error.message);
4648
- } finally {
4649
- loadingInstance.close();
4650
4658
  }
4651
4659
  };
4652
4660
 
@@ -4656,7 +4664,7 @@ const __default__ = {
4656
4664
  };
4657
4665
 
4658
4666
  // 内存监控
4659
- const memoryMonitorRef = (0,vue__WEBPACK_IMPORTED_MODULE_16__.ref)(null);
4667
+ const memoryMonitorRef = (0,vue__WEBPACK_IMPORTED_MODULE_17__.ref)(null);
4660
4668
 
4661
4669
  // 显示内存监控对话框
4662
4670
  const showMemoryMonitor = () => {
@@ -4665,43 +4673,26 @@ const __default__ = {
4665
4673
  }
4666
4674
  };
4667
4675
 
4668
- // 生效规则列表
4669
- const activeRulesList = (0,vue__WEBPACK_IMPORTED_MODULE_16__.ref)([]);
4670
-
4671
- // 获取生效规则
4672
- const fetchActiveRules = async () => {
4673
- try {
4674
- const res = await (0,_service__WEBPACK_IMPORTED_MODULE_10__.getActiveRules)();
4675
- if (res.code === 200) {
4676
- activeRulesList.value = res.data.rules || [];
4677
- }
4678
- } catch (error) {
4679
- console.error('[mockbubu] 获取生效规则失败:', error);
4680
- }
4681
- };
4682
-
4683
- // 定时刷新规则列表 & Whistle 插件状态的定时器
4684
- let rulesRefreshInterval = null;
4676
+ // 定时轮询 Whistle 插件启停状态的定时器
4677
+ let pluginStateInterval = null;
4685
4678
 
4686
- // 组件挂载时获取规则和插件状态
4687
- (0,vue__WEBPACK_IMPORTED_MODULE_16__.onMounted)(async () => {
4679
+ // 组件挂载时获取插件状态
4680
+ (0,vue__WEBPACK_IMPORTED_MODULE_17__.onMounted)(async () => {
4688
4681
  await fetchPluginVersion();
4689
4682
  fetchWhistlePluginState();
4690
- fetchActiveRules();
4691
4683
  fetchPluginMode();
4692
4684
 
4693
- // 每2秒刷新规则列表 + Whistle 插件启停状态
4694
- rulesRefreshInterval = setInterval(() => {
4695
- fetchActiveRules();
4685
+ // 每2秒刷新 Whistle 插件启停状态
4686
+ pluginStateInterval = setInterval(() => {
4696
4687
  fetchWhistlePluginState();
4697
4688
  }, 2000);
4698
4689
  });
4699
4690
 
4700
4691
  // 组件卸载时清理定时器
4701
- (0,vue__WEBPACK_IMPORTED_MODULE_16__.onUnmounted)(() => {
4702
- if (rulesRefreshInterval) {
4703
- clearInterval(rulesRefreshInterval);
4704
- rulesRefreshInterval = null;
4692
+ (0,vue__WEBPACK_IMPORTED_MODULE_17__.onUnmounted)(() => {
4693
+ if (pluginStateInterval) {
4694
+ clearInterval(pluginStateInterval);
4695
+ pluginStateInterval = null;
4705
4696
  }
4706
4697
  });
4707
4698
 
@@ -4731,22 +4722,17 @@ const __default__ = {
4731
4722
 
4732
4723
  // 处理组切换/刷新
4733
4724
  const handleGroupRefresh = payload => {
4734
- // 组切换后需要:
4735
- // 1. 通知父组件切换组(清空缓存、重置状态)
4736
- // 2. 重新加载已保存文件
4737
- // 3. 重置轮询startTime
4738
- console.log('[ActionPanel] handleGroupRefresh 收到事件:', payload);
4739
4725
  emit('handleGroupSwitch', payload);
4740
4726
  };
4741
4727
 
4742
4728
  // 导出分组对话框相关状态
4743
- const exportDialogVisible = (0,vue__WEBPACK_IMPORTED_MODULE_16__.ref)(false);
4744
- const selectedGroupIds = (0,vue__WEBPACK_IMPORTED_MODULE_16__.ref)([]);
4745
- const allGroups = (0,vue__WEBPACK_IMPORTED_MODULE_16__.ref)([]);
4746
- const currentGroupId = (0,vue__WEBPACK_IMPORTED_MODULE_16__.ref)('');
4729
+ const exportDialogVisible = (0,vue__WEBPACK_IMPORTED_MODULE_17__.ref)(false);
4730
+ const selectedGroupIds = (0,vue__WEBPACK_IMPORTED_MODULE_17__.ref)([]);
4731
+ const allGroups = (0,vue__WEBPACK_IMPORTED_MODULE_17__.ref)([]);
4732
+ const currentGroupId = (0,vue__WEBPACK_IMPORTED_MODULE_17__.ref)('');
4747
4733
 
4748
4734
  // 计算是否全选
4749
- const isAllSelected = (0,vue__WEBPACK_IMPORTED_MODULE_16__.computed)(() => {
4735
+ const isAllSelected = (0,vue__WEBPACK_IMPORTED_MODULE_17__.computed)(() => {
4750
4736
  return allGroups.value.length > 0 && selectedGroupIds.value.length === allGroups.value.length;
4751
4737
  });
4752
4738
 
@@ -4919,13 +4905,11 @@ const __default__ = {
4919
4905
  fetchPluginMode,
4920
4906
  enablePlugin,
4921
4907
  closeAllDialogs,
4922
- handleModeChange,
4908
+ handleCaptureToggle,
4923
4909
  handleStorageManagerRefresh,
4924
4910
  memoryMonitorRef,
4925
4911
  showMemoryMonitor,
4926
- activeRulesList,
4927
- fetchActiveRules,
4928
- rulesRefreshInterval,
4912
+ pluginStateInterval,
4929
4913
  searchApi,
4930
4914
  handleBatchDelete,
4931
4915
  handleBatchUpdateMock,
@@ -4943,9 +4927,10 @@ const __default__ = {
4943
4927
  confirmExport,
4944
4928
  handleImportArchive,
4945
4929
  handleArchiveUpload,
4946
- GroupSelector: _group_GroupSelector_vue__WEBPACK_IMPORTED_MODULE_13__["default"],
4947
- StorageManager: _storage_StorageManager_vue__WEBPACK_IMPORTED_MODULE_14__["default"],
4948
- MemoryMonitor: _memory_MemoryMonitor_vue__WEBPACK_IMPORTED_MODULE_15__["default"]
4930
+ TOOLTIP_DELAY: _utils_constants__WEBPACK_IMPORTED_MODULE_12__.TOOLTIP_DELAY,
4931
+ GroupSelector: _group_GroupSelector_vue__WEBPACK_IMPORTED_MODULE_14__["default"],
4932
+ StorageManager: _storage_StorageManager_vue__WEBPACK_IMPORTED_MODULE_15__["default"],
4933
+ MemoryMonitor: _memory_MemoryMonitor_vue__WEBPACK_IMPORTED_MODULE_16__["default"]
4949
4934
  };
4950
4935
  }
4951
4936
  }));
@@ -5208,7 +5193,9 @@ var render = function render() {
5208
5193
  staticClass: "mock-container__disabled-overlay"
5209
5194
  }, [_c("div", {
5210
5195
  staticClass: "mock-container__disabled-card"
5211
- }, [_vm._m(0), _c("div", {
5196
+ }, [_c("div", {
5197
+ staticClass: "mock-container__disabled-icon"
5198
+ }), _c("div", {
5212
5199
  staticClass: "mock-container__disabled-title"
5213
5200
  }, [_vm._v("插件已停用")]), _c("div", {
5214
5201
  staticClass: "mock-container__disabled-desc"
@@ -5292,7 +5279,7 @@ var render = function render() {
5292
5279
  attrs: {
5293
5280
  content: "复制 URL",
5294
5281
  placement: "top",
5295
- "open-delay": 400
5282
+ "open-delay": _setup.TOOLTIP_DELAY
5296
5283
  }
5297
5284
  }, [_c("div", {
5298
5285
  staticClass: "mock-container__current-url-copy",
@@ -5425,16 +5412,7 @@ var render = function render() {
5425
5412
  }
5426
5413
  }, [_vm._v(" 确定 ")])], 1)], 2)], 1);
5427
5414
  };
5428
- var staticRenderFns = [function () {
5429
- var _vm = this,
5430
- _c = _vm._self._c,
5431
- _setup = _vm._self._setupProxy;
5432
- return _c("div", {
5433
- staticClass: "mock-container__disabled-icon"
5434
- }, [_c("i", {
5435
- staticClass: "el-icon-video-pause"
5436
- })]);
5437
- }];
5415
+ var staticRenderFns = [];
5438
5416
  render._withStripped = true;
5439
5417
 
5440
5418
 
@@ -5788,133 +5766,216 @@ var render = function render() {
5788
5766
  staticClass: "request-detail__placeholder"
5789
5767
  }, [_c("span", {
5790
5768
  staticClass: "request-detail__placeholder-text"
5791
- }, [_vm._v("暂无数据")])]) : _c("el-tabs", {
5792
- staticClass: "request-detail__tabs",
5769
+ }, [_vm._v("暂无数据")])]) : _c(_setup.ResponsePanel, {
5770
+ ref: "responsePanelRef",
5793
5771
  attrs: {
5794
- type: "border-card"
5772
+ "row-key": _vm.currentRow.rowKey,
5773
+ api: _vm.currentRow
5795
5774
  },
5796
5775
  on: {
5797
- "tab-click": _setup.handleTabClick
5776
+ changeMockVersion: _setup.handeMockVersionChange,
5777
+ fileSaved: _setup.handleFileSaved
5778
+ }
5779
+ })], 1);
5780
+ };
5781
+ var staticRenderFns = [];
5782
+ render._withStripped = true;
5783
+
5784
+
5785
+ /***/ }),
5786
+
5787
+ /***/ "./node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.12.16_webpack@5.100.1/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/content/RequestInfoDialog.vue?vue&type=template&id=b9cf4022&scoped=true":
5788
+ /*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
5789
+ !*** ./node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.12.16_webpack@5.100.1/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/content/RequestInfoDialog.vue?vue&type=template&id=b9cf4022&scoped=true ***!
5790
+ \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
5791
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
5792
+
5793
+ "use strict";
5794
+ __webpack_require__.r(__webpack_exports__);
5795
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
5796
+ /* harmony export */ render: function() { return /* binding */ render; },
5797
+ /* harmony export */ staticRenderFns: function() { return /* binding */ staticRenderFns; }
5798
+ /* harmony export */ });
5799
+ var render = function render() {
5800
+ var _vm = this,
5801
+ _c = _vm._self._c,
5802
+ _setup = _vm._self._setupProxy;
5803
+ return _c("el-dialog", {
5804
+ attrs: {
5805
+ visible: _vm.visible,
5806
+ width: "860px",
5807
+ top: "5vh",
5808
+ "append-to-body": "",
5809
+ "custom-class": "request-info-dialog",
5810
+ "show-close": false
5798
5811
  },
5799
- model: {
5800
- value: _setup.activeTabName,
5801
- callback: function ($$v) {
5802
- _setup.activeTabName = $$v;
5812
+ on: {
5813
+ "update:visible": function ($event) {
5814
+ return _vm.$emit("update:visible", $event);
5803
5815
  },
5804
- expression: "activeTabName"
5816
+ close: function ($event) {
5817
+ return _vm.$emit("update:visible", false);
5818
+ }
5805
5819
  }
5806
- }, [_c("el-tab-pane", {
5807
- staticClass: "request-detail__tab-pane",
5820
+ }, [_c("template", {
5821
+ slot: "title"
5822
+ }, [_c("div", {
5823
+ staticClass: "rid-header"
5824
+ }, [_c("div", {
5825
+ staticClass: "rid-header__info"
5826
+ }, [_c("span", {
5827
+ staticClass: "rid-header__method",
5828
+ class: _setup.methodClass
5829
+ }, [_vm._v(_vm._s(_vm.row && _vm.row.method || "GET"))]), _vm.row && _vm.row.status ? _c("span", {
5830
+ staticClass: "rid-header__status",
5831
+ class: _setup.statusClass
5832
+ }, [_vm._v(_vm._s(_vm.row.status))]) : _vm._e(), _c("span", {
5833
+ staticClass: "rid-header__url",
5834
+ attrs: {
5835
+ title: _setup.fullUrl
5836
+ }
5837
+ }, [_vm._v(_vm._s(_vm.row && _vm.row.name || _setup.fullUrl))]), _c("button", {
5838
+ staticClass: "rid-header__copy",
5839
+ class: {
5840
+ "is-copied": _setup.copied
5841
+ },
5808
5842
  attrs: {
5809
- label: "Overview",
5810
- name: "overview"
5843
+ title: _setup.fullUrl
5844
+ },
5845
+ on: {
5846
+ click: _setup.copyUrl
5811
5847
  }
5848
+ }, [_c("i", {
5849
+ class: _setup.copied ? "el-icon-check" : "el-icon-copy-document"
5850
+ })])]), _c("button", {
5851
+ staticClass: "rid-header__close",
5852
+ on: {
5853
+ click: function ($event) {
5854
+ return _vm.$emit("update:visible", false);
5855
+ }
5856
+ }
5857
+ }, [_c("i", {
5858
+ staticClass: "el-icon-close"
5859
+ })]), _c("div", {
5860
+ staticClass: "rid-header__tabs"
5861
+ }, _vm._l(_setup.tabs, function (tab) {
5862
+ return _c("div", {
5863
+ key: tab.name,
5864
+ staticClass: "rid-header__tab",
5865
+ class: {
5866
+ "is-active": _setup.activeTab === tab.name
5867
+ },
5868
+ on: {
5869
+ click: function ($event) {
5870
+ _setup.activeTab = tab.name;
5871
+ }
5872
+ }
5873
+ }, [_vm._v(" " + _vm._s(tab.label) + " ")]);
5874
+ }), 0)])]), _vm.row ? _c("div", {
5875
+ staticClass: "rid-body"
5812
5876
  }, [_c("div", {
5813
- staticClass: "request-detail__section"
5877
+ directives: [{
5878
+ name: "show",
5879
+ rawName: "v-show",
5880
+ value: _setup.activeTab === "overview",
5881
+ expression: "activeTab === 'overview'"
5882
+ }],
5883
+ staticClass: "rid-pane"
5814
5884
  }, [_c("div", {
5815
- staticClass: "request-detail__section-title"
5816
- }, [_vm._v("Overview")]), _vm._l(_setup.overviewItems, function (item) {
5885
+ staticClass: "rid-section"
5886
+ }, [_c("div", {
5887
+ staticClass: "rid-section__title"
5888
+ }, [_vm._v("概览")]), _vm._l(_setup.overviewItems, function (item) {
5817
5889
  return _c("div", {
5818
5890
  key: item.key,
5819
- staticClass: "request-detail__item"
5891
+ staticClass: "rid-kv"
5820
5892
  }, [_c("div", {
5821
- staticClass: "request-detail__label"
5822
- }, [item.key === "mockTime" ? [_c("el-tooltip", {
5823
- attrs: {
5824
- effect: "dark",
5825
- content: "The latest hitting the mock",
5826
- placement: "top"
5827
- }
5828
- }, [_c("i", {
5829
- staticClass: "el-icon-warning-outline"
5830
- })])] : _vm._e(), _vm._v(" " + _vm._s(item.label) + " ")], 2), _c("div", {
5831
- staticClass: "request-detail__value"
5832
- }, [_vm._v(_vm._s(item.key === "url" ? _setup.fullUrl : _vm.currentRow[item.key]))])]);
5893
+ staticClass: "rid-kv__key"
5894
+ }, [_vm._v(_vm._s(item.label))]), _c("div", {
5895
+ staticClass: "rid-kv__val"
5896
+ }, [_vm._v(_vm._s(item.key === "url" ? _setup.fullUrl : _vm.row[item.key]))])]);
5833
5897
  })], 2), _c("div", {
5834
- staticClass: "request-detail__section"
5898
+ staticClass: "rid-section"
5835
5899
  }, [_c("div", {
5836
- staticClass: "request-detail__section-title"
5837
- }, [_vm._v("Query")]), _vm.currentRow.query && Object.keys(_vm.currentRow.query).length > 0 ? _vm._l(_vm.currentRow.query, function (value, key) {
5900
+ staticClass: "rid-section__title"
5901
+ }, [_vm._v("Query")]), _vm.row.query && Object.keys(_vm.row.query).length > 0 ? _vm._l(_vm.row.query, function (value, key) {
5838
5902
  return _c("div", {
5839
5903
  key: key,
5840
- staticClass: "request-detail__item"
5904
+ staticClass: "rid-kv"
5841
5905
  }, [_c("div", {
5842
- staticClass: "request-detail__label"
5906
+ staticClass: "rid-kv__key"
5843
5907
  }, [_vm._v(_vm._s(key))]), _c("div", {
5844
- staticClass: "request-detail__value"
5908
+ staticClass: "rid-kv__val"
5845
5909
  }, [_vm._v(_vm._s(value))])]);
5846
5910
  }) : _c("div", {
5847
- staticClass: "request-detail__empty"
5848
- }, [_vm._v(" No query parameters ")])], 2), _c("div", {
5849
- staticClass: "request-detail__section"
5911
+ staticClass: "rid-empty"
5912
+ }, [_vm._v("暂无 Query 参数")])], 2), _c("div", {
5913
+ staticClass: "rid-section"
5850
5914
  }, [_c("div", {
5851
- staticClass: "request-detail__section-title"
5852
- }, [_vm._v("Payload")]), _setup.parsedPayloadData ? _c("div", {
5853
- staticClass: "request-detail__payload-editor"
5915
+ staticClass: "rid-section__title"
5916
+ }, [_vm._v("Payload")]), _setup.parsedPayload ? _c("div", {
5917
+ staticClass: "rid-editor-wrap"
5854
5918
  }, [_c(_setup.Editor, {
5855
5919
  attrs: {
5856
- value: _setup.parsedPayloadData,
5920
+ value: _setup.parsedPayload,
5857
5921
  "show-btns": false,
5858
5922
  "read-only": true,
5859
5923
  lang: "zh"
5860
5924
  }
5861
5925
  })], 1) : _c("div", {
5862
- staticClass: "request-detail__empty"
5863
- }, [_vm._v(" No payload ")])])]), _c("el-tab-pane", {
5864
- staticClass: "request-detail__tab-pane",
5865
- attrs: {
5866
- label: "Request Headers",
5867
- name: "reqHeaders"
5868
- }
5869
- }, [_vm._l(_vm.currentRow.reqHeaders, function (value, key) {
5926
+ staticClass: "rid-empty"
5927
+ }, [_vm._v("暂无 Payload")])])]), _c("div", {
5928
+ directives: [{
5929
+ name: "show",
5930
+ rawName: "v-show",
5931
+ value: _setup.activeTab === "reqHeaders",
5932
+ expression: "activeTab === 'reqHeaders'"
5933
+ }],
5934
+ staticClass: "rid-pane"
5935
+ }, [_vm._l(_setup.reqHeaders, function (value, key) {
5870
5936
  return _c("div", {
5871
5937
  key: key,
5872
- staticClass: "request-detail__item"
5938
+ staticClass: "rid-kv"
5873
5939
  }, [_c("div", {
5874
- staticClass: "request-detail__label"
5940
+ staticClass: "rid-kv__key"
5875
5941
  }, [_vm._v(_vm._s(key))]), _c("div", {
5876
- staticClass: "request-detail__value"
5942
+ staticClass: "rid-kv__val"
5877
5943
  }, [_vm._v(_vm._s(value))])]);
5878
- }), !_vm.currentRow.reqHeaders || Object.keys(_vm.currentRow.reqHeaders).length === 0 ? _c("div", {
5879
- staticClass: "request-detail__empty"
5880
- }, [_vm._v(" No request headers available ")]) : _vm._e()], 2), _c("el-tab-pane", {
5881
- staticClass: "request-detail__tab-pane",
5882
- attrs: {
5883
- label: "Response Headers",
5884
- name: "resHeaders"
5885
- }
5886
- }, [_vm._l(_vm.currentRow.resHeaders, function (value, key) {
5944
+ }), Object.keys(_setup.reqHeaders).length === 0 ? _c("div", {
5945
+ staticClass: "rid-empty"
5946
+ }, [_vm._v("暂无请求头")]) : _vm._e()], 2), _c("div", {
5947
+ directives: [{
5948
+ name: "show",
5949
+ rawName: "v-show",
5950
+ value: _setup.activeTab === "resHeaders",
5951
+ expression: "activeTab === 'resHeaders'"
5952
+ }],
5953
+ staticClass: "rid-pane"
5954
+ }, [_vm._l(_setup.resHeaders, function (value, key) {
5887
5955
  return _c("div", {
5888
5956
  key: key,
5889
- staticClass: "request-detail__item"
5957
+ staticClass: "rid-kv"
5890
5958
  }, [_c("div", {
5891
- staticClass: "request-detail__label"
5959
+ staticClass: "rid-kv__key"
5892
5960
  }, [_vm._v(_vm._s(key))]), _c("div", {
5893
- staticClass: "request-detail__value"
5961
+ staticClass: "rid-kv__val"
5894
5962
  }, [_vm._v(_vm._s(value))])]);
5895
- }), !_vm.currentRow.resHeaders || Object.keys(_vm.currentRow.resHeaders).length === 0 ? _c("div", {
5896
- staticClass: "request-detail__empty"
5897
- }, [_vm._v(" No response headers available ")]) : _vm._e()], 2), _vm.currentRow ? _c("el-tab-pane", {
5898
- staticClass: "request-detail__tab-pane",
5899
- attrs: {
5900
- name: "response"
5901
- }
5902
- }, [_c("span", {
5903
- attrs: {
5904
- slot: "label"
5905
- },
5906
- slot: "label"
5907
- }, [_vm._v("Response")]), _c(_setup.ResponsePanel, {
5908
- ref: "responsePanelRef",
5963
+ }), Object.keys(_setup.resHeaders).length === 0 ? _c("div", {
5964
+ staticClass: "rid-empty"
5965
+ }, [_vm._v("暂无响应头")]) : _vm._e()], 2), _setup.activeTab === "source" ? _c("div", {
5966
+ staticClass: "rid-pane rid-pane--editor"
5967
+ }, [_setup.sourceContent !== null ? _c("div", {
5968
+ staticClass: "rid-editor-wrap rid-editor-wrap--full"
5969
+ }, [_c(_setup.Editor, {
5909
5970
  attrs: {
5910
- "row-key": _vm.currentRow.rowKey,
5911
- api: _vm.currentRow
5912
- },
5913
- on: {
5914
- changeMockVersion: _setup.handeMockVersionChange,
5915
- fileSaved: _setup.handleFileSaved
5971
+ value: _setup.sourceContent,
5972
+ "show-btns": false,
5973
+ "read-only": true,
5974
+ lang: "zh"
5916
5975
  }
5917
- })], 1) : _vm._e()], 1)], 1);
5976
+ })], 1) : _c("div", {
5977
+ staticClass: "rid-empty"
5978
+ }, [_vm._v("暂无原始响应数据")])]) : _vm._e()]) : _vm._e()], 2);
5918
5979
  };
5919
5980
  var staticRenderFns = [];
5920
5981
  render._withStripped = true;
@@ -5979,7 +6040,7 @@ var render = function render() {
5979
6040
  }), _c("el-table-column", {
5980
6041
  attrs: {
5981
6042
  prop: "name",
5982
- label: "Filename",
6043
+ label: "请求URL",
5983
6044
  "min-width": "300"
5984
6045
  },
5985
6046
  scopedSlots: _vm._u([{
@@ -6028,14 +6089,30 @@ var render = function render() {
6028
6089
  slot: "header"
6029
6090
  }, [_vm._v(" Mock ")])], 2), _c("el-table-column", {
6030
6091
  attrs: {
6031
- label: "Operation",
6032
- width: "80",
6092
+ label: "操作",
6093
+ width: "110",
6033
6094
  align: "center"
6034
6095
  },
6035
6096
  scopedSlots: _vm._u([{
6036
6097
  key: "default",
6037
6098
  fn: function (scope) {
6038
6099
  return [_c("el-button", {
6100
+ staticClass: "request-list__btn",
6101
+ class: {
6102
+ "request-list__btn--locked": scope.row.locked
6103
+ },
6104
+ attrs: {
6105
+ type: "text",
6106
+ size: "mini",
6107
+ icon: scope.row.locked ? "el-icon-lock" : "el-icon-unlock"
6108
+ },
6109
+ on: {
6110
+ click: function ($event) {
6111
+ $event.stopPropagation();
6112
+ return _setup.updateLock(!scope.row.locked, scope.row);
6113
+ }
6114
+ }
6115
+ }), _c("el-button", {
6039
6116
  staticClass: "request-list__btn request-list__btn--delete",
6040
6117
  attrs: {
6041
6118
  type: "text",
@@ -6048,30 +6125,63 @@ var render = function render() {
6048
6125
  return _setup.handleDelete(scope.row, scope.$index);
6049
6126
  }
6050
6127
  }
6051
- }), _c("el-button", {
6052
- staticClass: "request-list__btn",
6053
- class: {
6054
- "request-list__btn--locked": scope.row.locked
6128
+ }), _c("el-popover", {
6129
+ ref: `morePopover_${scope.$index}`,
6130
+ attrs: {
6131
+ placement: "bottom-end",
6132
+ trigger: "click",
6133
+ "popper-class": "request-list__more-popover"
6055
6134
  },
6135
+ on: {
6136
+ show: function ($event) {
6137
+ return _setup.closeOtherPopovers(scope.$index);
6138
+ }
6139
+ }
6140
+ }, [_c("div", {
6141
+ staticClass: "request-list__more-menu"
6142
+ }, [_c("div", {
6143
+ staticClass: "request-list__more-item",
6144
+ on: {
6145
+ click: function ($event) {
6146
+ $event.stopPropagation();
6147
+ return _setup.openRequestInfo(scope.row, scope.$index);
6148
+ }
6149
+ }
6150
+ }, [_c("i", {
6151
+ staticClass: "el-icon-document"
6152
+ }), _c("span", [_vm._v("查看请求信息")])])]), _c("el-button", {
6153
+ staticClass: "request-list__btn request-list__btn--more",
6056
6154
  attrs: {
6155
+ slot: "reference",
6057
6156
  type: "text",
6058
- size: "mini",
6059
- icon: scope.row.locked ? "el-icon-lock" : "el-icon-unlock"
6157
+ size: "mini"
6060
6158
  },
6061
6159
  on: {
6062
6160
  click: function ($event) {
6063
6161
  $event.stopPropagation();
6064
- return _setup.updateLock(!scope.row.locked, scope.row);
6065
6162
  }
6066
- }
6067
- })];
6163
+ },
6164
+ slot: "reference"
6165
+ }, [_c("i", {
6166
+ staticClass: "el-icon-more"
6167
+ })])], 1)];
6068
6168
  }
6069
6169
  }])
6070
6170
  }), _c("template", {
6071
6171
  slot: "empty"
6072
6172
  }, [_c("span", {
6073
6173
  staticClass: "request-list__empty-text"
6074
- }, [_vm._v("暂无数据")])])], 2)], 1);
6174
+ }, [_vm._v("暂无数据")])])], 2), _c(_setup.RequestInfoDialog, {
6175
+ attrs: {
6176
+ visible: _setup.requestInfoVisible,
6177
+ row: _setup.requestInfoRow
6178
+ },
6179
+ on: {
6180
+ "update:visible": function ($event) {
6181
+ _setup.requestInfoVisible = $event;
6182
+ }
6183
+ }
6184
+ })], 1);
6075
6185
  };
6076
6186
  var staticRenderFns = [];
6077
6187
  render._withStripped = true;
@@ -6101,7 +6211,25 @@ var render = function render() {
6101
6211
  staticClass: "response-panel__header"
6102
6212
  }, [_c("div", {
6103
6213
  staticClass: "response-panel__header-toolbar"
6104
- }, [_setup.props.api ? _c("div", {
6214
+ }, [_setup.mockMode === "version" ? _c("div", {
6215
+ staticClass: "response-panel__add-btn",
6216
+ on: {
6217
+ click: _setup.onCreate
6218
+ }
6219
+ }, [_c("i", {
6220
+ staticClass: "el-icon-plus"
6221
+ }), _c("span", [_vm._v("新增版本")])]) : _vm._e(), _setup.mockMode === "match" ? _c("div", {
6222
+ staticClass: "response-panel__add-btn",
6223
+ on: {
6224
+ click: _setup.onCreateMatchRule
6225
+ }
6226
+ }, [_c("i", {
6227
+ staticClass: "el-icon-plus"
6228
+ }), _c("span", [_vm._v("新增规则")])]) : _vm._e(), _setup.mockMode === "version" ? _c("span", {
6229
+ staticClass: "response-panel__version-count"
6230
+ }, [_vm._v(" mock版本列表: " + _vm._s(_setup.historyVersionCount) + " 个版本 ")]) : _vm._e(), _setup.mockMode === "match" && _setup.matchRuleList.length > 0 ? _c("span", {
6231
+ staticClass: "response-panel__version-count"
6232
+ }, [_vm._v(" " + _vm._s(_setup.matchRuleList.length) + " 条规则 ")]) : _vm._e(), _setup.props.api ? _c("div", {
6105
6233
  staticClass: "response-panel__mode-selector"
6106
6234
  }, [_c("div", {
6107
6235
  staticClass: "response-panel__mode-btn",
@@ -6140,76 +6268,31 @@ var render = function render() {
6140
6268
  return _setup.switchMode("match");
6141
6269
  }
6142
6270
  }
6143
- }, [_vm._v(" 条件匹配 ")])]) : _vm._e()]) : _vm._e(), _setup.mockMode === "version" ? _c("div", {
6144
- staticClass: "response-panel__add-btn",
6145
- on: {
6146
- click: _setup.onCreate
6147
- }
6148
- }, [_c("i", {
6149
- staticClass: "el-icon-plus"
6150
- }), _c("span", [_vm._v("新增版本")])]) : _vm._e(), _setup.mockMode === "match" ? _c("div", {
6151
- staticClass: "response-panel__add-btn",
6152
- on: {
6153
- click: _setup.onCreateMatchRule
6154
- }
6155
- }, [_c("i", {
6156
- staticClass: "el-icon-plus"
6157
- }), _c("span", [_vm._v("新增规则")])]) : _vm._e(), _setup.mockMode === "version" && _setup.responseList.length > 1 ? _c("span", {
6158
- staticClass: "response-panel__version-count"
6159
- }, [_vm._v(" " + _vm._s(_setup.responseList.length - 1) + " 个版本 ")]) : _vm._e(), _setup.mockMode === "match" && _setup.matchRuleList.length > 0 ? _c("span", {
6160
- staticClass: "response-panel__version-count"
6161
- }, [_vm._v(" " + _vm._s(_setup.matchRuleList.length) + " 条规则 ")]) : _vm._e(), _c("div", {
6162
- staticClass: "response-panel__collapse-btn",
6163
- on: {
6164
- click: function ($event) {
6165
- _setup.headerCollapsed = !_setup.headerCollapsed;
6166
- }
6167
- }
6168
- }, [_c("i", {
6169
- class: _setup.headerCollapsed ? "el-icon-arrow-down" : "el-icon-arrow-up"
6170
- }), _c("span", [_vm._v(_vm._s(_setup.headerCollapsed ? "展开版本" : "收起版本"))])])]), _c("div", {
6271
+ }, [_vm._v(" 条件匹配 ")])]) : _vm._e()]) : _vm._e()]), _c("div", {
6171
6272
  staticClass: "response-panel__tabs-wrapper",
6172
6273
  class: {
6173
6274
  "has-top-fade": _setup.tabsFade.top && !_setup.headerCollapsed,
6174
- "has-bottom-fade": _setup.tabsFade.bottom && !_setup.headerCollapsed,
6175
- "is-collapsed": _setup.headerCollapsed
6275
+ "has-bottom-fade": _setup.tabsFade.bottom && !_setup.headerCollapsed
6176
6276
  }
6177
6277
  }, [_setup.mockMode === "version" ? _c("div", {
6278
+ directives: [{
6279
+ name: "show",
6280
+ rawName: "v-show",
6281
+ value: !_setup.headerCollapsed,
6282
+ expression: "!headerCollapsed"
6283
+ }],
6178
6284
  ref: "tabsAreaRef",
6179
6285
  staticClass: "response-panel__tabs-area",
6180
6286
  on: {
6181
6287
  scroll: _setup.updateTabsFade
6182
6288
  }
6183
- }, _vm._l(_setup.responseList, function (item, index) {
6184
- return _c("div", {
6289
+ }, [_vm._l(_setup.responseList, function (item, index) {
6290
+ return [item.type === "history" ? _c("el-tooltip", {
6185
6291
  key: `${item.type}-${item.filename}`,
6186
- staticClass: "response-panel__tab",
6187
- class: {
6188
- "response-panel__tab--selected": item.filename === _setup.currentFile.filename
6189
- },
6190
- on: {
6191
- click: function ($event) {
6192
- return _setup.selectFile(item);
6193
- }
6194
- }
6195
- }, [item.type === "source" ? _c("el-tooltip", {
6196
- attrs: {
6197
- effect: "dark",
6198
- placement: "top"
6199
- }
6200
- }, [_c("div", {
6201
- attrs: {
6202
- slot: "content"
6203
- },
6204
- slot: "content"
6205
- }, [_vm._v(" 原始响应数据(只读)"), _c("br"), _vm._v(" 从服务器捕获的原始响应 ")]), _c("span", {
6206
- staticClass: "response-panel__source-tab"
6207
- }, [_c("i", {
6208
- staticClass: "el-icon-document"
6209
- }), _c("span", [_vm._v("Source")])])]) : item.type === "history" ? _c("el-tooltip", {
6210
6292
  attrs: {
6211
6293
  effect: "dark",
6212
- placement: "top"
6294
+ placement: "top",
6295
+ "open-delay": 1000
6213
6296
  }
6214
6297
  }, [_c("div", {
6215
6298
  staticStyle: {
@@ -6219,9 +6302,21 @@ var render = function render() {
6219
6302
  slot: "content"
6220
6303
  },
6221
6304
  slot: "content"
6222
- }, [_c("div", [_c("strong", [_vm._v("版本名称:")]), _vm._v(_vm._s(item.filename))]), _c("div", [_c("strong", [_vm._v("描述:")]), _vm._v(_vm._s(item.description || "(无)"))]), _c("div", [_c("strong", [_vm._v("创建时间:")]), _vm._v(_vm._s(item.createTime ? _setup.formatTime(item.createTime) : "(旧版本,无记录)"))]), _c("div", [_c("strong", [_vm._v("修改时间:")]), _vm._v(_vm._s(item.updateTime ? _setup.formatTime(item.updateTime) : "(旧版本,无记录)"))])]), _c("span", {
6305
+ }, [_c("div", [_c("strong", [_vm._v("版本名称:")]), _vm._v(_vm._s(item.filename))]), _c("div", [_c("strong", [_vm._v("描述:")]), _vm._v(_vm._s(item.description || "(无)"))]), _c("div", [_c("strong", [_vm._v("创建时间:")]), _vm._v(_vm._s(item.createTime ? _setup.formatTime(item.createTime) : "(旧版本,无记录)"))]), _c("div", [_c("strong", [_vm._v("修改时间:")]), _vm._v(_vm._s(item.updateTime ? _setup.formatTime(item.updateTime) : "(旧版本,无记录)"))])]), _c("div", {
6306
+ staticClass: "response-panel__tab",
6307
+ class: {
6308
+ "response-panel__tab--selected": item.filename === _setup.currentFile.filename
6309
+ },
6310
+ on: {
6311
+ click: function ($event) {
6312
+ return _setup.selectFile(item);
6313
+ }
6314
+ }
6315
+ }, [_c("span", {
6223
6316
  staticClass: "response-panel__tab-text"
6224
- }, [_vm._v(_vm._s(item.filename))])]) : _c("span", [_vm._v(_vm._s(item.filename))]), item.type === "history" ? _c("i", {
6317
+ }, [_vm._v(_vm._s(item.filename))]), _c("div", {
6318
+ staticClass: "response-panel__tab-actions"
6319
+ }, [_c("i", {
6225
6320
  staticClass: "el-icon-edit response-panel__edit-btn",
6226
6321
  on: {
6227
6322
  click: function ($event) {
@@ -6229,7 +6324,7 @@ var render = function render() {
6229
6324
  return _setup.onEditVersion(item);
6230
6325
  }
6231
6326
  }
6232
- }) : _vm._e(), item.type === "history" ? _c("i", {
6327
+ }), _c("i", {
6233
6328
  staticClass: "el-icon-delete response-panel__delete-btn",
6234
6329
  on: {
6235
6330
  click: function ($event) {
@@ -6237,29 +6332,37 @@ var render = function render() {
6237
6332
  return _setup.deleteVersionHandler(item, index);
6238
6333
  }
6239
6334
  }
6240
- }) : _vm._e()], 1);
6241
- }), 0) : _vm._e(), _setup.mockMode === "match" ? _c("div", {
6242
- ref: "tabsAreaRef",
6243
- staticClass: "response-panel__tabs-area",
6244
- on: {
6245
- scroll: _setup.updateTabsFade
6246
- }
6247
- }, _vm._l(_setup.matchRuleList, function (item, index) {
6248
- return _c("div", {
6249
- key: item.id,
6335
+ })])])]) : item.type !== "source" ? _c("div", {
6336
+ key: `${item.type}-${item.filename}`,
6250
6337
  staticClass: "response-panel__tab",
6251
6338
  class: {
6252
- "response-panel__tab--selected": _setup.currentMatchRule && item.id === _setup.currentMatchRule.id
6339
+ "response-panel__tab--selected": item.filename === _setup.currentFile.filename
6253
6340
  },
6254
6341
  on: {
6255
6342
  click: function ($event) {
6256
- return _setup.selectMatchRule(item);
6343
+ return _setup.selectFile(item);
6257
6344
  }
6258
6345
  }
6259
- }, [_c("el-tooltip", {
6346
+ }, [_c("span", [_vm._v(_vm._s(item.filename))])]) : _vm._e()];
6347
+ })], 2) : _vm._e(), _setup.mockMode === "match" ? _c("div", {
6348
+ directives: [{
6349
+ name: "show",
6350
+ rawName: "v-show",
6351
+ value: !_setup.headerCollapsed,
6352
+ expression: "!headerCollapsed"
6353
+ }],
6354
+ ref: "tabsAreaRef",
6355
+ staticClass: "response-panel__tabs-area",
6356
+ on: {
6357
+ scroll: _setup.updateTabsFade
6358
+ }
6359
+ }, _vm._l(_setup.matchRuleList, function (item, index) {
6360
+ return _c("el-tooltip", {
6361
+ key: item.id,
6260
6362
  attrs: {
6261
6363
  effect: "dark",
6262
- placement: "top"
6364
+ placement: "top",
6365
+ "open-delay": 1000
6263
6366
  }
6264
6367
  }, [_c("div", {
6265
6368
  staticStyle: {
@@ -6269,17 +6372,28 @@ var render = function render() {
6269
6372
  slot: "content"
6270
6373
  },
6271
6374
  slot: "content"
6272
- }, [_c("div", [_c("strong", [_vm._v("规则名称:")]), _vm._v(_vm._s(item.name))]), _c("div", [_c("strong", [_vm._v("描述:")]), _vm._v(_vm._s(item.description || "(无)"))]), _c("div", [_c("strong", [_vm._v("条件数:")]), _vm._v(_vm._s(item.conditions ? item.conditions.length : 0))])]), _c("span", {
6273
- staticClass: "response-panel__tab-text"
6274
- }, [_vm._v(_vm._s(item.name))])]), _setup.crossRuleConflicts[item.id] ? _c("el-tooltip", {
6275
- attrs: {
6276
- content: _setup.crossRuleConflicts[item.id],
6277
- placement: "top",
6278
- effect: "dark"
6375
+ }, [_c("div", [_c("strong", [_vm._v("规则名称:")]), _vm._v(_vm._s(item.name))]), _c("div", [_c("strong", [_vm._v("描述:")]), _vm._v(_vm._s(item.description || "(无)"))]), _c("div", [_c("strong", [_vm._v("条件数:")]), _vm._v(_vm._s(item.conditions ? item.conditions.length : 0))]), _setup.crossRuleConflicts[item.id] ? _c("div", {
6376
+ staticStyle: {
6377
+ "margin-top": "4px",
6378
+ color: "#f59e0b"
6279
6379
  }
6280
- }, [_c("i", {
6380
+ }, [_c("strong", [_vm._v("⚠ 冲突:")]), _vm._v(_vm._s(_setup.crossRuleConflicts[item.id]) + " ")]) : _vm._e()]), _c("div", {
6381
+ staticClass: "response-panel__tab",
6382
+ class: {
6383
+ "response-panel__tab--selected": _setup.currentMatchRule && item.id === _setup.currentMatchRule.id
6384
+ },
6385
+ on: {
6386
+ click: function ($event) {
6387
+ return _setup.selectMatchRule(item);
6388
+ }
6389
+ }
6390
+ }, [_setup.crossRuleConflicts[item.id] ? _c("i", {
6281
6391
  staticClass: "el-icon-warning response-panel__rule-conflict-badge"
6282
- })]) : _vm._e(), _c("i", {
6392
+ }) : _vm._e(), _c("span", {
6393
+ staticClass: "response-panel__tab-text"
6394
+ }, [_vm._v(_vm._s(item.name))]), _c("div", {
6395
+ staticClass: "response-panel__tab-actions"
6396
+ }, [_c("i", {
6283
6397
  staticClass: "el-icon-edit response-panel__edit-btn",
6284
6398
  on: {
6285
6399
  click: function ($event) {
@@ -6295,8 +6409,20 @@ var render = function render() {
6295
6409
  return _setup.deleteMatchRuleHandler(item, index);
6296
6410
  }
6297
6411
  }
6298
- })], 1);
6299
- }), 0) : _vm._e()])]), _c("div", {
6412
+ })])])]);
6413
+ }), 1) : _vm._e(), (_setup.mockMode === "version" ? _setup.historyVersionCount > 0 : _setup.matchRuleList.length > 0) ? _c("div", {
6414
+ staticClass: "response-panel__collapse-btn",
6415
+ class: {
6416
+ "response-panel__collapse-btn--collapsed": _setup.headerCollapsed
6417
+ },
6418
+ on: {
6419
+ click: function ($event) {
6420
+ _setup.headerCollapsed = !_setup.headerCollapsed;
6421
+ }
6422
+ }
6423
+ }, [_c("i", {
6424
+ class: _setup.headerCollapsed ? "el-icon-arrow-down" : "el-icon-arrow-up"
6425
+ })]) : _vm._e()])]), _c("div", {
6300
6426
  staticClass: "response-panel__content"
6301
6427
  }, [_setup.mockMode === "match" && _setup.currentMatchRule && !_setup.headerCollapsed ? _c(_setup.MatchConditionEditor, {
6302
6428
  attrs: {
@@ -6310,34 +6436,6 @@ var render = function render() {
6310
6436
  }) : _vm._e(), _c("div", {
6311
6437
  staticClass: "response-panel__toolbar"
6312
6438
  }, [_c("el-tooltip", {
6313
- attrs: {
6314
- content: _setup.isSourceReadonly ? "原始响应不可格式化" : "格式化 JSON",
6315
- placement: "bottom"
6316
- }
6317
- }, [_c("el-button", {
6318
- attrs: {
6319
- size: "mini",
6320
- icon: "el-icon-brush",
6321
- disabled: !_setup.activeEditorContent || _setup.isSourceReadonly
6322
- },
6323
- on: {
6324
- click: _setup.handleFormat
6325
- }
6326
- }, [_vm._v(" 格式化 ")])], 1), _c("el-tooltip", {
6327
- attrs: {
6328
- content: _setup.isSourceReadonly ? "原始响应不可修改" : "验证 JSON 语法",
6329
- placement: "bottom"
6330
- }
6331
- }, [_c("el-button", {
6332
- attrs: {
6333
- size: "mini",
6334
- icon: "el-icon-check",
6335
- disabled: !_setup.activeEditorContent || _setup.isSourceReadonly
6336
- },
6337
- on: {
6338
- click: _setup.handleValidate
6339
- }
6340
- }, [_vm._v(" 验证 ")])], 1), _c("el-tooltip", {
6341
6439
  attrs: {
6342
6440
  content: "展开所有节点",
6343
6441
  placement: "bottom"
@@ -6699,33 +6797,6 @@ var render = function render() {
6699
6797
  }, [_c("div", {
6700
6798
  staticClass: "fullscreen-editor-toolbar"
6701
6799
  }, [_c("el-tooltip", {
6702
- attrs: {
6703
- content: _setup.isSourceReadonly ? "原始响应不可格式化" : "格式化 JSON",
6704
- placement: "bottom"
6705
- }
6706
- }, [_c("el-button", {
6707
- attrs: {
6708
- size: "small",
6709
- icon: "el-icon-brush",
6710
- disabled: _setup.isSourceReadonly
6711
- },
6712
- on: {
6713
- click: _setup.handleFullScreenFormat
6714
- }
6715
- }, [_vm._v(" 格式化 ")])], 1), _c("el-tooltip", {
6716
- attrs: {
6717
- content: "验证 JSON 语法",
6718
- placement: "bottom"
6719
- }
6720
- }, [_c("el-button", {
6721
- attrs: {
6722
- size: "small",
6723
- icon: "el-icon-check"
6724
- },
6725
- on: {
6726
- click: _setup.handleFullScreenValidate
6727
- }
6728
- }, [_vm._v(" 验证 ")])], 1), _c("el-tooltip", {
6729
6800
  attrs: {
6730
6801
  content: "展开所有节点",
6731
6802
  placement: "bottom"
@@ -7241,8 +7312,9 @@ var render = function render() {
7241
7312
  }, [_c("span", {
7242
7313
  staticClass: "plugin-header__name"
7243
7314
  }, [_vm._v("MockBubu")]), _c("el-switch", {
7315
+ staticClass: "plugin-header__switch",
7244
7316
  attrs: {
7245
- width: 36
7317
+ width: 26
7246
7318
  },
7247
7319
  on: {
7248
7320
  change: _setup.handlePluginEnabledToggle
@@ -7431,16 +7503,39 @@ var render = function render() {
7431
7503
  staticClass: "action-panel__row"
7432
7504
  }, [_c("div", {
7433
7505
  staticClass: "action-panel__search"
7434
- }, [_c(_setup.GroupSelector, {
7435
- ref: "groupSelectorRef",
7506
+ }, [_setup.pluginMode !== null ? [_c("div", {
7507
+ staticClass: "capture-status",
7508
+ class: {
7509
+ "is-capturing": _setup.pluginMode === "default"
7510
+ }
7511
+ }, [_c("span", {
7512
+ staticClass: "capture-status__dot"
7513
+ }), _c("span", {
7514
+ staticClass: "capture-status__text"
7515
+ }, [_vm._v(" " + _vm._s(_setup.pluginMode === "default" ? "捕获请求中" : "停止捕获请求") + " ")]), _c("el-switch", {
7516
+ staticClass: "capture-status__switch",
7517
+ attrs: {
7518
+ value: _setup.pluginMode === "default",
7519
+ width: 26,
7520
+ "active-color": "#67c23a",
7521
+ "inactive-color": "#c0c4cc"
7522
+ },
7436
7523
  on: {
7437
- refresh: _setup.handleGroupRefresh
7524
+ change: _setup.handleCaptureToggle
7438
7525
  }
7439
- }), _c("el-divider", {
7526
+ }), _c("el-tooltip", {
7527
+ attrs: {
7528
+ content: "停止后不再捕获新的请求,但仍可以命中请求返回开启 Mock 的数据",
7529
+ placement: "bottom",
7530
+ "open-delay": _setup.TOOLTIP_DELAY
7531
+ }
7532
+ }, [_c("i", {
7533
+ staticClass: "el-icon-question capture-status__help"
7534
+ })])], 1), _c("el-divider", {
7440
7535
  attrs: {
7441
7536
  direction: "vertical"
7442
7537
  }
7443
- }), _c("el-input", {
7538
+ })] : _vm._e(), _c("el-input", {
7444
7539
  staticClass: "action-panel__input",
7445
7540
  attrs: {
7446
7541
  clearable: "",
@@ -7500,19 +7595,17 @@ var render = function render() {
7500
7595
  staticClass: "action-panel__result-count"
7501
7596
  }, [_c("span", {
7502
7597
  staticClass: "action-panel__result-text"
7503
- }, [_vm._v("共 " + _vm._s(_vm.totalCount) + " 条")])])], 1), _c("div", {
7504
- staticClass: "action-panel__actions"
7505
- }, [_vm.selectedRows.length > 0 ? [_c("el-tag", {
7598
+ }, [_vm._v("共 " + _vm._s(_vm.totalCount) + " 条")])]), _vm.selectedRows.length > 0 ? [_c("el-divider", {
7599
+ attrs: {
7600
+ direction: "vertical"
7601
+ }
7602
+ }), _c("el-tag", {
7506
7603
  staticClass: "action-panel__selection-count",
7507
7604
  attrs: {
7508
7605
  type: "info",
7509
7606
  size: "small"
7510
7607
  }
7511
- }, [_vm._v(" 已选 " + _vm._s(_vm.selectedRows.length) + " 项 ")]), _c("el-divider", {
7512
- attrs: {
7513
- direction: "vertical"
7514
- }
7515
- }), _c("el-button", {
7608
+ }, [_vm._v(" 已选 " + _vm._s(_vm.selectedRows.length) + " 项 ")]), _c("el-button", {
7516
7609
  attrs: {
7517
7610
  size: "mini",
7518
7611
  type: "primary",
@@ -7551,80 +7644,12 @@ var render = function render() {
7551
7644
  on: {
7552
7645
  click: _setup.handleBatchDeleteSelected
7553
7646
  }
7554
- }, [_vm._v(" 删除选中 ")])] : void 0], 2)]) : _vm._e(), _vm.showActionRow ? _c("div", {
7555
- staticClass: "action-panel__rules-row"
7556
- }, [_setup.pluginMode !== null ? _c("div", {
7557
- staticClass: "plugin-mode-wrapper"
7558
- }, [_c("span", {
7559
- staticClass: "plugin-mode-label"
7560
- }, [_vm._v("工作模式:")]), _c("el-radio-group", {
7561
- attrs: {
7562
- size: "small"
7563
- },
7647
+ }, [_vm._v(" 删除选中 ")])] : _vm._e()], 2), _c(_setup.GroupSelector, {
7648
+ ref: "groupSelectorRef",
7564
7649
  on: {
7565
- change: _setup.handleModeChange
7566
- },
7567
- model: {
7568
- value: _setup.pluginMode,
7569
- callback: function ($$v) {
7570
- _setup.pluginMode = $$v;
7571
- },
7572
- expression: "pluginMode"
7573
- }
7574
- }, [_c("el-radio-button", {
7575
- attrs: {
7576
- label: "default"
7577
- }
7578
- }, [_c("el-tooltip", {
7579
- attrs: {
7580
- content: "全功能模式:捕获新请求 + 返回Mock数据",
7581
- placement: "top"
7582
- }
7583
- }, [_c("span", [_c("i", {
7584
- staticClass: "el-icon-upload2"
7585
- }), _vm._v(" 默认模式 ")])])], 1), _c("el-radio-button", {
7586
- attrs: {
7587
- label: "mock-only"
7588
- }
7589
- }, [_c("el-tooltip", {
7590
- attrs: {
7591
- content: "不捕获新请求,仅返回已开启Mock的数据",
7592
- placement: "top"
7593
- }
7594
- }, [_c("span", [_c("i", {
7595
- staticClass: "el-icon-download"
7596
- }), _vm._v(" 仅Mock模式 ")])])], 1)], 1), _c("el-divider", {
7597
- attrs: {
7598
- direction: "vertical"
7599
- }
7600
- })], 1) : _vm._e(), _c("el-tooltip", {
7601
- attrs: {
7602
- placement: "bottom"
7603
- }
7604
- }, [_c("div", {
7605
- staticClass: "rules-help-content",
7606
- attrs: {
7607
- slot: "content"
7608
- },
7609
- slot: "content"
7610
- }, [_c("pre", [_vm._v(" 插件规则配置说明:\n 在whistle规则板块配置以下格式并开启生效\n pattern mockbubu://\n 规则匹配文档见:"), _c("a", {
7611
- staticStyle: {
7612
- color: "green"
7613
- },
7614
- attrs: {
7615
- href: "https://wproxy.org/docs/rules/pattern.html",
7616
- target: "_blank",
7617
- rel: "noopener noreferrer"
7650
+ refresh: _setup.handleGroupRefresh
7618
7651
  }
7619
- }, [_vm._v("whistle文档")]), _vm._v("\n ")])]), _c("div", {
7620
- staticClass: "active-rules-text"
7621
- }, [_c("span", {
7622
- staticClass: "rules-label"
7623
- }, [_vm._v("? 当前生效规则:")]), _setup.activeRulesList.length > 0 ? _c("span", {
7624
- staticClass: "rules-value"
7625
- }, [_vm._v(" " + _vm._s(_setup.activeRulesList.join(", ")) + " ")]) : _c("span", {
7626
- staticClass: "rules-empty"
7627
- }, [_vm._v("暂无")])])])], 1) : _vm._e(), _c("input", {
7652
+ })], 1) : _vm._e(), _c("input", {
7628
7653
  ref: "archiveInput",
7629
7654
  staticStyle: {
7630
7655
  display: "none"
@@ -8262,7 +8287,7 @@ __webpack_require__.r(__webpack_exports__);
8262
8287
 
8263
8288
  var ___CSS_LOADER_EXPORT___ = _node_modules_pnpm_css_loader_6_11_0_webpack_5_100_2_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_pnpm_css_loader_6_11_0_webpack_5_100_2_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
8264
8289
  // Module
8265
- ___CSS_LOADER_EXPORT___.push([module.id, ".mock-container[data-v-d97322d2] {\n position: relative;\n display: flex;\n flex-direction: column;\n height: 100%;\n overflow: hidden;\n}\n.mock-container__content[data-v-d97322d2] {\n position: relative;\n padding-bottom: 16px;\n background-image: linear-gradient(0deg, var(--mb-accent-blue) 0, var(--mb-accent-blue) 16px, transparent 100%);\n display: flex;\n flex: 1;\n border: 1px solid var(--mb-border-color);\n border-left: none;\n overflow: hidden;\n}\n.mock-container__toolbar[data-v-d97322d2] {\n width: 48px;\n flex-shrink: 0;\n display: flex;\n flex-direction: column;\n align-items: center;\n padding-top: 16px;\n gap: 8px;\n background: var(--mb-bg-base);\n border-right: 1px solid var(--mb-border-color-deep);\n z-index: 10;\n overflow: visible;\n}\n.mock-container__list-badge[data-v-d97322d2] {\n line-height: 1;\n overflow: visible;\n}\n.mock-container__detail-wrapper[data-v-d97322d2] {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n isolation: isolate;\n}\n.mock-container__current-url[data-v-d97322d2] {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n gap: 6px;\n padding: 5px 10px 5px 12px;\n background: var(--mb-bg-mantle);\n border-bottom: 1px solid var(--mb-border-color);\n min-height: 30px;\n flex-shrink: 0;\n}\n.mock-container__current-url-copy[data-v-d97322d2] {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 20px;\n height: 20px;\n border-radius: 4px;\n cursor: pointer;\n color: var(--mb-text-muted);\n transition: color 0.15s, background 0.15s;\n}\n.mock-container__current-url-copy[data-v-d97322d2]:hover {\n color: var(--mb-accent-blue);\n background: var(--mb-bg-surface);\n}\n.mock-container__current-url-copy .el-icon-link[data-v-d97322d2] {\n font-size: 13px;\n}\n.mock-container__current-url-scroll[data-v-d97322d2] {\n flex: 1;\n min-width: 0;\n overflow-x: auto;\n overflow-y: hidden;\n text-align: left;\n}\n.mock-container__current-url-scroll[data-v-d97322d2]::-webkit-scrollbar {\n height: 3px;\n}\n.mock-container__current-url-scroll[data-v-d97322d2]::-webkit-scrollbar-track {\n background: transparent;\n}\n.mock-container__current-url-scroll[data-v-d97322d2]::-webkit-scrollbar-thumb {\n background: var(--mb-border-color-deep);\n border-radius: 2px;\n}\n.mock-container__current-url-text[data-v-d97322d2] {\n display: inline-block;\n font-size: 12px;\n color: var(--mb-text-secondary);\n white-space: nowrap;\n font-family: 'SF Mono', 'Consolas', monospace;\n line-height: 20px;\n}\n.mock-container__list-overlay[data-v-d97322d2] {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 9;\n}\n.mock-container__backdrop[data-v-d97322d2] {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.3);\n}\n.mock-container__list-panel[data-v-d97322d2] {\n position: absolute;\n top: 0;\n left: 48px;\n bottom: 0;\n width: 85%;\n max-width: calc(100% - 48px);\n background: var(--mb-bg-base);\n display: flex;\n flex-direction: column;\n box-shadow: 4px 0 12px rgba(0, 0, 0, 0.15);\n overflow: hidden;\n z-index: 1;\n}\n.mock-container__list-panel-body[data-v-d97322d2] {\n flex: 1;\n overflow: hidden;\n display: flex;\n}\n.mock-container__list-panel-body .request-list[data-v-d97322d2] {\n width: 100%;\n}\n.mock-container__disabled-overlay[data-v-d97322d2] {\n position: absolute;\n inset: 0;\n z-index: 20;\n background: var(--mb-disabled-overlay);\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.mock-container__disabled-card[data-v-d97322d2] {\n background: var(--mb-disabled-card-bg);\n border-radius: 16px;\n padding: 40px 48px;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 12px;\n min-width: 260px;\n box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);\n}\n.mock-container__disabled-icon[data-v-d97322d2] {\n font-size: 36px;\n color: #888;\n line-height: 1;\n margin-bottom: 4px;\n}\n.mock-container__disabled-title[data-v-d97322d2] {\n font-size: 18px;\n font-weight: 600;\n color: #fff;\n}\n.mock-container__disabled-desc[data-v-d97322d2] {\n font-size: 13px;\n color: #aaa;\n text-align: center;\n}\n.mock-container__disabled-btn[data-v-d97322d2] {\n margin-top: 8px;\n border-radius: 8px;\n padding: 10px 32px;\n font-size: 15px;\n font-weight: 500;\n}\n", ""]);
8290
+ ___CSS_LOADER_EXPORT___.push([module.id, ".mock-container[data-v-d97322d2] {\n position: relative;\n display: flex;\n flex-direction: column;\n height: 100%;\n overflow: hidden;\n}\n.mock-container__content[data-v-d97322d2] {\n position: relative;\n padding-bottom: 16px;\n background-image: linear-gradient(0deg, var(--mb-accent-blue) 0, var(--mb-accent-blue) 16px, transparent 100%);\n display: flex;\n flex: 1;\n border: 1px solid var(--mb-border-color);\n border-left: none;\n overflow: hidden;\n}\n.mock-container__toolbar[data-v-d97322d2] {\n width: 48px;\n flex-shrink: 0;\n display: flex;\n flex-direction: column;\n align-items: center;\n padding-top: 16px;\n gap: 8px;\n background: var(--mb-bg-base);\n border-right: 1px solid var(--mb-border-color-deep);\n z-index: 10;\n overflow: visible;\n}\n.mock-container__list-badge[data-v-d97322d2] {\n line-height: 1;\n overflow: visible;\n}\n.mock-container__detail-wrapper[data-v-d97322d2] {\n flex: 1;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n isolation: isolate;\n}\n.mock-container__current-url[data-v-d97322d2] {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n gap: 6px;\n padding: 5px 10px 5px 12px;\n background: var(--mb-bg-mantle);\n border-bottom: 1px solid var(--mb-border-color);\n min-height: 30px;\n flex-shrink: 0;\n}\n.mock-container__current-url-copy[data-v-d97322d2] {\n display: flex;\n align-items: center;\n justify-content: center;\n flex-shrink: 0;\n width: 20px;\n height: 20px;\n border-radius: 4px;\n cursor: pointer;\n color: var(--mb-text-muted);\n transition: color 0.15s, background 0.15s;\n}\n.mock-container__current-url-copy[data-v-d97322d2]:hover {\n color: var(--mb-accent-blue);\n background: var(--mb-bg-surface);\n}\n.mock-container__current-url-copy .el-icon-link[data-v-d97322d2] {\n font-size: 13px;\n}\n.mock-container__current-url-scroll[data-v-d97322d2] {\n flex: 1;\n min-width: 0;\n overflow-x: auto;\n overflow-y: hidden;\n text-align: left;\n}\n.mock-container__current-url-scroll[data-v-d97322d2]::-webkit-scrollbar {\n height: 3px;\n}\n.mock-container__current-url-scroll[data-v-d97322d2]::-webkit-scrollbar-track {\n background: transparent;\n}\n.mock-container__current-url-scroll[data-v-d97322d2]::-webkit-scrollbar-thumb {\n background: var(--mb-border-color-deep);\n border-radius: 2px;\n}\n.mock-container__current-url-text[data-v-d97322d2] {\n display: inline-block;\n font-size: 12px;\n color: var(--mb-text-secondary);\n white-space: nowrap;\n font-family: 'SF Mono', 'Consolas', monospace;\n line-height: 20px;\n}\n.mock-container__list-overlay[data-v-d97322d2] {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n z-index: 9;\n}\n.mock-container__backdrop[data-v-d97322d2] {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: rgba(0, 0, 0, 0.3);\n}\n.mock-container__list-panel[data-v-d97322d2] {\n position: absolute;\n top: 0;\n left: 48px;\n bottom: 0;\n width: 85%;\n max-width: calc(100% - 48px);\n background: var(--mb-bg-base);\n display: flex;\n flex-direction: column;\n box-shadow: 4px 0 12px rgba(0, 0, 0, 0.15);\n overflow: hidden;\n z-index: 1;\n}\n.mock-container__list-panel-body[data-v-d97322d2] {\n flex: 1;\n overflow: hidden;\n display: flex;\n}\n.mock-container__list-panel-body .request-list[data-v-d97322d2] {\n width: 100%;\n}\n.mock-container__disabled-overlay[data-v-d97322d2] {\n position: absolute;\n inset: 0;\n z-index: 20;\n background: var(--mb-disabled-overlay);\n backdrop-filter: blur(6px);\n -webkit-backdrop-filter: blur(6px);\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.mock-container__disabled-card[data-v-d97322d2] {\n background: #fff;\n border-radius: 16px;\n padding: 36px 48px;\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 12px;\n min-width: 280px;\n box-shadow: 0 4px 24px rgba(0, 0, 0, 0.12);\n}\n.mock-container__disabled-icon[data-v-d97322d2] {\n width: 52px;\n height: 52px;\n border-radius: 50%;\n background: #e8e8e8;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 5px;\n margin-bottom: 4px;\n flex-shrink: 0;\n}\n.mock-container__disabled-icon[data-v-d97322d2]::before,\n.mock-container__disabled-icon[data-v-d97322d2]::after {\n content: '';\n width: 5px;\n height: 18px;\n border-radius: 3px;\n background: #999;\n}\n.mock-container__disabled-title[data-v-d97322d2] {\n font-size: 17px;\n font-weight: 600;\n color: #1a1a1a;\n}\n.mock-container__disabled-desc[data-v-d97322d2] {\n font-size: 13px;\n color: #999;\n text-align: center;\n line-height: 1.5;\n}\n.mock-container__disabled-btn[data-v-d97322d2] {\n margin-top: 8px;\n border-radius: 10px !important;\n padding: 10px 40px;\n font-size: 15px;\n font-weight: 500;\n}\n", ""]);
8266
8291
  // Exports
8267
8292
  /* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___);
8268
8293
 
@@ -8358,7 +8383,55 @@ __webpack_require__.r(__webpack_exports__);
8358
8383
 
8359
8384
  var ___CSS_LOADER_EXPORT___ = _node_modules_pnpm_css_loader_6_11_0_webpack_5_100_2_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_pnpm_css_loader_6_11_0_webpack_5_100_2_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
8360
8385
  // Module
8361
- ___CSS_LOADER_EXPORT___.push([module.id, ".request-detail[data-v-77bc97aa] {\n position: relative;\n flex: 1;\n overflow: hidden;\n border-left: 1px solid var(--mb-border-color-deep);\n background: var(--mb-bg-base);\n}\n.request-detail--empty[data-v-77bc97aa] {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.request-detail__placeholder[data-v-77bc97aa] {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 8px;\n color: var(--mb-text-muted);\n}\n.request-detail__placeholder-icon[data-v-77bc97aa] {\n font-size: 32px;\n opacity: 0.4;\n}\n.request-detail__placeholder-text[data-v-77bc97aa] {\n font-size: 13px;\n}\n.request-detail__tabs[data-v-77bc97aa] {\n box-shadow: none;\n border: none;\n height: 100%;\n display: flex;\n flex-direction: column;\n}\n.request-detail__tabs[data-v-77bc97aa] .el-tabs__content {\n padding: 0;\n flex: 1;\n overflow: hidden;\n background-color: var(--mb-bg-base);\n}\n.request-detail__tabs[data-v-77bc97aa] .el-tabs__header {\n background-color: var(--mb-bg-base);\n border-bottom-color: var(--mb-border-color-light);\n}\n.request-detail__tabs[data-v-77bc97aa] .el-tabs__item {\n height: 30px;\n line-height: 30px;\n font-size: 12px;\n background-color: var(--mb-bg-base);\n color: var(--mb-text-primary);\n border-right-color: var(--mb-border-color-light);\n border-left-color: var(--mb-border-color-light);\n}\n.request-detail__tabs[data-v-77bc97aa] .el-tabs__item.is-active {\n background-color: var(--mb-selected-bg);\n}\n.request-detail__tabs[data-v-77bc97aa] .el-tabs__nav-wrap {\n margin-bottom: 0;\n}\n.request-detail__tabs[data-v-77bc97aa] .el-tabs__nav-prev,\n.request-detail__tabs[data-v-77bc97aa] .el-tabs__nav-next {\n height: 30px;\n line-height: 30px;\n}\n.request-detail__tab-pane[data-v-77bc97aa] {\n height: 100%;\n overflow-y: auto;\n background-color: var(--mb-bg-base);\n color: var(--mb-text-primary);\n}\n.request-detail__section[data-v-77bc97aa] {\n margin-bottom: 12px;\n}\n.request-detail__section[data-v-77bc97aa]:last-child {\n margin-bottom: 0;\n}\n.request-detail__section-title[data-v-77bc97aa] {\n padding: 5px 8px;\n font-size: 11px;\n font-weight: 600;\n color: var(--mb-text-muted);\n background-color: var(--mb-bg-mantle);\n border-bottom: 1px solid var(--mb-border-color-light);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n.request-detail__item[data-v-77bc97aa] {\n display: flex;\n font-size: 12px;\n border-bottom: 1px solid var(--mb-border-color-light);\n background-color: var(--mb-bg-base);\n}\n.request-detail__label[data-v-77bc97aa] {\n flex: 0 0 100px;\n text-align: right;\n line-height: 1;\n padding: 4px 6px;\n font-weight: 400;\n color: var(--mb-text-secondary);\n background-color: var(--mb-selected-bg);\n}\n.request-detail__value[data-v-77bc97aa] {\n flex: 1;\n padding: 4px 6px;\n line-height: 1;\n text-align: left;\n word-break: break-all;\n color: var(--mb-text-primary);\n background-color: var(--mb-bg-base);\n}\n.request-detail__empty[data-v-77bc97aa] {\n padding: 20px;\n text-align: center;\n color: var(--mb-text-muted);\n font-size: 12px;\n}\n.request-detail__payload-editor[data-v-77bc97aa] {\n height: 200px;\n overflow: hidden;\n}\n.container[data-v-77bc97aa] {\n display: flex;\n flex: 1;\n border: 1px solid var(--mb-border-color-light);\n border-left: none;\n overflow: hidden;\n}\n.container .detail[data-v-77bc97aa] {\n position: relative;\n flex: 1;\n overflow: hidden;\n border-left: 1px solid var(--mb-border-color-deep);\n background: var(--mb-bg-base);\n}\n.container .detail--empty[data-v-77bc97aa] {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.container .detail__placeholder[data-v-77bc97aa] {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 8px;\n color: var(--mb-text-muted);\n}\n.container .detail__placeholder-icon[data-v-77bc97aa] {\n font-size: 32px;\n opacity: 0.4;\n}\n.container .detail__placeholder-text[data-v-77bc97aa] {\n font-size: 13px;\n}\n.container .detail__tabs[data-v-77bc97aa] {\n box-shadow: none;\n border: none;\n height: 100%;\n display: flex;\n flex-direction: column;\n}\n.container .detail__tabs[data-v-77bc97aa] .el-tabs__content {\n padding: 0;\n flex: 1;\n overflow: hidden;\n background-color: var(--mb-bg-base);\n}\n.container .detail__tabs[data-v-77bc97aa] .el-tabs__header {\n background-color: var(--mb-bg-base);\n border-bottom-color: var(--mb-border-color-light);\n}\n.container .detail__tabs[data-v-77bc97aa] .el-tabs__item {\n height: 30px;\n line-height: 30px;\n font-size: 12px;\n background-color: var(--mb-bg-base);\n color: var(--mb-text-primary);\n border-right-color: var(--mb-border-color-light);\n border-left-color: var(--mb-border-color-light);\n}\n.container .detail__tabs[data-v-77bc97aa] .el-tabs__item.is-active {\n background-color: var(--mb-selected-bg);\n}\n.container .detail__tabs[data-v-77bc97aa] .el-tabs__nav-wrap {\n margin-bottom: 0;\n}\n.container .detail__tabs[data-v-77bc97aa] .el-tabs__nav-prev,\n.container .detail__tabs[data-v-77bc97aa] .el-tabs__nav-next {\n height: 30px;\n line-height: 30px;\n}\n.container .detail__tab-pane[data-v-77bc97aa] {\n height: 100%;\n overflow-y: auto;\n background-color: var(--mb-bg-base);\n color: var(--mb-text-primary);\n}\n.container .detail__section[data-v-77bc97aa] {\n margin-bottom: 12px;\n}\n.container .detail__section[data-v-77bc97aa]:last-child {\n margin-bottom: 0;\n}\n.container .detail__section-title[data-v-77bc97aa] {\n padding: 5px 8px;\n font-size: 11px;\n font-weight: 600;\n color: var(--mb-text-muted);\n background-color: var(--mb-bg-mantle);\n border-bottom: 1px solid var(--mb-border-color-light);\n text-transform: uppercase;\n letter-spacing: 0.5px;\n}\n.container .detail__item[data-v-77bc97aa] {\n display: flex;\n font-size: 12px;\n border-bottom: 1px solid var(--mb-border-color-light);\n background-color: var(--mb-bg-base);\n}\n.container .detail__label[data-v-77bc97aa] {\n flex: 0 0 100px;\n text-align: right;\n line-height: 1;\n padding: 4px 6px;\n font-weight: 400;\n color: var(--mb-text-secondary);\n background-color: var(--mb-selected-bg);\n}\n.container .detail__value[data-v-77bc97aa] {\n flex: 1;\n padding: 4px 6px;\n line-height: 1;\n text-align: left;\n word-break: break-all;\n color: var(--mb-text-primary);\n background-color: var(--mb-bg-base);\n}\n.container .detail__empty[data-v-77bc97aa] {\n padding: 20px;\n text-align: center;\n color: var(--mb-text-muted);\n font-size: 12px;\n}\n.container .detail__payload-editor[data-v-77bc97aa] {\n height: 200px;\n overflow: hidden;\n}\n.container .detail .el-icon-close[data-v-77bc97aa] {\n position: absolute;\n top: 0;\n cursor: pointer;\n right: 0;\n width: 28px;\n height: 28px;\n z-index: 1;\n font-size: 14px;\n line-height: 28px;\n}\n[data-v-77bc97aa] .el-table {\n border-color: var(--mb-border-color-light) !important;\n border-left: none;\n border-bottom: none;\n border-top: none;\n}\n[data-v-77bc97aa] .el-table::before,[data-v-77bc97aa] .el-table::after {\n content: none;\n}\n[data-v-77bc97aa] .el-table .el-table__cell {\n border-color: var(--mb-border-color-light) !important;\n}\n[data-v-77bc97aa] .el-table .el-table__body .el-table__cell {\n padding: 0 !important;\n}\n[data-v-77bc97aa] .el-table .cell {\n line-height: 1.4 !important;\n}\n[data-v-77bc97aa] .el-table .el-table__row:hover .name-expand-shadow {\n background: var(--mb-hover-bg);\n}\n[data-v-77bc97aa] .el-table .el-table__row:hover .name-expand-icon {\n background: var(--mb-hover-bg);\n}\n[data-v-77bc97aa] .el-table .el-button.danger {\n color: var(--mb-accent-red);\n}\n", ""]);
8386
+ ___CSS_LOADER_EXPORT___.push([module.id, ".request-detail[data-v-77bc97aa] {\n position: relative;\n flex: 1;\n overflow: hidden;\n border-left: 1px solid var(--mb-border-color-deep);\n background: var(--mb-bg-base);\n}\n.request-detail--empty[data-v-77bc97aa] {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.request-detail__placeholder[data-v-77bc97aa] {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 8px;\n color: var(--mb-text-muted);\n}\n.request-detail__placeholder-text[data-v-77bc97aa] {\n font-size: 13px;\n}\n", ""]);
8387
+ // Exports
8388
+ /* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___);
8389
+
8390
+
8391
+ /***/ }),
8392
+
8393
+ /***/ "./node_modules/.pnpm/css-loader@6.11.0_webpack@5.100.2/node_modules/css-loader/dist/cjs.js??clonedRuleSet-32.use[1]!./node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/.pnpm/postcss-loader@6.2.1_postcss@8.5.6_webpack@5.100.1/node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-32.use[2]!./node_modules/.pnpm/less-loader@11.0.0_less@4.1.2_webpack@5.100.2/node_modules/less-loader/dist/cjs.js??clonedRuleSet-32.use[3]!./node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/content/RequestInfoDialog.vue?vue&type=style&index=0&id=b9cf4022&lang=less":
8394
+ /*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
8395
+ !*** ./node_modules/.pnpm/css-loader@6.11.0_webpack@5.100.2/node_modules/css-loader/dist/cjs.js??clonedRuleSet-32.use[1]!./node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/.pnpm/postcss-loader@6.2.1_postcss@8.5.6_webpack@5.100.1/node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-32.use[2]!./node_modules/.pnpm/less-loader@11.0.0_less@4.1.2_webpack@5.100.2/node_modules/less-loader/dist/cjs.js??clonedRuleSet-32.use[3]!./node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/content/RequestInfoDialog.vue?vue&type=style&index=0&id=b9cf4022&lang=less ***!
8396
+ \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
8397
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
8398
+
8399
+ "use strict";
8400
+ __webpack_require__.r(__webpack_exports__);
8401
+ /* harmony import */ var _node_modules_pnpm_css_loader_6_11_0_webpack_5_100_2_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../node_modules/.pnpm/css-loader@6.11.0_webpack@5.100.2/node_modules/css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/.pnpm/css-loader@6.11.0_webpack@5.100.2/node_modules/css-loader/dist/runtime/noSourceMaps.js");
8402
+ /* harmony import */ var _node_modules_pnpm_css_loader_6_11_0_webpack_5_100_2_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_pnpm_css_loader_6_11_0_webpack_5_100_2_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
8403
+ /* harmony import */ var _node_modules_pnpm_css_loader_6_11_0_webpack_5_100_2_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../node_modules/.pnpm/css-loader@6.11.0_webpack@5.100.2/node_modules/css-loader/dist/runtime/api.js */ "./node_modules/.pnpm/css-loader@6.11.0_webpack@5.100.2/node_modules/css-loader/dist/runtime/api.js");
8404
+ /* harmony import */ var _node_modules_pnpm_css_loader_6_11_0_webpack_5_100_2_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_pnpm_css_loader_6_11_0_webpack_5_100_2_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
8405
+ // Imports
8406
+
8407
+
8408
+ var ___CSS_LOADER_EXPORT___ = _node_modules_pnpm_css_loader_6_11_0_webpack_5_100_2_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_pnpm_css_loader_6_11_0_webpack_5_100_2_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
8409
+ // Module
8410
+ ___CSS_LOADER_EXPORT___.push([module.id, ".request-info-dialog {\n border-radius: 10px !important;\n overflow: hidden;\n height: 90vh;\n display: flex !important;\n flex-direction: column;\n}\n.request-info-dialog .el-dialog__header {\n padding: 0 !important;\n border-bottom: none !important;\n flex-shrink: 0;\n}\n.request-info-dialog .el-dialog__body {\n padding: 0 !important;\n flex: 1;\n min-height: 0;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n}\n", ""]);
8411
+ // Exports
8412
+ /* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___);
8413
+
8414
+
8415
+ /***/ }),
8416
+
8417
+ /***/ "./node_modules/.pnpm/css-loader@6.11.0_webpack@5.100.2/node_modules/css-loader/dist/cjs.js??clonedRuleSet-32.use[1]!./node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/.pnpm/postcss-loader@6.2.1_postcss@8.5.6_webpack@5.100.1/node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-32.use[2]!./node_modules/.pnpm/less-loader@11.0.0_less@4.1.2_webpack@5.100.2/node_modules/less-loader/dist/cjs.js??clonedRuleSet-32.use[3]!./node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/content/RequestInfoDialog.vue?vue&type=style&index=1&id=b9cf4022&lang=less&scoped=true":
8418
+ /*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
8419
+ !*** ./node_modules/.pnpm/css-loader@6.11.0_webpack@5.100.2/node_modules/css-loader/dist/cjs.js??clonedRuleSet-32.use[1]!./node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/.pnpm/postcss-loader@6.2.1_postcss@8.5.6_webpack@5.100.1/node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-32.use[2]!./node_modules/.pnpm/less-loader@11.0.0_less@4.1.2_webpack@5.100.2/node_modules/less-loader/dist/cjs.js??clonedRuleSet-32.use[3]!./node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/content/RequestInfoDialog.vue?vue&type=style&index=1&id=b9cf4022&lang=less&scoped=true ***!
8420
+ \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
8421
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
8422
+
8423
+ "use strict";
8424
+ __webpack_require__.r(__webpack_exports__);
8425
+ /* harmony import */ var _node_modules_pnpm_css_loader_6_11_0_webpack_5_100_2_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../node_modules/.pnpm/css-loader@6.11.0_webpack@5.100.2/node_modules/css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/.pnpm/css-loader@6.11.0_webpack@5.100.2/node_modules/css-loader/dist/runtime/noSourceMaps.js");
8426
+ /* harmony import */ var _node_modules_pnpm_css_loader_6_11_0_webpack_5_100_2_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_pnpm_css_loader_6_11_0_webpack_5_100_2_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
8427
+ /* harmony import */ var _node_modules_pnpm_css_loader_6_11_0_webpack_5_100_2_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../node_modules/.pnpm/css-loader@6.11.0_webpack@5.100.2/node_modules/css-loader/dist/runtime/api.js */ "./node_modules/.pnpm/css-loader@6.11.0_webpack@5.100.2/node_modules/css-loader/dist/runtime/api.js");
8428
+ /* harmony import */ var _node_modules_pnpm_css_loader_6_11_0_webpack_5_100_2_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_pnpm_css_loader_6_11_0_webpack_5_100_2_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
8429
+ // Imports
8430
+
8431
+
8432
+ var ___CSS_LOADER_EXPORT___ = _node_modules_pnpm_css_loader_6_11_0_webpack_5_100_2_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_pnpm_css_loader_6_11_0_webpack_5_100_2_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
8433
+ // Module
8434
+ ___CSS_LOADER_EXPORT___.push([module.id, ".rid-header[data-v-b9cf4022] {\n position: relative;\n background: var(--mb-bg-mantle);\n border-bottom: 1px solid var(--mb-border-color);\n}\n.rid-header__info[data-v-b9cf4022] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 10px 48px 10px 16px;\n min-height: 42px;\n}\n.rid-header__method[data-v-b9cf4022] {\n flex-shrink: 0;\n display: inline-flex;\n align-items: center;\n height: 18px;\n padding: 0 6px;\n border-radius: 3px;\n font-family: 'Menlo', 'Monaco', 'Courier New', monospace;\n font-size: 10px;\n font-weight: 700;\n letter-spacing: 0.5px;\n color: #fff;\n text-transform: uppercase;\n}\n.rid-header__method.is-get[data-v-b9cf4022] {\n background: #1677ff;\n}\n.rid-header__method.is-post[data-v-b9cf4022] {\n background: #52c41a;\n}\n.rid-header__method.is-put[data-v-b9cf4022] {\n background: #fa8c16;\n}\n.rid-header__method.is-delete[data-v-b9cf4022] {\n background: #ff4d4f;\n}\n.rid-header__method.is-patch[data-v-b9cf4022] {\n background: #722ed1;\n}\n.rid-header__method.is-head[data-v-b9cf4022] {\n background: #13c2c2;\n}\n.rid-header__method.is-options[data-v-b9cf4022] {\n background: #8c8c8c;\n}\n.rid-header__url[data-v-b9cf4022] {\n flex: 1;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n font-family: 'Menlo', 'Monaco', 'Courier New', monospace;\n font-size: 12px;\n color: var(--mb-text-primary);\n line-height: 1.4;\n cursor: default;\n}\n.rid-header__status[data-v-b9cf4022] {\n flex-shrink: 0;\n display: inline-flex;\n align-items: center;\n height: 18px;\n padding: 0 6px;\n border-radius: 3px;\n font-size: 11px;\n font-weight: 600;\n font-family: 'Menlo', 'Monaco', 'Courier New', monospace;\n}\n.rid-header__status.is-2xx[data-v-b9cf4022] {\n background: #f6ffed;\n color: #52c41a;\n border: 1px solid #b7eb8f;\n}\n.rid-header__status.is-3xx[data-v-b9cf4022] {\n background: #e6f4ff;\n color: #1677ff;\n border: 1px solid #91caff;\n}\n.rid-header__status.is-4xx[data-v-b9cf4022] {\n background: #fff7e6;\n color: #fa8c16;\n border: 1px solid #ffd591;\n}\n.rid-header__status.is-5xx[data-v-b9cf4022] {\n background: #fff2f0;\n color: #ff4d4f;\n border: 1px solid #ffccc7;\n}\n.rid-header__copy[data-v-b9cf4022] {\n flex-shrink: 0;\n width: 26px;\n height: 26px;\n display: flex;\n align-items: center;\n justify-content: center;\n border: 1px solid var(--mb-border-color);\n background: var(--mb-bg-base);\n color: var(--mb-text-muted);\n font-size: 13px;\n border-radius: 5px;\n cursor: pointer;\n transition: all 0.15s;\n}\n.rid-header__copy[data-v-b9cf4022]:hover {\n border-color: var(--mb-accent-blue);\n color: var(--mb-accent-blue);\n background: var(--mb-accent-blue-bg);\n}\n.rid-header__copy.is-copied[data-v-b9cf4022] {\n border-color: var(--mb-accent-green);\n color: var(--mb-accent-green);\n background: var(--mb-accent-green-bg);\n}\n.rid-header__close[data-v-b9cf4022] {\n position: absolute;\n top: 10px;\n right: 12px;\n width: 24px;\n height: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n border: none;\n background: transparent;\n color: var(--mb-text-muted);\n font-size: 14px;\n border-radius: 4px;\n cursor: pointer;\n transition: background 0.15s, color 0.15s;\n}\n.rid-header__close[data-v-b9cf4022]:hover {\n background: var(--mb-hover-bg);\n color: var(--mb-text-primary);\n}\n.rid-header__tabs[data-v-b9cf4022] {\n display: flex;\n align-items: flex-end;\n gap: 0;\n padding: 0 12px;\n background: var(--mb-bg-base);\n border-top: 1px solid var(--mb-border-color-light);\n}\n.rid-header__tab[data-v-b9cf4022] {\n position: relative;\n padding: 7px 14px;\n font-size: 12px;\n font-weight: 500;\n color: var(--mb-text-muted);\n cursor: pointer;\n transition: color 0.15s;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n white-space: nowrap;\n}\n.rid-header__tab[data-v-b9cf4022]::after {\n content: '';\n position: absolute;\n bottom: 0;\n left: 14px;\n right: 14px;\n height: 2px;\n background: var(--mb-accent-blue);\n border-radius: 1px 1px 0 0;\n transform: scaleX(0);\n transition: transform 0.18s ease;\n}\n.rid-header__tab[data-v-b9cf4022]:hover {\n color: var(--mb-text-primary);\n}\n.rid-header__tab.is-active[data-v-b9cf4022] {\n color: var(--mb-accent-blue);\n}\n.rid-header__tab.is-active[data-v-b9cf4022]::after {\n transform: scaleX(1);\n}\n.rid-body[data-v-b9cf4022] {\n flex: 1;\n min-height: 0;\n display: flex;\n flex-direction: column;\n background: var(--mb-bg-base);\n}\n.rid-pane[data-v-b9cf4022] {\n flex: 1;\n min-height: 0;\n overflow-y: auto;\n padding: 0;\n}\n.rid-pane--editor[data-v-b9cf4022] {\n position: relative;\n overflow: hidden;\n}\n.rid-section[data-v-b9cf4022] {\n margin-bottom: 0;\n overflow: hidden;\n border-bottom: 1px solid var(--mb-border-color-light);\n}\n.rid-section[data-v-b9cf4022]:last-child {\n border-bottom: none;\n}\n.rid-section__title[data-v-b9cf4022] {\n padding: 5px 16px;\n font-size: 10px;\n font-weight: 700;\n letter-spacing: 0.8px;\n text-transform: uppercase;\n color: var(--mb-text-muted);\n background: var(--mb-bg-mantle);\n border-bottom: 1px solid var(--mb-border-color-light);\n}\n.rid-kv[data-v-b9cf4022] {\n display: flex;\n font-size: 12px;\n border-bottom: 1px solid var(--mb-border-color-light);\n}\n.rid-kv[data-v-b9cf4022]:last-child {\n border-bottom: none;\n}\n.rid-kv__key[data-v-b9cf4022] {\n flex: 0 0 140px;\n padding: 5px 12px 5px 16px;\n text-align: right;\n font-weight: 500;\n color: var(--mb-text-muted);\n background: var(--mb-bg-mantle);\n border-right: 1px solid var(--mb-border-color-light);\n word-break: break-all;\n font-family: 'Menlo', 'Monaco', 'Courier New', monospace;\n font-size: 11px;\n}\n.rid-kv__val[data-v-b9cf4022] {\n flex: 1;\n padding: 5px 16px;\n color: var(--mb-text-primary);\n word-break: break-all;\n line-height: 1.5;\n}\n.rid-empty[data-v-b9cf4022] {\n padding: 20px 16px;\n font-size: 12px;\n color: var(--mb-text-muted);\n text-align: center;\n}\n.rid-editor-wrap[data-v-b9cf4022] {\n height: 300px;\n}\n.rid-editor-wrap--full[data-v-b9cf4022] {\n position: absolute;\n inset: 0;\n height: auto;\n}\n", ""]);
8362
8435
  // Exports
8363
8436
  /* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___);
8364
8437
 
@@ -8382,7 +8455,31 @@ __webpack_require__.r(__webpack_exports__);
8382
8455
 
8383
8456
  var ___CSS_LOADER_EXPORT___ = _node_modules_pnpm_css_loader_6_11_0_webpack_5_100_2_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_pnpm_css_loader_6_11_0_webpack_5_100_2_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
8384
8457
  // Module
8385
- ___CSS_LOADER_EXPORT___.push([module.id, ".request-list[data-v-1d02c492] {\n width: 55%;\n}\n.request-list__table[data-v-1d02c492] {\n border-color: var(--mb-border-color-light) !important;\n border-left: none;\n border-bottom: none;\n border-top: none;\n}\n.request-list__table[data-v-1d02c492]::before,\n.request-list__table[data-v-1d02c492]::after {\n content: none;\n}\n.request-list__table[data-v-1d02c492] .el-table__cell {\n border-color: var(--mb-border-color-light) !important;\n}\n.request-list__table[data-v-1d02c492] .el-table__body .el-table__cell {\n padding: 0 !important;\n}\n.request-list__table[data-v-1d02c492] .cell {\n line-height: 1.4 !important;\n}\n.request-list__table[data-v-1d02c492] .el-table__row:hover .request-list__filename-expand-shadow {\n background: var(--mb-hover-bg);\n}\n.request-list__table[data-v-1d02c492] .el-table__row:hover .request-list__filename-expand-icon {\n background: var(--mb-hover-bg);\n}\n.request-list__table[data-v-1d02c492] th.el-table__cell > .cell {\n color: var(--mb-text-primary);\n font-weight: 500;\n}\n.request-list__table[data-v-1d02c492] .el-table__body tr.current-row>td.el-table__cell {\n background-color: var(--mb-active-row-bg);\n color: var(--mb-active-row-text);\n}\n.request-list__table[data-v-1d02c492] .el-table__empty-block {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.request-list__table[data-v-1d02c492] .el-table__empty-text {\n line-height: unset;\n width: auto;\n}\n.request-list__filename[data-v-1d02c492] {\n position: relative;\n white-space: nowrap;\n line-height: 0;\n overflow-x: auto;\n overflow-y: hidden;\n /*隐藏滚动条,当IE下溢出,仍然可以滚动*/\n -ms-overflow-style: none;\n /*火狐下隐藏滚动条*/\n overflow: -moz-scrollbars-none;\n scrollbar-width: none;\n /*Chrome下隐藏滚动条,溢出可以透明滚动*/\n}\n.request-list__filename[data-v-1d02c492]::-webkit-scrollbar {\n display: none;\n}\n.request-list__filename-value[data-v-1d02c492] {\n white-space: nowrap;\n position: relative;\n line-height: 23px;\n vertical-align: top;\n font-weight: bold;\n display: inline-block;\n}\n.request-list__filename-value--active[data-v-1d02c492] {\n color: var(--mb-tag-saved-text);\n}\n.request-list__filename-value--error[data-v-1d02c492] {\n color: var(--mb-tag-error-text);\n}\n.request-list__filename-expand-shadow[data-v-1d02c492] {\n width: 500px;\n height: 23px;\n background: var(--mb-bg-base);\n display: inline-block;\n z-index: 30;\n position: relative;\n}\n.request-list__filename-expand-icon[data-v-1d02c492] {\n width: 12px;\n position: absolute;\n top: 8px;\n right: 0;\n background: var(--mb-bg-base);\n z-index: 1;\n}\n.request-list__remark-text[data-v-1d02c492] {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n cursor: pointer;\n color: var(--mb-text-secondary);\n line-height: 23px;\n padding: 0 4px;\n}\n.request-list__remark-text[data-v-1d02c492]:hover {\n color: var(--mb-accent-blue);\n}\n.request-list__remark-placeholder[data-v-1d02c492] {\n color: var(--mb-text-placeholder);\n cursor: pointer;\n line-height: 23px;\n padding: 0 4px;\n}\n.request-list__remark-placeholder[data-v-1d02c492]:hover {\n color: var(--mb-text-muted);\n}\n.request-list__btn[data-v-1d02c492] {\n font-size: 16px;\n padding: 4px 2px;\n}\n.request-list__btn--delete[data-v-1d02c492] {\n color: var(--mb-accent-red);\n}\n.request-list__btn--locked[data-v-1d02c492] {\n color: var(--mb-accent-green);\n}\n.request-list__empty-state[data-v-1d02c492] {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 8px;\n color: var(--mb-text-muted);\n}\n.request-list__empty-icon[data-v-1d02c492] {\n font-size: 32px;\n opacity: 0.4;\n}\n.request-list__empty-text[data-v-1d02c492] {\n font-size: 13px;\n}\n.container[data-v-1d02c492] {\n display: flex;\n flex: 1;\n border: 1px solid var(--mb-border-color-light);\n border-left: none;\n overflow: hidden;\n}\n.container .list-body[data-v-1d02c492] {\n width: 55%;\n}\n.container .list-body__table[data-v-1d02c492] {\n border-color: var(--mb-border-color-light) !important;\n border-left: none;\n border-bottom: none;\n border-top: none;\n}\n.container .list-body__table[data-v-1d02c492]::before,\n.container .list-body__table[data-v-1d02c492]::after {\n content: none;\n}\n.container .list-body__table[data-v-1d02c492] .el-table__cell {\n border-color: var(--mb-border-color-light) !important;\n}\n.container .list-body__table[data-v-1d02c492] .el-table__body .el-table__cell {\n padding: 0 !important;\n}\n.container .list-body__table[data-v-1d02c492] .cell {\n line-height: 1.4 !important;\n}\n.container .list-body__table[data-v-1d02c492] .el-table__row:hover .request-list__filename-expand-shadow {\n background: var(--mb-hover-bg);\n}\n.container .list-body__table[data-v-1d02c492] .el-table__row:hover .request-list__filename-expand-icon {\n background: var(--mb-hover-bg);\n}\n.container .list-body__table[data-v-1d02c492] th.el-table__cell > .cell {\n color: var(--mb-text-primary);\n font-weight: 500;\n}\n.container .list-body__table[data-v-1d02c492] .el-table__body tr.current-row>td.el-table__cell {\n background-color: var(--mb-active-row-bg);\n color: var(--mb-active-row-text);\n}\n.container .list-body__table[data-v-1d02c492] .el-table__empty-block {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.container .list-body__table[data-v-1d02c492] .el-table__empty-text {\n line-height: unset;\n width: auto;\n}\n.container .list-body__filename[data-v-1d02c492] {\n position: relative;\n white-space: nowrap;\n line-height: 0;\n overflow-x: auto;\n overflow-y: hidden;\n /*隐藏滚动条,当IE下溢出,仍然可以滚动*/\n -ms-overflow-style: none;\n /*火狐下隐藏滚动条*/\n overflow: -moz-scrollbars-none;\n scrollbar-width: none;\n /*Chrome下隐藏滚动条,溢出可以透明滚动*/\n}\n.container .list-body__filename[data-v-1d02c492]::-webkit-scrollbar {\n display: none;\n}\n.container .list-body__filename-value[data-v-1d02c492] {\n white-space: nowrap;\n position: relative;\n line-height: 23px;\n vertical-align: top;\n font-weight: bold;\n display: inline-block;\n}\n.container .list-body__filename-value--active[data-v-1d02c492] {\n color: var(--mb-tag-saved-text);\n}\n.container .list-body__filename-value--error[data-v-1d02c492] {\n color: var(--mb-tag-error-text);\n}\n.container .list-body__filename-expand-shadow[data-v-1d02c492] {\n width: 500px;\n height: 23px;\n background: var(--mb-bg-base);\n display: inline-block;\n z-index: 30;\n position: relative;\n}\n.container .list-body__filename-expand-icon[data-v-1d02c492] {\n width: 12px;\n position: absolute;\n top: 8px;\n right: 0;\n background: var(--mb-bg-base);\n z-index: 1;\n}\n.container .list-body__remark-text[data-v-1d02c492] {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n cursor: pointer;\n color: var(--mb-text-secondary);\n line-height: 23px;\n padding: 0 4px;\n}\n.container .list-body__remark-text[data-v-1d02c492]:hover {\n color: var(--mb-accent-blue);\n}\n.container .list-body__remark-placeholder[data-v-1d02c492] {\n color: var(--mb-text-placeholder);\n cursor: pointer;\n line-height: 23px;\n padding: 0 4px;\n}\n.container .list-body__remark-placeholder[data-v-1d02c492]:hover {\n color: var(--mb-text-muted);\n}\n.container .list-body__btn[data-v-1d02c492] {\n font-size: 16px;\n padding: 4px 2px;\n}\n.container .list-body__btn--delete[data-v-1d02c492] {\n color: var(--mb-accent-red);\n}\n.container .list-body__btn--locked[data-v-1d02c492] {\n color: var(--mb-accent-green);\n}\n.container .list-body__empty-state[data-v-1d02c492] {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 8px;\n color: var(--mb-text-muted);\n}\n.container .list-body__empty-icon[data-v-1d02c492] {\n font-size: 32px;\n opacity: 0.4;\n}\n.container .list-body__empty-text[data-v-1d02c492] {\n font-size: 13px;\n}\n", ""]);
8458
+ ___CSS_LOADER_EXPORT___.push([module.id, ".request-list[data-v-1d02c492] {\n width: 55%;\n}\n.request-list__table[data-v-1d02c492] {\n border-color: var(--mb-border-color-light) !important;\n border-left: none;\n border-bottom: none;\n border-top: none;\n}\n.request-list__table[data-v-1d02c492]::before,\n.request-list__table[data-v-1d02c492]::after {\n content: none;\n}\n.request-list__table[data-v-1d02c492] .el-table__cell {\n border-color: var(--mb-border-color-light) !important;\n}\n.request-list__table[data-v-1d02c492] .el-table__body .el-table__cell {\n padding: 0 !important;\n}\n.request-list__table[data-v-1d02c492] .cell {\n line-height: 1.4 !important;\n}\n.request-list__table[data-v-1d02c492] .el-table__row:hover .request-list__filename-expand-shadow {\n background: var(--mb-hover-bg);\n}\n.request-list__table[data-v-1d02c492] .el-table__row:hover .request-list__filename-expand-icon {\n background: var(--mb-hover-bg);\n}\n.request-list__table[data-v-1d02c492] th.el-table__cell > .cell {\n color: var(--mb-text-primary);\n font-weight: 500;\n}\n.request-list__table[data-v-1d02c492] .el-table__body tr.current-row>td.el-table__cell {\n background-color: var(--mb-active-row-bg);\n color: var(--mb-active-row-text);\n}\n.request-list__table[data-v-1d02c492] .el-table__empty-block {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.request-list__table[data-v-1d02c492] .el-table__empty-text {\n line-height: unset;\n width: auto;\n}\n.request-list__filename[data-v-1d02c492] {\n position: relative;\n white-space: nowrap;\n line-height: 0;\n overflow-x: auto;\n overflow-y: hidden;\n /*隐藏滚动条,当IE下溢出,仍然可以滚动*/\n -ms-overflow-style: none;\n /*火狐下隐藏滚动条*/\n overflow: -moz-scrollbars-none;\n scrollbar-width: none;\n /*Chrome下隐藏滚动条,溢出可以透明滚动*/\n}\n.request-list__filename[data-v-1d02c492]::-webkit-scrollbar {\n display: none;\n}\n.request-list__filename-value[data-v-1d02c492] {\n white-space: nowrap;\n position: relative;\n line-height: 23px;\n vertical-align: top;\n font-weight: bold;\n display: inline-block;\n}\n.request-list__filename-value--active[data-v-1d02c492] {\n color: var(--mb-tag-saved-text);\n}\n.request-list__filename-value--error[data-v-1d02c492] {\n color: var(--mb-tag-error-text);\n}\n.request-list__filename-expand-shadow[data-v-1d02c492] {\n width: 500px;\n height: 23px;\n background: var(--mb-bg-base);\n display: inline-block;\n z-index: 30;\n position: relative;\n}\n.request-list__filename-expand-icon[data-v-1d02c492] {\n width: 12px;\n position: absolute;\n top: 8px;\n right: 0;\n background: var(--mb-bg-base);\n z-index: 1;\n}\n.request-list__remark-text[data-v-1d02c492] {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n cursor: pointer;\n color: var(--mb-text-secondary);\n line-height: 23px;\n padding: 0 4px;\n}\n.request-list__remark-text[data-v-1d02c492]:hover {\n color: var(--mb-accent-blue);\n}\n.request-list__remark-placeholder[data-v-1d02c492] {\n color: var(--mb-text-placeholder);\n cursor: pointer;\n line-height: 23px;\n padding: 0 4px;\n}\n.request-list__remark-placeholder[data-v-1d02c492]:hover {\n color: var(--mb-text-muted);\n}\n.request-list__btn[data-v-1d02c492] {\n font-size: 16px;\n padding: 4px 2px;\n}\n.request-list__btn--delete[data-v-1d02c492] {\n color: var(--mb-accent-red);\n}\n.request-list__btn--locked[data-v-1d02c492] {\n color: var(--mb-accent-green);\n}\n.request-list__btn--more[data-v-1d02c492] {\n color: var(--mb-text-muted);\n font-size: 15px;\n transition: color 0.15s;\n}\n.request-list__btn--more[data-v-1d02c492]:hover {\n color: var(--mb-accent-blue);\n}\n.request-list__btn--more .el-icon-more[data-v-1d02c492] {\n font-size: 15px;\n}\n.request-list__empty-state[data-v-1d02c492] {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 8px;\n color: var(--mb-text-muted);\n}\n.request-list__empty-icon[data-v-1d02c492] {\n font-size: 32px;\n opacity: 0.4;\n}\n.request-list__empty-text[data-v-1d02c492] {\n font-size: 13px;\n}\n.container[data-v-1d02c492] {\n display: flex;\n flex: 1;\n border: 1px solid var(--mb-border-color-light);\n border-left: none;\n overflow: hidden;\n}\n.container .list-body[data-v-1d02c492] {\n width: 55%;\n}\n.container .list-body__table[data-v-1d02c492] {\n border-color: var(--mb-border-color-light) !important;\n border-left: none;\n border-bottom: none;\n border-top: none;\n}\n.container .list-body__table[data-v-1d02c492]::before,\n.container .list-body__table[data-v-1d02c492]::after {\n content: none;\n}\n.container .list-body__table[data-v-1d02c492] .el-table__cell {\n border-color: var(--mb-border-color-light) !important;\n}\n.container .list-body__table[data-v-1d02c492] .el-table__body .el-table__cell {\n padding: 0 !important;\n}\n.container .list-body__table[data-v-1d02c492] .cell {\n line-height: 1.4 !important;\n}\n.container .list-body__table[data-v-1d02c492] .el-table__row:hover .request-list__filename-expand-shadow {\n background: var(--mb-hover-bg);\n}\n.container .list-body__table[data-v-1d02c492] .el-table__row:hover .request-list__filename-expand-icon {\n background: var(--mb-hover-bg);\n}\n.container .list-body__table[data-v-1d02c492] th.el-table__cell > .cell {\n color: var(--mb-text-primary);\n font-weight: 500;\n}\n.container .list-body__table[data-v-1d02c492] .el-table__body tr.current-row>td.el-table__cell {\n background-color: var(--mb-active-row-bg);\n color: var(--mb-active-row-text);\n}\n.container .list-body__table[data-v-1d02c492] .el-table__empty-block {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.container .list-body__table[data-v-1d02c492] .el-table__empty-text {\n line-height: unset;\n width: auto;\n}\n.container .list-body__filename[data-v-1d02c492] {\n position: relative;\n white-space: nowrap;\n line-height: 0;\n overflow-x: auto;\n overflow-y: hidden;\n /*隐藏滚动条,当IE下溢出,仍然可以滚动*/\n -ms-overflow-style: none;\n /*火狐下隐藏滚动条*/\n overflow: -moz-scrollbars-none;\n scrollbar-width: none;\n /*Chrome下隐藏滚动条,溢出可以透明滚动*/\n}\n.container .list-body__filename[data-v-1d02c492]::-webkit-scrollbar {\n display: none;\n}\n.container .list-body__filename-value[data-v-1d02c492] {\n white-space: nowrap;\n position: relative;\n line-height: 23px;\n vertical-align: top;\n font-weight: bold;\n display: inline-block;\n}\n.container .list-body__filename-value--active[data-v-1d02c492] {\n color: var(--mb-tag-saved-text);\n}\n.container .list-body__filename-value--error[data-v-1d02c492] {\n color: var(--mb-tag-error-text);\n}\n.container .list-body__filename-expand-shadow[data-v-1d02c492] {\n width: 500px;\n height: 23px;\n background: var(--mb-bg-base);\n display: inline-block;\n z-index: 30;\n position: relative;\n}\n.container .list-body__filename-expand-icon[data-v-1d02c492] {\n width: 12px;\n position: absolute;\n top: 8px;\n right: 0;\n background: var(--mb-bg-base);\n z-index: 1;\n}\n.container .list-body__remark-text[data-v-1d02c492] {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n cursor: pointer;\n color: var(--mb-text-secondary);\n line-height: 23px;\n padding: 0 4px;\n}\n.container .list-body__remark-text[data-v-1d02c492]:hover {\n color: var(--mb-accent-blue);\n}\n.container .list-body__remark-placeholder[data-v-1d02c492] {\n color: var(--mb-text-placeholder);\n cursor: pointer;\n line-height: 23px;\n padding: 0 4px;\n}\n.container .list-body__remark-placeholder[data-v-1d02c492]:hover {\n color: var(--mb-text-muted);\n}\n.container .list-body__btn[data-v-1d02c492] {\n font-size: 16px;\n padding: 4px 2px;\n}\n.container .list-body__btn--delete[data-v-1d02c492] {\n color: var(--mb-accent-red);\n}\n.container .list-body__btn--locked[data-v-1d02c492] {\n color: var(--mb-accent-green);\n}\n.container .list-body__btn--more[data-v-1d02c492] {\n color: var(--mb-text-muted);\n font-size: 15px;\n transition: color 0.15s;\n}\n.container .list-body__btn--more[data-v-1d02c492]:hover {\n color: var(--mb-accent-blue);\n}\n.container .list-body__btn--more .el-icon-more[data-v-1d02c492] {\n font-size: 15px;\n}\n.container .list-body__empty-state[data-v-1d02c492] {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 8px;\n color: var(--mb-text-muted);\n}\n.container .list-body__empty-icon[data-v-1d02c492] {\n font-size: 32px;\n opacity: 0.4;\n}\n.container .list-body__empty-text[data-v-1d02c492] {\n font-size: 13px;\n}\n", ""]);
8459
+ // Exports
8460
+ /* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___);
8461
+
8462
+
8463
+ /***/ }),
8464
+
8465
+ /***/ "./node_modules/.pnpm/css-loader@6.11.0_webpack@5.100.2/node_modules/css-loader/dist/cjs.js??clonedRuleSet-32.use[1]!./node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/.pnpm/postcss-loader@6.2.1_postcss@8.5.6_webpack@5.100.1/node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-32.use[2]!./node_modules/.pnpm/less-loader@11.0.0_less@4.1.2_webpack@5.100.2/node_modules/less-loader/dist/cjs.js??clonedRuleSet-32.use[3]!./node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/content/RequestList.vue?vue&type=style&index=1&id=1d02c492&lang=less":
8466
+ /*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
8467
+ !*** ./node_modules/.pnpm/css-loader@6.11.0_webpack@5.100.2/node_modules/css-loader/dist/cjs.js??clonedRuleSet-32.use[1]!./node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/.pnpm/postcss-loader@6.2.1_postcss@8.5.6_webpack@5.100.1/node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-32.use[2]!./node_modules/.pnpm/less-loader@11.0.0_less@4.1.2_webpack@5.100.2/node_modules/less-loader/dist/cjs.js??clonedRuleSet-32.use[3]!./node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/content/RequestList.vue?vue&type=style&index=1&id=1d02c492&lang=less ***!
8468
+ \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
8469
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
8470
+
8471
+ "use strict";
8472
+ __webpack_require__.r(__webpack_exports__);
8473
+ /* harmony import */ var _node_modules_pnpm_css_loader_6_11_0_webpack_5_100_2_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../node_modules/.pnpm/css-loader@6.11.0_webpack@5.100.2/node_modules/css-loader/dist/runtime/noSourceMaps.js */ "./node_modules/.pnpm/css-loader@6.11.0_webpack@5.100.2/node_modules/css-loader/dist/runtime/noSourceMaps.js");
8474
+ /* harmony import */ var _node_modules_pnpm_css_loader_6_11_0_webpack_5_100_2_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_pnpm_css_loader_6_11_0_webpack_5_100_2_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0__);
8475
+ /* harmony import */ var _node_modules_pnpm_css_loader_6_11_0_webpack_5_100_2_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../../node_modules/.pnpm/css-loader@6.11.0_webpack@5.100.2/node_modules/css-loader/dist/runtime/api.js */ "./node_modules/.pnpm/css-loader@6.11.0_webpack@5.100.2/node_modules/css-loader/dist/runtime/api.js");
8476
+ /* harmony import */ var _node_modules_pnpm_css_loader_6_11_0_webpack_5_100_2_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_node_modules_pnpm_css_loader_6_11_0_webpack_5_100_2_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1__);
8477
+ // Imports
8478
+
8479
+
8480
+ var ___CSS_LOADER_EXPORT___ = _node_modules_pnpm_css_loader_6_11_0_webpack_5_100_2_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_pnpm_css_loader_6_11_0_webpack_5_100_2_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
8481
+ // Module
8482
+ ___CSS_LOADER_EXPORT___.push([module.id, ".request-list__more-popover {\n padding: 6px 0 !important;\n min-width: 148px !important;\n border-radius: 8px !important;\n box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12), 0 1px 4px rgba(0, 0, 0, 0.08) !important;\n border: 1px solid var(--mb-border-color) !important;\n background: var(--mb-bg-base) !important;\n}\n.request-list__more-popover .popper__arrow {\n border-bottom-color: var(--mb-border-color) !important;\n}\n.request-list__more-popover .popper__arrow::after {\n border-bottom-color: var(--mb-bg-base) !important;\n}\n.request-list__more-menu {\n display: flex;\n flex-direction: column;\n}\n.request-list__more-item {\n display: flex;\n align-items: center;\n gap: 9px;\n padding: 7px 14px;\n font-size: 12.5px;\n cursor: pointer;\n color: var(--mb-text-primary);\n border-radius: 4px;\n margin: 0 4px;\n transition: background 0.12s, color 0.12s;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n}\n.request-list__more-item:hover {\n background: var(--mb-accent-blue-bg);\n color: var(--mb-accent-blue);\n}\n.request-list__more-item:hover i {\n color: var(--mb-accent-blue);\n}\n.request-list__more-item i {\n font-size: 13px;\n color: var(--mb-text-muted);\n flex-shrink: 0;\n transition: color 0.12s;\n}\n", ""]);
8386
8483
  // Exports
8387
8484
  /* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___);
8388
8485
 
@@ -8406,7 +8503,7 @@ __webpack_require__.r(__webpack_exports__);
8406
8503
 
8407
8504
  var ___CSS_LOADER_EXPORT___ = _node_modules_pnpm_css_loader_6_11_0_webpack_5_100_2_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_pnpm_css_loader_6_11_0_webpack_5_100_2_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
8408
8505
  // Module
8409
- ___CSS_LOADER_EXPORT___.push([module.id, ".response-panel[data-v-c23cd6a6] {\n position: relative;\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n.response-panel__header[data-v-c23cd6a6] {\n display: flex;\n flex-direction: column;\n background-color: var(--mb-bg-mantle);\n flex-shrink: 0;\n}\n.response-panel__header-toolbar[data-v-c23cd6a6] {\n display: flex;\n align-items: center;\n gap: 0;\n height: 34px;\n border-bottom: 1px solid var(--mb-border-color);\n padding: 0 4px 0 0;\n}\n.response-panel__version-count[data-v-c23cd6a6] {\n margin-left: 6px;\n font-size: 11px;\n color: var(--mb-text-muted);\n font-variant-numeric: tabular-nums;\n}\n.response-panel__tabs-wrapper[data-v-c23cd6a6] {\n position: relative;\n}\n.response-panel__tabs-wrapper[data-v-c23cd6a6]::before,\n.response-panel__tabs-wrapper[data-v-c23cd6a6]::after {\n content: '';\n position: absolute;\n left: 0;\n right: 0;\n height: 36px;\n z-index: 1;\n pointer-events: none;\n opacity: 0;\n transition: opacity 0.2s;\n}\n.response-panel__tabs-wrapper[data-v-c23cd6a6]::before {\n top: 0;\n background: linear-gradient(var(--mb-bg-mantle), transparent);\n}\n.response-panel__tabs-wrapper[data-v-c23cd6a6]::after {\n bottom: 0;\n background: linear-gradient(transparent, var(--mb-bg-mantle));\n}\n.response-panel__tabs-wrapper.has-top-fade[data-v-c23cd6a6]::before {\n opacity: 1;\n}\n.response-panel__tabs-wrapper.has-bottom-fade[data-v-c23cd6a6]::after {\n opacity: 1;\n}\n.response-panel__tabs-wrapper.is-collapsed[data-v-c23cd6a6] {\n height: 20px;\n overflow: hidden;\n pointer-events: none;\n}\n.response-panel__tabs-wrapper.is-collapsed[data-v-c23cd6a6]::after {\n opacity: 1;\n height: 20px;\n}\n.response-panel__tabs-area[data-v-c23cd6a6] {\n display: flex;\n flex-wrap: wrap;\n align-content: flex-start;\n gap: 5px;\n min-width: 0;\n padding: 5px 8px;\n max-height: calc((30px + 5px) * 3 + 5px);\n overflow-y: auto;\n overflow-x: hidden;\n}\n.response-panel__tabs-area[data-v-c23cd6a6]::-webkit-scrollbar {\n width: 3px;\n}\n.response-panel__tabs-area[data-v-c23cd6a6]::-webkit-scrollbar-thumb {\n background: var(--mb-border-color-deep);\n border-radius: 2px;\n}\n.response-panel__tab[data-v-c23cd6a6] {\n position: relative;\n display: inline-flex;\n align-items: center;\n gap: 4px;\n cursor: pointer;\n height: 26px;\n padding: 0 10px;\n font-size: 12px;\n font-weight: 500;\n color: var(--mb-text-secondary);\n background-color: var(--mb-bg-base);\n border: 1px solid var(--mb-border-color-deep);\n border-radius: 5px;\n white-space: nowrap;\n transition: color 0.15s, background-color 0.15s, border-color 0.15s;\n}\n.response-panel__tab[data-v-c23cd6a6]:hover:not(.response-panel__tab--selected) {\n color: var(--mb-accent-blue);\n border-color: var(--mb-accent-blue);\n background-color: var(--mb-accent-blue-bg);\n}\n.response-panel__tab--selected[data-v-c23cd6a6] {\n background-color: var(--mb-accent-blue);\n color: #fff;\n font-weight: 600;\n border-color: var(--mb-accent-blue);\n}\n.response-panel__tab--selected .response-panel__source-tab[data-v-c23cd6a6] {\n color: #fff;\n}\n.response-panel__tab--selected .response-panel__edit-btn[data-v-c23cd6a6],\n.response-panel__tab--selected .response-panel__delete-btn[data-v-c23cd6a6] {\n color: rgba(255, 255, 255, 0.7);\n opacity: 1;\n}\n.response-panel__tab--selected .response-panel__edit-btn[data-v-c23cd6a6]:hover,\n.response-panel__tab--selected .response-panel__delete-btn[data-v-c23cd6a6]:hover {\n color: #fff;\n}\n.response-panel__source-tab[data-v-c23cd6a6] {\n display: inline-flex;\n align-items: center;\n gap: 3px;\n color: var(--mb-tag-amber);\n font-weight: 600;\n}\n.response-panel__source-tab i[data-v-c23cd6a6] {\n font-size: 13px;\n}\n.response-panel__tab-text[data-v-c23cd6a6] {\n display: inline-block;\n max-width: 100px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n vertical-align: middle;\n}\n.response-panel__edit-btn[data-v-c23cd6a6] {\n font-size: 11px;\n color: var(--mb-text-muted);\n opacity: 0;\n transition: opacity 0.12s, color 0.12s;\n}\n.response-panel__edit-btn[data-v-c23cd6a6]:hover {\n color: var(--mb-accent-blue);\n}\n.response-panel__delete-btn[data-v-c23cd6a6] {\n font-size: 11px;\n color: var(--mb-text-muted);\n opacity: 0;\n transition: opacity 0.12s, color 0.12s;\n}\n.response-panel__delete-btn[data-v-c23cd6a6]:hover {\n color: var(--mb-accent-red);\n}\n.response-panel__rule-conflict-badge[data-v-c23cd6a6] {\n font-size: 12px;\n color: #f59e0b;\n cursor: help;\n flex-shrink: 0;\n}\n.response-panel__tab:hover .response-panel__edit-btn[data-v-c23cd6a6],\n.response-panel__tab:hover .response-panel__delete-btn[data-v-c23cd6a6] {\n opacity: 1;\n}\n.response-panel__collapse-btn[data-v-c23cd6a6] {\n display: inline-flex;\n align-items: center;\n gap: 3px;\n margin-left: auto;\n flex-shrink: 0;\n height: 24px;\n padding: 0 8px;\n font-size: 12px;\n font-weight: 600;\n color: var(--mb-accent-blue);\n background-color: var(--mb-accent-blue-bg);\n border: 1px solid var(--mb-accent-blue);\n border-radius: 4px;\n cursor: pointer;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n transition: color 0.15s, background-color 0.15s;\n}\n.response-panel__collapse-btn i[data-v-c23cd6a6] {\n font-size: 12px;\n}\n.response-panel__collapse-btn[data-v-c23cd6a6]:hover {\n color: #fff;\n background-color: var(--mb-accent-blue);\n}\n.response-panel__add-btn[data-v-c23cd6a6] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n flex-shrink: 0;\n cursor: pointer;\n height: 24px;\n padding: 0 10px;\n margin: 0 8px;\n font-size: 12px;\n font-weight: 600;\n color: var(--mb-accent-blue);\n background-color: var(--mb-accent-blue-bg);\n border: 1px solid var(--mb-accent-blue);\n border-radius: 4px;\n transition: background-color 0.15s, color 0.15s;\n}\n.response-panel__add-btn i[data-v-c23cd6a6] {\n font-size: 12px;\n}\n.response-panel__add-btn[data-v-c23cd6a6]:hover {\n color: #fff;\n background-color: var(--mb-accent-blue);\n}\n.response-panel__content[data-v-c23cd6a6] {\n display: flex;\n flex-direction: column;\n flex: 1;\n overflow: hidden;\n}\n.response-panel__editor-wrap[data-v-c23cd6a6] {\n position: relative;\n flex: 1;\n overflow: hidden;\n}\n.response-panel__toolbar[data-v-c23cd6a6] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n background-color: var(--mb-bg-surface);\n border-bottom: 1px solid var(--mb-border-color);\n overflow-x: auto;\n}\n.response-panel__toolbar > *[data-v-c23cd6a6] {\n flex-shrink: 0;\n}\n.response-panel__toolbar .el-button[data-v-c23cd6a6] {\n margin: 0;\n}\n.response-panel__readonly-badge[data-v-c23cd6a6] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n margin-left: auto;\n padding: 4px 12px;\n background-color: var(--mb-bg-mantle);\n border-radius: 4px;\n font-size: 12px;\n color: var(--mb-text-muted);\n font-weight: 500;\n height: 24px;\n overflow: hidden;\n}\n.response-panel__readonly-badge i[data-v-c23cd6a6] {\n font-size: 12px;\n}\n.response-panel__alert[data-v-c23cd6a6] {\n position: absolute;\n top: 8px;\n right: 10px;\n font-size: 12px;\n font-weight: 600;\n color: var(--mb-accent-yellow);\n}\n.response-panel__save[data-v-c23cd6a6] {\n position: absolute;\n top: 20px;\n right: 20px;\n z-index: 10;\n}\n.response-panel__effect-icon[data-v-c23cd6a6] {\n position: absolute;\n top: -5px;\n right: -5px;\n display: block;\n width: 6px;\n height: 6px;\n border-radius: 6px;\n background-color: var(--mb-accent-red);\n}\n.response-panel__error-text[data-v-c23cd6a6] {\n position: absolute;\n top: -30px;\n right: 0;\n color: var(--mb-accent-red);\n font-size: 12px;\n white-space: nowrap;\n}\n.response-panel__dialog[data-v-c23cd6a6] {\n display: flex;\n align-items: center;\n}\n.response-panel__dialog-label[data-v-c23cd6a6] {\n white-space: nowrap;\n}\n.response-panel__mode-selector[data-v-c23cd6a6] {\n position: relative;\n flex-shrink: 0;\n display: flex;\n align-items: center;\n height: 100%;\n padding: 0 8px;\n border-right: 1px solid var(--mb-border-color);\n}\n.response-panel__mode-btn[data-v-c23cd6a6] {\n display: inline-flex;\n align-items: center;\n gap: 3px;\n height: 24px;\n padding: 0 8px;\n font-size: 12px;\n font-weight: 600;\n color: #d97706;\n background-color: #fff8ee;\n border: 1px solid #f59e0b;\n border-radius: 4px;\n cursor: pointer;\n white-space: nowrap;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n transition: color 0.15s, border-color 0.15s, background-color 0.15s;\n}\n.response-panel__mode-btn .el-icon-arrow-down[data-v-c23cd6a6] {\n font-size: 12px;\n color: #d97706;\n font-weight: 900;\n transition: transform 0.2s;\n}\n.response-panel__mode-btn .el-icon-arrow-down.is-rotate[data-v-c23cd6a6] {\n transform: rotate(180deg);\n}\n.response-panel__mode-btn[data-v-c23cd6a6]:hover {\n color: #92400e;\n border-color: #d97706;\n background-color: #fef3c7;\n}\n.response-panel__mode-overlay[data-v-c23cd6a6] {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 99;\n}\n.response-panel__mode-dropdown[data-v-c23cd6a6] {\n position: absolute;\n top: calc(100% + 2px);\n left: 8px;\n z-index: 100;\n min-width: 100px;\n background-color: var(--mb-bg-overlay);\n border: 1px solid var(--mb-border-color-deep);\n border-radius: 4px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);\n}\n.response-panel__mode-option[data-v-c23cd6a6] {\n padding: 6px 14px;\n font-size: 12px;\n color: var(--mb-text-secondary);\n cursor: pointer;\n white-space: nowrap;\n}\n.response-panel__mode-option[data-v-c23cd6a6]:hover {\n background-color: var(--mb-bg-surface);\n color: var(--mb-accent-blue);\n}\n.response-panel__mode-option.is-active[data-v-c23cd6a6] {\n color: var(--mb-accent-blue);\n font-weight: 600;\n}\n", ""]);
8506
+ ___CSS_LOADER_EXPORT___.push([module.id, ".response-panel[data-v-c23cd6a6] {\n position: relative;\n display: flex;\n flex-direction: column;\n height: 100%;\n}\n.response-panel__header[data-v-c23cd6a6] {\n display: flex;\n flex-direction: column;\n background-color: var(--mb-bg-mantle);\n flex-shrink: 0;\n}\n.response-panel__header-toolbar[data-v-c23cd6a6] {\n display: flex;\n align-items: center;\n gap: 0;\n height: 34px;\n border-bottom: 1px solid var(--mb-border-color);\n padding: 0;\n}\n.response-panel__version-count[data-v-c23cd6a6] {\n margin-left: 6px;\n font-size: 11px;\n color: var(--mb-text-muted);\n font-variant-numeric: tabular-nums;\n}\n.response-panel__tabs-wrapper[data-v-c23cd6a6] {\n position: relative;\n}\n.response-panel__tabs-wrapper[data-v-c23cd6a6]::before,\n.response-panel__tabs-wrapper[data-v-c23cd6a6]::after {\n content: '';\n position: absolute;\n left: 0;\n right: 0;\n height: 36px;\n z-index: 1;\n pointer-events: none;\n opacity: 0;\n transition: opacity 0.2s;\n}\n.response-panel__tabs-wrapper[data-v-c23cd6a6]::before {\n top: 0;\n background: linear-gradient(var(--mb-bg-mantle), transparent);\n}\n.response-panel__tabs-wrapper[data-v-c23cd6a6]::after {\n bottom: 0;\n background: linear-gradient(transparent, var(--mb-bg-mantle));\n}\n.response-panel__tabs-wrapper.has-top-fade[data-v-c23cd6a6]::before {\n opacity: 1;\n}\n.response-panel__tabs-wrapper.has-bottom-fade[data-v-c23cd6a6]::after {\n opacity: 1;\n}\n.response-panel__tabs-area[data-v-c23cd6a6] {\n display: flex;\n flex-wrap: wrap;\n align-content: flex-start;\n gap: 5px;\n min-width: 0;\n padding: 5px 8px;\n max-height: calc((30px + 5px) * 3 + 5px);\n overflow-y: auto;\n overflow-x: hidden;\n}\n.response-panel__tabs-area[data-v-c23cd6a6]::-webkit-scrollbar {\n width: 3px;\n}\n.response-panel__tabs-area[data-v-c23cd6a6]::-webkit-scrollbar-thumb {\n background: var(--mb-border-color-deep);\n border-radius: 2px;\n}\n.response-panel__tab[data-v-c23cd6a6] {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n height: 26px;\n min-width: 60px;\n padding: 0 10px;\n font-size: 12px;\n font-weight: 500;\n color: var(--mb-text-secondary);\n background-color: var(--mb-bg-base);\n border: 1px solid var(--mb-border-color-deep);\n border-radius: 5px;\n white-space: nowrap;\n transition: color 0.15s, background-color 0.15s, border-color 0.15s;\n}\n.response-panel__tab[data-v-c23cd6a6]:hover:not(.response-panel__tab--selected) {\n color: var(--mb-accent-blue);\n border-color: var(--mb-accent-blue);\n background-color: var(--mb-accent-blue-bg);\n}\n.response-panel__tab--selected[data-v-c23cd6a6] {\n background-color: var(--mb-accent-blue);\n color: #fff;\n font-weight: 600;\n border-color: var(--mb-accent-blue);\n}\n.response-panel__tab--selected .response-panel__edit-btn[data-v-c23cd6a6],\n.response-panel__tab--selected .response-panel__delete-btn[data-v-c23cd6a6] {\n color: rgba(255, 255, 255, 0.9);\n background-color: rgba(255, 255, 255, 0.2);\n border-color: rgba(255, 255, 255, 0.3);\n}\n.response-panel__tab--selected .response-panel__edit-btn[data-v-c23cd6a6]:hover,\n.response-panel__tab--selected .response-panel__delete-btn[data-v-c23cd6a6]:hover {\n color: #fff;\n background-color: rgba(255, 255, 255, 0.35);\n border-color: rgba(255, 255, 255, 0.5);\n}\n.response-panel__tab-text[data-v-c23cd6a6] {\n display: inline-block;\n max-width: 100px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n vertical-align: middle;\n}\n.response-panel__tab-actions[data-v-c23cd6a6] {\n position: absolute;\n right: 0;\n top: 0;\n bottom: 0;\n display: flex;\n align-items: center;\n gap: 2px;\n padding: 0 6px 0 32px;\n border-radius: 0 5px 5px 0;\n opacity: 0;\n pointer-events: none;\n background: linear-gradient(to right, transparent, var(--mb-bg-base) 55%);\n transition: opacity 0.15s;\n}\n.response-panel__edit-btn[data-v-c23cd6a6],\n.response-panel__delete-btn[data-v-c23cd6a6] {\n font-size: 13px;\n border-radius: 3px;\n padding: 1px 2px;\n transition: color 0.12s, background-color 0.12s;\n}\n.response-panel__edit-btn[data-v-c23cd6a6] {\n color: var(--mb-accent-blue);\n background-color: var(--mb-accent-blue-bg);\n}\n.response-panel__edit-btn[data-v-c23cd6a6]:hover {\n background-color: #bfdbfe;\n}\n.response-panel__delete-btn[data-v-c23cd6a6] {\n color: var(--mb-accent-red);\n background-color: #ffe4e6;\n}\n.response-panel__delete-btn[data-v-c23cd6a6]:hover {\n background-color: #fecdd3;\n}\n.response-panel__rule-conflict-badge[data-v-c23cd6a6] {\n font-size: 12px;\n color: #f59e0b;\n flex-shrink: 0;\n margin-right: 2px;\n}\n.response-panel__tab:hover .response-panel__tab-actions[data-v-c23cd6a6] {\n opacity: 1;\n pointer-events: auto;\n}\n.response-panel__tab--selected .response-panel__tab-actions[data-v-c23cd6a6] {\n background: linear-gradient(to right, transparent, #1a6fc4 55%);\n}\n.response-panel__tab--selected .response-panel__edit-btn[data-v-c23cd6a6] {\n color: #fff;\n background-color: rgba(255, 255, 255, 0.2);\n}\n.response-panel__tab--selected .response-panel__edit-btn[data-v-c23cd6a6]:hover {\n background-color: rgba(255, 255, 255, 0.35);\n}\n.response-panel__tab--selected .response-panel__delete-btn[data-v-c23cd6a6] {\n color: #fca5a5;\n background-color: rgba(255, 255, 255, 0.15);\n}\n.response-panel__tab--selected .response-panel__delete-btn[data-v-c23cd6a6]:hover {\n color: #fff;\n background-color: rgba(220, 38, 38, 0.5);\n}\n.response-panel__collapse-btn[data-v-c23cd6a6] {\n position: relative;\n z-index: 2;\n display: flex;\n align-items: center;\n justify-content: center;\n height: 16px;\n cursor: pointer;\n color: var(--mb-text-secondary);\n border-top: 1px solid var(--mb-border-color-light);\n transition: color 0.15s, background-color 0.15s;\n}\n.response-panel__collapse-btn i[data-v-c23cd6a6] {\n font-size: 12px;\n}\n.response-panel__collapse-btn[data-v-c23cd6a6]:hover {\n color: var(--mb-accent-blue);\n background-color: var(--mb-accent-blue-bg);\n}\n.response-panel__collapse-btn--collapsed[data-v-c23cd6a6] {\n background-color: var(--mb-accent-blue-bg);\n color: var(--mb-accent-blue);\n border-color: var(--mb-border-color);\n}\n.response-panel__collapse-btn--collapsed[data-v-c23cd6a6]:hover {\n background-color: #bfdbfe;\n}\n.response-panel__add-btn[data-v-c23cd6a6] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n flex-shrink: 0;\n cursor: pointer;\n height: 24px;\n padding: 0 10px;\n margin: 0 8px;\n font-size: 12px;\n font-weight: 600;\n color: var(--mb-accent-blue);\n background-color: var(--mb-accent-blue-bg);\n border: 1px solid var(--mb-accent-blue);\n border-radius: 4px;\n transition: background-color 0.15s, color 0.15s;\n}\n.response-panel__add-btn i[data-v-c23cd6a6] {\n font-size: 12px;\n}\n.response-panel__add-btn[data-v-c23cd6a6]:hover {\n color: #fff;\n background-color: var(--mb-accent-blue);\n}\n.response-panel__content[data-v-c23cd6a6] {\n display: flex;\n flex-direction: column;\n flex: 1;\n overflow: hidden;\n}\n.response-panel__editor-wrap[data-v-c23cd6a6] {\n position: relative;\n flex: 1;\n overflow: hidden;\n}\n.response-panel__toolbar[data-v-c23cd6a6] {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 8px 12px;\n background-color: var(--mb-bg-surface);\n border-bottom: 1px solid var(--mb-border-color);\n overflow-x: auto;\n}\n.response-panel__toolbar > *[data-v-c23cd6a6] {\n flex-shrink: 0;\n}\n.response-panel__toolbar .el-button[data-v-c23cd6a6] {\n margin: 0;\n}\n.response-panel__readonly-badge[data-v-c23cd6a6] {\n display: inline-flex;\n align-items: center;\n gap: 4px;\n margin-left: auto;\n padding: 4px 12px;\n background-color: var(--mb-bg-mantle);\n border-radius: 4px;\n font-size: 12px;\n color: var(--mb-text-muted);\n font-weight: 500;\n height: 24px;\n overflow: hidden;\n}\n.response-panel__readonly-badge i[data-v-c23cd6a6] {\n font-size: 12px;\n}\n.response-panel__alert[data-v-c23cd6a6] {\n position: absolute;\n top: 8px;\n right: 10px;\n font-size: 12px;\n font-weight: 600;\n color: var(--mb-accent-yellow);\n}\n.response-panel__save[data-v-c23cd6a6] {\n position: absolute;\n top: 20px;\n right: 20px;\n z-index: 10;\n}\n.response-panel__effect-icon[data-v-c23cd6a6] {\n position: absolute;\n top: -5px;\n right: -5px;\n display: block;\n width: 6px;\n height: 6px;\n border-radius: 6px;\n background-color: var(--mb-accent-red);\n}\n.response-panel__error-text[data-v-c23cd6a6] {\n position: absolute;\n top: -30px;\n right: 0;\n color: var(--mb-accent-red);\n font-size: 12px;\n white-space: nowrap;\n}\n.response-panel__dialog[data-v-c23cd6a6] {\n display: flex;\n align-items: center;\n}\n.response-panel__dialog-label[data-v-c23cd6a6] {\n white-space: nowrap;\n}\n.response-panel__mode-selector[data-v-c23cd6a6] {\n position: relative;\n flex-shrink: 0;\n display: flex;\n align-items: center;\n height: 100%;\n padding: 0 8px;\n margin-left: auto;\n border-left: 1px solid var(--mb-border-color);\n}\n.response-panel__mode-btn[data-v-c23cd6a6] {\n display: inline-flex;\n align-items: center;\n gap: 3px;\n height: 24px;\n padding: 0 8px;\n font-size: 12px;\n font-weight: 600;\n color: #d97706;\n background-color: #fff8ee;\n border: 1px solid #f59e0b;\n border-radius: 4px;\n cursor: pointer;\n white-space: nowrap;\n -webkit-user-select: none;\n -moz-user-select: none;\n user-select: none;\n transition: color 0.15s, border-color 0.15s, background-color 0.15s;\n}\n.response-panel__mode-btn .el-icon-arrow-down[data-v-c23cd6a6] {\n font-size: 12px;\n color: #d97706;\n font-weight: 900;\n transition: transform 0.2s;\n}\n.response-panel__mode-btn .el-icon-arrow-down.is-rotate[data-v-c23cd6a6] {\n transform: rotate(180deg);\n}\n.response-panel__mode-btn[data-v-c23cd6a6]:hover {\n color: #92400e;\n border-color: #d97706;\n background-color: #fef3c7;\n}\n.response-panel__mode-overlay[data-v-c23cd6a6] {\n position: fixed;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n z-index: 99;\n}\n.response-panel__mode-dropdown[data-v-c23cd6a6] {\n position: absolute;\n top: calc(100% + 2px);\n right: 8px;\n left: auto;\n z-index: 100;\n min-width: 100px;\n background-color: var(--mb-bg-overlay);\n border: 1px solid var(--mb-border-color-deep);\n border-radius: 4px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);\n}\n.response-panel__mode-option[data-v-c23cd6a6] {\n padding: 6px 14px;\n font-size: 12px;\n color: var(--mb-text-secondary);\n cursor: pointer;\n white-space: nowrap;\n}\n.response-panel__mode-option[data-v-c23cd6a6]:hover {\n background-color: var(--mb-bg-surface);\n color: var(--mb-accent-blue);\n}\n.response-panel__mode-option.is-active[data-v-c23cd6a6] {\n color: var(--mb-accent-blue);\n font-weight: 600;\n}\n", ""]);
8410
8507
  // Exports
8411
8508
  /* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___);
8412
8509
 
@@ -8502,7 +8599,7 @@ __webpack_require__.r(__webpack_exports__);
8502
8599
 
8503
8600
  var ___CSS_LOADER_EXPORT___ = _node_modules_pnpm_css_loader_6_11_0_webpack_5_100_2_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_pnpm_css_loader_6_11_0_webpack_5_100_2_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
8504
8601
  // Module
8505
- ___CSS_LOADER_EXPORT___.push([module.id, ".group-selector[data-v-fcd4b224] {\n display: flex;\n align-items: center;\n margin-right: 16px;\n}\n.group-selector__select[data-v-fcd4b224] {\n width: 180px;\n}\n.group-selector__select[data-v-fcd4b224] .el-input__inner {\n border-radius: 4px 0 0 4px;\n}\n.group-selector__btn[data-v-fcd4b224] {\n flex-shrink: 0;\n height: 32px;\n margin-left: -1px;\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n", ""]);
8602
+ ___CSS_LOADER_EXPORT___.push([module.id, ".group-selector[data-v-fcd4b224] {\n display: flex;\n align-items: center;\n}\n.group-selector__select[data-v-fcd4b224] {\n width: 180px;\n}\n.group-selector__select[data-v-fcd4b224] .el-input__inner {\n border-radius: 4px 0 0 4px;\n}\n.group-selector__btn[data-v-fcd4b224] {\n flex-shrink: 0;\n height: 32px;\n margin-left: -1px;\n border-top-left-radius: 0;\n border-bottom-left-radius: 0;\n}\n", ""]);
8506
8603
  // Exports
8507
8604
  /* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___);
8508
8605
 
@@ -8526,7 +8623,7 @@ __webpack_require__.r(__webpack_exports__);
8526
8623
 
8527
8624
  var ___CSS_LOADER_EXPORT___ = _node_modules_pnpm_css_loader_6_11_0_webpack_5_100_2_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_pnpm_css_loader_6_11_0_webpack_5_100_2_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
8528
8625
  // Module
8529
- ___CSS_LOADER_EXPORT___.push([module.id, ".update-banner[data-v-7b8cce48] {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 4px 12px;\n background: #fffbe8;\n border-bottom: 1px solid #e4e7ed;\n font-size: 12px;\n color: #303133;\n flex-wrap: nowrap;\n}\n.update-banner__text[data-v-7b8cce48] {\n white-space: nowrap;\n flex-shrink: 0;\n}\n.update-banner__text strong[data-v-7b8cce48] {\n font-weight: 600;\n}\n.update-banner__cmd[data-v-7b8cce48] {\n flex: 1;\n min-width: 0;\n padding: 2px 6px;\n border: 1px solid #dcdfe6;\n border-radius: 3px;\n background: #f4f4f4;\n color: #d93025;\n font-family: monospace;\n font-size: 11px;\n outline: none;\n cursor: text;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.update-banner__install[data-v-7b8cce48] {\n flex-shrink: 0;\n height: 22px;\n padding: 0 10px;\n border: 1px solid #409eff;\n border-radius: 3px;\n background: #fff;\n color: #409eff;\n font-size: 12px;\n cursor: pointer;\n white-space: nowrap;\n}\n.update-banner__install[data-v-7b8cce48]:hover {\n background: #ecf5ff;\n}\n.update-banner__install[data-v-7b8cce48]:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n}\n.update-banner__copy[data-v-7b8cce48] {\n flex-shrink: 0;\n height: 22px;\n padding: 0 10px;\n border: 1px solid #dcdfe6;\n border-radius: 3px;\n background: #fff;\n color: #303133;\n font-size: 12px;\n cursor: pointer;\n white-space: nowrap;\n}\n.update-banner__copy[data-v-7b8cce48]:hover {\n background: #f5f7fa;\n}\n.update-banner__close[data-v-7b8cce48] {\n flex-shrink: 0;\n width: 22px;\n height: 22px;\n border: 1px solid #dcdfe6;\n border-radius: 3px;\n background: #fff;\n color: #909399;\n font-size: 13px;\n line-height: 1;\n cursor: pointer;\n padding: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.update-banner__close[data-v-7b8cce48]:hover {\n background: #f5f7fa;\n color: #303133;\n}\n.plugin-header[data-v-7b8cce48] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 6px 12px;\n background: var(--mb-header-bg);\n border-bottom: 1px solid var(--mb-border-color);\n min-height: 36px;\n}\n.plugin-header__left[data-v-7b8cce48] {\n display: flex;\n align-items: center;\n gap: 10px;\n}\n.plugin-header__right[data-v-7b8cce48] {\n display: flex;\n align-items: center;\n}\n.plugin-header__name[data-v-7b8cce48] {\n font-size: 15px;\n font-weight: 700;\n color: var(--mb-text-primary);\n letter-spacing: 0.5px;\n flex-shrink: 0;\n}\n.plugin-header__status--on[data-v-7b8cce48] {\n font-size: 13px;\n color: var(--mb-accent-green);\n font-weight: 500;\n}\n.plugin-header__status--off[data-v-7b8cce48] {\n font-size: 13px;\n color: var(--mb-accent-red);\n font-weight: 500;\n}\n.plugin-header__version[data-v-7b8cce48] {\n font-size: 12px;\n color: var(--mb-text-muted);\n letter-spacing: 0.3px;\n padding: 2px 6px;\n background: var(--mb-bg-surface);\n border-radius: 3px;\n}\n.plugin-header__help-btn[data-v-7b8cce48] {\n padding: 0;\n width: 22px;\n height: 22px;\n font-size: 16px;\n color: var(--mb-text-muted);\n}\n.plugin-header__help-btn[data-v-7b8cce48]:hover {\n color: var(--mb-accent-blue);\n}\n.plugin-header__theme-btn[data-v-7b8cce48],\n.plugin-header__refresh-btn[data-v-7b8cce48],\n.plugin-header__more-btn[data-v-7b8cce48],\n.plugin-header__float-btn[data-v-7b8cce48] {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 20px;\n height: 20px;\n padding: 0 4px;\n font-size: 16px;\n line-height: 1;\n box-sizing: content-box;\n margin-left: 0 !important;\n}\n.plugin-header__theme-btn[data-v-7b8cce48]:hover,\n.plugin-header__refresh-btn[data-v-7b8cce48]:hover,\n.plugin-header__more-btn[data-v-7b8cce48]:hover,\n.plugin-header__float-btn[data-v-7b8cce48]:hover {\n opacity: 0.75;\n}\n.plugin-header__theme-btn[data-v-7b8cce48] {\n color: var(--mb-text-secondary);\n}\n.plugin-header__refresh-btn[data-v-7b8cce48] {\n color: var(--mb-text-muted);\n}\n.plugin-header__refresh-btn[data-v-7b8cce48]:hover {\n color: var(--mb-accent-blue);\n opacity: 1;\n}\n.plugin-header__more-btn[data-v-7b8cce48] {\n color: #606266;\n}\n.plugin-header__more-btn[data-v-7b8cce48]:hover {\n color: var(--mb-accent-blue);\n opacity: 1;\n}\n.plugin-header__float-btn[data-v-7b8cce48] {\n color: var(--mb-text-muted);\n}\n.plugin-header__float-btn[data-v-7b8cce48]:hover {\n color: var(--mb-accent-blue);\n opacity: 1;\n}\n.plugin-header__float-btn.is-active[data-v-7b8cce48] {\n color: var(--mb-accent-blue);\n}\n.help-dialog__content[data-v-7b8cce48] {\n font-size: 14px;\n line-height: 1.8;\n color: var(--mb-text-primary);\n}\n.help-dialog__content p[data-v-7b8cce48] {\n margin: 0 0 12px;\n}\n.help-section__title[data-v-7b8cce48] {\n font-size: 15px;\n font-weight: 600;\n color: var(--mb-accent-blue);\n margin: 16px 0 8px;\n padding-left: 8px;\n border-left: 3px solid var(--mb-accent-blue);\n}\n.help-section__title[data-v-7b8cce48]:first-child {\n margin-top: 0;\n}\n.help-step[data-v-7b8cce48] {\n display: flex;\n align-items: flex-start;\n gap: 10px;\n margin-bottom: 10px;\n}\n.help-step__num[data-v-7b8cce48] {\n flex-shrink: 0;\n width: 22px;\n height: 22px;\n background: var(--mb-accent-blue);\n color: #fff;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 13px;\n font-weight: 700;\n margin-top: 1px;\n}\n.help-table[data-v-7b8cce48] {\n width: 100%;\n border-collapse: collapse;\n margin-bottom: 8px;\n}\n.help-table td[data-v-7b8cce48] {\n padding: 6px 10px;\n border: 1px solid var(--mb-border-color);\n font-size: 13px;\n}\n.help-table td[data-v-7b8cce48]:first-child {\n width: 100px;\n background: var(--mb-bg-surface);\n white-space: nowrap;\n}\n.help-code[data-v-7b8cce48] {\n background: var(--mb-bg-surface);\n border: 1px solid var(--mb-border-color);\n border-radius: 4px;\n padding: 10px 14px;\n font-family: monospace;\n font-size: 13px;\n color: var(--mb-text-secondary);\n line-height: 1.9;\n margin: 0 0 8px;\n white-space: pre-wrap;\n}\n.help-dialog__content ul[data-v-7b8cce48] {\n padding-left: 20px;\n margin: 0 0 8px;\n}\n.help-dialog__content ul li[data-v-7b8cce48] {\n margin-bottom: 4px;\n}\n.action-panel[data-v-7b8cce48] {\n display: flex;\n flex-direction: column;\n background-color: var(--mb-bg-base);\n border-bottom: 1px solid var(--mb-border-color-deep);\n}\n.action-panel__row[data-v-7b8cce48] {\n display: flex;\n padding: 10px;\n align-items: flex-start;\n gap: 16px;\n}\n.action-panel__search[data-v-7b8cce48] {\n flex: 1;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 8px;\n min-width: 0;\n}\n.action-panel__actions[data-v-7b8cce48] {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 8px;\n flex-shrink: 0;\n}\n.action-panel__rules-row[data-v-7b8cce48] {\n display: flex;\n align-items: center;\n flex-wrap: wrap;\n gap: 6px 12px;\n padding: 6px 12px;\n background: var(--mb-bg-surface);\n border-top: 1px solid var(--mb-border-color);\n}\n.action-panel .plugin-mode-wrapper[data-v-7b8cce48] {\n display: flex;\n align-items: center;\n gap: 8px;\n flex-shrink: 0;\n}\n.action-panel .plugin-mode-wrapper .plugin-mode-label[data-v-7b8cce48] {\n font-size: 13px;\n font-weight: 500;\n color: var(--mb-text-secondary);\n white-space: nowrap;\n}\n.action-panel__item[data-v-7b8cce48] {\n font-size: 14px;\n}\n.action-panel__label[data-v-7b8cce48] {\n font-size: 14px;\n font-weight: 500;\n margin-right: 10px;\n}\n.action-panel__select[data-v-7b8cce48] {\n width: 180px;\n}\n.action-panel__select--method[data-v-7b8cce48] {\n width: 120px;\n}\n.action-panel__select--status[data-v-7b8cce48] {\n width: 160px;\n}\n.action-panel__input[data-v-7b8cce48] {\n width: 220px;\n}\n.action-panel__tooltip[data-v-7b8cce48] {\n flex-shrink: 0;\n}\n.action-panel__selection-count[data-v-7b8cce48] {\n font-weight: 600;\n flex-shrink: 0;\n}\n.action-panel__result-count[data-v-7b8cce48] {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n}\n.action-panel__result-text[data-v-7b8cce48] {\n font-size: 12px;\n color: var(--mb-text-muted);\n font-weight: 400;\n white-space: nowrap;\n}\n.action-panel__cache-badge[data-v-7b8cce48] {\n flex-shrink: 0;\n}\n.export-group-selector .selector-header[data-v-7b8cce48] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n padding-bottom: 12px;\n border-bottom: 1px solid var(--mb-border-color);\n}\n.export-group-selector .selector-header .selector-title[data-v-7b8cce48] {\n font-size: 14px;\n color: var(--mb-text-secondary);\n font-weight: 500;\n}\n.export-group-selector .group-checkbox-list[data-v-7b8cce48] {\n display: flex;\n flex-direction: column;\n gap: 12px;\n max-height: 300px;\n overflow-y: auto;\n padding: 8px 0;\n}\n.export-group-selector .group-checkbox-list .group-checkbox-item[data-v-7b8cce48] {\n padding: 12px;\n border: 1px solid var(--mb-border-color-deep);\n border-radius: 4px;\n}\n.export-group-selector .group-checkbox-list .group-checkbox-item[data-v-7b8cce48]:hover {\n border-color: var(--mb-accent-blue);\n background: var(--mb-accent-blue-bg);\n}\n.export-group-selector .group-checkbox-list .group-checkbox-item[data-v-7b8cce48] .el-checkbox {\n display: flex;\n align-items: flex-start;\n width: 100%;\n}\n.export-group-selector .group-checkbox-list .group-checkbox-item[data-v-7b8cce48] .el-checkbox .el-checkbox__input {\n margin-top: 2px;\n}\n.export-group-selector .group-checkbox-list .group-checkbox-item[data-v-7b8cce48] .el-checkbox .el-checkbox__label {\n flex: 1;\n padding-left: 8px;\n width: 0;\n}\n.export-group-selector .group-checkbox-list .group-info[data-v-7b8cce48] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 12px;\n}\n.export-group-selector .group-checkbox-list .group-info .group-name[data-v-7b8cce48] {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 14px;\n font-weight: 500;\n color: var(--mb-text-primary);\n flex: 1;\n min-width: 0;\n overflow: hidden;\n}\n.export-group-selector .group-checkbox-list .group-info .group-meta[data-v-7b8cce48] {\n font-size: 12px;\n color: var(--mb-text-muted);\n white-space: nowrap;\n flex-shrink: 0;\n}\n.export-group-selector .export-summary[data-v-7b8cce48] {\n margin-top: 16px;\n padding-top: 12px;\n border-top: 1px solid var(--mb-border-color);\n text-align: center;\n font-size: 14px;\n color: var(--mb-text-secondary);\n}\n.export-group-selector .export-summary strong[data-v-7b8cce48] {\n color: var(--mb-accent-blue);\n font-size: 16px;\n}\n.active-rules-text[data-v-7b8cce48] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n font-size: 13px;\n cursor: help;\n padding: 3px 8px;\n background: var(--mb-bg-surface);\n border-radius: 4px;\n flex-shrink: 0;\n}\n.active-rules-text[data-v-7b8cce48]:hover {\n background: var(--mb-accent-blue-bg);\n box-shadow: 0 2px 8px rgba(64, 158, 255, 0.15);\n}\n.active-rules-text .rules-label[data-v-7b8cce48] {\n color: var(--mb-text-secondary);\n font-weight: 500;\n white-space: nowrap;\n flex-shrink: 0;\n}\n.active-rules-text .rules-value[data-v-7b8cce48] {\n color: var(--mb-accent-blue);\n font-family: monospace;\n font-weight: 600;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n min-width: 0;\n}\n.active-rules-text .rules-empty[data-v-7b8cce48] {\n color: var(--mb-text-muted);\n font-style: italic;\n}\n.rules-help-content[data-v-7b8cce48] {\n max-width: 500px;\n padding: 4px 0;\n line-height: 1.6;\n font-size: 13px;\n color: #fff;\n text-align: left;\n}\n.import-preview__header[data-v-7b8cce48] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n padding-bottom: 12px;\n border-bottom: 1px solid var(--mb-border-color);\n}\n.import-preview__info[data-v-7b8cce48] {\n font-size: 14px;\n color: var(--mb-text-secondary);\n}\n.import-preview__actions[data-v-7b8cce48] {\n display: flex;\n gap: 8px;\n}\n", ""]);
8626
+ ___CSS_LOADER_EXPORT___.push([module.id, ".update-banner[data-v-7b8cce48] {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 4px 12px;\n background: #fffbe8;\n border-bottom: 1px solid #e4e7ed;\n font-size: 12px;\n color: #303133;\n flex-wrap: nowrap;\n}\n.update-banner__text[data-v-7b8cce48] {\n white-space: nowrap;\n flex-shrink: 0;\n}\n.update-banner__text strong[data-v-7b8cce48] {\n font-weight: 600;\n}\n.update-banner__cmd[data-v-7b8cce48] {\n flex: 1;\n min-width: 0;\n padding: 2px 6px;\n border: 1px solid #dcdfe6;\n border-radius: 3px;\n background: #f4f4f4;\n color: #d93025;\n font-family: monospace;\n font-size: 11px;\n outline: none;\n cursor: text;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.update-banner__install[data-v-7b8cce48] {\n flex-shrink: 0;\n height: 22px;\n padding: 0 10px;\n border: 1px solid #409eff;\n border-radius: 3px;\n background: #fff;\n color: #409eff;\n font-size: 12px;\n cursor: pointer;\n white-space: nowrap;\n}\n.update-banner__install[data-v-7b8cce48]:hover {\n background: #ecf5ff;\n}\n.update-banner__install[data-v-7b8cce48]:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n}\n.update-banner__copy[data-v-7b8cce48] {\n flex-shrink: 0;\n height: 22px;\n padding: 0 10px;\n border: 1px solid #dcdfe6;\n border-radius: 3px;\n background: #fff;\n color: #303133;\n font-size: 12px;\n cursor: pointer;\n white-space: nowrap;\n}\n.update-banner__copy[data-v-7b8cce48]:hover {\n background: #f5f7fa;\n}\n.update-banner__close[data-v-7b8cce48] {\n flex-shrink: 0;\n width: 22px;\n height: 22px;\n border: 1px solid #dcdfe6;\n border-radius: 3px;\n background: #fff;\n color: #909399;\n font-size: 13px;\n line-height: 1;\n cursor: pointer;\n padding: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.update-banner__close[data-v-7b8cce48]:hover {\n background: #f5f7fa;\n color: #303133;\n}\n.plugin-header[data-v-7b8cce48] {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 6px 12px;\n background: var(--mb-header-bg);\n border-bottom: 1px solid var(--mb-border-color);\n min-height: 36px;\n}\n.plugin-header__left[data-v-7b8cce48] {\n display: flex;\n align-items: center;\n gap: 10px;\n}\n.plugin-header__right[data-v-7b8cce48] {\n display: flex;\n align-items: center;\n}\n.plugin-header__name[data-v-7b8cce48] {\n font-size: 15px;\n font-weight: 700;\n color: var(--mb-text-primary);\n letter-spacing: 0.5px;\n flex-shrink: 0;\n}\n.plugin-header__status--on[data-v-7b8cce48] {\n font-size: 12px;\n color: var(--mb-accent-green);\n font-weight: 500;\n}\n.plugin-header__status--off[data-v-7b8cce48] {\n font-size: 12px;\n color: var(--mb-accent-red);\n font-weight: 500;\n}\n.plugin-header__version[data-v-7b8cce48] {\n font-size: 12px;\n color: var(--mb-text-muted);\n letter-spacing: 0.3px;\n padding: 2px 6px;\n background: var(--mb-bg-surface);\n border-radius: 3px;\n}\n.plugin-header__help-btn[data-v-7b8cce48] {\n padding: 0;\n width: 14px;\n height: 14px;\n font-size: 12px;\n color: var(--mb-text-muted);\n}\n.plugin-header__help-btn[data-v-7b8cce48]:hover {\n color: var(--mb-accent-blue);\n}\n.plugin-header__switch[data-v-7b8cce48] .el-switch__core {\n height: 14px;\n line-height: 14px;\n border-radius: 7px;\n}\n.plugin-header__switch[data-v-7b8cce48] .el-switch__core::after {\n width: 10px;\n height: 10px;\n top: 1px;\n}\n.plugin-header__switch.is-checked[data-v-7b8cce48] .el-switch__core::after {\n margin-left: -11px;\n}\n.plugin-header__theme-btn[data-v-7b8cce48],\n.plugin-header__refresh-btn[data-v-7b8cce48],\n.plugin-header__more-btn[data-v-7b8cce48],\n.plugin-header__float-btn[data-v-7b8cce48] {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 20px;\n height: 20px;\n padding: 0 4px;\n font-size: 16px;\n line-height: 1;\n box-sizing: content-box;\n margin-left: 0 !important;\n}\n.plugin-header__theme-btn[data-v-7b8cce48]:hover,\n.plugin-header__refresh-btn[data-v-7b8cce48]:hover,\n.plugin-header__more-btn[data-v-7b8cce48]:hover,\n.plugin-header__float-btn[data-v-7b8cce48]:hover {\n opacity: 0.75;\n}\n.plugin-header__theme-btn[data-v-7b8cce48] {\n color: var(--mb-text-secondary);\n}\n.plugin-header__refresh-btn[data-v-7b8cce48] {\n color: var(--mb-text-muted);\n}\n.plugin-header__refresh-btn[data-v-7b8cce48]:hover {\n color: var(--mb-accent-blue);\n opacity: 1;\n}\n.plugin-header__more-btn[data-v-7b8cce48] {\n color: #606266;\n}\n.plugin-header__more-btn[data-v-7b8cce48]:hover {\n color: var(--mb-accent-blue);\n opacity: 1;\n}\n.plugin-header__float-btn[data-v-7b8cce48] {\n color: var(--mb-text-muted);\n}\n.plugin-header__float-btn[data-v-7b8cce48]:hover {\n color: var(--mb-accent-blue);\n opacity: 1;\n}\n.plugin-header__float-btn.is-active[data-v-7b8cce48] {\n color: var(--mb-accent-blue);\n}\n.help-dialog__content[data-v-7b8cce48] {\n font-size: 14px;\n line-height: 1.8;\n color: var(--mb-text-primary);\n}\n.help-dialog__content p[data-v-7b8cce48] {\n margin: 0 0 12px;\n}\n.help-section__title[data-v-7b8cce48] {\n font-size: 15px;\n font-weight: 600;\n color: var(--mb-accent-blue);\n margin: 16px 0 8px;\n padding-left: 8px;\n border-left: 3px solid var(--mb-accent-blue);\n}\n.help-section__title[data-v-7b8cce48]:first-child {\n margin-top: 0;\n}\n.help-step[data-v-7b8cce48] {\n display: flex;\n align-items: flex-start;\n gap: 10px;\n margin-bottom: 10px;\n}\n.help-step__num[data-v-7b8cce48] {\n flex-shrink: 0;\n width: 22px;\n height: 22px;\n background: var(--mb-accent-blue);\n color: #fff;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: 13px;\n font-weight: 700;\n margin-top: 1px;\n}\n.help-table[data-v-7b8cce48] {\n width: 100%;\n border-collapse: collapse;\n margin-bottom: 8px;\n}\n.help-table td[data-v-7b8cce48] {\n padding: 6px 10px;\n border: 1px solid var(--mb-border-color);\n font-size: 13px;\n}\n.help-table td[data-v-7b8cce48]:first-child {\n width: 100px;\n background: var(--mb-bg-surface);\n white-space: nowrap;\n}\n.help-code[data-v-7b8cce48] {\n background: var(--mb-bg-surface);\n border: 1px solid var(--mb-border-color);\n border-radius: 4px;\n padding: 10px 14px;\n font-family: monospace;\n font-size: 13px;\n color: var(--mb-text-secondary);\n line-height: 1.9;\n margin: 0 0 8px;\n white-space: pre-wrap;\n}\n.help-dialog__content ul[data-v-7b8cce48] {\n padding-left: 20px;\n margin: 0 0 8px;\n}\n.help-dialog__content ul li[data-v-7b8cce48] {\n margin-bottom: 4px;\n}\n.action-panel[data-v-7b8cce48] {\n display: flex;\n flex-direction: column;\n background-color: var(--mb-bg-base);\n border-bottom: 1px solid var(--mb-border-color-deep);\n}\n.action-panel__row[data-v-7b8cce48] {\n display: flex;\n flex-wrap: wrap;\n padding: 10px;\n align-items: flex-start;\n gap: 8px;\n}\n.action-panel__search[data-v-7b8cce48] {\n flex: 1;\n min-width: 0;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 8px;\n}\n.action-panel__item[data-v-7b8cce48] {\n font-size: 14px;\n}\n.action-panel__label[data-v-7b8cce48] {\n font-size: 14px;\n font-weight: 500;\n margin-right: 10px;\n}\n.action-panel__select[data-v-7b8cce48] {\n width: 180px;\n}\n.action-panel__select--method[data-v-7b8cce48] {\n width: 120px;\n}\n.action-panel__select--status[data-v-7b8cce48] {\n width: 160px;\n}\n.action-panel__input[data-v-7b8cce48] {\n width: 220px;\n}\n.action-panel__tooltip[data-v-7b8cce48] {\n flex-shrink: 0;\n}\n.action-panel__selection-count[data-v-7b8cce48] {\n font-weight: 600;\n flex-shrink: 0;\n}\n.action-panel__result-count[data-v-7b8cce48] {\n display: flex;\n align-items: center;\n flex-shrink: 0;\n}\n.action-panel__result-text[data-v-7b8cce48] {\n font-size: 12px;\n color: var(--mb-text-muted);\n font-weight: 400;\n white-space: nowrap;\n}\n.action-panel__cache-badge[data-v-7b8cce48] {\n flex-shrink: 0;\n}\n.capture-status[data-v-7b8cce48] {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n flex-shrink: 0;\n}\n.capture-status__dot[data-v-7b8cce48] {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n background-color: #c0c4cc;\n flex-shrink: 0;\n transition: background-color 0.3s;\n}\n.capture-status__text[data-v-7b8cce48] {\n font-size: 12px;\n font-weight: 500;\n color: var(--mb-text-muted);\n white-space: nowrap;\n transition: color 0.3s;\n}\n.capture-status__help[data-v-7b8cce48] {\n font-size: 12px;\n color: var(--mb-text-muted);\n cursor: help;\n flex-shrink: 0;\n}\n.capture-status__switch[data-v-7b8cce48] {\n flex-shrink: 0;\n}\n.capture-status__switch[data-v-7b8cce48] .el-switch__core {\n height: 14px;\n line-height: 14px;\n border-radius: 7px;\n}\n.capture-status__switch[data-v-7b8cce48] .el-switch__core::after {\n width: 10px;\n height: 10px;\n top: 1px;\n}\n.capture-status__switch.is-checked[data-v-7b8cce48] .el-switch__core::after {\n margin-left: -11px;\n}\n.capture-status.is-capturing .capture-status__dot[data-v-7b8cce48] {\n background-color: #67c23a;\n animation: capture-pulse-7b8cce48 1.8s ease-in-out infinite;\n}\n.capture-status.is-capturing .capture-status__text[data-v-7b8cce48] {\n color: #67c23a;\n}\n@keyframes capture-pulse-7b8cce48 {\n0%,\n 100% {\n opacity: 1;\n transform: scale(1);\n}\n50% {\n opacity: 0.45;\n transform: scale(0.8);\n}\n}\n.export-group-selector .selector-header[data-v-7b8cce48] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n padding-bottom: 12px;\n border-bottom: 1px solid var(--mb-border-color);\n}\n.export-group-selector .selector-header .selector-title[data-v-7b8cce48] {\n font-size: 14px;\n color: var(--mb-text-secondary);\n font-weight: 500;\n}\n.export-group-selector .group-checkbox-list[data-v-7b8cce48] {\n display: flex;\n flex-direction: column;\n gap: 12px;\n max-height: 300px;\n overflow-y: auto;\n padding: 8px 0;\n}\n.export-group-selector .group-checkbox-list .group-checkbox-item[data-v-7b8cce48] {\n padding: 12px;\n border: 1px solid var(--mb-border-color-deep);\n border-radius: 4px;\n}\n.export-group-selector .group-checkbox-list .group-checkbox-item[data-v-7b8cce48]:hover {\n border-color: var(--mb-accent-blue);\n background: var(--mb-accent-blue-bg);\n}\n.export-group-selector .group-checkbox-list .group-checkbox-item[data-v-7b8cce48] .el-checkbox {\n display: flex;\n align-items: flex-start;\n width: 100%;\n}\n.export-group-selector .group-checkbox-list .group-checkbox-item[data-v-7b8cce48] .el-checkbox .el-checkbox__input {\n margin-top: 2px;\n}\n.export-group-selector .group-checkbox-list .group-checkbox-item[data-v-7b8cce48] .el-checkbox .el-checkbox__label {\n flex: 1;\n padding-left: 8px;\n width: 0;\n}\n.export-group-selector .group-checkbox-list .group-info[data-v-7b8cce48] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 12px;\n}\n.export-group-selector .group-checkbox-list .group-info .group-name[data-v-7b8cce48] {\n display: flex;\n align-items: center;\n gap: 8px;\n font-size: 14px;\n font-weight: 500;\n color: var(--mb-text-primary);\n flex: 1;\n min-width: 0;\n overflow: hidden;\n}\n.export-group-selector .group-checkbox-list .group-info .group-meta[data-v-7b8cce48] {\n font-size: 12px;\n color: var(--mb-text-muted);\n white-space: nowrap;\n flex-shrink: 0;\n}\n.export-group-selector .export-summary[data-v-7b8cce48] {\n margin-top: 16px;\n padding-top: 12px;\n border-top: 1px solid var(--mb-border-color);\n text-align: center;\n font-size: 14px;\n color: var(--mb-text-secondary);\n}\n.export-group-selector .export-summary strong[data-v-7b8cce48] {\n color: var(--mb-accent-blue);\n font-size: 16px;\n}\n.import-preview__header[data-v-7b8cce48] {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin-bottom: 16px;\n padding-bottom: 12px;\n border-bottom: 1px solid var(--mb-border-color);\n}\n.import-preview__info[data-v-7b8cce48] {\n font-size: 14px;\n color: var(--mb-text-secondary);\n}\n.import-preview__actions[data-v-7b8cce48] {\n display: flex;\n gap: 8px;\n}\n", ""]);
8530
8627
  // Exports
8531
8628
  /* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___);
8532
8629
 
@@ -8550,7 +8647,7 @@ __webpack_require__.r(__webpack_exports__);
8550
8647
 
8551
8648
  var ___CSS_LOADER_EXPORT___ = _node_modules_pnpm_css_loader_6_11_0_webpack_5_100_2_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_1___default()((_node_modules_pnpm_css_loader_6_11_0_webpack_5_100_2_node_modules_css_loader_dist_runtime_noSourceMaps_js__WEBPACK_IMPORTED_MODULE_0___default()));
8552
8649
  // Module
8553
- ___CSS_LOADER_EXPORT___.push([module.id, ".action-panel__rules-row .el-radio-button__inner {\n padding: 5px 10px;\n font-size: 12px;\n white-space: nowrap;\n}\n.more-settings-popover {\n padding: 4px 0 !important;\n min-width: 140px;\n background: var(--mb-bg-overlay) !important;\n border-color: var(--mb-border-color) !important;\n}\n.more-settings-popover .popper__arrow {\n border-bottom-color: var(--mb-border-color) !important;\n}\n.more-settings-popover .popper__arrow::after {\n border-bottom-color: var(--mb-bg-overlay) !important;\n}\n.more-settings-popover .more-settings-menu__item {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 9px 16px;\n font-size: 13px;\n color: var(--mb-text-primary);\n cursor: pointer;\n}\n.more-settings-popover .more-settings-menu__item:hover {\n background: var(--mb-accent-blue-bg);\n color: var(--mb-accent-blue);\n}\n.more-settings-popover .more-settings-menu__item i {\n font-size: 14px;\n}\n.more-settings-popover .more-settings-menu__divider {\n height: 1px;\n background: var(--mb-border-color);\n margin: 4px 0;\n}\n.import-preview-dialog .el-dialog__body {\n padding: 20px;\n}\n", ""]);
8650
+ ___CSS_LOADER_EXPORT___.push([module.id, ".more-settings-popover {\n padding: 4px 0 !important;\n min-width: 140px;\n background: var(--mb-bg-overlay) !important;\n border-color: var(--mb-border-color) !important;\n}\n.more-settings-popover .popper__arrow {\n border-bottom-color: var(--mb-border-color) !important;\n}\n.more-settings-popover .popper__arrow::after {\n border-bottom-color: var(--mb-bg-overlay) !important;\n}\n.more-settings-popover .more-settings-menu__item {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 9px 16px;\n font-size: 13px;\n color: var(--mb-text-primary);\n cursor: pointer;\n}\n.more-settings-popover .more-settings-menu__item:hover {\n background: var(--mb-accent-blue-bg);\n color: var(--mb-accent-blue);\n}\n.more-settings-popover .more-settings-menu__item i {\n font-size: 14px;\n}\n.more-settings-popover .more-settings-menu__divider {\n height: 1px;\n background: var(--mb-border-color);\n margin: 4px 0;\n}\n.import-preview-dialog .el-dialog__body {\n padding: 20px;\n}\n", ""]);
8554
8651
  // Exports
8555
8652
  /* harmony default export */ __webpack_exports__["default"] = (___CSS_LOADER_EXPORT___);
8556
8653
 
@@ -8757,6 +8854,50 @@ if(false) // removed by dead control flow
8757
8854
 
8758
8855
  /***/ }),
8759
8856
 
8857
+ /***/ "./node_modules/.pnpm/vue-style-loader@4.1.3/node_modules/vue-style-loader/index.js??clonedRuleSet-32.use[0]!./node_modules/.pnpm/css-loader@6.11.0_webpack@5.100.2/node_modules/css-loader/dist/cjs.js??clonedRuleSet-32.use[1]!./node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/.pnpm/postcss-loader@6.2.1_postcss@8.5.6_webpack@5.100.1/node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-32.use[2]!./node_modules/.pnpm/less-loader@11.0.0_less@4.1.2_webpack@5.100.2/node_modules/less-loader/dist/cjs.js??clonedRuleSet-32.use[3]!./node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/content/RequestInfoDialog.vue?vue&type=style&index=0&id=b9cf4022&lang=less":
8858
+ /*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
8859
+ !*** ./node_modules/.pnpm/vue-style-loader@4.1.3/node_modules/vue-style-loader/index.js??clonedRuleSet-32.use[0]!./node_modules/.pnpm/css-loader@6.11.0_webpack@5.100.2/node_modules/css-loader/dist/cjs.js??clonedRuleSet-32.use[1]!./node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/.pnpm/postcss-loader@6.2.1_postcss@8.5.6_webpack@5.100.1/node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-32.use[2]!./node_modules/.pnpm/less-loader@11.0.0_less@4.1.2_webpack@5.100.2/node_modules/less-loader/dist/cjs.js??clonedRuleSet-32.use[3]!./node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/content/RequestInfoDialog.vue?vue&type=style&index=0&id=b9cf4022&lang=less ***!
8860
+ \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
8861
+ /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
8862
+
8863
+ // style-loader: Adds some css to the DOM by adding a <style> tag
8864
+
8865
+ // load the styles
8866
+ var content = __webpack_require__(/*! !!../../../node_modules/.pnpm/css-loader@6.11.0_webpack@5.100.2/node_modules/css-loader/dist/cjs.js??clonedRuleSet-32.use[1]!../../../node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/.pnpm/postcss-loader@6.2.1_postcss@8.5.6_webpack@5.100.1/node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-32.use[2]!../../../node_modules/.pnpm/less-loader@11.0.0_less@4.1.2_webpack@5.100.2/node_modules/less-loader/dist/cjs.js??clonedRuleSet-32.use[3]!../../../node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/index.js??vue-loader-options!./RequestInfoDialog.vue?vue&type=style&index=0&id=b9cf4022&lang=less */ "./node_modules/.pnpm/css-loader@6.11.0_webpack@5.100.2/node_modules/css-loader/dist/cjs.js??clonedRuleSet-32.use[1]!./node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/.pnpm/postcss-loader@6.2.1_postcss@8.5.6_webpack@5.100.1/node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-32.use[2]!./node_modules/.pnpm/less-loader@11.0.0_less@4.1.2_webpack@5.100.2/node_modules/less-loader/dist/cjs.js??clonedRuleSet-32.use[3]!./node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/content/RequestInfoDialog.vue?vue&type=style&index=0&id=b9cf4022&lang=less");
8867
+ if(content.__esModule) content = content.default;
8868
+ if(typeof content === 'string') content = [[module.id, content, '']];
8869
+ if(content.locals) module.exports = content.locals;
8870
+ // add the styles to the DOM
8871
+ var add = (__webpack_require__(/*! !../../../node_modules/.pnpm/vue-style-loader@4.1.3/node_modules/vue-style-loader/lib/addStylesClient.js */ "./node_modules/.pnpm/vue-style-loader@4.1.3/node_modules/vue-style-loader/lib/addStylesClient.js")["default"])
8872
+ var update = add("46342588", content, false, {"sourceMap":false,"shadowMode":false});
8873
+ // Hot Module Replacement
8874
+ if(false) // removed by dead control flow
8875
+ {}
8876
+
8877
+ /***/ }),
8878
+
8879
+ /***/ "./node_modules/.pnpm/vue-style-loader@4.1.3/node_modules/vue-style-loader/index.js??clonedRuleSet-32.use[0]!./node_modules/.pnpm/css-loader@6.11.0_webpack@5.100.2/node_modules/css-loader/dist/cjs.js??clonedRuleSet-32.use[1]!./node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/.pnpm/postcss-loader@6.2.1_postcss@8.5.6_webpack@5.100.1/node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-32.use[2]!./node_modules/.pnpm/less-loader@11.0.0_less@4.1.2_webpack@5.100.2/node_modules/less-loader/dist/cjs.js??clonedRuleSet-32.use[3]!./node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/content/RequestInfoDialog.vue?vue&type=style&index=1&id=b9cf4022&lang=less&scoped=true":
8880
+ /*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
8881
+ !*** ./node_modules/.pnpm/vue-style-loader@4.1.3/node_modules/vue-style-loader/index.js??clonedRuleSet-32.use[0]!./node_modules/.pnpm/css-loader@6.11.0_webpack@5.100.2/node_modules/css-loader/dist/cjs.js??clonedRuleSet-32.use[1]!./node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/.pnpm/postcss-loader@6.2.1_postcss@8.5.6_webpack@5.100.1/node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-32.use[2]!./node_modules/.pnpm/less-loader@11.0.0_less@4.1.2_webpack@5.100.2/node_modules/less-loader/dist/cjs.js??clonedRuleSet-32.use[3]!./node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/content/RequestInfoDialog.vue?vue&type=style&index=1&id=b9cf4022&lang=less&scoped=true ***!
8882
+ \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
8883
+ /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
8884
+
8885
+ // style-loader: Adds some css to the DOM by adding a <style> tag
8886
+
8887
+ // load the styles
8888
+ var content = __webpack_require__(/*! !!../../../node_modules/.pnpm/css-loader@6.11.0_webpack@5.100.2/node_modules/css-loader/dist/cjs.js??clonedRuleSet-32.use[1]!../../../node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/.pnpm/postcss-loader@6.2.1_postcss@8.5.6_webpack@5.100.1/node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-32.use[2]!../../../node_modules/.pnpm/less-loader@11.0.0_less@4.1.2_webpack@5.100.2/node_modules/less-loader/dist/cjs.js??clonedRuleSet-32.use[3]!../../../node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/index.js??vue-loader-options!./RequestInfoDialog.vue?vue&type=style&index=1&id=b9cf4022&lang=less&scoped=true */ "./node_modules/.pnpm/css-loader@6.11.0_webpack@5.100.2/node_modules/css-loader/dist/cjs.js??clonedRuleSet-32.use[1]!./node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/.pnpm/postcss-loader@6.2.1_postcss@8.5.6_webpack@5.100.1/node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-32.use[2]!./node_modules/.pnpm/less-loader@11.0.0_less@4.1.2_webpack@5.100.2/node_modules/less-loader/dist/cjs.js??clonedRuleSet-32.use[3]!./node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/content/RequestInfoDialog.vue?vue&type=style&index=1&id=b9cf4022&lang=less&scoped=true");
8889
+ if(content.__esModule) content = content.default;
8890
+ if(typeof content === 'string') content = [[module.id, content, '']];
8891
+ if(content.locals) module.exports = content.locals;
8892
+ // add the styles to the DOM
8893
+ var add = (__webpack_require__(/*! !../../../node_modules/.pnpm/vue-style-loader@4.1.3/node_modules/vue-style-loader/lib/addStylesClient.js */ "./node_modules/.pnpm/vue-style-loader@4.1.3/node_modules/vue-style-loader/lib/addStylesClient.js")["default"])
8894
+ var update = add("4f4c5fd2", content, false, {"sourceMap":false,"shadowMode":false});
8895
+ // Hot Module Replacement
8896
+ if(false) // removed by dead control flow
8897
+ {}
8898
+
8899
+ /***/ }),
8900
+
8760
8901
  /***/ "./node_modules/.pnpm/vue-style-loader@4.1.3/node_modules/vue-style-loader/index.js??clonedRuleSet-32.use[0]!./node_modules/.pnpm/css-loader@6.11.0_webpack@5.100.2/node_modules/css-loader/dist/cjs.js??clonedRuleSet-32.use[1]!./node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/.pnpm/postcss-loader@6.2.1_postcss@8.5.6_webpack@5.100.1/node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-32.use[2]!./node_modules/.pnpm/less-loader@11.0.0_less@4.1.2_webpack@5.100.2/node_modules/less-loader/dist/cjs.js??clonedRuleSet-32.use[3]!./node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/content/RequestList.vue?vue&type=style&index=0&id=1d02c492&lang=less&scoped=true":
8761
8902
  /*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
8762
8903
  !*** ./node_modules/.pnpm/vue-style-loader@4.1.3/node_modules/vue-style-loader/index.js??clonedRuleSet-32.use[0]!./node_modules/.pnpm/css-loader@6.11.0_webpack@5.100.2/node_modules/css-loader/dist/cjs.js??clonedRuleSet-32.use[1]!./node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/.pnpm/postcss-loader@6.2.1_postcss@8.5.6_webpack@5.100.1/node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-32.use[2]!./node_modules/.pnpm/less-loader@11.0.0_less@4.1.2_webpack@5.100.2/node_modules/less-loader/dist/cjs.js??clonedRuleSet-32.use[3]!./node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/content/RequestList.vue?vue&type=style&index=0&id=1d02c492&lang=less&scoped=true ***!
@@ -8779,6 +8920,28 @@ if(false) // removed by dead control flow
8779
8920
 
8780
8921
  /***/ }),
8781
8922
 
8923
+ /***/ "./node_modules/.pnpm/vue-style-loader@4.1.3/node_modules/vue-style-loader/index.js??clonedRuleSet-32.use[0]!./node_modules/.pnpm/css-loader@6.11.0_webpack@5.100.2/node_modules/css-loader/dist/cjs.js??clonedRuleSet-32.use[1]!./node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/.pnpm/postcss-loader@6.2.1_postcss@8.5.6_webpack@5.100.1/node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-32.use[2]!./node_modules/.pnpm/less-loader@11.0.0_less@4.1.2_webpack@5.100.2/node_modules/less-loader/dist/cjs.js??clonedRuleSet-32.use[3]!./node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/content/RequestList.vue?vue&type=style&index=1&id=1d02c492&lang=less":
8924
+ /*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
8925
+ !*** ./node_modules/.pnpm/vue-style-loader@4.1.3/node_modules/vue-style-loader/index.js??clonedRuleSet-32.use[0]!./node_modules/.pnpm/css-loader@6.11.0_webpack@5.100.2/node_modules/css-loader/dist/cjs.js??clonedRuleSet-32.use[1]!./node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/.pnpm/postcss-loader@6.2.1_postcss@8.5.6_webpack@5.100.1/node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-32.use[2]!./node_modules/.pnpm/less-loader@11.0.0_less@4.1.2_webpack@5.100.2/node_modules/less-loader/dist/cjs.js??clonedRuleSet-32.use[3]!./node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/content/RequestList.vue?vue&type=style&index=1&id=1d02c492&lang=less ***!
8926
+ \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
8927
+ /***/ (function(module, __unused_webpack_exports, __webpack_require__) {
8928
+
8929
+ // style-loader: Adds some css to the DOM by adding a <style> tag
8930
+
8931
+ // load the styles
8932
+ var content = __webpack_require__(/*! !!../../../node_modules/.pnpm/css-loader@6.11.0_webpack@5.100.2/node_modules/css-loader/dist/cjs.js??clonedRuleSet-32.use[1]!../../../node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/.pnpm/postcss-loader@6.2.1_postcss@8.5.6_webpack@5.100.1/node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-32.use[2]!../../../node_modules/.pnpm/less-loader@11.0.0_less@4.1.2_webpack@5.100.2/node_modules/less-loader/dist/cjs.js??clonedRuleSet-32.use[3]!../../../node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/index.js??vue-loader-options!./RequestList.vue?vue&type=style&index=1&id=1d02c492&lang=less */ "./node_modules/.pnpm/css-loader@6.11.0_webpack@5.100.2/node_modules/css-loader/dist/cjs.js??clonedRuleSet-32.use[1]!./node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/.pnpm/postcss-loader@6.2.1_postcss@8.5.6_webpack@5.100.1/node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-32.use[2]!./node_modules/.pnpm/less-loader@11.0.0_less@4.1.2_webpack@5.100.2/node_modules/less-loader/dist/cjs.js??clonedRuleSet-32.use[3]!./node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/content/RequestList.vue?vue&type=style&index=1&id=1d02c492&lang=less");
8933
+ if(content.__esModule) content = content.default;
8934
+ if(typeof content === 'string') content = [[module.id, content, '']];
8935
+ if(content.locals) module.exports = content.locals;
8936
+ // add the styles to the DOM
8937
+ var add = (__webpack_require__(/*! !../../../node_modules/.pnpm/vue-style-loader@4.1.3/node_modules/vue-style-loader/lib/addStylesClient.js */ "./node_modules/.pnpm/vue-style-loader@4.1.3/node_modules/vue-style-loader/lib/addStylesClient.js")["default"])
8938
+ var update = add("1fe6e0e6", content, false, {"sourceMap":false,"shadowMode":false});
8939
+ // Hot Module Replacement
8940
+ if(false) // removed by dead control flow
8941
+ {}
8942
+
8943
+ /***/ }),
8944
+
8782
8945
  /***/ "./node_modules/.pnpm/vue-style-loader@4.1.3/node_modules/vue-style-loader/index.js??clonedRuleSet-32.use[0]!./node_modules/.pnpm/css-loader@6.11.0_webpack@5.100.2/node_modules/css-loader/dist/cjs.js??clonedRuleSet-32.use[1]!./node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/.pnpm/postcss-loader@6.2.1_postcss@8.5.6_webpack@5.100.1/node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-32.use[2]!./node_modules/.pnpm/less-loader@11.0.0_less@4.1.2_webpack@5.100.2/node_modules/less-loader/dist/cjs.js??clonedRuleSet-32.use[3]!./node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/content/ResponsePanel.vue?vue&type=style&index=0&id=c23cd6a6&lang=less&scoped=true":
8783
8946
  /*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
8784
8947
  !*** ./node_modules/.pnpm/vue-style-loader@4.1.3/node_modules/vue-style-loader/index.js??clonedRuleSet-32.use[0]!./node_modules/.pnpm/css-loader@6.11.0_webpack@5.100.2/node_modules/css-loader/dist/cjs.js??clonedRuleSet-32.use[1]!./node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/.pnpm/postcss-loader@6.2.1_postcss@8.5.6_webpack@5.100.1/node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-32.use[2]!./node_modules/.pnpm/less-loader@11.0.0_less@4.1.2_webpack@5.100.2/node_modules/less-loader/dist/cjs.js??clonedRuleSet-32.use[3]!./node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/content/ResponsePanel.vue?vue&type=style&index=0&id=c23cd6a6&lang=less&scoped=true ***!
@@ -9424,6 +9587,111 @@ __webpack_require__.r(__webpack_exports__);
9424
9587
  /* harmony import */ var _node_modules_pnpm_babel_loader_8_4_1_babel_core_7_12_16_webpack_5_100_1_node_modules_babel_loader_lib_index_js_clonedRuleSet_40_use_0_node_modules_pnpm_vue_loader_15_11_1_css_loader_6_11_0_vue_template_compiler_2_6_14_webpack_5_100_1_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_pnpm_vue_loader_15_11_1_css_loader_6_11_0_vue_template_compiler_2_6_14_webpack_5_100_1_node_modules_vue_loader_lib_index_js_vue_loader_options_RequestDetail_vue_vue_type_template_id_77bc97aa_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.12.16_webpack@5.100.1/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/index.js??vue-loader-options!./RequestDetail.vue?vue&type=template&id=77bc97aa&scoped=true */ "./node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.12.16_webpack@5.100.1/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/content/RequestDetail.vue?vue&type=template&id=77bc97aa&scoped=true");
9425
9588
 
9426
9589
 
9590
+ /***/ }),
9591
+
9592
+ /***/ "./src/components/content/RequestInfoDialog.vue":
9593
+ /*!******************************************************!*\
9594
+ !*** ./src/components/content/RequestInfoDialog.vue ***!
9595
+ \******************************************************/
9596
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
9597
+
9598
+ "use strict";
9599
+ __webpack_require__.r(__webpack_exports__);
9600
+ /* harmony import */ var _RequestInfoDialog_vue_vue_type_template_id_b9cf4022_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./RequestInfoDialog.vue?vue&type=template&id=b9cf4022&scoped=true */ "./src/components/content/RequestInfoDialog.vue?vue&type=template&id=b9cf4022&scoped=true");
9601
+ /* harmony import */ var _RequestInfoDialog_vue_vue_type_script_setup_true_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./RequestInfoDialog.vue?vue&type=script&setup=true&lang=js */ "./src/components/content/RequestInfoDialog.vue?vue&type=script&setup=true&lang=js");
9602
+ /* harmony import */ var _RequestInfoDialog_vue_vue_type_style_index_0_id_b9cf4022_lang_less__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./RequestInfoDialog.vue?vue&type=style&index=0&id=b9cf4022&lang=less */ "./src/components/content/RequestInfoDialog.vue?vue&type=style&index=0&id=b9cf4022&lang=less");
9603
+ /* harmony import */ var _RequestInfoDialog_vue_vue_type_style_index_1_id_b9cf4022_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./RequestInfoDialog.vue?vue&type=style&index=1&id=b9cf4022&lang=less&scoped=true */ "./src/components/content/RequestInfoDialog.vue?vue&type=style&index=1&id=b9cf4022&lang=less&scoped=true");
9604
+ /* harmony import */ var _node_modules_pnpm_vue_loader_15_11_1_css_loader_6_11_0_vue_template_compiler_2_6_14_webpack_5_100_1_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/runtime/componentNormalizer.js");
9605
+
9606
+
9607
+
9608
+ ;
9609
+
9610
+
9611
+
9612
+ /* normalize component */
9613
+
9614
+ var component = (0,_node_modules_pnpm_vue_loader_15_11_1_css_loader_6_11_0_vue_template_compiler_2_6_14_webpack_5_100_1_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_4__["default"])(
9615
+ _RequestInfoDialog_vue_vue_type_script_setup_true_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"],
9616
+ _RequestInfoDialog_vue_vue_type_template_id_b9cf4022_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render,
9617
+ _RequestInfoDialog_vue_vue_type_template_id_b9cf4022_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns,
9618
+ false,
9619
+ null,
9620
+ "b9cf4022",
9621
+ null
9622
+
9623
+ )
9624
+
9625
+ /* hot reload */
9626
+ if (false) // removed by dead control flow
9627
+ { var api; }
9628
+ component.options.__file = "src/components/content/RequestInfoDialog.vue"
9629
+ /* harmony default export */ __webpack_exports__["default"] = (component.exports);
9630
+
9631
+ /***/ }),
9632
+
9633
+ /***/ "./src/components/content/RequestInfoDialog.vue?vue&type=script&setup=true&lang=js":
9634
+ /*!*****************************************************************************************!*\
9635
+ !*** ./src/components/content/RequestInfoDialog.vue?vue&type=script&setup=true&lang=js ***!
9636
+ \*****************************************************************************************/
9637
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
9638
+
9639
+ "use strict";
9640
+ __webpack_require__.r(__webpack_exports__);
9641
+ /* harmony import */ var _node_modules_pnpm_babel_loader_8_4_1_babel_core_7_12_16_webpack_5_100_1_node_modules_babel_loader_lib_index_js_clonedRuleSet_40_use_0_node_modules_pnpm_vue_loader_15_11_1_css_loader_6_11_0_vue_template_compiler_2_6_14_webpack_5_100_1_node_modules_vue_loader_lib_index_js_vue_loader_options_RequestInfoDialog_vue_vue_type_script_setup_true_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.12.16_webpack@5.100.1/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/index.js??vue-loader-options!./RequestInfoDialog.vue?vue&type=script&setup=true&lang=js */ "./node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.12.16_webpack@5.100.1/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/content/RequestInfoDialog.vue?vue&type=script&setup=true&lang=js");
9642
+ /* harmony default export */ __webpack_exports__["default"] = (_node_modules_pnpm_babel_loader_8_4_1_babel_core_7_12_16_webpack_5_100_1_node_modules_babel_loader_lib_index_js_clonedRuleSet_40_use_0_node_modules_pnpm_vue_loader_15_11_1_css_loader_6_11_0_vue_template_compiler_2_6_14_webpack_5_100_1_node_modules_vue_loader_lib_index_js_vue_loader_options_RequestInfoDialog_vue_vue_type_script_setup_true_lang_js__WEBPACK_IMPORTED_MODULE_0__["default"]);
9643
+
9644
+ /***/ }),
9645
+
9646
+ /***/ "./src/components/content/RequestInfoDialog.vue?vue&type=style&index=0&id=b9cf4022&lang=less":
9647
+ /*!***************************************************************************************************!*\
9648
+ !*** ./src/components/content/RequestInfoDialog.vue?vue&type=style&index=0&id=b9cf4022&lang=less ***!
9649
+ \***************************************************************************************************/
9650
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
9651
+
9652
+ "use strict";
9653
+ __webpack_require__.r(__webpack_exports__);
9654
+ /* harmony import */ var _node_modules_pnpm_vue_style_loader_4_1_3_node_modules_vue_style_loader_index_js_clonedRuleSet_32_use_0_node_modules_pnpm_css_loader_6_11_0_webpack_5_100_2_node_modules_css_loader_dist_cjs_js_clonedRuleSet_32_use_1_node_modules_pnpm_vue_loader_15_11_1_css_loader_6_11_0_vue_template_compiler_2_6_14_webpack_5_100_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_pnpm_postcss_loader_6_2_1_postcss_8_5_6_webpack_5_100_1_node_modules_postcss_loader_dist_cjs_js_clonedRuleSet_32_use_2_node_modules_pnpm_less_loader_11_0_0_less_4_1_2_webpack_5_100_2_node_modules_less_loader_dist_cjs_js_clonedRuleSet_32_use_3_node_modules_pnpm_vue_loader_15_11_1_css_loader_6_11_0_vue_template_compiler_2_6_14_webpack_5_100_1_node_modules_vue_loader_lib_index_js_vue_loader_options_RequestInfoDialog_vue_vue_type_style_index_0_id_b9cf4022_lang_less__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/.pnpm/vue-style-loader@4.1.3/node_modules/vue-style-loader/index.js??clonedRuleSet-32.use[0]!../../../node_modules/.pnpm/css-loader@6.11.0_webpack@5.100.2/node_modules/css-loader/dist/cjs.js??clonedRuleSet-32.use[1]!../../../node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/.pnpm/postcss-loader@6.2.1_postcss@8.5.6_webpack@5.100.1/node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-32.use[2]!../../../node_modules/.pnpm/less-loader@11.0.0_less@4.1.2_webpack@5.100.2/node_modules/less-loader/dist/cjs.js??clonedRuleSet-32.use[3]!../../../node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/index.js??vue-loader-options!./RequestInfoDialog.vue?vue&type=style&index=0&id=b9cf4022&lang=less */ "./node_modules/.pnpm/vue-style-loader@4.1.3/node_modules/vue-style-loader/index.js??clonedRuleSet-32.use[0]!./node_modules/.pnpm/css-loader@6.11.0_webpack@5.100.2/node_modules/css-loader/dist/cjs.js??clonedRuleSet-32.use[1]!./node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/.pnpm/postcss-loader@6.2.1_postcss@8.5.6_webpack@5.100.1/node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-32.use[2]!./node_modules/.pnpm/less-loader@11.0.0_less@4.1.2_webpack@5.100.2/node_modules/less-loader/dist/cjs.js??clonedRuleSet-32.use[3]!./node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/content/RequestInfoDialog.vue?vue&type=style&index=0&id=b9cf4022&lang=less");
9655
+ /* harmony import */ var _node_modules_pnpm_vue_style_loader_4_1_3_node_modules_vue_style_loader_index_js_clonedRuleSet_32_use_0_node_modules_pnpm_css_loader_6_11_0_webpack_5_100_2_node_modules_css_loader_dist_cjs_js_clonedRuleSet_32_use_1_node_modules_pnpm_vue_loader_15_11_1_css_loader_6_11_0_vue_template_compiler_2_6_14_webpack_5_100_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_pnpm_postcss_loader_6_2_1_postcss_8_5_6_webpack_5_100_1_node_modules_postcss_loader_dist_cjs_js_clonedRuleSet_32_use_2_node_modules_pnpm_less_loader_11_0_0_less_4_1_2_webpack_5_100_2_node_modules_less_loader_dist_cjs_js_clonedRuleSet_32_use_3_node_modules_pnpm_vue_loader_15_11_1_css_loader_6_11_0_vue_template_compiler_2_6_14_webpack_5_100_1_node_modules_vue_loader_lib_index_js_vue_loader_options_RequestInfoDialog_vue_vue_type_style_index_0_id_b9cf4022_lang_less__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_pnpm_vue_style_loader_4_1_3_node_modules_vue_style_loader_index_js_clonedRuleSet_32_use_0_node_modules_pnpm_css_loader_6_11_0_webpack_5_100_2_node_modules_css_loader_dist_cjs_js_clonedRuleSet_32_use_1_node_modules_pnpm_vue_loader_15_11_1_css_loader_6_11_0_vue_template_compiler_2_6_14_webpack_5_100_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_pnpm_postcss_loader_6_2_1_postcss_8_5_6_webpack_5_100_1_node_modules_postcss_loader_dist_cjs_js_clonedRuleSet_32_use_2_node_modules_pnpm_less_loader_11_0_0_less_4_1_2_webpack_5_100_2_node_modules_less_loader_dist_cjs_js_clonedRuleSet_32_use_3_node_modules_pnpm_vue_loader_15_11_1_css_loader_6_11_0_vue_template_compiler_2_6_14_webpack_5_100_1_node_modules_vue_loader_lib_index_js_vue_loader_options_RequestInfoDialog_vue_vue_type_style_index_0_id_b9cf4022_lang_less__WEBPACK_IMPORTED_MODULE_0__);
9656
+ /* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};
9657
+ /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_pnpm_vue_style_loader_4_1_3_node_modules_vue_style_loader_index_js_clonedRuleSet_32_use_0_node_modules_pnpm_css_loader_6_11_0_webpack_5_100_2_node_modules_css_loader_dist_cjs_js_clonedRuleSet_32_use_1_node_modules_pnpm_vue_loader_15_11_1_css_loader_6_11_0_vue_template_compiler_2_6_14_webpack_5_100_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_pnpm_postcss_loader_6_2_1_postcss_8_5_6_webpack_5_100_1_node_modules_postcss_loader_dist_cjs_js_clonedRuleSet_32_use_2_node_modules_pnpm_less_loader_11_0_0_less_4_1_2_webpack_5_100_2_node_modules_less_loader_dist_cjs_js_clonedRuleSet_32_use_3_node_modules_pnpm_vue_loader_15_11_1_css_loader_6_11_0_vue_template_compiler_2_6_14_webpack_5_100_1_node_modules_vue_loader_lib_index_js_vue_loader_options_RequestInfoDialog_vue_vue_type_style_index_0_id_b9cf4022_lang_less__WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== "default") __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = function(key) { return _node_modules_pnpm_vue_style_loader_4_1_3_node_modules_vue_style_loader_index_js_clonedRuleSet_32_use_0_node_modules_pnpm_css_loader_6_11_0_webpack_5_100_2_node_modules_css_loader_dist_cjs_js_clonedRuleSet_32_use_1_node_modules_pnpm_vue_loader_15_11_1_css_loader_6_11_0_vue_template_compiler_2_6_14_webpack_5_100_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_pnpm_postcss_loader_6_2_1_postcss_8_5_6_webpack_5_100_1_node_modules_postcss_loader_dist_cjs_js_clonedRuleSet_32_use_2_node_modules_pnpm_less_loader_11_0_0_less_4_1_2_webpack_5_100_2_node_modules_less_loader_dist_cjs_js_clonedRuleSet_32_use_3_node_modules_pnpm_vue_loader_15_11_1_css_loader_6_11_0_vue_template_compiler_2_6_14_webpack_5_100_1_node_modules_vue_loader_lib_index_js_vue_loader_options_RequestInfoDialog_vue_vue_type_style_index_0_id_b9cf4022_lang_less__WEBPACK_IMPORTED_MODULE_0__[key]; }.bind(0, __WEBPACK_IMPORT_KEY__)
9658
+ /* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
9659
+
9660
+
9661
+ /***/ }),
9662
+
9663
+ /***/ "./src/components/content/RequestInfoDialog.vue?vue&type=style&index=1&id=b9cf4022&lang=less&scoped=true":
9664
+ /*!***************************************************************************************************************!*\
9665
+ !*** ./src/components/content/RequestInfoDialog.vue?vue&type=style&index=1&id=b9cf4022&lang=less&scoped=true ***!
9666
+ \***************************************************************************************************************/
9667
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
9668
+
9669
+ "use strict";
9670
+ __webpack_require__.r(__webpack_exports__);
9671
+ /* harmony import */ var _node_modules_pnpm_vue_style_loader_4_1_3_node_modules_vue_style_loader_index_js_clonedRuleSet_32_use_0_node_modules_pnpm_css_loader_6_11_0_webpack_5_100_2_node_modules_css_loader_dist_cjs_js_clonedRuleSet_32_use_1_node_modules_pnpm_vue_loader_15_11_1_css_loader_6_11_0_vue_template_compiler_2_6_14_webpack_5_100_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_pnpm_postcss_loader_6_2_1_postcss_8_5_6_webpack_5_100_1_node_modules_postcss_loader_dist_cjs_js_clonedRuleSet_32_use_2_node_modules_pnpm_less_loader_11_0_0_less_4_1_2_webpack_5_100_2_node_modules_less_loader_dist_cjs_js_clonedRuleSet_32_use_3_node_modules_pnpm_vue_loader_15_11_1_css_loader_6_11_0_vue_template_compiler_2_6_14_webpack_5_100_1_node_modules_vue_loader_lib_index_js_vue_loader_options_RequestInfoDialog_vue_vue_type_style_index_1_id_b9cf4022_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/.pnpm/vue-style-loader@4.1.3/node_modules/vue-style-loader/index.js??clonedRuleSet-32.use[0]!../../../node_modules/.pnpm/css-loader@6.11.0_webpack@5.100.2/node_modules/css-loader/dist/cjs.js??clonedRuleSet-32.use[1]!../../../node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/.pnpm/postcss-loader@6.2.1_postcss@8.5.6_webpack@5.100.1/node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-32.use[2]!../../../node_modules/.pnpm/less-loader@11.0.0_less@4.1.2_webpack@5.100.2/node_modules/less-loader/dist/cjs.js??clonedRuleSet-32.use[3]!../../../node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/index.js??vue-loader-options!./RequestInfoDialog.vue?vue&type=style&index=1&id=b9cf4022&lang=less&scoped=true */ "./node_modules/.pnpm/vue-style-loader@4.1.3/node_modules/vue-style-loader/index.js??clonedRuleSet-32.use[0]!./node_modules/.pnpm/css-loader@6.11.0_webpack@5.100.2/node_modules/css-loader/dist/cjs.js??clonedRuleSet-32.use[1]!./node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/.pnpm/postcss-loader@6.2.1_postcss@8.5.6_webpack@5.100.1/node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-32.use[2]!./node_modules/.pnpm/less-loader@11.0.0_less@4.1.2_webpack@5.100.2/node_modules/less-loader/dist/cjs.js??clonedRuleSet-32.use[3]!./node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/content/RequestInfoDialog.vue?vue&type=style&index=1&id=b9cf4022&lang=less&scoped=true");
9672
+ /* harmony import */ var _node_modules_pnpm_vue_style_loader_4_1_3_node_modules_vue_style_loader_index_js_clonedRuleSet_32_use_0_node_modules_pnpm_css_loader_6_11_0_webpack_5_100_2_node_modules_css_loader_dist_cjs_js_clonedRuleSet_32_use_1_node_modules_pnpm_vue_loader_15_11_1_css_loader_6_11_0_vue_template_compiler_2_6_14_webpack_5_100_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_pnpm_postcss_loader_6_2_1_postcss_8_5_6_webpack_5_100_1_node_modules_postcss_loader_dist_cjs_js_clonedRuleSet_32_use_2_node_modules_pnpm_less_loader_11_0_0_less_4_1_2_webpack_5_100_2_node_modules_less_loader_dist_cjs_js_clonedRuleSet_32_use_3_node_modules_pnpm_vue_loader_15_11_1_css_loader_6_11_0_vue_template_compiler_2_6_14_webpack_5_100_1_node_modules_vue_loader_lib_index_js_vue_loader_options_RequestInfoDialog_vue_vue_type_style_index_1_id_b9cf4022_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_pnpm_vue_style_loader_4_1_3_node_modules_vue_style_loader_index_js_clonedRuleSet_32_use_0_node_modules_pnpm_css_loader_6_11_0_webpack_5_100_2_node_modules_css_loader_dist_cjs_js_clonedRuleSet_32_use_1_node_modules_pnpm_vue_loader_15_11_1_css_loader_6_11_0_vue_template_compiler_2_6_14_webpack_5_100_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_pnpm_postcss_loader_6_2_1_postcss_8_5_6_webpack_5_100_1_node_modules_postcss_loader_dist_cjs_js_clonedRuleSet_32_use_2_node_modules_pnpm_less_loader_11_0_0_less_4_1_2_webpack_5_100_2_node_modules_less_loader_dist_cjs_js_clonedRuleSet_32_use_3_node_modules_pnpm_vue_loader_15_11_1_css_loader_6_11_0_vue_template_compiler_2_6_14_webpack_5_100_1_node_modules_vue_loader_lib_index_js_vue_loader_options_RequestInfoDialog_vue_vue_type_style_index_1_id_b9cf4022_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__);
9673
+ /* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};
9674
+ /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_pnpm_vue_style_loader_4_1_3_node_modules_vue_style_loader_index_js_clonedRuleSet_32_use_0_node_modules_pnpm_css_loader_6_11_0_webpack_5_100_2_node_modules_css_loader_dist_cjs_js_clonedRuleSet_32_use_1_node_modules_pnpm_vue_loader_15_11_1_css_loader_6_11_0_vue_template_compiler_2_6_14_webpack_5_100_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_pnpm_postcss_loader_6_2_1_postcss_8_5_6_webpack_5_100_1_node_modules_postcss_loader_dist_cjs_js_clonedRuleSet_32_use_2_node_modules_pnpm_less_loader_11_0_0_less_4_1_2_webpack_5_100_2_node_modules_less_loader_dist_cjs_js_clonedRuleSet_32_use_3_node_modules_pnpm_vue_loader_15_11_1_css_loader_6_11_0_vue_template_compiler_2_6_14_webpack_5_100_1_node_modules_vue_loader_lib_index_js_vue_loader_options_RequestInfoDialog_vue_vue_type_style_index_1_id_b9cf4022_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== "default") __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = function(key) { return _node_modules_pnpm_vue_style_loader_4_1_3_node_modules_vue_style_loader_index_js_clonedRuleSet_32_use_0_node_modules_pnpm_css_loader_6_11_0_webpack_5_100_2_node_modules_css_loader_dist_cjs_js_clonedRuleSet_32_use_1_node_modules_pnpm_vue_loader_15_11_1_css_loader_6_11_0_vue_template_compiler_2_6_14_webpack_5_100_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_pnpm_postcss_loader_6_2_1_postcss_8_5_6_webpack_5_100_1_node_modules_postcss_loader_dist_cjs_js_clonedRuleSet_32_use_2_node_modules_pnpm_less_loader_11_0_0_less_4_1_2_webpack_5_100_2_node_modules_less_loader_dist_cjs_js_clonedRuleSet_32_use_3_node_modules_pnpm_vue_loader_15_11_1_css_loader_6_11_0_vue_template_compiler_2_6_14_webpack_5_100_1_node_modules_vue_loader_lib_index_js_vue_loader_options_RequestInfoDialog_vue_vue_type_style_index_1_id_b9cf4022_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_0__[key]; }.bind(0, __WEBPACK_IMPORT_KEY__)
9675
+ /* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
9676
+
9677
+
9678
+ /***/ }),
9679
+
9680
+ /***/ "./src/components/content/RequestInfoDialog.vue?vue&type=template&id=b9cf4022&scoped=true":
9681
+ /*!************************************************************************************************!*\
9682
+ !*** ./src/components/content/RequestInfoDialog.vue?vue&type=template&id=b9cf4022&scoped=true ***!
9683
+ \************************************************************************************************/
9684
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
9685
+
9686
+ "use strict";
9687
+ __webpack_require__.r(__webpack_exports__);
9688
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
9689
+ /* harmony export */ render: function() { return /* reexport safe */ _node_modules_pnpm_babel_loader_8_4_1_babel_core_7_12_16_webpack_5_100_1_node_modules_babel_loader_lib_index_js_clonedRuleSet_40_use_0_node_modules_pnpm_vue_loader_15_11_1_css_loader_6_11_0_vue_template_compiler_2_6_14_webpack_5_100_1_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_pnpm_vue_loader_15_11_1_css_loader_6_11_0_vue_template_compiler_2_6_14_webpack_5_100_1_node_modules_vue_loader_lib_index_js_vue_loader_options_RequestInfoDialog_vue_vue_type_template_id_b9cf4022_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render; },
9690
+ /* harmony export */ staticRenderFns: function() { return /* reexport safe */ _node_modules_pnpm_babel_loader_8_4_1_babel_core_7_12_16_webpack_5_100_1_node_modules_babel_loader_lib_index_js_clonedRuleSet_40_use_0_node_modules_pnpm_vue_loader_15_11_1_css_loader_6_11_0_vue_template_compiler_2_6_14_webpack_5_100_1_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_pnpm_vue_loader_15_11_1_css_loader_6_11_0_vue_template_compiler_2_6_14_webpack_5_100_1_node_modules_vue_loader_lib_index_js_vue_loader_options_RequestInfoDialog_vue_vue_type_template_id_b9cf4022_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns; }
9691
+ /* harmony export */ });
9692
+ /* harmony import */ var _node_modules_pnpm_babel_loader_8_4_1_babel_core_7_12_16_webpack_5_100_1_node_modules_babel_loader_lib_index_js_clonedRuleSet_40_use_0_node_modules_pnpm_vue_loader_15_11_1_css_loader_6_11_0_vue_template_compiler_2_6_14_webpack_5_100_1_node_modules_vue_loader_lib_loaders_templateLoader_js_ruleSet_1_rules_3_node_modules_pnpm_vue_loader_15_11_1_css_loader_6_11_0_vue_template_compiler_2_6_14_webpack_5_100_1_node_modules_vue_loader_lib_index_js_vue_loader_options_RequestInfoDialog_vue_vue_type_template_id_b9cf4022_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.12.16_webpack@5.100.1/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!../../../node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!../../../node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/index.js??vue-loader-options!./RequestInfoDialog.vue?vue&type=template&id=b9cf4022&scoped=true */ "./node_modules/.pnpm/babel-loader@8.4.1_@babel+core@7.12.16_webpack@5.100.1/node_modules/babel-loader/lib/index.js??clonedRuleSet-40.use[0]!./node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/loaders/templateLoader.js??ruleSet[1].rules[3]!./node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/content/RequestInfoDialog.vue?vue&type=template&id=b9cf4022&scoped=true");
9693
+
9694
+
9427
9695
  /***/ }),
9428
9696
 
9429
9697
  /***/ "./src/components/content/RequestList.vue":
@@ -9437,16 +9705,18 @@ __webpack_require__.r(__webpack_exports__);
9437
9705
  /* harmony import */ var _RequestList_vue_vue_type_template_id_1d02c492_scoped_true__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./RequestList.vue?vue&type=template&id=1d02c492&scoped=true */ "./src/components/content/RequestList.vue?vue&type=template&id=1d02c492&scoped=true");
9438
9706
  /* harmony import */ var _RequestList_vue_vue_type_script_setup_true_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./RequestList.vue?vue&type=script&setup=true&lang=js */ "./src/components/content/RequestList.vue?vue&type=script&setup=true&lang=js");
9439
9707
  /* harmony import */ var _RequestList_vue_vue_type_style_index_0_id_1d02c492_lang_less_scoped_true__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./RequestList.vue?vue&type=style&index=0&id=1d02c492&lang=less&scoped=true */ "./src/components/content/RequestList.vue?vue&type=style&index=0&id=1d02c492&lang=less&scoped=true");
9440
- /* harmony import */ var _node_modules_pnpm_vue_loader_15_11_1_css_loader_6_11_0_vue_template_compiler_2_6_14_webpack_5_100_1_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! !../../../node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/runtime/componentNormalizer.js");
9708
+ /* harmony import */ var _RequestList_vue_vue_type_style_index_1_id_1d02c492_lang_less__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./RequestList.vue?vue&type=style&index=1&id=1d02c492&lang=less */ "./src/components/content/RequestList.vue?vue&type=style&index=1&id=1d02c492&lang=less");
9709
+ /* harmony import */ var _node_modules_pnpm_vue_loader_15_11_1_css_loader_6_11_0_vue_template_compiler_2_6_14_webpack_5_100_1_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! !../../../node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/runtime/componentNormalizer.js */ "./node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/runtime/componentNormalizer.js");
9441
9710
 
9442
9711
 
9443
9712
 
9444
9713
  ;
9445
9714
 
9446
9715
 
9716
+
9447
9717
  /* normalize component */
9448
9718
 
9449
- var component = (0,_node_modules_pnpm_vue_loader_15_11_1_css_loader_6_11_0_vue_template_compiler_2_6_14_webpack_5_100_1_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_3__["default"])(
9719
+ var component = (0,_node_modules_pnpm_vue_loader_15_11_1_css_loader_6_11_0_vue_template_compiler_2_6_14_webpack_5_100_1_node_modules_vue_loader_lib_runtime_componentNormalizer_js__WEBPACK_IMPORTED_MODULE_4__["default"])(
9450
9720
  _RequestList_vue_vue_type_script_setup_true_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"],
9451
9721
  _RequestList_vue_vue_type_template_id_1d02c492_scoped_true__WEBPACK_IMPORTED_MODULE_0__.render,
9452
9722
  _RequestList_vue_vue_type_template_id_1d02c492_scoped_true__WEBPACK_IMPORTED_MODULE_0__.staticRenderFns,
@@ -9493,6 +9763,23 @@ __webpack_require__.r(__webpack_exports__);
9493
9763
  /* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
9494
9764
 
9495
9765
 
9766
+ /***/ }),
9767
+
9768
+ /***/ "./src/components/content/RequestList.vue?vue&type=style&index=1&id=1d02c492&lang=less":
9769
+ /*!*********************************************************************************************!*\
9770
+ !*** ./src/components/content/RequestList.vue?vue&type=style&index=1&id=1d02c492&lang=less ***!
9771
+ \*********************************************************************************************/
9772
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
9773
+
9774
+ "use strict";
9775
+ __webpack_require__.r(__webpack_exports__);
9776
+ /* harmony import */ var _node_modules_pnpm_vue_style_loader_4_1_3_node_modules_vue_style_loader_index_js_clonedRuleSet_32_use_0_node_modules_pnpm_css_loader_6_11_0_webpack_5_100_2_node_modules_css_loader_dist_cjs_js_clonedRuleSet_32_use_1_node_modules_pnpm_vue_loader_15_11_1_css_loader_6_11_0_vue_template_compiler_2_6_14_webpack_5_100_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_pnpm_postcss_loader_6_2_1_postcss_8_5_6_webpack_5_100_1_node_modules_postcss_loader_dist_cjs_js_clonedRuleSet_32_use_2_node_modules_pnpm_less_loader_11_0_0_less_4_1_2_webpack_5_100_2_node_modules_less_loader_dist_cjs_js_clonedRuleSet_32_use_3_node_modules_pnpm_vue_loader_15_11_1_css_loader_6_11_0_vue_template_compiler_2_6_14_webpack_5_100_1_node_modules_vue_loader_lib_index_js_vue_loader_options_RequestList_vue_vue_type_style_index_1_id_1d02c492_lang_less__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/.pnpm/vue-style-loader@4.1.3/node_modules/vue-style-loader/index.js??clonedRuleSet-32.use[0]!../../../node_modules/.pnpm/css-loader@6.11.0_webpack@5.100.2/node_modules/css-loader/dist/cjs.js??clonedRuleSet-32.use[1]!../../../node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/.pnpm/postcss-loader@6.2.1_postcss@8.5.6_webpack@5.100.1/node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-32.use[2]!../../../node_modules/.pnpm/less-loader@11.0.0_less@4.1.2_webpack@5.100.2/node_modules/less-loader/dist/cjs.js??clonedRuleSet-32.use[3]!../../../node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/index.js??vue-loader-options!./RequestList.vue?vue&type=style&index=1&id=1d02c492&lang=less */ "./node_modules/.pnpm/vue-style-loader@4.1.3/node_modules/vue-style-loader/index.js??clonedRuleSet-32.use[0]!./node_modules/.pnpm/css-loader@6.11.0_webpack@5.100.2/node_modules/css-loader/dist/cjs.js??clonedRuleSet-32.use[1]!./node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/.pnpm/postcss-loader@6.2.1_postcss@8.5.6_webpack@5.100.1/node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-32.use[2]!./node_modules/.pnpm/less-loader@11.0.0_less@4.1.2_webpack@5.100.2/node_modules/less-loader/dist/cjs.js??clonedRuleSet-32.use[3]!./node_modules/.pnpm/vue-loader@15.11.1_css-loader@6.11.0_vue-template-compiler@2.6.14_webpack@5.100.1/node_modules/vue-loader/lib/index.js??vue-loader-options!./src/components/content/RequestList.vue?vue&type=style&index=1&id=1d02c492&lang=less");
9777
+ /* harmony import */ var _node_modules_pnpm_vue_style_loader_4_1_3_node_modules_vue_style_loader_index_js_clonedRuleSet_32_use_0_node_modules_pnpm_css_loader_6_11_0_webpack_5_100_2_node_modules_css_loader_dist_cjs_js_clonedRuleSet_32_use_1_node_modules_pnpm_vue_loader_15_11_1_css_loader_6_11_0_vue_template_compiler_2_6_14_webpack_5_100_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_pnpm_postcss_loader_6_2_1_postcss_8_5_6_webpack_5_100_1_node_modules_postcss_loader_dist_cjs_js_clonedRuleSet_32_use_2_node_modules_pnpm_less_loader_11_0_0_less_4_1_2_webpack_5_100_2_node_modules_less_loader_dist_cjs_js_clonedRuleSet_32_use_3_node_modules_pnpm_vue_loader_15_11_1_css_loader_6_11_0_vue_template_compiler_2_6_14_webpack_5_100_1_node_modules_vue_loader_lib_index_js_vue_loader_options_RequestList_vue_vue_type_style_index_1_id_1d02c492_lang_less__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_pnpm_vue_style_loader_4_1_3_node_modules_vue_style_loader_index_js_clonedRuleSet_32_use_0_node_modules_pnpm_css_loader_6_11_0_webpack_5_100_2_node_modules_css_loader_dist_cjs_js_clonedRuleSet_32_use_1_node_modules_pnpm_vue_loader_15_11_1_css_loader_6_11_0_vue_template_compiler_2_6_14_webpack_5_100_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_pnpm_postcss_loader_6_2_1_postcss_8_5_6_webpack_5_100_1_node_modules_postcss_loader_dist_cjs_js_clonedRuleSet_32_use_2_node_modules_pnpm_less_loader_11_0_0_less_4_1_2_webpack_5_100_2_node_modules_less_loader_dist_cjs_js_clonedRuleSet_32_use_3_node_modules_pnpm_vue_loader_15_11_1_css_loader_6_11_0_vue_template_compiler_2_6_14_webpack_5_100_1_node_modules_vue_loader_lib_index_js_vue_loader_options_RequestList_vue_vue_type_style_index_1_id_1d02c492_lang_less__WEBPACK_IMPORTED_MODULE_0__);
9778
+ /* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};
9779
+ /* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _node_modules_pnpm_vue_style_loader_4_1_3_node_modules_vue_style_loader_index_js_clonedRuleSet_32_use_0_node_modules_pnpm_css_loader_6_11_0_webpack_5_100_2_node_modules_css_loader_dist_cjs_js_clonedRuleSet_32_use_1_node_modules_pnpm_vue_loader_15_11_1_css_loader_6_11_0_vue_template_compiler_2_6_14_webpack_5_100_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_pnpm_postcss_loader_6_2_1_postcss_8_5_6_webpack_5_100_1_node_modules_postcss_loader_dist_cjs_js_clonedRuleSet_32_use_2_node_modules_pnpm_less_loader_11_0_0_less_4_1_2_webpack_5_100_2_node_modules_less_loader_dist_cjs_js_clonedRuleSet_32_use_3_node_modules_pnpm_vue_loader_15_11_1_css_loader_6_11_0_vue_template_compiler_2_6_14_webpack_5_100_1_node_modules_vue_loader_lib_index_js_vue_loader_options_RequestList_vue_vue_type_style_index_1_id_1d02c492_lang_less__WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== "default") __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = function(key) { return _node_modules_pnpm_vue_style_loader_4_1_3_node_modules_vue_style_loader_index_js_clonedRuleSet_32_use_0_node_modules_pnpm_css_loader_6_11_0_webpack_5_100_2_node_modules_css_loader_dist_cjs_js_clonedRuleSet_32_use_1_node_modules_pnpm_vue_loader_15_11_1_css_loader_6_11_0_vue_template_compiler_2_6_14_webpack_5_100_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_pnpm_postcss_loader_6_2_1_postcss_8_5_6_webpack_5_100_1_node_modules_postcss_loader_dist_cjs_js_clonedRuleSet_32_use_2_node_modules_pnpm_less_loader_11_0_0_less_4_1_2_webpack_5_100_2_node_modules_less_loader_dist_cjs_js_clonedRuleSet_32_use_3_node_modules_pnpm_vue_loader_15_11_1_css_loader_6_11_0_vue_template_compiler_2_6_14_webpack_5_100_1_node_modules_vue_loader_lib_index_js_vue_loader_options_RequestList_vue_vue_type_style_index_1_id_1d02c492_lang_less__WEBPACK_IMPORTED_MODULE_0__[key]; }.bind(0, __WEBPACK_IMPORT_KEY__)
9780
+ /* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
9781
+
9782
+
9496
9783
  /***/ }),
9497
9784
 
9498
9785
  /***/ "./src/components/content/RequestList.vue?vue&type=template&id=1d02c492&scoped=true":
@@ -11521,6 +11808,22 @@ const execCommandCopy = (text, done) => {
11521
11808
 
11522
11809
  /***/ }),
11523
11810
 
11811
+ /***/ "./src/utils/constants.js":
11812
+ /*!********************************!*\
11813
+ !*** ./src/utils/constants.js ***!
11814
+ \********************************/
11815
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
11816
+
11817
+ "use strict";
11818
+ __webpack_require__.r(__webpack_exports__);
11819
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
11820
+ /* harmony export */ TOOLTIP_DELAY: function() { return /* binding */ TOOLTIP_DELAY; }
11821
+ /* harmony export */ });
11822
+ /** tooltip 统一延迟时间(ms) */
11823
+ const TOOLTIP_DELAY = 500;
11824
+
11825
+ /***/ }),
11826
+
11524
11827
  /***/ "./src/utils/createSingletonHook.js":
11525
11828
  /*!******************************************!*\
11526
11829
  !*** ./src/utils/createSingletonHook.js ***!
@@ -11577,6 +11880,173 @@ function createSingletonHook(hook) {
11577
11880
 
11578
11881
  /***/ }),
11579
11882
 
11883
+ /***/ "./src/utils/monaco-fast-paste.js":
11884
+ /*!****************************************!*\
11885
+ !*** ./src/utils/monaco-fast-paste.js ***!
11886
+ \****************************************/
11887
+ /***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
11888
+
11889
+ "use strict";
11890
+ __webpack_require__.r(__webpack_exports__);
11891
+ /* harmony export */ __webpack_require__.d(__webpack_exports__, {
11892
+ /* harmony export */ installFastPaste: function() { return /* binding */ installFastPaste; }
11893
+ /* harmony export */ });
11894
+ /* harmony import */ var monaco_editor__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! monaco-editor */ "include-loader!./node_modules/.pnpm/monaco-editor@0.55.1/node_modules/monaco-editor/esm/vs/editor/editor.main.js");
11895
+ /**
11896
+ * Monaco 大文本粘贴优化模块
11897
+ *
11898
+ * 解决 Monaco standalone 版本粘贴大文本时的性能问题。
11899
+ * 原因:Monaco 的 executeEdits 对大文本做 piece tree 增量操作 + 同步 tokenization,
11900
+ * 导致 3.5MB 文本粘贴耗时 20s+。
11901
+ * 方案:拦截粘贴事件,用 model.setValue() 直接重建 buffer(毫秒级),
11902
+ * 并提供自定义 undo/redo 栈弥补 setValue 丢失原生 undo 的问题。
11903
+ */
11904
+
11905
+
11906
+ // 超过此行数时启用快速粘贴
11907
+ const FAST_PASTE_LINE_THRESHOLD = 10000;
11908
+
11909
+ /**
11910
+ * 为 Monaco 编辑器实例安装快速粘贴优化
11911
+ * @param {object} editor - Monaco editor 实例
11912
+ * @param {object} options
11913
+ * @param {Function} options.onContentChange - 内容变更后的回调,参数为 model.getValue()
11914
+ * @param {Function} [options.isReadOnly] - 返回当前是否只读
11915
+ * @returns {{ dispose: Function }} 调用 dispose() 移除所有监听
11916
+ */
11917
+ function installFastPaste(editor, {
11918
+ onContentChange,
11919
+ isReadOnly
11920
+ }) {
11921
+ const undoStack = [];
11922
+ let redoStack = [];
11923
+ let isPasting = false;
11924
+
11925
+ /**
11926
+ * 执行 setValue 并通知外部
11927
+ */
11928
+ function setValueAndNotify(model, newText) {
11929
+ isPasting = true;
11930
+ model.setValue(newText);
11931
+ isPasting = false;
11932
+ // 切 plaintext 阻止 setValue 后的同步 tokenization,延迟恢复
11933
+ monaco_editor__WEBPACK_IMPORTED_MODULE_0__.editor.setModelLanguage(model, 'plaintext');
11934
+ setTimeout(() => {
11935
+ monaco_editor__WEBPACK_IMPORTED_MODULE_0__.editor.setModelLanguage(model, 'json');
11936
+ }, 50);
11937
+ // 通知外部
11938
+ setTimeout(() => {
11939
+ onContentChange?.(model.getValue());
11940
+ }, 100);
11941
+ }
11942
+
11943
+ // ─── document 级 paste 拦截 ─────────────────────────────────────────
11944
+ const handlePaste = e => {
11945
+ if (!editor || isReadOnly?.()) return;
11946
+ if (!editor.hasTextFocus()) return;
11947
+ const model = editor.getModel();
11948
+ if (!model) return;
11949
+ const clipText = e.clipboardData?.getData('text/plain');
11950
+ const t0 = performance.now();
11951
+ if (!clipText || clipText.length < 500) return;
11952
+ const oldLineCount = model.getLineCount();
11953
+ const newLineCount = clipText.split('\n').length;
11954
+ // 旧内容 和 即将粘贴的新内容 行数均超过设定值时触发
11955
+ const shouldUseFastPaste = oldLineCount > FAST_PASTE_LINE_THRESHOLD && newLineCount > FAST_PASTE_LINE_THRESHOLD;
11956
+ if (!shouldUseFastPaste) return;
11957
+ e.preventDefault();
11958
+ e.stopImmediatePropagation();
11959
+ const selection = editor.getSelection();
11960
+
11961
+ // 保存旧内容到 undo 栈
11962
+ const t1 = performance.now();
11963
+ const oldText = model.getValue();
11964
+ undoStack.push(oldText);
11965
+ redoStack = [];
11966
+
11967
+ // 拼接新文本
11968
+ const startOffset = model.getOffsetAt(selection.getStartPosition());
11969
+ const endOffset = model.getOffsetAt(selection.getEndPosition());
11970
+ const newText = oldText.substring(0, startOffset) + clipText + oldText.substring(endOffset);
11971
+ const t2 = performance.now();
11972
+
11973
+ // setValue
11974
+ isPasting = true;
11975
+ model.setValue(newText);
11976
+ const t3 = performance.now();
11977
+
11978
+ // 设置光标
11979
+ const cursorOffset = startOffset + clipText.length;
11980
+ const cursorPos = model.getPositionAt(cursorOffset);
11981
+ editor.setPosition(cursorPos);
11982
+ editor.revealPosition(cursorPos);
11983
+ isPasting = false;
11984
+
11985
+ // 切 plaintext 阻止同步 tokenization
11986
+ monaco_editor__WEBPACK_IMPORTED_MODULE_0__.editor.setModelLanguage(model, 'plaintext');
11987
+ const t4 = performance.now();
11988
+ console.log(`[FastPaste] ✅ 完成! chars=${clipText.length}, oldLines=${oldLineCount}, newLines=${newLineCount}, ` + `拼接=${(t2 - t1).toFixed(1)}ms, setValue=${(t3 - t2).toFixed(1)}ms, ` + `总耗时=${(t4 - t0).toFixed(1)}ms`);
11989
+
11990
+ // 延迟恢复 JSON(只 tokenize 可视区)
11991
+ setTimeout(() => {
11992
+ monaco_editor__WEBPACK_IMPORTED_MODULE_0__.editor.setModelLanguage(model, 'json');
11993
+ }, 50);
11994
+
11995
+ // 延迟通知外部
11996
+ setTimeout(() => {
11997
+ onContentChange?.(model.getValue());
11998
+ }, 300);
11999
+ };
12000
+ document.addEventListener('paste', handlePaste, true);
12001
+
12002
+ // ─── 自定义 undo/redo(先走 Monaco 内部,空了再走自定义栈)──────────
12003
+ const undoDisposable = editor.addCommand(monaco_editor__WEBPACK_IMPORTED_MODULE_0__.KeyMod.CtrlCmd | monaco_editor__WEBPACK_IMPORTED_MODULE_0__.KeyCode.KeyZ, () => {
12004
+ const model = editor.getModel();
12005
+ if (!model) return;
12006
+
12007
+ // 先尝试 Monaco 内部 undo
12008
+ const before = model.getValue();
12009
+ editor.trigger('keyboard', 'undo', null);
12010
+ const after = model.getValue();
12011
+ if (before !== after) return;
12012
+
12013
+ // Monaco undo stack 已空,从自定义栈恢复
12014
+ if (undoStack.length > 0) {
12015
+ redoStack.push(before);
12016
+ setValueAndNotify(model, undoStack.pop());
12017
+ }
12018
+ });
12019
+ const redoDisposable = editor.addCommand(monaco_editor__WEBPACK_IMPORTED_MODULE_0__.KeyMod.CtrlCmd | monaco_editor__WEBPACK_IMPORTED_MODULE_0__.KeyMod.Shift | monaco_editor__WEBPACK_IMPORTED_MODULE_0__.KeyCode.KeyZ, () => {
12020
+ const model = editor.getModel();
12021
+ if (!model) return;
12022
+
12023
+ // 先尝试 Monaco 内部 redo
12024
+ const before = model.getValue();
12025
+ editor.trigger('keyboard', 'redo', null);
12026
+ const after = model.getValue();
12027
+ if (before !== after) return;
12028
+
12029
+ // Monaco redo stack 已空,从自定义栈恢复
12030
+ if (redoStack.length > 0) {
12031
+ undoStack.push(before);
12032
+ setValueAndNotify(model, redoStack.pop());
12033
+ }
12034
+ });
12035
+
12036
+ // ─── 返回 isPasting 状态的 getter + dispose ─────────────────────────
12037
+ return {
12038
+ /** 当前是否在执行快速粘贴(外部 onDidChangeModelContent 应跳过) */
12039
+ get isPasting() {
12040
+ return isPasting;
12041
+ },
12042
+ dispose() {
12043
+ document.removeEventListener('paste', handlePaste, true);
12044
+ }
12045
+ };
12046
+ }
12047
+
12048
+ /***/ }),
12049
+
11580
12050
  /***/ "./src/utils/monaco-previews.js":
11581
12051
  /*!**************************************!*\
11582
12052
  !*** ./src/utils/monaco-previews.js ***!
@@ -11899,24 +12369,6 @@ function registerMonacoPreviews() {
11899
12369
  });
11900
12370
  }
11901
12371
 
11902
- // ── 大数字千分位 ──────────────────────────────────────────────────────
11903
- const bigNumRegex = /:\s*(-?\d+(?:\.\d+)?)\b/g;
11904
- while ((match = bigNumRegex.exec(line)) !== null) {
11905
- const num = Number(match[1]);
11906
- if (!isFinite(num) || Math.abs(num) < 10000) continue;
11907
- if ((0,_preview__WEBPACK_IMPORTED_MODULE_4__.isTimestamp)(num)) continue;
11908
- const column = match.index + match[0].length + 1;
11909
- hints.push({
11910
- position: {
11911
- lineNumber,
11912
- column
11913
- },
11914
- label: num.toLocaleString('en-US'),
11915
- kind: monaco_editor__WEBPACK_IMPORTED_MODULE_3__.languages.InlayHintKind.Type,
11916
- paddingLeft: true
11917
- });
11918
- }
11919
-
11920
12372
  // ── 数组元素索引 ──────────────────────────────────────────────────────
11921
12373
  const arrayIdx = arrayIndexMap.get(lineNumber);
11922
12374
  if (arrayIdx !== undefined) {