dynamicformdjx 0.4.4 → 0.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.mjs CHANGED
@@ -1,7 +1,7 @@
1
- import { defineComponent as O, ref as R, watch as L, toRaw as p, createVNode as s, createTextVNode as f, Fragment as k, nextTick as M, shallowReactive as D, unref as H, isRef as N } from "vue";
2
- import { t as B, r as j, f as $, p as E, s as z, e as K } from "./index-B7xg-BCF.js";
3
- import { O as Y, g as Z } from "./index-B7xg-BCF.js";
4
- const P = /* @__PURE__ */ O({
1
+ import { defineComponent as R, ref as I, watch as j, toRaw as L, createVNode as t, createTextVNode as w, Fragment as B, nextTick as D, onMounted as $, onBeforeUnmount as M, computed as O, reactive as P } from "vue";
2
+ import { t as F, r as H, f as V, p as z, s as Y, g as q, a as E, b as _ } from "./index-BQKYL550.js";
3
+ import { D as re, O as ue, i as oe, h as ie, j as se, k as ce, c as de, e as fe, u as ve, d as me } from "./index-BQKYL550.js";
4
+ const K = /* @__PURE__ */ R({
5
5
  name: "DynamicInput",
6
6
  props: {
7
7
  size: {
@@ -15,7 +15,7 @@ const P = /* @__PURE__ */ O({
15
15
  },
16
16
  randomFun: {
17
17
  type: Function,
18
- default: (l) => `${Date.now()}_${l ?? 0}`
18
+ default: (e) => `${Date.now()}_${e ?? 0}`
19
19
  },
20
20
  btnConfigs: {
21
21
  type: Object
@@ -32,148 +32,148 @@ const P = /* @__PURE__ */ O({
32
32
  }
33
33
  },
34
34
  emits: {
35
- "update:modelValue": (l) => !0,
35
+ "update:modelValue": (e) => !0,
36
36
  onReset: () => !0,
37
- onMerge: (l, i) => !0
37
+ onMerge: (e, o) => !0
38
38
  },
39
39
  slots: Object,
40
- setup(l, {
41
- emit: i,
42
- expose: I,
43
- slots: r
40
+ setup(e, {
41
+ emit: o,
42
+ expose: y,
43
+ slots: l
44
44
  }) {
45
- const b = {
45
+ const v = {
46
46
  resetTxt: "重置",
47
47
  newTxt: "添加项",
48
48
  mergeTxt: "合并",
49
- ...l.btnConfigs
50
- }, m = {
49
+ ...e.btnConfigs
50
+ }, c = {
51
51
  hideReset: !1,
52
52
  maxHeight: "300px",
53
53
  autoScroll: !0,
54
54
  allowFilter: !0,
55
55
  hideArrayBtn: !1,
56
56
  hideNumberBtn: !1,
57
- ...l.configs
58
- }, y = {
57
+ ...e.configs
58
+ }, m = {
59
59
  arraySplitSymbol: ",",
60
- ...l.dyListConfigs
61
- }, v = l.size, c = R(B(l.modelValue, l.randomFun, y.arraySplitSymbol)), g = R(null);
62
- L(c, (t) => {
63
- if (!l.isController) return;
64
- const u = j(t, y.arraySplitSymbol);
65
- i("update:modelValue", u), i("onMerge", u, p(c.value));
60
+ ...e.dyListConfigs
61
+ }, h = e.size, a = I(F(e.modelValue, e.randomFun, m.arraySplitSymbol)), g = I(null);
62
+ j(a, (r) => {
63
+ if (!e.isController) return;
64
+ const S = H(r, m.arraySplitSymbol);
65
+ o("update:modelValue", S), o("onMerge", S, L(a.value));
66
66
  }, {
67
67
  deep: !0
68
- }), I({
69
- onSet: (t) => {
70
- c.value = B(t ?? l.modelValue, l.randomFun, y.arraySplitSymbol);
68
+ }), y({
69
+ onSet: (r) => {
70
+ a.value = F(r ?? e.modelValue, e.randomFun, m.arraySplitSymbol);
71
71
  },
72
- getResult: (t = "res") => t === "ori" ? p(c.value) : j(c.value, y.arraySplitSymbol)
72
+ getResult: (r = "res") => r === "ori" ? L(a.value) : H(a.value, m.arraySplitSymbol)
73
73
  });
74
- const d = () => c.value.push({
75
- rId: l.randomFun(),
74
+ const f = () => a.value.push({
75
+ rId: e.randomFun(),
76
76
  key: "",
77
77
  value: ""
78
- }), A = () => {
79
- c.value = B(l.modelValue, l.randomFun, y.arraySplitSymbol), i("onReset");
80
- }, w = () => {
81
- c.value.sort((u, e) => +u.rId - +e.rId);
82
- const t = j(c.value, y.arraySplitSymbol);
83
- i("update:modelValue", t), i("onMerge", t, p(c.value)), c.value = B(t, l.randomFun, y.arraySplitSymbol);
78
+ }), T = () => {
79
+ a.value = F(e.modelValue, e.randomFun, m.arraySplitSymbol), o("onReset");
80
+ }, A = () => {
81
+ a.value.sort((S, i) => +S.rId - +i.rId);
82
+ const r = H(a.value, m.arraySplitSymbol);
83
+ o("update:modelValue", r), o("onMerge", r, L(a.value)), a.value = F(r, e.randomFun, m.arraySplitSymbol);
84
84
  };
85
- return () => s("div", {
86
- class: `dynamicForm ${v} ${l.dyCls}`
87
- }, [s("div", {
88
- class: `dyFormList ${c.value.length ? "" : "noList"}`,
85
+ return () => t("div", {
86
+ class: `dynamicForm ${h} ${e.dyCls}`
87
+ }, [t("div", {
88
+ class: `dyFormList ${a.value.length ? "" : "noList"}`,
89
89
  ref: g,
90
90
  style: {
91
- maxHeight: m.maxHeight
91
+ maxHeight: c.maxHeight
92
92
  }
93
- }, [c.value.map((t, u, e) => {
94
- const a = {
95
- row: t,
96
- index: u,
97
- isLast: u === e.length - 1,
93
+ }, [a.value.map((r, S, i) => {
94
+ const u = {
95
+ row: r,
96
+ index: S,
97
+ isLast: S === i.length - 1,
98
98
  addItem: () => {
99
- c.value.push({
100
- rId: l.randomFun(),
99
+ a.value.push({
100
+ rId: e.randomFun(),
101
101
  key: "",
102
102
  value: ""
103
- }), m.autoScroll && M(() => {
104
- const o = g.value;
105
- o?.scrollTo({
106
- top: o.scrollHeight,
103
+ }), c.autoScroll && D(() => {
104
+ const d = g.value;
105
+ d?.scrollTo({
106
+ top: d.scrollHeight,
107
107
  behavior: "smooth"
108
108
  });
109
109
  });
110
110
  },
111
111
  removeItem: () => {
112
- c.value = c.value.filter((o) => o.rId !== t.rId);
112
+ a.value = a.value.filter((d) => d.rId !== r.rId);
113
113
  },
114
- toggleArray: () => t.isArray = !t.isArray,
115
- toggleNumber: () => t.isNumber = !t.isNumber
114
+ toggleArray: () => r.isArray = !r.isArray,
115
+ toggleNumber: () => r.isNumber = !r.isNumber
116
116
  };
117
- return s("div", {
117
+ return t("div", {
118
118
  class: "dItem",
119
- key: t.rId
120
- }, [s("div", {
119
+ key: r.rId
120
+ }, [t("div", {
121
121
  class: "input"
122
- }, [s("input", {
123
- size: v,
124
- value: t.key,
122
+ }, [t("input", {
123
+ size: h,
124
+ value: r.key,
125
125
  class: "key nativeInput",
126
- onInput: (o) => {
127
- t.key = o.target.value;
126
+ onInput: (d) => {
127
+ r.key = d.target.value;
128
128
  }
129
- }, null), f(":"), s("div", {
129
+ }, null), w(":"), t("div", {
130
130
  class: "vInput"
131
- }, [s("div", {
131
+ }, [t("div", {
132
132
  class: "slot"
133
- }, [r.typeTools ? r.typeTools(a) : s(k, null, [!m.hideArrayBtn && s("button", {
134
- class: [t.isArray ? "success" : "default", "small", "bt"],
135
- onClick: a.toggleArray
136
- }, [f("Array")]), !m.hideNumberBtn && s("button", {
137
- class: [t.isNumber ? "success" : "default", "small", "bt"],
138
- onClick: a.toggleNumber
139
- }, [f("Number")])])]), s("input", {
140
- size: v,
141
- value: t.value,
133
+ }, [l.typeTools ? l.typeTools(u) : t(B, null, [!c.hideArrayBtn && t("button", {
134
+ class: [r.isArray ? "success" : "default", "small", "bt"],
135
+ onClick: u.toggleArray
136
+ }, [w("Array")]), !c.hideNumberBtn && t("button", {
137
+ class: [r.isNumber ? "success" : "default", "small", "bt"],
138
+ onClick: u.toggleNumber
139
+ }, [w("Number")])])]), t("input", {
140
+ size: h,
141
+ value: r.value,
142
142
  class: "value nativeV",
143
- onInput: (o) => {
144
- const n = o.target.value;
145
- m.allowFilter && t.isNumber ? t.value = $(n, t.isArray, y.arraySplitSymbol) : t.value = n;
143
+ onInput: (d) => {
144
+ const n = d.target.value;
145
+ c.allowFilter && r.isNumber ? r.value = V(n, r.isArray, m.arraySplitSymbol) : r.value = n;
146
146
  }
147
- }, null)])]), s("div", {
147
+ }, null)])]), t("div", {
148
148
  class: "btn"
149
- }, [r.rowActions ? r.rowActions(a) : s(k, null, [s("button", {
150
- class: [v, "success", "bt"],
151
- disabled: !a.isLast,
152
- onClick: a.addItem
153
- }, [f("+")]), s("button", {
154
- class: ["danger", v, "bt"],
155
- onClick: a.removeItem
156
- }, [f("-")])])])]);
157
- })]), s("div", {
158
- class: `control ${c.value.length ? "" : "noList"}`
159
- }, [!c.value.length && (r.newBtn ? r.newBtn({
160
- newItem: d
161
- }) : s("button", {
162
- class: ["success", v, "bt"],
163
- onClick: d
164
- }, [b.newTxt])), !l.isController && s(k, null, [!m.hideReset && (r.resetBtn ? r.resetBtn({
165
- reset: A
166
- }) : s("button", {
167
- class: ["default", v, "bt"],
149
+ }, [l.rowActions ? l.rowActions(u) : t(B, null, [t("button", {
150
+ class: [h, "success", "bt"],
151
+ disabled: !u.isLast,
152
+ onClick: u.addItem
153
+ }, [w("+")]), t("button", {
154
+ class: ["danger", h, "bt"],
155
+ onClick: u.removeItem
156
+ }, [w("-")])])])]);
157
+ })]), t("div", {
158
+ class: `control ${a.value.length ? "" : "noList"}`
159
+ }, [!a.value.length && (l.newBtn ? l.newBtn({
160
+ newItem: f
161
+ }) : t("button", {
162
+ class: ["success", h, "bt"],
163
+ onClick: f
164
+ }, [v.newTxt])), !e.isController && t(B, null, [!c.hideReset && (l.resetBtn ? l.resetBtn({
165
+ reset: T
166
+ }) : t("button", {
167
+ class: ["default", h, "bt"],
168
+ onClick: T
169
+ }, [v.resetTxt])), l.mergeBtn ? l.mergeBtn({
170
+ merge: A
171
+ }) : t("button", {
172
+ class: ["info", h, "bt"],
168
173
  onClick: A
169
- }, [b.resetTxt])), r.mergeBtn ? r.mergeBtn({
170
- merge: w
171
- }) : s("button", {
172
- class: ["info", v, "bt"],
173
- onClick: w
174
- }, [b.mergeTxt])])])]);
174
+ }, [v.mergeTxt])])])]);
175
175
  }
176
- }), q = /* @__PURE__ */ O({
176
+ }), U = /* @__PURE__ */ R({
177
177
  name: "DynamicCascadeInput",
178
178
  props: {
179
179
  modelValue: {
@@ -188,7 +188,7 @@ const P = /* @__PURE__ */ O({
188
188
  },
189
189
  randomFun: {
190
190
  type: Function,
191
- default: (l) => `${Date.now()}_${l ?? 0}`
191
+ default: (e) => `${Date.now()}_${e ?? 0}`
192
192
  },
193
193
  // 子层深度 (超过则不再出现添加选项)
194
194
  depth: {
@@ -206,26 +206,26 @@ const P = /* @__PURE__ */ O({
206
206
  },
207
207
  newChildTxt: {
208
208
  type: Function,
209
- default: (l) => `添加 '${l.key}' 子项`
209
+ default: (e) => `添加 '${e.key}' 子项`
210
210
  }
211
211
  },
212
212
  emits: {
213
- "update:modelValue": (l) => !0,
213
+ "update:modelValue": (e) => !0,
214
214
  onReset: () => !0,
215
- onMerge: (l, i) => !0
215
+ onMerge: (e, o) => !0
216
216
  },
217
217
  slots: Object,
218
- setup(l, {
219
- emit: i,
220
- expose: I,
221
- slots: r
218
+ setup(e, {
219
+ emit: o,
220
+ expose: y,
221
+ slots: l
222
222
  }) {
223
- const b = {
223
+ const v = {
224
224
  resetTxt: "重置",
225
225
  newTxt: "添加项",
226
226
  mergeTxt: "合并",
227
- ...l.btnConfigs
228
- }, m = {
227
+ ...e.btnConfigs
228
+ }, c = {
229
229
  hideReset: !1,
230
230
  maxHeight: "600px",
231
231
  allowFilter: !0,
@@ -235,257 +235,481 @@ const P = /* @__PURE__ */ O({
235
235
  hideNumberBtn: !1,
236
236
  retractLen: 0,
237
237
  borderColors: [],
238
- ...l.configs
239
- }, y = {
238
+ ...e.configs
239
+ }, m = {
240
240
  arraySplitSymbol: ",",
241
- ...l.dyListConfigs
242
- }, v = (e) => ["string", "number"].includes(e), c = (e) => Object.keys(e).map((a, o) => {
243
- let n = e[a];
244
- const C = Array.isArray(n), T = C ? n.every((V) => typeof V == "number") : typeof n == "number", S = n === null;
245
- return v(typeof n) && (n = e[a]), S && (n = ""), {
246
- rId: l.randomFun(o),
247
- key: a,
248
- value: Object.prototype.toString.call(n) === "[object Object]" ? c(e[a]) : C ? n.join(y.arraySplitSymbol) : n,
241
+ ...e.dyListConfigs
242
+ }, h = (i) => ["string", "number"].includes(i), a = (i) => Object.keys(i).map((u, d) => {
243
+ let n = i[u];
244
+ const C = Array.isArray(n), s = C ? n.every((b) => typeof b == "number") : typeof n == "number", p = n === null;
245
+ return h(typeof n) && (n = i[u]), p && (n = ""), {
246
+ rId: e.randomFun(d),
247
+ key: u,
248
+ value: Object.prototype.toString.call(n) === "[object Object]" ? a(i[u]) : C ? n.join(m.arraySplitSymbol) : n,
249
249
  isArray: C || void 0,
250
- isNumber: T || void 0
250
+ isNumber: s || void 0
251
251
  };
252
- }), g = (e) => e.reduce((a, o) => {
253
- const n = o.value;
254
- return o.key.trim().length && (a[o.key] = Array.isArray(n) ? g(n) : E(o.value, o.isArray, o.isNumber, y.arraySplitSymbol)), a;
255
- }, {}), d = R(c(l.modelValue)), A = (e, a = 1, o) => s("div", {
256
- class: [`depth-${a}`, m.showBorder ? "" : "no-border", m.showPad ? "" : "no-pad"],
252
+ }), g = (i) => i.reduce((u, d) => {
253
+ const n = d.value;
254
+ return d.key.trim().length && (u[d.key] = Array.isArray(n) ? g(n) : z(d.value, d.isArray, d.isNumber, m.arraySplitSymbol)), u;
255
+ }, {}), f = I(a(e.modelValue)), T = (i, u = 1, d) => t("div", {
256
+ class: [`depth-${u}`, c.showBorder ? "" : "no-border", c.showPad ? "" : "no-pad"],
257
257
  style: {
258
- "--depth": a,
259
- ["--c" + [a]]: z(m.borderColors, a)
258
+ "--depth": u,
259
+ ["--c" + [u]]: Y(c.borderColors, u)
260
260
  }
261
- }, [e.map((n, C, T) => {
262
- const S = Array.isArray(n.value), V = v(typeof n.value), h = {
261
+ }, [i.map((n, C, s) => {
262
+ const p = Array.isArray(n.value), b = h(typeof n.value), x = {
263
263
  row: n,
264
264
  index: C,
265
- isLast: C === T.length - 1,
265
+ isLast: C === s.length - 1,
266
266
  addItem: () => {
267
- e.push({
268
- rId: l.randomFun(),
267
+ i.push({
268
+ rId: e.randomFun(),
269
269
  key: "",
270
270
  value: ""
271
271
  });
272
272
  },
273
273
  addChild: () => {
274
- V && (n.value = [], n.isArray = void 0), n.value.push({
275
- rId: l.randomFun(),
274
+ b && (n.value = [], n.isArray = void 0), n.value.push({
275
+ rId: e.randomFun(),
276
276
  key: "",
277
277
  value: ""
278
278
  });
279
279
  },
280
280
  removeItem: () => {
281
- if (e.splice(C, 1), e.length < 1) {
282
- if (o === void 0) return g([]);
283
- const F = d.value.findIndex((x) => x.rId === o?.rId);
284
- a < 1 ? d.value.splice(F, 1, {
285
- ...o,
281
+ if (i.splice(C, 1), i.length < 1) {
282
+ if (d === void 0) return g([]);
283
+ const k = f.value.findIndex((N) => N.rId === d?.rId);
284
+ u < 1 ? f.value.splice(k, 1, {
285
+ ...d,
286
286
  value: ""
287
- }) : o.value = "";
287
+ }) : d.value = "";
288
288
  }
289
289
  },
290
290
  toggleArray: () => n.isArray = !n.isArray,
291
291
  toggleNumber: () => n.isNumber = !n.isNumber
292
292
  };
293
- return s("div", {
293
+ return t("div", {
294
294
  class: "dItem",
295
295
  key: n.rId,
296
296
  style: {
297
- marginLeft: a > 1 ? `${a * m.retractLen}px` : "0"
297
+ marginLeft: u > 1 ? `${u * c.retractLen}px` : "0"
298
298
  }
299
- }, [s("div", {
299
+ }, [t("div", {
300
300
  class: "input"
301
- }, [!S && s(k, null, [s("input", {
301
+ }, [!p && t(B, null, [t("input", {
302
302
  value: n.key,
303
303
  class: "key nativeInput",
304
- onInput: (F) => n.key = F.target.value
305
- }, null), f(":")]), s("div", {
304
+ onInput: (k) => n.key = k.target.value
305
+ }, null), w(":")]), t("div", {
306
306
  class: "vInput"
307
- }, [s("div", {
307
+ }, [t("div", {
308
308
  class: "slot"
309
- }, [Array.isArray(n.value) ? void 0 : r.typeTools ? r.typeTools(h) : s(k, null, [!m.hideArrayBtn && s("button", {
309
+ }, [Array.isArray(n.value) ? void 0 : l.typeTools ? l.typeTools(x) : t(B, null, [!c.hideArrayBtn && t("button", {
310
310
  class: [n.isArray ? "success" : "default", "small", "bt"],
311
- onClick: h.toggleArray
312
- }, [f("Array")]), !m.hideNumberBtn && s("button", {
311
+ onClick: x.toggleArray
312
+ }, [w("Array")]), !c.hideNumberBtn && t("button", {
313
313
  class: [n.isNumber ? "success" : "default", "small", "bt"],
314
- onClick: h.toggleNumber
315
- }, [f("Number")])])]), s("input", {
316
- class: `value nativeV ${S ? "isKey" : ""}`,
317
- value: V ? n.value : n.key,
318
- onInput: (F) => {
319
- const x = F.target.value;
320
- if (S) {
321
- n.key = x;
314
+ onClick: x.toggleNumber
315
+ }, [w("Number")])])]), t("input", {
316
+ class: `value nativeV ${p ? "isKey" : ""}`,
317
+ value: b ? n.value : n.key,
318
+ onInput: (k) => {
319
+ const N = k.target.value;
320
+ if (p) {
321
+ n.key = N;
322
322
  return;
323
323
  }
324
- m.allowFilter && n.isNumber ? n.value = $(x, n.isArray, y.arraySplitSymbol) : n.value = x;
324
+ c.allowFilter && n.isNumber ? n.value = V(N, n.isArray, m.arraySplitSymbol) : n.value = N;
325
325
  }
326
- }, null), s("div", {
326
+ }, null), t("div", {
327
327
  class: "surSlot"
328
- }, [a < l.depth ? !S && (r.newChild ? r.newChild(h) : s("button", {
328
+ }, [u < e.depth ? !p && (l.newChild ? l.newChild(x) : t("button", {
329
329
  class: ["success", "bt"],
330
- onClick: h.addChild
331
- }, [l.newChildTxt(n)])) : null])])]), s("div", {
330
+ onClick: x.addChild
331
+ }, [e.newChildTxt(n)])) : null])])]), t("div", {
332
332
  class: "btn"
333
- }, [r.rowActions ? r.rowActions(h) : s(k, null, [s("button", {
333
+ }, [l.rowActions ? l.rowActions(x) : t(B, null, [t("button", {
334
334
  class: ["success", "bt"],
335
- disabled: !h.isLast,
336
- onClick: h.addItem
337
- }, [f("+")]), s("button", {
335
+ disabled: !x.isLast,
336
+ onClick: x.addItem
337
+ }, [w("+")]), t("button", {
338
338
  class: ["danger", "bt"],
339
- onClick: h.removeItem
340
- }, [f("-")])])]), Array.isArray(n.value) && A(n.value, a + 1, n)]);
339
+ onClick: x.removeItem
340
+ }, [w("-")])])]), Array.isArray(n.value) && T(n.value, u + 1, n)]);
341
341
  })]);
342
- L(d, (e) => {
343
- if (!l.isController) return;
344
- const a = g(e);
345
- i("update:modelValue", a), i("onMerge", a, p(d.value));
342
+ j(f, (i) => {
343
+ if (!e.isController) return;
344
+ const u = g(i);
345
+ o("update:modelValue", u), o("onMerge", u, L(f.value));
346
346
  }, {
347
347
  deep: !0
348
- }), I({
349
- onSet: (e) => {
350
- d.value = c(e ?? l.modelValue);
348
+ }), y({
349
+ onSet: (i) => {
350
+ f.value = a(i ?? e.modelValue);
351
351
  },
352
- getResult: (e = "res") => e === "ori" ? p(d.value) : g(d.value)
352
+ getResult: (i = "res") => i === "ori" ? L(f.value) : g(f.value)
353
353
  });
354
- const w = () => d.value.push({
355
- rId: l.randomFun(),
354
+ const A = () => f.value.push({
355
+ rId: e.randomFun(),
356
356
  key: "",
357
357
  value: ""
358
- }), t = () => {
359
- d.value = c(l.modelValue), i("onReset");
360
- }, u = () => {
361
- const e = g(d.value);
362
- i("update:modelValue", e), i("onMerge", e, p(d.value)), d.value = c(e);
358
+ }), r = () => {
359
+ f.value = a(e.modelValue), o("onReset");
360
+ }, S = () => {
361
+ const i = g(f.value);
362
+ o("update:modelValue", i), o("onMerge", i, L(f.value)), f.value = a(i);
363
363
  };
364
- return () => s("div", {
365
- class: `dynamicCascadeForm ${l.dyCls}`
366
- }, [s("div", {
367
- class: `dyFormList ${d.value.length ? "" : "noObj"}`,
364
+ return () => t("div", {
365
+ class: `dynamicCascadeForm ${e.dyCls}`
366
+ }, [t("div", {
367
+ class: `dyFormList ${f.value.length ? "" : "noObj"}`,
368
368
  style: {
369
- maxHeight: m.maxHeight
369
+ maxHeight: c.maxHeight
370
370
  }
371
- }, [A(d.value)]), s("div", {
372
- class: `control ${d.value.length ? "" : "noObj"}`
373
- }, [!d.value.length && (r.newBtn ? r.newBtn({
374
- newItem: w
375
- }) : s("button", {
371
+ }, [T(f.value)]), t("div", {
372
+ class: `control ${f.value.length ? "" : "noObj"}`
373
+ }, [!f.value.length && (l.newBtn ? l.newBtn({
374
+ newItem: A
375
+ }) : t("button", {
376
376
  class: ["success", "bt"],
377
- onClick: w
378
- }, [b.newTxt])), !l.isController && s(k, null, [!m.hideReset && (r.resetBtn ? r.resetBtn({
379
- reset: t
380
- }) : s("button", {
377
+ onClick: A
378
+ }, [v.newTxt])), !e.isController && t(B, null, [!c.hideReset && (l.resetBtn ? l.resetBtn({
379
+ reset: r
380
+ }) : t("button", {
381
381
  class: ["default", "bt"],
382
- onClick: t
383
- }, [b.resetTxt])), r.mergeBtn ? r.mergeBtn({
384
- merge: u
385
- }) : s("button", {
382
+ onClick: r
383
+ }, [v.resetTxt])), l.mergeBtn ? l.mergeBtn({
384
+ merge: S
385
+ }) : t("button", {
386
386
  class: ["info", "bt"],
387
- onClick: u
388
- }, [b.mergeTxt])])])]);
387
+ onClick: S
388
+ }, [v.mergeTxt])])])]);
389
+ }
390
+ }), W = {
391
+ loading: {
392
+ type: Boolean,
393
+ default: !1
394
+ },
395
+ isError: {
396
+ type: Boolean,
397
+ default: !1
398
+ },
399
+ loadData: {
400
+ type: Function,
401
+ required: !0
402
+ },
403
+ scrollNode: {
404
+ type: String,
405
+ required: !0
406
+ },
407
+ loadingTxt: {
408
+ type: String,
409
+ default: "loading..."
410
+ },
411
+ finishedTxt: {
412
+ type: String,
413
+ default: "no more data"
414
+ },
415
+ errorTxt: {
416
+ type: String,
417
+ default: "fetch error , click again"
418
+ },
419
+ finished: {
420
+ type: Boolean,
421
+ default: !1
422
+ },
423
+ offset: {
424
+ type: Number,
425
+ default: 20
426
+ },
427
+ memoryScroll: {
428
+ type: Boolean,
429
+ default: !1
430
+ },
431
+ pullRefresh: {
432
+ type: Boolean,
433
+ default: !1
434
+ },
435
+ refreshData: {
436
+ type: Function
437
+ },
438
+ pullDistance: {
439
+ type: Number,
440
+ default: 70
441
+ },
442
+ pullTxt: {
443
+ type: String,
444
+ default: "pull to refresh"
445
+ },
446
+ releaseTxt: {
447
+ type: String,
448
+ default: "release to refresh"
449
+ },
450
+ refreshingTxt: {
451
+ type: String,
452
+ default: "refreshing..."
453
+ },
454
+ supportMode: {
455
+ type: String,
456
+ default: "mobile"
457
+ },
458
+ refreshLoading: {
459
+ type: Boolean,
460
+ default: !0
461
+ }
462
+ }, G = {
463
+ "update:loading": (e) => !0,
464
+ "update:isError": (e) => !0
465
+ }, ee = /* @__PURE__ */ R({
466
+ name: "LoadedScroll",
467
+ props: W,
468
+ emits: G,
469
+ slots: Object,
470
+ setup(e, {
471
+ slots: o,
472
+ emit: y
473
+ }) {
474
+ const l = I(null);
475
+ let v = null;
476
+ const {
477
+ ignoreScroll: c,
478
+ botHintRef: m,
479
+ hintHeight: h,
480
+ handleScroll: a,
481
+ bindHintHeight: g,
482
+ fetchData: f
483
+ } = J(e, y), {
484
+ pullY: T,
485
+ pullText: A,
486
+ touching: r,
487
+ bindLoaded: S,
488
+ unbindLoaded: i
489
+ } = Q(e, y, l, u);
490
+ async function u() {
491
+ c.value = !0, await D();
492
+ const d = l.value?.querySelector(e.scrollNode);
493
+ v?.removeEventListener("scroll", a), v = d, v && (e.memoryScroll || (v.scrollTop = 0), v.addEventListener("scroll", a)), setTimeout(() => {
494
+ c.value = !1;
495
+ });
496
+ }
497
+ return $(async () => {
498
+ await g(), await f(), await u(), S();
499
+ }), M(() => {
500
+ v && v.removeEventListener("scroll", a), i();
501
+ }), () => t("div", {
502
+ ref: l,
503
+ class: "loadedScroll"
504
+ }, [e.pullRefresh && t("div", {
505
+ class: "pullRefreshHint",
506
+ style: {
507
+ height: `${T.value}px`,
508
+ lineHeight: `${T.value}px`,
509
+ transition: r.value ? "none" : "height .25s",
510
+ overflow: "hidden",
511
+ textAlign: "center"
512
+ }
513
+ }, [A.value]), o.default?.({
514
+ hintHeight: h.value
515
+ }), t("div", {
516
+ ref: m
517
+ }, [o.bottomHint ? o.bottomHint?.() : e.finished ? t("div", {
518
+ class: "hintText"
519
+ }, [o.finishedTxt?.() ?? e.finishedTxt]) : t(B, null, [e.loading && t("div", {
520
+ class: "hintText"
521
+ }, [o.loadingTxt?.() ?? e.loadingTxt]), e.isError && !e.loading && t("div", {
522
+ class: "hintText errorTxt",
523
+ "data-no-pull": !0,
524
+ onPointerDown: (d) => d.stopPropagation(),
525
+ onTouchStart: (d) => d.stopPropagation(),
526
+ onClick: () => {
527
+ y("update:loading", !0), y("update:isError", !1), f();
528
+ }
529
+ }, [o.errorTxt?.() ?? e.errorTxt])])])]);
389
530
  }
390
531
  });
391
- function J(l, i = !0) {
392
- return l.map((I) => {
393
- const r = I;
394
- return r.value = K(I.value), i ? D(r) : r;
395
- });
532
+ function J(e, o) {
533
+ const y = I(!0), l = I(0), v = I(null), c = O(() => e.loading || e.finished || e.isError ? l.value : 0);
534
+ function m(g) {
535
+ if (y.value || e.loading || e.finished || e.isError) return;
536
+ const f = g.target;
537
+ f.scrollTop + f.clientHeight >= f.scrollHeight - e.offset && (o("update:loading", !0), a());
538
+ }
539
+ async function h() {
540
+ const g = v.value?.getElementsByTagName("div")[0];
541
+ l.value = (g?.clientHeight ?? 0) + q(g);
542
+ }
543
+ async function a() {
544
+ return e.loadData?.().then((g) => {
545
+ o("update:loading", !1);
546
+ }).catch((g) => {
547
+ o("update:loading", !1), o("update:isError", !0);
548
+ });
549
+ }
550
+ return {
551
+ ignoreScroll: y,
552
+ hintHeight: c,
553
+ botHeight: l,
554
+ botHintRef: v,
555
+ handleScroll: m,
556
+ bindHintHeight: h,
557
+ fetchData: a
558
+ };
396
559
  }
397
- function Q(l) {
398
- const i = () => H(l), I = (t, u) => {
399
- i().forEach((e) => {
400
- const a = e.key;
401
- (!u || u.includes(a)) && (e.disabled = t);
560
+ function Q(e, o, y, l) {
561
+ const v = I(null), c = I(!1), m = I(!1), h = I(0), a = I(0), g = O(() => m.value ? e.refreshingTxt : a.value >= e.pullDistance ? e.releaseTxt : e.pullTxt);
562
+ function f() {
563
+ return !y.value || y.value.scrollTop <= 2;
564
+ }
565
+ function T() {
566
+ return e.pullRefresh && f() && !m.value;
567
+ }
568
+ function A(s) {
569
+ d(s) || (c.value = !1, e.pullRefresh && f() && (m.value || (c.value = !0, h.value = E(s), v.value = _(s), "pointerId" in s && s.currentTarget.setPointerCapture?.(s.pointerId))));
570
+ }
571
+ function r(s) {
572
+ if (!c.value || "pointerId" in s && v.value !== s.pointerId || !T()) return;
573
+ const b = E(s) - h.value;
574
+ b <= 0 || (s.preventDefault(), a.value = Math.min(b * 0.45, e.pullDistance + 30));
575
+ }
576
+ function S(s) {
577
+ c.value && ("pointerId" in s && v.value !== s.pointerId || (c.value = !1, "pointerId" in s && s.currentTarget.releasePointerCapture?.(s.pointerId), v.value = null, a.value >= e.pullDistance ? i() : a.value = 0));
578
+ }
579
+ async function i() {
580
+ if (!m.value) {
581
+ m.value = !0, e.refreshLoading && o("update:loading", !0), a.value = e.pullDistance;
582
+ try {
583
+ o("update:isError", !1), await e.refreshData?.();
584
+ } catch {
585
+ o("update:isError", !0);
586
+ } finally {
587
+ m.value = !1, await D(), await l(), e.refreshLoading && o("update:loading", !1), setTimeout(() => {
588
+ a.value = 0;
589
+ });
590
+ }
591
+ }
592
+ }
593
+ async function u() {
594
+ await D(), n(), !(!y.value || !e.pullRefresh) && C().forEach(({
595
+ name: s,
596
+ handler: p,
597
+ options: b
598
+ }) => {
599
+ y.value?.addEventListener(s, p, b);
402
600
  });
403
- }, r = (t, u) => {
404
- i().forEach((e) => {
405
- const a = e.key;
406
- (!u || u.includes(a)) && (e.hidden = t);
601
+ }
602
+ function d(s) {
603
+ return !!s.target?.closest("[data-no-pull]");
604
+ }
605
+ function n() {
606
+ C().forEach(({
607
+ name: s,
608
+ handler: p,
609
+ options: b
610
+ }) => {
611
+ y.value?.removeEventListener(s, p, b);
407
612
  });
408
- }, b = (t, u) => {
409
- const e = i().find((a) => a.key === t);
410
- e && (N(e.value) ? e.value.value = u : e.value = u);
411
- };
412
- return {
413
- setDisabled: I,
414
- setHidden: r,
415
- setValue: b,
416
- setValues: (t) => {
417
- Object.entries(t).forEach(([u, e]) => {
418
- b(u, e);
419
- });
420
- },
421
- getValue: (t) => {
422
- const u = i().find((e) => e.key === t);
423
- if (u) {
424
- const e = u.value;
425
- return N(e) ? p(e.value) : e;
613
+ }
614
+ function C() {
615
+ const s = A, p = r, b = S, x = [{
616
+ name: "pointerdown",
617
+ handler: s
618
+ }, {
619
+ name: "pointermove",
620
+ handler: p
621
+ }, {
622
+ name: "pointerup",
623
+ handler: b
624
+ }, {
625
+ name: "pointercancel",
626
+ handler: b
627
+ }], k = [{
628
+ name: "touchstart",
629
+ handler: s,
630
+ options: {
631
+ passive: !0
426
632
  }
427
- },
428
- getValues: (t) => {
429
- const u = t && t.length ? new Set(t) : null;
430
- return i().reduce((e, a) => {
431
- const o = a.key;
432
- if (!u || u.has(o)) {
433
- const n = N(a.value) ? p(a.value.value) : a.value;
434
- e[o] = n;
435
- }
436
- return e;
437
- }, {});
438
- },
439
- onReset: (t = null) => {
440
- i().forEach((u) => {
441
- N(u.value) ? u.value.value = t : u.value = t;
442
- });
443
- },
444
- getItem: (t) => i().find((u) => u.key === t),
445
- setItem: (t, u) => {
446
- i().forEach((e) => {
447
- if (e.key === t) {
448
- const { key: a, ...o } = u;
449
- Object.assign(e, o);
450
- }
451
- });
452
- },
453
- setItems: (t) => {
454
- const u = new Map(t);
455
- i().forEach((e) => {
456
- const a = u.get(e.key);
457
- if (a) {
458
- const { key: o, ...n } = a;
459
- Object.assign(e, n);
460
- }
461
- });
462
- },
463
- updateKeys: (t) => {
464
- const u = new Map(t);
465
- i().forEach((e) => {
466
- const a = u.get(e.key);
467
- a && (e.key = a);
468
- });
633
+ }, {
634
+ name: "touchmove",
635
+ handler: p,
636
+ options: {
637
+ passive: !1
638
+ }
639
+ }, {
640
+ name: "touchend",
641
+ handler: b
642
+ }, {
643
+ name: "touchcancel",
644
+ handler: b
645
+ }];
646
+ switch (e.supportMode) {
647
+ case "pc":
648
+ return x;
649
+ case "mobile":
650
+ return k;
651
+ default:
652
+ return [...x, ...k];
469
653
  }
654
+ }
655
+ return {
656
+ pullY: a,
657
+ touching: c,
658
+ pullText: g,
659
+ bindLoaded: u,
660
+ unbindLoaded: n
470
661
  };
471
662
  }
472
- const U = {
473
- install(l) {
474
- l.component("DynamicInput", P), l.component("DynamicCascadeInput", q);
663
+ const te = function(e, o) {
664
+ function y() {
665
+ e?.();
666
+ }
667
+ function l() {
668
+ e?.();
669
+ }
670
+ const v = P({
671
+ pageNo: 1,
672
+ pageSize: 25,
673
+ showSizePicker: !0,
674
+ pageSizes: [25, 50, 100, 200],
675
+ pageSlot: 5,
676
+ total: 0,
677
+ layout: "total, prev, pager, next, sizes, jumper",
678
+ onChange: y,
679
+ onPageSizeChange: l,
680
+ setTotalSize(c) {
681
+ v.total = c;
682
+ },
683
+ ...o
684
+ });
685
+ return v;
686
+ }, ne = {
687
+ install(e) {
688
+ e.component("DynamicInput", K), e.component("DynamicCascadeInput", U);
475
689
  }
476
690
  };
477
691
  export {
478
- q as DynamicCascadeInput,
479
- P as DynamicInput,
480
- U as DynamicInputPlugin,
481
- Y as OmitValue,
482
- K as ensureRef,
483
- $ as formatNumberInput,
484
- Z as getDepthColor,
485
- E as parseValue,
486
- j as resetObj,
487
- z as saferRepairColor,
488
- B as tranArr,
489
- Q as useDyForm,
490
- J as useReactiveForm
692
+ re as Debounce,
693
+ U as DynamicCascadeInput,
694
+ K as DynamicInput,
695
+ ne as DynamicInputPlugin,
696
+ ee as LoadedScroll,
697
+ ue as OmitValue,
698
+ oe as ensureRef,
699
+ V as formatNumberInput,
700
+ E as getClientY,
701
+ ie as getDepthColor,
702
+ _ as getEventId,
703
+ q as getMarginY,
704
+ se as getPadY,
705
+ z as parseValue,
706
+ H as resetObj,
707
+ Y as saferRepairColor,
708
+ F as tranArr,
709
+ ce as unwrapObj,
710
+ de as useDyForm,
711
+ fe as useObserverSize,
712
+ te as usePagination,
713
+ ve as useReactiveForm,
714
+ me as useWindowSize
491
715
  };