@jboltai/tokui 0.1.8 → 0.1.9

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/tokui.mjs CHANGED
@@ -58,6 +58,18 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
58
58
  "actions.delete": "删除",
59
59
  "actions.approve": "批准",
60
60
  "actions.deny": "拒绝",
61
+ "bubble.you": "你",
62
+ "bubble.ai": "AI",
63
+ "bubble.system": "系统",
64
+ "bubble.assistant": "助手",
65
+ "rule.required": "该字段为必填项",
66
+ "rule.email": "请输入有效的邮箱地址",
67
+ "rule.url": "请输入有效的 URL(http/https)",
68
+ "rule.number": "请输入数字",
69
+ "rule.len": "长度须为 {n} 个字符",
70
+ "rule.min": "至少输入 {n} 个字符",
71
+ "rule.max": "最多输入 {n} 个字符",
72
+ "rule.re": "格式不正确",
61
73
  "file.unnamed": "未知文件",
62
74
  "countdown.ended": "已结束",
63
75
  "duration.day": "天",
@@ -95,6 +107,10 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
95
107
  "select.placeholder": "请选择",
96
108
  "upload.hint": "点击或拖拽文件至此处上传",
97
109
  "upload.browse": "浏览文件",
110
+ "upload.uploading": "上传中",
111
+ "upload.done": "已上传",
112
+ "upload.failed": "上传失败",
113
+ "upload.retry": "重试",
98
114
  "chart.empty": "暂无数据",
99
115
  "chart.seriesDefault": "系列{n}",
100
116
  "chart.itemDefault": "项目{n}",
@@ -168,6 +184,14 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
168
184
  "actions.delete": "Delete",
169
185
  "actions.approve": "Approve",
170
186
  "actions.deny": "Deny",
187
+ "rule.required": "This field is required",
188
+ "rule.email": "Please enter a valid email address",
189
+ "rule.url": "Please enter a valid URL (http/https)",
190
+ "rule.number": "Please enter a number",
191
+ "rule.len": "Must be exactly {n} characters",
192
+ "rule.min": "At least {n} characters required",
193
+ "rule.max": "At most {n} characters allowed",
194
+ "rule.re": "Invalid format",
171
195
  "file.unnamed": "Unnamed file",
172
196
  "countdown.ended": "Ended",
173
197
  "duration.day": "d",
@@ -200,11 +224,19 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
200
224
  "agent.thinking": "Thinking",
201
225
  "agent.generating": "Generating",
202
226
  "agent.total": "Total",
227
+ "bubble.you": "You",
228
+ "bubble.ai": "AI",
229
+ "bubble.system": "System",
230
+ "bubble.assistant": "Assistant",
203
231
  "picker.noMatch": "No matches",
204
232
  "rate.defaultLabel": "Rating",
205
233
  "select.placeholder": "Select...",
206
234
  "upload.hint": "Click or drag files here to upload",
207
235
  "upload.browse": "Browse",
236
+ "upload.uploading": "Uploading",
237
+ "upload.done": "Uploaded",
238
+ "upload.failed": "Upload failed",
239
+ "upload.retry": "Retry",
208
240
  "chart.empty": "No data",
209
241
  "chart.seriesDefault": "Series {n}",
210
242
  "chart.itemDefault": "Item {n}",
@@ -511,7 +543,7 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
511
543
  }
512
544
  return -1;
513
545
  }
514
- var i = new Set(/* @__PURE__ */ "form.table.thead.tbody.card.ft.row.col.list.select.radio.checkbox.code.imgs.md.textarea.tabs.tab.accordion.collapse.dialog.btngroup.picker.timeline.steps.drawer.ol.ul.i.item.think.think-chain.think-step.bubble.toolbar.badge-box.dropdown.transfer.callout.cascader.tree.tn.desc.carousel.popover.input-tag.watermark.menu.print-area.chat-input.msg-actions.tool-call.diff.quick-reply.plan.file-tree.ft-folder.terminal.sandbox.test-result.quote.toggle-group.conversations.welcome.welcome-feature.suggestions.attachments.artifact.artifact-code.artifact-preview.scroll-area.sidebar.sidebar-content.sidebar-footer.command.command-group.hover-card.hover-trigger.hover-content.resizable.canvas.canvas-content.chart.ins.p".split("."));
546
+ var i = new Set(/* @__PURE__ */ "form.table.thead.tbody.card.ft.row.col.list.select.radio.checkbox.code.imgs.md.textarea.tabs.tab.accordion.collapse.dialog.btngroup.picker.timeline.steps.drawer.ol.ul.i.item.think.think-chain.think-step.bubble.toolbar.badge-box.dropdown.transfer.callout.cascader.tree.tn.desc.carousel.popover.input-tag.watermark.menu.print-area.chat-input.msg-actions.tool-call.diff.quick-reply.plan.file-tree.ft-folder.terminal.sandbox.test-result.quote.toggle-group.conversations.welcome.welcome-feature.suggestions.attachments.artifact.artifact-code.artifact-preview.scroll-area.sidebar.sidebar-content.sidebar-footer.command.command-group.hover-card.hover-trigger.hover-content.resizable.canvas.canvas-content.chart.ins.katex.mermaid.p".split("."));
515
547
  function a(e) {
516
548
  if (!e || e.type !== "chart") return !1;
517
549
  var t = e.attrs || {};
@@ -547,7 +579,7 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
547
579
  "mark",
548
580
  "sub",
549
581
  "sup"
550
- ]), d = new Set(/* @__PURE__ */ "stripe.dis.ro.req.chk.multi.disabled.readonly.required.checked.multiple.striped.auto.plain.round.closable.bordered.open.pill.dot.leaf.inline.rounded.container.copy.regenerate.like.dislike.visible.delete.controls.open.active.collapsible.toggle.search.thumb.reset.print.show-total.live.approval.streaming".split(".")), f = null;
582
+ ]), d = new Set(/* @__PURE__ */ "stripe.dis.ro.req.chk.multi.disabled.readonly.required.checked.multiple.striped.auto.plain.round.closable.bordered.open.pill.dot.leaf.inline.rounded.container.copy.regenerate.like.dislike.visible.delete.controls.open.active.collapsible.toggle.search.thumb.reset.print.show-total.live.approval.streaming.range.half.sortable.filter.virtual.lazy.pagination".split(".")), f = null;
551
583
  function p(e) {
552
584
  f = e;
553
585
  }
@@ -656,7 +688,7 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
656
688
  for (let e = i - 1; e >= 0 && this.buffer[e] === "\\"; e--) a++;
657
689
  let o = a % 2 == 1 ? i - 1 : i, s = e._rawEmittedLen || 0;
658
690
  if (o > s) {
659
- let t = this._unescapeRaw(this.buffer.slice(s, o));
691
+ let t = this._unescapeRaw(this.buffer.slice(s, o), e.type);
660
692
  if (t) {
661
693
  let n = {
662
694
  type: "_text",
@@ -713,7 +745,7 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
713
745
  let e;
714
746
  if (this._isRawContent()) {
715
747
  let t = this.stack[this.stack.length - 1], n = this.streaming && t && t._rawEmittedLen ? t._rawEmittedLen : 0;
716
- e = this._unescapeRaw(this.buffer.slice(n).trim());
748
+ e = this._unescapeRaw(this.buffer.slice(n).trim(), t && t.type);
717
749
  } else e = this.buffer.trim();
718
750
  if (e) {
719
751
  let t = {
@@ -734,12 +766,12 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
734
766
  _isRawContent() {
735
767
  for (let t = this.stack.length - 1; t >= 0; t--) {
736
768
  var e = this.stack[t].type;
737
- if (e === "code" || e === "md" || e === "diff" || e === "terminal" || e === "sandbox" || e === "artifact-code") return !0;
769
+ if (e === "code" || e === "md" || e === "diff" || e === "terminal" || e === "sandbox" || e === "artifact-code" || e === "katex" || e === "mermaid") return !0;
738
770
  }
739
771
  return !1;
740
772
  }
741
- _unescapeRaw(e) {
742
- return typeof e != "string" || e.indexOf("\\") === -1 ? e : e.replace(/\\(.)/g, function(e, t) {
773
+ _unescapeRaw(e, t) {
774
+ return typeof e != "string" || e.indexOf("\\") === -1 || t === "katex" || t === "md" ? e : e.replace(/\\(.)/g, function(e, t) {
743
775
  return t === "n" ? "\n" : t === "t" ? " " : t === "r" ? "\r" : t === "\\" ? "\\" : "\\" + t;
744
776
  });
745
777
  }
@@ -748,12 +780,12 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
748
780
  for (; e-- > 0;) {
749
781
  if (this.state === "TEXT") {
750
782
  if (this._isRawContent()) {
751
- let e = this.stack[this.stack.length - 1], t = `[/${e.type}]`, n = this.buffer.indexOf(t);
752
- if (n === -1) break;
753
- if (n > 0) {
754
- let t = this.streaming && e._rawEmittedLen ? e._rawEmittedLen : 0;
755
- if (n > t) {
756
- let e = this._unescapeRaw(this.buffer.slice(t, n));
783
+ let e = this.stack[this.stack.length - 1], t = e.type, n = `[/${t}]`, r = this.buffer.indexOf(n);
784
+ if (r === -1) break;
785
+ if (r > 0) {
786
+ let n = this.streaming && e._rawEmittedLen ? e._rawEmittedLen : 0;
787
+ if (r > n) {
788
+ let e = this._unescapeRaw(this.buffer.slice(n, r), t);
757
789
  if (e) {
758
790
  let t = {
759
791
  type: "_text",
@@ -764,7 +796,7 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
764
796
  this.streaming && this.stack.length > 0 ? (this.stack[this.stack.length - 1].children.push(t), this.onNode(t)) : this.stack.length > 0 ? this.stack[this.stack.length - 1].children.push(t) : this.onNode(t);
765
797
  }
766
798
  }
767
- this._totalOffset += n, this.buffer = this.buffer.slice(n);
799
+ this._totalOffset += r, this.buffer = this.buffer.slice(r);
768
800
  continue;
769
801
  }
770
802
  }
@@ -903,8 +935,8 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
903
935
  "input-tag",
904
936
  "watermark",
905
937
  "badge-box"
906
- ]), r = i.has(e.type) && !n.has(e.type) && e.attrs.tx, l = e.type === "tn" && e.attrs.leaf !== void 0, d = e.type === "input-tag" && e.attrs.tags, f = r || l || d || o(e) || s(e), p = e.attrs.cols && e.type !== "desc" && e.type !== "suggestions" && e.type !== "chart", m = a(e);
907
- m && (e._previewKey = e._dslStart), i.has(e.type) && !p && !f && !m ? this.stack.length >= this.maxDepth ? (console.warn("TokUI Parser: 嵌套深度超过 maxDepth (" + this.maxDepth + "),按自闭合处理"), this.stack.length > 0 && this.stack[this.stack.length - 1].children.push(e), this.onNode(e)) : (e._stream = "open", this.stack.push(e), this.onNode(e)) : (this.stack.length > 0 && this.stack[this.stack.length - 1].children.push(e), this.onNode(e));
938
+ ]), r = i.has(e.type) && !n.has(e.type) && e.attrs.tx, l = e.type === "tn" && e.attrs.leaf !== void 0, d = e.type === "input-tag" && e.attrs.tags, f = e.type === "katex" && !!e.attrs.f, p = r || l || d || f || o(e) || s(e), m = e.attrs.cols && e.type !== "desc" && e.type !== "suggestions" && e.type !== "chart", h = a(e);
939
+ h && (e._previewKey = e._dslStart), i.has(e.type) && !m && !p && !h ? this.stack.length >= this.maxDepth ? (console.warn("TokUI Parser: 嵌套深度超过 maxDepth (" + this.maxDepth + "),按自闭合处理"), this.stack.length > 0 && this.stack[this.stack.length - 1].children.push(e), this.onNode(e)) : (e._stream = "open", this.stack.push(e), this.onNode(e)) : (this.stack.length > 0 && this.stack[this.stack.length - 1].children.push(e), this.onNode(e));
908
940
  }
909
941
  _emitBuffered(e) {
910
942
  if (e.type === "item") for (; this.stack.length > 0 && this.stack[this.stack.length - 1].type === "item";) {
@@ -922,8 +954,8 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
922
954
  "input-tag",
923
955
  "watermark",
924
956
  "badge-box"
925
- ]), r = i.has(e.type) && !n.has(e.type) && e.attrs.tx, c = e.type === "tn" && e.attrs.leaf !== void 0, l = e.type === "input-tag" && e.attrs.tags, d = r || c || l || o(e) || s(e), f = e.attrs.cols && e.type !== "desc" && e.type !== "suggestions" && e.type !== "chart", p = a(e);
926
- p && (e._previewKey = e._dslStart), i.has(e.type) && !f && !d && !p ? this.stack.length >= this.maxDepth ? (console.warn("TokUI Parser: 嵌套深度超过 maxDepth (" + this.maxDepth + "),按自闭合处理"), this.stack.length > 0 ? this.stack[this.stack.length - 1].children.push(e) : this.onNode(e)) : this.stack.push(e) : this.stack.length > 0 ? this.stack[this.stack.length - 1].children.push(e) : this.onNode(e);
957
+ ]), r = i.has(e.type) && !n.has(e.type) && e.attrs.tx, c = e.type === "tn" && e.attrs.leaf !== void 0, l = e.type === "input-tag" && e.attrs.tags, d = e.type === "katex" && !!e.attrs.f, f = r || c || l || d || o(e) || s(e), p = e.attrs.cols && e.type !== "desc" && e.type !== "suggestions" && e.type !== "chart", m = a(e);
958
+ m && (e._previewKey = e._dslStart), i.has(e.type) && !p && !f && !m ? this.stack.length >= this.maxDepth ? (console.warn("TokUI Parser: 嵌套深度超过 maxDepth (" + this.maxDepth + "),按自闭合处理"), this.stack.length > 0 ? this.stack[this.stack.length - 1].children.push(e) : this.onNode(e)) : this.stack.push(e) : this.stack.length > 0 ? this.stack[this.stack.length - 1].children.push(e) : this.onNode(e);
927
959
  }
928
960
  startStream() {
929
961
  this.reset();
@@ -1030,7 +1062,58 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
1030
1062
  n &&= (clearTimeout(n), null);
1031
1063
  }, r;
1032
1064
  }
1033
- var f = {
1065
+ function f(e, t) {
1066
+ for (var n = String(e ?? ""), r = n.trim() === "", i = String(t || "").split("|").map(function(e) {
1067
+ return e.trim();
1068
+ }).filter(Boolean), a = 0; a < i.length; a++) {
1069
+ var o = i[a], s = o.indexOf(":"), c = s === -1 ? o : o.slice(0, s), l = s === -1 ? "" : o.slice(s + 1);
1070
+ if (!(r && c !== "required")) switch (c) {
1071
+ case "required":
1072
+ if (r) return { name: "required" };
1073
+ break;
1074
+ case "email":
1075
+ if (!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(n)) return { name: "email" };
1076
+ break;
1077
+ case "url":
1078
+ if (!/^https?:\/\/\S+$/.test(n)) return { name: "url" };
1079
+ break;
1080
+ case "number":
1081
+ if (isNaN(Number(n))) return { name: "number" };
1082
+ break;
1083
+ case "len":
1084
+ var u = parseInt(l, 10);
1085
+ if (u > 0 && n.length !== u) return {
1086
+ name: "len",
1087
+ n: u
1088
+ };
1089
+ break;
1090
+ case "min":
1091
+ var d = parseInt(l, 10);
1092
+ if (d > 0 && n.length < d) return {
1093
+ name: "min",
1094
+ n: d
1095
+ };
1096
+ break;
1097
+ case "max":
1098
+ var f = parseInt(l, 10);
1099
+ if (f > 0 && n.length > f) return {
1100
+ name: "max",
1101
+ n: f
1102
+ };
1103
+ break;
1104
+ case "re":
1105
+ try {
1106
+ if (l && !new RegExp(l).test(n)) return { name: "re" };
1107
+ } catch {
1108
+ console.warn("TokUI: 非法校验正则 \"" + l + "\",已跳过");
1109
+ }
1110
+ break;
1111
+ default: console.warn("TokUI: 未知校验规则 \"" + c + "\",已跳过");
1112
+ }
1113
+ }
1114
+ return null;
1115
+ }
1116
+ var p = {
1034
1117
  img: new Set([
1035
1118
  "avatar",
1036
1119
  "rounded",
@@ -1192,7 +1275,7 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
1192
1275
  cascader: new Set(["error", "success"]),
1193
1276
  upload: new Set(["sm", "lg"]),
1194
1277
  tree: new Set(["sm", "lg"])
1195
- }, p = class {
1278
+ }, m = class {
1196
1279
  constructor(e) {
1197
1280
  this.registry = {}, this.eventBus = e, this.slotStack = [], this._boundElements = [], this._onError = null, this._onComponentEvent = null;
1198
1281
  }
@@ -1264,7 +1347,7 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
1264
1347
  _applyVariants(e, t) {
1265
1348
  var n = t.attrs && t.attrs.v;
1266
1349
  if (!(!n || !e || e.nodeType !== 1)) {
1267
- var r = f[t.type];
1350
+ var r = p[t.type];
1268
1351
  if (r) {
1269
1352
  var i = e._variantTarget || e;
1270
1353
  n.split(",").map(function(e) {
@@ -1415,6 +1498,22 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
1415
1498
  _reportValidity(e) {
1416
1499
  return e ? typeof e.reportValidity == "function" ? e.reportValidity() : typeof e.checkValidity == "function" ? e.checkValidity() : !0 : !0;
1417
1500
  }
1501
+ _validateRuleFields(e) {
1502
+ if (!e || typeof e.querySelectorAll != "function") return !0;
1503
+ var t = null;
1504
+ if (e.querySelectorAll("[data-tokui-rule]").forEach(function(e) {
1505
+ typeof e._tokuiValidate == "function" && e._tokuiValidate() && !t && (t = e);
1506
+ }), t) {
1507
+ var n = t.querySelector("input, textarea, select");
1508
+ if (n && typeof n.focus == "function") try {
1509
+ n.focus();
1510
+ } catch {}
1511
+ }
1512
+ return !t;
1513
+ }
1514
+ _checkFormValidity(e) {
1515
+ return this._validateRuleFields(e) ? this._reportValidity(e) : !1;
1516
+ }
1418
1517
  _getNodeType(e) {
1419
1518
  if (e._tokuiType) return e._tokuiType;
1420
1519
  let t = e.className && e.className.match && e.className.match(/tokui-(\w+)/);
@@ -1453,7 +1552,7 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
1453
1552
  }
1454
1553
  var c = function(e) {
1455
1554
  if (e.preventDefault(), a) {
1456
- if (!t._reportValidity(a)) return;
1555
+ if (!t._checkFormValidity(a)) return;
1457
1556
  let n = a.getAttribute("data-tokui-sub"), r = n ? t.eventBus.getHandler(n) : null;
1458
1557
  r && r(t._collectFormData(a), e, a);
1459
1558
  return;
@@ -1465,7 +1564,7 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
1465
1564
  let e = n.getAttribute("data-tokui-form");
1466
1565
  e && (i = r(n, e));
1467
1566
  }
1468
- if (i && n.getAttribute("type") === "submit" && !t._reportValidity(i)) return;
1567
+ if (i && n.getAttribute("type") === "submit" && !t._checkFormValidity(i)) return;
1469
1568
  o(i ? t._collectFormData(i) : null, e, n);
1470
1569
  } else t._warnMissingHandler(i);
1471
1570
  };
@@ -1485,7 +1584,7 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
1485
1584
  let n = e.getAttribute("data-tokui-sub") || e.getAttribute("data-tokui-clk");
1486
1585
  if (n) {
1487
1586
  var r = function(r) {
1488
- if (r.preventDefault(), !t._reportValidity(e)) return;
1587
+ if (r.preventDefault(), !t._checkFormValidity(e)) return;
1489
1588
  let i = t.eventBus.getHandler(n);
1490
1589
  i ? i(t._collectFormData(e), r, e) : t._warnMissingHandler(n);
1491
1590
  };
@@ -1544,7 +1643,7 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
1544
1643
  }
1545
1644
  return;
1546
1645
  }
1547
- if (this._reportValidity(n) && (i ||= n.getAttribute("data-tokui-sub") || n.getAttribute("data-tokui-clk"), i)) {
1646
+ if (this._checkFormValidity(n) && (i ||= n.getAttribute("data-tokui-sub") || n.getAttribute("data-tokui-clk"), i)) {
1548
1647
  var o = this.eventBus.getHandler(i);
1549
1648
  o && o(this._collectFormData(n), null, n);
1550
1649
  }
@@ -1617,16 +1716,17 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
1617
1716
  }
1618
1717
  }
1619
1718
  };
1620
- typeof window < "u" && (window.TokUI = window.TokUI || {}, window.TokUI._internal = window.TokUI._internal || {}, window.TokUI._internal.el = s, window.TokUI._internal.VARIANTS = f, window.TokUI._internal.TokUIRenderer = p, window.TokUI._internal.resolveButtonAction = n, window.TokUI._internal.resolveTargetForm = r, window.TokUI._internal.resolvePrintScope = i, window.TokUI._internal.broadcastTokuiReset = a, window.TokUI._internal.parseOnSpec = c, window.TokUI._internal.debounce = d), t !== void 0 && t.exports && (t.exports = {
1719
+ typeof window < "u" && (window.TokUI = window.TokUI || {}, window.TokUI._internal = window.TokUI._internal || {}, window.TokUI._internal.el = s, window.TokUI._internal.VARIANTS = p, window.TokUI._internal.TokUIRenderer = m, window.TokUI._internal.resolveButtonAction = n, window.TokUI._internal.resolveTargetForm = r, window.TokUI._internal.resolvePrintScope = i, window.TokUI._internal.broadcastTokuiReset = a, window.TokUI._internal.parseOnSpec = c, window.TokUI._internal.debounce = d, window.TokUI._internal.evaluateRules = f), t !== void 0 && t.exports && (t.exports = {
1621
1720
  el: s,
1622
- TokUIRenderer: p,
1623
- VARIANTS: f,
1721
+ TokUIRenderer: m,
1722
+ VARIANTS: p,
1624
1723
  resolveButtonAction: n,
1625
1724
  resolveTargetForm: r,
1626
1725
  resolvePrintScope: i,
1627
1726
  broadcastTokuiReset: a,
1628
1727
  parseOnSpec: c,
1629
- debounce: d
1728
+ debounce: d,
1729
+ evaluateRules: f
1630
1730
  });
1631
1731
  })), g = /* @__PURE__ */ o(((e, t) => {
1632
1732
  var n = typeof l == "function" ? u().t : window.TokUI && window.TokUI._internal && window.TokUI._internal.t || function(e) {
@@ -7797,11 +7897,11 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
7797
7897
  var n = null, r = e._mountRoot;
7798
7898
  return r && typeof r.querySelector == "function" && (n = r.querySelector("[id=\"" + String(t).replace(/"/g, "\\\"") + "\"]")), n ||= document.getElementById(t), n;
7799
7899
  }
7800
- function m(t) {
7900
+ function v(t) {
7801
7901
  for (var n = t, r = e._mountRoot || null; n && !n._tokuiType && n.parentElement && n.parentElement !== r;) n = n.parentElement;
7802
7902
  return n || t;
7803
7903
  }
7804
- function _(t, n, r) {
7904
+ function y(t, n, r) {
7805
7905
  if (e._onComponentEvent) try {
7806
7906
  e._onComponentEvent({
7807
7907
  type: t,
@@ -7820,7 +7920,7 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
7820
7920
  r.forEach(function(e) {
7821
7921
  for (var n = u(e); n && typeof n._update != "function";) n = n.parentElement;
7822
7922
  n && typeof n._update == "function" && (n._update(t), i++);
7823
- }), _("upd", String(n), {
7923
+ }), y("upd", String(n), {
7824
7924
  applied: i > 0,
7825
7925
  targets: r.length,
7826
7926
  hits: i
@@ -7832,12 +7932,12 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
7832
7932
  if (n && typeof document < "u") {
7833
7933
  var r = !1, i = u(n);
7834
7934
  if (i) {
7835
- var a = m(i);
7935
+ var a = v(i);
7836
7936
  (e.slotStack || []).some(function(e) {
7837
7937
  return e.el === a || typeof a.contains == "function" && a.contains(e.el);
7838
7938
  }) ? console.warn("TokUI: del 目标 \"" + n + "\" 正在流式输出中(未闭合),已跳过;请在容器闭合后再发 del") : a.parentNode && (a.parentNode.removeChild(a), r = !0);
7839
7939
  }
7840
- _("del", String(n), { removed: r });
7940
+ y("del", String(n), { removed: r });
7841
7941
  }
7842
7942
  return document.createTextNode("");
7843
7943
  }), e.register("ins", (n, r) => {
@@ -7878,20 +7978,20 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
7878
7978
  if (t) {
7879
7979
  var r = u(t);
7880
7980
  if (r) {
7881
- var l = m(r), d, f;
7981
+ var l = v(r), d, f;
7882
7982
  if (i.into) {
7883
7983
  var p = l._tokuiType || "";
7884
7984
  c[p] ? console.warn("TokUI: ins into 不支持结构性容器 \"" + p + "\"(子节点有专用挂载协议),已跳过") : (d = l._slot || l, f = null);
7885
7985
  } else i.before ? (d = l.parentNode, f = l) : (d = l.parentNode, f = s(l));
7886
7986
  if (d) {
7887
- for (var h = []; a.childNodes.length > 0;) h.push(d.insertBefore(a.childNodes[0], f));
7888
- h.forEach(function(t) {
7987
+ for (var m = []; a.childNodes.length > 0;) m.push(d.insertBefore(a.childNodes[0], f));
7988
+ m.forEach(function(t) {
7889
7989
  t && t.nodeType === 1 && e.bindEvents(t);
7890
- }), n = h.length;
7990
+ }), n = m.length;
7891
7991
  }
7892
7992
  }
7893
7993
  }
7894
- _("ins", String(t || ""), { moved: n });
7994
+ y("ins", String(t || ""), { moved: n });
7895
7995
  }
7896
7996
  }
7897
7997
  var d = t("span", {
@@ -7902,18 +8002,63 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
7902
8002
  return d._tokuiType = "ins", d._slot = a, d._streamCloseHook = function() {
7903
8003
  l(), d.parentNode && d.parentNode.removeChild(d);
7904
8004
  }, n.children && n.children.length && l(), d;
7905
- }), e.register("md", (e) => {
8005
+ });
8006
+ function b(e) {
8007
+ var t = p("mermaid");
8008
+ if (!(!t || !e) && (String(e.innerHTML || "").indexOf("tokui-md__mermaid") !== -1 || typeof e.querySelector == "function" && e.querySelector(".tokui-md__mermaid"))) {
8009
+ var n = typeof e.querySelectorAll == "function" ? Array.prototype.slice.call(e.querySelectorAll(".tokui-md__mermaid")) : [], r = [];
8010
+ if (n.forEach(function(e) {
8011
+ if (!e._mermaidDone) {
8012
+ e._mermaidDone = !0;
8013
+ var t = typeof e.querySelector == "function" ? e.querySelector("code") : null;
8014
+ e.textContent = t ? t.textContent : e.textContent, r.push(e);
8015
+ }
8016
+ }), !(n.length && !r.length)) try {
8017
+ if (typeof t.run == "function") {
8018
+ var i = t.run({ nodes: r });
8019
+ i && typeof i.catch == "function" && i.catch(function() {});
8020
+ } else typeof t.init == "function" && t.init(void 0, r);
8021
+ } catch {}
8022
+ }
8023
+ }
8024
+ typeof window < "u" && window.TokUI && window.TokUI._internal && (window.TokUI._internal.runMdMermaid = b, window.TokUI._internal.simpleMarkdown = _, window.TokUI._internal.renderKatexHtml = m), e.register("md", (e) => {
7906
8025
  let n = t("div", { class: "tokui-md" }), r = "";
7907
- return r = e.children && e.children.length > 0 ? e.children.map((e) => e.content || "").join("") : e.content || "", r && (n.innerHTML = p(r), f(n)), n._streamCloseHook = function() {
8026
+ return r = e.children && e.children.length > 0 ? e.children.map((e) => e.content || "").join("") : e.content || "", r && (n._rawMd = r, n.innerHTML = _(r), f(n), b(n)), n._streamCloseHook = function() {
7908
8027
  let e = "";
7909
8028
  for (let t of Array.from(n.childNodes)) t.nodeType === 3 && (e += t.textContent);
7910
- e && (n.innerHTML = p(e), f(n));
8029
+ e && (n._rawMd = e, n.innerHTML = _(e), f(n), b(n));
7911
8030
  }, n._tokuiType = "md", n;
8031
+ }), e.register("katex", (e) => {
8032
+ var n = e.attrs && e.attrs.f, r = !n, i = t("div", { class: "tokui-katex" + (r ? " tokui-katex--block" : " tokui-katex--inline") }), a = function() {
8033
+ return n || (e.children && e.children.length ? e.children.map(function(e) {
8034
+ return e.content || "";
8035
+ }).join("") : e.content || "");
8036
+ }();
8037
+ return a && (i._rawMd = a, i.innerHTML = m(a, r)), i._streamCloseHook = function() {
8038
+ var e = "";
8039
+ for (let t of Array.from(i.childNodes)) t.nodeType === 3 && (e += t.textContent);
8040
+ e && (i._rawMd = e, i.innerHTML = m(e, !0));
8041
+ }, i._slot = i, i._tokuiType = "katex", i;
8042
+ }), e.register("mermaid", (e) => {
8043
+ var n = t("div", { class: "tokui-mermaid" }), r = function() {
8044
+ return e.children && e.children.length ? e.children.map(function(e) {
8045
+ return e.content || "";
8046
+ }).join("") : e.content || "";
8047
+ }, i = function(e) {
8048
+ n.innerHTML = "";
8049
+ var r = t("div", { class: "tokui-md__mermaid" }), i = t("pre", { class: "tokui-code" }), a = t("code", { class: "language-mermaid" }, e);
8050
+ i.appendChild(a), r.appendChild(i), n.appendChild(r), n._rawMd = e, b(n);
8051
+ }, a = r();
8052
+ return a && i(a), n._streamCloseHook = function() {
8053
+ var e = "";
8054
+ for (let t of Array.from(n.childNodes)) t.nodeType === 3 && (e += t.textContent);
8055
+ e && i(e);
8056
+ }, n._slot = n, n._tokuiType = "mermaid", n;
7912
8057
  });
7913
- function v(e) {
8058
+ function x(e) {
7914
8059
  return String(e).replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
7915
8060
  }
7916
- function y(e) {
8061
+ function S(e) {
7917
8062
  return e.split("\n").map(function(e) {
7918
8063
  return "<span class=\"code-line\">" + (e || " ") + "</span>";
7919
8064
  }).join("");
@@ -7923,7 +8068,7 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
7923
8068
  var c = "";
7924
8069
  c = e.children && e.children.length > 0 ? e.children.map((e) => e.content || "").join("") : e.content || "";
7925
8070
  function l() {
7926
- o !== "text" && i[o] ? s.innerHTML = y(a(c, o)) : s.innerHTML = y(v(c));
8071
+ o !== "text" && i[o] ? s.innerHTML = S(a(c, o)) : s.innerHTML = S(x(c));
7927
8072
  }
7928
8073
  l(), r.appendChild(s), r._slot = s, r._tokuiType = "code";
7929
8074
  var u = t("button", {
@@ -8114,23 +8259,23 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
8114
8259
  g.textContent = "↓", d.appendChild(g);
8115
8260
  }
8116
8261
  return d;
8117
- }), e.register("bubble", (e, n) => {
8118
- var r = e.attrs || {}, i = r.role || "ai", a = r.model || "", o = r.time || "", s = t("div", { class: "tokui-bubble tokui-bubble--" + i }), c = t("div", { class: "tokui-bubble__row" }), l = t("span", { class: "tokui-bubble__avatar" });
8119
- l.textContent = i === "user" ? "You" : "AI", c.appendChild(l);
8120
- var u = t("div", { class: "tokui-bubble__content" }), d = t("div", { class: "tokui-bubble__header" }), f = t("span", {});
8121
- if (f.textContent = i === "user" ? "You" : i === "system" ? "System" : "Assistant", d.appendChild(f), a) {
8122
- var p = t("span", { class: "tokui-badge tokui-badge--info tokui-badge--pill" });
8123
- p.textContent = a, d.appendChild(p);
8262
+ }), e.register("bubble", (e, r) => {
8263
+ var i = e.attrs || {}, a = i.role || "ai", o = i.model || "", s = i.time || "", c = t("div", { class: "tokui-bubble tokui-bubble--" + a }), l = t("div", { class: "tokui-bubble__row" }), u = t("span", { class: "tokui-bubble__avatar" });
8264
+ u.textContent = n(a === "user" ? "bubble.you" : "bubble.ai"), l.appendChild(u);
8265
+ var d = t("div", { class: "tokui-bubble__content" }), f = t("div", { class: "tokui-bubble__header" }), p = t("span", {});
8266
+ if (p.textContent = n(a === "user" ? "bubble.you" : a === "system" ? "bubble.system" : "bubble.assistant"), f.appendChild(p), o) {
8267
+ var m = t("span", { class: "tokui-badge tokui-badge--info tokui-badge--pill" });
8268
+ m.textContent = o, f.appendChild(m);
8124
8269
  }
8125
- u.appendChild(d);
8126
- var m = t("div", { class: "tokui-bubble__body" });
8127
- if (n(e.children || []).forEach(function(e) {
8128
- e && e.nodeType && m.appendChild(e);
8129
- }), u.appendChild(m), o) {
8130
- var h = t("div", { class: "tokui-bubble__time" });
8131
- h.textContent = o, u.appendChild(h);
8270
+ d.appendChild(f);
8271
+ var h = t("div", { class: "tokui-bubble__body" });
8272
+ if (r(e.children || []).forEach(function(e) {
8273
+ e && e.nodeType && h.appendChild(e);
8274
+ }), d.appendChild(h), s) {
8275
+ var g = t("div", { class: "tokui-bubble__time" });
8276
+ g.textContent = s, d.appendChild(g);
8132
8277
  }
8133
- return c.appendChild(u), s.appendChild(c), m._slot = m, m._tokuiType = "bubble", s._slot = m, s._tokuiType = "bubble", s;
8278
+ return l.appendChild(d), c.appendChild(l), h._slot = h, h._tokuiType = "bubble", c._slot = h, c._tokuiType = "bubble", c;
8134
8279
  }), e.register("toolbar", (e, n) => {
8135
8280
  var r = e.attrs || {}, i = r.pos || "bottom", a = r.align || "right", o = t("div", { class: "tokui-toolbar tokui-toolbar--" + i + " tokui-toolbar--" + a });
8136
8281
  return n(e.children || []).forEach(function(e) {
@@ -8659,7 +8804,7 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
8659
8804
  });
8660
8805
  c && (d.id = c);
8661
8806
  var f = t("div", { class: "tokui-field" });
8662
- a.l && f.appendChild(t("label", { class: "tokui-label" }, a.l));
8807
+ a.l && f.appendChild(t("label", { class: "tokui-label" + (a.req === void 0 ? "" : " tokui-label--req") }, a.l));
8663
8808
  var p = t("div", { class: "tokui-input-tag__box" }), m = t("div", {
8664
8809
  class: "tokui-input-tag__list",
8665
8810
  role: "list"
@@ -9128,7 +9273,87 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
9128
9273
  u && p.addEventListener("input", function() {
9129
9274
  p.style.height = "auto", p.style.height = p.scrollHeight + "px";
9130
9275
  });
9131
- function y() {
9276
+ var y = a.mention || "";
9277
+ if (y) {
9278
+ var b = t("div", {
9279
+ class: "tokui-chat-input__mention",
9280
+ role: "listbox"
9281
+ });
9282
+ b.style.display = "none", f.appendChild(b);
9283
+ var x = [], S = -1, C = null, w = function() {
9284
+ b.style.display = "none", x = [], S = -1, C = null;
9285
+ }, T = function() {
9286
+ var e = p.selectionStart == null ? (p.value || "").length : p.selectionStart, t = (p.value || "").slice(0, e).match(/(^|\s)@([^\s@]*)$/);
9287
+ return t ? {
9288
+ query: t[2],
9289
+ start: e - t[2].length - 1,
9290
+ end: e
9291
+ } : null;
9292
+ }, E = function(e) {
9293
+ var t = x[e];
9294
+ if (!(!t || !C)) {
9295
+ var n = typeof t == "string" ? t : t.v == null ? t.tx : t.v, r = typeof t == "string" ? t : t.tx == null ? t.v : t.tx, i = p.value || "";
9296
+ p.value = i.slice(0, C.start) + "@" + r + " " + i.slice(C.end);
9297
+ var o = C.start + String(r).length + 2;
9298
+ typeof p.setSelectionRange == "function" && p.setSelectionRange(o, o), g("mention", {
9299
+ value: n,
9300
+ name: a.n || void 0
9301
+ }), w(), typeof p.focus == "function" && p.focus();
9302
+ }
9303
+ }, D = function(e) {
9304
+ if (b.innerHTML = "", x = e.slice(0, 8), !x.length) {
9305
+ w();
9306
+ return;
9307
+ }
9308
+ S = 0, x.forEach(function(e, n) {
9309
+ var r = typeof e == "string" ? e : e.tx == null ? e.v : e.tx, i = t("div", {
9310
+ class: "tokui-chat-input__mention-item" + (n === 0 ? " tokui-chat-input__mention-item--active" : ""),
9311
+ role: "option"
9312
+ }, r);
9313
+ i.addEventListener("mousedown", function(e) {
9314
+ e && e.preventDefault && e.preventDefault(), E(n);
9315
+ }), b.appendChild(i);
9316
+ }), b.style.display = "";
9317
+ };
9318
+ p.addEventListener("keydown", function(e) {
9319
+ if (b.style.display !== "none") if (e.key === "ArrowDown" || e.key === "ArrowUp") {
9320
+ e.preventDefault && e.preventDefault(), e._tokuiMentionHandled = !0, S = (S + (e.key === "ArrowDown" ? 1 : -1) + x.length) % x.length;
9321
+ for (var t = 0; t < b.childNodes.length; t++) {
9322
+ var n = b.childNodes[t];
9323
+ n.classList && (t === S ? n.classList.add("tokui-chat-input__mention-item--active") : n.classList.remove("tokui-chat-input__mention-item--active"));
9324
+ }
9325
+ } else e.key === "Enter" || e.key === "Tab" ? (e.preventDefault && e.preventDefault(), e._tokuiMentionHandled = !0, E(S)) : e.key === "Escape" && (e._tokuiMentionHandled = !0, w());
9326
+ }), p.addEventListener("input", function() {
9327
+ var t = T();
9328
+ if (!t) {
9329
+ w();
9330
+ return;
9331
+ }
9332
+ if (e.eventBus) {
9333
+ var n = e.eventBus.getHandler(y);
9334
+ if (!n) {
9335
+ e._warnMissingHandler(y), w();
9336
+ return;
9337
+ }
9338
+ C = t;
9339
+ var r;
9340
+ try {
9341
+ r = n({ value: t.query });
9342
+ } catch (e) {
9343
+ console.warn("TokUI: mention 数据源异常", e), w();
9344
+ return;
9345
+ }
9346
+ r && typeof r.then == "function" ? r.then(function(e) {
9347
+ C && C.query === t.query && Array.isArray(e) && D(e);
9348
+ }).catch(function() {
9349
+ w();
9350
+ }) : Array.isArray(r) ? D(r) : w();
9351
+ }
9352
+ }), p.addEventListener("blur", function() {
9353
+ setTimeout(w, 150);
9354
+ });
9355
+ }
9356
+ function O() {
9132
9357
  if (!c) {
9133
9358
  var t = p.value || "";
9134
9359
  if (t.trim()) {
@@ -9141,9 +9366,9 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
9141
9366
  }
9142
9367
  }
9143
9368
  return p.addEventListener("keydown", function(e) {
9144
- e.key === "Enter" && !e.shiftKey && (e.preventDefault(), y());
9369
+ e._tokuiMentionHandled || e.key === "Enter" && !e.shiftKey && (e.preventDefault(), O());
9145
9370
  }), h.addEventListener("click", function() {
9146
- y();
9371
+ O();
9147
9372
  }), f._update = function(e) {
9148
9373
  e.dis !== void 0 && (c = !!e.dis, c ? (p.setAttribute("disabled", ""), p.classList.add("tokui-chat-input__textarea--disabled"), h.setAttribute("disabled", ""), h.classList.add("tokui-chat-input__send--disabled")) : (p.removeAttribute("disabled"), p.classList.remove("tokui-chat-input__textarea--disabled"), h.removeAttribute("disabled"), h.classList.remove("tokui-chat-input__send--disabled"))), e.streaming !== void 0 && (e.streaming !== "false" && e.streaming !== !1 ? f.classList.add("tokui-chat-input--streaming") : f.classList.remove("tokui-chat-input--streaming"));
9149
9374
  }, f._slot = p, f._tokuiType = "chat-input", f;
@@ -9344,7 +9569,7 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
9344
9569
  }
9345
9570
  return s.appendChild(l), s;
9346
9571
  });
9347
- function b(e, n) {
9572
+ function C(e, n) {
9348
9573
  e.innerHTML = "";
9349
9574
  var r = n.split("\n"), i = 0, a = 0;
9350
9575
  r.forEach(function(n) {
@@ -9371,7 +9596,7 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
9371
9596
  return e.content || "";
9372
9597
  }).join("") : e.content || "";
9373
9598
  function u() {
9374
- b(c, l);
9599
+ C(c, l);
9375
9600
  }
9376
9601
  return u(), i.appendChild(c), i._slot = c, i._tokuiType = "diff", i._streamAppendHook = function(e) {
9377
9602
  e && e.type === "_text" && e.content && (l += e.content, u());
@@ -9493,22 +9718,32 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
9493
9718
  c.textContent = i, a.appendChild(c);
9494
9719
  }
9495
9720
  return a;
9496
- }), e.register("terminal", (e, n) => {
9497
- var r = e.attrs || {}, i = r.title || "Terminal", a = r.status || "", o = t("div", { class: "tokui-terminal" + (a && a !== "0" ? " tokui-terminal--error" : "") }), s = t("div", { class: "tokui-terminal__titlebar" }), c = t("span", { class: "tokui-terminal__dots" });
9721
+ }), e.register("terminal", (e, r) => {
9722
+ var i = e.attrs || {}, a = i.title || "Terminal", o = i.status || "", s = t("div", { class: "tokui-terminal" + (o && o !== "0" ? " tokui-terminal--error" : "") }), c = t("div", { class: "tokui-terminal__titlebar" }), l = t("span", { class: "tokui-terminal__dots" });
9498
9723
  [
9499
9724
  "🔴",
9500
9725
  "🟡",
9501
9726
  "🟢"
9502
9727
  ].forEach(function(e) {
9503
9728
  var n = t("span", { class: "tokui-terminal__dot" });
9504
- n.textContent = e, c.appendChild(n);
9505
- }), s.appendChild(c);
9506
- var l = t("span", { class: "tokui-terminal__title" });
9507
- l.textContent = i, s.appendChild(l), o.appendChild(s);
9508
- var u = t("div", { class: "tokui-terminal__content" });
9509
- return e.content && (u.textContent = e.content), n(e.children || []).forEach(function(e) {
9510
- e && e.nodeType && u.appendChild(e);
9511
- }), o.appendChild(u), o._slot = u, o._tokuiType = "terminal", o;
9729
+ n.textContent = e, l.appendChild(n);
9730
+ }), c.appendChild(l);
9731
+ var u = t("span", { class: "tokui-terminal__title" });
9732
+ u.textContent = a, c.appendChild(u), s.appendChild(c);
9733
+ var d = t("div", { class: "tokui-terminal__content" });
9734
+ e.content && (d.textContent = e.content), r(e.children || []).forEach(function(e) {
9735
+ e && e.nodeType && d.appendChild(e);
9736
+ }), s.appendChild(d);
9737
+ var f = t("button", {
9738
+ class: "tokui-terminal__copy",
9739
+ type: "button"
9740
+ });
9741
+ return f.textContent = n("actions.copy"), f.addEventListener("click", function() {
9742
+ var e = d.textContent || "";
9743
+ typeof navigator < "u" && navigator.clipboard && navigator.clipboard.writeText(e), f.textContent = n("common.copied"), f.classList.add("tokui-terminal__copy--done"), setTimeout(function() {
9744
+ f.textContent = n("actions.copy"), f.classList.remove("tokui-terminal__copy--done");
9745
+ }, 2e3);
9746
+ }), c.appendChild(f), s._slot = d, s._tokuiType = "terminal", s;
9512
9747
  }), e.register("shimmer", (e) => {
9513
9748
  var n = e.attrs || {}, r = n.t || "text", i = parseInt(n.rows) || 3, a = t("div", { class: "tokui-shimmer tokui-shimmer--" + r });
9514
9749
  if (r === "card") {
@@ -9696,7 +9931,7 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
9696
9931
  e && e.nodeType && c.appendChild(e);
9697
9932
  }), i.appendChild(c), i._slot = c, i._tokuiType = "test-result", i;
9698
9933
  });
9699
- function x(e) {
9934
+ function w(e) {
9700
9935
  var n = e.attrs || {}, r = n.status || "pass", i = t("div", {
9701
9936
  class: "tokui-test-case tokui-test-case--" + r,
9702
9937
  "data-tokui-tag": e.type
@@ -9717,7 +9952,7 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
9717
9952
  }
9718
9953
  return i;
9719
9954
  }
9720
- e.register("test-case", (e) => x(e)), e.register("case", (e) => x(e)), e.register("conversations", (r, i) => {
9955
+ e.register("test-case", (e) => w(e)), e.register("case", (e) => w(e)), e.register("conversations", (r, i) => {
9721
9956
  var a = r.attrs || {}, o = a.clk || "", s = a.act || "", c = t("div", {
9722
9957
  class: "tokui-conversations",
9723
9958
  role: "list"
@@ -9727,26 +9962,26 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
9727
9962
  if (u.length === 0) return d = t("div", { class: "tokui-conversations__empty" }), d.textContent = n("chat.emptySessions"), c.appendChild(d), c._slot = c, c._tokuiType = "conversations", c._convHandlerName = o, c._convActiveAct = s, c._streamCloseHook = function() {
9728
9963
  c.querySelector(".tokui-conv") && d && d.parentNode && d.parentNode.removeChild(d);
9729
9964
  }, c;
9730
- var f = C(u);
9965
+ var f = E(u);
9731
9966
  return f.forEach(function(e) {
9732
9967
  if (f.length > 1) {
9733
9968
  var n = t("div", { class: "tokui-conversations__group-header" });
9734
9969
  n.textContent = e.label, c.appendChild(n);
9735
9970
  }
9736
9971
  e.items.forEach(function(e) {
9737
- var t = w(e, o, s, c, l);
9972
+ var t = D(e, o, s, c, l);
9738
9973
  c.appendChild(t);
9739
9974
  });
9740
9975
  }), c._slot = c, c._tokuiType = "conversations", c;
9741
- }), e.register("conv", (e) => w(e, "", "", null, null));
9742
- function S(e) {
9976
+ }), e.register("conv", (e) => D(e, "", "", null, null));
9977
+ function T(e) {
9743
9978
  return /^\d{1,2}:\d{2}$/.test(e);
9744
9979
  }
9745
- function C(e) {
9980
+ function E(e) {
9746
9981
  var t = [], r = [], i = [];
9747
9982
  e.forEach(function(e) {
9748
9983
  var n = e.attrs && e.attrs.time || "";
9749
- S(n) ? t.push(e) : n === "昨天" ? r.push(e) : i.push(e);
9984
+ T(n) ? t.push(e) : n === "昨天" ? r.push(e) : i.push(e);
9750
9985
  });
9751
9986
  var a = [];
9752
9987
  return t.length && a.push({
@@ -9763,7 +9998,7 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
9763
9998
  items: e
9764
9999
  }];
9765
10000
  }
9766
- function w(e, r, i, a, o) {
10001
+ function D(e, r, i, a, o) {
9767
10002
  var s = e.attrs || {}, c = s.tt || "", l = s.time || "", u = s.id || c, d = s.active === !0 || s.active === "true";
9768
10003
  !d && i && s.act && s.act === i && (d = !0);
9769
10004
  var f = ["tokui-conv"];
@@ -9840,7 +10075,7 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
9840
10075
  }
9841
10076
  return l._slot = h, l._tokuiType = "welcome", l;
9842
10077
  });
9843
- function T(e) {
10078
+ function O(e) {
9844
10079
  var n = e.attrs || {}, r = n.tt || "", i = n.tx || "", a = n.i || "code", o = n.clk || "", s = {
9845
10080
  code: "<svg viewBox=\"0 0 24 24\" width=\"24\" height=\"24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"16 18 22 12 16 6\"/><polyline points=\"8 6 2 12 8 18\"/></svg>",
9846
10081
  chart: "<svg viewBox=\"0 0 24 24\" width=\"24\" height=\"24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"18\" y1=\"20\" x2=\"18\" y2=\"10\"/><line x1=\"12\" y1=\"20\" x2=\"12\" y2=\"4\"/><line x1=\"6\" y1=\"20\" x2=\"6\" y2=\"14\"/></svg>",
@@ -9872,7 +10107,7 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
9872
10107
  }
9873
10108
  return l.appendChild(d), l._tokuiType = "welcome-feature", l;
9874
10109
  }
9875
- e.register("welcome-feature", (e) => T(e)), e.register("feature", (e) => T(e)), e.register("attachments", (e, n) => {
10110
+ e.register("welcome-feature", (e) => O(e)), e.register("feature", (e) => O(e)), e.register("attachments", (e, n) => {
9876
10111
  var r = (e.attrs || {}).clk || "", i = t("div", { class: "tokui-attachments" });
9877
10112
  return r && i.setAttribute("data-tokui-clk", r), n(e.children || []).forEach(function(e) {
9878
10113
  e && e.nodeType && i.appendChild(e);
@@ -9956,20 +10191,20 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
9956
10191
  "aria-label": "Close"
9957
10192
  });
9958
10193
  h.innerHTML = "&times;", u.appendChild(h), l.appendChild(u);
9959
- var g = t("div", { class: "tokui-artifact__code" }), _ = "", b = (n.children || []).filter(function(e) {
10194
+ var g = t("div", { class: "tokui-artifact__code" }), _ = "", v = (n.children || []).filter(function(e) {
9960
10195
  return e.type === "artifact-code";
9961
10196
  });
9962
- b.length > 0 && (_ = (b[0].children || []).map(function(e) {
10197
+ v.length > 0 && (_ = (v[0].children || []).map(function(e) {
9963
10198
  return e.content || "";
9964
10199
  }).join(""));
9965
- var x = t("pre", { class: "tokui-code" }), S = t("code", { class: "language-" + c });
9966
- c !== "text" && i[c] ? S.innerHTML = y(a(_, c)) : S.innerHTML = y(v(_)), x.appendChild(S), g.appendChild(x);
10200
+ var y = t("pre", { class: "tokui-code" }), b = t("code", { class: "language-" + c });
10201
+ c !== "text" && i[c] ? b.innerHTML = S(a(_, c)) : b.innerHTML = S(x(_)), y.appendChild(b), g.appendChild(y);
9967
10202
  var C = t("button", {
9968
10203
  class: "tokui-artifact__code-copy",
9969
10204
  type: "button"
9970
10205
  });
9971
10206
  C.textContent = "Copy", C.addEventListener("click", function() {
9972
- var e = S.textContent || "";
10207
+ var e = b.textContent || "";
9973
10208
  typeof navigator < "u" && navigator.clipboard && navigator.clipboard.writeText(e), C.textContent = "Copied", C.classList.add("tokui-artifact__code-copy--done"), setTimeout(function() {
9974
10209
  C.textContent = "Copy", C.classList.remove("tokui-artifact__code-copy--done");
9975
10210
  }, 2e3);
@@ -10015,7 +10250,7 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
10015
10250
  function j() {
10016
10251
  k = !1, document.removeEventListener("mousemove", A), document.removeEventListener("mouseup", j);
10017
10252
  }
10018
- return l._slot = S, l._tokuiType = "artifact", l._artifactCode = _, setTimeout(function() {
10253
+ return l._slot = b, l._tokuiType = "artifact", l._artifactCode = _, setTimeout(function() {
10019
10254
  l.querySelectorAll(".tokui-artifact-preview-standalone").forEach(function(e) {
10020
10255
  e.parentNode && e.parentNode.removeChild(e);
10021
10256
  });
@@ -10037,7 +10272,7 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
10037
10272
  }
10038
10273
  t ||= l._artifactCode || "";
10039
10274
  }
10040
- c !== "text" && i[c] ? S.innerHTML = y(a(t, c)) : S.innerHTML = y(v(t)), l._artifactCode = t;
10275
+ c !== "text" && i[c] ? b.innerHTML = S(a(t, c)) : b.innerHTML = S(x(t)), l._artifactCode = t;
10041
10276
  var u = "";
10042
10277
  u = c === "html" ? t : "<pre style=\"margin:0;padding:16px;font-family:monospace;font-size:13px;white-space:pre-wrap;word-break:break-word;\">" + t.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;") + "</pre>", T.setAttribute("srcdoc", u);
10043
10278
  var d = l.querySelector(".tokui-artifact-preview-standalone");
@@ -10200,7 +10435,7 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
10200
10435
  g(), y(d.value || "");
10201
10436
  }, o;
10202
10437
  });
10203
- function E(e) {
10438
+ function k(e) {
10204
10439
  var n = e.attrs || {}, r = n.tx || "", i = n.v || r, a = t("div", {
10205
10440
  class: "tokui-command__item",
10206
10441
  role: "option",
@@ -10244,7 +10479,7 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
10244
10479
  }), a.classList.add("tokui-command__item--selected"), a.setAttribute("aria-selected", "true"));
10245
10480
  }), a;
10246
10481
  }
10247
- typeof window < "u" && window.TokUI && window.TokUI._internal && (window.TokUI._internal.buildCommandItem = E), e.register("command-group", (e, n) => {
10482
+ typeof window < "u" && window.TokUI && window.TokUI._internal && (window.TokUI._internal.buildCommandItem = k), e.register("command-group", (e, n) => {
10248
10483
  var r = (e.attrs || {}).tt || "", i = t("div", {
10249
10484
  class: "tokui-command__group",
10250
10485
  role: "group"
@@ -10257,7 +10492,7 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
10257
10492
  return n(e.children || []).forEach(function(e) {
10258
10493
  e && e.nodeType && i.appendChild(e);
10259
10494
  }), i._slot = i, i._tokuiType = "command-group", i;
10260
- }), e.register("command-item", (e) => E(e)), e.register("canvas", (e, n) => {
10495
+ }), e.register("command-item", (e) => k(e)), e.register("canvas", (e, n) => {
10261
10496
  var r = e.attrs || {}, i = r.tt || "Canvas", a = r.pos || "right", o = parseInt(r.w) || 400, s = r.open !== void 0, c = r.closable === void 0 || r.closable === !0, l = ["tokui-canvas", "tokui-canvas--" + a];
10262
10497
  s && l.push("tokui-canvas--open");
10263
10498
  var u = t("div", { class: l.join(" ") });
@@ -10351,6 +10586,20 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
10351
10586
  });
10352
10587
  }
10353
10588
  function p(e) {
10589
+ return typeof window < "u" && window && window[e] ? window[e] : null;
10590
+ }
10591
+ function m(e, t) {
10592
+ var n = null;
10593
+ if (typeof window < "u" && window.katex && (n = window.katex), n && typeof n.renderToString == "function") try {
10594
+ var r = n.renderToString(e, {
10595
+ throwOnError: !1,
10596
+ displayMode: t
10597
+ });
10598
+ return t ? "<div class=\"tokui-md__math tokui-md__math--block\">" + r + "</div>" : "<span class=\"tokui-md__math\">" + r + "</span>";
10599
+ } catch {}
10600
+ return (t ? "$$" + e + "$$" : "$" + e + "$").replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
10601
+ }
10602
+ function _(e) {
10354
10603
  if (!e) return "";
10355
10604
  function t(e) {
10356
10605
  return e.trim().replace(/^\|/, "").replace(/\|$/, "").split("|").map(function(e) {
@@ -10373,74 +10622,101 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
10373
10622
  }), e;
10374
10623
  }
10375
10624
  var s = [];
10376
- return e = e.replace(/```(\w*)\n([\s\S]*?)```/g, function(e, t, n) {
10625
+ e = e.replace(/```(\w*)\n([\s\S]*?)```/g, function(e, t, n) {
10377
10626
  var r = s.length;
10378
10627
  return s.push({
10379
10628
  lang: t,
10380
10629
  code: n.replace(/\n$/, "")
10381
10630
  }), "CODEFENCE" + r + "";
10382
- }), e = e.replace(/^(?:\*{3,}|-{3,}|_{3,})\s*$/gm, "TOKUIHR"), e.split(/\n{2,}/).map(function(e) {
10631
+ });
10632
+ var c = [];
10633
+ e = e.replace(/\$\$([\s\S]+?)\$\$/g, function(e, t) {
10634
+ var n = c.length;
10635
+ return c.push({
10636
+ tex: t,
10637
+ display: !0
10638
+ }), "TOKUIMATH" + n + "";
10639
+ }), e = e.replace(/\$([^\s$](?:[^$\n]*[^\s$])?)\$(?!\d)/g, function(e, t) {
10640
+ var n = c.length;
10641
+ return c.push({
10642
+ tex: t,
10643
+ display: !1
10644
+ }), "TOKUIMATH" + n + "";
10645
+ });
10646
+ function l(e) {
10647
+ return m(e.tex, e.display);
10648
+ }
10649
+ function u(e) {
10650
+ return e.replace(/\x02TOKUIMATH(\d+)\x03/g, function(e, t) {
10651
+ return l(c[parseInt(t)]);
10652
+ });
10653
+ }
10654
+ return e = e.replace(/^(?:\*{3,}|-{3,}|_{3,})\s*$/gm, "TOKUIHR"), e.split(/\n{2,}/).map(function(e) {
10383
10655
  if (e = e.trim(), !e) return "";
10384
10656
  var r = e.match(/^\x02CODEFENCE(\d+)\x03$/);
10385
10657
  if (r) {
10386
- var c = s[parseInt(r[1])], l = c.lang || "text", u = i[l] ? a(c.code, l) : c.code.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
10387
- return "<pre class=\"tokui-code\"><code class=\"language-" + l + "\">" + u + "</code></pre>";
10388
- }
10389
- e = o(e);
10390
- for (var d = e.split("\n"), f = [], p = !1, m = !1, h = !1, g = !1, _ = -1, v = 0; v < d.length; v++) if (d[v].trim().indexOf("|") === 0) {
10391
- _ = v;
10658
+ var d = s[parseInt(r[1])], f = d.lang || "text";
10659
+ if (f === "mermaid") return "<div class=\"tokui-md__mermaid\"><pre class=\"tokui-code\"><code class=\"language-mermaid\">" + d.code.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;") + "</code></pre></div>";
10660
+ var p = i[f] ? a(d.code, f) : d.code.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;");
10661
+ return "<pre class=\"tokui-code\"><code class=\"language-" + f + "\">" + p + "</code></pre>";
10662
+ }
10663
+ var m = e.match(/^\x02TOKUIMATH(\d+)\x03$/);
10664
+ if (m && c[parseInt(m[1])].display) return l(c[parseInt(m[1])]);
10665
+ e = o(e), e = u(e);
10666
+ for (var h = e.split("\n"), g = [], _ = !1, v = !1, y = !1, b = !1, x = -1, S = 0; S < h.length; S++) if (h[S].trim().indexOf("|") === 0) {
10667
+ x = S;
10392
10668
  break;
10393
10669
  }
10394
- if (_ !== -1) {
10395
- for (var y = [], b = _, x = _; x < d.length && d[x].trim().indexOf("|") === 0; x++) y.push(d[x]), b = x;
10396
- if (y.length >= 2 && /^\|[\s\-:|]+\|$/.test(y[1].trim())) {
10397
- for (var S = 0; S < _; S++) F(d[S]);
10398
- g = !0;
10399
- for (var C = n(y[1]), w = "<table class=\"tokui-md-table\"><thead><tr>", T = t(y[0]), E = 0; E < T.length; E++) {
10400
- var D = C[E] || "left";
10401
- w += "<th style=\"text-align:" + D + "\">" + T[E] + "</th>";
10670
+ if (x !== -1) {
10671
+ for (var C = [], w = x, T = x; T < h.length && h[T].trim().indexOf("|") === 0; T++) C.push(h[T]), w = T;
10672
+ if (C.length >= 2 && /^\|[\s\-:|]+\|$/.test(C[1].trim())) {
10673
+ for (var E = 0; E < x; E++) z(h[E]);
10674
+ b = !0;
10675
+ for (var D = n(C[1]), O = "<table class=\"tokui-md-table\"><thead><tr>", k = t(C[0]), A = 0; A < k.length; A++) {
10676
+ var j = D[A] || "left";
10677
+ O += "<th style=\"text-align:" + j + "\">" + k[A] + "</th>";
10402
10678
  }
10403
- w += "</tr></thead><tbody>";
10404
- for (var O = 2; O < y.length; O++) {
10405
- var k = t(y[O]);
10406
- w += "<tr>";
10407
- for (var A = 0; A < k.length; A++) {
10408
- var j = C[A] || "left";
10409
- w += "<td style=\"text-align:" + j + "\">" + k[A] + "</td>";
10679
+ O += "</tr></thead><tbody>";
10680
+ for (var M = 2; M < C.length; M++) {
10681
+ var N = t(C[M]);
10682
+ O += "<tr>";
10683
+ for (var P = 0; P < N.length; P++) {
10684
+ var F = D[P] || "left";
10685
+ O += "<td style=\"text-align:" + F + "\">" + N[P] + "</td>";
10410
10686
  }
10411
- w += "</tr>";
10687
+ O += "</tr>";
10412
10688
  }
10413
- w += "</tbody></table>", f.push(w);
10414
- for (var M = b + 1; M < d.length; M++) F(d[M]);
10415
- p && f.push("</ul>"), m && f.push("</ol>"), h && f.push("</blockquote>");
10416
- var N = f.join("");
10417
- return g ? N : "<p>" + N + "</p>";
10418
- }
10419
- }
10420
- for (var P = 0; P < d.length; P++) F(d[P]);
10421
- p && f.push("</ul>"), m && f.push("</ol>"), h && f.push("</blockquote>");
10422
- var N = f.join("");
10423
- if (!g) return "<p>" + N + "</p>";
10424
- return N;
10425
- function F(e) {
10689
+ O += "</tbody></table>", g.push(O);
10690
+ for (var I = w + 1; I < h.length; I++) z(h[I]);
10691
+ _ && g.push("</ul>"), v && g.push("</ol>"), y && g.push("</blockquote>");
10692
+ var L = g.join("");
10693
+ return b ? L : "<p>" + L + "</p>";
10694
+ }
10695
+ }
10696
+ for (var R = 0; R < h.length; R++) z(h[R]);
10697
+ _ && g.push("</ul>"), v && g.push("</ol>"), y && g.push("</blockquote>");
10698
+ var L = g.join("");
10699
+ if (!b) return "<p>" + L + "</p>";
10700
+ return L;
10701
+ function z(e) {
10426
10702
  if (e.trim() === "TOKUIHR" || /^(\*{3,}|-{3,}|_{3,})\s*$/.test(e.trim())) {
10427
- p &&= (f.push("</ul>"), !1), m &&= (f.push("</ol>"), !1), h &&= (f.push("</blockquote>"), !1), g = !0, f.push("<hr class=\"tokui-md__hr\">");
10703
+ _ &&= (g.push("</ul>"), !1), v &&= (g.push("</ol>"), !1), y &&= (g.push("</blockquote>"), !1), b = !0, g.push("<hr class=\"tokui-md__hr\">");
10428
10704
  return;
10429
10705
  }
10430
10706
  if (e.match(/^&gt;\s*/)) {
10431
- p &&= (f.push("</ul>"), !1), m &&= (f.push("</ol>"), !1), h ||= (f.push("<blockquote class=\"tokui-md__quote\">"), !0), g = !0;
10707
+ _ &&= (g.push("</ul>"), !1), v &&= (g.push("</ol>"), !1), y ||= (g.push("<blockquote class=\"tokui-md__quote\">"), !0), b = !0;
10432
10708
  var t = e.replace(/^&gt;\s*/, "");
10433
- f.push("<p>" + t + "</p>");
10709
+ g.push("<p>" + t + "</p>");
10434
10710
  return;
10435
10711
  }
10436
- if (h && !e.match(/^&gt;\s*/) && (f.push("</blockquote>"), h = !1), e.match(/^### /)) p &&= (f.push("</ul>"), !1), m &&= (f.push("</ol>"), !1), h &&= (f.push("</blockquote>"), !1), g = !0, f.push(e.replace(/^### (.+)$/, "<h3>$1</h3>"));
10437
- else if (e.match(/^## /)) p &&= (f.push("</ul>"), !1), m &&= (f.push("</ol>"), !1), h &&= (f.push("</blockquote>"), !1), g = !0, f.push(e.replace(/^## (.+)$/, "<h2>$1</h2>"));
10438
- else if (e.match(/^# /)) p &&= (f.push("</ul>"), !1), m &&= (f.push("</ol>"), !1), h &&= (f.push("</blockquote>"), !1), g = !0, f.push(e.replace(/^# (.+)$/, "<h1>$1</h1>"));
10712
+ if (y && !e.match(/^&gt;\s*/) && (g.push("</blockquote>"), y = !1), e.match(/^### /)) _ &&= (g.push("</ul>"), !1), v &&= (g.push("</ol>"), !1), y &&= (g.push("</blockquote>"), !1), b = !0, g.push(e.replace(/^### (.+)$/, "<h3>$1</h3>"));
10713
+ else if (e.match(/^## /)) _ &&= (g.push("</ul>"), !1), v &&= (g.push("</ol>"), !1), y &&= (g.push("</blockquote>"), !1), b = !0, g.push(e.replace(/^## (.+)$/, "<h2>$1</h2>"));
10714
+ else if (e.match(/^# /)) _ &&= (g.push("</ul>"), !1), v &&= (g.push("</ol>"), !1), y &&= (g.push("</blockquote>"), !1), b = !0, g.push(e.replace(/^# (.+)$/, "<h1>$1</h1>"));
10439
10715
  else if (e.match(/^- \[[ xX]\] /)) {
10440
- m &&= (f.push("</ol>"), !1), p ||= (f.push("<ul class=\"tokui-md__tasks\">"), !0), g = !0;
10716
+ v &&= (g.push("</ol>"), !1), _ ||= (g.push("<ul class=\"tokui-md__tasks\">"), !0), b = !0;
10441
10717
  var n = /^- \[[xX]\] /.test(e), r = e.replace(/^- \[[xX ]\] /, "");
10442
- f.push("<li class=\"tokui-md__task\"><input type=\"checkbox\" disabled" + (n ? " checked" : "") + ">" + r + "</li>");
10443
- } else e.match(/^- /) ? (m &&= (f.push("</ol>"), !1), p ||= (f.push("<ul>"), !0), g = !0, f.push(e.replace(/^- (.+)$/, "<li>$1</li>"))) : e.match(/^\d+\. /) ? (p &&= (f.push("</ul>"), !1), m ||= (f.push("<ol>"), !0), g = !0, f.push(e.replace(/^\d+\. (.+)$/, "<li>$1</li>"))) : (p &&= (f.push("</ul>"), !1), m &&= (f.push("</ol>"), !1), f.push(e));
10718
+ g.push("<li class=\"tokui-md__task\"><input type=\"checkbox\" disabled" + (n ? " checked" : "") + ">" + r + "</li>");
10719
+ } else e.match(/^- /) ? (v &&= (g.push("</ol>"), !1), _ ||= (g.push("<ul>"), !0), b = !0, g.push(e.replace(/^- (.+)$/, "<li>$1</li>"))) : e.match(/^\d+\. /) ? (_ &&= (g.push("</ul>"), !1), v ||= (g.push("<ol>"), !0), b = !0, g.push(e.replace(/^\d+\. (.+)$/, "<li>$1</li>"))) : (_ &&= (g.push("</ul>"), !1), v &&= (g.push("</ol>"), !1), g.push(e));
10444
10720
  }
10445
10721
  }).join("");
10446
10722
  }
@@ -10450,7 +10726,10 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
10450
10726
  highlightCode: a
10451
10727
  });
10452
10728
  })), C = /* @__PURE__ */ o(((e, t) => {
10453
- function n(e, t, n) {
10729
+ var n = typeof l == "function" ? u().t : window.TokUI && window.TokUI._internal && window.TokUI._internal.t || function(e) {
10730
+ return e;
10731
+ };
10732
+ function r(e, t, n) {
10454
10733
  let r = t("div", {});
10455
10734
  return r.style.display = "inline-flex", r.style.gap = "6px", r.style.alignItems = "center", e.split("|").forEach((e) => {
10456
10735
  let i = e.trim();
@@ -10486,15 +10765,15 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
10486
10765
  o && p.appendChild(t("span", { class: "tokui-tbtn__text" }, o)), r.appendChild(p);
10487
10766
  }), r;
10488
10767
  }
10489
- function r(e) {
10490
- let { el: t } = typeof l == "function" ? h() : window.TokUI._internal, r = typeof l == "function" ? m().parseTag : window.TokUI._internal.parseTag, i = typeof l == "function" ? v().iconSvg : window.TokUI._internal.iconSvg;
10491
- function a(t) {
10768
+ function i(e) {
10769
+ let { el: t } = typeof l == "function" ? h() : window.TokUI._internal, i = typeof l == "function" ? m().parseTag : window.TokUI._internal.parseTag, a = typeof l == "function" ? v().iconSvg : window.TokUI._internal.iconSvg;
10770
+ function o(t) {
10492
10771
  let n = t.match(/^\[([a-zA-Z][\w-]*)\b([\s\S]*)$/);
10493
10772
  if (!n) return null;
10494
- let i = (n[1] + (n[2] || "")).replace(/\]\s*$/, "").trim();
10495
- if (!i) return null;
10773
+ let r = (n[1] + (n[2] || "")).replace(/\]\s*$/, "").trim();
10774
+ if (!r) return null;
10496
10775
  try {
10497
- let t = r(i);
10776
+ let t = i(r);
10498
10777
  if (!t || !t.type) return null;
10499
10778
  let n = e.render(t);
10500
10779
  return n && n.nodeType ? n : null;
@@ -10502,7 +10781,7 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
10502
10781
  return null;
10503
10782
  }
10504
10783
  }
10505
- let o = {
10784
+ let s = {
10506
10785
  chk: {
10507
10786
  label: "",
10508
10787
  cls: "tokui-col-chk"
@@ -10512,38 +10791,236 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
10512
10791
  cls: "tokui-col-seq"
10513
10792
  }
10514
10793
  };
10515
- function s(e) {
10516
- var t = T(e), n = t.text, r = n.indexOf(":");
10794
+ function c(e) {
10795
+ var t = j(e), n = t.text, r = n.indexOf(":");
10517
10796
  return {
10518
10797
  name: r > 0 ? n.slice(0, r) : n,
10519
10798
  align: t.align,
10520
10799
  color: t.color
10521
10800
  };
10522
10801
  }
10523
- let c = [], u = [], d = [], f = 0, p = null;
10524
- function g(e) {
10802
+ let u = [], d = [], f = [], p = 0, g = null;
10803
+ function _(e) {
10525
10804
  let t = e.querySelector(".tokui-chk-all");
10526
10805
  if (!t) return;
10527
10806
  let n = e.querySelectorAll(".tokui-chk-row"), r = e.querySelectorAll(".tokui-chk-row:checked");
10528
10807
  t.checked = n.length > 0 && r.length === n.length, t.indeterminate = r.length > 0 && r.length < n.length;
10529
10808
  }
10530
- e.register("table", (e, n) => {
10531
- let r = {
10809
+ function y(e) {
10810
+ return Array.prototype.slice.call(e.children).filter(function(e) {
10811
+ return e.tagName === "TD";
10812
+ });
10813
+ }
10814
+ function b(e, t) {
10815
+ for (var n = y(e), r = 0, i = 0; i < n.length; i++) {
10816
+ var a = parseInt(n[i].getAttribute("colspan"), 10) || 1;
10817
+ if (t >= r && t < r + a) return (n[i].textContent || "").trim();
10818
+ r += a;
10819
+ }
10820
+ return "";
10821
+ }
10822
+ function x(e, t) {
10823
+ var n = /^-?\d+(\.\d+)?$/.test(e) ? parseFloat(e) : NaN, r = /^-?\d+(\.\d+)?$/.test(t) ? parseFloat(t) : NaN;
10824
+ return !isNaN(n) && !isNaN(r) ? n - r : String(e).localeCompare(String(t));
10825
+ }
10826
+ function S(e) {
10827
+ var t = Array.prototype.slice.call(e.children).filter(function(e) {
10828
+ return e.tagName === "TR" && !e.classList.contains("tokui-table__filter-row");
10829
+ }), n = t[t.length - 1];
10830
+ if (!n) return [];
10831
+ var r = [], i = 0;
10832
+ return Array.prototype.slice.call(n.children).forEach(function(e) {
10833
+ e.tagName === "TH" && (r.push({
10834
+ th: e,
10835
+ col: i
10836
+ }), i += parseInt(e.getAttribute("colspan"), 10) || 1);
10837
+ }), r;
10838
+ }
10839
+ function C(r, i, a) {
10840
+ if (!r || !r._tokuiDataCfg) return;
10841
+ var o = r._tokuiDataCfg, s = r._tokuiData;
10842
+ s || (s = {
10843
+ sortCol: -1,
10844
+ sortDir: "",
10845
+ filters: {},
10846
+ page: 1,
10847
+ pageSize: o.pageSize,
10848
+ thead: null,
10849
+ tbody: null,
10850
+ pager: null,
10851
+ sortWired: !1,
10852
+ filterBuilt: !1,
10853
+ tbodyHooked: !1,
10854
+ _applying: !1
10855
+ }, r._tokuiData = s), i === "thead" && (s.thead = a), i === "tbody" && (s.tbody = a);
10856
+ function c() {
10857
+ return s.tbody ? Array.prototype.slice.call(s.tbody.children).filter(function(e) {
10858
+ return e.tagName === "TR";
10859
+ }) : [];
10860
+ }
10861
+ function l(e) {
10862
+ for (var t in s.filters) if (Object.prototype.hasOwnProperty.call(s.filters, t) && b(e, parseInt(t, 10)).toLowerCase().indexOf(String(s.filters[t]).toLowerCase()) === -1) return !1;
10863
+ return !0;
10864
+ }
10865
+ function u() {
10866
+ return c().filter(l);
10867
+ }
10868
+ function d() {
10869
+ if (!(!s.tbody || s.sortCol < 0 || !s.sortDir)) {
10870
+ var e = c(), t = s.sortDir === "desc" ? -1 : 1, n = s.sortCol;
10871
+ e.sort(function(e, r) {
10872
+ return t * x(b(e, n), b(r, n));
10873
+ }), s._applying = !0, e.forEach(function(e) {
10874
+ s.tbody.insertBefore(e, null);
10875
+ }), s._applying = !1;
10876
+ }
10877
+ }
10878
+ s.resort = d;
10879
+ function f() {
10880
+ if (s.tbody) {
10881
+ var e = [];
10882
+ if (c().forEach(function(t) {
10883
+ l(t) ? e.push(t) : t.style.display = "none";
10884
+ }), o.pagination) {
10885
+ var t = Math.max(1, Math.ceil(e.length / s.pageSize));
10886
+ s.page > t && (s.page = t);
10887
+ var n = (s.page - 1) * s.pageSize, r = n + s.pageSize;
10888
+ e.forEach(function(e, t) {
10889
+ e.style.display = t >= n && t < r ? "" : "none";
10890
+ }), m(e.length);
10891
+ } else e.forEach(function(e) {
10892
+ e.style.display = "";
10893
+ });
10894
+ }
10895
+ }
10896
+ function p(e) {
10897
+ var t = Math.max(1, Math.ceil(u().length / s.pageSize));
10898
+ e < 1 || e > t || e === s.page || (s.page = e, f(), r._tokuiReport && r._tokuiReport("page", { value: e }));
10899
+ }
10900
+ function m(e) {
10901
+ if (s.pager) {
10902
+ var r = Math.max(1, Math.ceil(e / s.pageSize)), i = s.pager;
10903
+ i.innerHTML = "";
10904
+ var a = t("span", { class: "tokui-table__pager-total" });
10905
+ a.textContent = n("pagination.totalCount", { count: e }), i.appendChild(a);
10906
+ var o = t("button", {
10907
+ type: "button",
10908
+ class: "tokui-table__pager-btn" + (s.page <= 1 ? " tokui-table__pager-btn--disabled" : "")
10909
+ });
10910
+ o.textContent = "‹", o.addEventListener("click", function() {
10911
+ p(s.page - 1);
10912
+ }), i.appendChild(o);
10913
+ for (var c = 1; c <= r; c++) (function(e) {
10914
+ var n = t("button", {
10915
+ type: "button",
10916
+ class: "tokui-table__pager-page" + (e === s.page ? " tokui-table__pager-page--active" : "")
10917
+ });
10918
+ n.textContent = String(e), n.addEventListener("click", function() {
10919
+ p(e);
10920
+ }), i.appendChild(n);
10921
+ })(c);
10922
+ var l = t("button", {
10923
+ type: "button",
10924
+ class: "tokui-table__pager-btn" + (s.page >= r ? " tokui-table__pager-btn--disabled" : "")
10925
+ });
10926
+ l.textContent = "›", l.addEventListener("click", function() {
10927
+ p(s.page + 1);
10928
+ }), i.appendChild(l);
10929
+ }
10930
+ }
10931
+ var h = e.debounce(function() {
10932
+ r._tokuiReport && r._tokuiReport("filter", { filters: Object.assign({}, s.filters) });
10933
+ }, 300);
10934
+ if (o.sortable && s.thead && !s.sortWired && (s.sortWired = !0, S(s.thead).forEach(function(e) {
10935
+ var n = e.th;
10936
+ if (!n.classList.contains("tokui-col-chk")) {
10937
+ var i = e.col;
10938
+ n.classList.add("tokui-table__th--sortable");
10939
+ var a = t("span", { class: "tokui-table__sort-icon" });
10940
+ n.appendChild(a), n.addEventListener("click", function() {
10941
+ s.sortDir = s.sortCol === i && s.sortDir === "asc" ? "desc" : "asc", s.sortCol = i, Array.prototype.slice.call(s.thead.querySelectorAll(".tokui-table__sort-icon")).forEach(function(e) {
10942
+ e.textContent = "", e.classList.remove("tokui-table__sort-icon--asc"), e.classList.remove("tokui-table__sort-icon--desc");
10943
+ }), a.textContent = s.sortDir === "asc" ? "▲" : "▼", a.classList.add("tokui-table__sort-icon--" + s.sortDir), d(), f(), r._tokuiReport && r._tokuiReport("sort", {
10944
+ column: i,
10945
+ dir: s.sortDir
10946
+ });
10947
+ });
10948
+ }
10949
+ })), o.filter && s.thead && !s.filterBuilt) {
10950
+ s.filterBuilt = !0;
10951
+ var g = t("tr", { class: "tokui-table__filter-row" });
10952
+ S(s.thead).forEach(function(e) {
10953
+ var n = e.col, r = t("td", { class: "tokui-table__filter-cell" }), i = t("input", {
10954
+ type: "text",
10955
+ class: "tokui-table__filter-input",
10956
+ placeholder: (e.th.textContent || "").trim()
10957
+ });
10958
+ i.addEventListener("input", function() {
10959
+ var e = (i.value || "").trim();
10960
+ e ? s.filters[n] = e : delete s.filters[n], s.page = 1, f(), h();
10961
+ }), r.appendChild(i), g.appendChild(r);
10962
+ }), s.thead.appendChild(g);
10963
+ }
10964
+ if (s.tbody && !s.tbodyHooked) {
10965
+ s.tbodyHooked = !0;
10966
+ var _ = s.tbody, v = _.appendChild, y = _.insertBefore, C = function(e) {
10967
+ if (!(s._applying || !e || e.tagName !== "TR")) {
10968
+ if (e._tokuiTrReconcile && !e._tokuiDataPatched) {
10969
+ e._tokuiDataPatched = !0;
10970
+ var t = e._tokuiTrReconcile;
10971
+ e._tokuiTrReconcile = function(n, r, i) {
10972
+ t.call(e, n, r, i), f();
10973
+ };
10974
+ }
10975
+ f();
10976
+ }
10977
+ };
10978
+ _.appendChild = function(e) {
10979
+ var t = v.call(_, e);
10980
+ return C(e), t;
10981
+ }, _.insertBefore = function(e, t) {
10982
+ var n = y.call(_, e, t);
10983
+ return C(e), n;
10984
+ };
10985
+ }
10986
+ if (o.pagination && !s.pager && r.parentNode) {
10987
+ var w = t("div", {
10988
+ class: "tokui-table__pager",
10989
+ role: "navigation",
10990
+ "aria-label": n("pagination.aria")
10991
+ });
10992
+ r.parentNode.appendChild(w), s.pager = w;
10993
+ }
10994
+ f();
10995
+ }
10996
+ e.register("table", (n, r) => {
10997
+ let i = {
10532
10998
  class: "tokui-table",
10533
10999
  role: "table"
10534
11000
  };
10535
- e.attrs.id && (r.id = e.attrs.id), e.attrs.stripe !== void 0 && (r.class += " tokui-table--stripe");
10536
- let i = t("div", { class: "tokui-table-wrapper" }), a = t("table", r);
10537
- return (e.attrs.cap || e.attrs.caption) && a.appendChild(t("caption", {}, e.attrs.cap || e.attrs.caption)), p = a, n(e.children).forEach((e) => {
10538
- e && e.nodeType && a.appendChild(e);
10539
- }), i.appendChild(a), i._slot = a, i._tokuiType = "table", i;
11001
+ n.attrs.id && (i.id = n.attrs.id), n.attrs.stripe !== void 0 && (i.class += " tokui-table--stripe");
11002
+ let a = t("div", { class: "tokui-table-wrapper" }), o = t("table", i);
11003
+ (n.attrs.cap || n.attrs.caption) && o.appendChild(t("caption", {}, n.attrs.cap || n.attrs.caption)), g = o;
11004
+ var s = n.attrs.pagination !== void 0 || typeof n.content == "string" && /(?:^|\s)pagination(?:\s|$)/.test(n.content);
11005
+ if (n.attrs.sortable !== void 0 || n.attrs.filter !== void 0 || s) {
11006
+ var c = parseInt(n.attrs.ps, 10);
11007
+ o._tokuiDataCfg = {
11008
+ sortable: n.attrs.sortable !== void 0,
11009
+ filter: n.attrs.filter !== void 0,
11010
+ pagination: !!s,
11011
+ pageSize: c > 0 ? c : 10
11012
+ }, o._tokuiReport = e.createReporter("table", n.attrs, a);
11013
+ }
11014
+ return r(n.children).forEach((e) => {
11015
+ e && e.nodeType && o.appendChild(e);
11016
+ }), a.appendChild(o), a._slot = o, a._tokuiType = "table", C(o), a;
10540
11017
  }), e.register("thead", (e) => {
10541
11018
  let n = t("thead", { class: "tokui-thead" });
10542
11019
  if (e.attrs.cols) {
10543
- c = [], u = [], d = [], f = 0;
11020
+ u = [], d = [], f = [], p = 0;
10544
11021
  let r = e.attrs.cols.split(";"), i = r.length - 1, a = r.map(function(e) {
10545
- return _(e).map(function(e) {
10546
- let t = s(e), n = w(t.name);
11022
+ return w(e).map(function(e) {
11023
+ let t = c(e), n = A(t.name);
10547
11024
  return {
10548
11025
  text: n.text,
10549
11026
  align: t.align,
@@ -10552,18 +11029,18 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
10552
11029
  rowspan: n.rowspan || 1
10553
11030
  };
10554
11031
  });
10555
- }), l = a.length ? a[0].reduce(function(e, t) {
11032
+ }), o = a.length ? a[0].reduce(function(e, t) {
10556
11033
  return e + t.colspan;
10557
11034
  }, 0) : 0;
10558
- p && l > 0 && (p.style.minWidth = "calc(" + l + " * var(--tokui-table-min-col-w, 96px))");
10559
- let m = [];
11035
+ g && o > 0 && (g.style.minWidth = "calc(" + o + " * var(--tokui-table-min-col-w, 96px))");
11036
+ let l = [];
10560
11037
  a.forEach(function(e, r) {
10561
- let a = S(e, m, l), s = t("tr", { class: "tokui-thead-row" });
11038
+ let a = O(e, l, o), c = t("tr", { class: "tokui-thead-row" });
10562
11039
  a.forEach(function(e) {
10563
- let n = e.cell, a = n.align ? "tokui-col-" + n.align : "", l = n.color ? "tokui-text--" + n.color : "", f = { scope: "col" };
10564
- if (e.colspan >= 2 && (f.colspan = String(e.colspan)), e.rowspan >= 2 && (f.rowspan = String(e.rowspan)), r + e.rowspan - 1 >= i) for (var p = 0; p < e.colspan; p++) u[e.col + p] = n.align || "", c[e.col + p] = o[n.text] ? n.text : null, d[e.col + p] = n.color || "";
11040
+ let n = e.cell, a = n.align ? "tokui-col-" + n.align : "", o = n.color ? "tokui-text--" + n.color : "", l = { scope: "col" };
11041
+ if (e.colspan >= 2 && (l.colspan = String(e.colspan)), e.rowspan >= 2 && (l.rowspan = String(e.rowspan)), r + e.rowspan - 1 >= i) for (var p = 0; p < e.colspan; p++) d[e.col + p] = n.align || "", u[e.col + p] = s[n.text] ? n.text : null, f[e.col + p] = n.color || "";
10565
11042
  if (n.text === "chk") {
10566
- f.class = "tokui-col-chk" + (a ? " " + a : "") + (l ? " " + l : "");
11043
+ l.class = "tokui-col-chk" + (a ? " " + a : "") + (o ? " " + o : "");
10567
11044
  let e = t("input", {
10568
11045
  type: "checkbox",
10569
11046
  class: "tokui-chk-all"
@@ -10574,16 +11051,16 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
10574
11051
  t.checked = e.checked;
10575
11052
  }), e.indeterminate = !1);
10576
11053
  });
10577
- let n = t("th", f);
10578
- n.appendChild(e), s.appendChild(n);
11054
+ let n = t("th", l);
11055
+ n.appendChild(e), c.appendChild(n);
10579
11056
  return;
10580
11057
  }
10581
11058
  if (n.text === "#") {
10582
- f.class = "tokui-col-seq" + (a ? " " + a : "") + (l ? " " + l : ""), s.appendChild(t("th", f, "#"));
11059
+ l.class = "tokui-col-seq" + (a ? " " + a : "") + (o ? " " + o : ""), c.appendChild(t("th", l, "#"));
10583
11060
  return;
10584
11061
  }
10585
- f.class = (a + " " + l).trim(), s.appendChild(t("th", f, n.text));
10586
- }), n.appendChild(s);
11062
+ l.class = (a + " " + o).trim(), c.appendChild(t("th", l, n.text));
11063
+ }), n.appendChild(c);
10587
11064
  });
10588
11065
  } else {
10589
11066
  let r = t("tr", { class: "tokui-thead-row" });
@@ -10595,11 +11072,11 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
10595
11072
  }, n));
10596
11073
  }), n.appendChild(r);
10597
11074
  }
10598
- return n._slot = n.lastChild || n, n._tokuiType = "thead", n;
11075
+ return n._slot = n.lastChild || n, n._tokuiType = "thead", C(g, "thead", n), n;
10599
11076
  }), e.register("tbody", (e, n) => {
10600
- let r = t("tbody", { class: "tokui-tbody" }), i = e._colTypes || c, a = e._colAligns || u, o = e._colColors || d;
11077
+ let r = t("tbody", { class: "tokui-tbody" }), i = e._colTypes || u, a = e._colAligns || d, o = e._colColors || f;
10601
11078
  return r._tokuiOccupancy = [], r._tokuiMaxCols = a.length || i.length, e.children.forEach((e) => {
10602
- e._colTypes = i, e._colAligns = a, e._colColors = o, e._seqNum = ++f, e._tbodyEl = r;
11079
+ e._colTypes = i, e._colAligns = a, e._colColors = o, e._seqNum = ++p, e._tbodyEl = r;
10603
11080
  }), n(e.children).forEach((e) => {
10604
11081
  e && e.nodeType && r.appendChild(e);
10605
11082
  }), r.addEventListener("mousedown", function(e) {
@@ -10617,10 +11094,10 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
10617
11094
  let e = Math.min(s, a), n = Math.max(s, a), r = t.checked;
10618
11095
  for (let t = e; t <= n; t++) i[t].checked = r;
10619
11096
  } else a >= 0 && (n.__tokuiChkAnchor = a);
10620
- g(n);
10621
- }), r._slot = r, r._tokuiType = "tbody", r;
11097
+ _(n);
11098
+ }), r._slot = r, r._tokuiType = "tbody", C(g, "tbody", r), r;
10622
11099
  });
10623
- function _(e) {
11100
+ function w(e) {
10624
11101
  let t = [], n = "", r = !1;
10625
11102
  for (let i = 0; i < e.length; i++) {
10626
11103
  let a = e[i];
@@ -10628,10 +11105,10 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
10628
11105
  }
10629
11106
  return t.push(n), t;
10630
11107
  }
10631
- function y(e) {
11108
+ function T(e) {
10632
11109
  return e.length > 1 && e.charAt(0) === "\"" && e.charAt(e.length - 1) === "\"" && e.indexOf("\"", 1) === e.length - 1 ? e.slice(1, -1) : e;
10633
11110
  }
10634
- function b(e) {
11111
+ function E(e) {
10635
11112
  for (var t = [], n = "", r = !1, i = 0, a = 0; a < e.length; a++) {
10636
11113
  var o = e[a];
10637
11114
  if (o === "\"") r = !r;
@@ -10645,13 +11122,13 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
10645
11122
  }
10646
11123
  return t.push(n), t;
10647
11124
  }
10648
- function x(e, n) {
11125
+ function D(e, n) {
10649
11126
  var r = { class: "tokui-td tokui-td--skeleton" }, i = n.colAligns[e];
10650
11127
  i && (r.class += " tokui-col-" + i);
10651
11128
  var a = t("td", r);
10652
11129
  return a.appendChild(t("span", { class: "tokui-skeleton" })), a;
10653
11130
  }
10654
- function S(e, t, n) {
11131
+ function O(e, t, n) {
10655
11132
  for (var r = [], i = 0, a = 0; a < e.length; a++) {
10656
11133
  for (var o = e[a], s = o.colspan || 1, c = o.rowspan || 1; i < n && t[i] > 0;) --t[i], i++;
10657
11134
  r.push({
@@ -10666,9 +11143,9 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
10666
11143
  for (; i < n && t[i] > 0;) --t[i], i++;
10667
11144
  return r;
10668
11145
  }
10669
- function C(e, t, n) {
10670
- return !t || !n ? null : S(e.map(function(e) {
10671
- var t = w(e);
11146
+ function k(e, t, n) {
11147
+ return !t || !n ? null : O(e.map(function(e) {
11148
+ var t = A(e);
10672
11149
  return {
10673
11150
  colspan: t.colspan || 1,
10674
11151
  rowspan: t.rowspan || 1
@@ -10677,7 +11154,7 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
10677
11154
  return e.col;
10678
11155
  });
10679
11156
  }
10680
- function w(e) {
11157
+ function A(e) {
10681
11158
  e = String(e);
10682
11159
  var t = e.match(/=([cr]\d+){1,2}$/);
10683
11160
  if (!t) return {
@@ -10692,7 +11169,7 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
10692
11169
  rowspan: a
10693
11170
  };
10694
11171
  }
10695
- function T(e) {
11172
+ function j(e) {
10696
11173
  for (var t = {
10697
11174
  c: "center",
10698
11175
  center: "center",
@@ -10721,11 +11198,11 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
10721
11198
  color: i
10722
11199
  };
10723
11200
  }
10724
- function E(e, r, o) {
10725
- var s = o.colTypes, c = o.colAligns, l = o.seqNum, u = o.colspanVal, d = o.cellCols && o.cellCols[r] != null ? o.cellCols[r] : r, f = { class: "tokui-td" }, p = T(e), m = w(p.text), h = m.text.trim(), g = p.align || c[d];
11201
+ function M(e, n, i) {
11202
+ var s = i.colTypes, c = i.colAligns, l = i.seqNum, u = i.colspanVal, d = i.cellCols && i.cellCols[n] != null ? i.cellCols[n] : n, f = { class: "tokui-td" }, p = j(e), m = A(p.text), h = m.text.trim(), g = p.align || c[d];
10726
11203
  g && (f.class += " tokui-col-" + g);
10727
- var _ = p.color || o.colColors && o.colColors[d];
10728
- if (_ && (f.class += " tokui-text--" + _), r === 0 && u >= 2 && (f.colspan = String(u)), r > 0 && r < u) return null;
11204
+ var _ = p.color || i.colColors && i.colColors[d];
11205
+ if (_ && (f.class += " tokui-text--" + _), n === 0 && u >= 2 && (f.colspan = String(u)), n > 0 && n < u) return null;
10729
11206
  if (m.colspan >= 2 && (f.colspan = String(m.colspan)), m.rowspan >= 2 && (f.rowspan = String(m.rowspan)), s[d] === "chk") {
10730
11207
  f.class += " tokui-col-chk";
10731
11208
  var v = t("td", f);
@@ -10735,7 +11212,7 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
10735
11212
  })), v;
10736
11213
  }
10737
11214
  if (s[d] === "#") return f.class += " tokui-col-seq", t("td", f, String(l));
10738
- var y = a(h);
11215
+ var y = o(h);
10739
11216
  if (y) {
10740
11217
  f.class += " tokui-td--inline";
10741
11218
  var b = t("td", f);
@@ -10744,31 +11221,31 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
10744
11221
  if (h.startsWith("btn:")) {
10745
11222
  f.class += " tokui-col-action";
10746
11223
  var x = t("td", f);
10747
- return x.appendChild(n(h, t, i)), x;
11224
+ return x.appendChild(r(h, t, a)), x;
10748
11225
  }
10749
11226
  if (h.startsWith("tag:")) {
10750
- var S = t("td", f), C = h.split(/\s+/), E = "", D = { class: "tokui-tag" };
11227
+ var S = t("td", f), C = h.split(/\s+/), w = "", T = { class: "tokui-tag" };
10751
11228
  return C.forEach(function(e) {
10752
- e.startsWith("tag:") ? E = e.slice(4) : e.startsWith("t:") && (D.class += " tokui-tag--" + e.slice(2));
10753
- }), S.appendChild(t("span", D, E)), S;
11229
+ e.startsWith("tag:") ? w = e.slice(4) : e.startsWith("t:") && (T.class += " tokui-tag--" + e.slice(2));
11230
+ }), S.appendChild(t("span", T, w)), S;
10754
11231
  }
10755
11232
  if (h.startsWith("progress")) {
10756
- var O = t("td", f), k = h.split(/\s+/), A = 0, j = "span", M = "";
10757
- if (k.forEach(function(e) {
10758
- e.startsWith("v:") ? A = parseInt(e.slice(2)) || 0 : e.startsWith("t:") ? j = e.slice(2) : e.startsWith("status:") && (M = e.slice(7));
10759
- }), j === "span") {
11233
+ var E = t("td", f), D = h.split(/\s+/), O = 0, k = "span", M = "";
11234
+ if (D.forEach(function(e) {
11235
+ e.startsWith("v:") ? O = parseInt(e.slice(2)) || 0 : e.startsWith("t:") ? k = e.slice(2) : e.startsWith("status:") && (M = e.slice(7));
11236
+ }), k === "span") {
10760
11237
  var N = t("span", { class: "tokui-progress tokui-progress--span" }), P = t("span", { class: "tokui-progress__mini-bar" }), F = "tokui-progress__mini-fill";
10761
- M === "error" ? F += " tokui-progress--error" : A >= 80 && (F += " tokui-progress--success");
11238
+ M === "error" ? F += " tokui-progress--error" : O >= 80 && (F += " tokui-progress--success");
10762
11239
  var I = t("span", { class: F });
10763
- I.style.width = A + "%", P.appendChild(I), N.appendChild(P);
11240
+ I.style.width = O + "%", P.appendChild(I), N.appendChild(P);
10764
11241
  var L = t("span", { class: "tokui-progress__span-text" });
10765
- L.textContent = A + "%", N.appendChild(L), O.appendChild(N);
11242
+ L.textContent = O + "%", N.appendChild(L), E.appendChild(N);
10766
11243
  }
10767
- return O;
11244
+ return E;
10768
11245
  }
10769
11246
  return t("td", f, h);
10770
11247
  }
10771
- function D(e, t) {
11248
+ function N(e, t) {
10772
11249
  e._tokuiCellText = [], e._tokuiCellTds = [];
10773
11250
  var n = "\0SKELETON\0";
10774
11251
  function r(t, n) {
@@ -10784,20 +11261,20 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
10784
11261
  o && o.v && String(o.v).split(",").forEach(function(t) {
10785
11262
  t = t.trim(), t && e.classList.add("tokui-table-row--" + t);
10786
11263
  });
10787
- var s = b(y(i || "")), c = t.tbodyEl && t.tbodyEl._tokuiOccupancy;
10788
- c && (t.cellCols = C(s, t.tbodyEl, a ? c : c.slice()));
11264
+ var s = E(T(i || "")), c = t.tbodyEl && t.tbodyEl._tokuiOccupancy;
11265
+ c && (t.cellCols = k(s, t.tbodyEl, a ? c : c.slice()));
10789
11266
  for (var l = 0; l < s.length; l++) {
10790
11267
  var u = s[l], d = u.trim(), f = l === s.length - 1, p = /^\[/.test(d) || /^(btn|tag|progress)\b/.test(d), m = /^btn:/.test(d), h = p && f && !a && !m, g = h ? n : u;
10791
11268
  if (e._tokuiCellText[l] !== g) {
10792
11269
  var _ = e._tokuiCellTds[l];
10793
11270
  _ && _.parentNode === e && e.removeChild(_);
10794
- var v = h ? x(l, t) : E(u, l, t);
11271
+ var v = h ? D(l, t) : M(u, l, t);
10795
11272
  r(v, l), e._tokuiCellTds[l] = v || null, e._tokuiCellText[l] = g;
10796
11273
  }
10797
11274
  }
10798
- for (var S = s.length; S < e._tokuiCellTds.length; S++) {
10799
- var w = e._tokuiCellTds[S];
10800
- w && w.parentNode === e && e.removeChild(w), e._tokuiCellTds[S] = null;
11275
+ for (var y = s.length; y < e._tokuiCellTds.length; y++) {
11276
+ var b = e._tokuiCellTds[y];
11277
+ b && b.parentNode === e && e.removeChild(b), e._tokuiCellTds[y] = null;
10801
11278
  }
10802
11279
  e._tokuiCellTds.length = s.length, e._tokuiCellText.length = s.length;
10803
11280
  }, e;
@@ -10811,33 +11288,33 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
10811
11288
  e = e.trim(), e && n.classList.add("tokui-table-row--" + e);
10812
11289
  });
10813
11290
  var r = e.attrs && e.attrs.cs ? parseInt(e.attrs.cs) : 0;
10814
- let i = e._colTypes || c, a = {
11291
+ let i = e._colTypes || u, a = {
10815
11292
  colTypes: i,
10816
- colAligns: e._colAligns || u,
10817
- colColors: e._colColors || d,
10818
- seqNum: e._seqNum || ++f,
11293
+ colAligns: e._colAligns || d,
11294
+ colColors: e._colColors || f,
11295
+ seqNum: e._seqNum || ++p,
10819
11296
  colspanVal: r,
10820
11297
  tbodyEl: e._tbodyEl
10821
11298
  };
10822
- if (e._stream === "open") return D(n, a), n;
11299
+ if (e._stream === "open") return N(n, a), n;
10823
11300
  if (e.content) {
10824
- var o = y(e.content);
10825
- let t = b(o);
10826
- a.cellCols = C(t, a.tbodyEl, a.tbodyEl && a.tbodyEl._tokuiOccupancy);
11301
+ var o = T(e.content);
11302
+ let t = E(o);
11303
+ a.cellCols = k(t, a.tbodyEl, a.tbodyEl && a.tbodyEl._tokuiOccupancy);
10827
11304
  var s = t.some(function(e) {
10828
11305
  return /=([cr]\d+)/.test(e);
10829
- }), l = a.cellCols && a.cellCols.some(function(e, t) {
11306
+ }), c = a.cellCols && a.cellCols.some(function(e, t) {
10830
11307
  return e !== t;
10831
- }), p = o.indexOf("[tr") !== -1;
10832
- !s && !l && i.length > 0 && t.length !== i.length && r < 2 && console.warn("TokUI Table: tr 单元格数 " + t.length + " != 列数 " + i.length + " → 列错位。" + (p ? "⚠️ 内容含 [tr 残留,疑似 tr 未正确闭合(引号未配对/含字面 [ ] 未引号包)→ parser 标签断裂、串行。" : t.length > i.length ? "疑似单元格内含逗号未用双引号包裹(如 12,800.00、\"a,b,c\")。" : "疑似列标题(thead cols)含逗号被切散、或该行缺格。") + "规则:tr 不要外层引号、含逗号单元格直引号包。tr 原文: " + o), t.forEach((e, t) => {
10833
- let r = E(e, t, a);
11308
+ }), l = o.indexOf("[tr") !== -1;
11309
+ !s && !c && i.length > 0 && t.length !== i.length && r < 2 && console.warn("TokUI Table: tr 单元格数 " + t.length + " != 列数 " + i.length + " → 列错位。" + (l ? "⚠️ 内容含 [tr 残留,疑似 tr 未正确闭合(引号未配对/含字面 [ ] 未引号包)→ parser 标签断裂、串行。" : t.length > i.length ? "疑似单元格内含逗号未用双引号包裹(如 12,800.00、\"a,b,c\")。" : "疑似列标题(thead cols)含逗号被切散、或该行缺格。") + "规则:tr 不要外层引号、含逗号单元格直引号包。tr 原文: " + o), t.forEach((e, t) => {
11310
+ let r = M(e, t, a);
10834
11311
  r && n.appendChild(r);
10835
11312
  });
10836
11313
  }
10837
11314
  return n;
10838
11315
  }), e.register("tcol", () => document.createTextNode(""));
10839
11316
  }
10840
- typeof window < "u" && (window.TokUI = window.TokUI || {}, window.TokUI._internal = window.TokUI._internal || {}, window.TokUI._internal.registerTableComponents = r), t !== void 0 && t.exports && (t.exports = { registerTableComponents: r });
11317
+ typeof window < "u" && (window.TokUI = window.TokUI || {}, window.TokUI._internal = window.TokUI._internal || {}, window.TokUI._internal.registerTableComponents = i), t !== void 0 && t.exports && (t.exports = { registerTableComponents: i });
10841
11318
  })), w = /* @__PURE__ */ o(((e, t) => {
10842
11319
  function n(e) {
10843
11320
  return !e || typeof e != "string" ? [] : e.split(";").map(function(e) {
@@ -10893,8 +11370,20 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
10893
11370
  return Object.assign({}, e, { children: (e.children || []).concat(t) });
10894
11371
  }
10895
11372
  function s(e) {
10896
- let { el: t, resolveButtonAction: n } = typeof l == "function" ? h() : window.TokUI._internal, s = typeof l == "function" ? S().resolveColor : window.TokUI._internal.resolveColor, c = typeof l == "function" ? v().iconSvg : window.TokUI._internal.iconSvg, d = typeof l == "function" ? u().t : window.TokUI._internal.t;
10897
- function f(e) {
11373
+ let { el: t, resolveButtonAction: n, evaluateRules: s } = typeof l == "function" ? h() : window.TokUI._internal, c = typeof l == "function" ? S().resolveColor : window.TokUI._internal.resolveColor, d = typeof l == "function" ? v().iconSvg : window.TokUI._internal.iconSvg, f = typeof l == "function" ? u().t : window.TokUI._internal.t;
11374
+ function p(e, t, n, r, a, o) {
11375
+ if (!r.rule) return;
11376
+ e.setAttribute("data-tokui-rule", r.rule);
11377
+ var c = r.hint || (n ? n.textContent : "");
11378
+ function l() {
11379
+ var e = s(o(), r.rule), l = e ? r.msg || f("rule." + e.name, { n: e.n }) : null;
11380
+ return i(t, n, l ? "error" : "", a), n && (n.textContent = l || c), l;
11381
+ }
11382
+ e._tokuiValidate = l, r.live !== void 0 && typeof t.addEventListener == "function" && (t.addEventListener("blur", l), t.addEventListener("input", function() {
11383
+ (r.live === "input" || t.classList.contains(a + "--error")) && l();
11384
+ }));
11385
+ }
11386
+ function m(e) {
10898
11387
  if (!e) return null;
10899
11388
  var t = e.indexOf("|");
10900
11389
  return t === -1 ? {
@@ -10905,7 +11394,7 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
10905
11394
  variant: e.substring(t + 1)
10906
11395
  };
10907
11396
  }
10908
- function p(e) {
11397
+ function g(e) {
10909
11398
  if (!e) return null;
10910
11399
  var t = e.indexOf("|"), n = t === -1 ? e : e.substring(0, t), r = t === -1 ? null : e.substring(t + 1), i = n.indexOf(":");
10911
11400
  return i === -1 ? {
@@ -10918,32 +11407,32 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
10918
11407
  variant: r
10919
11408
  };
10920
11409
  }
10921
- function m(e) {
11410
+ function _(e) {
10922
11411
  var t = e.attrs;
10923
11412
  return !!(t.pre || t.app || t.prebtn || t.appbtn);
10924
11413
  }
10925
- function g(e, n) {
11414
+ function y(e, n) {
10926
11415
  var r = t("div", { class: "tokui-input-group" });
10927
11416
  if (e.attrs.pre) {
10928
- var i = f(e.attrs.pre), a = i.variant ? "tokui-input-pre tokui-input-pre--" + i.variant : "tokui-input-pre";
11417
+ var i = m(e.attrs.pre), a = i.variant ? "tokui-input-pre tokui-input-pre--" + i.variant : "tokui-input-pre";
10929
11418
  r.appendChild(t("span", { class: a }, i.text));
10930
11419
  }
10931
11420
  if (e.attrs.prebtn) {
10932
- var i = p(e.attrs.prebtn), a = i.variant ? "tokui-input-prebtn tokui-input-prebtn--" + i.variant : "tokui-input-prebtn", o = {
11421
+ var i = g(e.attrs.prebtn), a = i.variant ? "tokui-input-prebtn tokui-input-prebtn--" + i.variant : "tokui-input-prebtn", o = {
10933
11422
  class: a,
10934
11423
  type: "button"
10935
11424
  };
10936
11425
  i.handler && (o["data-tokui-clk"] = i.handler), r.appendChild(t("button", o, i.text));
10937
11426
  }
10938
11427
  if (r.appendChild(n), e.attrs.appbtn) {
10939
- var i = p(e.attrs.appbtn), a = i.variant ? "tokui-input-appbtn tokui-input-appbtn--" + i.variant : "tokui-input-appbtn", o = {
11428
+ var i = g(e.attrs.appbtn), a = i.variant ? "tokui-input-appbtn tokui-input-appbtn--" + i.variant : "tokui-input-appbtn", o = {
10940
11429
  class: a,
10941
11430
  type: "button"
10942
11431
  };
10943
11432
  i.handler && (o["data-tokui-clk"] = i.handler), r.appendChild(t("button", o, i.text));
10944
11433
  }
10945
11434
  if (e.attrs.app) {
10946
- var i = f(e.attrs.app), a = i.variant ? "tokui-input-app tokui-input-app--" + i.variant : "tokui-input-app";
11435
+ var i = m(e.attrs.app), a = i.variant ? "tokui-input-app tokui-input-app--" + i.variant : "tokui-input-app";
10947
11436
  r.appendChild(t("span", { class: a }, i.text));
10948
11437
  }
10949
11438
  return r;
@@ -10960,7 +11449,7 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
10960
11449
  e && e.nodeType && a.appendChild(e);
10961
11450
  }), a._slot = a, a._tokuiType = "form", a;
10962
11451
  });
10963
- var _ = "<svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"11\" cy=\"11\" r=\"8\"/><line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\"/></svg>";
11452
+ var b = "<svg viewBox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"11\" cy=\"11\" r=\"8\"/><line x1=\"21\" y1=\"21\" x2=\"16.65\" y2=\"16.65\"/></svg>";
10964
11453
  e.register("input", (n) => {
10965
11454
  var r = n.attrs.v ? n.attrs.v.split(",").map(function(e) {
10966
11455
  return e.trim();
@@ -10980,28 +11469,96 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
10980
11469
  }), f.addEventListener("input", function() {
10981
11470
  typeof f.setCustomValidity == "function" && f.setCustomValidity("");
10982
11471
  })), n.attrs.w && (f.style.width = n.attrs.w);
10983
- var p = null;
11472
+ var m = null;
10984
11473
  if (s) {
10985
- p = t("div", { class: "tokui-search-input" }), c && p.classList.add("tokui-search-input--right");
11474
+ m = t("div", { class: "tokui-search-input" }), c && m.classList.add("tokui-search-input--right");
10986
11475
  var h = t("span", { class: "tokui-search-input__icon" });
10987
- h.innerHTML = _, p.appendChild(h), p.appendChild(f);
10988
- }
10989
- var v = p || f;
10990
- if (m(n)) {
10991
- var y = g(n, v);
10992
- r.indexOf("pill") !== -1 && y.classList.add("tokui-input-group--pill"), l.appendChild(y);
10993
- } else l.appendChild(v);
10994
- var b = null;
10995
- (n.attrs.hint || n.attrs.live !== void 0) && (b = t("div", { class: "tokui-field__hint" }, n.attrs.hint || ""), r.indexOf("error") === -1 ? r.indexOf("success") !== -1 && b.classList.add("tokui-field__hint--success") : b.classList.add("tokui-field__hint--error"), l.appendChild(b)), n.attrs.live !== void 0 && a(f, b, n.attrs, "tokui-input"), l._update = function(e) {
10996
- e.v !== void 0 && (f.value = e.v), e.dis === !0 || e.dis === "true" ? f.disabled = !0 : (e.dis === !1 || e.dis === "false") && (f.disabled = !1), e.ph !== void 0 && (f.placeholder = e.ph), e.ro === !0 || e.ro === "true" ? f.readOnly = !0 : (e.ro === !1 || e.ro === "false") && (f.readOnly = !1), e.hint !== void 0 && b && (b.textContent = e.hint), e.status !== void 0 && i(f, b, e.status, "tokui-input");
11476
+ h.innerHTML = b, m.appendChild(h), m.appendChild(f);
11477
+ }
11478
+ var g = m || f;
11479
+ if (_(n)) {
11480
+ var v = y(n, g);
11481
+ r.indexOf("pill") !== -1 && v.classList.add("tokui-input-group--pill"), g = v;
11482
+ }
11483
+ var x = null;
11484
+ if (n.attrs.sug) {
11485
+ var S = t("div", { class: "tokui-sug-wrap" });
11486
+ S.appendChild(g), x = t("div", {
11487
+ class: "tokui-sug",
11488
+ role: "listbox"
11489
+ }), x.style.display = "none", S.appendChild(x), l.appendChild(S);
11490
+ } else l.appendChild(g);
11491
+ var C = null;
11492
+ (n.attrs.hint || n.attrs.live !== void 0 || n.attrs.rule) && (C = t("div", { class: "tokui-field__hint" }, n.attrs.hint || ""), r.indexOf("error") === -1 ? r.indexOf("success") !== -1 && C.classList.add("tokui-field__hint--success") : C.classList.add("tokui-field__hint--error"), l.appendChild(C)), n.attrs.live !== void 0 && a(f, C, n.attrs, "tokui-input"), p(l, f, C, n.attrs, "tokui-input", function() {
11493
+ return f.value;
11494
+ }), l._update = function(e) {
11495
+ e.v !== void 0 && (f.value = e.v), e.dis === !0 || e.dis === "true" ? f.disabled = !0 : (e.dis === !1 || e.dis === "false") && (f.disabled = !1), e.ph !== void 0 && (f.placeholder = e.ph), e.ro === !0 || e.ro === "true" ? f.readOnly = !0 : (e.ro === !1 || e.ro === "false") && (f.readOnly = !1), e.hint !== void 0 && C && (C.textContent = e.hint), e.status !== void 0 && i(f, C, e.status, "tokui-input");
10997
11496
  };
10998
- var x = e.createReporter("input", n.attrs, l), S = e.debounce(function() {
10999
- x("change", {
11497
+ var w = e.createReporter("input", n.attrs, l), T = e.debounce(function() {
11498
+ w("change", {
11000
11499
  value: f.value,
11001
11500
  name: n.attrs.n || void 0
11002
11501
  });
11003
11502
  }, parseInt(n.attrs.db) || 300);
11004
- return f.addEventListener("input", S), l._variantTarget = f, l;
11503
+ if (f.addEventListener("input", T), n.attrs.sug && x) {
11504
+ var E = n.attrs.sug, D = [], O = -1, k = 0, A = function() {
11505
+ x.style.display = "none", D = [], O = -1;
11506
+ }, j = function() {
11507
+ if (x.innerHTML = "", !D.length) {
11508
+ x.style.display = "none";
11509
+ return;
11510
+ }
11511
+ D.forEach(function(e, n) {
11512
+ var r = t("div", {
11513
+ class: "tokui-sug__item" + (n === O ? " tokui-sug__item--active" : ""),
11514
+ role: "option"
11515
+ }, e.tx);
11516
+ r.setAttribute("data-idx", n), x.appendChild(r);
11517
+ }), x.style.display = "";
11518
+ }, M = function(e) {
11519
+ D = (Array.isArray(e) ? e : []).map(function(e) {
11520
+ return e && typeof e == "object" ? {
11521
+ v: String(e.v == null ? e.tx : e.v),
11522
+ tx: String(e.tx == null ? e.v : e.tx)
11523
+ } : {
11524
+ v: String(e),
11525
+ tx: String(e)
11526
+ };
11527
+ }), O = D.length ? 0 : -1, j();
11528
+ }, N = function(e) {
11529
+ e < 0 || e >= D.length || (f.value = D[e].v, A(), w("change", {
11530
+ value: f.value,
11531
+ name: n.attrs.n || void 0
11532
+ }));
11533
+ }, P = e.debounce(function() {
11534
+ var t = e.eventBus ? e.eventBus.getHandler(E) : null;
11535
+ if (!t) {
11536
+ e._warnMissingHandler(E), A();
11537
+ return;
11538
+ }
11539
+ var n = ++k, r;
11540
+ try {
11541
+ r = t({ value: f.value });
11542
+ } catch (e) {
11543
+ console.warn("TokUI: sug handler error", e), A();
11544
+ return;
11545
+ }
11546
+ r && typeof r.then == "function" ? r.then(function(e) {
11547
+ n === k && M(e);
11548
+ }, function() {
11549
+ n === k && A();
11550
+ }) : M(r);
11551
+ }, parseInt(n.attrs.db) || 300);
11552
+ f.addEventListener("input", P), f.addEventListener("keydown", function(e) {
11553
+ x.style.display !== "none" && (e.key === "ArrowDown" ? (e.preventDefault(), O = Math.min(O + 1, D.length - 1), j()) : e.key === "ArrowUp" ? (e.preventDefault(), O = Math.max(O - 1, 0), j()) : e.key === "Enter" ? O >= 0 && (e.preventDefault(), N(O)) : e.key === "Escape" && A());
11554
+ }), f.addEventListener("blur", function() {
11555
+ setTimeout(A, 150);
11556
+ }), x.addEventListener("click", function(e) {
11557
+ var t = e.target.closest ? e.target.closest(".tokui-sug__item") : null;
11558
+ t && N(parseInt(t.getAttribute("data-idx")));
11559
+ });
11560
+ }
11561
+ return l._variantTarget = f, l;
11005
11562
  }), e.register("pwd", (n) => {
11006
11563
  var r = n.attrs.v ? n.attrs.v.split(",").map(function(e) {
11007
11564
  return e.trim();
@@ -11030,25 +11587,27 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
11030
11587
  l.type = e ? "text" : "password", u.innerHTML = e ? d : f, u.classList.toggle("tokui-pwd-toggle--active", e);
11031
11588
  });
11032
11589
  }
11033
- if (m(n) || u) {
11034
- var p = g(n, l);
11590
+ if (_(n) || u) {
11591
+ var m = y(n, l);
11035
11592
  if (u) {
11036
11593
  var h = l.nextSibling;
11037
- h ? p.insertBefore(u, h) : p.appendChild(u);
11594
+ h ? m.insertBefore(u, h) : m.appendChild(u);
11038
11595
  }
11039
- o.appendChild(p);
11596
+ o.appendChild(m);
11040
11597
  } else o.appendChild(l);
11041
- var _ = null;
11042
- (n.attrs.hint || n.attrs.live !== void 0) && (_ = t("div", { class: "tokui-field__hint" }, n.attrs.hint || ""), r.indexOf("error") === -1 ? r.indexOf("success") !== -1 && _.classList.add("tokui-field__hint--success") : _.classList.add("tokui-field__hint--error"), o.appendChild(_)), n.attrs.live !== void 0 && a(l, _, n.attrs, "tokui-input"), o._update = function(e) {
11043
- e.v !== void 0 && (l.value = e.v), e.dis === !0 || e.dis === "true" ? l.disabled = !0 : (e.dis === !1 || e.dis === "false") && (l.disabled = !1), e.ph !== void 0 && (l.placeholder = e.ph), e.ro === !0 || e.ro === "true" ? l.readOnly = !0 : (e.ro === !1 || e.ro === "false") && (l.readOnly = !1), e.hint !== void 0 && _ && (_.textContent = e.hint), e.status !== void 0 && i(l, _, e.status, "tokui-input");
11598
+ var g = null;
11599
+ (n.attrs.hint || n.attrs.live !== void 0 || n.attrs.rule) && (g = t("div", { class: "tokui-field__hint" }, n.attrs.hint || ""), r.indexOf("error") === -1 ? r.indexOf("success") !== -1 && g.classList.add("tokui-field__hint--success") : g.classList.add("tokui-field__hint--error"), o.appendChild(g)), n.attrs.live !== void 0 && a(l, g, n.attrs, "tokui-input"), p(o, l, g, n.attrs, "tokui-input", function() {
11600
+ return l.value;
11601
+ }), o._update = function(e) {
11602
+ e.v !== void 0 && (l.value = e.v), e.dis === !0 || e.dis === "true" ? l.disabled = !0 : (e.dis === !1 || e.dis === "false") && (l.disabled = !1), e.ph !== void 0 && (l.placeholder = e.ph), e.ro === !0 || e.ro === "true" ? l.readOnly = !0 : (e.ro === !1 || e.ro === "false") && (l.readOnly = !1), e.hint !== void 0 && g && (g.textContent = e.hint), e.status !== void 0 && i(l, g, e.status, "tokui-input");
11044
11603
  };
11045
- var v = e.createReporter("pwd", n.attrs, o), y = e.debounce(function() {
11604
+ var v = e.createReporter("pwd", n.attrs, o), b = e.debounce(function() {
11046
11605
  v("change", {
11047
11606
  value: l.value,
11048
11607
  name: n.attrs.n || void 0
11049
11608
  });
11050
11609
  }, parseInt(n.attrs.db) || 300);
11051
- return l.addEventListener("input", y), o._variantTarget = l, o;
11610
+ return l.addEventListener("input", b), o._variantTarget = l, o;
11052
11611
  }), e.register("textarea", (n, r) => {
11053
11612
  let i = t("div", { class: "tokui-field" });
11054
11613
  if (n.attrs.l) {
@@ -11065,19 +11624,19 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
11065
11624
  let d = t("textarea", u), f = n.children && n.children.length > 0 ? n.children.map((e) => e.content || "").join("") : n.content || n.attrs.tx || "";
11066
11625
  if (d.textContent = f, o) {
11067
11626
  d.classList.add("tokui-textarea--auto");
11068
- var p = 0, m = 0;
11627
+ var m = 0, h = 0;
11069
11628
  function e() {
11070
- if (!p) {
11629
+ if (!m) {
11071
11630
  var e = d.getAttribute("rows");
11072
11631
  d.setAttribute("rows", "1");
11073
11632
  var t = d.scrollHeight;
11074
- p = t * s, m = c > 0 ? t * c : 0, d.setAttribute("rows", e), d.style.height = "auto";
11633
+ m = t * s, h = c > 0 ? t * c : 0, d.setAttribute("rows", e), d.style.height = "auto";
11075
11634
  var n = d.scrollHeight;
11076
- p = Math.max(p, n), d.style.height = p + "px";
11635
+ m = Math.max(m, n), d.style.height = m + "px";
11077
11636
  }
11078
11637
  d.style.height = "auto";
11079
11638
  var r = d.scrollHeight;
11080
- r = Math.max(r, p), m > 0 && (r = Math.min(r, m)), d.style.height = r + "px", d.style.overflow = m > 0 && d.scrollHeight > m ? "auto" : "hidden";
11639
+ r = Math.max(r, m), h > 0 && (r = Math.min(r, h)), d.style.height = r + "px", d.style.overflow = h > 0 && d.scrollHeight > h ? "auto" : "hidden";
11081
11640
  }
11082
11641
  d.addEventListener && d.addEventListener("input", e), setTimeout(e, 0);
11083
11642
  }
@@ -11090,21 +11649,24 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
11090
11649
  });
11091
11650
  }
11092
11651
  } else i.appendChild(d);
11093
- i._update = function(e) {
11652
+ var g = null;
11653
+ (n.attrs.hint || n.attrs.rule) && (g = t("div", { class: "tokui-field__hint" }, n.attrs.hint || ""), i.appendChild(g)), p(i, d, g, n.attrs, "tokui-input", function() {
11654
+ return d.value;
11655
+ }), i._update = function(e) {
11094
11656
  e.v !== void 0 && (d.value = e.v), e.dis === !0 || e.dis === "true" ? d.disabled = !0 : (e.dis === !1 || e.dis === "false") && (d.disabled = !1), e.ro === !0 || e.ro === "true" ? d.readOnly = !0 : (e.ro === !1 || e.ro === "false") && (d.readOnly = !1);
11095
11657
  };
11096
- var h = e.createReporter("textarea", n.attrs, i), g = e.debounce(function() {
11097
- h("change", {
11658
+ var _ = e.createReporter("textarea", n.attrs, i), v = e.debounce(function() {
11659
+ _("change", {
11098
11660
  value: d.value,
11099
11661
  name: n.attrs.n || void 0
11100
11662
  });
11101
11663
  }, parseInt(n.attrs.db) || 300);
11102
- return d.addEventListener("input", g), i._variantTarget = d, i._slot = d, i._tokuiType = "textarea", i;
11664
+ return d.addEventListener("input", v), i._variantTarget = d, i._slot = d, i._tokuiType = "textarea", i;
11103
11665
  }), e.register("picker", (n, r) => {
11104
11666
  let i = n.attrs.multi !== void 0, a = n.attrs.dis !== void 0, o = n.attrs.n || n.attrs.id || "picker", s = n.attrs.ph || "", c = t("div", { class: (n.attrs.v ? n.attrs.v.split(",").map((e) => e.trim()) : []).indexOf("inline") === -1 ? "tokui-field" : "tokui-field tokui-field--inline" });
11105
11667
  if (n.attrs.l) {
11106
11668
  let e = { class: "tokui-label" };
11107
- n.attrs.id && (e.for = n.attrs.id), c.appendChild(t("label", e, n.attrs.l));
11669
+ n.attrs.id && (e.for = n.attrs.id), n.attrs.req !== void 0 && (e.class += " tokui-label--req"), c.appendChild(t("label", e, n.attrs.l));
11108
11670
  }
11109
11671
  let l = ["tokui-picker"];
11110
11672
  i && l.push("tokui-picker--multi"), a && l.push("tokui-picker--disabled");
@@ -11114,13 +11676,13 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
11114
11676
  role: "listbox",
11115
11677
  "aria-expanded": "false"
11116
11678
  });
11117
- var f = "", p = "";
11679
+ var d = "", p = "";
11118
11680
  i || n.children.forEach((e) => {
11119
- e.attrs && e.attrs.chk !== void 0 && (f = e.attrs.v || "", p = e.attrs && e.attrs.tx || f);
11681
+ e.attrs && e.attrs.chk !== void 0 && (d = e.attrs.v || "", p = e.attrs && e.attrs.tx || d);
11120
11682
  });
11121
11683
  let m = t("div", { class: "tokui-picker-control" });
11122
11684
  i && n.children.forEach((e) => {
11123
- e.attrs && e.attrs.chk !== void 0 && m.appendChild(b(e, u, o));
11685
+ e.attrs && e.attrs.chk !== void 0 && m.appendChild(C(e, u, o));
11124
11686
  });
11125
11687
  let h = {
11126
11688
  class: "tokui-picker-search",
@@ -11130,9 +11692,9 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
11130
11692
  s && !p && (h.placeholder = s), a && (h.disabled = "disabled"), p && (h.value = p), m.appendChild(t("input", h)), m.appendChild(t("span", { class: "tokui-picker-arrow" })), u.appendChild(m);
11131
11693
  let g = t("ul", { class: "tokui-picker-dropdown" });
11132
11694
  n.children.forEach((e) => {
11133
- g.appendChild(y(e));
11695
+ g.appendChild(x(e));
11134
11696
  });
11135
- var _ = t("li", { class: "tokui-picker-empty" }, d("picker.noMatch"));
11697
+ var _ = t("li", { class: "tokui-picker-empty" }, f("picker.noMatch"));
11136
11698
  _.style.display = "none", g.appendChild(_), u.appendChild(g), i ? n.children.forEach((e) => {
11137
11699
  e.attrs && e.attrs.chk !== void 0 && u.appendChild(t("input", {
11138
11700
  type: "hidden",
@@ -11142,10 +11704,10 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
11142
11704
  }) : u.appendChild(t("input", {
11143
11705
  type: "hidden",
11144
11706
  name: o,
11145
- value: f
11707
+ value: d
11146
11708
  })), c.appendChild(u), c._variantTarget = u, c._slot = g, c._tokuiType = "picker";
11147
11709
  var v = e.createReporter("picker", n.attrs, c);
11148
- function S(e) {
11710
+ function y(e) {
11149
11711
  v("change", {
11150
11712
  value: e,
11151
11713
  name: n.attrs.n || void 0
@@ -11167,10 +11729,10 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
11167
11729
  name: o,
11168
11730
  value: r
11169
11731
  }));
11170
- }), !a && typeof document < "u" && x(u, {
11732
+ }), !a && typeof document < "u" && w(u, {
11171
11733
  multi: i,
11172
11734
  name: o,
11173
- onChange: S
11735
+ onChange: y
11174
11736
  });
11175
11737
  }, c.setAttribute("data-tokui-resettable", ""), c._tokuiReset = function() {
11176
11738
  var e = u.querySelector(".tokui-picker-search"), n = u.querySelector("input[type=hidden]"), r = g.querySelectorAll(".tokui-picker-option");
@@ -11191,8 +11753,8 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
11191
11753
  value: a
11192
11754
  }));
11193
11755
  }
11194
- })) : (e && (e.value = p), n && (n.value = f), r.forEach(function(e) {
11195
- var t = !!f && e.getAttribute("data-value") === f;
11756
+ })) : (e && (e.value = p), n && (n.value = d), r.forEach(function(e) {
11757
+ var t = !!d && e.getAttribute("data-value") === d;
11196
11758
  e.classList.toggle("tokui-picker-option--selected", t);
11197
11759
  }));
11198
11760
  }, c._update = function(e) {
@@ -11234,7 +11796,7 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
11234
11796
  }
11235
11797
  }, c;
11236
11798
  });
11237
- function y(e) {
11799
+ function x(e) {
11238
11800
  let n = e.attrs && e.attrs.v || "", r = e.attrs && e.attrs.tx || n || e.content || "", i = e.attrs && e.attrs.chk !== void 0, a = t("li", {
11239
11801
  class: "tokui-picker-option",
11240
11802
  "data-value": n,
@@ -11245,14 +11807,14 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
11245
11807
  }, r);
11246
11808
  return i && a.classList.add("tokui-picker-option--selected"), i && a.setAttribute("data-selected-initial", "1"), a;
11247
11809
  }
11248
- function b(e, n, r) {
11810
+ function C(e, n, r) {
11249
11811
  let i = e.attrs && e.attrs.tx || e.attrs && e.attrs.v || e.content || "", a = t("span", {
11250
11812
  class: "tokui-picker-tag",
11251
11813
  "data-value": e.attrs && e.attrs.v || e.content || ""
11252
11814
  }, i + " "), o = t("span", { class: "tokui-picker-tag-close" }, "×");
11253
11815
  return a.appendChild(o), a;
11254
11816
  }
11255
- function x(e, n) {
11817
+ function w(e, n) {
11256
11818
  var r = n.multi, i = n.name, a = typeof n.onChange == "function" ? n.onChange : null, o = e.querySelector(".tokui-picker-control"), s = e.querySelector(".tokui-picker-search"), c = e.querySelector(".tokui-picker-dropdown"), l = e.querySelector(".tokui-picker-empty"), u = !1, d = -1;
11257
11819
  function f() {
11258
11820
  if (a) if (r) {
@@ -11378,7 +11940,7 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
11378
11940
  n.attrs.id && !i && (e.for = n.attrs.id), n.attrs.req !== void 0 && (e.class += " tokui-label--req"), s.appendChild(t("label", e, n.attrs.l));
11379
11941
  }
11380
11942
  let c = { class: "tokui-select" };
11381
- i && (c.multiple = !0), n.attrs.id && (c.id = n.attrs.id), n.attrs.n ? c.name = n.attrs.n : n.attrs.id && (c.name = n.attrs.id), n.attrs.req !== void 0 && (c["aria-required"] = "true"), a.indexOf("error") !== -1 && (c["aria-invalid"] = "true");
11943
+ i && (c.multiple = !0), n.attrs.id && (c.id = n.attrs.id), n.attrs.n ? c.name = n.attrs.n : n.attrs.id && (c.name = n.attrs.id), n.attrs.req !== void 0 && !i && (c.required = "required"), n.attrs.req !== void 0 && (c["aria-required"] = "true"), a.indexOf("error") !== -1 && (c["aria-invalid"] = "true");
11382
11944
  let l = t("select", c);
11383
11945
  if (n.attrs.ph) {
11384
11946
  let e = t("option", {
@@ -11391,12 +11953,20 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
11391
11953
  r(n.children).forEach((e) => {
11392
11954
  e && e.nodeType && l.appendChild(e);
11393
11955
  }), s.appendChild(l);
11394
- var u = e.createReporter("select", n.attrs, s);
11956
+ var u = null;
11957
+ (n.attrs.hint || n.attrs.rule) && (u = t("div", { class: "tokui-field__hint" }, n.attrs.hint || ""), s.appendChild(u)), p(s, l, u, n.attrs, "tokui-select", function() {
11958
+ if (!i) return l.value;
11959
+ var e = [];
11960
+ return Array.prototype.forEach.call(l.children, function(t) {
11961
+ t && t.tagName === "OPTION" && t.selected && e.push(t.value == null ? "" : String(t.value));
11962
+ }), e.join(",");
11963
+ });
11964
+ var d = e.createReporter("select", n.attrs, s);
11395
11965
  return l.addEventListener("change", function() {
11396
11966
  var e;
11397
11967
  i ? (e = [], Array.prototype.forEach.call(l.children, function(t) {
11398
11968
  !t || t.tagName !== "OPTION" || t.selected && e.push(t.value == null ? String(t.getAttribute("value") || "") : String(t.value));
11399
- })) : e = l.value, u("change", {
11969
+ })) : e = l.value, d("change", {
11400
11970
  value: e,
11401
11971
  name: n.attrs.n || void 0
11402
11972
  });
@@ -11417,7 +11987,7 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
11417
11987
  }), e.register("radio", (n, r) => {
11418
11988
  n = o(n);
11419
11989
  let i = n.attrs.v ? n.attrs.v.split(",").map((e) => e.trim()) : [], a = t("div", { class: i.indexOf("inline") === -1 ? "tokui-field" : "tokui-field tokui-field--inline" });
11420
- n.attrs.l && a.appendChild(t("div", { class: "tokui-label" }, n.attrs.l));
11990
+ n.attrs.l && a.appendChild(t("div", { class: "tokui-label" + (n.attrs.req === void 0 ? "" : " tokui-label--req") }, n.attrs.l));
11421
11991
  let s = t("div", {
11422
11992
  class: "tokui-radio-group" + (i.indexOf("vertical") === -1 ? "" : " tokui-radio-group--vertical"),
11423
11993
  role: "radiogroup"
@@ -11425,7 +11995,7 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
11425
11995
  n.attrs.id && (s.id = n.attrs.id);
11426
11996
  let c = n.attrs.n || n.attrs.id || "radio";
11427
11997
  s._radioName = c, n.children.forEach((e) => {
11428
- s.appendChild(C(e, c));
11998
+ s.appendChild(T(e, c));
11429
11999
  }), a.appendChild(s), a._slot = s, a._tokuiType = "radio";
11430
12000
  var l = e.createReporter("radio", n.attrs, a);
11431
12001
  return s.addEventListener("change", function(e) {
@@ -11443,7 +12013,7 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
11443
12013
  }
11444
12014
  }, a;
11445
12015
  });
11446
- function C(e, n) {
12016
+ function T(e, n) {
11447
12017
  let r = t("label", { class: "tokui-radio-item" });
11448
12018
  r.setAttribute("data-tokui-tag", "opt");
11449
12019
  let i = {
@@ -11455,7 +12025,7 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
11455
12025
  let a = e.attrs && e.attrs.tx || e.attrs && e.attrs.v || e.content || "";
11456
12026
  return r.appendChild(t("span", { class: "tokui-radio-text" }, a)), r;
11457
12027
  }
11458
- function w(e, n) {
12028
+ function E(e, n) {
11459
12029
  let r = t("label", { class: "tokui-checkbox-item" });
11460
12030
  r.setAttribute("data-tokui-tag", "opt");
11461
12031
  let i = {
@@ -11468,9 +12038,9 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
11468
12038
  return r.appendChild(t("span", { class: "tokui-checkbox-text" }, a)), r;
11469
12039
  }
11470
12040
  e.register("opt", (e, n, r) => {
11471
- if (r === "radio") return C(e, "");
11472
- if (r === "checkbox") return w(e, "");
11473
- if (r === "picker") return y(e);
12041
+ if (r === "radio") return T(e, "");
12042
+ if (r === "checkbox") return E(e, "");
12043
+ if (r === "picker") return x(e);
11474
12044
  let i = e.attrs ? e.attrs.v : "", a = e.attrs && e.attrs.tx || i || e.content || "", o = { value: i };
11475
12045
  return e.attrs && e.attrs.chk !== void 0 && (o.selected = ""), t("option", o, a);
11476
12046
  }), e.register("checkbox", (n, r) => {
@@ -11505,13 +12075,13 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
11505
12075
  return i._update = s, i;
11506
12076
  }
11507
12077
  let l = n.attrs.v ? n.attrs.v.split(",").map((e) => e.trim()) : [], u = t("div", { class: l.indexOf("inline") === -1 ? "tokui-field" : "tokui-field tokui-field--inline" });
11508
- n.attrs.l && u.appendChild(t("div", { class: "tokui-label" }, n.attrs.l));
12078
+ n.attrs.l && u.appendChild(t("div", { class: "tokui-label" + (n.attrs.req === void 0 ? "" : " tokui-label--req") }, n.attrs.l));
11509
12079
  let d = n.attrs.n || n.attrs.id || "checkbox", f = t("div", {
11510
12080
  class: "tokui-checkbox-group" + (l.indexOf("vertical") === -1 ? "" : " tokui-checkbox-group--vertical"),
11511
12081
  role: "group"
11512
12082
  });
11513
12083
  f._checkboxName = d, n.attrs.id && (f.id = n.attrs.id), n.children && n.children.length && n.children.forEach(function(e) {
11514
- f.appendChild(w(e, d));
12084
+ f.appendChild(E(e, d));
11515
12085
  }), u.appendChild(f), u._slot = f, u._tokuiType = "checkbox";
11516
12086
  var a = e.createReporter("checkbox", n.attrs, u);
11517
12087
  return f.addEventListener("change", function() {
@@ -11566,12 +12136,117 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
11566
12136
  }), e.register("slider", (n) => {
11567
12137
  var r = parseFloat(n.attrs.min) || 0, i = parseFloat(n.attrs.max) || 100, a = parseFloat(n.attrs.step) || 1, o = parseFloat(n.attrs.v) || 0;
11568
12138
  o < r && (o = r), o > i && (o = i);
11569
- var s = t("div", { class: "tokui-field" });
11570
- n.attrs.l && s.appendChild(t("label", {
11571
- class: "tokui-label",
12139
+ var s = [];
12140
+ n.attrs.marks && String(n.attrs.marks).split(",").forEach(function(e) {
12141
+ var t = e.trim();
12142
+ if (t) {
12143
+ var n = t.indexOf(":"), r = parseFloat(n === -1 ? t : t.substring(0, n));
12144
+ isNaN(r) || s.push({
12145
+ v: r,
12146
+ tx: n === -1 ? t : t.substring(n + 1).trim()
12147
+ });
12148
+ }
12149
+ });
12150
+ function c() {
12151
+ var e = t("div", { class: "tokui-slider__marks" });
12152
+ return s.forEach(function(n) {
12153
+ var a = (n.v - r) / (i - r) * 100;
12154
+ a < 0 && (a = 0), a > 100 && (a = 100);
12155
+ var o = t("div", { class: "tokui-slider__mark" });
12156
+ o.style.left = a + "%", o.appendChild(t("span", { class: "tokui-slider__mark-dot" })), o.appendChild(t("span", { class: "tokui-slider__mark-label" }, n.tx)), e.appendChild(o);
12157
+ }), e;
12158
+ }
12159
+ if (n.attrs.range !== void 0) {
12160
+ var l = r, u = i;
12161
+ if (n.attrs.v !== void 0) {
12162
+ var d = String(n.attrs.v).split(","), f = parseFloat(d[0]), p = parseFloat(d[1]);
12163
+ isNaN(f) || (l = f), isNaN(p) || (u = p);
12164
+ }
12165
+ if (l = Math.max(r, Math.min(i, l)), u = Math.max(r, Math.min(i, u)), l > u) {
12166
+ var m = l;
12167
+ l = u, u = m;
12168
+ }
12169
+ var h = t("div", { class: "tokui-field" });
12170
+ n.attrs.l && h.appendChild(t("label", {
12171
+ class: "tokui-label" + (n.attrs.req === void 0 ? "" : " tokui-label--req"),
12172
+ for: n.attrs.id || ""
12173
+ }, n.attrs.l));
12174
+ var g = t("div", { class: "tokui-slider tokui-slider--range" }), _ = t("div", { class: "tokui-slider__track" }), v = t("div", { class: "tokui-slider__fill" }), y = t("div", {
12175
+ class: "tokui-slider__thumb tokui-slider__thumb--min",
12176
+ role: "slider",
12177
+ "aria-valuemin": String(r),
12178
+ "aria-valuemax": String(i),
12179
+ "aria-valuenow": String(l),
12180
+ "aria-label": (n.attrs.l || "Slider") + " min",
12181
+ tabindex: "0"
12182
+ }), b = t("div", {
12183
+ class: "tokui-slider__thumb tokui-slider__thumb--max",
12184
+ role: "slider",
12185
+ "aria-valuemin": String(r),
12186
+ "aria-valuemax": String(i),
12187
+ "aria-valuenow": String(u),
12188
+ "aria-label": (n.attrs.l || "Slider") + " max",
12189
+ tabindex: "0"
12190
+ }), x = t("span", { class: "tokui-slider__value" }, l + " ~ " + u), S = t("input", { type: "hidden" });
12191
+ n.attrs.id && (S.id = n.attrs.id), n.attrs.n ? S.name = n.attrs.n : n.attrs.id && (S.name = n.attrs.id), _.appendChild(v), _.appendChild(y), _.appendChild(b), s.length && (_.appendChild(c()), g.classList.add("tokui-slider--has-marks")), g.appendChild(_), g.appendChild(x), g.appendChild(S);
12192
+ function o() {
12193
+ var e = (l - r) / (i - r) * 100, t = (u - r) / (i - r) * 100;
12194
+ v.style.left = e + "%", v.style.width = t - e + "%", y.style.left = e + "%", b.style.left = t + "%", y.setAttribute("aria-valuenow", String(l)), b.setAttribute("aria-valuenow", String(u)), x.textContent = l + " ~ " + u, S.value = l + "," + u;
12195
+ }
12196
+ if (o(), n.attrs.dis !== void 0) g.classList.add("tokui-slider--disabled");
12197
+ else {
12198
+ var C = e.createReporter("slider", n.attrs, h), w = null, T = function(e) {
12199
+ var t = _.getBoundingClientRect(), n = ((e.touches ? e.touches[0].clientX : e.clientX) - t.left) / t.width;
12200
+ n = Math.max(0, Math.min(1, n));
12201
+ var o = r + n * (i - r), s = Math.round(o / a) * a;
12202
+ s = Math.max(r, Math.min(i, s));
12203
+ var c = a < 1 ? 10 ** Math.ceil(-Math.log10(a)) : 1;
12204
+ return Math.round(s * c) / c;
12205
+ }, E = function(e) {
12206
+ e.preventDefault();
12207
+ var t = T(e);
12208
+ w === "min" ? l = Math.min(t, u) : u = Math.max(t, l), o();
12209
+ }, D = function() {
12210
+ if (document.removeEventListener("mousemove", E), document.removeEventListener("mouseup", D), document.removeEventListener("touchmove", E), document.removeEventListener("touchend", D), (w === "min" ? y : b).classList.remove("tokui-slider__thumb--dragging"), n.attrs.clk) {
12211
+ var t = e.eventBus ? e.eventBus.getHandler(n.attrs.clk) : null;
12212
+ t && t({
12213
+ value: [l, u],
12214
+ id: n.attrs.id
12215
+ });
12216
+ }
12217
+ C("change", {
12218
+ value: [l, u],
12219
+ name: n.attrs.n || void 0
12220
+ }), w = null;
12221
+ }, O = function(e) {
12222
+ e.preventDefault();
12223
+ var t = T(e);
12224
+ w = Math.abs(t - l) <= Math.abs(t - u) ? "min" : "max", l === u && (w = t <= l ? "min" : "max"), E(e), document.addEventListener("mousemove", E), document.addEventListener("mouseup", D), document.addEventListener("touchmove", E), document.addEventListener("touchend", D), (w === "min" ? y : b).classList.add("tokui-slider__thumb--dragging");
12225
+ };
12226
+ g.addEventListener("mousedown", O), g.addEventListener("touchstart", O, { passive: !1 });
12227
+ }
12228
+ h._update = function(e) {
12229
+ if (e.v !== void 0) {
12230
+ var t = String(e.v).split(","), n = parseFloat(t[0]), a = parseFloat(t[1]);
12231
+ if (isNaN(n) || (l = Math.max(r, Math.min(i, n))), isNaN(a) || (u = Math.max(r, Math.min(i, a))), l > u) {
12232
+ var s = l;
12233
+ l = u, u = s;
12234
+ }
12235
+ o();
12236
+ }
12237
+ e.dis === !0 || e.dis === "true" ? g.classList.add("tokui-slider--disabled") : (e.dis === !1 || e.dis === "false") && g.classList.remove("tokui-slider--disabled");
12238
+ };
12239
+ var k = l, A = u;
12240
+ return h.setAttribute("data-tokui-resettable", ""), h._tokuiReset = function() {
12241
+ l = k, u = A, o();
12242
+ }, g._variantTarget = g, h.appendChild(g), h;
12243
+ }
12244
+ var j = t("div", { class: "tokui-field" });
12245
+ n.attrs.l && j.appendChild(t("label", {
12246
+ class: "tokui-label" + (n.attrs.req === void 0 ? "" : " tokui-label--req"),
11572
12247
  for: n.attrs.id || ""
11573
12248
  }, n.attrs.l));
11574
- var c = t("div", { class: "tokui-slider" }), l = t("div", { class: "tokui-slider__track" }), u = t("div", { class: "tokui-slider__fill" }), d = t("div", {
12249
+ var M = t("div", { class: "tokui-slider" }), N = t("div", { class: "tokui-slider__track" }), P = t("div", { class: "tokui-slider__fill" }), F = t("div", {
11575
12250
  class: "tokui-slider__thumb",
11576
12251
  role: "slider",
11577
12252
  "aria-valuemin": String(r),
@@ -11579,127 +12254,208 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
11579
12254
  "aria-valuenow": String(o),
11580
12255
  "aria-label": n.attrs.l || "Slider",
11581
12256
  tabindex: "0"
11582
- }), f = t("span", { class: "tokui-slider__value" }, String(o)), p = t("input", { type: "hidden" });
11583
- n.attrs.id && (p.id = n.attrs.id), n.attrs.n ? p.name = n.attrs.n : n.attrs.id && (p.name = n.attrs.id), p.value = o, l.appendChild(u), l.appendChild(d), c.appendChild(l), c.appendChild(f), c.appendChild(p);
11584
- var m = (o - r) / (i - r) * 100;
11585
- if (u.style.width = m + "%", d.style.left = m + "%", n.attrs.dis !== void 0) c.classList.add("tokui-slider--disabled");
12257
+ }), I = t("span", { class: "tokui-slider__value" }, String(o)), L = t("input", { type: "hidden" });
12258
+ n.attrs.id && (L.id = n.attrs.id), n.attrs.n ? L.name = n.attrs.n : n.attrs.id && (L.name = n.attrs.id), L.value = o, N.appendChild(P), N.appendChild(F), s.length && (N.appendChild(c()), M.classList.add("tokui-slider--has-marks")), M.appendChild(N), M.appendChild(I), M.appendChild(L);
12259
+ var R = (o - r) / (i - r) * 100;
12260
+ if (P.style.width = R + "%", F.style.left = R + "%", n.attrs.dis !== void 0) M.classList.add("tokui-slider--disabled");
11586
12261
  else {
11587
- var h = e.createReporter("slider", n.attrs, s), g = function(e) {
12262
+ var z = e.createReporter("slider", n.attrs, j), B = function(e) {
11588
12263
  e.preventDefault();
11589
- var t = l.getBoundingClientRect(), n = ((e.touches ? e.touches[0].clientX : e.clientX) - t.left) / t.width;
12264
+ var t = N.getBoundingClientRect(), n = ((e.touches ? e.touches[0].clientX : e.clientX) - t.left) / t.width;
11590
12265
  n = Math.max(0, Math.min(1, n));
11591
12266
  var s = r + n * (i - r), c = Math.round(s / a) * a;
11592
12267
  c = Math.max(r, Math.min(i, c));
11593
- var m = a < 1 ? 10 ** Math.ceil(-Math.log10(a)) : 1;
11594
- c = Math.round(c * m) / m, o = c;
11595
- var h = (o - r) / (i - r) * 100;
11596
- u.style.width = h + "%", d.style.left = h + "%", f.textContent = String(o), p.value = o, d.setAttribute("aria-valuenow", String(o));
11597
- }, _ = function() {
11598
- if (document.removeEventListener("mousemove", g), document.removeEventListener("mouseup", _), document.removeEventListener("touchmove", g), document.removeEventListener("touchend", _), d.classList.remove("tokui-slider__thumb--dragging"), n.attrs.clk) {
12268
+ var l = a < 1 ? 10 ** Math.ceil(-Math.log10(a)) : 1;
12269
+ c = Math.round(c * l) / l, o = c;
12270
+ var u = (o - r) / (i - r) * 100;
12271
+ P.style.width = u + "%", F.style.left = u + "%", I.textContent = String(o), L.value = o, F.setAttribute("aria-valuenow", String(o));
12272
+ }, V = function() {
12273
+ if (document.removeEventListener("mousemove", B), document.removeEventListener("mouseup", V), document.removeEventListener("touchmove", B), document.removeEventListener("touchend", V), F.classList.remove("tokui-slider__thumb--dragging"), n.attrs.clk) {
11599
12274
  var t = e.eventBus ? e.eventBus.getHandler(n.attrs.clk) : null;
11600
12275
  t && t({
11601
12276
  value: o,
11602
12277
  id: n.attrs.id
11603
12278
  });
11604
12279
  }
11605
- h("change", {
12280
+ z("change", {
11606
12281
  value: o,
11607
12282
  name: n.attrs.n || void 0
11608
12283
  });
11609
- }, v = function(e) {
11610
- e.preventDefault(), g(e), document.addEventListener("mousemove", g), document.addEventListener("mouseup", _), document.addEventListener("touchmove", g), document.addEventListener("touchend", _), d.classList.add("tokui-slider__thumb--dragging");
12284
+ }, H = function(e) {
12285
+ e.preventDefault(), B(e), document.addEventListener("mousemove", B), document.addEventListener("mouseup", V), document.addEventListener("touchmove", B), document.addEventListener("touchend", V), F.classList.add("tokui-slider__thumb--dragging");
11611
12286
  };
11612
- c.addEventListener("mousedown", v), c.addEventListener("touchstart", v, { passive: !1 });
12287
+ M.addEventListener("mousedown", H), M.addEventListener("touchstart", H, { passive: !1 });
11613
12288
  }
11614
- s._update = function(e) {
12289
+ j._update = function(e) {
11615
12290
  if (e.v !== void 0) {
11616
12291
  var t = parseFloat(e.v) || 0;
11617
12292
  isNaN(r) || (t = Math.max(r, t)), isNaN(i) || (t = Math.min(i, t)), o = t;
11618
12293
  var n = (o - r) / (i - r) * 100;
11619
- u.style.width = n + "%", d.style.left = n + "%", f.textContent = String(o), p.value = o, d.setAttribute("aria-valuenow", String(o));
12294
+ P.style.width = n + "%", F.style.left = n + "%", I.textContent = String(o), L.value = o, F.setAttribute("aria-valuenow", String(o));
11620
12295
  }
11621
- e.dis === !0 || e.dis === "true" ? c.classList.add("tokui-slider--disabled") : (e.dis === !1 || e.dis === "false") && c.classList.remove("tokui-slider--disabled");
12296
+ e.dis === !0 || e.dis === "true" ? M.classList.add("tokui-slider--disabled") : (e.dis === !1 || e.dis === "false") && M.classList.remove("tokui-slider--disabled");
11622
12297
  };
11623
- var y = o;
11624
- return s.setAttribute("data-tokui-resettable", ""), s._tokuiReset = function() {
11625
- o = y;
12298
+ var U = o;
12299
+ return j.setAttribute("data-tokui-resettable", ""), j._tokuiReset = function() {
12300
+ o = U;
11626
12301
  var e = (o - r) / (i - r) * 100;
11627
- u.style.width = e + "%", d.style.left = e + "%", f.textContent = String(o), p.value = o, d.setAttribute("aria-valuenow", String(o));
11628
- }, c._variantTarget = c, s.appendChild(c), s;
12302
+ P.style.width = e + "%", F.style.left = e + "%", I.textContent = String(o), L.value = o, F.setAttribute("aria-valuenow", String(o));
12303
+ }, M._variantTarget = M, j.appendChild(M), j;
11629
12304
  }), e.register("rate", (n) => {
11630
- var r = parseInt(n.attrs.max) || 5, i = parseInt(n.attrs.v) || 0, a = n.attrs.tx || "★", o = "☆", s = t("div", { class: "tokui-field" });
11631
- n.attrs.l && s.appendChild(t("label", {
11632
- class: "tokui-label",
12305
+ var r = parseInt(n.attrs.max) || 5, i = parseInt(n.attrs.v) || 0, a = n.attrs.tx || "★", o = "☆";
12306
+ if (n.attrs.half !== void 0) {
12307
+ var s = parseFloat(n.attrs.v) || 0;
12308
+ s = Math.round(s * 2) / 2, s > r && (s = r), s < 0 && (s = 0);
12309
+ var c = t("div", { class: "tokui-field" });
12310
+ n.attrs.l && c.appendChild(t("label", {
12311
+ class: "tokui-label" + (n.attrs.req === void 0 ? "" : " tokui-label--req"),
12312
+ for: n.attrs.id || ""
12313
+ }, n.attrs.l));
12314
+ var l = t("div", {
12315
+ class: "tokui-rate tokui-rate--half",
12316
+ role: "radiogroup",
12317
+ "aria-label": n.attrs.l || f("rate.defaultLabel"),
12318
+ tabindex: "0"
12319
+ }), u = t("input", { type: "hidden" });
12320
+ n.attrs.id && (u.id = n.attrs.id), n.attrs.n ? u.name = n.attrs.n : n.attrs.id && (u.name = n.attrs.id);
12321
+ for (var d = [], p = [], m = 0; m < r; m++) {
12322
+ var h = t("span", {
12323
+ class: "tokui-rate__star",
12324
+ "data-index": String(m + 1),
12325
+ role: "radio",
12326
+ "aria-checked": "false"
12327
+ });
12328
+ h.appendChild(t("span", { class: "tokui-rate__star__base" }, o));
12329
+ var g = t("span", { class: "tokui-rate__star__on" }, a);
12330
+ h.appendChild(g), h.appendChild(t("span", { class: "tokui-rate__zone tokui-rate__zone--left" })), h.appendChild(t("span", { class: "tokui-rate__zone tokui-rate__zone--right" })), d.push(h), p.push(g), l.appendChild(h);
12331
+ }
12332
+ var _ = t("span", { class: "tokui-rate__text" });
12333
+ l.appendChild(_), l.appendChild(u);
12334
+ var v = e.createReporter("rate", n.attrs, c);
12335
+ function i(e) {
12336
+ for (var t = 0; t < r; t++) {
12337
+ var n = e >= t + 1 ? 100 : e >= t + .5 ? 50 : 0;
12338
+ p[t].style.width = n + "%", n > 0 ? d[t].classList.add("tokui-rate__star--active") : d[t].classList.remove("tokui-rate__star--active"), n === 50 ? d[t].classList.add("tokui-rate__star--half") : d[t].classList.remove("tokui-rate__star--half"), d[t].setAttribute("aria-checked", String(e >= t + 1));
12339
+ }
12340
+ _.textContent = e > 0 ? e + "/" + r : "", u.value = e;
12341
+ }
12342
+ function b(e) {
12343
+ var t = e.closest(".tokui-rate__star");
12344
+ if (!t) return null;
12345
+ var n = parseInt(t.getAttribute("data-index"));
12346
+ return e.classList.contains("tokui-rate__zone--left") ? n - .5 : n;
12347
+ }
12348
+ n.attrs.ro === void 0 ? n.attrs.dis === void 0 ? (l.addEventListener("mouseover", function(e) {
12349
+ var t = e.target.closest ? e.target.closest(".tokui-rate__zone") : null;
12350
+ t && i(b(t));
12351
+ }), l.addEventListener("mouseout", function() {
12352
+ i(s);
12353
+ }), l.addEventListener("click", function(t) {
12354
+ var a = t.target.closest ? t.target.closest(".tokui-rate__zone") : null;
12355
+ if (a) {
12356
+ var o = b(a);
12357
+ if (s = s === o ? 0 : o, i(s), n.attrs.clk) {
12358
+ var c = e.eventBus ? e.eventBus.getHandler(n.attrs.clk) : null;
12359
+ c && c({
12360
+ value: s,
12361
+ max: r,
12362
+ id: n.attrs.id
12363
+ });
12364
+ }
12365
+ v("change", {
12366
+ value: s,
12367
+ name: n.attrs.n || void 0
12368
+ });
12369
+ }
12370
+ }), l.addEventListener("keydown", function(e) {
12371
+ if (e.key === "ArrowRight" || e.key === "ArrowUp") e.preventDefault(), s = Math.min(s + .5, r);
12372
+ else if (e.key === "ArrowLeft" || e.key === "ArrowDown") e.preventDefault(), s = Math.max(s - .5, 0);
12373
+ else return;
12374
+ i(s), v("change", {
12375
+ value: s,
12376
+ name: n.attrs.n || void 0
12377
+ });
12378
+ })) : l.classList.add("tokui-rate--disabled") : l.classList.add("tokui-rate--readonly"), i(s), c._update = function(e) {
12379
+ e.v !== void 0 && (s = parseFloat(e.v) || 0, s = Math.round(s * 2) / 2, s > r && (s = r), s < 0 && (s = 0), i(s)), e.dis === !0 || e.dis === "true" ? l.classList.add("tokui-rate--disabled") : (e.dis === !1 || e.dis === "false") && l.classList.remove("tokui-rate--disabled");
12380
+ };
12381
+ var y = s;
12382
+ return c.setAttribute("data-tokui-resettable", ""), c._tokuiReset = function() {
12383
+ s = y, i(s);
12384
+ }, l._variantTarget = l, c.appendChild(l), c;
12385
+ }
12386
+ var b = t("div", { class: "tokui-field" });
12387
+ n.attrs.l && b.appendChild(t("label", {
12388
+ class: "tokui-label" + (n.attrs.req === void 0 ? "" : " tokui-label--req"),
11633
12389
  for: n.attrs.id || ""
11634
12390
  }, n.attrs.l));
11635
- var c = t("div", {
12391
+ var x = t("div", {
11636
12392
  class: "tokui-rate",
11637
12393
  role: "radiogroup",
11638
- "aria-label": n.attrs.l || d("rate.defaultLabel"),
12394
+ "aria-label": n.attrs.l || f("rate.defaultLabel"),
11639
12395
  tabindex: "0"
11640
- }), l = t("input", { type: "hidden" });
11641
- n.attrs.id && (l.id = n.attrs.id), n.attrs.n ? l.name = n.attrs.n : n.attrs.id && (l.name = n.attrs.id), l.value = i;
11642
- for (var u = [], f = 0; f < r; f++) {
11643
- var p = t("span", {
12396
+ }), S = t("input", { type: "hidden" });
12397
+ n.attrs.id && (S.id = n.attrs.id), n.attrs.n ? S.name = n.attrs.n : n.attrs.id && (S.name = n.attrs.id), S.value = i;
12398
+ for (var C = [], w = 0; w < r; w++) {
12399
+ var T = t("span", {
11644
12400
  class: "tokui-rate__star",
11645
- "data-index": String(f + 1),
12401
+ "data-index": String(w + 1),
11646
12402
  role: "radio",
11647
- "aria-checked": String(f < i)
12403
+ "aria-checked": String(w < i)
11648
12404
  });
11649
- p.textContent = f < i ? a : o, f < i && p.classList.add("tokui-rate__star--active"), u.push(p), c.appendChild(p);
12405
+ T.textContent = w < i ? a : o, w < i && T.classList.add("tokui-rate__star--active"), C.push(T), x.appendChild(T);
11650
12406
  }
11651
- var m = t("span", { class: "tokui-rate__text" });
11652
- i > 0 && (m.textContent = i + "/" + r), c.appendChild(m), c.appendChild(l);
11653
- var h = e.createReporter("rate", n.attrs, s);
11654
- n.attrs.ro === void 0 ? n.attrs.dis === void 0 ? (c.addEventListener("mouseover", function(e) {
12407
+ var E = t("span", { class: "tokui-rate__text" });
12408
+ i > 0 && (E.textContent = i + "/" + r), x.appendChild(E), x.appendChild(S);
12409
+ var D = e.createReporter("rate", n.attrs, b);
12410
+ n.attrs.ro === void 0 ? n.attrs.dis === void 0 ? (x.addEventListener("mouseover", function(e) {
11655
12411
  var t = e.target;
11656
- if (t.classList.contains("tokui-rate__star")) for (var n = parseInt(t.getAttribute("data-index")), r = 0; r < u.length; r++) u[r].textContent = r < n ? a : o, u[r].classList.toggle("tokui-rate__star--hover", r < n);
11657
- }), c.addEventListener("mouseout", function() {
11658
- for (var e = 0; e < u.length; e++) u[e].textContent = e < i ? a : o, u[e].classList.remove("tokui-rate__star--hover");
11659
- }), c.addEventListener("click", function(t) {
12412
+ if (t.classList.contains("tokui-rate__star")) for (var n = parseInt(t.getAttribute("data-index")), r = 0; r < C.length; r++) C[r].textContent = r < n ? a : o, C[r].classList.toggle("tokui-rate__star--hover", r < n);
12413
+ }), x.addEventListener("mouseout", function() {
12414
+ for (var e = 0; e < C.length; e++) C[e].textContent = e < i ? a : o, C[e].classList.remove("tokui-rate__star--hover");
12415
+ }), x.addEventListener("click", function(t) {
11660
12416
  var s = t.target;
11661
12417
  if (s.classList.contains("tokui-rate__star")) {
11662
12418
  var c = parseInt(s.getAttribute("data-index"));
11663
- i = i === c ? 0 : c, l.value = i, m.textContent = i > 0 ? i + "/" + r : "";
11664
- for (var d = 0; d < u.length; d++) u[d].textContent = d < i ? a : o, u[d].classList.toggle("tokui-rate__star--active", d < i), u[d].setAttribute("aria-checked", String(d < i));
12419
+ i = i === c ? 0 : c, S.value = i, E.textContent = i > 0 ? i + "/" + r : "";
12420
+ for (var l = 0; l < C.length; l++) C[l].textContent = l < i ? a : o, C[l].classList.toggle("tokui-rate__star--active", l < i), C[l].setAttribute("aria-checked", String(l < i));
11665
12421
  if (n.attrs.clk) {
11666
- var f = e.eventBus ? e.eventBus.getHandler(n.attrs.clk) : null;
11667
- f && f({
12422
+ var u = e.eventBus ? e.eventBus.getHandler(n.attrs.clk) : null;
12423
+ u && u({
11668
12424
  value: i,
11669
12425
  max: r,
11670
12426
  id: n.attrs.id
11671
12427
  });
11672
12428
  }
11673
- h("change", {
12429
+ D("change", {
11674
12430
  value: i,
11675
12431
  name: n.attrs.n || void 0
11676
12432
  });
11677
12433
  }
11678
- }), c.addEventListener("keydown", function(e) {
12434
+ }), x.addEventListener("keydown", function(e) {
11679
12435
  if (e.key === "ArrowRight" || e.key === "ArrowUp") e.preventDefault(), i = Math.min(i + 1, r);
11680
12436
  else if (e.key === "ArrowLeft" || e.key === "ArrowDown") e.preventDefault(), i = Math.max(i - 1, 0);
11681
12437
  else return;
11682
- l.value = i, m.textContent = i > 0 ? i + "/" + r : "";
11683
- for (var t = 0; t < u.length; t++) u[t].textContent = t < i ? a : o, u[t].classList.toggle("tokui-rate__star--active", t < i), u[t].setAttribute("aria-checked", String(t < i));
11684
- h("change", {
12438
+ S.value = i, E.textContent = i > 0 ? i + "/" + r : "";
12439
+ for (var t = 0; t < C.length; t++) C[t].textContent = t < i ? a : o, C[t].classList.toggle("tokui-rate__star--active", t < i), C[t].setAttribute("aria-checked", String(t < i));
12440
+ D("change", {
11685
12441
  value: i,
11686
12442
  name: n.attrs.n || void 0
11687
12443
  });
11688
- })) : c.classList.add("tokui-rate--disabled") : c.classList.add("tokui-rate--readonly"), s._update = function(e) {
12444
+ })) : x.classList.add("tokui-rate--disabled") : x.classList.add("tokui-rate--readonly"), b._update = function(e) {
11689
12445
  if (e.v !== void 0) {
11690
- i = parseInt(e.v) || 0, i > r && (i = r), i < 0 && (i = 0), l.value = i, m.textContent = i > 0 ? i + "/" + r : "";
11691
- for (var t = 0; t < u.length; t++) u[t].textContent = t < i ? a : o, u[t].classList.toggle("tokui-rate__star--active", t < i), u[t].setAttribute("aria-checked", String(t < i));
12446
+ i = parseInt(e.v) || 0, i > r && (i = r), i < 0 && (i = 0), S.value = i, E.textContent = i > 0 ? i + "/" + r : "";
12447
+ for (var t = 0; t < C.length; t++) C[t].textContent = t < i ? a : o, C[t].classList.toggle("tokui-rate__star--active", t < i), C[t].setAttribute("aria-checked", String(t < i));
11692
12448
  }
11693
- e.dis === !0 || e.dis === "true" ? c.classList.add("tokui-rate--disabled") : (e.dis === !1 || e.dis === "false") && c.classList.remove("tokui-rate--disabled");
12449
+ e.dis === !0 || e.dis === "true" ? x.classList.add("tokui-rate--disabled") : (e.dis === !1 || e.dis === "false") && x.classList.remove("tokui-rate--disabled");
11694
12450
  };
11695
- var g = i;
11696
- return s.setAttribute("data-tokui-resettable", ""), s._tokuiReset = function() {
11697
- i = g, l.value = i, m.textContent = i > 0 ? i + "/" + r : "";
11698
- for (var e = 0; e < u.length; e++) u[e].textContent = e < i ? a : o, u[e].classList.toggle("tokui-rate__star--active", e < i), u[e].setAttribute("aria-checked", String(e < i));
11699
- }, c._variantTarget = c, s.appendChild(c), s;
12451
+ var O = i;
12452
+ return b.setAttribute("data-tokui-resettable", ""), b._tokuiReset = function() {
12453
+ i = O, S.value = i, E.textContent = i > 0 ? i + "/" + r : "";
12454
+ for (var e = 0; e < C.length; e++) C[e].textContent = e < i ? a : o, C[e].classList.toggle("tokui-rate__star--active", e < i), C[e].setAttribute("aria-checked", String(e < i));
12455
+ }, x._variantTarget = x, b.appendChild(x), b;
11700
12456
  }), e.register("transfer", (n, r) => {
11701
12457
  var i = t("div", { class: "tokui-field" });
11702
- n.attrs.l && i.appendChild(t("label", { class: "tokui-label" }, n.attrs.l));
12458
+ n.attrs.l && i.appendChild(t("label", { class: "tokui-label" + (n.attrs.req === void 0 ? "" : " tokui-label--req") }, n.attrs.l));
11703
12459
  var a = t("div", { class: "tokui-transfer" });
11704
12460
  function o(e) {
11705
12461
  var n = t("div", {
@@ -11817,7 +12573,7 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
11817
12573
  var r = parseFloat(n.attrs.min), i = parseFloat(n.attrs.max), a = parseFloat(n.attrs.step) || 1, o = parseFloat(n.attrs.v) || 0;
11818
12574
  isNaN(r) || (o = Math.max(r, o)), isNaN(i) || (o = Math.min(i, o));
11819
12575
  var s = n.attrs.dis !== void 0, c = t("div", { class: "tokui-field" });
11820
- n.attrs.l && c.appendChild(t("label", { class: "tokui-label" }, n.attrs.l));
12576
+ n.attrs.l && c.appendChild(t("label", { class: "tokui-label" + (n.attrs.req === void 0 ? "" : " tokui-label--req") }, n.attrs.l));
11821
12577
  var l = t("div", { class: "tokui-numinput" + (s ? " tokui-numinput--disabled" : "") }), u = t("button", {
11822
12578
  class: "tokui-numinput__btn tokui-numinput__btn--minus",
11823
12579
  type: "button"
@@ -11875,7 +12631,7 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
11875
12631
  o = v, f.value = String(o), f.setAttribute("value", String(o)), h.value = o;
11876
12632
  }, c.appendChild(l), c._variantTarget = l, c;
11877
12633
  });
11878
- var T = new Set([
12634
+ var D = new Set([
11879
12635
  "primary",
11880
12636
  "danger",
11881
12637
  "success",
@@ -11890,23 +12646,23 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
11890
12646
  e.register("btn", (e) => {
11891
12647
  let i = n(e.attrs);
11892
12648
  var a = i.act === "submit" ? "submit" : i.act === "reset" ? "reset" : "button", o = "tokui-btn";
11893
- e.attrs.t && T.has(e.attrs.t) && (o += " tokui-btn--" + e.attrs.t), i.act === "print" && (o += " tokui-btn--print");
11894
- let l = {
12649
+ e.attrs.t && D.has(e.attrs.t) && (o += " tokui-btn--" + e.attrs.t), i.act === "print" && (o += " tokui-btn--print");
12650
+ let s = {
11895
12651
  class: o,
11896
12652
  type: a
11897
12653
  };
11898
- i.formId && (l["data-tokui-form"] = i.formId), i.act && (l["data-tokui-act"] = i.act), i.act === "submit" && i.handler && (l["data-tokui-sub"] = i.handler), i.act === "reset" && i.handler && (l["data-tokui-handler"] = i.handler), i.act === "print" && (l["data-tokui-target"] = i.target, l["data-tokui-print-trigger"] = ""), !i.act && i.handler && (l["data-tokui-clk"] = i.handler), e.attrs.id && (l.id = e.attrs.id), e.attrs.dis !== void 0 && (l.disabled = "disabled"), Object.keys(e.attrs).forEach((t) => {
11899
- t.startsWith("data-") && (l[t] = e.attrs[t]);
11900
- });
11901
- let u = "", d = r(e.attrs.w);
11902
- d && (u += "width:" + d + ";");
11903
- let f = s(e.attrs.bg);
11904
- f && (u += "background:" + f + ";");
11905
- let p = s(e.attrs.fc);
11906
- p && (u += "color:" + p + ";");
12654
+ i.formId && (s["data-tokui-form"] = i.formId), i.act && (s["data-tokui-act"] = i.act), i.act === "submit" && i.handler && (s["data-tokui-sub"] = i.handler), i.act === "reset" && i.handler && (s["data-tokui-handler"] = i.handler), i.act === "print" && (s["data-tokui-target"] = i.target, s["data-tokui-print-trigger"] = ""), !i.act && i.handler && (s["data-tokui-clk"] = i.handler), e.attrs.id && (s.id = e.attrs.id), e.attrs.dis !== void 0 && (s.disabled = "disabled"), Object.keys(e.attrs).forEach((t) => {
12655
+ t.startsWith("data-") && (s[t] = e.attrs[t]);
12656
+ });
12657
+ let l = "", u = r(e.attrs.w);
12658
+ u && (l += "width:" + u + ";");
12659
+ let f = c(e.attrs.bg);
12660
+ f && (l += "background:" + f + ";");
12661
+ let p = c(e.attrs.fc);
12662
+ p && (l += "color:" + p + ";");
11907
12663
  let m = r(e.attrs.radius);
11908
- m && (u += "border-radius:" + m + ";"), u && (l.style = u);
11909
- let h = e.attrs.tx || e.content || "", g = e.attrs.icon, _ = e.attrs.i, v = g ? c(g, 16) : "", y = !!(g || _), b = t("button", l);
12664
+ m && (l += "border-radius:" + m + ";"), l && (s.style = l);
12665
+ let h = e.attrs.tx || e.content || "", g = e.attrs.icon, _ = e.attrs.i, v = g ? d(g, 16) : "", y = !!(g || _), b = t("button", s);
11910
12666
  if (b._tokuiType = "btn", !h && y) {
11911
12667
  b.classList.add("tokui-btn--icon-only");
11912
12668
  let t = e.attrs.l || e.attrs.tt || g || "";
@@ -11940,8 +12696,8 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
11940
12696
  e && e.nodeType && i.appendChild(e);
11941
12697
  }), i._slot = i, i._tokuiType = "btngroup", i;
11942
12698
  }), e.register("cascader", (n, r) => {
11943
- var i = n.attrs.dis !== void 0, a = n.attrs.ph || d("select.placeholder"), o = t("div", { class: "tokui-field" });
11944
- n.attrs.l && o.appendChild(t("label", { class: "tokui-label" }, n.attrs.l)), n.attrs.id && (o.id = n.attrs.id);
12699
+ var i = n.attrs.dis !== void 0, a = n.attrs.ph || f("select.placeholder"), o = t("div", { class: "tokui-field" });
12700
+ n.attrs.l && o.appendChild(t("label", { class: "tokui-label" + (n.attrs.req === void 0 ? "" : " tokui-label--req") }, n.attrs.l)), n.attrs.id && (o.id = n.attrs.id);
11945
12701
  var s = t("div", {
11946
12702
  class: "tokui-cascader" + (i ? " tokui-cascader--disabled" : ""),
11947
12703
  role: "combobox",
@@ -11953,11 +12709,11 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
11953
12709
  placeholder: a
11954
12710
  }), u = t("span", { class: "tokui-cascader-arrow" });
11955
12711
  c.appendChild(l), c.appendChild(u), s.appendChild(c);
11956
- var f = t("div", {
12712
+ var d = t("div", {
11957
12713
  class: "tokui-cascader-menus",
11958
12714
  role: "listbox"
11959
12715
  });
11960
- s.appendChild(f);
12716
+ s.appendChild(d);
11961
12717
  var p = t("input", { type: "hidden" });
11962
12718
  n.attrs.n ? p.name = n.attrs.n : n.attrs.id && (p.name = n.attrs.id), s.appendChild(p);
11963
12719
  var m = t("div", {});
@@ -12012,17 +12768,17 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
12012
12768
  return n(e, []);
12013
12769
  }
12014
12770
  function y(e, t) {
12015
- f.innerHTML = "";
12771
+ d.innerHTML = "";
12016
12772
  for (var n = e, r = 0; r < t.length; r++) {
12017
12773
  var i = g(n);
12018
- _(i, t[r]), f.appendChild(i);
12774
+ _(i, t[r]), d.appendChild(i);
12019
12775
  for (var a = !1, o = 0; o < n.length; o++) if (n[o].v === t[r]) {
12020
12776
  n = n[o].children, a = !0;
12021
12777
  break;
12022
12778
  }
12023
12779
  if (!a) break;
12024
12780
  }
12025
- n && n.length && f.appendChild(g(n));
12781
+ n && n.length && d.appendChild(g(n));
12026
12782
  }
12027
12783
  var b = s._cascaderState = s._cascaderState || {
12028
12784
  isOpen: !1,
@@ -12033,7 +12789,7 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
12033
12789
  if (!i) {
12034
12790
  b.isOpen = !0, b.tree = e, s.classList.add("tokui-cascader--open"), s.setAttribute("aria-expanded", "true");
12035
12791
  var t = c.getBoundingClientRect();
12036
- f.style.left = t.left + "px", f.style.top = t.bottom + 4 + "px", f.style.minWidth = t.width + "px", y(e, b.activeValues);
12792
+ d.style.left = t.left + "px", d.style.top = t.bottom + 4 + "px", d.style.minWidth = t.width + "px", y(e, b.activeValues);
12037
12793
  }
12038
12794
  }
12039
12795
  function S() {
@@ -12042,7 +12798,7 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
12042
12798
  var C = e.createReporter("cascader", n.attrs, o);
12043
12799
  s._cascaderBindDone || (s._cascaderBindDone = !0, c.addEventListener("click", function(e) {
12044
12800
  e.stopPropagation(), b.isOpen ? S() : b.tree && x(b.tree);
12045
- }), f.addEventListener("click", function(e) {
12801
+ }), d.addEventListener("click", function(e) {
12046
12802
  e.stopPropagation();
12047
12803
  var t = e.target.closest(".tokui-cascader-option");
12048
12804
  if (t) {
@@ -12106,114 +12862,179 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
12106
12862
  p.value = w.hidden, l.value = w.text, b.isOpen && S();
12107
12863
  }, o;
12108
12864
  }), e.register("upload", (n) => {
12109
- var r = n.attrs.dis !== void 0, i = n.attrs.multi !== void 0, a = parseInt(n.attrs.max) || 0, o = n.attrs.ph || d("upload.hint"), s = n.attrs.accept || "", c = t("div", { class: "tokui-field" });
12110
- n.attrs.l && c.appendChild(t("label", { class: "tokui-label" }, n.attrs.l)), n.attrs.id && (c.id = n.attrs.id);
12111
- var l = t("div", { class: "tokui-upload" + (r ? " tokui-upload--disabled" : "") }), u = t("div", {
12865
+ var r = n.attrs.dis !== void 0, i = n.attrs.multi !== void 0, a = parseInt(n.attrs.max) || 0, o = n.attrs.ph || f("upload.hint"), s = n.attrs.accept || "", c = "";
12866
+ n.attrs.u && (/^(https?:\/\/|\/)/i.test(n.attrs.u) ? c = n.attrs.u : console.warn("TokUI: upload u: 仅支持 http(s) 或以 / 开头的路径,已忽略: " + n.attrs.u));
12867
+ var l = (n.attrs.mtd || "POST").toUpperCase(), u = n.attrs.n || "file", d = t("div", { class: "tokui-field" });
12868
+ n.attrs.l && d.appendChild(t("label", { class: "tokui-label" + (n.attrs.req === void 0 ? "" : " tokui-label--req") }, n.attrs.l)), n.attrs.id && (d.id = n.attrs.id);
12869
+ var p = t("div", { class: "tokui-upload" + (r ? " tokui-upload--disabled" : "") }), m = t("div", {
12112
12870
  class: "tokui-upload-dropzone",
12113
12871
  role: "button",
12114
12872
  "aria-label": o,
12115
12873
  tabindex: "0"
12116
- }), f = t("div", { class: "tokui-upload-icon" });
12117
- f.innerHTML = "<svg viewBox=\"0 0 48 48\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M24 32V12\"/><path d=\"M16 20l8-8 8 8\"/><path d=\"M8 36h32\"/></svg>", u.appendChild(f);
12118
- var p = t("div", { class: "tokui-upload-text" });
12119
- p.textContent = o, u.appendChild(p);
12120
- var m = t("button", {
12874
+ }), h = t("div", { class: "tokui-upload-icon" });
12875
+ h.innerHTML = "<svg viewBox=\"0 0 48 48\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M24 32V12\"/><path d=\"M16 20l8-8 8 8\"/><path d=\"M8 36h32\"/></svg>", m.appendChild(h);
12876
+ var g = t("div", { class: "tokui-upload-text" });
12877
+ g.textContent = o, m.appendChild(g);
12878
+ var _ = t("button", {
12121
12879
  class: "tokui-upload-btn",
12122
12880
  type: "button"
12123
12881
  });
12124
- m.textContent = d("upload.browse"), u.appendChild(m), l.appendChild(u);
12125
- var h = {
12882
+ _.textContent = f("upload.browse"), m.appendChild(_), p.appendChild(m);
12883
+ var v = {
12126
12884
  type: "file",
12127
12885
  style: "display:none"
12128
12886
  };
12129
- s && (h.accept = s), i && (h.multiple = "multiple");
12130
- var g = t("input", h);
12131
- l.appendChild(g);
12132
- var _ = t("div", { class: "tokui-upload-filelist" });
12133
- l.appendChild(_);
12134
- var v = t("input", { type: "hidden" });
12135
- n.attrs.n ? v.name = n.attrs.n : n.attrs.id && (v.name = n.attrs.id), l.appendChild(v);
12136
- function y(e) {
12887
+ s && (v.accept = s), i && (v.multiple = "multiple");
12888
+ var y = t("input", v);
12889
+ p.appendChild(y);
12890
+ var b = t("div", { class: "tokui-upload-filelist" });
12891
+ p.appendChild(b);
12892
+ var x = t("input", { type: "hidden" });
12893
+ n.attrs.n ? x.name = n.attrs.n : n.attrs.id && (x.name = n.attrs.id), p.appendChild(x);
12894
+ function S(e) {
12137
12895
  return e < 1024 ? e + " B" : e < 1048576 ? (e / 1024).toFixed(1) + " KB" : (e / 1048576).toFixed(1) + " MB";
12138
12896
  }
12139
- var b = [], x = e.createReporter("upload", n.attrs, c);
12140
- function S() {
12141
- x("change", {
12142
- value: b.map(function(e) {
12897
+ var C = [], w = e.createReporter("upload", n.attrs, d);
12898
+ function T() {
12899
+ w("change", {
12900
+ value: C.map(function(e) {
12143
12901
  return e.name;
12144
12902
  }),
12145
12903
  name: n.attrs.n || void 0
12146
12904
  });
12147
12905
  }
12148
- function C() {
12149
- _.innerHTML = "", b.forEach(function(e, n) {
12906
+ function E() {
12907
+ b.innerHTML = "", C.forEach(function(e, n) {
12150
12908
  var r = t("div", { class: "tokui-upload-file" }), i = t("span", { class: "tokui-upload-file-icon" });
12151
12909
  i.textContent = "📄", r.appendChild(i);
12152
12910
  var a = t("span", { class: "tokui-upload-file-name" });
12153
12911
  a.textContent = e.name, a.title = e.name, r.appendChild(a);
12154
12912
  var o = t("span", { class: "tokui-upload-file-size" });
12155
- o.textContent = y(e.size), r.appendChild(o);
12156
- var s = t("span", { class: "tokui-upload-file-remove" });
12157
- s.textContent = "✕", s.setAttribute("data-idx", n), r.appendChild(s), _.appendChild(r);
12158
- }), v.value = b.map(function(e) {
12913
+ if (o.textContent = S(e.size), r.appendChild(o), e.status === "uploading") {
12914
+ var s = t("div", {
12915
+ class: "tokui-upload__progress",
12916
+ role: "progressbar",
12917
+ title: f("upload.uploading")
12918
+ }), c = t("div", { class: "tokui-upload__progress-bar" });
12919
+ c.style.width = (e.percent || 0) + "%", s.appendChild(c), r.appendChild(s);
12920
+ var l = t("span", { class: "tokui-upload__percent" });
12921
+ l.textContent = (e.percent || 0) + "%", r.appendChild(l);
12922
+ } else if (e.status === "done") r.appendChild(t("span", {
12923
+ class: "tokui-upload__status tokui-upload__status--done",
12924
+ title: f("upload.done")
12925
+ }, "✓"));
12926
+ else if (e.status === "error") {
12927
+ r.appendChild(t("span", {
12928
+ class: "tokui-upload__status tokui-upload__status--error",
12929
+ title: f("upload.failed")
12930
+ }, "✗"));
12931
+ var u = t("button", {
12932
+ class: "tokui-upload__retry",
12933
+ type: "button"
12934
+ }, f("upload.retry"));
12935
+ u.setAttribute("data-idx", n), r.appendChild(u);
12936
+ }
12937
+ var d = t("span", { class: "tokui-upload-file-remove" });
12938
+ d.textContent = "✕", d.setAttribute("data-idx", n), r.appendChild(d), b.appendChild(r);
12939
+ }), x.value = C.map(function(e) {
12159
12940
  return e.name;
12160
12941
  }).join(",");
12161
12942
  }
12162
- function w(t) {
12163
- for (var r = 0; r < t.length && !(a && b.length >= a); r++) b.push({
12164
- name: t[r].name,
12165
- size: t[r].size,
12166
- type: t[r].type
12167
- });
12168
- if (C(), n.attrs.clk) {
12169
- var i = e.eventBus ? e.eventBus.getHandler(n.attrs.clk) : null;
12170
- i && i({
12943
+ function D(e) {
12944
+ if (typeof XMLHttpRequest > "u") {
12945
+ e.status = void 0, E();
12946
+ return;
12947
+ }
12948
+ e.status = "uploading", e.percent = 0, E();
12949
+ var t = new XMLHttpRequest();
12950
+ t.open(l, c, !0);
12951
+ var n = new FormData();
12952
+ n.append(u, e.file, e.name), t.upload && typeof t.upload.addEventListener == "function" && t.upload.addEventListener("progress", function(t) {
12953
+ var n = t && t.total ? Math.round(t.loaded / t.total * 100) : 0;
12954
+ e.percent = n, E(), w("progress", {
12955
+ file: e.name,
12956
+ percent: n
12957
+ });
12958
+ }), t.onload = function() {
12959
+ t.status >= 200 && t.status < 300 ? (e.status = "done", E(), w("success", {
12960
+ file: e.name,
12961
+ response: t.responseText
12962
+ })) : (e.status = "error", E(), w("error", {
12963
+ file: e.name,
12964
+ error: "HTTP " + t.status
12965
+ }));
12966
+ }, t.onerror = function() {
12967
+ e.status = "error", E(), w("error", {
12968
+ file: e.name,
12969
+ error: "network error"
12970
+ });
12971
+ }, t.send(n);
12972
+ }
12973
+ function O(t) {
12974
+ for (var r = [], i = 0; i < t.length && !(a && C.length >= a); i++) {
12975
+ var o = {
12976
+ name: t[i].name,
12977
+ size: t[i].size,
12978
+ type: t[i].type
12979
+ };
12980
+ c && (o.file = t[i], o.status = "uploading", o.percent = 0, r.push(o)), C.push(o);
12981
+ }
12982
+ if (E(), n.attrs.clk) {
12983
+ var s = e.eventBus ? e.eventBus.getHandler(n.attrs.clk) : null;
12984
+ s && s({
12171
12985
  id: n.attrs.id,
12172
- files: b
12986
+ files: C
12173
12987
  });
12174
12988
  }
12175
- S();
12176
- }
12177
- return r || (u.addEventListener("click", function(e) {
12178
- (e.target === m || u.contains(e.target)) && g.click();
12179
- }), m.addEventListener("click", function(e) {
12180
- e.stopPropagation(), g.click();
12181
- }), g.addEventListener("change", function() {
12182
- g.files && g.files.length && (w(g.files), g.value = "");
12183
- }), u.addEventListener("dragover", function(e) {
12184
- e.preventDefault(), l.classList.add("tokui-upload--dragover");
12185
- }), u.addEventListener("dragleave", function(e) {
12186
- e.preventDefault(), l.classList.remove("tokui-upload--dragover");
12187
- }), u.addEventListener("drop", function(e) {
12188
- e.preventDefault(), l.classList.remove("tokui-upload--dragover"), e.dataTransfer && e.dataTransfer.files.length && w(e.dataTransfer.files);
12989
+ T();
12990
+ for (var l = 0; l < r.length; l++) D(r[l]);
12991
+ }
12992
+ return r || (m.addEventListener("click", function(e) {
12993
+ (e.target === _ || m.contains(e.target)) && y.click();
12189
12994
  }), _.addEventListener("click", function(e) {
12190
- var t = e.target.closest(".tokui-upload-file-remove");
12995
+ e.stopPropagation(), y.click();
12996
+ }), y.addEventListener("change", function() {
12997
+ y.files && y.files.length && (O(y.files), y.value = "");
12998
+ }), m.addEventListener("dragover", function(e) {
12999
+ e.preventDefault(), p.classList.add("tokui-upload--dragover");
13000
+ }), m.addEventListener("dragleave", function(e) {
13001
+ e.preventDefault(), p.classList.remove("tokui-upload--dragover");
13002
+ }), m.addEventListener("drop", function(e) {
13003
+ e.preventDefault(), p.classList.remove("tokui-upload--dragover"), e.dataTransfer && e.dataTransfer.files.length && O(e.dataTransfer.files);
13004
+ }), b.addEventListener("click", function(e) {
13005
+ var t = e.target.closest(".tokui-upload__retry");
12191
13006
  if (t) {
12192
13007
  var n = parseInt(t.getAttribute("data-idx"));
12193
- !isNaN(n) && n >= 0 && n < b.length && (b.splice(n, 1), C(), S());
13008
+ !isNaN(n) && n >= 0 && n < C.length && D(C[n]);
13009
+ return;
12194
13010
  }
12195
- })), c.appendChild(l), c._variantTarget = l, c._update = function(e) {
12196
- e.act === "clear" && (b.length = 0, g.value = "", C());
12197
- }, c;
13011
+ var r = e.target.closest(".tokui-upload-file-remove");
13012
+ if (r) {
13013
+ var i = parseInt(r.getAttribute("data-idx"));
13014
+ !isNaN(i) && i >= 0 && i < C.length && (C.splice(i, 1), E(), T());
13015
+ }
13016
+ })), d.appendChild(p), d._variantTarget = p, d._update = function(e) {
13017
+ e.act === "clear" && (C.length = 0, y.value = "", E());
13018
+ }, d;
12198
13019
  });
12199
- function E(e) {
13020
+ function O(e) {
12200
13021
  if (!e) return null;
12201
13022
  var t = e.match(/^(\d{4})-(\d{1,2})-(\d{1,2})/);
12202
13023
  return t ? new Date(parseInt(t[1]), parseInt(t[2]) - 1, parseInt(t[3])) : null;
12203
13024
  }
12204
- function D(e) {
13025
+ function k(e) {
12205
13026
  if (!e) return null;
12206
13027
  var t = e.match(/^(\d{4})-(\d{1,2})-(\d{1,2})\s+(\d{1,2}):(\d{1,2})/);
12207
13028
  return t ? new Date(parseInt(t[1]), parseInt(t[2]) - 1, parseInt(t[3]), parseInt(t[4]), parseInt(t[5])) : null;
12208
13029
  }
12209
- function O(e, t) {
13030
+ function A(e, t) {
12210
13031
  var n = e.getFullYear(), r = e.getMonth() + 1, i = e.getDate(), a = e.getHours(), o = e.getMinutes(), s = e.getSeconds();
12211
13032
  return t.replace("YYYY", String(n)).replace("MM", r < 10 ? "0" + r : String(r)).replace("DD", i < 10 ? "0" + i : String(i)).replace("HH", a < 10 ? "0" + a : String(a)).replace("mm", o < 10 ? "0" + o : String(o)).replace("ss", s < 10 ? "0" + s : String(s));
12212
13033
  }
12213
- function k(e, t, n, r) {
13034
+ function j(e, t, n, r) {
12214
13035
  return r.replace("HH", e < 10 ? "0" + e : String(e)).replace("mm", t < 10 ? "0" + t : String(t)).replace("ss", n < 10 ? "0" + n : String(n));
12215
13036
  }
12216
- function A(e, t) {
13037
+ function M(e, t) {
12217
13038
  var n = e.querySelector(".tokui-timepicker-column-list");
12218
13039
  if (n) {
12219
13040
  var r = n.querySelectorAll(".tokui-timepicker-column-item");
@@ -12222,8 +13043,8 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
12222
13043
  }));
12223
13044
  }
12224
13045
  }
12225
- function j(e, t) {
12226
- A(e, t);
13046
+ function N(e, t) {
13047
+ M(e, t);
12227
13048
  var n = e.querySelector(".tokui-timepicker-column-list");
12228
13049
  if (n) {
12229
13050
  var r = n.querySelectorAll(".tokui-timepicker-column-item");
@@ -12237,7 +13058,7 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
12237
13058
  }
12238
13059
  }
12239
13060
  }
12240
- function M(e) {
13061
+ function P(e) {
12241
13062
  var t = e.querySelector(".tokui-timepicker-column-list");
12242
13063
  if (!t) return 0;
12243
13064
  var n = t.querySelectorAll(".tokui-timepicker-column-item");
@@ -12252,14 +13073,14 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
12252
13073
  var u = n[0].offsetHeight || 32, d = Math.round((t.scrollTop + (t.clientHeight || 192) / 2) / u) - 0;
12253
13074
  return Math.max(0, Math.min(d, n.length - 1));
12254
13075
  }
12255
- function N(e, n, r) {
13076
+ function F(e, n, r) {
12256
13077
  for (var i = t("div", { class: "tokui-timepicker-column" }), a = t("div", { class: "tokui-timepicker-column-list" }), o = 0; o < n; o++) {
12257
13078
  var s = t("div", {
12258
13079
  class: "tokui-timepicker-column-item" + (o === r ? " tokui-timepicker-column-item--selected" : ""),
12259
13080
  "data-value": String(o)
12260
13081
  }, o < 10 ? "0" + o : String(o));
12261
13082
  s.addEventListener("click", function(e) {
12262
- e.stopPropagation(), j(i, parseInt(this.getAttribute("data-value"), 10));
13083
+ e.stopPropagation(), N(i, parseInt(this.getAttribute("data-value"), 10));
12263
13084
  }), a.appendChild(s);
12264
13085
  }
12265
13086
  i.appendChild(a);
@@ -12268,166 +13089,201 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
12268
13089
  };
12269
13090
  return a.addEventListener("scroll", function() {
12270
13091
  c || (c = 1, l(function() {
12271
- c = 0, A(i, M(i));
13092
+ c = 0, M(i, P(i));
12272
13093
  }));
12273
13094
  }), i._label = e, i;
12274
13095
  }
12275
- function P(e) {
12276
- var t = M(e);
12277
- A(e, t);
13096
+ function I(e) {
13097
+ var t = P(e);
13098
+ M(e, t);
12278
13099
  var n = e.querySelector(".tokui-timepicker-column-list").querySelectorAll(".tokui-timepicker-column-item");
12279
13100
  return parseInt(n[t].getAttribute("data-value")) || 0;
12280
13101
  }
12281
- function F(e, t) {
12282
- j(e, t);
13102
+ function L(e, t) {
13103
+ N(e, t);
12283
13104
  }
12284
- var I = typeof window < "u" && window.TokUI && window.TokUI._internal ? window.TokUI._internal._datePickers = window.TokUI._internal._datePickers || /* @__PURE__ */ new Set() : /* @__PURE__ */ new Set();
12285
- function L(e) {
13105
+ var R = typeof window < "u" && window.TokUI && window.TokUI._internal ? window.TokUI._internal._datePickers = window.TokUI._internal._datePickers || /* @__PURE__ */ new Set() : /* @__PURE__ */ new Set();
13106
+ function z(e) {
12286
13107
  var t = [];
12287
- I.forEach(function(n) {
13108
+ R.forEach(function(n) {
12288
13109
  n !== e && t.push(n);
12289
13110
  }), t.forEach(function(e) {
12290
13111
  try {
12291
13112
  e();
12292
13113
  } catch {}
12293
- }), I.add(e);
13114
+ }), R.add(e);
12294
13115
  }
12295
- function R(e) {
12296
- I.delete(e);
13116
+ function B(e) {
13117
+ R.delete(e);
12297
13118
  }
12298
- function z() {
13119
+ function V() {
12299
13120
  var e = [];
12300
- I.forEach(function(t) {
13121
+ R.forEach(function(t) {
12301
13122
  e.push(t);
12302
- }), I.clear(), e.forEach(function(e) {
13123
+ }), R.clear(), e.forEach(function(e) {
12303
13124
  try {
12304
13125
  e();
12305
13126
  } catch {}
12306
13127
  });
12307
13128
  }
12308
- typeof window < "u" && !window.TokUI._internal._dateScrollBound && (window.addEventListener("scroll", z), window.TokUI._internal._dateScrollBound = !0);
12309
- function B() {
13129
+ typeof window < "u" && !window.TokUI._internal._dateScrollBound && (window.addEventListener("scroll", V), window.TokUI._internal._dateScrollBound = !0);
13130
+ function H() {
12310
13131
  return typeof window < "u" && window.innerWidth ? window.innerWidth : typeof document < "u" && document.documentElement && document.documentElement.clientWidth ? document.documentElement.clientWidth : 1024;
12311
13132
  }
12312
- function V(e, n, r, i, a) {
12313
- var o = t("div", { class: "tokui-datepicker-header" }), s = t("button", {
13133
+ function U(e, n, r, i, a, o) {
13134
+ var s = t("div", { class: "tokui-datepicker-header" }), c = t("button", {
12314
13135
  class: "tokui-datepicker-nav tokui-datepicker-nav--prev",
12315
13136
  type: "button"
12316
13137
  });
12317
- s.innerHTML = "<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><polyline points=\"15 18 9 12 15 6\"/></svg>";
12318
- var c = t("button", {
13138
+ c.innerHTML = "<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><polyline points=\"15 18 9 12 15 6\"/></svg>";
13139
+ var l = t("button", {
12319
13140
  class: "tokui-datepicker-nav tokui-datepicker-nav--next",
12320
13141
  type: "button"
12321
13142
  });
12322
- c.innerHTML = "<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><polyline points=\"9 18 15 12 9 6\"/></svg>";
12323
- var l = t("span", { class: "tokui-datepicker-title" }, d("datepicker.title", {
13143
+ l.innerHTML = "<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><polyline points=\"9 18 15 12 9 6\"/></svg>";
13144
+ var u = t("span", { class: "tokui-datepicker-title" }, f("datepicker.title", {
12324
13145
  y: e,
12325
13146
  m: n + 1
12326
13147
  }));
12327
- o.appendChild(s), o.appendChild(l), o.appendChild(c), a.appendChild(o);
12328
- var u = [
12329
- d("datepicker.weekday.0"),
12330
- d("datepicker.weekday.1"),
12331
- d("datepicker.weekday.2"),
12332
- d("datepicker.weekday.3"),
12333
- d("datepicker.weekday.4"),
12334
- d("datepicker.weekday.5"),
12335
- d("datepicker.weekday.6")
12336
- ], f = t("div", { class: "tokui-datepicker-weekdays" });
12337
- u.forEach(function(e) {
12338
- f.appendChild(t("span", { class: "tokui-datepicker-weekday" }, e));
12339
- }), a.appendChild(f);
12340
- for (var p = t("div", { class: "tokui-datepicker-grid" }), m = new Date(e, n, 1).getDay(), h = new Date(e, n + 1, 0).getDate(), g = new Date(e, n, 0).getDate(), _ = i.getDate(), v = i.getFullYear() === e && i.getMonth() === n, y = m - 1; y >= 0; y--) p.appendChild(t("span", { class: "tokui-datepicker-day tokui-datepicker-day--other" }, String(g - y)));
12341
- for (var b = 1; b <= h; b++) {
12342
- var x = ["tokui-datepicker-day"];
12343
- v && b === _ && x.push("tokui-datepicker-day--today"), r && r.getFullYear() === e && r.getMonth() === n && r.getDate() === b && x.push("tokui-datepicker-day--selected");
12344
- var S = t("span", {
12345
- class: x.join(" "),
12346
- "data-day": String(b)
12347
- }, String(b));
12348
- p.appendChild(S);
12349
- }
12350
- for (var C = 42 - m - h, w = 1; w <= C; w++) p.appendChild(t("span", { class: "tokui-datepicker-day tokui-datepicker-day--other" }, String(w)));
12351
- return a.appendChild(p), {
12352
- prevBtn: s,
12353
- nextBtn: c
13148
+ s.appendChild(c), s.appendChild(u), s.appendChild(l), a.appendChild(s);
13149
+ var d = [
13150
+ f("datepicker.weekday.0"),
13151
+ f("datepicker.weekday.1"),
13152
+ f("datepicker.weekday.2"),
13153
+ f("datepicker.weekday.3"),
13154
+ f("datepicker.weekday.4"),
13155
+ f("datepicker.weekday.5"),
13156
+ f("datepicker.weekday.6")
13157
+ ], p = t("div", { class: "tokui-datepicker-weekdays" });
13158
+ d.forEach(function(e) {
13159
+ p.appendChild(t("span", { class: "tokui-datepicker-weekday" }, e));
13160
+ }), a.appendChild(p);
13161
+ for (var m = t("div", { class: "tokui-datepicker-grid" }), h = new Date(e, n, 1).getDay(), g = new Date(e, n + 1, 0).getDate(), _ = new Date(e, n, 0).getDate(), v = i.getDate(), y = i.getFullYear() === e && i.getMonth() === n, b = h - 1; b >= 0; b--) m.appendChild(t("span", { class: "tokui-datepicker-day tokui-datepicker-day--other" }, String(_ - b)));
13162
+ for (var x = 1; x <= g; x++) {
13163
+ var S = ["tokui-datepicker-day"];
13164
+ if (y && x === v && S.push("tokui-datepicker-day--today"), r && r.getFullYear() === e && r.getMonth() === n && r.getDate() === x && S.push("tokui-datepicker-day--selected"), o && (o.start || o.end)) {
13165
+ var C = new Date(e, n, x).getTime(), w = o.start ? o.start.getTime() : null, T = o.end ? o.end.getTime() : null;
13166
+ w !== null && C === w && S.push("tokui-datepicker-day--range-start"), T !== null && C === T && S.push("tokui-datepicker-day--range-end"), w !== null && T !== null && C > w && C < T && S.push("tokui-datepicker-day--in-range");
13167
+ }
13168
+ var E = t("span", {
13169
+ class: S.join(" "),
13170
+ "data-day": String(x)
13171
+ }, String(x));
13172
+ m.appendChild(E);
13173
+ }
13174
+ for (var D = 42 - h - g, O = 1; O <= D; O++) m.appendChild(t("span", { class: "tokui-datepicker-day tokui-datepicker-day--other" }, String(O)));
13175
+ return a.appendChild(m), {
13176
+ prevBtn: c,
13177
+ nextBtn: l
12354
13178
  };
12355
13179
  }
12356
13180
  e.register("datepicker", (n) => {
12357
- var r = n.attrs || {}, i = r.dis !== void 0, a = r.fmt || "YYYY-MM-DD", o = r.ph || a, s = r.v || "", c = t("div", { class: "tokui-field" });
12358
- r.l && c.appendChild(t("label", { class: "tokui-label" }, r.l));
12359
- var l = ["tokui-datepicker"];
12360
- i && l.push("tokui-datepicker--disabled");
12361
- var u = t("div", { class: l.join(" ") }), d = t("div", { class: "tokui-datepicker-control" }), f = {
13181
+ var r = n.attrs || {}, i = r.dis !== void 0, a = r.fmt || "YYYY-MM-DD", o = r.range !== void 0, s = r.ph || (o ? "YYYY-MM-DD ~ YYYY-MM-DD" : a), c = r.v || "", l = null, u = null;
13182
+ if (o && c) {
13183
+ var d = String(c).split(" ~ ");
13184
+ if (l = O(d[0]), u = d.length > 1 ? O(d[1]) : null, l && u && u.getTime() < l.getTime()) {
13185
+ var f = l;
13186
+ l = u, u = f;
13187
+ }
13188
+ }
13189
+ var p = t("div", { class: "tokui-field" });
13190
+ r.l && p.appendChild(t("label", { class: "tokui-label" + (r.req === void 0 ? "" : " tokui-label--req") }, r.l));
13191
+ var m = ["tokui-datepicker"];
13192
+ i && m.push("tokui-datepicker--disabled");
13193
+ var h = t("div", { class: m.join(" ") }), g = t("div", { class: "tokui-datepicker-control" }), _ = {
12362
13194
  class: "tokui-datepicker-input",
12363
13195
  type: "text",
12364
13196
  readonly: "readonly",
12365
- placeholder: o
13197
+ placeholder: s
12366
13198
  };
12367
- r.id && (f.id = r.id), i && (f.disabled = "disabled"), s && (f.value = s);
12368
- var p = t("input", f);
12369
- d.appendChild(p);
12370
- var m = t("span", { class: "tokui-datepicker-icon" });
12371
- m.innerHTML = "<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\"/><line x1=\"16\" y1=\"2\" x2=\"16\" y2=\"6\"/><line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"6\"/><line x1=\"3\" y1=\"10\" x2=\"21\" y2=\"10\"/></svg>", d.appendChild(m), u.appendChild(d);
12372
- var h = t("div", { class: "tokui-datepicker-dropdown" }), g = /* @__PURE__ */ new Date(), _, v, y;
12373
- s && (y = E(s), y && (_ = y.getFullYear(), v = y.getMonth())), _ || (_ = g.getFullYear(), v = g.getMonth());
12374
- var b = t("input", { type: "hidden" });
12375
- r.n ? b.name = r.n : r.id && (b.name = r.id), b.value = s, u.appendChild(b);
12376
- var x = e.createReporter("datepicker", r, c);
12377
- function S(e, t) {
12378
- h.innerHTML = "";
12379
- var n = V(e, t, y, g, h);
13199
+ r.id && (_.id = r.id), i && (_.disabled = "disabled"), c && (_.value = c);
13200
+ var v = t("input", _);
13201
+ g.appendChild(v);
13202
+ var y = t("span", { class: "tokui-datepicker-icon" });
13203
+ y.innerHTML = "<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\"/><line x1=\"16\" y1=\"2\" x2=\"16\" y2=\"6\"/><line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"6\"/><line x1=\"3\" y1=\"10\" x2=\"21\" y2=\"10\"/></svg>", g.appendChild(y), h.appendChild(g);
13204
+ var b = t("div", { class: "tokui-datepicker-dropdown" }), x = /* @__PURE__ */ new Date(), S, C, w;
13205
+ c && (w = O(c), w && (S = w.getFullYear(), C = w.getMonth())), S || (S = x.getFullYear(), C = x.getMonth());
13206
+ var T = t("input", { type: "hidden" });
13207
+ r.n ? T.name = r.n : r.id && (T.name = r.id), T.value = c, h.appendChild(T);
13208
+ var E = e.createReporter("datepicker", r, p);
13209
+ function D(e, t) {
13210
+ b.innerHTML = "";
13211
+ var n = U(e, t, w, x, b, o ? {
13212
+ start: l,
13213
+ end: u
13214
+ } : null);
12380
13215
  n.prevBtn.addEventListener("click", function(e) {
12381
- e.stopPropagation(), v--, v < 0 && (v = 11, _--), S(_, v);
13216
+ e.stopPropagation(), C--, C < 0 && (C = 11, S--), D(S, C);
12382
13217
  }), n.nextBtn.addEventListener("click", function(e) {
12383
- e.stopPropagation(), v++, v > 11 && (v = 0, _++), S(_, v);
13218
+ e.stopPropagation(), C++, C > 11 && (C = 0, S++), D(S, C);
12384
13219
  });
12385
13220
  }
12386
- S(_, v), h.style.display = "none", u.appendChild(h);
12387
- var C = !1;
12388
- function w() {
12389
- if (!(i || C)) {
12390
- L(T), C = !0, h.style.display = "", u.classList.add("tokui-datepicker--open");
12391
- var e = d.getBoundingClientRect();
12392
- h.style.left = e.left + "px", h.style.top = e.bottom + 4 + "px", h.style.width = "auto";
12393
- var t = B();
12394
- e.left + h.offsetWidth > t - 8 && (h.style.left = Math.max(8, t - h.offsetWidth - 8) + "px");
13221
+ D(S, C), b.style.display = "none", h.appendChild(b);
13222
+ var k = !1;
13223
+ function j() {
13224
+ if (!(i || k)) {
13225
+ z(M), k = !0, b.style.display = "", h.classList.add("tokui-datepicker--open");
13226
+ var e = g.getBoundingClientRect();
13227
+ b.style.left = e.left + "px", b.style.top = e.bottom + 4 + "px", b.style.width = "auto";
13228
+ var t = H();
13229
+ e.left + b.offsetWidth > t - 8 && (b.style.left = Math.max(8, t - b.offsetWidth - 8) + "px");
12395
13230
  }
12396
13231
  }
12397
- function T() {
12398
- C && (C = !1, h.style.display = "none", u.classList.remove("tokui-datepicker--open"), R(T));
13232
+ function M() {
13233
+ k && (k = !1, b.style.display = "none", h.classList.remove("tokui-datepicker--open"), B(M));
12399
13234
  }
12400
- return i || (d.addEventListener("click", function(e) {
12401
- e.stopPropagation(), C ? T() : w();
12402
- }), h.addEventListener("click", function(t) {
13235
+ return i || (g.addEventListener("click", function(e) {
13236
+ e.stopPropagation(), k ? M() : j();
13237
+ }), b.addEventListener("click", function(t) {
12403
13238
  t.stopPropagation();
12404
13239
  var n = t.target.closest(".tokui-datepicker-day");
12405
13240
  if (!(!n || n.classList.contains("tokui-datepicker-day--other"))) {
12406
13241
  var i = parseInt(n.getAttribute("data-day"));
12407
- y = new Date(_, v, i);
12408
- var o = O(y, a);
12409
- if (p.value = o, b.value = o, T(), S(_, v), r.clk) {
12410
- var s = e.eventBus ? e.eventBus.getHandler(r.clk) : null;
12411
- s && s({
12412
- value: o,
12413
- date: y,
13242
+ if (o) {
13243
+ var s = new Date(S, C, i);
13244
+ if (!l || l && u ? (l = s, u = null) : s.getTime() < l.getTime() ? (u = l, l = s) : u = s, l && u) {
13245
+ var c = A(l, "YYYY-MM-DD") + " ~ " + A(u, "YYYY-MM-DD");
13246
+ if (v.value = c, T.value = c, M(), r.clk) {
13247
+ var d = e.eventBus ? e.eventBus.getHandler(r.clk) : null;
13248
+ d && d({
13249
+ value: c,
13250
+ start: l,
13251
+ end: u,
13252
+ id: r.id
13253
+ });
13254
+ }
13255
+ E("change", {
13256
+ value: c,
13257
+ name: r.n || void 0
13258
+ });
13259
+ }
13260
+ D(S, C);
13261
+ return;
13262
+ }
13263
+ w = new Date(S, C, i);
13264
+ var f = A(w, a);
13265
+ if (v.value = f, T.value = f, M(), D(S, C), r.clk) {
13266
+ var p = e.eventBus ? e.eventBus.getHandler(r.clk) : null;
13267
+ p && p({
13268
+ value: f,
13269
+ date: w,
12414
13270
  id: r.id
12415
13271
  });
12416
13272
  }
12417
- x("change", {
12418
- value: o,
13273
+ E("change", {
13274
+ value: f,
12419
13275
  name: r.n || void 0
12420
13276
  });
12421
13277
  }
12422
13278
  }), typeof document < "u" && document.addEventListener("click", function(e) {
12423
- u.contains(e.target) || T();
12424
- })), c.appendChild(u), c._variantTarget = u, c;
13279
+ h.contains(e.target) || M();
13280
+ })), p.appendChild(h), p._variantTarget = h, p;
12425
13281
  }), e.register("timepicker", (n) => {
12426
13282
  var r = n.attrs || {}, i = r.dis !== void 0, a = r.fmt || "HH:mm", o = r.ph || a, s = r.v || "", c = t("div", { class: "tokui-field" });
12427
- r.l && c.appendChild(t("label", { class: "tokui-label" }, r.l));
13283
+ r.l && c.appendChild(t("label", { class: "tokui-label" + (r.req === void 0 ? "" : " tokui-label--req") }, r.l));
12428
13284
  var l = ["tokui-timepicker"];
12429
13285
  i && l.push("tokui-timepicker--disabled");
12430
- var u = t("div", { class: l.join(" ") }), f = t("div", { class: "tokui-timepicker-control" }), p = {
13286
+ var u = t("div", { class: l.join(" ") }), d = t("div", { class: "tokui-timepicker-control" }), p = {
12431
13287
  class: "tokui-timepicker-input",
12432
13288
  type: "text",
12433
13289
  readonly: "readonly",
@@ -12435,46 +13291,46 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
12435
13291
  };
12436
13292
  r.id && (p.id = r.id), i && (p.disabled = "disabled"), s && (p.value = s);
12437
13293
  var m = t("input", p);
12438
- f.appendChild(m);
13294
+ d.appendChild(m);
12439
13295
  var h = t("span", { class: "tokui-timepicker-icon" });
12440
- h.innerHTML = "<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><polyline points=\"12 6 12 12 16 14\"/></svg>", f.appendChild(h), u.appendChild(f);
13296
+ h.innerHTML = "<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><circle cx=\"12\" cy=\"12\" r=\"10\"/><polyline points=\"12 6 12 12 16 14\"/></svg>", d.appendChild(h), u.appendChild(d);
12441
13297
  var g = 0, _ = 0, v = 0;
12442
13298
  if (s) {
12443
13299
  var y = s.split(":");
12444
13300
  g = parseInt(y[0]) || 0, _ = parseInt(y[1]) || 0, v = parseInt(y[2]) || 0;
12445
13301
  }
12446
- var b = t("div", { class: "tokui-timepicker-dropdown" }), x = a.indexOf("ss") !== -1 || a.indexOf("s") !== -1, S = t("div", { class: "tokui-timepicker-columns" }), C = N(d("duration.hour"), 24, g), w = N(d("duration.minute"), 60, _);
13302
+ var b = t("div", { class: "tokui-timepicker-dropdown" }), x = a.indexOf("ss") !== -1 || a.indexOf("s") !== -1, S = t("div", { class: "tokui-timepicker-columns" }), C = F(f("duration.hour"), 24, g), w = F(f("duration.minute"), 60, _);
12447
13303
  S.appendChild(C), S.appendChild(w);
12448
13304
  var T = null;
12449
- x && (T = N(d("duration.second"), 60, v), S.appendChild(T)), b.appendChild(S);
13305
+ x && (T = F(f("duration.second"), 60, v), S.appendChild(T)), b.appendChild(S);
12450
13306
  var E = t("div", { class: "tokui-timepicker-footer" }), D = t("button", {
12451
13307
  class: "tokui-timepicker-confirm",
12452
13308
  type: "button"
12453
- }, d("common.ok"));
13309
+ }, f("common.ok"));
12454
13310
  E.appendChild(D), b.appendChild(E);
12455
13311
  var O = t("input", { type: "hidden" });
12456
13312
  r.n ? O.name = r.n : r.id && (O.name = r.id), O.value = s, u.appendChild(O);
12457
- var A = e.createReporter("timepicker", r, c);
13313
+ var k = e.createReporter("timepicker", r, c);
12458
13314
  b.style.display = "none", u.appendChild(b);
12459
- var j = !1;
13315
+ var A = !1;
12460
13316
  function M() {
12461
- if (!(i || j)) {
12462
- L(I), j = !0, b.style.display = "", u.classList.add("tokui-timepicker--open");
12463
- var e = f.getBoundingClientRect();
13317
+ if (!(i || A)) {
13318
+ z(N), A = !0, b.style.display = "", u.classList.add("tokui-timepicker--open");
13319
+ var e = d.getBoundingClientRect();
12464
13320
  b.style.left = e.left + "px", b.style.top = e.bottom + 4 + "px", b.style.width = "auto";
12465
- var t = B();
12466
- e.left + b.offsetWidth > t - 8 && (b.style.left = Math.max(8, t - b.offsetWidth - 8) + "px"), F(C, g), F(w, _), x && T && F(T, v);
13321
+ var t = H();
13322
+ e.left + b.offsetWidth > t - 8 && (b.style.left = Math.max(8, t - b.offsetWidth - 8) + "px"), L(C, g), L(w, _), x && T && L(T, v);
12467
13323
  }
12468
13324
  }
12469
- function I() {
12470
- j && (j = !1, b.style.display = "none", u.classList.remove("tokui-timepicker--open"), R(I));
13325
+ function N() {
13326
+ A && (A = !1, b.style.display = "none", u.classList.remove("tokui-timepicker--open"), B(N));
12471
13327
  }
12472
- return i || (f.addEventListener("click", function(e) {
12473
- e.stopPropagation(), j ? I() : M();
13328
+ return i || (d.addEventListener("click", function(e) {
13329
+ e.stopPropagation(), A ? N() : M();
12474
13330
  }), D.addEventListener("click", function(t) {
12475
- t.stopPropagation(), g = P(C), _ = P(w), x && T && (v = P(T));
12476
- var n = k(g, _, v, a);
12477
- if (m.value = n, O.value = n, I(), r.clk) {
13331
+ t.stopPropagation(), g = I(C), _ = I(w), x && T && (v = I(T));
13332
+ var n = j(g, _, v, a);
13333
+ if (m.value = n, O.value = n, N(), r.clk) {
12478
13334
  var i = e.eventBus ? e.eventBus.getHandler(r.clk) : null;
12479
13335
  i && i({
12480
13336
  value: n,
@@ -12484,19 +13340,19 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
12484
13340
  id: r.id
12485
13341
  });
12486
13342
  }
12487
- A("change", {
13343
+ k("change", {
12488
13344
  value: n,
12489
13345
  name: r.n || void 0
12490
13346
  });
12491
13347
  }), typeof document < "u" && document.addEventListener("click", function(e) {
12492
- u.contains(e.target) || I();
13348
+ u.contains(e.target) || N();
12493
13349
  })), c.appendChild(u), c._variantTarget = u, c;
12494
13350
  }), e.register("datetimepicker", (n) => {
12495
13351
  var r = n.attrs || {}, i = r.dis !== void 0, a = r.fmt || "YYYY-MM-DD HH:mm", o = r.ph || a, s = r.v || "", c = t("div", { class: "tokui-field" });
12496
- r.l && c.appendChild(t("label", { class: "tokui-label" }, r.l));
13352
+ r.l && c.appendChild(t("label", { class: "tokui-label" + (r.req === void 0 ? "" : " tokui-label--req") }, r.l));
12497
13353
  var l = ["tokui-datetimepicker"];
12498
13354
  i && l.push("tokui-datetimepicker--disabled");
12499
- var u = t("div", { class: l.join(" ") }), f = t("div", { class: "tokui-datetimepicker-control" }), p = {
13355
+ var u = t("div", { class: l.join(" ") }), d = t("div", { class: "tokui-datetimepicker-control" }), p = {
12500
13356
  class: "tokui-datetimepicker-input",
12501
13357
  type: "text",
12502
13358
  readonly: "readonly",
@@ -12504,58 +13360,58 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
12504
13360
  };
12505
13361
  r.id && (p.id = r.id), i && (p.disabled = "disabled"), s && (p.value = s);
12506
13362
  var m = t("input", p);
12507
- f.appendChild(m);
13363
+ d.appendChild(m);
12508
13364
  var h = t("span", { class: "tokui-datetimepicker-icon" });
12509
- h.innerHTML = "<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\"/><line x1=\"16\" y1=\"2\" x2=\"16\" y2=\"6\"/><line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"6\"/><line x1=\"3\" y1=\"10\" x2=\"21\" y2=\"10\"/></svg>", f.appendChild(h), u.appendChild(f);
13365
+ h.innerHTML = "<svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\"/><line x1=\"16\" y1=\"2\" x2=\"16\" y2=\"6\"/><line x1=\"8\" y1=\"2\" x2=\"8\" y2=\"6\"/><line x1=\"3\" y1=\"10\" x2=\"21\" y2=\"10\"/></svg>", d.appendChild(h), u.appendChild(d);
12510
13366
  var g = /* @__PURE__ */ new Date(), _, v, y, b = 0, x = 0, S = 0;
12511
- s && (y = D(s) || E(s), y && (_ = y.getFullYear(), v = y.getMonth(), b = y.getHours(), x = y.getMinutes(), S = y.getSeconds())), _ || (_ = g.getFullYear(), v = g.getMonth());
13367
+ s && (y = k(s) || O(s), y && (_ = y.getFullYear(), v = y.getMonth(), b = y.getHours(), x = y.getMinutes(), S = y.getSeconds())), _ || (_ = g.getFullYear(), v = g.getMonth());
12512
13368
  var C = t("input", { type: "hidden" });
12513
13369
  r.n ? C.name = r.n : r.id && (C.name = r.id), C.value = s, u.appendChild(C);
12514
- var w = e.createReporter("datetimepicker", r, c), T = t("div", { class: "tokui-datetimepicker-dropdown" }), k = t("div", { class: "tokui-datetimepicker-date" }), A = a.indexOf("ss") !== -1 || a.indexOf("s") !== -1, j = t("div", { class: "tokui-datetimepicker-time" }), M = t("div", { class: "tokui-timepicker-columns" }), I = N(d("duration.hour"), 24, b), z = N(d("duration.minute"), 60, x);
12515
- M.appendChild(I), M.appendChild(z);
12516
- var H = null;
12517
- A && (H = N(d("duration.second"), 60, S), M.appendChild(H)), j.appendChild(M);
12518
- function U(e, t) {
12519
- k.innerHTML = "";
12520
- var n = V(e, t, y, g, k);
13370
+ var w = e.createReporter("datetimepicker", r, c), T = t("div", { class: "tokui-datetimepicker-dropdown" }), E = t("div", { class: "tokui-datetimepicker-date" }), D = a.indexOf("ss") !== -1 || a.indexOf("s") !== -1, j = t("div", { class: "tokui-datetimepicker-time" }), M = t("div", { class: "tokui-timepicker-columns" }), N = F(f("duration.hour"), 24, b), P = F(f("duration.minute"), 60, x);
13371
+ M.appendChild(N), M.appendChild(P);
13372
+ var R = null;
13373
+ D && (R = F(f("duration.second"), 60, S), M.appendChild(R)), j.appendChild(M);
13374
+ function V(e, t) {
13375
+ E.innerHTML = "";
13376
+ var n = U(e, t, y, g, E);
12521
13377
  n.prevBtn.addEventListener("click", function(e) {
12522
- e.stopPropagation(), v--, v < 0 && (v = 11, _--), U(_, v);
13378
+ e.stopPropagation(), v--, v < 0 && (v = 11, _--), V(_, v);
12523
13379
  }), n.nextBtn.addEventListener("click", function(e) {
12524
- e.stopPropagation(), v++, v > 11 && (v = 0, _++), U(_, v);
13380
+ e.stopPropagation(), v++, v > 11 && (v = 0, _++), V(_, v);
12525
13381
  });
12526
13382
  }
12527
13383
  var W = t("div", { class: "tokui-datetimepicker-footer" }), G = t("button", {
12528
13384
  class: "tokui-timepicker-confirm",
12529
13385
  type: "button"
12530
- }, d("common.ok"));
13386
+ }, f("common.ok"));
12531
13387
  W.appendChild(G);
12532
13388
  var K = t("div", { class: "tokui-datetimepicker-body" });
12533
- K.appendChild(k), K.appendChild(j), T.appendChild(K), T.appendChild(W), U(_, v), T.style.display = "none", u.appendChild(T);
13389
+ K.appendChild(E), K.appendChild(j), T.appendChild(K), T.appendChild(W), V(_, v), T.style.display = "none", u.appendChild(T);
12534
13390
  var q = !1;
12535
13391
  function J() {
12536
13392
  if (!(i || q)) {
12537
- L(Y), q = !0, T.style.display = "", u.classList.add("tokui-datetimepicker--open");
12538
- var e = f.getBoundingClientRect();
13393
+ z(Y), q = !0, T.style.display = "", u.classList.add("tokui-datetimepicker--open");
13394
+ var e = d.getBoundingClientRect();
12539
13395
  T.style.left = e.left + "px", T.style.top = e.bottom + 4 + "px", T.style.width = "auto";
12540
- var t = T.offsetWidth, n = B();
12541
- e.left + t > n - 8 && (T.style.left = Math.max(8, n - t - 8) + "px"), F(I, b), F(z, x), A && H && F(H, S);
13396
+ var t = T.offsetWidth, n = H();
13397
+ e.left + t > n - 8 && (T.style.left = Math.max(8, n - t - 8) + "px"), L(N, b), L(P, x), D && R && L(R, S);
12542
13398
  }
12543
13399
  }
12544
13400
  function Y() {
12545
- q && (q = !1, T.style.display = "none", u.classList.remove("tokui-datetimepicker--open"), R(Y));
13401
+ q && (q = !1, T.style.display = "none", u.classList.remove("tokui-datetimepicker--open"), B(Y));
12546
13402
  }
12547
- return i || (f.addEventListener("click", function(e) {
13403
+ return i || (d.addEventListener("click", function(e) {
12548
13404
  e.stopPropagation(), q ? Y() : J();
12549
- }), k.addEventListener("click", function(e) {
13405
+ }), E.addEventListener("click", function(e) {
12550
13406
  e.stopPropagation();
12551
13407
  var t = e.target.closest(".tokui-datepicker-day");
12552
13408
  if (!(!t || t.classList.contains("tokui-datepicker-day--other"))) {
12553
13409
  var n = parseInt(t.getAttribute("data-day"));
12554
- y = new Date(_, v, n), U(_, v);
13410
+ y = new Date(_, v, n), V(_, v);
12555
13411
  }
12556
13412
  }), G.addEventListener("click", function(t) {
12557
- t.stopPropagation(), y ||= new Date(_, v, g.getDate()), b = P(I), x = P(z), A && H && (S = P(H)), y.setHours(b, x, S);
12558
- var n = O(y, a);
13413
+ t.stopPropagation(), y ||= new Date(_, v, g.getDate()), b = I(N), x = I(P), D && R && (S = I(R)), y.setHours(b, x, S);
13414
+ var n = A(y, a);
12559
13415
  if (m.value = n, C.value = n, Y(), r.clk) {
12560
13416
  var i = e.eventBus ? e.eventBus.getHandler(r.clk) : null;
12561
13417
  i && i({
@@ -13255,93 +14111,142 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
13255
14111
  w();
13256
14112
  }, c;
13257
14113
  }), e.register("carousel-item", (e, t) => u(e, t)), e.register("tn", (e, n) => {
13258
- var r = e.attrs.leaf !== void 0, i = e.attrs.open !== void 0, a = e.attrs.dis !== void 0, o = t("div", {
14114
+ var r = e.attrs.leaf !== void 0, i = e.attrs.open !== void 0, a = e.attrs.dis !== void 0, o = e.attrs.load && !(e.children && e.children.length) ? String(e.attrs.load) : null, s = t("div", {
13259
14115
  class: "tokui-tree-node" + (r ? " tokui-tree-node--leaf" : "") + (i ? " tokui-tree-node--open" : "") + (a ? " tokui-tree-node--disabled" : ""),
13260
14116
  role: "treeitem",
13261
14117
  "aria-expanded": r ? void 0 : String(i)
13262
14118
  });
13263
- o.setAttribute("data-value", e.attrs.v || ""), o.setAttribute("data-text", e.attrs.tx || e.attrs.v || ""), e.attrs.id && o.setAttribute("data-id", e.attrs.id);
13264
- var s = t("div", {
14119
+ s.setAttribute("data-value", e.attrs.v || ""), s.setAttribute("data-text", e.attrs.tx || e.attrs.v || ""), e.attrs.id && s.setAttribute("data-id", e.attrs.id);
14120
+ var c = t("div", {
13265
14121
  class: "tokui-tree-node-header",
13266
14122
  tabindex: "0"
13267
- }), c = t("span", { class: "tokui-tree-arrow" });
13268
- c.textContent = "▶", s.appendChild(c);
13269
- var l = t("span", { class: "tokui-tree-icon" });
13270
- l.textContent = r ? "📄" : "📁", s.appendChild(l);
13271
- var u = t("span", { class: "tokui-tree-text" }, e.attrs.tx || e.attrs.v || "");
13272
- s.appendChild(u), o.appendChild(s);
13273
- var d = null;
13274
- return r || (d = t("div", { class: "tokui-tree-node-children" }), i || (d.style.display = "none"), e.children && e.children.length && n(e.children).forEach(function(e) {
13275
- e && e.nodeType && d.appendChild(e);
13276
- }), o.appendChild(d), o._slot = d), o._tokuiType = "tn", o;
13277
- }), e.register("tree", (n, r) => {
13278
- var i = n.attrs.chk !== void 0, a = n.attrs.dis !== void 0, o = t("div", { class: "tokui-field" });
13279
- n.attrs.l && o.appendChild(t("label", { class: "tokui-label" }, n.attrs.l)), n.attrs.id && (o.id = n.attrs.id);
13280
- var s = t("div", {
13281
- class: "tokui-tree" + (i ? " tokui-tree--checkable" : "") + (a ? " tokui-tree--disabled" : ""),
14123
+ }), l = t("span", { class: "tokui-tree-arrow" });
14124
+ l.textContent = "▶", c.appendChild(l);
14125
+ var u = t("span", { class: "tokui-tree-icon" });
14126
+ u.textContent = r ? "📄" : "📁", c.appendChild(u);
14127
+ var d = t("span", { class: "tokui-tree-text" }, e.attrs.tx || e.attrs.v || "");
14128
+ c.appendChild(d), s.appendChild(c);
14129
+ var f = null;
14130
+ return r || (f = t("div", { class: "tokui-tree-node-children" }), i || (f.style.display = "none"), e.children && e.children.length && n(e.children).forEach(function(e) {
14131
+ e && e.nodeType && f.appendChild(e);
14132
+ }), s.appendChild(f), s._slot = f), o && (s._lazyLoad = o, s._lazyLoaded = !1, s._lazyLoading = !1), s._tokuiType = "tn", s;
14133
+ }), e.register("tree", (r, i) => {
14134
+ var a = r.attrs.chk !== void 0, o = r.attrs.dis !== void 0, s = t("div", { class: "tokui-field" });
14135
+ r.attrs.l && s.appendChild(t("label", { class: "tokui-label" }, r.attrs.l)), r.attrs.id && (s.id = r.attrs.id);
14136
+ var c = t("div", {
14137
+ class: "tokui-tree" + (a ? " tokui-tree--checkable" : "") + (o ? " tokui-tree--disabled" : ""),
13282
14138
  role: "tree"
13283
14139
  });
13284
- n.children && n.children.length && r(n.children).forEach(function(e) {
13285
- e && e.nodeType && s.appendChild(e);
13286
- }), o.appendChild(s);
13287
- var c = e.createReporter("tree", n.attrs, o), l = !1;
13288
- function u() {
13289
- a || l || (l = !0, s.addEventListener("click", function(e) {
14140
+ r.children && r.children.length && i(r.children).forEach(function(e) {
14141
+ e && e.nodeType && c.appendChild(e);
14142
+ }), s.appendChild(c);
14143
+ var l = e.createReporter("tree", r.attrs, s), u = !1;
14144
+ function d(e) {
14145
+ if (a) {
14146
+ var n = e.querySelector(":scope > .tokui-tree-node-header");
14147
+ if (!(!n || n.querySelector(".tokui-tree-checkbox"))) {
14148
+ var r = t("input", {
14149
+ type: "checkbox",
14150
+ class: "tokui-tree-checkbox"
14151
+ });
14152
+ e.classList.contains("tokui-tree-node--disabled") && (r.disabled = !0), n.insertBefore(r, n.firstChild);
14153
+ }
14154
+ }
14155
+ }
14156
+ function f(r, i) {
14157
+ var a = r._lazyLoad;
14158
+ if (!(!a || r._lazyLoaded || r._lazyLoading)) {
14159
+ var o = e.eventBus ? e.eventBus.getHandler(a) : null;
14160
+ if (!o) {
14161
+ e._warnMissingHandler(a);
14162
+ return;
14163
+ }
14164
+ r._lazyLoading = !0, r.classList.add("tokui-tree__loading");
14165
+ var s = t("div", { class: "tokui-tree-loading" }, n("common.loading"));
14166
+ i.appendChild(s);
14167
+ var c = function(t) {
14168
+ r._lazyLoading = !1, r._lazyLoaded = !0, r.classList.remove("tokui-tree__loading"), s.parentNode && s.parentNode.removeChild(s);
14169
+ var n = Array.isArray(t) ? t : [], a = 0;
14170
+ n.forEach(function(t) {
14171
+ if (!(!t || typeof t != "object")) {
14172
+ var n = e.render(t, "tree");
14173
+ n && n.nodeType && (d(n), i.appendChild(n), a++);
14174
+ }
14175
+ }), l("load", {
14176
+ value: r.getAttribute("data-value"),
14177
+ count: a
14178
+ });
14179
+ }, u;
14180
+ try {
14181
+ u = o({
14182
+ id: r.getAttribute("data-id") || void 0,
14183
+ value: r.getAttribute("data-value")
14184
+ });
14185
+ } catch {
14186
+ u = [];
14187
+ }
14188
+ u && typeof u.then == "function" ? u.then(c, function() {
14189
+ c([]);
14190
+ }) : c(u);
14191
+ }
14192
+ }
14193
+ function p() {
14194
+ o || u || (u = !0, c.addEventListener("click", function(e) {
13290
14195
  var t = e.target.closest(".tokui-tree-arrow");
13291
14196
  if (t) {
13292
14197
  e.stopPropagation();
13293
14198
  var n = t.closest(".tokui-tree-node");
13294
14199
  if (!(!n || n.classList.contains("tokui-tree-node--leaf"))) {
13295
14200
  var r = n.querySelector(":scope > .tokui-tree-node-children");
13296
- r && (n.classList.contains("tokui-tree-node--open") ? (n.classList.remove("tokui-tree-node--open"), r.style.display = "none") : (n.classList.add("tokui-tree-node--open"), r.style.display = ""));
14201
+ r && (n.classList.contains("tokui-tree-node--open") ? (n.classList.remove("tokui-tree-node--open"), r.style.display = "none") : (n.classList.add("tokui-tree-node--open"), r.style.display = "", f(n, r)));
13297
14202
  }
13298
14203
  }
13299
- }), s.addEventListener("click", function(e) {
14204
+ }), c.addEventListener("click", function(e) {
13300
14205
  var t = e.target.closest(".tokui-tree-text");
13301
14206
  if (t) {
13302
14207
  e.stopPropagation();
13303
- var r = t.closest(".tokui-tree-node");
13304
- if (r) {
13305
- if (s.querySelectorAll(".tokui-tree-node--selected").forEach(function(e) {
14208
+ var n = t.closest(".tokui-tree-node");
14209
+ if (n) {
14210
+ if (c.querySelectorAll(".tokui-tree-node--selected").forEach(function(e) {
13306
14211
  e.classList.remove("tokui-tree-node--selected");
13307
- }), r.classList.add("tokui-tree-node--selected"), n.attrs.clk) {
13308
- var i = typeof window < "u" && window.TokUI && window.TokUI._internal && window.TokUI._internal.TokUIEventBus ? window.TokUI._internal.TokUIEventBus.getHandler(n.attrs.clk) : null;
14212
+ }), n.classList.add("tokui-tree-node--selected"), r.attrs.clk) {
14213
+ var i = typeof window < "u" && window.TokUI && window.TokUI._internal && window.TokUI._internal.TokUIEventBus ? window.TokUI._internal.TokUIEventBus.getHandler(r.attrs.clk) : null;
13309
14214
  i && i({
13310
- id: n.attrs.id,
13311
- value: r.getAttribute("data-value"),
13312
- text: r.getAttribute("data-text")
14215
+ id: r.attrs.id,
14216
+ value: n.getAttribute("data-value"),
14217
+ text: n.getAttribute("data-text")
13313
14218
  });
13314
14219
  }
13315
- c("change", {
13316
- value: r.getAttribute("data-value"),
13317
- id: r.getAttribute("data-id") || void 0
14220
+ l("change", {
14221
+ value: n.getAttribute("data-value"),
14222
+ id: n.getAttribute("data-id") || void 0
13318
14223
  });
13319
14224
  }
13320
14225
  }
13321
- }), i && (s.querySelectorAll(".tokui-tree-node-header").forEach(function(e) {
14226
+ }), a && (c.querySelectorAll(".tokui-tree-node-header").forEach(function(e) {
13322
14227
  var n = t("input", {
13323
14228
  type: "checkbox",
13324
14229
  class: "tokui-tree-checkbox"
13325
14230
  }), r = e.closest(".tokui-tree-node");
13326
14231
  r && r.classList.contains("tokui-tree-node--disabled") && (n.disabled = !0), e.insertBefore(n, e.firstChild);
13327
- }), s.addEventListener("change", function(e) {
14232
+ }), c.addEventListener("change", function(e) {
13328
14233
  if (e.target.classList.contains("tokui-tree-checkbox")) {
13329
14234
  var t = e.target.closest(".tokui-tree-node");
13330
14235
  if (t) {
13331
14236
  var n = e.target.checked;
13332
14237
  t.querySelectorAll(".tokui-tree-checkbox").forEach(function(t) {
13333
14238
  t !== e.target && (t.checked = n, t.indeterminate = !1);
13334
- }), d(s);
14239
+ }), m(c);
13335
14240
  var r = [];
13336
- Array.prototype.forEach.call(s.querySelectorAll(".tokui-tree-checkbox"), function(e) {
14241
+ Array.prototype.forEach.call(c.querySelectorAll(".tokui-tree-checkbox"), function(e) {
13337
14242
  if (e.checked) {
13338
14243
  var t = e.closest(".tokui-tree-node");
13339
14244
  t && r.push(t.getAttribute("data-value"));
13340
14245
  }
13341
- }), c("check", { value: r });
14246
+ }), l("check", { value: r });
13342
14247
  }
13343
14248
  }
13344
- })), s.addEventListener("keydown", function(e) {
14249
+ })), c.addEventListener("keydown", function(e) {
13345
14250
  var t = e.target.closest(".tokui-tree-node-header");
13346
14251
  if (t) {
13347
14252
  var n = t.closest(".tokui-tree-node");
@@ -13352,14 +14257,14 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
13352
14257
  r && !n.classList.contains("tokui-tree-node--leaf") && r.click();
13353
14258
  } else if (e.key === "ArrowDown" || e.key === "ArrowUp") {
13354
14259
  e.preventDefault();
13355
- var i = Array.from(s.querySelectorAll(":scope .tokui-tree-node-header")), a = i.indexOf(t);
14260
+ var i = Array.from(c.querySelectorAll(":scope .tokui-tree-node-header")), a = i.indexOf(t);
13356
14261
  e.key === "ArrowDown" && a < i.length - 1 ? i[a + 1].focus() : e.key === "ArrowUp" && a > 0 && i[a - 1].focus();
13357
14262
  }
13358
14263
  }
13359
14264
  }
13360
14265
  }));
13361
14266
  }
13362
- function d(e) {
14267
+ function m(e) {
13363
14268
  e.querySelectorAll(".tokui-tree-node").forEach(function(e) {
13364
14269
  var t = e.querySelector(":scope > .tokui-tree-node-children");
13365
14270
  if (t) {
@@ -13376,9 +14281,9 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
13376
14281
  }
13377
14282
  });
13378
14283
  }
13379
- return n.children && n.children.length && u(), o._streamCloseHook = function() {
13380
- u();
13381
- }, o._slot = s, o._tokuiType = "tree", o._variantTarget = s, o;
14284
+ return r.children && r.children.length && p(), s._streamCloseHook = function() {
14285
+ p();
14286
+ }, s._slot = c, s._tokuiType = "tree", s._variantTarget = c, s;
13382
14287
  }), e.register("menu", (n, r) => {
13383
14288
  var i = n.attrs || {}, a = i.v || "vertical", o = ["tokui-menu"];
13384
14289
  a === "horizontal" || a === "h" ? o.push("tokui-menu--horizontal") : a === "inline" && o.push("tokui-menu--inline");
@@ -13494,15 +14399,59 @@ var e = Object.create, t = Object.defineProperty, n = Object.getOwnPropertyDescr
13494
14399
  for (var r = 1; r < e.length; r++) m.appendChild(e[r]);
13495
14400
  }
13496
14401
  }, d._tokuiType = "resizable", d;
13497
- }), e.register("scroll-area", (e, n) => {
13498
- var r = e.attrs || {}, i = { class: "tokui-scroll-area" };
13499
- r.id && (i.id = r.id);
13500
- var a = t("div", i);
13501
- r.h && (a.style.height = String(r.h).match(/^\d+$/) ? r.h + "px" : r.h), r.w && (a.style.width = r.w);
13502
- var o = t("div", { class: "tokui-scroll-area__viewport" });
13503
- return n(e.children || []).forEach(function(e) {
13504
- e && e.nodeType && o.appendChild(e);
13505
- }), a.appendChild(o), a._slot = o, a._tokuiType = "scroll-area", a;
14402
+ }), e.register("scroll-area", (n, r) => {
14403
+ var i = n.attrs || {}, a = i.virtual !== void 0, o = { class: "tokui-scroll-area" + (a ? " tokui-scroll-area--virtual" : "") };
14404
+ i.id && (o.id = i.id);
14405
+ var s = t("div", o);
14406
+ i.h && (s.style.height = String(i.h).match(/^\d+$/) ? i.h + "px" : i.h), i.w && (s.style.width = i.w);
14407
+ var c = t("div", { class: "tokui-scroll-area__viewport" });
14408
+ if (!a) return r(n.children || []).forEach(function(e) {
14409
+ e && e.nodeType && c.appendChild(e);
14410
+ }), s.appendChild(c), s._slot = c, s._tokuiType = "scroll-area", s;
14411
+ var l = parseInt(i.ih, 10) > 0 ? parseInt(i.ih, 10) : 36, u = 5;
14412
+ function d() {
14413
+ return c.clientHeight || parseInt(i.h, 10) || l;
14414
+ }
14415
+ var f = document.createElement("div");
14416
+ r(n.children || []).forEach(function(e) {
14417
+ e && e.nodeType && f.appendChild(e);
14418
+ });
14419
+ var p = [], m = t("div", { class: "tokui-scroll-area__spacer" }), h = t("div", { class: "tokui-scroll-area__spacer" });
14420
+ c.appendChild(m), c.appendChild(h);
14421
+ var g = -1, _ = -1, v = -1;
14422
+ function y() {
14423
+ for (; f.childNodes.length > 0;) p.push(f.removeChild(f.childNodes[0]));
14424
+ var e = p.length, t = c.scrollTop || 0, n = Math.max(0, Math.floor(t / l) - u), r = Math.min(e, Math.ceil((t + d()) / l) + u);
14425
+ if (!(n === g && r === _ && e === v)) {
14426
+ g = n, _ = r, v = e;
14427
+ for (var i = c.children.length - 1; i >= 0; i--) {
14428
+ var a = c.children[i];
14429
+ a !== m && a !== h && c.removeChild(a);
14430
+ }
14431
+ m.style.height = n * l + "px", h.style.height = (e - r) * l + "px";
14432
+ for (var o = n; o < r; o++) c.insertBefore(p[o], h);
14433
+ }
14434
+ }
14435
+ var b = e.createReporter("scroll-area", i, s), x = !1;
14436
+ function S() {
14437
+ y();
14438
+ var e = p.length * l - d(), t = e <= 0 ? !0 : (c.scrollTop || 0) >= e * .8;
14439
+ t && !x ? (x = !0, b("loadmore", {})) : t || (x = !1);
14440
+ }
14441
+ var C = typeof requestAnimationFrame == "function" ? function(e) {
14442
+ requestAnimationFrame(e);
14443
+ } : function(e) {
14444
+ e();
14445
+ }, w = !1;
14446
+ return c.addEventListener("scroll", function() {
14447
+ w || (w = !0, C(function() {
14448
+ w = !1, S();
14449
+ }));
14450
+ }), y(), s.appendChild(c), s._slot = f, s._streamAppendHook = function() {
14451
+ y();
14452
+ }, s._streamCloseHook = function() {
14453
+ y();
14454
+ }, s._tokuiType = "scroll-area", s;
13506
14455
  }), e.register("sidebar", (e, n) => {
13507
14456
  var r = e.attrs || {}, i = r.w || "260", a = r.pos || "left", o = r.collapsible !== void 0, s = r.bg || "", c = r.fc || "", l = ["tokui-sidebar", "tokui-sidebar--" + a];
13508
14457
  o && l.push("tokui-sidebar--collapsible");