@cnc_cbz/usefultools-plugin-official 1.0.9 → 1.1.0
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/dist/text-diff.mjs +231 -131
- package/package.json +1 -1
package/dist/text-diff.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defineComponent, ref, computed, openBlock, createElementBlock, createCommentVNode, createElementVNode, createTextVNode, toDisplayString,
|
|
1
|
+
import { defineComponent, ref, computed, openBlock, createElementBlock, createCommentVNode, createElementVNode, normalizeClass, createTextVNode, toDisplayString, Fragment, withDirectives, vModelText, renderList } from "vue";
|
|
2
2
|
class Diff {
|
|
3
3
|
diff(oldStr, newStr, options = {}) {
|
|
4
4
|
let callback;
|
|
@@ -247,37 +247,43 @@ function tokenize(value, options) {
|
|
|
247
247
|
}
|
|
248
248
|
const _hoisted_1 = { class: "flex flex-col h-full gap-3" };
|
|
249
249
|
const _hoisted_2 = { class: "flex flex-wrap items-center gap-3" };
|
|
250
|
-
const _hoisted_3 = { class: "
|
|
251
|
-
const _hoisted_4 = {
|
|
250
|
+
const _hoisted_3 = { class: "flex border-2 border-white/20 rounded overflow-hidden" };
|
|
251
|
+
const _hoisted_4 = { class: "ml-auto flex items-center gap-3" };
|
|
252
|
+
const _hoisted_5 = {
|
|
252
253
|
key: 0,
|
|
253
254
|
class: "flex items-center gap-3 text-sm font-bold"
|
|
254
255
|
};
|
|
255
|
-
const
|
|
256
|
-
const
|
|
257
|
-
const
|
|
256
|
+
const _hoisted_6 = { class: "text-neon-green" };
|
|
257
|
+
const _hoisted_7 = { class: "text-coral-red" };
|
|
258
|
+
const _hoisted_8 = {
|
|
258
259
|
key: 1,
|
|
259
260
|
class: "flex border-2 border-white/20 rounded overflow-hidden"
|
|
260
261
|
};
|
|
261
|
-
const
|
|
262
|
+
const _hoisted_9 = { class: "flex-1 grid grid-cols-2 gap-3 min-h-0" };
|
|
263
|
+
const _hoisted_10 = { class: "flex flex-col min-h-0" };
|
|
264
|
+
const _hoisted_11 = { class: "flex items-center gap-2 mb-1.5" };
|
|
265
|
+
const _hoisted_12 = { class: "text-sm font-bold text-gray-400 tracking-wider" };
|
|
266
|
+
const _hoisted_13 = ["placeholder"];
|
|
267
|
+
const _hoisted_14 = { class: "flex flex-col min-h-0" };
|
|
268
|
+
const _hoisted_15 = { class: "flex items-center gap-2 mb-1.5" };
|
|
269
|
+
const _hoisted_16 = { class: "text-sm font-bold text-gray-400 tracking-wider" };
|
|
270
|
+
const _hoisted_17 = ["placeholder"];
|
|
271
|
+
const _hoisted_18 = {
|
|
262
272
|
key: 0,
|
|
263
|
-
class: "
|
|
273
|
+
class: "px-4 py-3 bg-deep-charcoal border-4 border-black rounded-xl shadow-hard text-sm text-gray-400 leading-6"
|
|
264
274
|
};
|
|
265
|
-
const
|
|
266
|
-
const _hoisted_10 = { class: "flex items-center gap-2 mb-1.5" };
|
|
267
|
-
const _hoisted_11 = { class: "flex flex-col min-h-0" };
|
|
268
|
-
const _hoisted_12 = { class: "flex items-center gap-2 mb-1.5" };
|
|
269
|
-
const _hoisted_13 = {
|
|
275
|
+
const _hoisted_19 = {
|
|
270
276
|
key: 1,
|
|
271
277
|
class: "flex-1 flex flex-col min-h-0"
|
|
272
278
|
};
|
|
273
|
-
const
|
|
274
|
-
const
|
|
275
|
-
const
|
|
279
|
+
const _hoisted_20 = { class: "flex-1 bg-deep-charcoal border-4 border-black rounded-xl overflow-auto shadow-hard" };
|
|
280
|
+
const _hoisted_21 = { class: "w-full font-mono text-sm border-collapse" };
|
|
281
|
+
const _hoisted_22 = {
|
|
276
282
|
key: 2,
|
|
277
283
|
class: "flex-1 grid grid-cols-2 gap-3 min-h-0"
|
|
278
284
|
};
|
|
279
|
-
const
|
|
280
|
-
const
|
|
285
|
+
const _hoisted_23 = { class: "w-full font-mono text-sm border-collapse" };
|
|
286
|
+
const _hoisted_24 = { class: "w-full font-mono text-sm border-collapse" };
|
|
281
287
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
282
288
|
__name: "index",
|
|
283
289
|
setup(__props) {
|
|
@@ -285,6 +291,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
285
291
|
const newText = ref("");
|
|
286
292
|
const hasCompared = ref(false);
|
|
287
293
|
const viewMode = ref("unified");
|
|
294
|
+
const compareMode = ref("text");
|
|
288
295
|
const unifiedLines = ref([]);
|
|
289
296
|
const leftLines = ref([]);
|
|
290
297
|
const rightLines = ref([]);
|
|
@@ -296,6 +303,43 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
296
303
|
if (lines[lines.length - 1] === "") lines.pop();
|
|
297
304
|
return lines;
|
|
298
305
|
}
|
|
306
|
+
function tryDecode(value) {
|
|
307
|
+
try {
|
|
308
|
+
return decodeURIComponent(value);
|
|
309
|
+
} catch {
|
|
310
|
+
return value;
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
function stringifyUrlForDiff(raw) {
|
|
314
|
+
const input = raw.trim();
|
|
315
|
+
if (!input) return "";
|
|
316
|
+
try {
|
|
317
|
+
const url = new URL(input);
|
|
318
|
+
const lines = [
|
|
319
|
+
`protocol: ${url.protocol.replace(/:$/, "")}`,
|
|
320
|
+
`host: ${url.host}`,
|
|
321
|
+
`pathname: ${url.pathname || "/"}`
|
|
322
|
+
];
|
|
323
|
+
if (url.hash) {
|
|
324
|
+
lines.push(`hash: ${tryDecode(url.hash.slice(1))}`);
|
|
325
|
+
}
|
|
326
|
+
const entries = Array.from(url.searchParams.entries()).sort(([keyA], [keyB]) => keyA.localeCompare(keyB));
|
|
327
|
+
if (entries.length === 0) {
|
|
328
|
+
lines.push("query: <empty>");
|
|
329
|
+
} else {
|
|
330
|
+
lines.push("query:");
|
|
331
|
+
for (const [key, value] of entries) {
|
|
332
|
+
lines.push(` ${key} = ${tryDecode(value)}`);
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
return lines.join("\n");
|
|
336
|
+
} catch {
|
|
337
|
+
return input;
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
function getComparableText(raw) {
|
|
341
|
+
return compareMode.value === "url" ? stringifyUrlForDiff(raw) : raw;
|
|
342
|
+
}
|
|
299
343
|
function alignChunk(oldArr, newArr) {
|
|
300
344
|
const m = oldArr.length, n = newArr.length;
|
|
301
345
|
const dp = Array.from({ length: m + 1 }, () => new Array(n + 1).fill(0));
|
|
@@ -325,7 +369,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
325
369
|
}
|
|
326
370
|
function handleCompare() {
|
|
327
371
|
var _a;
|
|
328
|
-
const changes = diffLines(oldText.value, newText.value);
|
|
372
|
+
const changes = diffLines(getComparableText(oldText.value), getComparableText(newText.value));
|
|
329
373
|
const unified = [];
|
|
330
374
|
const left = [];
|
|
331
375
|
const right = [];
|
|
@@ -419,7 +463,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
419
463
|
});
|
|
420
464
|
}
|
|
421
465
|
function loadSample() {
|
|
422
|
-
|
|
466
|
+
if (compareMode.value === "url") {
|
|
467
|
+
oldText.value = "http://localhost:8102/usersys/FormSetPage?Name=WholeInventoryPage&FormName=Observed&RequestViewName=TalentReviewListForManagement&AppConfigID=2&FormApplicationID=428&FormID=4226&MenuName=UserWholeInventory&AskForm_Where=ReviewStage%3D4&checkStart=true";
|
|
468
|
+
newText.value = "http://localhost:8102/usersys/FormSetPage?Name=WholeInventoryPageForPosition&RequestViewName=TalentReviewListForPosition&FormName=Observed&MenuStep=undefined&AskForm_Where=undefined&MeetingEntryID=undefined&AppConfigID=2&FormApplicationID=428&FormID=4226&MenuName=UserWholeInventoryForPosition";
|
|
469
|
+
} else {
|
|
470
|
+
oldText.value = `html,
|
|
423
471
|
body {
|
|
424
472
|
width: 100%;
|
|
425
473
|
height: 100%;
|
|
@@ -443,7 +491,7 @@ body {
|
|
|
443
491
|
background-color: #000000;
|
|
444
492
|
opacity: 1;
|
|
445
493
|
}`;
|
|
446
|
-
|
|
494
|
+
newText.value = `html,
|
|
447
495
|
body {
|
|
448
496
|
width: 100%;
|
|
449
497
|
height: 100%;
|
|
@@ -467,6 +515,7 @@ body {
|
|
|
467
515
|
background-color: #031607;
|
|
468
516
|
opacity: 1;
|
|
469
517
|
}`;
|
|
518
|
+
}
|
|
470
519
|
handleCompare();
|
|
471
520
|
}
|
|
472
521
|
const stats = computed(() => {
|
|
@@ -494,11 +543,65 @@ body {
|
|
|
494
543
|
return openBlock(), createElementBlock("div", _hoisted_1, [
|
|
495
544
|
createCommentVNode(" Toolbar "),
|
|
496
545
|
createElementVNode("div", _hoisted_2, [
|
|
546
|
+
createElementVNode("div", _hoisted_3, [
|
|
547
|
+
createElementVNode(
|
|
548
|
+
"button",
|
|
549
|
+
{
|
|
550
|
+
class: normalizeClass(["h-9 px-3 text-sm font-bold flex items-center gap-1.5 transition-all", compareMode.value === "text" ? "bg-primary text-black" : "bg-deep-charcoal text-gray-400 hover:text-white"]),
|
|
551
|
+
onClick: _cache[0] || (_cache[0] = ($event) => {
|
|
552
|
+
compareMode.value = "text";
|
|
553
|
+
handleEdit();
|
|
554
|
+
})
|
|
555
|
+
},
|
|
556
|
+
[..._cache[10] || (_cache[10] = [
|
|
557
|
+
createElementVNode(
|
|
558
|
+
"span",
|
|
559
|
+
{ class: "material-icons text-lg" },
|
|
560
|
+
"article",
|
|
561
|
+
-1
|
|
562
|
+
/* CACHED */
|
|
563
|
+
),
|
|
564
|
+
createTextVNode(
|
|
565
|
+
"文本对比 ",
|
|
566
|
+
-1
|
|
567
|
+
/* CACHED */
|
|
568
|
+
)
|
|
569
|
+
])],
|
|
570
|
+
2
|
|
571
|
+
/* CLASS */
|
|
572
|
+
),
|
|
573
|
+
createElementVNode(
|
|
574
|
+
"button",
|
|
575
|
+
{
|
|
576
|
+
class: normalizeClass(["h-9 px-3 text-sm font-bold flex items-center gap-1.5 transition-all border-l border-white/20", compareMode.value === "url" ? "bg-primary text-black" : "bg-deep-charcoal text-gray-400 hover:text-white"]),
|
|
577
|
+
onClick: _cache[1] || (_cache[1] = ($event) => {
|
|
578
|
+
compareMode.value = "url";
|
|
579
|
+
handleEdit();
|
|
580
|
+
})
|
|
581
|
+
},
|
|
582
|
+
[..._cache[11] || (_cache[11] = [
|
|
583
|
+
createElementVNode(
|
|
584
|
+
"span",
|
|
585
|
+
{ class: "material-icons text-lg" },
|
|
586
|
+
"link",
|
|
587
|
+
-1
|
|
588
|
+
/* CACHED */
|
|
589
|
+
),
|
|
590
|
+
createTextVNode(
|
|
591
|
+
"URL 对比 ",
|
|
592
|
+
-1
|
|
593
|
+
/* CACHED */
|
|
594
|
+
)
|
|
595
|
+
])],
|
|
596
|
+
2
|
|
597
|
+
/* CLASS */
|
|
598
|
+
)
|
|
599
|
+
]),
|
|
497
600
|
!hasCompared.value ? (openBlock(), createElementBlock("button", {
|
|
498
601
|
key: 0,
|
|
499
602
|
class: "h-9 px-4 bg-primary text-black font-bold border-2 border-black rounded shadow-hard-sm hover:shadow-none hover:translate-x-0.5 hover:translate-y-0.5 transition-all flex items-center gap-1.5 text-sm",
|
|
500
603
|
onClick: handleCompare
|
|
501
|
-
}, [..._cache[
|
|
604
|
+
}, [..._cache[12] || (_cache[12] = [
|
|
502
605
|
createElementVNode(
|
|
503
606
|
"span",
|
|
504
607
|
{ class: "material-icons text-lg" },
|
|
@@ -516,7 +619,7 @@ body {
|
|
|
516
619
|
key: 1,
|
|
517
620
|
class: "h-9 px-4 bg-primary text-black font-bold border-2 border-black rounded shadow-hard-sm hover:shadow-none hover:translate-x-0.5 hover:translate-y-0.5 transition-all flex items-center gap-1.5 text-sm",
|
|
518
621
|
onClick: handleEdit
|
|
519
|
-
}, [..._cache[
|
|
622
|
+
}, [..._cache[13] || (_cache[13] = [
|
|
520
623
|
createElementVNode(
|
|
521
624
|
"span",
|
|
522
625
|
{ class: "material-icons text-lg" },
|
|
@@ -533,7 +636,7 @@ body {
|
|
|
533
636
|
createElementVNode("button", {
|
|
534
637
|
class: "h-9 px-4 bg-white text-black font-bold border-2 border-black rounded shadow-hard-sm hover:shadow-none hover:translate-x-0.5 hover:translate-y-0.5 transition-all flex items-center gap-1.5 text-sm",
|
|
535
638
|
onClick: handleSwap
|
|
536
|
-
}, [..._cache[
|
|
639
|
+
}, [..._cache[14] || (_cache[14] = [
|
|
537
640
|
createElementVNode(
|
|
538
641
|
"span",
|
|
539
642
|
{ class: "material-icons text-lg" },
|
|
@@ -550,7 +653,7 @@ body {
|
|
|
550
653
|
createElementVNode("button", {
|
|
551
654
|
class: "h-9 px-4 bg-coral-red text-white font-bold border-2 border-black rounded shadow-hard-sm hover:shadow-none hover:translate-x-0.5 hover:translate-y-0.5 transition-all flex items-center gap-1.5 text-sm",
|
|
552
655
|
onClick: handleClear
|
|
553
|
-
}, [..._cache[
|
|
656
|
+
}, [..._cache[15] || (_cache[15] = [
|
|
554
657
|
createElementVNode(
|
|
555
658
|
"span",
|
|
556
659
|
{ class: "material-icons text-lg" },
|
|
@@ -564,32 +667,32 @@ body {
|
|
|
564
667
|
/* CACHED */
|
|
565
668
|
)
|
|
566
669
|
])]),
|
|
567
|
-
createElementVNode("div",
|
|
568
|
-
hasCompared.value ? (openBlock(), createElementBlock("div",
|
|
670
|
+
createElementVNode("div", _hoisted_4, [
|
|
671
|
+
hasCompared.value ? (openBlock(), createElementBlock("div", _hoisted_5, [
|
|
569
672
|
createElementVNode(
|
|
570
673
|
"span",
|
|
571
|
-
|
|
674
|
+
_hoisted_6,
|
|
572
675
|
"+" + toDisplayString(stats.value.added),
|
|
573
676
|
1
|
|
574
677
|
/* TEXT */
|
|
575
678
|
),
|
|
576
679
|
createElementVNode(
|
|
577
680
|
"span",
|
|
578
|
-
|
|
681
|
+
_hoisted_7,
|
|
579
682
|
"-" + toDisplayString(stats.value.removed),
|
|
580
683
|
1
|
|
581
684
|
/* TEXT */
|
|
582
685
|
)
|
|
583
686
|
])) : createCommentVNode("v-if", true),
|
|
584
687
|
createCommentVNode(" 视图切换 "),
|
|
585
|
-
hasCompared.value ? (openBlock(), createElementBlock("div",
|
|
688
|
+
hasCompared.value ? (openBlock(), createElementBlock("div", _hoisted_8, [
|
|
586
689
|
createElementVNode(
|
|
587
690
|
"button",
|
|
588
691
|
{
|
|
589
692
|
class: normalizeClass(["h-7 px-2.5 text-xs font-bold flex items-center gap-1 transition-all", viewMode.value === "unified" ? "bg-primary text-black" : "bg-deep-charcoal text-gray-400 hover:text-white"]),
|
|
590
|
-
onClick: _cache[
|
|
693
|
+
onClick: _cache[2] || (_cache[2] = ($event) => viewMode.value = "unified")
|
|
591
694
|
},
|
|
592
|
-
[..._cache[
|
|
695
|
+
[..._cache[16] || (_cache[16] = [
|
|
593
696
|
createElementVNode(
|
|
594
697
|
"span",
|
|
595
698
|
{ class: "material-icons text-sm" },
|
|
@@ -610,9 +713,9 @@ body {
|
|
|
610
713
|
"button",
|
|
611
714
|
{
|
|
612
715
|
class: normalizeClass(["h-7 px-2.5 text-xs font-bold flex items-center gap-1 transition-all border-l border-white/20", viewMode.value === "split" ? "bg-primary text-black" : "bg-deep-charcoal text-gray-400 hover:text-white"]),
|
|
613
|
-
onClick: _cache[
|
|
716
|
+
onClick: _cache[3] || (_cache[3] = ($event) => viewMode.value = "split")
|
|
614
717
|
},
|
|
615
|
-
[..._cache[
|
|
718
|
+
[..._cache[17] || (_cache[17] = [
|
|
616
719
|
createElementVNode(
|
|
617
720
|
"span",
|
|
618
721
|
{ class: "material-icons text-sm" },
|
|
@@ -633,7 +736,7 @@ body {
|
|
|
633
736
|
createElementVNode("button", {
|
|
634
737
|
class: "h-9 px-3 bg-deep-charcoal text-gray-300 font-bold border-2 border-white/20 rounded hover:border-primary hover:text-primary transition-all text-sm flex items-center gap-1.5",
|
|
635
738
|
onClick: loadSample
|
|
636
|
-
}, [..._cache[
|
|
739
|
+
}, [..._cache[18] || (_cache[18] = [
|
|
637
740
|
createElementVNode(
|
|
638
741
|
"span",
|
|
639
742
|
{ class: "material-icons text-lg" },
|
|
@@ -650,96 +753,93 @@ body {
|
|
|
650
753
|
])
|
|
651
754
|
]),
|
|
652
755
|
createCommentVNode(" 编辑模式:并排输入 "),
|
|
653
|
-
!hasCompared.value ? (openBlock(), createElementBlock(
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
"
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
)
|
|
721
|
-
|
|
756
|
+
!hasCompared.value ? (openBlock(), createElementBlock(
|
|
757
|
+
Fragment,
|
|
758
|
+
{ key: 0 },
|
|
759
|
+
[
|
|
760
|
+
createElementVNode("div", _hoisted_9, [
|
|
761
|
+
createElementVNode("div", _hoisted_10, [
|
|
762
|
+
createElementVNode("div", _hoisted_11, [
|
|
763
|
+
createElementVNode(
|
|
764
|
+
"span",
|
|
765
|
+
_hoisted_12,
|
|
766
|
+
"A " + toDisplayString(compareMode.value === "url" ? "原始 URL" : "原始文本"),
|
|
767
|
+
1
|
|
768
|
+
/* TEXT */
|
|
769
|
+
),
|
|
770
|
+
createElementVNode("button", {
|
|
771
|
+
class: "ml-auto text-xs text-gray-500 hover:text-primary transition-colors flex items-center gap-1",
|
|
772
|
+
onClick: _cache[4] || (_cache[4] = ($event) => handlePaste("old"))
|
|
773
|
+
}, [..._cache[19] || (_cache[19] = [
|
|
774
|
+
createElementVNode(
|
|
775
|
+
"span",
|
|
776
|
+
{ class: "material-icons text-sm" },
|
|
777
|
+
"content_paste",
|
|
778
|
+
-1
|
|
779
|
+
/* CACHED */
|
|
780
|
+
),
|
|
781
|
+
createTextVNode(
|
|
782
|
+
"粘贴 ",
|
|
783
|
+
-1
|
|
784
|
+
/* CACHED */
|
|
785
|
+
)
|
|
786
|
+
])])
|
|
787
|
+
]),
|
|
788
|
+
withDirectives(createElementVNode("textarea", {
|
|
789
|
+
"onUpdate:modelValue": _cache[5] || (_cache[5] = ($event) => oldText.value = $event),
|
|
790
|
+
placeholder: compareMode.value === "url" ? "在此输入原始 URL..." : "在此输入原始文本...",
|
|
791
|
+
spellcheck: "false",
|
|
792
|
+
class: "flex-1 w-full bg-deep-charcoal text-gray-100 border-4 border-black rounded-xl p-4 font-mono text-sm leading-relaxed resize-none shadow-hard focus:border-primary focus:shadow-none focus:translate-x-1 focus:translate-y-1 transition-all outline-none placeholder-gray-600"
|
|
793
|
+
}, null, 8, _hoisted_13), [
|
|
794
|
+
[vModelText, oldText.value]
|
|
795
|
+
])
|
|
796
|
+
]),
|
|
797
|
+
createElementVNode("div", _hoisted_14, [
|
|
798
|
+
createElementVNode("div", _hoisted_15, [
|
|
799
|
+
createElementVNode(
|
|
800
|
+
"span",
|
|
801
|
+
_hoisted_16,
|
|
802
|
+
"B " + toDisplayString(compareMode.value === "url" ? "新 URL" : "新文本"),
|
|
803
|
+
1
|
|
804
|
+
/* TEXT */
|
|
805
|
+
),
|
|
806
|
+
createElementVNode("button", {
|
|
807
|
+
class: "ml-auto text-xs text-gray-500 hover:text-primary transition-colors flex items-center gap-1",
|
|
808
|
+
onClick: _cache[6] || (_cache[6] = ($event) => handlePaste("new"))
|
|
809
|
+
}, [..._cache[20] || (_cache[20] = [
|
|
810
|
+
createElementVNode(
|
|
811
|
+
"span",
|
|
812
|
+
{ class: "material-icons text-sm" },
|
|
813
|
+
"content_paste",
|
|
814
|
+
-1
|
|
815
|
+
/* CACHED */
|
|
816
|
+
),
|
|
817
|
+
createTextVNode(
|
|
818
|
+
"粘贴 ",
|
|
819
|
+
-1
|
|
820
|
+
/* CACHED */
|
|
821
|
+
)
|
|
822
|
+
])])
|
|
823
|
+
]),
|
|
824
|
+
withDirectives(createElementVNode("textarea", {
|
|
825
|
+
"onUpdate:modelValue": _cache[7] || (_cache[7] = ($event) => newText.value = $event),
|
|
826
|
+
placeholder: compareMode.value === "url" ? "在此输入新 URL..." : "在此输入新文本...",
|
|
827
|
+
spellcheck: "false",
|
|
828
|
+
class: "flex-1 w-full bg-deep-charcoal text-gray-100 border-4 border-black rounded-xl p-4 font-mono text-sm leading-relaxed resize-none shadow-hard focus:border-primary focus:shadow-none focus:translate-x-1 focus:translate-y-1 transition-all outline-none placeholder-gray-600"
|
|
829
|
+
}, null, 8, _hoisted_17), [
|
|
830
|
+
[vModelText, newText.value]
|
|
831
|
+
])
|
|
832
|
+
])
|
|
722
833
|
]),
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
spellcheck: "false",
|
|
729
|
-
class: "flex-1 w-full bg-deep-charcoal text-gray-100 border-4 border-black rounded-xl p-4 font-mono text-sm leading-relaxed resize-none shadow-hard focus:border-primary focus:shadow-none focus:translate-x-1 focus:translate-y-1 transition-all outline-none placeholder-gray-600"
|
|
730
|
-
},
|
|
731
|
-
null,
|
|
732
|
-
512
|
|
733
|
-
/* NEED_PATCH */
|
|
734
|
-
), [
|
|
735
|
-
[vModelText, newText.value]
|
|
736
|
-
])
|
|
737
|
-
])
|
|
738
|
-
])) : createCommentVNode("v-if", true),
|
|
834
|
+
compareMode.value === "url" ? (openBlock(), createElementBlock("div", _hoisted_18, " URL 对比会先解析协议、主机、路径和查询参数,再按参数名排序后进行逐行差异对比,便于快速定位参数增删和取值变化。 ")) : createCommentVNode("v-if", true)
|
|
835
|
+
],
|
|
836
|
+
64
|
|
837
|
+
/* STABLE_FRAGMENT */
|
|
838
|
+
)) : createCommentVNode("v-if", true),
|
|
739
839
|
createCommentVNode(" 对比结果:统一视图 "),
|
|
740
|
-
hasCompared.value && viewMode.value === "unified" ? (openBlock(), createElementBlock("div",
|
|
741
|
-
createElementVNode("div",
|
|
742
|
-
createElementVNode("table",
|
|
840
|
+
hasCompared.value && viewMode.value === "unified" ? (openBlock(), createElementBlock("div", _hoisted_19, [
|
|
841
|
+
createElementVNode("div", _hoisted_20, [
|
|
842
|
+
createElementVNode("table", _hoisted_21, [
|
|
743
843
|
(openBlock(true), createElementBlock(
|
|
744
844
|
Fragment,
|
|
745
845
|
null,
|
|
@@ -802,17 +902,17 @@ body {
|
|
|
802
902
|
])
|
|
803
903
|
])) : createCommentVNode("v-if", true),
|
|
804
904
|
createCommentVNode(" 对比结果:并排视图 "),
|
|
805
|
-
hasCompared.value && viewMode.value === "split" ? (openBlock(), createElementBlock("div",
|
|
905
|
+
hasCompared.value && viewMode.value === "split" ? (openBlock(), createElementBlock("div", _hoisted_22, [
|
|
806
906
|
createElementVNode(
|
|
807
907
|
"div",
|
|
808
908
|
{
|
|
809
909
|
ref_key: "leftPanel",
|
|
810
910
|
ref: leftPanel,
|
|
811
|
-
onScroll: _cache[
|
|
911
|
+
onScroll: _cache[8] || (_cache[8] = ($event) => syncScroll("left")),
|
|
812
912
|
class: "bg-deep-charcoal border-4 border-black rounded-xl overflow-auto shadow-hard"
|
|
813
913
|
},
|
|
814
914
|
[
|
|
815
|
-
createElementVNode("table",
|
|
915
|
+
createElementVNode("table", _hoisted_23, [
|
|
816
916
|
(openBlock(true), createElementBlock(
|
|
817
917
|
Fragment,
|
|
818
918
|
null,
|
|
@@ -863,11 +963,11 @@ body {
|
|
|
863
963
|
{
|
|
864
964
|
ref_key: "rightPanel",
|
|
865
965
|
ref: rightPanel,
|
|
866
|
-
onScroll: _cache[
|
|
966
|
+
onScroll: _cache[9] || (_cache[9] = ($event) => syncScroll("right")),
|
|
867
967
|
class: "bg-deep-charcoal border-4 border-black rounded-xl overflow-auto shadow-hard"
|
|
868
968
|
},
|
|
869
969
|
[
|
|
870
|
-
createElementVNode("table",
|
|
970
|
+
createElementVNode("table", _hoisted_24, [
|
|
871
971
|
(openBlock(true), createElementBlock(
|
|
872
972
|
Fragment,
|
|
873
973
|
null,
|
|
@@ -925,7 +1025,7 @@ const _export_sfc = (sfc, props) => {
|
|
|
925
1025
|
}
|
|
926
1026
|
return target;
|
|
927
1027
|
};
|
|
928
|
-
const index = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
1028
|
+
const index = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-0a7b0920"]]);
|
|
929
1029
|
export {
|
|
930
1030
|
index as default
|
|
931
1031
|
};
|
|
@@ -2979,10 +3079,10 @@ export {
|
|
|
2979
3079
|
}
|
|
2980
3080
|
}
|
|
2981
3081
|
|
|
2982
|
-
table tr td[data-v-
|
|
3082
|
+
table tr td[data-v-0a7b0920] {
|
|
2983
3083
|
line-height: 1.75;
|
|
2984
3084
|
}
|
|
2985
|
-
.diff-num[data-v-
|
|
3085
|
+
.diff-num[data-v-0a7b0920] {
|
|
2986
3086
|
min-width: 3ch;
|
|
2987
3087
|
}
|
|
2988
3088
|
`;})();
|