@antdv-next/x 1.2.3 → 1.2.4

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/index.umd.js CHANGED
@@ -66,7 +66,7 @@
66
66
  shiki_dist_themes_vitesse_dark_mjs = __toESM(shiki_dist_themes_vitesse_dark_mjs, 1);
67
67
  shiki_dist_themes_vitesse_light_mjs = __toESM(shiki_dist_themes_vitesse_light_mjs, 1);
68
68
  //#region package.json
69
- var version = "1.2.3";
69
+ var version = "1.2.4";
70
70
  //#endregion
71
71
  //#region components/x-provider/context.ts
72
72
  var XProviderContextKey = Symbol("antdv-next-x-provider-context");
@@ -7321,6 +7321,10 @@
7321
7321
  const mergedRenderType = (0, vue.computed)(() => {
7322
7322
  return props.renderType ?? internalRenderType.value;
7323
7323
  });
7324
+ const latestRenderRef = (0, vue.ref)({
7325
+ content: props.content,
7326
+ renderType: mergedRenderType.value
7327
+ });
7324
7328
  const mergedActions = (0, vue.computed)(() => {
7325
7329
  return {
7326
7330
  enableZoom: props.actions?.enableZoom ?? true,
@@ -7350,23 +7354,29 @@
7350
7354
  svgEl.style.transition = isDragging.value ? "none" : "transform 0.1s ease-out";
7351
7355
  svgEl.style.cursor = isDragging.value ? "grabbing" : "grab";
7352
7356
  }
7357
+ let renderRequestId = 0;
7358
+ let latestCommittedRequestId = 0;
7353
7359
  const renderDiagram = throttle(async () => {
7354
- if (mergedRenderType.value === RenderType.Code) {
7355
- if (graphRef.value) graphRef.value.innerHTML = "";
7356
- return;
7357
- }
7358
- if (!props.content?.trim()) return;
7360
+ const { content, renderType } = latestRenderRef.value;
7359
7361
  const graphEl = graphRef.value;
7360
- if (!graphEl) return;
7362
+ if (!graphEl || renderType === RenderType.Code || !content?.trim()) return;
7363
+ const requestId = ++renderRequestId;
7361
7364
  try {
7362
- if (await parseMermaid(props.content, { suppressErrors: true }) === false) throw new Error("Invalid Mermaid syntax");
7363
- const { svg } = await renderMermaid(`${renderBaseId}-${idSeed++}-${props.content.length || 0}`, props.content);
7365
+ if (await parseMermaid(content, { suppressErrors: true }) === false) throw new Error("Invalid Mermaid syntax");
7366
+ const { svg } = await renderMermaid(`${renderBaseId}-${idSeed++}-${content.length || 0}`, content);
7367
+ if (requestId <= latestCommittedRequestId) return;
7364
7368
  graphEl.innerHTML = svg;
7369
+ latestCommittedRequestId = requestId;
7365
7370
  applySvgTransform();
7366
7371
  } catch (error) {
7372
+ if (requestId !== renderRequestId || latestRenderRef.value.content !== content || latestRenderRef.value.renderType !== renderType) return;
7367
7373
  warning(false, "Mermaid", `Render failed: ${String(error)}`);
7368
7374
  }
7369
7375
  }, 100);
7376
+ const invalidateRender = () => {
7377
+ latestCommittedRequestId = ++renderRequestId;
7378
+ renderDiagram.cancel();
7379
+ };
7370
7380
  function switchRenderType(nextType) {
7371
7381
  if (props.renderType === void 0) internalRenderType.value = nextType;
7372
7382
  emit("update:renderType", nextType);
@@ -7545,7 +7555,17 @@
7545
7555
  mergedRenderType,
7546
7556
  () => graphRef.value
7547
7557
  ], () => {
7548
- if (!graphRef.value) return;
7558
+ latestRenderRef.value = {
7559
+ content: props.content,
7560
+ renderType: mergedRenderType.value
7561
+ };
7562
+ const graphEl = graphRef.value;
7563
+ if (mergedRenderType.value === RenderType.Code || !props.content?.trim()) {
7564
+ invalidateRender();
7565
+ if (graphEl) graphEl.innerHTML = "";
7566
+ return;
7567
+ }
7568
+ if (!graphEl) return;
7549
7569
  renderDiagram();
7550
7570
  }, {
7551
7571
  immediate: true,
@@ -7583,7 +7603,7 @@
7583
7603
  applySvgTransform();
7584
7604
  }, { deep: true });
7585
7605
  (0, vue.onBeforeUnmount)(() => {
7586
- renderDiagram.cancel();
7606
+ invalidateRender();
7587
7607
  });
7588
7608
  expose({ get nativeElement() {
7589
7609
  return rootRef.value;
@@ -149,6 +149,10 @@ var XMermaid = /* @__PURE__ */ defineComponent({
149
149
  const mergedRenderType = computed(() => {
150
150
  return props.renderType ?? internalRenderType.value;
151
151
  });
152
+ const latestRenderRef = ref({
153
+ content: props.content,
154
+ renderType: mergedRenderType.value
155
+ });
152
156
  const mergedActions = computed(() => {
153
157
  return {
154
158
  enableZoom: props.actions?.enableZoom ?? true,
@@ -178,23 +182,29 @@ var XMermaid = /* @__PURE__ */ defineComponent({
178
182
  svgEl.style.transition = isDragging.value ? "none" : "transform 0.1s ease-out";
179
183
  svgEl.style.cursor = isDragging.value ? "grabbing" : "grab";
180
184
  }
185
+ let renderRequestId = 0;
186
+ let latestCommittedRequestId = 0;
181
187
  const renderDiagram = throttle(async () => {
182
- if (mergedRenderType.value === RenderType.Code) {
183
- if (graphRef.value) graphRef.value.innerHTML = "";
184
- return;
185
- }
186
- if (!props.content?.trim()) return;
188
+ const { content, renderType } = latestRenderRef.value;
187
189
  const graphEl = graphRef.value;
188
- if (!graphEl) return;
190
+ if (!graphEl || renderType === RenderType.Code || !content?.trim()) return;
191
+ const requestId = ++renderRequestId;
189
192
  try {
190
- if (await parseMermaid(props.content, { suppressErrors: true }) === false) throw new Error("Invalid Mermaid syntax");
191
- const { svg } = await renderMermaid(`${renderBaseId}-${idSeed++}-${props.content.length || 0}`, props.content);
193
+ if (await parseMermaid(content, { suppressErrors: true }) === false) throw new Error("Invalid Mermaid syntax");
194
+ const { svg } = await renderMermaid(`${renderBaseId}-${idSeed++}-${content.length || 0}`, content);
195
+ if (requestId <= latestCommittedRequestId) return;
192
196
  graphEl.innerHTML = svg;
197
+ latestCommittedRequestId = requestId;
193
198
  applySvgTransform();
194
199
  } catch (error) {
200
+ if (requestId !== renderRequestId || latestRenderRef.value.content !== content || latestRenderRef.value.renderType !== renderType) return;
195
201
  warning(false, "Mermaid", `Render failed: ${String(error)}`);
196
202
  }
197
203
  }, 100);
204
+ const invalidateRender = () => {
205
+ latestCommittedRequestId = ++renderRequestId;
206
+ renderDiagram.cancel();
207
+ };
198
208
  function switchRenderType(nextType) {
199
209
  if (props.renderType === void 0) internalRenderType.value = nextType;
200
210
  emit("update:renderType", nextType);
@@ -373,7 +383,17 @@ var XMermaid = /* @__PURE__ */ defineComponent({
373
383
  mergedRenderType,
374
384
  () => graphRef.value
375
385
  ], () => {
376
- if (!graphRef.value) return;
386
+ latestRenderRef.value = {
387
+ content: props.content,
388
+ renderType: mergedRenderType.value
389
+ };
390
+ const graphEl = graphRef.value;
391
+ if (mergedRenderType.value === RenderType.Code || !props.content?.trim()) {
392
+ invalidateRender();
393
+ if (graphEl) graphEl.innerHTML = "";
394
+ return;
395
+ }
396
+ if (!graphEl) return;
377
397
  renderDiagram();
378
398
  }, {
379
399
  immediate: true,
@@ -411,7 +431,7 @@ var XMermaid = /* @__PURE__ */ defineComponent({
411
431
  applySvgTransform();
412
432
  }, { deep: true });
413
433
  onBeforeUnmount(() => {
414
- renderDiagram.cancel();
434
+ invalidateRender();
415
435
  });
416
436
  expose({ get nativeElement() {
417
437
  return rootRef.value;
package/dist/package.js CHANGED
@@ -1,4 +1,4 @@
1
1
  //#region package.json
2
- var version = "1.2.3";
2
+ var version = "1.2.4";
3
3
  //#endregion
4
4
  export { version };
@@ -1,7 +1,7 @@
1
1
  import { S as e, _ as t, a as n, b as r, c as i, d as a, f as o, g as s, h as c, i as l, l as u, m as d, n as f, o as p, p as m, r as h, s as g, t as _, u as v, v as y, x as b, y as x } from "./Serializer-Sc9uEpQk.js";
2
2
  import { Comment as S, Fragment as C, Teleport as w, Text as T, Transition as E, TransitionGroup as D, cloneVNode as O, computed as k, createTextVNode as A, createVNode as j, defineComponent as M, getCurrentInstance as N, getCurrentScope as P, h as F, inject as I, isVNode as L, markRaw as R, mergeDefaults as z, mergeProps as B, nextTick as V, onBeforeMount as ee, onBeforeUnmount as H, onBeforeUpdate as U, onMounted as te, onScopeDispose as ne, onUnmounted as re, onUpdated as ie, provide as W, reactive as ae, ref as G, render as oe, resolveDynamicComponent as se, shallowReactive as ce, shallowRef as K, toRaw as le, toRef as ue, toRefs as de, toValue as fe, triggerRef as pe, unref as me, useAttrs as he, useId as ge, useSlots as _e, vShow as ve, watch as q, watchEffect as ye, withDirectives as be } from "vue";
3
3
  //#region package.json
4
- var xe = "1.2.3", Se = "anticon", Ce = {}, we = [
4
+ var xe = "1.2.4", Se = "anticon", Ce = {}, we = [
5
5
  "outlined",
6
6
  "borderless",
7
7
  "filled",
@@ -51167,51 +51167,55 @@ var kF = /* @__PURE__ */ M({
51167
51167
  }), g = G(!1), _ = G({
51168
51168
  x: 0,
51169
51169
  y: 0
51170
- }), v = k(() => e.renderType ?? p.value), y = k(() => ({
51170
+ }), v = k(() => e.renderType ?? p.value), y = G({
51171
+ content: e.content,
51172
+ renderType: v.value
51173
+ }), b = k(() => ({
51171
51174
  enableZoom: e.actions?.enableZoom ?? !0,
51172
51175
  enableDownload: e.actions?.enableDownload ?? !0,
51173
51176
  enableCopy: e.actions?.enableCopy ?? !0,
51174
51177
  customActions: e.actions?.customActions ?? []
51175
- })), b = k(() => ({
51178
+ })), x = k(() => ({
51176
51179
  ...s.value.classes,
51177
51180
  ...e.classes
51178
- })), x = k(() => ({
51181
+ })), S = k(() => ({
51179
51182
  ...s.value.styles,
51180
51183
  ...e.styles
51181
- })), S = k(() => {
51184
+ })), C = k(() => {
51182
51185
  let { class: e, style: t, ...n } = i;
51183
51186
  return n;
51184
51187
  });
51185
- function C() {
51188
+ function w() {
51186
51189
  if (v.value !== EF.Image) return;
51187
51190
  let e = l.value?.querySelector("svg");
51188
51191
  e && (e.style.transform = `scale(${m.value}) translate(${h.value.x}px, ${h.value.y}px)`, e.style.transformOrigin = "center", e.style.transition = g.value ? "none" : "transform 0.1s ease-out", e.style.cursor = g.value ? "grabbing" : "grab");
51189
51192
  }
51190
- let w = OF(async () => {
51191
- if (v.value === EF.Code) {
51192
- l.value && (l.value.innerHTML = "");
51193
- return;
51194
- }
51195
- if (!e.content?.trim()) return;
51196
- let t = l.value;
51197
- if (t) try {
51198
- if (await SF(e.content, { suppressErrors: !0 }) === !1) throw Error("Invalid Mermaid syntax");
51199
- let { svg: n } = await CF(`${u}-${DF++}-${e.content.length || 0}`, e.content);
51200
- t.innerHTML = n, C();
51201
- } catch (e) {
51202
- gF(!1, "Mermaid", `Render failed: ${String(e)}`);
51203
- }
51204
- }, 100);
51205
- function T(n) {
51193
+ let T = 0, E = 0, D = OF(async () => {
51194
+ let { content: e, renderType: t } = y.value, n = l.value;
51195
+ if (!n || t === EF.Code || !e?.trim()) return;
51196
+ let r = ++T;
51197
+ try {
51198
+ if (await SF(e, { suppressErrors: !0 }) === !1) throw Error("Invalid Mermaid syntax");
51199
+ let { svg: t } = await CF(`${u}-${DF++}-${e.length || 0}`, e);
51200
+ if (r <= E) return;
51201
+ n.innerHTML = t, E = r, w();
51202
+ } catch (n) {
51203
+ if (r !== T || y.value.content !== e || y.value.renderType !== t) return;
51204
+ gF(!1, "Mermaid", `Render failed: ${String(n)}`);
51205
+ }
51206
+ }, 100), O = () => {
51207
+ E = ++T, D.cancel();
51208
+ };
51209
+ function A(n) {
51206
51210
  e.renderType === void 0 && (p.value = n), t("update:renderType", n), t("renderTypeChange", n);
51207
51211
  }
51208
- function E(e) {
51212
+ function M(e) {
51209
51213
  v.value === EF.Image && (e.preventDefault(), g.value = !0, _.value = {
51210
51214
  x: e.clientX,
51211
51215
  y: e.clientY
51212
51216
  });
51213
51217
  }
51214
- function D(e) {
51218
+ function N(e) {
51215
51219
  if (!g.value || v.value !== EF.Image) return;
51216
51220
  e.preventDefault();
51217
51221
  let t = e.clientX - _.value.x, n = e.clientY - _.value.y;
@@ -51223,29 +51227,29 @@ var kF = /* @__PURE__ */ M({
51223
51227
  y: e.clientY
51224
51228
  };
51225
51229
  }
51226
- function O() {
51230
+ function P() {
51227
51231
  g.value = !1;
51228
51232
  }
51229
- function A() {
51233
+ function F() {
51230
51234
  v.value === EF.Image && (m.value += .2);
51231
51235
  }
51232
- function M() {
51236
+ function I() {
51233
51237
  v.value === EF.Image && (m.value = Math.max(m.value - .2, .5));
51234
51238
  }
51235
- function N() {
51239
+ function L() {
51236
51240
  v.value === EF.Image && (m.value = 1, h.value = {
51237
51241
  x: 0,
51238
51242
  y: 0
51239
51243
  });
51240
51244
  }
51241
- async function P() {
51245
+ async function R() {
51242
51246
  try {
51243
51247
  await navigator.clipboard.writeText(e.content);
51244
51248
  } catch (e) {
51245
51249
  gF(!1, "Mermaid", `Copy failed: ${String(e)}`);
51246
51250
  }
51247
51251
  }
51248
- function F() {
51252
+ function z() {
51249
51253
  if (v.value !== EF.Image) return;
51250
51254
  let e = l.value?.querySelector("svg");
51251
51255
  if (!e) return;
@@ -51269,47 +51273,47 @@ var kF = /* @__PURE__ */ M({
51269
51273
  e.download = `${Date.now()}.png`, e.href = o.toDataURL("image/png", 1), e.click();
51270
51274
  }, u.src = `data:image/svg+xml;charset=utf-8,${encodeURIComponent(a)}`;
51271
51275
  }
51272
- let I = k(() => {
51276
+ let V = k(() => {
51273
51277
  let t = [];
51274
- return v.value === EF.Image && (y.value.enableZoom && t.push({
51278
+ return v.value === EF.Image && (b.value.enableZoom && t.push({
51275
51279
  key: "zoomIn",
51276
51280
  icon: j(Fp, null, null),
51277
51281
  label: o.value.zoomIn,
51278
- onItemClick: A
51282
+ onItemClick: F
51279
51283
  }, {
51280
51284
  key: "zoomOut",
51281
51285
  icon: j(Lp, null, null),
51282
51286
  label: o.value.zoomOut,
51283
- onItemClick: M
51287
+ onItemClick: I
51284
51288
  }, {
51285
51289
  key: "zoomReset",
51286
51290
  actionRender: () => j(eu, { title: o.value.zoomReset }, { default: () => [j(_h, {
51287
51291
  type: "text",
51288
51292
  size: "small",
51289
- onClick: N
51293
+ onClick: L
51290
51294
  }, { default: () => [o.value.zoomReset] })] })
51291
- }), y.value.enableDownload && t.push({
51295
+ }), b.value.enableDownload && t.push({
51292
51296
  key: "download",
51293
51297
  icon: j(af, null, null),
51294
51298
  label: o.value.download,
51295
- onItemClick: F
51296
- })), v.value === EF.Code && y.value.enableCopy && t.push({
51299
+ onItemClick: z
51300
+ })), v.value === EF.Code && b.value.enableCopy && t.push({
51297
51301
  key: "copy",
51298
51302
  actionRender: () => j(PM.Copy, { text: e.content }, null)
51299
- }), [...t, ...y.value.customActions];
51303
+ }), [...t, ...b.value.customActions];
51300
51304
  });
51301
- function L() {
51305
+ function ee() {
51302
51306
  return e.header === null ? null : r.header ? r.header({
51303
51307
  renderType: v.value,
51304
- setRenderType: T,
51305
- zoomIn: A,
51306
- zoomOut: M,
51307
- resetZoom: N,
51308
- download: F,
51309
- copy: P
51308
+ setRenderType: A,
51309
+ zoomIn: F,
51310
+ zoomOut: I,
51311
+ resetZoom: L,
51312
+ download: z,
51313
+ copy: R
51310
51314
  }) : e.header === void 0 ? j("div", {
51311
- class: [`${e.prefixCls}-header`, b.value.header],
51312
- style: x.value.header
51315
+ class: [`${e.prefixCls}-header`, x.value.header],
51316
+ style: S.value.header
51313
51317
  }, [j(bT, {
51314
51318
  options: [{
51315
51319
  label: o.value.image,
@@ -51319,8 +51323,8 @@ var kF = /* @__PURE__ */ M({
51319
51323
  value: EF.Code
51320
51324
  }],
51321
51325
  value: v.value,
51322
- onChange: (e) => T(e)
51323
- }, null), j(PM, { items: I.value }, null)]) : e.header;
51326
+ onChange: (e) => A(e)
51327
+ }, null), j(PM, { items: V.value }, null)]) : e.header;
51324
51328
  }
51325
51329
  return q(() => e.renderType, (e) => {
51326
51330
  e !== void 0 && (p.value = e);
@@ -51342,13 +51346,22 @@ var kF = /* @__PURE__ */ M({
51342
51346
  v,
51343
51347
  () => l.value
51344
51348
  ], () => {
51345
- l.value && w();
51349
+ y.value = {
51350
+ content: e.content,
51351
+ renderType: v.value
51352
+ };
51353
+ let t = l.value;
51354
+ if (v.value === EF.Code || !e.content?.trim()) {
51355
+ O(), t && (t.innerHTML = "");
51356
+ return;
51357
+ }
51358
+ t && D();
51346
51359
  }, {
51347
51360
  immediate: !0,
51348
51361
  deep: !0
51349
51362
  }), q([
51350
51363
  v,
51351
- () => y.value.enableZoom,
51364
+ () => b.value.enableZoom,
51352
51365
  () => l.value
51353
51366
  ], ([e, t], n, r) => {
51354
51367
  let i = l.value;
@@ -51370,17 +51383,17 @@ var kF = /* @__PURE__ */ M({
51370
51383
  v,
51371
51384
  g
51372
51385
  ], () => {
51373
- C();
51386
+ w();
51374
51387
  }, { deep: !0 }), H(() => {
51375
- w.cancel();
51388
+ O();
51376
51389
  }), n({ get nativeElement() {
51377
51390
  return c.value;
51378
- } }), () => e.content ? j("div", B({ ref: c }, S.value, {
51391
+ } }), () => e.content ? j("div", B({ ref: c }, C.value, {
51379
51392
  class: [
51380
51393
  e.prefixCls,
51381
51394
  s.value.classes?.root,
51382
51395
  e.rootClass,
51383
- b.value.root,
51396
+ x.value.root,
51384
51397
  d.value,
51385
51398
  f.value,
51386
51399
  i.class,
@@ -51390,28 +51403,28 @@ var kF = /* @__PURE__ */ M({
51390
51403
  style: [
51391
51404
  s.value.style,
51392
51405
  s.value.styles?.root,
51393
- x.value.root,
51406
+ S.value.root,
51394
51407
  i.style,
51395
51408
  e.style
51396
51409
  ]
51397
51410
  }), [
51398
- L(),
51411
+ ee(),
51399
51412
  j("div", {
51400
51413
  ref: l,
51401
51414
  class: [
51402
51415
  `${e.prefixCls}-graph`,
51403
51416
  v.value === EF.Code && `${e.prefixCls}-graph-hidden`,
51404
- b.value.graph
51417
+ x.value.graph
51405
51418
  ],
51406
- style: x.value.graph,
51407
- onMousedown: E,
51408
- onMousemove: D,
51409
- onMouseup: O,
51410
- onMouseleave: O
51419
+ style: S.value.graph,
51420
+ onMousedown: M,
51421
+ onMousemove: N,
51422
+ onMouseup: P,
51423
+ onMouseleave: P
51411
51424
  }, null),
51412
51425
  v.value === EF.Code ? j("div", {
51413
- class: [`${e.prefixCls}-code`, b.value.code],
51414
- style: x.value.code
51426
+ class: [`${e.prefixCls}-code`, x.value.code],
51427
+ style: S.value.code
51415
51428
  }, [j(SP, B({
51416
51429
  showLineNumbers: !1,
51417
51430
  showLanguage: !1,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@antdv-next/x",
3
- "version": "1.2.3",
3
+ "version": "1.2.4",
4
4
  "license": "MIT",
5
5
  "files": [
6
6
  "dist",