@king-one/form-design 0.0.16 → 0.0.18

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.
Files changed (102) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/es/index.mjs +16 -13
  3. package/dist/es/src/components/base/Carousel.vue.mjs +92 -0
  4. package/dist/es/src/components/base/Carousel.vue2.mjs +4 -0
  5. package/dist/es/src/components/base/json-preview.vue.mjs +215 -151
  6. package/dist/es/src/components/form-material.vue.mjs +168 -96
  7. package/dist/es/src/components/form-panel.vue.mjs +71 -65
  8. package/dist/es/src/components/panel/index.mjs +23 -13
  9. package/dist/es/src/components/panel/panel-item.vue.mjs +29 -29
  10. package/dist/es/src/components/panel/panel-wrapper.mjs +1 -1
  11. package/dist/es/src/components/panel/widget/date-range.vue.mjs +4 -0
  12. package/dist/es/src/components/panel/widget/date-range.vue2.mjs +28 -0
  13. package/dist/es/src/components/panel/widget/date-single.vue.mjs +4 -0
  14. package/dist/es/src/components/panel/widget/date-single.vue2.mjs +28 -0
  15. package/dist/es/src/components/panel/widget/kit.vue.mjs +4 -0
  16. package/dist/es/src/components/panel/widget/kit.vue2.mjs +48 -0
  17. package/dist/es/src/components/panel/widget/object.vue2.mjs +25 -25
  18. package/dist/es/src/components/panel/widget/select.vue2.mjs +3 -3
  19. package/dist/es/src/components/props/form-config.vue.mjs +1 -1
  20. package/dist/es/src/components/props/widget/BaseProps.vue2.mjs +31 -46
  21. package/dist/es/src/components/props/widget/InputNumberProps.vue2.mjs +94 -109
  22. package/dist/es/src/components/props/widget/InputProps.vue2.mjs +49 -64
  23. package/dist/es/src/components/props/widget/OvertimeProps.vue.mjs +4 -0
  24. package/dist/es/src/components/props/widget/OvertimeProps.vue2.mjs +17 -0
  25. package/dist/es/src/components/props/widget/PropsDecorator.mjs +34 -0
  26. package/dist/es/src/components/props/widget/SelectProps.vue.mjs +4 -0
  27. package/dist/es/src/components/props/widget/SelectProps.vue2.mjs +88 -0
  28. package/dist/es/src/components/props/widget/TextareaProps.vue2.mjs +48 -63
  29. package/dist/es/src/components/props/widget/index.mjs +44 -36
  30. package/dist/es/src/config/index.mjs +165 -15
  31. package/dist/es/src/core/Design.mjs +24 -19
  32. package/dist/es/src/core/Field.mjs +1 -1
  33. package/dist/es/src/core/FormSchema.mjs +28 -26
  34. package/dist/es/src/index.mjs +15 -13
  35. package/dist/es/src/plugins/index.mjs +10 -7
  36. package/dist/es/src/plugins/modules/drag-put.mjs +14 -0
  37. package/dist/es/src/utils/debounce.mjs +16 -0
  38. package/dist/es/src/utils/index.mjs +15 -13
  39. package/dist/lib/index.js +1 -1
  40. package/dist/lib/src/components/base/Carousel.vue.js +1 -0
  41. package/dist/lib/src/components/base/Carousel.vue2.js +1 -0
  42. package/dist/lib/src/components/base/json-preview.vue.js +6 -6
  43. package/dist/lib/src/components/form-material.vue.js +10 -1
  44. package/dist/lib/src/components/form-panel.vue.js +2 -2
  45. package/dist/lib/src/components/panel/index.js +1 -1
  46. package/dist/lib/src/components/panel/panel-item.vue.js +1 -1
  47. package/dist/lib/src/components/panel/panel-wrapper.js +1 -1
  48. package/dist/lib/src/components/panel/widget/date-range.vue.js +1 -0
  49. package/dist/lib/src/components/panel/widget/date-range.vue2.js +1 -0
  50. package/dist/lib/src/components/panel/widget/date-single.vue.js +1 -0
  51. package/dist/lib/src/components/panel/widget/date-single.vue2.js +1 -0
  52. package/dist/lib/src/components/panel/widget/kit.vue.js +1 -0
  53. package/dist/lib/src/components/panel/widget/kit.vue2.js +1 -0
  54. package/dist/lib/src/components/panel/widget/object.vue2.js +1 -1
  55. package/dist/lib/src/components/panel/widget/select.vue2.js +1 -1
  56. package/dist/lib/src/components/props/form-config.vue.js +1 -1
  57. package/dist/lib/src/components/props/widget/BaseProps.vue2.js +1 -1
  58. package/dist/lib/src/components/props/widget/InputNumberProps.vue2.js +1 -1
  59. package/dist/lib/src/components/props/widget/InputProps.vue2.js +1 -1
  60. package/dist/lib/src/components/props/widget/OvertimeProps.vue.js +1 -0
  61. package/dist/lib/src/components/props/widget/OvertimeProps.vue2.js +1 -0
  62. package/dist/lib/src/components/props/widget/PropsDecorator.js +1 -0
  63. package/dist/lib/src/components/props/widget/SelectProps.vue.js +1 -0
  64. package/dist/lib/src/components/props/widget/SelectProps.vue2.js +1 -0
  65. package/dist/lib/src/components/props/widget/TextareaProps.vue2.js +1 -1
  66. package/dist/lib/src/components/props/widget/index.js +1 -1
  67. package/dist/lib/src/config/index.js +1 -1
  68. package/dist/lib/src/core/Design.js +1 -1
  69. package/dist/lib/src/core/Field.js +1 -1
  70. package/dist/lib/src/core/FormSchema.js +1 -1
  71. package/dist/lib/src/index.js +1 -1
  72. package/dist/lib/src/plugins/index.js +1 -1
  73. package/dist/lib/src/plugins/modules/drag-put.js +1 -0
  74. package/dist/lib/src/utils/debounce.js +1 -0
  75. package/dist/lib/src/utils/index.js +1 -1
  76. package/dist/theme-chalk/carousel.css +1 -0
  77. package/dist/theme-chalk/icon.css +1 -1
  78. package/dist/theme-chalk/index.css +1 -1
  79. package/dist/theme-chalk/json-preview.css +1 -1
  80. package/dist/theme-chalk/kit-panel.css +1 -0
  81. package/dist/theme-chalk/material.css +1 -1
  82. package/dist/theme-chalk/panel.css +1 -1
  83. package/dist/types/src/components/base/Carousel.vue.d.ts +65 -0
  84. package/dist/types/src/components/panel/widget/date-range.vue.d.ts +8 -0
  85. package/dist/types/src/components/panel/widget/date-single.vue.d.ts +8 -0
  86. package/dist/types/src/components/panel/widget/kit.vue.d.ts +8 -0
  87. package/dist/types/src/components/props/widget/OvertimeProps.vue.d.ts +3 -0
  88. package/dist/types/src/components/props/widget/PropsDecorator.d.ts +3 -0
  89. package/dist/types/src/components/props/widget/SelectProps.vue.d.ts +3 -0
  90. package/dist/types/src/components/props/widget/index.d.ts +1 -9
  91. package/dist/types/src/components/types.d.ts +4 -3
  92. package/dist/types/src/config/index.d.ts +2 -1
  93. package/dist/types/src/core/Design.d.ts +93 -41
  94. package/dist/types/src/core/FormSchema.d.ts +22 -10
  95. package/dist/types/src/hooks/usePolling.d.ts +5 -0
  96. package/dist/types/src/index.d.ts +1 -0
  97. package/dist/types/src/plugins/index.d.ts +3 -1
  98. package/dist/types/src/plugins/modules/drag-put.d.ts +5 -0
  99. package/dist/types/src/types.d.ts +29 -6
  100. package/dist/types/src/utils/debounce.d.ts +10 -0
  101. package/dist/types/src/utils/index.d.ts +1 -0
  102. package/package.json +2 -2
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @king-one/form-design
2
2
 
3
+ ## 0.0.18
4
+
5
+ ### Patch Changes
6
+
7
+ - feat: 增加一部分功能
8
+
9
+ ## 0.0.17
10
+
11
+ ### Patch Changes
12
+
13
+ - style: 修改组件样式
14
+
3
15
  ## 0.0.16
4
16
 
5
17
  ### Patch Changes
package/dist/es/index.mjs CHANGED
@@ -1,20 +1,23 @@
1
1
  import "./src/index.mjs";
2
- import { default as t } from "./src/components/panel/panel-item.vue.mjs";
3
- import { useInjectDesignContext as a } from "./src/context/design.mjs";
4
- import { default as f } from "./src/components/form-desgin.mjs";
2
+ import { default as t } from "./src/components/base/Carousel.vue.mjs";
3
+ import { default as a } from "./src/components/panel/panel-item.vue.mjs";
4
+ import { useInjectDesignContext as f } from "./src/context/design.mjs";
5
+ import { default as p } from "./src/components/form-desgin.mjs";
5
6
  import { CreateFormDesign as i } from "./src/core/index.mjs";
6
- import { default as p } from "./src/components/props/form-config.vue.mjs";
7
- import { BaseSchema as d, ExtendSchema as l, LayoutSchema as u } from "./src/config/index.mjs";
8
- import { onDesignFieldChange as F, onDesignInit as c } from "./src/effects/onEffects.mjs";
7
+ import { default as l } from "./src/components/props/form-config.vue.mjs";
8
+ import { BaseSchema as d, ExtendSchema as c, LayoutSchema as h, tempSchema as C } from "./src/config/index.mjs";
9
+ import { onDesignFieldChange as F, onDesignInit as S } from "./src/effects/onEffects.mjs";
9
10
  export {
10
11
  d as BaseSchema,
12
+ t as Carousel,
11
13
  i as CreateFormDesign,
12
- l as ExtendSchema,
13
- p as FormConfig,
14
- f as FormDesign,
15
- t as FormPanelItem,
16
- u as LayoutSchema,
14
+ c as ExtendSchema,
15
+ l as FormConfig,
16
+ p as FormDesign,
17
+ a as FormPanelItem,
18
+ h as LayoutSchema,
17
19
  F as onDesignFieldChange,
18
- c as onDesignInit,
19
- a as useInjectDesignContext
20
+ S as onDesignInit,
21
+ C as tempSchema,
22
+ f as useInjectDesignContext
20
23
  };
@@ -0,0 +1,92 @@
1
+ import { defineComponent as C, ref as s, watch as V, nextTick as c, computed as z, onMounted as _, onUpdated as S, openBlock as T, createElementBlock as x, normalizeClass as A, unref as B, createElementVNode as E, normalizeStyle as N, renderSlot as $ } from "vue";
2
+ import "../../internal.mjs";
3
+ import { useNamespace as b } from "../../hooks/use-namespace/index.mjs";
4
+ const D = /* @__PURE__ */ C({
5
+ __name: "Carousel",
6
+ props: {
7
+ // Allows optional v-model binding or just internal state
8
+ modelValue: {
9
+ type: Number,
10
+ default: 0
11
+ },
12
+ isAnimating: {
13
+ type: Boolean,
14
+ default: !0
15
+ },
16
+ direction: {
17
+ type: String,
18
+ default: "horizontal",
19
+ validator: (o) => ["horizontal", "vertical"].includes(o)
20
+ }
21
+ },
22
+ emits: ["update:modelValue", "afterChange"],
23
+ setup(o, { expose: f, emit: m }) {
24
+ const n = o, r = m, { b: d } = b("carousel"), l = s(), t = s(n.modelValue), u = s(0);
25
+ function a() {
26
+ l.value && (u.value = l.value.children.length);
27
+ }
28
+ V(() => n.modelValue, (e) => {
29
+ e !== t.value && (t.value = e);
30
+ });
31
+ function i(e) {
32
+ e < 0 || e >= u.value || (t.value = e, r("update:modelValue", e), n.isAnimating || r("afterChange", e));
33
+ }
34
+ function p(e) {
35
+ i(e);
36
+ }
37
+ function v() {
38
+ c(() => {
39
+ a(), t.value < u.value - 1 && i(t.value + 1);
40
+ });
41
+ }
42
+ function h() {
43
+ c(() => {
44
+ a(), t.value > 0 && i(t.value - 1);
45
+ });
46
+ }
47
+ function g() {
48
+ r("afterChange", t.value);
49
+ }
50
+ const k = z(() => {
51
+ const e = -t.value * 100;
52
+ return {
53
+ transform: n.direction === "horizontal" ? `translateX(${e}%)` : `translateY(${e}%)`,
54
+ transition: n.isAnimating ? "transform 0.3s ease-in-out" : "none",
55
+ flexDirection: n.direction === "horizontal" ? "row" : "column"
56
+ };
57
+ });
58
+ return f({
59
+ next: v,
60
+ prev: h,
61
+ goTo: p,
62
+ currentIndex: t
63
+ }), _(a), S(a), (e, y) => (T(), x(
64
+ "div",
65
+ {
66
+ class: A(B(d)())
67
+ },
68
+ [
69
+ E(
70
+ "div",
71
+ {
72
+ ref_key: "trackRef",
73
+ ref: l,
74
+ class: "carousel-track",
75
+ style: N(k.value),
76
+ onTransitionend: g
77
+ },
78
+ [
79
+ $(e.$slots, "default")
80
+ ],
81
+ 36
82
+ /* STYLE, NEED_HYDRATION */
83
+ )
84
+ ],
85
+ 2
86
+ /* CLASS */
87
+ ));
88
+ }
89
+ });
90
+ export {
91
+ D as default
92
+ };
@@ -0,0 +1,4 @@
1
+ import f from "./Carousel.vue.mjs";
2
+ export {
3
+ f as default
4
+ };
@@ -1,9 +1,9 @@
1
- import { ref as B, computed as z, onMounted as J, watch as T, openBlock as V, createElementBlock as W, normalizeClass as G, unref as I, createElementVNode as j, createCommentVNode as K } from "vue";
2
- import S from "highlight.js/lib/core";
3
- import P from "highlight.js/lib/languages/json";
1
+ import { ref as I, computed as J, onMounted as T, watch as V, openBlock as W, createElementBlock as K, normalizeClass as P, unref as Q, createElementVNode as $, createCommentVNode as U } from "vue";
2
+ import x from "highlight.js/lib/core";
3
+ import X from "highlight.js/lib/languages/json";
4
4
  import "../../internal.mjs";
5
- import { useNamespace as Q } from "../../hooks/use-namespace/index.mjs";
6
- const U = { class: "code-container" }, nt = {
5
+ import { useNamespace as Y } from "../../hooks/use-namespace/index.mjs";
6
+ const Z = { class: "code-container" }, re = {
7
7
  __name: "json-preview",
8
8
  props: {
9
9
  data: {
@@ -14,242 +14,306 @@ const U = { class: "code-container" }, nt = {
14
14
  type: Number,
15
15
  default: 2
16
16
  },
17
+ // 新增:控制初始是否折叠所有可折叠块
17
18
  defaultFoldCollapsed: {
18
19
  type: Boolean,
19
20
  default: !1
20
21
  }
21
22
  },
22
- setup(E) {
23
- const p = E, { b: $ } = Q("json-preview");
24
- let A = null, N = !1, h = null;
25
- async function R() {
26
- N || (S.registerLanguage("json", P), A = S, N = !0);
23
+ setup(L) {
24
+ const y = L;
25
+ let m = null;
26
+ const { b: R } = Y("json-preview");
27
+ let S = null, w = !1;
28
+ async function k() {
29
+ w || (x.registerLanguage("json", X), S = x, w = !0);
27
30
  }
28
- const b = B(null);
29
- let y = [];
30
- const w = z(() => {
31
+ const h = I(null);
32
+ let b = [];
33
+ const C = J(() => {
31
34
  try {
32
- const n = p.data;
35
+ const n = y.data;
33
36
  if (typeof n == "string")
34
37
  try {
35
- const c = JSON.parse(n);
36
- return JSON.stringify(c, null, p.indent);
38
+ const i = JSON.parse(n);
39
+ return JSON.stringify(i, null, y.indent);
37
40
  } catch {
38
41
  return n;
39
42
  }
40
- return JSON.stringify(n, null, p.indent);
43
+ return JSON.stringify(n, null, y.indent);
41
44
  } catch {
42
- return String(p.data);
45
+ return String(y.data);
43
46
  }
44
47
  });
45
- async function v() {
46
- const n = b.value;
48
+ async function E() {
49
+ const n = h.value;
47
50
  if (!n)
48
51
  return;
49
- await R();
50
- const c = String(w.value).split(/\r\n|\r|\n/);
51
- y = c;
52
- const s = L(c, p.indent);
53
- n.innerHTML = D(c, s), h = null, _(n, s), H(n), F(n), p.defaultFoldCollapsed ? q() : x();
52
+ await k();
53
+ const i = String(C.value).split(/\r\n|\r|\n/);
54
+ b = i;
55
+ const a = H(i, y.indent);
56
+ n.innerHTML = F(i, a), m = null, B(n, a), O(n), z(n), y.defaultFoldCollapsed ? D() : _();
54
57
  }
55
- J(() => {
56
- v();
57
- }), T(w, () => {
58
- v();
58
+ T(() => {
59
+ E();
60
+ }), V(C, () => {
61
+ E();
59
62
  });
60
- function q() {
61
- const n = b.value;
63
+ function D() {
64
+ const n = h.value;
62
65
  if (!n)
63
66
  return;
64
- const c = n.querySelectorAll(".fold-toggle"), s = (l) => n.querySelector(`tr[data-line="${l}"]`), u = (l, a) => {
65
- for (let t = l + 1; t <= a - 1; t++) {
66
- const e = s(t);
67
+ const i = n.querySelectorAll(".fold-toggle"), a = (r) => n.querySelector(`tr[data-line="${r}"]`), f = (r, l) => {
68
+ for (let t = r + 1; t <= l - 1; t++) {
69
+ const e = a(t);
67
70
  e && (e.style.display = "none");
68
71
  }
69
- }, d = (l, a) => {
70
- if (!Array.isArray(y))
72
+ }, d = (r, l) => {
73
+ if (!Array.isArray(b))
71
74
  return !1;
72
- for (let t = l + 1; t <= a - 1; t++) {
73
- const e = (y[t - 1] || "").trim();
75
+ for (let t = r + 1; t <= l - 1; t++) {
76
+ const e = (b[t - 1] || "").trim();
74
77
  if (e && e !== "}" && e !== "]")
75
78
  return !0;
76
79
  }
77
80
  return !1;
78
- }, f = (l) => {
79
- const a = s(l);
80
- return a ? a.querySelector("td.hljs-ln-code") : null;
81
- }, i = (l, a) => {
82
- const t = f(l);
81
+ }, g = (r) => {
82
+ const l = a(r);
83
+ return l ? l.querySelector("td.hljs-ln-code") : null;
84
+ }, c = (r, l) => {
85
+ const t = g(r);
83
86
  if (!t)
84
87
  return;
85
88
  let e = t.querySelector(".fold-ellipsis");
86
- a ? (e || (e = document.createElement("span"), e.className = "fold-ellipsis", e.textContent = "…", t.appendChild(e)), e.style.display = "inline") : e && (e.style.display = "none");
89
+ l ? (e || (e = document.createElement("span"), e.className = "fold-ellipsis", e.textContent = "…", t.appendChild(e)), e.style.display = "inline") : e && (e.style.display = "none");
87
90
  };
88
- c.forEach((l) => {
89
- const a = Number(l.getAttribute("data-start")), t = Number(l.getAttribute("data-end"));
90
- l.setAttribute("data-collapsed", "true"), l.textContent = "▸", u(a, t), d(a, t) && i(a, !0);
91
+ i.forEach((r) => {
92
+ const l = Number(r.getAttribute("data-start")), t = Number(r.getAttribute("data-end"));
93
+ r.setAttribute("data-collapsed", "true"), r.textContent = "▸", f(l, t), d(l, t) && c(l, !0);
91
94
  });
92
95
  }
93
- function x() {
94
- const n = b.value;
96
+ function _() {
97
+ const n = h.value;
95
98
  if (!n)
96
99
  return;
97
- const c = n.querySelectorAll(".fold-toggle"), s = (i) => n.querySelector(`tr[data-line="${i}"]`), u = (i, l) => {
98
- for (let a = i + 1; a <= l - 1; a++) {
99
- const t = s(a);
100
+ const i = n.querySelectorAll(".fold-toggle"), a = (c) => n.querySelector(`tr[data-line="${c}"]`), f = (c, r) => {
101
+ for (let l = c + 1; l <= r - 1; l++) {
102
+ const t = a(l);
100
103
  t && (t.style.display = "");
101
104
  }
102
- }, d = (i) => {
103
- const l = s(i);
104
- return l ? l.querySelector("td.hljs-ln-code") : null;
105
- }, f = (i, l) => {
106
- const a = d(i);
107
- if (!a)
105
+ }, d = (c) => {
106
+ const r = a(c);
107
+ return r ? r.querySelector("td.hljs-ln-code") : null;
108
+ }, g = (c, r) => {
109
+ const l = d(c);
110
+ if (!l)
108
111
  return;
109
- let t = a.querySelector(".fold-ellipsis");
110
- l ? (t || (t = document.createElement("span"), t.className = "fold-ellipsis", t.textContent = "…", a.appendChild(t)), t.style.display = "inline") : t && (t.style.display = "none");
112
+ let t = l.querySelector(".fold-ellipsis");
113
+ r ? (t || (t = document.createElement("span"), t.className = "fold-ellipsis", t.textContent = "…", l.appendChild(t)), t.style.display = "inline") : t && (t.style.display = "none");
111
114
  };
112
- c.forEach((i) => {
113
- const l = Number(i.getAttribute("data-start")), a = Number(i.getAttribute("data-end"));
114
- i.setAttribute("data-collapsed", "false"), i.textContent = "▾", u(l, a), f(l, !1), f(a, !1);
115
+ i.forEach((c) => {
116
+ const r = Number(c.getAttribute("data-start")), l = Number(c.getAttribute("data-end"));
117
+ c.setAttribute("data-collapsed", "false"), c.textContent = "▾", f(r, l), g(r, !1), g(l, !1);
115
118
  });
116
119
  }
117
- function L(n) {
118
- const c = [], s = [];
120
+ function H(n) {
121
+ const i = [], a = [];
119
122
  for (let d = 0; d < n.length; d++) {
120
- const i = n[d].trim(), l = i.charAt(i.length - 1), a = i.charAt(0);
121
- if (l === "{" || l === "[") {
122
- if (i.endsWith("{}") || i.endsWith("[]"))
123
+ const c = n[d].trim(), r = c.charAt(c.length - 1), l = c.charAt(0);
124
+ if (r === "{" || r === "[") {
125
+ if (c.endsWith("{}") || c.endsWith("[]"))
123
126
  continue;
124
- s.push({ type: l, start: d + 1 });
127
+ a.push({ type: r, start: d + 1 });
125
128
  }
126
- if (a === "}" || a === "]") {
127
- const t = a;
128
- for (let e = s.length - 1; e >= 0; e--)
129
- if (s[e].type === "{" && t === "}" || s[e].type === "[" && t === "]") {
130
- const r = s[e].start, o = d + 1;
131
- s.splice(e, 1), o > r + 1 && c.push({ start: r, end: o, type: t });
129
+ if (l === "}" || l === "]") {
130
+ const t = l;
131
+ for (let e = a.length - 1; e >= 0; e--)
132
+ if (a[e].type === "{" && t === "}" || a[e].type === "[" && t === "]") {
133
+ const o = a[e].start, s = d + 1;
134
+ a.splice(e, 1), s > o + 1 && i.push({ start: o, end: s, type: t });
132
135
  break;
133
136
  }
134
137
  }
135
138
  }
136
- const u = {};
137
- for (const d of c) u[d.start] = d;
138
- return u;
139
+ const f = {};
140
+ for (const d of i) f[d.start] = d;
141
+ return f;
139
142
  }
140
- function D(n, c) {
141
- let s = '<table class="hljs-ln">';
142
- for (let u = 0; u < n.length; u++) {
143
- const d = u + 1, f = n[u], i = f.length > 0 ? f : " ", l = i.match(/^[\t ]*/), t = (l ? l[0] : "").replace(/\t/g, " ".repeat(p.indent)), e = Math.floor(t.length / p.indent), r = A ? A.highlight(i, { language: "json" }).value : k(i), o = c[d], g = o ? `<span class="fold-toggle" data-start="${d}" data-end="${o.end}" data-collapsed="${p.defaultFoldCollapsed ? "true" : "false"}">${p.defaultFoldCollapsed ? "▸" : "▾"}</span>` : "";
144
- let m = "";
145
- for (let C = 0; C < e; C++)
146
- m += `<i class="indent-guide" style="--guide-left: calc(var(--indent-char, 1ch) * var(--indent-size) * ${C})"></i>`;
147
- const M = `<span class="indent-guides" style="--indent-size:${p.indent}">${m}</span>`, O = `<span class="fold-gutter">${g || "&nbsp;"}</span>`;
148
- s += `
149
- <tr class="hljs-ln-line" data-line="${d}"><td class="hljs-ln-numbers" data-line-number="${d}"><div class="hljs-ln-n" data-line-number="${d}"></div></td><td class="hljs-ln-code" data-line-number="${d}">${O}<span class="line-content">${M}${r}</span></td></tr>`;
143
+ function F(n, i) {
144
+ let a = '<table class="hljs-ln">';
145
+ for (let f = 0; f < n.length; f++) {
146
+ const d = f + 1, g = n[f], c = g.length > 0 ? g : " ", r = c.match(/^[\t ]*/), t = (r ? r[0] : "").replace(/\t/g, " ".repeat(y.indent)), e = Math.floor(t.length / y.indent), o = S ? S.highlight(c, { language: "json" }).value : M(c), s = i[d], u = s ? `<span class="fold-toggle" data-start="${d}" data-end="${s.end}" data-collapsed="${y.defaultFoldCollapsed ? "true" : "false"}">${y.defaultFoldCollapsed ? "▸" : "▾"}</span>` : "";
147
+ let p = "";
148
+ for (let v = 0; v < e; v++)
149
+ p += `<i class="indent-guide" data-index="${v}" style="--guide-left: calc(var(--indent-char, 1ch) * var(--indent-size) * ${v})"></i>`;
150
+ const N = `<span class="indent-guides" style="--indent-size:${y.indent}">${p}</span>`, G = `<span class="fold-gutter">${u || "&nbsp;"}</span>`;
151
+ a += `
152
+ <tr class="hljs-ln-line" data-line="${d}"><td class="hljs-ln-numbers" data-line-number="${d}"><div class="hljs-ln-n" data-line-number="${d}"></div></td><td class="hljs-ln-code" data-line-number="${d}">${G}<span class="line-content">${N}${o}</span></td></tr>`;
150
153
  }
151
- return s += `
152
- </table>`, s;
154
+ return a += `
155
+ </table>`, a;
153
156
  }
154
- function _(n) {
155
- const c = n.querySelectorAll(".fold-toggle"), s = (t) => n.querySelector(`tr[data-line="${t}"]`), u = (t) => {
156
- const e = s(t);
157
- return e ? e.querySelector("td.hljs-ln-code") : null;
158
- }, d = (t, e) => {
159
- for (let r = t + 1; r <= e - 1; r++) {
160
- const o = s(r);
161
- o && (o.style.display = "none");
157
+ function B(n) {
158
+ const i = n.querySelectorAll(".fold-toggle"), a = (e) => n.querySelector(`tr[data-line="${e}"]`), f = (e) => {
159
+ const o = a(e);
160
+ return o ? o.querySelector("td.hljs-ln-code") : null;
161
+ }, d = (e, o) => {
162
+ for (let s = e + 1; s <= o - 1; s++) {
163
+ const u = a(s);
164
+ u && (u.style.display = "none");
162
165
  }
163
- }, f = (t, e) => {
164
- for (let r = t + 1; r <= e - 1; r++) {
165
- const o = s(r);
166
- o && (o.style.display = "");
166
+ }, g = (e, o) => {
167
+ for (let s = e + 1; s <= o - 1; s++) {
168
+ const u = a(s);
169
+ u && (u.style.display = "");
167
170
  }
168
- }, i = (t, e) => {
169
- if (!Array.isArray(y))
171
+ }, c = (e, o) => {
172
+ if (!Array.isArray(b))
170
173
  return !1;
171
- for (let r = t + 1; r <= e - 1; r++) {
172
- const o = (y[r - 1] || "").trim();
173
- if (o && o !== "}" && o !== "]")
174
+ for (let s = e + 1; s <= o - 1; s++) {
175
+ const u = (b[s - 1] || "").trim();
176
+ if (u && u !== "}" && u !== "]")
174
177
  return !0;
175
178
  }
176
179
  return !1;
177
- }, l = (t, e) => {
178
- const r = u(t);
179
- if (!r)
180
+ }, r = (e, o) => {
181
+ const s = f(e);
182
+ if (!s)
180
183
  return;
181
- let o = r.querySelector(".fold-ellipsis");
182
- e ? (o || (o = document.createElement("span"), o.className = "fold-ellipsis", o.textContent = "…", r.appendChild(o)), o.style.display = "inline") : o && (o.style.display = "none");
183
- }, a = (t, e) => {
184
- for (let r = t + 1; r <= e - 1; r++) {
185
- const o = n.querySelector(`.fold-toggle[data-start="${r}"]`);
186
- if (o && o.getAttribute("data-collapsed") === "true") {
187
- const g = Number(o.getAttribute("data-start")), m = Number(o.getAttribute("data-end"));
188
- d(g, m), i(g, m) && l(g, !0);
184
+ let u = s.querySelector(".fold-ellipsis");
185
+ o ? (u || (u = document.createElement("span"), u.className = "fold-ellipsis", u.textContent = "…", s.appendChild(u)), u.style.display = "inline") : u && (u.style.display = "none");
186
+ }, l = (e, o) => {
187
+ for (let s = e + 1; s <= o - 1; s++) {
188
+ const u = n.querySelector(`.fold-toggle[data-start="${s}"]`);
189
+ if (u && u.getAttribute("data-collapsed") === "true") {
190
+ const p = Number(u.getAttribute("data-start")), N = Number(u.getAttribute("data-end"));
191
+ d(p, N), c(p, N) && r(p, !0);
189
192
  }
190
193
  }
194
+ }, t = (e, o) => {
195
+ if (!m)
196
+ return;
197
+ const s = Number(m.getAttribute("data-line"));
198
+ if (!Number.isNaN(s) && s > e && s < o) {
199
+ m.classList.remove("selected");
200
+ const u = m.querySelector(".indent-guides");
201
+ u && u.classList.remove("selected"), m = null;
202
+ }
191
203
  };
192
- c.forEach((t) => {
193
- t.addEventListener("click", () => {
194
- const e = Number(t.getAttribute("data-start")), r = Number(t.getAttribute("data-end")), g = !(t.getAttribute("data-collapsed") === "true");
195
- t.setAttribute("data-collapsed", g ? "true" : "false"), t.textContent = g ? "▸" : "▾", g ? (d(e, r), i(e, r) && l(e, !0)) : (f(e, r), l(e, !1), l(r, !1), a(e, r));
204
+ i.forEach((e) => {
205
+ e.addEventListener("click", () => {
206
+ const o = Number(e.getAttribute("data-start")), s = Number(e.getAttribute("data-end")), p = !(e.getAttribute("data-collapsed") === "true");
207
+ e.setAttribute("data-collapsed", p ? "true" : "false"), e.textContent = p ? "▸" : "▾", p ? (d(o, s), t(o, s), c(o, s) && r(o, !0)) : (g(o, s), r(o, !1), r(s, !1), l(o, s)), j(n), q(n);
196
208
  });
197
209
  });
198
210
  }
199
- function k(n) {
200
- const c = { "&": "&amp;", "<": "&lt;", ">": "&gt;", '"': "&quot;", "'": "&#39;" };
201
- return String(n).replace(/[&<>"']/g, (s) => c[s]);
211
+ function M(n) {
212
+ const i = { "&": "&amp;", "<": "&lt;", ">": "&gt;", '"': "&quot;", "'": "&#39;" };
213
+ return String(n).replace(/[&<>"']/g, (a) => i[a]);
202
214
  }
203
- function H(n) {
204
- n.getAttribute("data-copy-init") !== "true" && (n.setAttribute("data-copy-init", "true"), n.addEventListener("copy", (c) => {
205
- const s = window.getSelection();
206
- if (!s || s.rangeCount === 0)
215
+ function O(n) {
216
+ n.getAttribute("data-copy-init") !== "true" && (n.setAttribute("data-copy-init", "true"), n.addEventListener("copy", (i) => {
217
+ const a = window.getSelection();
218
+ if (!a || a.rangeCount === 0)
207
219
  return;
208
- const u = s.getRangeAt(0), d = (m) => m && (m.nodeType === 3 ? m.parentElement : m), f = d(u.startContainer), i = d(u.endContainer), l = f ? f.closest("tr.hljs-ln-line") : null, a = i ? i.closest("tr.hljs-ln-line") : null;
209
- if (!l || !a || s.isCollapsed) {
210
- c.clipboardData.setData("text/plain", y.join(`
211
- `)), c.preventDefault();
220
+ const f = a.getRangeAt(0), d = (p) => p && (p.nodeType === 3 ? p.parentElement : p), g = d(f.startContainer), c = d(f.endContainer), r = g ? g.closest("tr.hljs-ln-line") : null, l = c ? c.closest("tr.hljs-ln-line") : null;
221
+ if (!r || !l || a.isCollapsed) {
222
+ i.clipboardData.setData("text/plain", b.join(`
223
+ `)), i.preventDefault();
212
224
  return;
213
225
  }
214
- const t = Number(l.getAttribute("data-line")), e = Number(a.getAttribute("data-line"));
226
+ const t = Number(r.getAttribute("data-line")), e = Number(l.getAttribute("data-line"));
215
227
  if (Number.isNaN(t) || Number.isNaN(e)) {
216
- c.clipboardData.setData("text/plain", y.join(`
217
- `)), c.preventDefault();
228
+ i.clipboardData.setData("text/plain", b.join(`
229
+ `)), i.preventDefault();
218
230
  return;
219
231
  }
220
- const r = Math.min(t, e), o = Math.max(t, e), g = y.slice(r - 1, o).join(`
232
+ const o = Math.min(t, e), s = Math.max(t, e), u = b.slice(o - 1, s).join(`
221
233
  `);
222
- c.clipboardData.setData("text/plain", g), c.preventDefault();
234
+ i.clipboardData.setData("text/plain", u), i.preventDefault();
223
235
  }));
224
236
  }
225
- function F(n) {
226
- n.getAttribute("data-select-init") !== "true" && (n.setAttribute("data-select-init", "true"), n.addEventListener("click", (c) => {
227
- const s = c.target;
228
- if (!(s instanceof Element) || s.closest(".fold-toggle"))
237
+ function A(n) {
238
+ return n.querySelectorAll(".indent-guides .indent-guide").length;
239
+ }
240
+ function j(n) {
241
+ n.querySelectorAll(".indent-guide.active-guide").forEach((i) => i.classList.remove("active-guide"));
242
+ }
243
+ function q(n) {
244
+ if (!m)
245
+ return;
246
+ const i = Number(m.getAttribute("data-line")), a = A(m);
247
+ if (a < 1)
248
+ return;
249
+ const f = a - 1;
250
+ let d = null, g = null;
251
+ const c = Array.from(n.querySelectorAll(".fold-toggle"));
252
+ for (const l of c) {
253
+ const t = Number(l.getAttribute("data-start")), e = Number(l.getAttribute("data-end"));
254
+ !Number.isNaN(t) && !Number.isNaN(e) && t < i && i < e && (d === null || t > d) && (d = t, g = e);
255
+ }
256
+ const r = Array.from(n.querySelectorAll("tr.hljs-ln-line"));
257
+ for (let l = r.length - 1; l >= 0; l--) {
258
+ const t = r[l], e = Number(t.getAttribute("data-line"));
259
+ if (!(e >= i) && t.style.display !== "none")
260
+ if (d !== null) {
261
+ if (e <= d)
262
+ break;
263
+ if (A(t) > a) {
264
+ const s = t.querySelector(`.indent-guides .indent-guide[data-index="${f}"]`);
265
+ s && s.classList.add("active-guide");
266
+ }
267
+ } else {
268
+ if (A(t) <= a)
269
+ break;
270
+ const s = t.querySelector(`.indent-guides .indent-guide[data-index="${f}"]`);
271
+ s && s.classList.add("active-guide");
272
+ }
273
+ }
274
+ for (const l of r) {
275
+ const t = Number(l.getAttribute("data-line"));
276
+ if (t <= i || l.style.display === "none")
277
+ continue;
278
+ if (g !== null && t >= g)
279
+ break;
280
+ const e = A(l);
281
+ if (g === null && e <= a)
282
+ break;
283
+ if (e > a) {
284
+ const o = l.querySelector(`.indent-guides .indent-guide[data-index="${f}"]`);
285
+ o && o.classList.add("active-guide");
286
+ }
287
+ }
288
+ }
289
+ function z(n) {
290
+ n.getAttribute("data-select-init") !== "true" && (n.setAttribute("data-select-init", "true"), n.addEventListener("click", (i) => {
291
+ const a = i.target;
292
+ if (!(a instanceof Element) || a.closest(".fold-toggle"))
229
293
  return;
230
- const u = s.closest("tr.hljs-ln-line");
231
- u && (h && h !== u && h.classList.remove("selected"), u.classList.add("selected"), h = u);
294
+ const f = a.closest("tr.hljs-ln-line");
295
+ f && (m && m !== f && m.classList.remove("selected"), f.classList.add("selected"), m = f, j(n), q(n));
232
296
  }));
233
297
  }
234
- return (n, c) => (V(), W(
298
+ return (n, i) => (W(), K(
235
299
  "div",
236
300
  {
237
- class: G(I($)())
301
+ class: P(Q(R)())
238
302
  },
239
303
  [
240
- j("div", U, [
241
- j(
304
+ $("div", Z, [
305
+ $(
242
306
  "pre",
243
307
  {
244
308
  ref_key: "preRef",
245
- ref: b,
309
+ ref: h,
246
310
  class: "hljs"
247
311
  },
248
312
  null,
249
313
  512
250
314
  /* NEED_PATCH */
251
315
  ),
252
- K(" 去掉 fade-mask 与动态高度样式 ")
316
+ U(" 去掉 fade-mask 与动态高度样式 ")
253
317
  ])
254
318
  ],
255
319
  2
@@ -258,5 +322,5 @@ const U = { class: "code-container" }, nt = {
258
322
  }
259
323
  };
260
324
  export {
261
- nt as default
325
+ re as default
262
326
  };