vue-stream-markdown 0.1.3 → 0.1.5
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/README.md +3 -1
- package/dist/arrow-left-C5s0Sn8o.js +25 -0
- package/dist/{blockquote-DdEg2gww.js → blockquote-bkADuiGm.js} +1 -9
- package/dist/{button-CJyeXWq2.js → button-BQhuT7wh.js} +2 -3
- package/dist/button-JYC8d-B-.js +5 -0
- package/dist/{code-CJ4tMt6L.js → code-DF8PTNol.js} +10 -18
- package/dist/code-block-BhMDz2ZL.js +9 -0
- package/dist/{code-block-CQ4lgva1.js → code-block-Dm2wl0cb.js} +87 -77
- package/dist/{composables-Cj6_jbwr.js → composables-yny5gJo3.js} +570 -234
- package/dist/{delete-BdWzKJCy.js → delete-D17YBeI-.js} +1 -9
- package/dist/dropdown-Y5_Z4a_u.js +5 -0
- package/dist/{emphasis-CTuGt1Ok.js → emphasis-B-2R_0Q5.js} +1 -9
- package/dist/{en-US-Bfc50l3I.js → en-US-Kw2LYAMk.js} +7 -1
- package/dist/{error-component-ClGLfmwy.js → error-component-Bb0gIZsx.js} +4 -3
- package/dist/error-component-DEIWb6kB.js +4 -0
- package/dist/flip-horizontal-BFWjqDbQ.js +25 -0
- package/dist/{heading-2vpQQtTH.js → heading-DyJIwNrN.js} +1 -9
- package/dist/{html-DL0PcUXX.js → html-DXNqMvt_.js} +0 -8
- package/dist/{image-xeiC5YFM.js → image-BPhFn1xp.js} +40 -76
- package/dist/image-DXBD47sF.js +8 -0
- package/dist/image-DvOGBhi-.js +327 -0
- package/dist/index.css +44 -64
- package/dist/index.d.ts +155 -81
- package/dist/index.js +55 -63
- package/dist/{inline-code-CBoqhfz7.js → inline-code-C44UJ2TH.js} +0 -8
- package/dist/{inline-math-C2NUSasr.js → inline-math-wO1rMt9T.js} +2 -10
- package/dist/{link-BceXudNH.js → link-sGo7CEll.js} +3 -11
- package/dist/{list-BCiFKGaz.js → list-C0I1ysSI.js} +1 -9
- package/dist/{list-item-p-OLUR_9.js → list-item-BoC2wKBL.js} +1 -9
- package/dist/{math-DXOLG3Xg.js → math-BlqtUf2r.js} +2 -10
- package/dist/{mermaid-CU4hpB6S.js → mermaid-Ka1jnXrR.js} +6 -14
- package/dist/modal-Duhc-vVa.js +4 -0
- package/dist/modal-Rc_RoeYA.js +94 -0
- package/dist/node-list-C1je2nLd.js +3 -0
- package/dist/{node-list-CGr_EVtn.js → node-list-YhpHXdM_.js} +0 -16
- package/dist/{paragraph-DYjqr_Sa.js → paragraph-BN-4-Dn7.js} +1 -9
- package/dist/previewers-D0VVcdjL.js +10 -0
- package/dist/rotate-ccw-square-C2KVFUF3.js +24 -0
- package/dist/{segmented-CF6exjdD.js → segmented-CaC54iz_.js} +1 -1
- package/dist/segmented-XdoLnuuq.js +6 -0
- package/dist/{shiki-BlfngIRi.js → shiki-sJNZTn1K.js} +4 -12
- package/dist/spin-wM2KE8mO.js +3 -0
- package/dist/{strong-CvOjLZiq.js → strong-NdAS3VjP.js} +1 -9
- package/dist/{table-C5VHgkTQ.js → table-CWX5B2i1.js} +14 -18
- package/dist/table-R9gmCXm_.js +3 -0
- package/dist/{text-DuONUqRA.js → text-DpleLvNh.js} +0 -8
- package/dist/{thematic-break-CcNPEI9Y.js → thematic-break-D5GvzU5S.js} +0 -8
- package/dist/tooltip-BJDs-A8d.js +4 -0
- package/dist/tooltip-Bgbzbk4Q.js +68 -0
- package/dist/{vanilla-D5DzB31q.js → vanilla-BTOVqKl7.js} +1 -1
- package/dist/vanilla-DA5bwIkr.js +4 -0
- package/dist/{yaml-DJHrmzSe.js → yaml-y0snrPRx.js} +1 -9
- package/dist/{zh-CN-CL1XGe0H.js → zh-CN-Dfow4Yn2.js} +7 -1
- package/dist/zoom-container-B1qbA-7z.js +153 -0
- package/dist/zoom-container-KztuE4ri.js +6 -0
- package/package.json +9 -10
- package/dist/button-2wMU7qkH.js +0 -5
- package/dist/code-block-BucFZooo.js +0 -9
- package/dist/dropdown-dsCfq0Hl.js +0 -5
- package/dist/error-component-B0mmLhh6.js +0 -4
- package/dist/modal-CuQR21UD.js +0 -71
- package/dist/modal-DcpxxDDX.js +0 -3
- package/dist/node-list-lgY1wbfQ.js +0 -3
- package/dist/previewers-qHMi6xZ3.js +0 -10
- package/dist/segmented-BeHqXuFx.js +0 -6
- package/dist/spin-Bz4zGBEo.js +0 -3
- package/dist/table-CZLbUHiJ.js +0 -3
- package/dist/tooltip-BzVZqo7w.js +0 -4
- package/dist/tooltip-gxsqaBNg.js +0 -71
- package/dist/vanilla-CKj7EQLx.js +0 -4
- package/dist/zoom-container-CwEDlKRx.js +0 -6
- package/dist/zoom-container-D_fBClW2.js +0 -111
- /package/dist/{angular-Chs-UKBr.js → angular-Mip1mspI.js} +0 -0
- /package/dist/{angular-component-Cc_FANXU.js → angular-component-Cq5UbX7R.js} +0 -0
- /package/dist/{apache-COYnc6xR.js → apache-BSq7fX32.js} +0 -0
- /package/dist/{asciidoc-BabXBDAL.js → asciidoc-DS-PMOLv.js} +0 -0
- /package/dist/{assembly-CDqKhexW.js → assembly-BPatlOM7.js} +0 -0
- /package/dist/{astro-C9kftzFG.js → astro-CSD_ZjXp.js} +0 -0
- /package/dist/{bash-Ce4pNIkV.js → bash-RITislE1.js} +0 -0
- /package/dist/{batch-CHQBRjFL.js → batch-DWPShYhN.js} +0 -0
- /package/dist/{bicep-8jxWtuBF.js → bicep-C6BEHfP6.js} +0 -0
- /package/dist/{c-FBUef746.js → c-DNo3tsNy.js} +0 -0
- /package/dist/{check-C4xOk8um.js → check-BfpxIITS.js} +0 -0
- /package/dist/{chevron-down-cnOJ4h1g.js → chevron-down-LeNeemjn.js} +0 -0
- /package/dist/{circle-alert-CLX-h5rZ.js → circle-alert-BjDuIzgc.js} +0 -0
- /package/dist/{clojure-BulUroSy.js → clojure-C1DEYHW0.js} +0 -0
- /package/dist/{cmake-CW3vz1Mo.js → cmake-B69mdXcH.js} +0 -0
- /package/dist/{cobol-CIn3oFju.js → cobol-qmL-zIWi.js} +0 -0
- /package/dist/{code-D8LSp8rK.js → code-D9CiymEK.js} +0 -0
- /package/dist/{codeowners-CJggXF_b.js → codeowners-Crklt5nF.js} +0 -0
- /package/dist/{coffeescript-CBrVvzGY.js → coffeescript-k3huSp23.js} +0 -0
- /package/dist/{copy-Cabve0xf.js → copy-C4580J93.js} +0 -0
- /package/dist/{cpp-BTKeuyd-.js → cpp-Cn3MB35e.js} +0 -0
- /package/dist/{crystal-DyIYvZbm.js → crystal-D5aGETSx.js} +0 -0
- /package/dist/{csharp-NqZ1vyF9.js → csharp-CgkTkbPx.js} +0 -0
- /package/dist/{css-BpR5Lajb.js → css-DRH4n_IV.js} +0 -0
- /package/dist/{csv-eCMFnKKK.js → csv-D5nNTIzO.js} +0 -0
- /package/dist/{cue-TY97dGOQ.js → cue-B5mC88-N.js} +0 -0
- /package/dist/{d-NftUsdTd.js → d-BdQRMgma.js} +0 -0
- /package/dist/{dart-DJpwZZbk.js → dart-BGnfn0NN.js} +0 -0
- /package/dist/{database-aZwE71Px.js → database-Ca1VGX7u.js} +0 -0
- /package/dist/{diff-CYRzypaU.js → diff-DVaTsnqu.js} +0 -0
- /package/dist/{docker-CxHBuukH.js → docker-E47qYlmL.js} +0 -0
- /package/dist/{download-Bnn7rtYw.js → download-DytrK56a.js} +0 -0
- /package/dist/{elixir-BKSxVc1h.js → elixir-C-jqqu6q.js} +0 -0
- /package/dist/{elm-DScuAf3X.js → elm-CmeHvaWl.js} +0 -0
- /package/dist/{env-CDAKsodl.js → env-Ck1BHoxR.js} +0 -0
- /package/dist/{erlang-D2M1ZL3m.js → erlang-CIP8kpGJ.js} +0 -0
- /package/dist/{eye-CdeX8PhP.js → eye-TaEwQS2Z.js} +0 -0
- /package/dist/{fortran-CORyQ0wt.js → fortran-DJVP2s7V.js} +0 -0
- /package/dist/{fsharp-BJz_Jgpl.js → fsharp-Bp6mUcG0.js} +0 -0
- /package/dist/{git-DgrlTr1E.js → git-BDcqJ1Gp.js} +0 -0
- /package/dist/{gleam-t_xad9Kw.js → gleam-JLiZVlev.js} +0 -0
- /package/dist/{go-Cvlh1xtL.js → go-ClcCiS7e.js} +0 -0
- /package/dist/{graphql-ApIm0mDD.js → graphql-D2RDo-DF.js} +0 -0
- /package/dist/{groovy-CaLnK8PV.js → groovy-DLZBw8xE.js} +0 -0
- /package/dist/{haml-MwijEO_6.js → haml-Da74jRwZ.js} +0 -0
- /package/dist/{handlebars-CKdUPI9h.js → handlebars-CNgS57Sz.js} +0 -0
- /package/dist/{haskell-NPOXEnck.js → haskell-DCvfD6VB.js} +0 -0
- /package/dist/{haxe-DyKBMsDE.js → haxe-CHVK1TId.js} +0 -0
- /package/dist/{html-CMgES1dE.js → html-Du4235Z-.js} +0 -0
- /package/dist/{http-B9FFNmUr.js → http-B8VAFeQ5.js} +0 -0
- /package/dist/{image-CMZAakWu.js → image-D8MZj4W5.js} +0 -0
- /package/dist/{java-iU-L9wJz.js → java-CoSdnK1N.js} +0 -0
- /package/dist/{javascript-DtnWdTFC.js → javascript-BCDeVll0.js} +0 -0
- /package/dist/{jinja-CoWszo_D.js → jinja-DYbiqZy0.js} +0 -0
- /package/dist/{json-C80qKCnh.js → json-CdzCyWJA.js} +0 -0
- /package/dist/{julia-DG2BCBLx.js → julia-pswJGtpP.js} +0 -0
- /package/dist/{kdl-7twRfIlJ.js → kdl-M8rfQ85l.js} +0 -0
- /package/dist/{kotlin-BjrOgP7R.js → kotlin-CfCV33oB.js} +0 -0
- /package/dist/{latex-DIQfUvG8.js → latex-DK8DFhTm.js} +0 -0
- /package/dist/{less-BJ1yEAWt.js → less-BFnNZiIs.js} +0 -0
- /package/dist/{link-DeV4CQOB.js → link-C7eU_yi-.js} +0 -0
- /package/dist/{liquid-BqKFZ1wQ.js → liquid-C8h46DoX.js} +0 -0
- /package/dist/{lisp-oekhB2ti.js → lisp-C3FbGuD1.js} +0 -0
- /package/dist/{log-D1XEqR9q.js → log-D-O3FXf2.js} +0 -0
- /package/dist/{lua-C5Q97-1D.js → lua-BC_aR1_i.js} +0 -0
- /package/dist/{luau-BT8KwqZ2.js → luau-DFUOrNN7.js} +0 -0
- /package/dist/{makefile-B4a0ciG4.js → makefile-Ck67veVV.js} +0 -0
- /package/dist/{markdown-DvNyKsiJ.js → markdown-BX13X3kd.js} +0 -0
- /package/dist/{marko-BzsIf6bg.js → marko-CQE8YTCc.js} +0 -0
- /package/dist/{matlab-cMBkmDhQ.js → matlab-Bd9O2Ml3.js} +0 -0
- /package/dist/{maximize-4PIqBONS.js → maximize-CDZ9rnYF.js} +0 -0
- /package/dist/{mermaid-8JIH2gkQ.js → mermaid-Dv-Pr0W-.js} +0 -0
- /package/dist/{minimize-BJ8htyDF.js → minimize-B9ER7p2X.js} +0 -0
- /package/dist/{nextflow-DNmqU1xg.js → nextflow-D3lDq1Yi.js} +0 -0
- /package/dist/{nginx-DDfYF_rj.js → nginx-CgsqCL4l.js} +0 -0
- /package/dist/{nim-D9xEmy4k.js → nim-BJdSu3c6.js} +0 -0
- /package/dist/{nix-BV1Deshw.js → nix-B7K_D6CN.js} +0 -0
- /package/dist/{ocaml-BkFn4LL3.js → ocaml-gYS1Y45s.js} +0 -0
- /package/dist/{perl-BytUHDE7.js → perl-DXFhFWhI.js} +0 -0
- /package/dist/{php-BImJJtNM.js → php-We35bF4E.js} +0 -0
- /package/dist/{postcss-CrZ9_0sT.js → postcss-BWovY_YV.js} +0 -0
- /package/dist/{powershell-DYSGu7TM.js → powershell-C6teiBsq.js} +0 -0
- /package/dist/{prisma-BhRvcOFY.js → prisma-UyJEg0_X.js} +0 -0
- /package/dist/{prolog-DuaCKek_.js → prolog-YZsPgdnw.js} +0 -0
- /package/dist/{properties-BbIJwuP-.js → properties-DaPbL0e2.js} +0 -0
- /package/dist/{proto-CE0aVW11.js → proto-1LIwu2O1.js} +0 -0
- /package/dist/{pug-B1-IC-Tc.js → pug-CzkUK-Ec.js} +0 -0
- /package/dist/{puppet-8nYquiMG.js → puppet-CNhB1MHb.js} +0 -0
- /package/dist/{python-DhRyfBrD.js → python-B_hgEobv.js} +0 -0
- /package/dist/{r-Cjje17IA.js → r-CVeKYmPK.js} +0 -0
- /package/dist/{racket-Dx0gMnpg.js → racket-D5UfvXuw.js} +0 -0
- /package/dist/{razor-DPht_bdD.js → razor-RIKaANTN.js} +0 -0
- /package/dist/{ruby-B8RxtCzI.js → ruby-C8wV0pMO.js} +0 -0
- /package/dist/{rust-Cjtli6yf.js → rust-75Gei1mP.js} +0 -0
- /package/dist/{sass-Dv3DMzjs.js → sass-Cq68xmQ4.js} +0 -0
- /package/dist/{scala-B7bZGKXq.js → scala-C_E5rjSc.js} +0 -0
- /package/dist/{scheme-B2PsEdVN.js → scheme-Bm-q-nLL.js} +0 -0
- /package/dist/{shader-BZzu3zGr.js → shader-DPaRkMCs.js} +0 -0
- /package/dist/{shiki-token-renderer-D164wC7Y.js → shiki-token-renderer-CLmUjKa3.js} +0 -0
- /package/dist/{solidity-CLieFYpL.js → solidity-DvHG_0CD.js} +0 -0
- /package/dist/{spin-Ds5W7qC_.js → spin--f5jNjBn.js} +0 -0
- /package/dist/{stata-C0yUiO47.js → stata-DoVloJLm.js} +0 -0
- /package/dist/{svelte-rtF4yNGL.js → svelte-tlbA11de.js} +0 -0
- /package/dist/{swift-CzvYoIM0.js → swift-BZn5eRnK.js} +0 -0
- /package/dist/{table-4ec9FVB_.js → table-CaUMjs4M.js} +0 -0
- /package/dist/{terraform-CD_BZGb-.js → terraform-c5-k7yB1.js} +0 -0
- /package/dist/{text-D1-vbZ7l.js → text-DPCGWvDK.js} +0 -0
- /package/dist/{toml-C6jUF0Xd.js → toml-DdLGBe1A.js} +0 -0
- /package/dist/{twig-C4dfP84J.js → twig-D_jzZxh6.js} +0 -0
- /package/dist/{typescript-Bk-pp-cK.js → typescript-B95hq2ns.js} +0 -0
- /package/dist/{typst-DPCpaVSH.js → typst-CSAEQ4yK.js} +0 -0
- /package/dist/{v-nRGMJ2Ki.js → v-BAhebuOB.js} +0 -0
- /package/dist/{vala-B78bKcY0.js → vala-RAu83-lp.js} +0 -0
- /package/dist/{verilog-CRpkl76S.js → verilog-BgmTn52U.js} +0 -0
- /package/dist/{vim-DpKnut7b.js → vim-c8oTCLkH.js} +0 -0
- /package/dist/{vue-D5eadhjo.js → vue-TGT6HTBA.js} +0 -0
- /package/dist/{xml-Dvx5F-hl.js → xml-C1HDr874.js} +0 -0
- /package/dist/{yaml-n1S8nAOh.js → yaml-BO7FjFQZ.js} +0 -0
- /package/dist/{zig-R-iFzxfW.js → zig-qANBp1SU.js} +0 -0
- /package/dist/{zoomIn-CEukuh3x.js → zoomIn-iVMAUxIz.js} +0 -0
- /package/dist/{zoomOut-qlzQyQli.js → zoomOut-Cxq1_dIQ.js} +0 -0
|
@@ -1,10 +1,6 @@
|
|
|
1
|
-
import { computed, defineAsyncComponent, inject, onBeforeUnmount, provide, ref, toValue, unref, watch, watchEffect } from "vue";
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import "tippy.js/dist/tippy.css";
|
|
5
|
-
import "tippy.js/themes/light.css";
|
|
6
|
-
import "tippy.js/dist/border.css";
|
|
7
|
-
import "tippy.js/dist/svg-arrow.css";
|
|
1
|
+
import { computed, defineAsyncComponent, inject, nextTick, onBeforeUnmount, provide, ref, toValue, unref, watch, watchEffect } from "vue";
|
|
2
|
+
import { autoUpdate, flip, offset, shift, useFloating } from "@floating-ui/vue";
|
|
3
|
+
import { useEventListener, useStyleTag } from "@vueuse/core";
|
|
8
4
|
|
|
9
5
|
//#region src/composables/use-code-options.ts
|
|
10
6
|
function useCodeOptions(options) {
|
|
@@ -36,7 +32,9 @@ function useCodeOptions(options) {
|
|
|
36
32
|
const CONTEXT_KEY = Symbol("stream-markdown-context");
|
|
37
33
|
function useContext() {
|
|
38
34
|
const context = injectContext();
|
|
35
|
+
const icons = computed(() => unref(context.icons) ?? {});
|
|
39
36
|
const isDark = computed(() => unref(context.isDark) ?? false);
|
|
37
|
+
const parsedNodes = computed(() => unref(context.parsedNodes) ?? []);
|
|
40
38
|
function provideContext(ctx) {
|
|
41
39
|
provide(CONTEXT_KEY, {
|
|
42
40
|
...injectContext(),
|
|
@@ -50,7 +48,9 @@ function useContext() {
|
|
|
50
48
|
context,
|
|
51
49
|
provideContext,
|
|
52
50
|
injectContext,
|
|
51
|
+
icons,
|
|
53
52
|
isDark,
|
|
53
|
+
parsedNodes,
|
|
54
54
|
get getContainer() {
|
|
55
55
|
return context.getContainer || (() => void 0);
|
|
56
56
|
},
|
|
@@ -92,6 +92,122 @@ function useControls(options) {
|
|
|
92
92
|
};
|
|
93
93
|
}
|
|
94
94
|
|
|
95
|
+
//#endregion
|
|
96
|
+
//#region src/composables/use-floating-element.ts
|
|
97
|
+
function useFloatingElement(options) {
|
|
98
|
+
const trigger = computed(() => unref(options.trigger) ?? "hover");
|
|
99
|
+
const placement = computed(() => unref(options.placement) ?? "top");
|
|
100
|
+
const delay = computed(() => unref(options.delay) ?? [100, 100]);
|
|
101
|
+
const referenceEl = ref();
|
|
102
|
+
const floatingEl = ref();
|
|
103
|
+
let showTimer = null;
|
|
104
|
+
let hideTimer = null;
|
|
105
|
+
const open = ref(false);
|
|
106
|
+
const parentEl = computed(() => {
|
|
107
|
+
var _referenceEl$value;
|
|
108
|
+
return ((_referenceEl$value = referenceEl.value) === null || _referenceEl$value === void 0 ? void 0 : _referenceEl$value.parentElement) || null;
|
|
109
|
+
});
|
|
110
|
+
const appendTo = computed(() => {
|
|
111
|
+
var _options$getContainer;
|
|
112
|
+
return parentEl.value || ((_options$getContainer = options.getContainer) === null || _options$getContainer === void 0 ? void 0 : _options$getContainer.call(options)) || "body";
|
|
113
|
+
});
|
|
114
|
+
const { x, y, strategy, update } = useFloating(referenceEl, floatingEl, {
|
|
115
|
+
placement,
|
|
116
|
+
middleware: [
|
|
117
|
+
offset(6),
|
|
118
|
+
flip(),
|
|
119
|
+
shift({ padding: 5 })
|
|
120
|
+
],
|
|
121
|
+
whileElementsMounted: autoUpdate
|
|
122
|
+
});
|
|
123
|
+
const floatingStyle = computed(() => ({
|
|
124
|
+
position: strategy.value,
|
|
125
|
+
top: `${y.value ?? 0}px`,
|
|
126
|
+
left: `${x.value ?? 0}px`
|
|
127
|
+
}));
|
|
128
|
+
function show() {
|
|
129
|
+
clearTimers();
|
|
130
|
+
const { show: showDelay } = getDelay();
|
|
131
|
+
showTimer = window.setTimeout(() => {
|
|
132
|
+
open.value = true;
|
|
133
|
+
update();
|
|
134
|
+
}, showDelay);
|
|
135
|
+
}
|
|
136
|
+
function hide() {
|
|
137
|
+
clearTimers();
|
|
138
|
+
const { hide: hideDelay } = getDelay();
|
|
139
|
+
hideTimer = window.setTimeout(() => {
|
|
140
|
+
open.value = false;
|
|
141
|
+
}, hideDelay);
|
|
142
|
+
}
|
|
143
|
+
function toggle() {
|
|
144
|
+
open.value = !open.value;
|
|
145
|
+
update();
|
|
146
|
+
}
|
|
147
|
+
function onMouseEnter() {
|
|
148
|
+
if (trigger.value === "hover") show();
|
|
149
|
+
}
|
|
150
|
+
function onMouseLeave() {
|
|
151
|
+
if (trigger.value === "hover") hide();
|
|
152
|
+
}
|
|
153
|
+
function onClick() {
|
|
154
|
+
if (trigger.value === "click") toggle();
|
|
155
|
+
}
|
|
156
|
+
function getDelay() {
|
|
157
|
+
if (Array.isArray(delay.value)) return {
|
|
158
|
+
show: delay.value[0] ?? 0,
|
|
159
|
+
hide: delay.value[1] ?? 0
|
|
160
|
+
};
|
|
161
|
+
return {
|
|
162
|
+
show: delay.value ?? 0,
|
|
163
|
+
hide: delay.value ?? 0
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
function handleClickOutside(event) {
|
|
167
|
+
var _referenceEl$value2, _floatingEl$value;
|
|
168
|
+
if (trigger.value !== "click" || !open.value) return;
|
|
169
|
+
const target = event.target;
|
|
170
|
+
if (!(((_referenceEl$value2 = referenceEl.value) === null || _referenceEl$value2 === void 0 ? void 0 : _referenceEl$value2.contains(target)) || ((_floatingEl$value = floatingEl.value) === null || _floatingEl$value === void 0 ? void 0 : _floatingEl$value.contains(target)))) open.value = false;
|
|
171
|
+
}
|
|
172
|
+
function onFloatingEnter() {
|
|
173
|
+
if (hideTimer) {
|
|
174
|
+
clearTimeout(hideTimer);
|
|
175
|
+
hideTimer = null;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
function onFloatingLeave() {
|
|
179
|
+
const { hide: hideDelay } = getDelay();
|
|
180
|
+
if (trigger.value === "hover") hideTimer = window.setTimeout(() => {
|
|
181
|
+
hide();
|
|
182
|
+
}, hideDelay);
|
|
183
|
+
}
|
|
184
|
+
function clearTimers() {
|
|
185
|
+
if (showTimer) {
|
|
186
|
+
clearTimeout(showTimer);
|
|
187
|
+
showTimer = null;
|
|
188
|
+
}
|
|
189
|
+
if (hideTimer) {
|
|
190
|
+
clearTimeout(hideTimer);
|
|
191
|
+
hideTimer = null;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
useEventListener(document, "click", handleClickOutside);
|
|
195
|
+
return {
|
|
196
|
+
referenceEl,
|
|
197
|
+
floatingEl,
|
|
198
|
+
open,
|
|
199
|
+
appendTo,
|
|
200
|
+
floatingStyle,
|
|
201
|
+
show,
|
|
202
|
+
hide,
|
|
203
|
+
onMouseEnter,
|
|
204
|
+
onMouseLeave,
|
|
205
|
+
onClick,
|
|
206
|
+
onFloatingEnter,
|
|
207
|
+
onFloatingLeave
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
|
|
95
211
|
//#endregion
|
|
96
212
|
//#region src/constants/code.ts
|
|
97
213
|
const DEFAULT_LIGHT_THEME = "github-light";
|
|
@@ -406,182 +522,182 @@ const LANGUAGE_EXTENSIONS = {
|
|
|
406
522
|
"文言": "wy"
|
|
407
523
|
};
|
|
408
524
|
const LANGUAGE_ICONS = {
|
|
409
|
-
"adoc": defineAsyncComponent(() => import("./asciidoc-
|
|
410
|
-
"angular-html": defineAsyncComponent(() => import("./angular-
|
|
411
|
-
"angular-ts": defineAsyncComponent(() => import("./angular-component-
|
|
412
|
-
"apache": defineAsyncComponent(() => import("./apache-
|
|
413
|
-
"asciidoc": defineAsyncComponent(() => import("./asciidoc-
|
|
414
|
-
"asm": defineAsyncComponent(() => import("./assembly-
|
|
415
|
-
"astro": defineAsyncComponent(() => import("./astro-
|
|
416
|
-
"bash": defineAsyncComponent(() => import("./bash-
|
|
417
|
-
"bat": defineAsyncComponent(() => import("./batch-
|
|
418
|
-
"batch": defineAsyncComponent(() => import("./batch-
|
|
419
|
-
"bicep": defineAsyncComponent(() => import("./bicep-
|
|
420
|
-
"c": defineAsyncComponent(() => import("./c-
|
|
421
|
-
"c#": defineAsyncComponent(() => import("./csharp-
|
|
422
|
-
"c++": defineAsyncComponent(() => import("./cpp-
|
|
423
|
-
"cjs": defineAsyncComponent(() => import("./javascript-
|
|
424
|
-
"clj": defineAsyncComponent(() => import("./clojure-
|
|
425
|
-
"clojure": defineAsyncComponent(() => import("./clojure-
|
|
426
|
-
"cmake": defineAsyncComponent(() => import("./cmake-
|
|
427
|
-
"cmd": defineAsyncComponent(() => import("./batch-
|
|
428
|
-
"cobol": defineAsyncComponent(() => import("./cobol-
|
|
429
|
-
"codeowners": defineAsyncComponent(() => import("./codeowners-
|
|
430
|
-
"coffee": defineAsyncComponent(() => import("./coffeescript-
|
|
431
|
-
"coffeescript": defineAsyncComponent(() => import("./coffeescript-
|
|
432
|
-
"cpp": defineAsyncComponent(() => import("./cpp-
|
|
433
|
-
"crystal": defineAsyncComponent(() => import("./crystal-
|
|
434
|
-
"cs": defineAsyncComponent(() => import("./csharp-
|
|
435
|
-
"csharp": defineAsyncComponent(() => import("./csharp-
|
|
436
|
-
"css": defineAsyncComponent(() => import("./css-
|
|
437
|
-
"csv": defineAsyncComponent(() => import("./csv-
|
|
438
|
-
"cts": defineAsyncComponent(() => import("./typescript-
|
|
439
|
-
"cue": defineAsyncComponent(() => import("./cue-
|
|
440
|
-
"d": defineAsyncComponent(() => import("./d-
|
|
441
|
-
"dart": defineAsyncComponent(() => import("./dart-
|
|
442
|
-
"diff": defineAsyncComponent(() => import("./diff-
|
|
443
|
-
"docker": defineAsyncComponent(() => import("./docker-
|
|
444
|
-
"dockerfile": defineAsyncComponent(() => import("./docker-
|
|
445
|
-
"dotenv": defineAsyncComponent(() => import("./env-
|
|
446
|
-
"elixir": defineAsyncComponent(() => import("./elixir-
|
|
447
|
-
"elm": defineAsyncComponent(() => import("./elm-
|
|
448
|
-
"erb": defineAsyncComponent(() => import("./ruby-
|
|
449
|
-
"erl": defineAsyncComponent(() => import("./erlang-
|
|
450
|
-
"erlang": defineAsyncComponent(() => import("./erlang-
|
|
451
|
-
"f": defineAsyncComponent(() => import("./fortran-
|
|
452
|
-
"f#": defineAsyncComponent(() => import("./fsharp-
|
|
453
|
-
"f03": defineAsyncComponent(() => import("./fortran-
|
|
454
|
-
"f08": defineAsyncComponent(() => import("./fortran-
|
|
455
|
-
"f18": defineAsyncComponent(() => import("./fortran-
|
|
456
|
-
"f77": defineAsyncComponent(() => import("./fortran-
|
|
457
|
-
"f90": defineAsyncComponent(() => import("./fortran-
|
|
458
|
-
"f95": defineAsyncComponent(() => import("./fortran-
|
|
459
|
-
"for": defineAsyncComponent(() => import("./fortran-
|
|
460
|
-
"fortran-fixed-form": defineAsyncComponent(() => import("./fortran-
|
|
461
|
-
"fortran-free-form": defineAsyncComponent(() => import("./fortran-
|
|
462
|
-
"fs": defineAsyncComponent(() => import("./fsharp-
|
|
463
|
-
"fsharp": defineAsyncComponent(() => import("./fsharp-
|
|
464
|
-
"git-commit": defineAsyncComponent(() => import("./git-
|
|
465
|
-
"git-rebase": defineAsyncComponent(() => import("./git-
|
|
466
|
-
"gleam": defineAsyncComponent(() => import("./gleam-
|
|
467
|
-
"go": defineAsyncComponent(() => import("./go-
|
|
468
|
-
"gql": defineAsyncComponent(() => import("./graphql-
|
|
469
|
-
"graphql": defineAsyncComponent(() => import("./graphql-
|
|
470
|
-
"groovy": defineAsyncComponent(() => import("./groovy-
|
|
471
|
-
"haml": defineAsyncComponent(() => import("./haml-
|
|
472
|
-
"handlebars": defineAsyncComponent(() => import("./handlebars-
|
|
473
|
-
"haskell": defineAsyncComponent(() => import("./haskell-
|
|
474
|
-
"haxe": defineAsyncComponent(() => import("./haxe-
|
|
475
|
-
"hbs": defineAsyncComponent(() => import("./handlebars-
|
|
476
|
-
"hs": defineAsyncComponent(() => import("./haskell-
|
|
477
|
-
"html": defineAsyncComponent(() => import("./html-
|
|
478
|
-
"http": defineAsyncComponent(() => import("./http-
|
|
479
|
-
"jade": defineAsyncComponent(() => import("./pug-
|
|
480
|
-
"java": defineAsyncComponent(() => import("./java-
|
|
481
|
-
"javascript": defineAsyncComponent(() => import("./javascript-
|
|
482
|
-
"jinja": defineAsyncComponent(() => import("./jinja-
|
|
483
|
-
"jl": defineAsyncComponent(() => import("./julia-
|
|
484
|
-
"js": defineAsyncComponent(() => import("./javascript-
|
|
485
|
-
"json": defineAsyncComponent(() => import("./json-
|
|
486
|
-
"json5": defineAsyncComponent(() => import("./json-
|
|
487
|
-
"jsonc": defineAsyncComponent(() => import("./json-
|
|
488
|
-
"jsonl": defineAsyncComponent(() => import("./json-
|
|
489
|
-
"jsx": defineAsyncComponent(() => import("./javascript-
|
|
490
|
-
"julia": defineAsyncComponent(() => import("./julia-
|
|
491
|
-
"kdl": defineAsyncComponent(() => import("./kdl-
|
|
492
|
-
"kotlin": defineAsyncComponent(() => import("./kotlin-
|
|
493
|
-
"kt": defineAsyncComponent(() => import("./kotlin-
|
|
494
|
-
"kts": defineAsyncComponent(() => import("./kotlin-
|
|
495
|
-
"latex": defineAsyncComponent(() => import("./latex-
|
|
496
|
-
"less": defineAsyncComponent(() => import("./less-
|
|
497
|
-
"liquid": defineAsyncComponent(() => import("./liquid-
|
|
498
|
-
"lisp": defineAsyncComponent(() => import("./lisp-
|
|
499
|
-
"log": defineAsyncComponent(() => import("./log-
|
|
500
|
-
"lua": defineAsyncComponent(() => import("./lua-
|
|
501
|
-
"luau": defineAsyncComponent(() => import("./luau-
|
|
502
|
-
"make": defineAsyncComponent(() => import("./makefile-
|
|
503
|
-
"makefile": defineAsyncComponent(() => import("./makefile-
|
|
504
|
-
"markdown": defineAsyncComponent(() => import("./markdown-
|
|
505
|
-
"marko": defineAsyncComponent(() => import("./marko-
|
|
506
|
-
"matlab": defineAsyncComponent(() => import("./matlab-
|
|
507
|
-
"md": defineAsyncComponent(() => import("./markdown-
|
|
508
|
-
"mdc": defineAsyncComponent(() => import("./markdown-
|
|
509
|
-
"mdx": defineAsyncComponent(() => import("./markdown-
|
|
510
|
-
"mermaid": defineAsyncComponent(() => import("./mermaid-
|
|
511
|
-
"mjs": defineAsyncComponent(() => import("./javascript-
|
|
512
|
-
"mmd": defineAsyncComponent(() => import("./mermaid-
|
|
513
|
-
"mts": defineAsyncComponent(() => import("./typescript-
|
|
514
|
-
"nextflow": defineAsyncComponent(() => import("./nextflow-
|
|
515
|
-
"nf": defineAsyncComponent(() => import("./nextflow-
|
|
516
|
-
"nginx": defineAsyncComponent(() => import("./nginx-
|
|
517
|
-
"nim": defineAsyncComponent(() => import("./nim-
|
|
518
|
-
"nix": defineAsyncComponent(() => import("./nix-
|
|
519
|
-
"ocaml": defineAsyncComponent(() => import("./ocaml-
|
|
520
|
-
"perl": defineAsyncComponent(() => import("./perl-
|
|
521
|
-
"php": defineAsyncComponent(() => import("./php-
|
|
522
|
-
"postcss": defineAsyncComponent(() => import("./postcss-
|
|
523
|
-
"powershell": defineAsyncComponent(() => import("./powershell-
|
|
524
|
-
"prisma": defineAsyncComponent(() => import("./prisma-
|
|
525
|
-
"prolog": defineAsyncComponent(() => import("./prolog-
|
|
526
|
-
"properties": defineAsyncComponent(() => import("./properties-
|
|
527
|
-
"proto": defineAsyncComponent(() => import("./proto-
|
|
528
|
-
"protobuf": defineAsyncComponent(() => import("./proto-
|
|
529
|
-
"ps": defineAsyncComponent(() => import("./powershell-
|
|
530
|
-
"ps1": defineAsyncComponent(() => import("./powershell-
|
|
531
|
-
"pug": defineAsyncComponent(() => import("./pug-
|
|
532
|
-
"puppet": defineAsyncComponent(() => import("./puppet-
|
|
533
|
-
"py": defineAsyncComponent(() => import("./python-
|
|
534
|
-
"python": defineAsyncComponent(() => import("./python-
|
|
535
|
-
"r": defineAsyncComponent(() => import("./r-
|
|
536
|
-
"racket": defineAsyncComponent(() => import("./racket-
|
|
537
|
-
"razor": defineAsyncComponent(() => import("./razor-
|
|
538
|
-
"rb": defineAsyncComponent(() => import("./ruby-
|
|
539
|
-
"rs": defineAsyncComponent(() => import("./rust-
|
|
540
|
-
"ruby": defineAsyncComponent(() => import("./ruby-
|
|
541
|
-
"rust": defineAsyncComponent(() => import("./rust-
|
|
542
|
-
"sass": defineAsyncComponent(() => import("./sass-
|
|
543
|
-
"scala": defineAsyncComponent(() => import("./scala-
|
|
544
|
-
"scheme": defineAsyncComponent(() => import("./scheme-
|
|
545
|
-
"scss": defineAsyncComponent(() => import("./sass-
|
|
546
|
-
"sh": defineAsyncComponent(() => import("./bash-
|
|
547
|
-
"shader": defineAsyncComponent(() => import("./shader-
|
|
548
|
-
"shell": defineAsyncComponent(() => import("./bash-
|
|
549
|
-
"shellscript": defineAsyncComponent(() => import("./bash-
|
|
550
|
-
"solidity": defineAsyncComponent(() => import("./solidity-
|
|
551
|
-
"sql": defineAsyncComponent(() => import("./database-
|
|
552
|
-
"stata": defineAsyncComponent(() => import("./stata-
|
|
553
|
-
"styl": defineAsyncComponent(() => import("./sass-
|
|
554
|
-
"stylus": defineAsyncComponent(() => import("./sass-
|
|
555
|
-
"svelte": defineAsyncComponent(() => import("./svelte-
|
|
556
|
-
"swift": defineAsyncComponent(() => import("./swift-
|
|
557
|
-
"terraform": defineAsyncComponent(() => import("./terraform-
|
|
558
|
-
"tex": defineAsyncComponent(() => import("./latex-
|
|
559
|
-
"text": defineAsyncComponent(() => import("./text-
|
|
560
|
-
"tf": defineAsyncComponent(() => import("./terraform-
|
|
561
|
-
"tfvars": defineAsyncComponent(() => import("./terraform-
|
|
562
|
-
"toml": defineAsyncComponent(() => import("./toml-
|
|
563
|
-
"ts": defineAsyncComponent(() => import("./typescript-
|
|
564
|
-
"tsv": defineAsyncComponent(() => import("./csv-
|
|
565
|
-
"tsx": defineAsyncComponent(() => import("./typescript-
|
|
566
|
-
"twig": defineAsyncComponent(() => import("./twig-
|
|
567
|
-
"typ": defineAsyncComponent(() => import("./typst-
|
|
568
|
-
"typescript": defineAsyncComponent(() => import("./typescript-
|
|
569
|
-
"typst": defineAsyncComponent(() => import("./typst-
|
|
570
|
-
"v": defineAsyncComponent(() => import("./v-
|
|
571
|
-
"vala": defineAsyncComponent(() => import("./vala-
|
|
572
|
-
"verilog": defineAsyncComponent(() => import("./verilog-
|
|
573
|
-
"vim": defineAsyncComponent(() => import("./vim-
|
|
574
|
-
"viml": defineAsyncComponent(() => import("./vim-
|
|
575
|
-
"vimscript": defineAsyncComponent(() => import("./vim-
|
|
576
|
-
"vue-html": defineAsyncComponent(() => import("./vue-
|
|
577
|
-
"vue-vine": defineAsyncComponent(() => import("./vue-
|
|
578
|
-
"vue": defineAsyncComponent(() => import("./vue-
|
|
579
|
-
"xml": defineAsyncComponent(() => import("./xml-
|
|
580
|
-
"xsl": defineAsyncComponent(() => import("./xml-
|
|
581
|
-
"yaml": defineAsyncComponent(() => import("./yaml-
|
|
582
|
-
"yml": defineAsyncComponent(() => import("./yaml-
|
|
583
|
-
"zig": defineAsyncComponent(() => import("./zig-
|
|
584
|
-
"zsh": defineAsyncComponent(() => import("./bash-
|
|
525
|
+
"adoc": defineAsyncComponent(() => import("./asciidoc-DS-PMOLv.js")),
|
|
526
|
+
"angular-html": defineAsyncComponent(() => import("./angular-Mip1mspI.js")),
|
|
527
|
+
"angular-ts": defineAsyncComponent(() => import("./angular-component-Cq5UbX7R.js")),
|
|
528
|
+
"apache": defineAsyncComponent(() => import("./apache-BSq7fX32.js")),
|
|
529
|
+
"asciidoc": defineAsyncComponent(() => import("./asciidoc-DS-PMOLv.js")),
|
|
530
|
+
"asm": defineAsyncComponent(() => import("./assembly-BPatlOM7.js")),
|
|
531
|
+
"astro": defineAsyncComponent(() => import("./astro-CSD_ZjXp.js")),
|
|
532
|
+
"bash": defineAsyncComponent(() => import("./bash-RITislE1.js")),
|
|
533
|
+
"bat": defineAsyncComponent(() => import("./batch-DWPShYhN.js")),
|
|
534
|
+
"batch": defineAsyncComponent(() => import("./batch-DWPShYhN.js")),
|
|
535
|
+
"bicep": defineAsyncComponent(() => import("./bicep-C6BEHfP6.js")),
|
|
536
|
+
"c": defineAsyncComponent(() => import("./c-DNo3tsNy.js")),
|
|
537
|
+
"c#": defineAsyncComponent(() => import("./csharp-CgkTkbPx.js")),
|
|
538
|
+
"c++": defineAsyncComponent(() => import("./cpp-Cn3MB35e.js")),
|
|
539
|
+
"cjs": defineAsyncComponent(() => import("./javascript-BCDeVll0.js")),
|
|
540
|
+
"clj": defineAsyncComponent(() => import("./clojure-C1DEYHW0.js")),
|
|
541
|
+
"clojure": defineAsyncComponent(() => import("./clojure-C1DEYHW0.js")),
|
|
542
|
+
"cmake": defineAsyncComponent(() => import("./cmake-B69mdXcH.js")),
|
|
543
|
+
"cmd": defineAsyncComponent(() => import("./batch-DWPShYhN.js")),
|
|
544
|
+
"cobol": defineAsyncComponent(() => import("./cobol-qmL-zIWi.js")),
|
|
545
|
+
"codeowners": defineAsyncComponent(() => import("./codeowners-Crklt5nF.js")),
|
|
546
|
+
"coffee": defineAsyncComponent(() => import("./coffeescript-k3huSp23.js")),
|
|
547
|
+
"coffeescript": defineAsyncComponent(() => import("./coffeescript-k3huSp23.js")),
|
|
548
|
+
"cpp": defineAsyncComponent(() => import("./cpp-Cn3MB35e.js")),
|
|
549
|
+
"crystal": defineAsyncComponent(() => import("./crystal-D5aGETSx.js")),
|
|
550
|
+
"cs": defineAsyncComponent(() => import("./csharp-CgkTkbPx.js")),
|
|
551
|
+
"csharp": defineAsyncComponent(() => import("./csharp-CgkTkbPx.js")),
|
|
552
|
+
"css": defineAsyncComponent(() => import("./css-DRH4n_IV.js")),
|
|
553
|
+
"csv": defineAsyncComponent(() => import("./csv-D5nNTIzO.js")),
|
|
554
|
+
"cts": defineAsyncComponent(() => import("./typescript-B95hq2ns.js")),
|
|
555
|
+
"cue": defineAsyncComponent(() => import("./cue-B5mC88-N.js")),
|
|
556
|
+
"d": defineAsyncComponent(() => import("./d-BdQRMgma.js")),
|
|
557
|
+
"dart": defineAsyncComponent(() => import("./dart-BGnfn0NN.js")),
|
|
558
|
+
"diff": defineAsyncComponent(() => import("./diff-DVaTsnqu.js")),
|
|
559
|
+
"docker": defineAsyncComponent(() => import("./docker-E47qYlmL.js")),
|
|
560
|
+
"dockerfile": defineAsyncComponent(() => import("./docker-E47qYlmL.js")),
|
|
561
|
+
"dotenv": defineAsyncComponent(() => import("./env-Ck1BHoxR.js")),
|
|
562
|
+
"elixir": defineAsyncComponent(() => import("./elixir-C-jqqu6q.js")),
|
|
563
|
+
"elm": defineAsyncComponent(() => import("./elm-CmeHvaWl.js")),
|
|
564
|
+
"erb": defineAsyncComponent(() => import("./ruby-C8wV0pMO.js")),
|
|
565
|
+
"erl": defineAsyncComponent(() => import("./erlang-CIP8kpGJ.js")),
|
|
566
|
+
"erlang": defineAsyncComponent(() => import("./erlang-CIP8kpGJ.js")),
|
|
567
|
+
"f": defineAsyncComponent(() => import("./fortran-DJVP2s7V.js")),
|
|
568
|
+
"f#": defineAsyncComponent(() => import("./fsharp-Bp6mUcG0.js")),
|
|
569
|
+
"f03": defineAsyncComponent(() => import("./fortran-DJVP2s7V.js")),
|
|
570
|
+
"f08": defineAsyncComponent(() => import("./fortran-DJVP2s7V.js")),
|
|
571
|
+
"f18": defineAsyncComponent(() => import("./fortran-DJVP2s7V.js")),
|
|
572
|
+
"f77": defineAsyncComponent(() => import("./fortran-DJVP2s7V.js")),
|
|
573
|
+
"f90": defineAsyncComponent(() => import("./fortran-DJVP2s7V.js")),
|
|
574
|
+
"f95": defineAsyncComponent(() => import("./fortran-DJVP2s7V.js")),
|
|
575
|
+
"for": defineAsyncComponent(() => import("./fortran-DJVP2s7V.js")),
|
|
576
|
+
"fortran-fixed-form": defineAsyncComponent(() => import("./fortran-DJVP2s7V.js")),
|
|
577
|
+
"fortran-free-form": defineAsyncComponent(() => import("./fortran-DJVP2s7V.js")),
|
|
578
|
+
"fs": defineAsyncComponent(() => import("./fsharp-Bp6mUcG0.js")),
|
|
579
|
+
"fsharp": defineAsyncComponent(() => import("./fsharp-Bp6mUcG0.js")),
|
|
580
|
+
"git-commit": defineAsyncComponent(() => import("./git-BDcqJ1Gp.js")),
|
|
581
|
+
"git-rebase": defineAsyncComponent(() => import("./git-BDcqJ1Gp.js")),
|
|
582
|
+
"gleam": defineAsyncComponent(() => import("./gleam-JLiZVlev.js")),
|
|
583
|
+
"go": defineAsyncComponent(() => import("./go-ClcCiS7e.js")),
|
|
584
|
+
"gql": defineAsyncComponent(() => import("./graphql-D2RDo-DF.js")),
|
|
585
|
+
"graphql": defineAsyncComponent(() => import("./graphql-D2RDo-DF.js")),
|
|
586
|
+
"groovy": defineAsyncComponent(() => import("./groovy-DLZBw8xE.js")),
|
|
587
|
+
"haml": defineAsyncComponent(() => import("./haml-Da74jRwZ.js")),
|
|
588
|
+
"handlebars": defineAsyncComponent(() => import("./handlebars-CNgS57Sz.js")),
|
|
589
|
+
"haskell": defineAsyncComponent(() => import("./haskell-DCvfD6VB.js")),
|
|
590
|
+
"haxe": defineAsyncComponent(() => import("./haxe-CHVK1TId.js")),
|
|
591
|
+
"hbs": defineAsyncComponent(() => import("./handlebars-CNgS57Sz.js")),
|
|
592
|
+
"hs": defineAsyncComponent(() => import("./haskell-DCvfD6VB.js")),
|
|
593
|
+
"html": defineAsyncComponent(() => import("./html-Du4235Z-.js")),
|
|
594
|
+
"http": defineAsyncComponent(() => import("./http-B8VAFeQ5.js")),
|
|
595
|
+
"jade": defineAsyncComponent(() => import("./pug-CzkUK-Ec.js")),
|
|
596
|
+
"java": defineAsyncComponent(() => import("./java-CoSdnK1N.js")),
|
|
597
|
+
"javascript": defineAsyncComponent(() => import("./javascript-BCDeVll0.js")),
|
|
598
|
+
"jinja": defineAsyncComponent(() => import("./jinja-DYbiqZy0.js")),
|
|
599
|
+
"jl": defineAsyncComponent(() => import("./julia-pswJGtpP.js")),
|
|
600
|
+
"js": defineAsyncComponent(() => import("./javascript-BCDeVll0.js")),
|
|
601
|
+
"json": defineAsyncComponent(() => import("./json-CdzCyWJA.js")),
|
|
602
|
+
"json5": defineAsyncComponent(() => import("./json-CdzCyWJA.js")),
|
|
603
|
+
"jsonc": defineAsyncComponent(() => import("./json-CdzCyWJA.js")),
|
|
604
|
+
"jsonl": defineAsyncComponent(() => import("./json-CdzCyWJA.js")),
|
|
605
|
+
"jsx": defineAsyncComponent(() => import("./javascript-BCDeVll0.js")),
|
|
606
|
+
"julia": defineAsyncComponent(() => import("./julia-pswJGtpP.js")),
|
|
607
|
+
"kdl": defineAsyncComponent(() => import("./kdl-M8rfQ85l.js")),
|
|
608
|
+
"kotlin": defineAsyncComponent(() => import("./kotlin-CfCV33oB.js")),
|
|
609
|
+
"kt": defineAsyncComponent(() => import("./kotlin-CfCV33oB.js")),
|
|
610
|
+
"kts": defineAsyncComponent(() => import("./kotlin-CfCV33oB.js")),
|
|
611
|
+
"latex": defineAsyncComponent(() => import("./latex-DK8DFhTm.js")),
|
|
612
|
+
"less": defineAsyncComponent(() => import("./less-BFnNZiIs.js")),
|
|
613
|
+
"liquid": defineAsyncComponent(() => import("./liquid-C8h46DoX.js")),
|
|
614
|
+
"lisp": defineAsyncComponent(() => import("./lisp-C3FbGuD1.js")),
|
|
615
|
+
"log": defineAsyncComponent(() => import("./log-D-O3FXf2.js")),
|
|
616
|
+
"lua": defineAsyncComponent(() => import("./lua-BC_aR1_i.js")),
|
|
617
|
+
"luau": defineAsyncComponent(() => import("./luau-DFUOrNN7.js")),
|
|
618
|
+
"make": defineAsyncComponent(() => import("./makefile-Ck67veVV.js")),
|
|
619
|
+
"makefile": defineAsyncComponent(() => import("./makefile-Ck67veVV.js")),
|
|
620
|
+
"markdown": defineAsyncComponent(() => import("./markdown-BX13X3kd.js")),
|
|
621
|
+
"marko": defineAsyncComponent(() => import("./marko-CQE8YTCc.js")),
|
|
622
|
+
"matlab": defineAsyncComponent(() => import("./matlab-Bd9O2Ml3.js")),
|
|
623
|
+
"md": defineAsyncComponent(() => import("./markdown-BX13X3kd.js")),
|
|
624
|
+
"mdc": defineAsyncComponent(() => import("./markdown-BX13X3kd.js")),
|
|
625
|
+
"mdx": defineAsyncComponent(() => import("./markdown-BX13X3kd.js")),
|
|
626
|
+
"mermaid": defineAsyncComponent(() => import("./mermaid-Dv-Pr0W-.js")),
|
|
627
|
+
"mjs": defineAsyncComponent(() => import("./javascript-BCDeVll0.js")),
|
|
628
|
+
"mmd": defineAsyncComponent(() => import("./mermaid-Dv-Pr0W-.js")),
|
|
629
|
+
"mts": defineAsyncComponent(() => import("./typescript-B95hq2ns.js")),
|
|
630
|
+
"nextflow": defineAsyncComponent(() => import("./nextflow-D3lDq1Yi.js")),
|
|
631
|
+
"nf": defineAsyncComponent(() => import("./nextflow-D3lDq1Yi.js")),
|
|
632
|
+
"nginx": defineAsyncComponent(() => import("./nginx-CgsqCL4l.js")),
|
|
633
|
+
"nim": defineAsyncComponent(() => import("./nim-BJdSu3c6.js")),
|
|
634
|
+
"nix": defineAsyncComponent(() => import("./nix-B7K_D6CN.js")),
|
|
635
|
+
"ocaml": defineAsyncComponent(() => import("./ocaml-gYS1Y45s.js")),
|
|
636
|
+
"perl": defineAsyncComponent(() => import("./perl-DXFhFWhI.js")),
|
|
637
|
+
"php": defineAsyncComponent(() => import("./php-We35bF4E.js")),
|
|
638
|
+
"postcss": defineAsyncComponent(() => import("./postcss-BWovY_YV.js")),
|
|
639
|
+
"powershell": defineAsyncComponent(() => import("./powershell-C6teiBsq.js")),
|
|
640
|
+
"prisma": defineAsyncComponent(() => import("./prisma-UyJEg0_X.js")),
|
|
641
|
+
"prolog": defineAsyncComponent(() => import("./prolog-YZsPgdnw.js")),
|
|
642
|
+
"properties": defineAsyncComponent(() => import("./properties-DaPbL0e2.js")),
|
|
643
|
+
"proto": defineAsyncComponent(() => import("./proto-1LIwu2O1.js")),
|
|
644
|
+
"protobuf": defineAsyncComponent(() => import("./proto-1LIwu2O1.js")),
|
|
645
|
+
"ps": defineAsyncComponent(() => import("./powershell-C6teiBsq.js")),
|
|
646
|
+
"ps1": defineAsyncComponent(() => import("./powershell-C6teiBsq.js")),
|
|
647
|
+
"pug": defineAsyncComponent(() => import("./pug-CzkUK-Ec.js")),
|
|
648
|
+
"puppet": defineAsyncComponent(() => import("./puppet-CNhB1MHb.js")),
|
|
649
|
+
"py": defineAsyncComponent(() => import("./python-B_hgEobv.js")),
|
|
650
|
+
"python": defineAsyncComponent(() => import("./python-B_hgEobv.js")),
|
|
651
|
+
"r": defineAsyncComponent(() => import("./r-CVeKYmPK.js")),
|
|
652
|
+
"racket": defineAsyncComponent(() => import("./racket-D5UfvXuw.js")),
|
|
653
|
+
"razor": defineAsyncComponent(() => import("./razor-RIKaANTN.js")),
|
|
654
|
+
"rb": defineAsyncComponent(() => import("./ruby-C8wV0pMO.js")),
|
|
655
|
+
"rs": defineAsyncComponent(() => import("./rust-75Gei1mP.js")),
|
|
656
|
+
"ruby": defineAsyncComponent(() => import("./ruby-C8wV0pMO.js")),
|
|
657
|
+
"rust": defineAsyncComponent(() => import("./rust-75Gei1mP.js")),
|
|
658
|
+
"sass": defineAsyncComponent(() => import("./sass-Cq68xmQ4.js")),
|
|
659
|
+
"scala": defineAsyncComponent(() => import("./scala-C_E5rjSc.js")),
|
|
660
|
+
"scheme": defineAsyncComponent(() => import("./scheme-Bm-q-nLL.js")),
|
|
661
|
+
"scss": defineAsyncComponent(() => import("./sass-Cq68xmQ4.js")),
|
|
662
|
+
"sh": defineAsyncComponent(() => import("./bash-RITislE1.js")),
|
|
663
|
+
"shader": defineAsyncComponent(() => import("./shader-DPaRkMCs.js")),
|
|
664
|
+
"shell": defineAsyncComponent(() => import("./bash-RITislE1.js")),
|
|
665
|
+
"shellscript": defineAsyncComponent(() => import("./bash-RITislE1.js")),
|
|
666
|
+
"solidity": defineAsyncComponent(() => import("./solidity-DvHG_0CD.js")),
|
|
667
|
+
"sql": defineAsyncComponent(() => import("./database-Ca1VGX7u.js")),
|
|
668
|
+
"stata": defineAsyncComponent(() => import("./stata-DoVloJLm.js")),
|
|
669
|
+
"styl": defineAsyncComponent(() => import("./sass-Cq68xmQ4.js")),
|
|
670
|
+
"stylus": defineAsyncComponent(() => import("./sass-Cq68xmQ4.js")),
|
|
671
|
+
"svelte": defineAsyncComponent(() => import("./svelte-tlbA11de.js")),
|
|
672
|
+
"swift": defineAsyncComponent(() => import("./swift-BZn5eRnK.js")),
|
|
673
|
+
"terraform": defineAsyncComponent(() => import("./terraform-c5-k7yB1.js")),
|
|
674
|
+
"tex": defineAsyncComponent(() => import("./latex-DK8DFhTm.js")),
|
|
675
|
+
"text": defineAsyncComponent(() => import("./text-DPCGWvDK.js")),
|
|
676
|
+
"tf": defineAsyncComponent(() => import("./terraform-c5-k7yB1.js")),
|
|
677
|
+
"tfvars": defineAsyncComponent(() => import("./terraform-c5-k7yB1.js")),
|
|
678
|
+
"toml": defineAsyncComponent(() => import("./toml-DdLGBe1A.js")),
|
|
679
|
+
"ts": defineAsyncComponent(() => import("./typescript-B95hq2ns.js")),
|
|
680
|
+
"tsv": defineAsyncComponent(() => import("./csv-D5nNTIzO.js")),
|
|
681
|
+
"tsx": defineAsyncComponent(() => import("./typescript-B95hq2ns.js")),
|
|
682
|
+
"twig": defineAsyncComponent(() => import("./twig-D_jzZxh6.js")),
|
|
683
|
+
"typ": defineAsyncComponent(() => import("./typst-CSAEQ4yK.js")),
|
|
684
|
+
"typescript": defineAsyncComponent(() => import("./typescript-B95hq2ns.js")),
|
|
685
|
+
"typst": defineAsyncComponent(() => import("./typst-CSAEQ4yK.js")),
|
|
686
|
+
"v": defineAsyncComponent(() => import("./v-BAhebuOB.js")),
|
|
687
|
+
"vala": defineAsyncComponent(() => import("./vala-RAu83-lp.js")),
|
|
688
|
+
"verilog": defineAsyncComponent(() => import("./verilog-BgmTn52U.js")),
|
|
689
|
+
"vim": defineAsyncComponent(() => import("./vim-c8oTCLkH.js")),
|
|
690
|
+
"viml": defineAsyncComponent(() => import("./vim-c8oTCLkH.js")),
|
|
691
|
+
"vimscript": defineAsyncComponent(() => import("./vim-c8oTCLkH.js")),
|
|
692
|
+
"vue-html": defineAsyncComponent(() => import("./vue-TGT6HTBA.js")),
|
|
693
|
+
"vue-vine": defineAsyncComponent(() => import("./vue-TGT6HTBA.js")),
|
|
694
|
+
"vue": defineAsyncComponent(() => import("./vue-TGT6HTBA.js")),
|
|
695
|
+
"xml": defineAsyncComponent(() => import("./xml-C1HDr874.js")),
|
|
696
|
+
"xsl": defineAsyncComponent(() => import("./xml-C1HDr874.js")),
|
|
697
|
+
"yaml": defineAsyncComponent(() => import("./yaml-BO7FjFQZ.js")),
|
|
698
|
+
"yml": defineAsyncComponent(() => import("./yaml-BO7FjFQZ.js")),
|
|
699
|
+
"zig": defineAsyncComponent(() => import("./zig-qANBp1SU.js")),
|
|
700
|
+
"zsh": defineAsyncComponent(() => import("./bash-RITislE1.js"))
|
|
585
701
|
};
|
|
586
702
|
|
|
587
703
|
//#endregion
|
|
@@ -596,20 +712,23 @@ const DEFAULT_HARDEN_OPTIONS = {
|
|
|
596
712
|
//#endregion
|
|
597
713
|
//#region src/constants/icons.ts
|
|
598
714
|
const ICONS = {
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
612
|
-
|
|
715
|
+
arrowLeft: defineAsyncComponent(() => import("./arrow-left-C5s0Sn8o.js")),
|
|
716
|
+
check: defineAsyncComponent(() => import("./check-BfpxIITS.js")),
|
|
717
|
+
code: defineAsyncComponent(() => import("./code-D9CiymEK.js")),
|
|
718
|
+
collapse: defineAsyncComponent(() => import("./chevron-down-LeNeemjn.js")),
|
|
719
|
+
copy: defineAsyncComponent(() => import("./copy-C4580J93.js")),
|
|
720
|
+
download: defineAsyncComponent(() => import("./download-DytrK56a.js")),
|
|
721
|
+
error: defineAsyncComponent(() => import("./circle-alert-BjDuIzgc.js")),
|
|
722
|
+
flipHorizontal: defineAsyncComponent(() => import("./flip-horizontal-BFWjqDbQ.js")),
|
|
723
|
+
image: defineAsyncComponent(() => import("./image-D8MZj4W5.js")),
|
|
724
|
+
link: defineAsyncComponent(() => import("./link-C7eU_yi-.js")),
|
|
725
|
+
maximize: defineAsyncComponent(() => import("./maximize-CDZ9rnYF.js")),
|
|
726
|
+
mermaid: defineAsyncComponent(() => import("./mermaid-Dv-Pr0W-.js")),
|
|
727
|
+
minimize: defineAsyncComponent(() => import("./minimize-B9ER7p2X.js")),
|
|
728
|
+
preview: defineAsyncComponent(() => import("./eye-TaEwQS2Z.js")),
|
|
729
|
+
rotateLeft: defineAsyncComponent(() => import("./rotate-ccw-square-C2KVFUF3.js")),
|
|
730
|
+
zoomIn: defineAsyncComponent(() => import("./zoomIn-iVMAUxIz.js")),
|
|
731
|
+
zoomOut: defineAsyncComponent(() => import("./zoomOut-Cxq1_dIQ.js"))
|
|
613
732
|
};
|
|
614
733
|
|
|
615
734
|
//#endregion
|
|
@@ -732,6 +851,7 @@ function transformUrl(url, allowedPrefixes, defaultOrigin, allowDataImages = fal
|
|
|
732
851
|
|
|
733
852
|
//#endregion
|
|
734
853
|
//#region src/utils/helper.ts
|
|
854
|
+
const fileExtensionPattern = /\.[^/.]+$/;
|
|
735
855
|
function flow(fns) {
|
|
736
856
|
return (input) => fns.reduce((acc, fn) => fn(acc), input);
|
|
737
857
|
}
|
|
@@ -746,6 +866,25 @@ function save(filename, content, mimeType) {
|
|
|
746
866
|
document.body.removeChild(a);
|
|
747
867
|
URL.revokeObjectURL(url);
|
|
748
868
|
}
|
|
869
|
+
async function saveImage(url, alt) {
|
|
870
|
+
const blob = await (await fetch(url)).blob();
|
|
871
|
+
const originalFilename = new URL(url, window.location.origin).pathname.split("/").pop() || "";
|
|
872
|
+
const extension = originalFilename.split(".").pop();
|
|
873
|
+
const hasExtension = originalFilename.includes(".") && extension !== void 0 && extension.length <= 4;
|
|
874
|
+
let filename = "";
|
|
875
|
+
if (hasExtension) filename = originalFilename;
|
|
876
|
+
else {
|
|
877
|
+
const mimeType = blob.type;
|
|
878
|
+
let fileExtension = "png";
|
|
879
|
+
if (mimeType.includes("jpeg") || mimeType.includes("jpg")) fileExtension = "jpg";
|
|
880
|
+
else if (mimeType.includes("png")) fileExtension = "png";
|
|
881
|
+
else if (mimeType.includes("svg")) fileExtension = "svg";
|
|
882
|
+
else if (mimeType.includes("gif")) fileExtension = "gif";
|
|
883
|
+
else if (mimeType.includes("webp")) fileExtension = "webp";
|
|
884
|
+
filename = `${(alt || originalFilename || "image").replace(fileExtensionPattern, "")}.${fileExtension}`;
|
|
885
|
+
}
|
|
886
|
+
save(filename, blob, blob.type);
|
|
887
|
+
}
|
|
749
888
|
function svgToPngBlob(svgString, options) {
|
|
750
889
|
const scale = (options === null || options === void 0 ? void 0 : options.scale) ?? 5;
|
|
751
890
|
return new Promise((resolve, reject) => {
|
|
@@ -997,8 +1136,8 @@ function useHardenSanitizers(options) {
|
|
|
997
1136
|
//#region src/locales/index.ts
|
|
998
1137
|
const SUPPORT_LANGUAGES = ["en-US", "zh-CN"];
|
|
999
1138
|
const localesGlob = {
|
|
1000
|
-
"./en-US.json": () => import("./en-US-
|
|
1001
|
-
"./zh-CN.json": () => import("./zh-CN-
|
|
1139
|
+
"./en-US.json": () => import("./en-US-Kw2LYAMk.js"),
|
|
1140
|
+
"./zh-CN.json": () => import("./zh-CN-Dfow4Yn2.js")
|
|
1002
1141
|
};
|
|
1003
1142
|
const localeMessages = ref();
|
|
1004
1143
|
const currentLocale = ref("en-US");
|
|
@@ -1320,6 +1459,155 @@ function useMathRenderer(options) {
|
|
|
1320
1459
|
};
|
|
1321
1460
|
}
|
|
1322
1461
|
|
|
1462
|
+
//#endregion
|
|
1463
|
+
//#region src/composables/use-medium-zoom.ts
|
|
1464
|
+
function useMediumZoom(options) {
|
|
1465
|
+
const margin = computed(() => unref(options.margin) ?? 0);
|
|
1466
|
+
const elementRef = ref();
|
|
1467
|
+
const clonedElementRef = ref();
|
|
1468
|
+
const zoomElementRef = ref();
|
|
1469
|
+
const isAnimating = ref(false);
|
|
1470
|
+
const showClonedElement = ref(false);
|
|
1471
|
+
const initialTransform = ref("");
|
|
1472
|
+
const targetTransform = ref("");
|
|
1473
|
+
const elementStyle = computed(() => ({ opacity: showClonedElement.value ? 0 : 1 }));
|
|
1474
|
+
function cloneElement() {
|
|
1475
|
+
const original = elementRef.value;
|
|
1476
|
+
if (!original) return;
|
|
1477
|
+
const cloned = original.cloneNode(true);
|
|
1478
|
+
const rect = original.getBoundingClientRect();
|
|
1479
|
+
cloned.style.position = "fixed";
|
|
1480
|
+
cloned.style.top = `${rect.top}px`;
|
|
1481
|
+
cloned.style.left = `${rect.left}px`;
|
|
1482
|
+
cloned.style.width = `${rect.width}px`;
|
|
1483
|
+
cloned.style.height = `${rect.height}px`;
|
|
1484
|
+
cloned.style.margin = "0";
|
|
1485
|
+
cloned.style.padding = "0";
|
|
1486
|
+
cloned.style.pointerEvents = "none";
|
|
1487
|
+
cloned.style.zIndex = "10000";
|
|
1488
|
+
cloned.style.willChange = "transform";
|
|
1489
|
+
cloned.style.transformOrigin = "top left";
|
|
1490
|
+
if (original instanceof HTMLImageElement && original.currentSrc) cloned.src = original.currentSrc;
|
|
1491
|
+
return cloned;
|
|
1492
|
+
}
|
|
1493
|
+
function calculateTransforms() {
|
|
1494
|
+
const original = elementRef.value;
|
|
1495
|
+
if (!original || !clonedElementRef.value) return;
|
|
1496
|
+
const rect = original.getBoundingClientRect();
|
|
1497
|
+
const viewportWidth = window.innerWidth;
|
|
1498
|
+
const viewportHeight = window.innerHeight;
|
|
1499
|
+
const naturalWidth = original.naturalWidth || rect.width;
|
|
1500
|
+
const naturalHeight = original.naturalHeight || rect.height;
|
|
1501
|
+
const maxWidth = viewportWidth - margin.value * 2;
|
|
1502
|
+
const maxHeight = viewportHeight - margin.value * 2;
|
|
1503
|
+
const scaleX = Math.min(maxWidth / rect.width, naturalWidth / rect.width);
|
|
1504
|
+
const scaleY = Math.min(maxHeight / rect.height, naturalHeight / rect.height);
|
|
1505
|
+
const scale = Math.min(scaleX, scaleY, 1);
|
|
1506
|
+
const targetX = (viewportWidth - rect.width * scale) / 2;
|
|
1507
|
+
const targetY = (viewportHeight - rect.height * scale) / 2;
|
|
1508
|
+
const translateX = targetX - rect.left;
|
|
1509
|
+
const translateY = targetY - rect.top;
|
|
1510
|
+
initialTransform.value = `translate3d(0, 0, 0) scale(1)`;
|
|
1511
|
+
targetTransform.value = `translate3d(${translateX}px, ${translateY}px, 0) scale(${scale})`;
|
|
1512
|
+
}
|
|
1513
|
+
async function zoomIn() {
|
|
1514
|
+
var _clonedElementRef$val, _options$open;
|
|
1515
|
+
const el = elementRef.value;
|
|
1516
|
+
if (!el) return;
|
|
1517
|
+
const cloned = cloneElement();
|
|
1518
|
+
if (!cloned) return;
|
|
1519
|
+
el.style.visibility = "hidden";
|
|
1520
|
+
document.body.appendChild(cloned);
|
|
1521
|
+
clonedElementRef.value = cloned;
|
|
1522
|
+
showClonedElement.value = true;
|
|
1523
|
+
await nextTick();
|
|
1524
|
+
calculateTransforms();
|
|
1525
|
+
if (clonedElementRef.value) {
|
|
1526
|
+
clonedElementRef.value.style.transform = initialTransform.value;
|
|
1527
|
+
clonedElementRef.value.style.transition = "none";
|
|
1528
|
+
}
|
|
1529
|
+
(_clonedElementRef$val = clonedElementRef.value) === null || _clonedElementRef$val === void 0 || _clonedElementRef$val.offsetHeight;
|
|
1530
|
+
await nextTick();
|
|
1531
|
+
isAnimating.value = true;
|
|
1532
|
+
if (clonedElementRef.value) {
|
|
1533
|
+
clonedElementRef.value.style.transition = "transform 0.3s cubic-bezier(0.2, 0, 0.2, 1)";
|
|
1534
|
+
clonedElementRef.value.style.transform = targetTransform.value;
|
|
1535
|
+
}
|
|
1536
|
+
(_options$open = options.open) === null || _options$open === void 0 || _options$open.call(options);
|
|
1537
|
+
const handleAnimationEnd = () => {
|
|
1538
|
+
isAnimating.value = false;
|
|
1539
|
+
if (clonedElementRef.value) clonedElementRef.value.style.opacity = "0";
|
|
1540
|
+
showClonedElement.value = false;
|
|
1541
|
+
cloned.removeEventListener("transitionend", handleAnimationEnd);
|
|
1542
|
+
};
|
|
1543
|
+
cloned.addEventListener("transitionend", handleAnimationEnd, { once: true });
|
|
1544
|
+
}
|
|
1545
|
+
async function zoomOut() {
|
|
1546
|
+
if (!clonedElementRef.value) {
|
|
1547
|
+
var _options$close;
|
|
1548
|
+
(_options$close = options.close) === null || _options$close === void 0 || _options$close.call(options);
|
|
1549
|
+
return;
|
|
1550
|
+
}
|
|
1551
|
+
await nextTick();
|
|
1552
|
+
showClonedElement.value = true;
|
|
1553
|
+
if (clonedElementRef.value) clonedElementRef.value.style.opacity = "1";
|
|
1554
|
+
await nextTick();
|
|
1555
|
+
if (!clonedElementRef.value) return;
|
|
1556
|
+
const el = elementRef.value;
|
|
1557
|
+
const zoomEl = zoomElementRef.value;
|
|
1558
|
+
if (!el || !zoomEl) return;
|
|
1559
|
+
const originalRect = el.getBoundingClientRect();
|
|
1560
|
+
const zoomRect = zoomEl.getBoundingClientRect();
|
|
1561
|
+
const cloned = clonedElementRef.value;
|
|
1562
|
+
const currentTransform = window.getComputedStyle(zoomEl).transform || "none";
|
|
1563
|
+
const currentCenterX = zoomRect.left + zoomRect.width / 2;
|
|
1564
|
+
const currentCenterY = zoomRect.top + zoomRect.height / 2;
|
|
1565
|
+
const targetCenterX = originalRect.left + originalRect.width / 2;
|
|
1566
|
+
const targetCenterY = originalRect.top + originalRect.height / 2;
|
|
1567
|
+
const scale = Math.min(originalRect.width / zoomRect.width, originalRect.height / zoomRect.height);
|
|
1568
|
+
cloned.style.top = `${zoomRect.top}px`;
|
|
1569
|
+
cloned.style.left = `${zoomRect.left}px`;
|
|
1570
|
+
cloned.style.width = `${zoomRect.width}px`;
|
|
1571
|
+
cloned.style.height = `${zoomRect.height}px`;
|
|
1572
|
+
cloned.style.transform = currentTransform !== "none" ? currentTransform : "translate3d(0, 0, 0) scale(1)";
|
|
1573
|
+
cloned.style.transformOrigin = "center center";
|
|
1574
|
+
cloned.style.transition = "none";
|
|
1575
|
+
cloned.offsetHeight;
|
|
1576
|
+
await nextTick();
|
|
1577
|
+
isAnimating.value = true;
|
|
1578
|
+
const translateX = targetCenterX - currentCenterX;
|
|
1579
|
+
const translateY = targetCenterY - currentCenterY;
|
|
1580
|
+
cloned.style.transition = "transform 0.3s cubic-bezier(0.2, 0, 0.2, 1)";
|
|
1581
|
+
if (currentTransform !== "none") try {
|
|
1582
|
+
const inverseMatrix = new DOMMatrix(currentTransform).inverse();
|
|
1583
|
+
const transformedPoint = new DOMPoint(translateX, translateY).matrixTransform(inverseMatrix);
|
|
1584
|
+
cloned.style.transform = `${currentTransform} translate3d(${transformedPoint.x}px, ${transformedPoint.y}px, 0) scale(${scale})`;
|
|
1585
|
+
} catch {
|
|
1586
|
+
cloned.style.transform = `${currentTransform} translate3d(${translateX}px, ${translateY}px, 0) scale(${scale})`;
|
|
1587
|
+
}
|
|
1588
|
+
else cloned.style.transform = `translate3d(${translateX}px, ${translateY}px, 0) scale(${scale})`;
|
|
1589
|
+
const handleAnimationEnd = () => {
|
|
1590
|
+
var _options$close2;
|
|
1591
|
+
const cloned$1 = clonedElementRef.value;
|
|
1592
|
+
if (cloned$1 && cloned$1.parentNode) cloned$1.parentNode.removeChild(cloned$1);
|
|
1593
|
+
clonedElementRef.value = void 0;
|
|
1594
|
+
if (elementRef.value) elementRef.value.style.visibility = "visible";
|
|
1595
|
+
(_options$close2 = options.close) === null || _options$close2 === void 0 || _options$close2.call(options);
|
|
1596
|
+
isAnimating.value = false;
|
|
1597
|
+
showClonedElement.value = false;
|
|
1598
|
+
};
|
|
1599
|
+
cloned.addEventListener("transitionend", handleAnimationEnd, { once: true });
|
|
1600
|
+
}
|
|
1601
|
+
return {
|
|
1602
|
+
isAnimating,
|
|
1603
|
+
elementStyle,
|
|
1604
|
+
elementRef,
|
|
1605
|
+
zoomElementRef,
|
|
1606
|
+
zoomIn,
|
|
1607
|
+
zoomOut
|
|
1608
|
+
};
|
|
1609
|
+
}
|
|
1610
|
+
|
|
1323
1611
|
//#endregion
|
|
1324
1612
|
//#region src/composables/use-mermaid.ts
|
|
1325
1613
|
let mermaid = null;
|
|
@@ -1426,13 +1714,21 @@ function useShiki(options) {
|
|
|
1426
1714
|
});
|
|
1427
1715
|
const lightTheme = computed(() => shikiTheme.value[0] ?? DEFAULT_LIGHT_THEME);
|
|
1428
1716
|
const darkTheme = computed(() => shikiTheme.value[1] ?? DEFAULT_DARK_THEME);
|
|
1429
|
-
const
|
|
1717
|
+
const langs = computed(() => {
|
|
1430
1718
|
var _unref2;
|
|
1431
|
-
return ((_unref2 = unref(options === null || options === void 0 ? void 0 : options.shikiOptions)) === null || _unref2 === void 0 ? void 0 : _unref2.
|
|
1719
|
+
return ((_unref2 = unref(options === null || options === void 0 ? void 0 : options.shikiOptions)) === null || _unref2 === void 0 ? void 0 : _unref2.langs) ?? [];
|
|
1432
1720
|
});
|
|
1433
|
-
const
|
|
1721
|
+
const langAlias = computed(() => {
|
|
1434
1722
|
var _unref3;
|
|
1435
|
-
|
|
1723
|
+
const data = ((_unref3 = unref(options === null || options === void 0 ? void 0 : options.shikiOptions)) === null || _unref3 === void 0 ? void 0 : _unref3.langAlias) ?? {};
|
|
1724
|
+
return {
|
|
1725
|
+
...LANGUAGE_ALIAS,
|
|
1726
|
+
...data
|
|
1727
|
+
};
|
|
1728
|
+
});
|
|
1729
|
+
const codeToTokenOptions = computed(() => {
|
|
1730
|
+
var _unref4;
|
|
1731
|
+
return ((_unref4 = unref(options === null || options === void 0 ? void 0 : options.shikiOptions)) === null || _unref4 === void 0 ? void 0 : _unref4.codeToTokenOptions) ?? {};
|
|
1436
1732
|
});
|
|
1437
1733
|
const isDark = computed(() => unref(options === null || options === void 0 ? void 0 : options.isDark) ?? false);
|
|
1438
1734
|
async function getThemes() {
|
|
@@ -1446,7 +1742,7 @@ function useShiki(options) {
|
|
|
1446
1742
|
return theme.id;
|
|
1447
1743
|
}
|
|
1448
1744
|
async function getLanguage() {
|
|
1449
|
-
if (
|
|
1745
|
+
if (langAlias.value[lang.value]) return langAlias.value[lang.value];
|
|
1450
1746
|
const { bundledLanguagesInfo } = await import("shiki");
|
|
1451
1747
|
const language = bundledLanguagesInfo.find((l) => {
|
|
1452
1748
|
var _l$aliases;
|
|
@@ -1473,11 +1769,8 @@ function useShiki(options) {
|
|
|
1473
1769
|
const { createHighlighter } = await import("shiki");
|
|
1474
1770
|
return createHighlighter({
|
|
1475
1771
|
themes: [await getTheme()],
|
|
1476
|
-
langs:
|
|
1477
|
-
langAlias:
|
|
1478
|
-
...LANGUAGE_ALIAS,
|
|
1479
|
-
...langAlias.value
|
|
1480
|
-
}
|
|
1772
|
+
langs: langs.value,
|
|
1773
|
+
langAlias: langAlias.value
|
|
1481
1774
|
});
|
|
1482
1775
|
})();
|
|
1483
1776
|
highlighter = await createHighlighterPromise;
|
|
@@ -1558,28 +1851,6 @@ function useTailwindV3Theme(options) {
|
|
|
1558
1851
|
};
|
|
1559
1852
|
}
|
|
1560
1853
|
|
|
1561
|
-
//#endregion
|
|
1562
|
-
//#region src/composables/use-tippy.ts
|
|
1563
|
-
function useTippy(options) {
|
|
1564
|
-
const isDark = computed(() => unref(options === null || options === void 0 ? void 0 : options.isDark) ?? false);
|
|
1565
|
-
const tippyOptions = computed(() => unref(options === null || options === void 0 ? void 0 : options.options) ?? {});
|
|
1566
|
-
function initTippy() {
|
|
1567
|
-
setDefaultProps({
|
|
1568
|
-
allowHTML: true,
|
|
1569
|
-
delay: [100, 100],
|
|
1570
|
-
theme: isDark.value ? "" : "light",
|
|
1571
|
-
...tippyOptions
|
|
1572
|
-
});
|
|
1573
|
-
watchEffect(() => {
|
|
1574
|
-
setDefaultProps({
|
|
1575
|
-
theme: isDark.value ? "" : "light",
|
|
1576
|
-
...tippyOptions.value
|
|
1577
|
-
});
|
|
1578
|
-
});
|
|
1579
|
-
}
|
|
1580
|
-
return { initTippy };
|
|
1581
|
-
}
|
|
1582
|
-
|
|
1583
1854
|
//#endregion
|
|
1584
1855
|
//#region src/composables/use-zoom.ts
|
|
1585
1856
|
function useZoom(options = {}) {
|
|
@@ -1592,6 +1863,8 @@ function useZoom(options = {}) {
|
|
|
1592
1863
|
x: 0,
|
|
1593
1864
|
y: 0
|
|
1594
1865
|
});
|
|
1866
|
+
const isPinching = ref(false);
|
|
1867
|
+
const touchZoomState = ref(null);
|
|
1595
1868
|
const transformStyle = computed(() => ({ transform: `translate(${translateX.value}px, ${translateY.value}px) scale(${zoom.value})` }));
|
|
1596
1869
|
function zoomIn() {
|
|
1597
1870
|
if (zoom.value < maxZoom) zoom.value = Math.min(zoom.value + zoomStep, maxZoom);
|
|
@@ -1608,6 +1881,7 @@ function useZoom(options = {}) {
|
|
|
1608
1881
|
zoom.value = Math.min(Math.max(value, minZoom), maxZoom);
|
|
1609
1882
|
}
|
|
1610
1883
|
function startDrag(e) {
|
|
1884
|
+
if (isPinching.value) return;
|
|
1611
1885
|
isDragging.value = true;
|
|
1612
1886
|
dragStart.value = {
|
|
1613
1887
|
x: e.clientX - translateX.value,
|
|
@@ -1618,7 +1892,7 @@ function useZoom(options = {}) {
|
|
|
1618
1892
|
}
|
|
1619
1893
|
}
|
|
1620
1894
|
function onDrag(e) {
|
|
1621
|
-
if (!isDragging.value) return;
|
|
1895
|
+
if (!isDragging.value || isPinching.value) return;
|
|
1622
1896
|
translateX.value = e.clientX - dragStart.value.x;
|
|
1623
1897
|
translateY.value = e.clientY - dragStart.value.y;
|
|
1624
1898
|
}
|
|
@@ -1646,6 +1920,65 @@ function useZoom(options = {}) {
|
|
|
1646
1920
|
}
|
|
1647
1921
|
}
|
|
1648
1922
|
}
|
|
1923
|
+
function getTouchDistance(touch1, touch2) {
|
|
1924
|
+
const dx = touch1.clientX - touch2.clientX;
|
|
1925
|
+
const dy = touch1.clientY - touch2.clientY;
|
|
1926
|
+
return Math.sqrt(dx * dx + dy * dy);
|
|
1927
|
+
}
|
|
1928
|
+
function handleTouchStart(event, containerElement) {
|
|
1929
|
+
if (event.touches.length === 2) {
|
|
1930
|
+
event.preventDefault();
|
|
1931
|
+
isPinching.value = true;
|
|
1932
|
+
const touch1 = event.touches[0];
|
|
1933
|
+
const touch2 = event.touches[1];
|
|
1934
|
+
const distance = getTouchDistance(touch1, touch2);
|
|
1935
|
+
const centerX = (touch1.clientX + touch2.clientX) / 2;
|
|
1936
|
+
const centerY = (touch1.clientY + touch2.clientY) / 2;
|
|
1937
|
+
const rect = containerElement.getBoundingClientRect();
|
|
1938
|
+
const containerCenterX = rect.width / 2;
|
|
1939
|
+
const containerCenterY = rect.height / 2;
|
|
1940
|
+
const offsetX = centerX - rect.left - containerCenterX;
|
|
1941
|
+
const offsetY = centerY - rect.top - containerCenterY;
|
|
1942
|
+
touchZoomState.value = {
|
|
1943
|
+
initialDistance: distance,
|
|
1944
|
+
initialZoom: zoom.value,
|
|
1945
|
+
initialTranslateX: translateX.value,
|
|
1946
|
+
initialTranslateY: translateY.value,
|
|
1947
|
+
centerX: offsetX,
|
|
1948
|
+
centerY: offsetY
|
|
1949
|
+
};
|
|
1950
|
+
}
|
|
1951
|
+
}
|
|
1952
|
+
function handleTouchMove(event, containerElement) {
|
|
1953
|
+
if (event.touches.length === 2 && touchZoomState.value) {
|
|
1954
|
+
event.preventDefault();
|
|
1955
|
+
const touch1 = event.touches[0];
|
|
1956
|
+
const touch2 = event.touches[1];
|
|
1957
|
+
const scale = getTouchDistance(touch1, touch2) / touchZoomState.value.initialDistance;
|
|
1958
|
+
const newZoom = touchZoomState.value.initialZoom * scale;
|
|
1959
|
+
const clampedZoom = Math.min(Math.max(newZoom, minZoom), maxZoom);
|
|
1960
|
+
if (clampedZoom !== zoom.value) {
|
|
1961
|
+
const centerX = (touch1.clientX + touch2.clientX) / 2;
|
|
1962
|
+
const centerY = (touch1.clientY + touch2.clientY) / 2;
|
|
1963
|
+
const rect = containerElement.getBoundingClientRect();
|
|
1964
|
+
const containerCenterX = rect.width / 2;
|
|
1965
|
+
const containerCenterY = rect.height / 2;
|
|
1966
|
+
const offsetX = centerX - rect.left - containerCenterX;
|
|
1967
|
+
const offsetY = centerY - rect.top - containerCenterY;
|
|
1968
|
+
const contentFocalX = (touchZoomState.value.centerX - touchZoomState.value.initialTranslateX) / touchZoomState.value.initialZoom;
|
|
1969
|
+
const contentFocalY = (touchZoomState.value.centerY - touchZoomState.value.initialTranslateY) / touchZoomState.value.initialZoom;
|
|
1970
|
+
zoom.value = clampedZoom;
|
|
1971
|
+
translateX.value = offsetX - contentFocalX * clampedZoom;
|
|
1972
|
+
translateY.value = offsetY - contentFocalY * clampedZoom;
|
|
1973
|
+
}
|
|
1974
|
+
}
|
|
1975
|
+
}
|
|
1976
|
+
function handleTouchEnd(event) {
|
|
1977
|
+
if (event.touches.length < 2) {
|
|
1978
|
+
touchZoomState.value = null;
|
|
1979
|
+
isPinching.value = false;
|
|
1980
|
+
}
|
|
1981
|
+
}
|
|
1649
1982
|
function getState() {
|
|
1650
1983
|
return {
|
|
1651
1984
|
zoom: zoom.value,
|
|
@@ -1673,9 +2006,12 @@ function useZoom(options = {}) {
|
|
|
1673
2006
|
stopDrag,
|
|
1674
2007
|
handleWheel,
|
|
1675
2008
|
getState,
|
|
1676
|
-
setState
|
|
2009
|
+
setState,
|
|
2010
|
+
handleTouchStart,
|
|
2011
|
+
handleTouchMove,
|
|
2012
|
+
handleTouchEnd
|
|
1677
2013
|
};
|
|
1678
2014
|
}
|
|
1679
2015
|
|
|
1680
2016
|
//#endregion
|
|
1681
|
-
export {
|
|
2017
|
+
export { svgToPngBlob as A, useFloatingElement as B, findNodeParent as C, flow as D, hasShiki as E, DEFAULT_DARK_THEME as F, useContext as H, DEFAULT_LIGHT_THEME as I, LANGUAGE_ALIAS as L, SHADCN_SCHEMAS as M, ICONS as N, save as O, DEFAULT_HARDEN_OPTIONS as P, LANGUAGE_EXTENSIONS as R, findLastLeafNode as S, hasMermaid as T, useCodeOptions as U, useControls as V, escapeMarkdownTableCell as _, useMediumZoom as a, tableDataToMarkdown as b, _defineProperty as c, SUPPORT_LANGUAGES as d, currentLocale as f, useHardenSanitizers as g, localesGlob as h, useMermaid as i, transformUrl as j, saveImage as k, useKatex as l, localeMessages as m, useTailwindV3Theme as n, useMathRenderer as o, loadLocaleMessages as p, useShiki as r, throttle as s, useZoom as t, useI18n as u, extractTableDataFromElement as v, hasKatex as w, tableDataToTSV as x, tableDataToCSV as y, LANGUAGE_ICONS as z };
|